:root{--paper:#f8f6ef;--white:#fdfcf8;--ink:#233343;--muted:#73786e;--olive:#59663c;--pale:#eceee1;--gold:#a17c38;--line:#deded0;--serif:Georgia,'Songti SC','Noto Serif SC',STSong,serif;--sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft Yahei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.8 var(--sans)}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input,summary{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button{color:inherit;background:none;border:0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}a:hover{color:var(--olive)}.site-header{display:flex;align-items:center;gap:36px;min-height:88px;padding:0 5%;border-bottom:1px solid var(--line);background:var(--white)}.wordmark{font:600 29px/1.2 var(--serif);color:var(--gold);white-space:nowrap;letter-spacing:-1px}.wordmark:hover{color:#8c692c}.site-header nav{display:flex;gap:28px;margin-left:auto}.site-header nav a{font-size:14px;white-space:nowrap;padding:30px 0 26px;border-bottom:3px solid transparent}.site-header nav a.active{border-color:var(--olive);color:var(--olive)}.search-trigger{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.search-trigger>span:first-child{font-size:29px;line-height:1}kbd{font:11px var(--sans);border:1px solid var(--line);padding:1px 5px;border-radius:3px}.skip{position:absolute;top:-100px;left:16px;background:var(--ink);color:white;padding:8px;z-index:100}.skip:focus{top:0}main{min-height:calc(100vh - 180px)}.wrap{max-width:1240px;margin:0 auto;padding:0 46px}.eyebrow{color:var(--gold);letter-spacing:2px;font-size:11px;text-transform:uppercase;font-weight:600}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:600}h1{font-size:42px;line-height:1.4;letter-spacing:1px;margin-bottom:15px}h2{font-size:26px;line-height:1.5}h3{font-size:20px;line-height:1.5}.subtle{color:var(--muted);font-size:13px}.home-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;padding:62px 0 44px;align-items:center}.home-intro h1{font-size:45px;letter-spacing:2px}.home-intro p{color:var(--muted);max-width:420px}.home-note{border-left:1px solid var(--line);padding:12px 0 12px 40px}.home-note .english-line{font:italic 25px/1.8 var(--serif);margin:9px 0 12px;color:var(--ink)}.home-note p{margin-bottom:0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:20px 0}.section-heading h2{margin:0}.text-link{font-size:13px;color:var(--olive);border-bottom:1px solid #aeb696;padding-bottom:2px}.subject-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.subject{padding:26px 20px 24px 0;position:relative}.subject:not(:first-child){border-left:1px solid var(--line);padding-left:23px}.subject .number{font:italic 20px var(--serif);color:var(--gold)}.subject h3{margin:13px 0 9px}.subject p{color:var(--muted);font-size:12px;min-height:44px;line-height:1.9}.subject .arrow{position:absolute;right:18px;top:30px;color:var(--olive)}.subject:hover{background:rgba(89,102,60,.035)}.home-lower{display:grid;grid-template-columns:1fr 1.8fr;gap:65px;margin:43px 0 55px}.path-list{list-style:none;margin:0;padding:0;counter-reset:path}.path-list li{padding:11px 0;border-bottom:1px solid var(--line);font-size:13px;counter-increment:path}.path-list a{display:flex;gap:18px;align-items:center}.path-list a:before{content:'0' counter(path);color:var(--gold);font:italic 16px var(--serif)}.path-list small{margin-left:auto;color:var(--muted)}.sample-list{border-top:1px solid var(--line)}.sample-row{display:grid;grid-template-columns:76px 1fr 20px;gap:16px;padding:19px 0;border-bottom:1px solid var(--line);align-items:center}.sample-row h3{font-size:18px;margin:0 0 4px}.sample-row p{margin:0;font-size:12px;color:var(--muted)}.badge{font-size:11px;color:var(--olive);background:var(--pale);padding:3px 9px;white-space:nowrap;border-radius:3px;width:fit-content}.reserved{padding:14px 0 0;font-size:12px;color:var(--muted)}.reserved span{margin-right:20px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:20px}.breadcrumb a{color:var(--olive)}.catalog-intro{padding:39px 0 20px}.catalog-intro h1{font-size:36px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 30px}.segmented{display:inline-flex;border:1px solid #aab095;border-radius:4px;overflow:hidden}.segmented button{padding:8px 22px;font-size:13px}.segmented button.selected{background:var(--olive);color:white}.secondary{border:1px solid var(--line);border-radius:4px;padding:7px 13px;font-size:12px;background:var(--white)}.secondary:hover{border-color:var(--olive)}.primary{background:var(--olive);color:white;padding:10px 22px;border:1px solid var(--olive);border-radius:4px;font-size:13px;display:inline-block}.primary:hover{background:#46532e;color:white}.topic-list{margin-bottom:55px}.topic{border-top:1px solid var(--line);padding:0 0 8px}.topic:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.topic>summary{display:flex;align-items:center;padding:19px 0;gap:16px}.topic>summary:after{content:'＋';margin-left:auto;font-size:18px;color:var(--muted)}.topic[open]>summary:after{content:'−'}.topic-code{font:italic 16px var(--serif);color:var(--gold);min-width:34px}.topic-title{font:600 21px var(--serif)}.topic-count{font-size:11px;color:var(--muted);margin-left:6px}.lesson-list{padding:0 0 15px 50px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 35px}.lesson-entry{display:flex;align-items:center;gap:15px;padding:10px 0;border-bottom:1px solid #e9e9e0;min-width:0;font-size:13px}.lesson-entry>span:first-child{flex:1}.planned{color:#8b8c80;font-size:10px;white-space:nowrap}.lesson-entry.available{color:var(--olive)}.workbench{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);padding:36px 42px 65px;gap:46px;align-items:start}.sidebar{position:sticky;top:28px;max-height:85vh;overflow:auto;padding-right:23px;border-right:1px solid var(--line)}.sidebar h2{font-size:22px;margin:0 0 18px}.sidebar a{display:block;padding:9px 12px;font-size:13px;margin:3px 0}.sidebar a.current{background:var(--pale);border-left:3px solid var(--olive);padding-left:9px}.sidebar .subtle{padding:12px}.lesson-content{min-width:0;max-width:850px;width:100%;margin:0 auto}.lesson-content h1{font-size:36px}.lesson-content .lead{color:var(--muted);font-size:14px;max-width:650px}.lesson-content .toolbar{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:32px}.lesson-content .toolbar .secondary:last-child{margin-left:auto}.workbench.hide-sidebar{grid-template-columns:1fr}.hide-sidebar .sidebar{display:none}.lesson-body{font-size:15px;line-height:2}.lesson-body h2{font-size:24px;margin:36px 0 18px;display:flex;gap:13px;align-items:baseline}.lesson-body h2:first-child{margin-top:0}.lesson-body .chapter-num{font:italic 24px var(--serif);color:var(--gold)}.lesson-body p{margin-bottom:18px}.example{padding:23px 28px;background:#f0efe5;border-left:3px solid #b1b999;margin:22px 0}.example .en{font:24px/1.7 var(--serif);margin:0 0 6px}.example p:last-child{margin:0;color:var(--muted);font-size:13px}mark{background:#f1dfb4;color:inherit;padding:0 3px}.sentence-parts{display:flex;gap:13px;flex-wrap:wrap;justify-content:center;padding:28px 10px;background:#f0efe5;margin:20px 0}.part{display:flex;flex-direction:column;text-align:center;gap:9px}.part span{font:25px/1.6 var(--serif);border-bottom:2px solid var(--olive);padding:0 6px 5px}.part:nth-child(2) span{border-color:#b27c66}.part:nth-child(3) span{border-color:#788ea0}.part:nth-child(4) span{border-color:var(--gold)}.part small{font-size:11px;color:var(--muted)}.memory{background:var(--pale);padding:16px 22px;border-radius:4px;margin:25px 0}.memory summary{font-size:13px;font-weight:600;display:flex;justify-content:space-between;color:var(--olive)}.memory summary:after{content:'展开 ＋';font-weight:400;font-size:11px}.memory[open] summary:after{content:'收起 −'}.memory p{font-size:13px;margin:14px 0 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--pale);font-weight:500}.en{font-family:var(--serif)}.note-link{border-bottom:1px dashed var(--olive);font-size:13px;color:var(--olive);padding:0}.exercise{border:1px solid var(--line);padding:25px 28px;margin:30px 0;border-radius:4px;background:var(--white)}.exercise h3{font-size:20px;margin-bottom:9px}.exercise fieldset{border:0;margin:0;padding:0}.exercise legend{font-size:14px;margin:5px 0 12px}.options{display:grid;gap:8px;margin-bottom:17px}.options label{display:flex;gap:10px;align-items:baseline;padding:9px 13px;border:1px solid var(--line);border-radius:3px;font-size:13px;cursor:pointer}.options label:has(input:checked){border-color:var(--olive);background:var(--pale)}input[type=radio]{accent-color:var(--olive)}.feedback{margin-top:15px;font-size:13px}.feedback:empty{display:none}.correct{color:#456233}.incorrect{color:#98613c}.lesson-end{border-top:1px solid var(--line);padding-top:18px;margin-top:35px;display:flex;justify-content:space-between}.lesson-end a{font-size:13px;color:var(--olive)}.map-surface{background:var(--white);border:1px solid var(--line);border-radius:5px;padding:30px;min-height:350px;margin-bottom:45px}.map-surface:fullscreen{overflow:auto;background:var(--paper);padding:40px}.map-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:25px}.map-root{font:600 25px var(--serif);padding:10px 18px;background:var(--olive);color:white;display:inline-block;margin-bottom:15px;border-radius:4px}.tree{margin:0 0 0 12px;padding:0 0 0 25px;border-left:1px solid #b5bda0}.tree details{margin:12px 0}.tree summary{display:flex;gap:12px;align-items:baseline;font-size:14px;color:var(--olive)}.tree summary:before{content:'＋';font:15px var(--sans)}.tree details[open]>summary:before{content:'−'}.tree ul{padding:10px 0 8px 25px;list-style:none;border-left:1px solid var(--line);margin:7px 0 12px 5px}.tree li{margin:6px 0;font-size:13px;display:flex;gap:14px;align-items:baseline}.tree li a{color:var(--olive);border-bottom:1px solid #c4cbb5}.map-tip{margin:15px 0 0;font-size:12px;color:var(--muted)}.empty{text-align:center;padding:65px 20px}.empty h1{font-size:30px}footer{border-top:1px solid var(--line);padding:22px 5%;display:flex;gap:30px;align-items:center;color:var(--muted);font-size:11px}.footer-brand{font:16px var(--serif);color:var(--gold)}footer span:last-child{margin-left:auto}dialog{border:1px solid var(--line);border-radius:8px;padding:25px 30px;background:var(--white);color:var(--ink);width:min(620px,calc(100% - 32px));max-height:80vh;box-shadow:0 18px 70px #23334322}dialog::backdrop{background:#23334355;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-top h2{font-size:23px;margin:0}.icon-button{font-size:26px;line-height:1;padding:8px}#search-input{width:100%;padding:13px 15px;background:var(--paper);border:1px solid #b5baa5;border-radius:4px;color:var(--ink);font-size:14px}.search-note{margin:10px 0}.search-result{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.search-result small{display:block;font-size:11px;color:var(--muted)}#search-results{max-height:45vh;overflow:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:10px 20px;border-radius:5px;display:none;font-size:13px;z-index:100}.loading{padding:60px;text-align:center}
@media(min-width:1550px){.wrap{max-width:1340px}.workbench{max-width:1480px;gap:65px}.lesson-content{max-width:920px}}
@media(max-width:1100px){.site-header{gap:20px;padding:0 3%}.site-header nav{gap:17px}.search-trigger span:nth-child(2),.search-trigger kbd{display:none}.wordmark{font-size:25px}.workbench{grid-template-columns:190px minmax(0,1fr);gap:28px;padding:30px 28px}.home-intro{gap:35px}.home-lower{gap:40px}.wrap{padding:0 30px}}
@media(max-width:760px){body{font-size:14px}.site-header{flex-wrap:wrap;min-height:auto;gap:0;padding:20px 20px 0}.wordmark{font-size:27px}.search-trigger{margin-left:auto}.site-header nav{order:3;width:100%;overflow-x:auto;margin:12px 0 0;gap:25px}.site-header nav a{padding:10px 0 13px;font-size:12px}.wrap{padding:0 22px}.home-intro{display:block;padding:34px 0 25px}.home-intro h1{font-size:32px}.home-note{padding:13px 0 0;border-left:0;border-top:1px solid var(--line);margin-top:25px}.home-note .english-line{font-size:21px}.home-note .subtle{font-size:11px}.subject-grid{grid-template-columns:1fr}.subject{padding:18px 30px 18px 42px!important;border-left:0!important;border-bottom:1px solid var(--line)}.subject:last-child{border-bottom:0}.subject .number{position:absolute;left:0;top:25px;font-size:16px}.subject h3{font-size:21px;margin:0 0 5px}.subject p{min-height:0;margin:0}.subject .arrow{right:5px;top:26px}.section-heading h2{font-size:23px}.home-lower{display:block;margin:30px 0}.home-lower>section{margin-bottom:33px}.sample-row{grid-template-columns:62px 1fr 15px;gap:12px}.sample-row h3{font-size:17px}.badge{font-size:10px;padding:3px 7px}.workbench{display:block;padding:25px 22px 45px}.sidebar{position:static;border:1px solid var(--line);max-height:240px;padding:15px;margin-bottom:25px}.sidebar h2{font-size:19px}.sidebar a{display:inline-block;font-size:12px;margin:3px}.lesson-content h1{font-size:28px}.lesson-content .toolbar{gap:8px}.segmented button{padding:8px 15px}.lesson-content .toolbar .secondary:last-child{margin-left:0}.lesson-body{font-size:14px}.lesson-body h2{font-size:22px}.sentence-parts{gap:10px}.part span{font-size:20px}.example{padding:18px}.example .en{font-size:22px}.exercise{padding:20px}.lesson-list{grid-template-columns:1fr;padding-left:18px}.topic-title{font-size:19px}.topic-count{margin-left:auto;white-space:nowrap}.topic>summary{gap:9px}.topic>summary:after{margin-left:5px}.catalog-intro h1{font-size:30px}.map-surface{padding:18px}.map-root{font-size:22px}.tree{padding-left:13px;margin-left:3px}.tree li{display:block}.tree li .planned{margin-left:8px}.tree ul{padding-left:15px}footer{padding:20px 22px;flex-wrap:wrap;gap:5px 20px}footer span:last-child{width:100%;margin:0}.table-wrap{font-size:12px}th,td{padding:10px}.lesson-end{gap:18px}.reserved span{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.map-surface.map-expanded{position:fixed;inset:16px;z-index:60;margin:0;overflow:auto;padding:35px;background:var(--paper);box-shadow:0 0 0 30px #f8f6ef;}
@media(max-width:760px){.map-surface.map-expanded{inset:8px;padding:20px;}}

.quiz-question{margin-bottom:26px!important;padding-bottom:22px!important;border-bottom:1px solid var(--line)!important;min-width:0}.quiz-question legend{font-weight:500}.quiz-question .feedback{margin:12px 0 0}.quiz-summary{border-top:1px solid var(--line);padding-top:15px}.related-lessons{margin:32px 0}.related-lessons h2{font-size:23px}.related-lessons>div{display:flex;gap:15px 25px;flex-wrap:wrap}.related-lessons a{font-size:13px}

/* Keep the view switch reachable while reading long lessons. */
.lesson-content>.toolbar{position:sticky;top:0;z-index:12;background:var(--paper);padding-top:12px;margin-top:8px}

.comparison{padding:20px 24px;border:1px solid var(--line);border-radius:4px;margin:22px 0}.comparison .en{font:22px/1.7 var(--serif);margin:10px 0 14px}.comparison p:last-child{margin-bottom:0}.writing-model{margin:28px 0;padding:25px 28px;background:var(--white);border:1px solid var(--line);border-radius:4px}.writing-model h3{font-size:22px}.model-text{white-space:pre-wrap;font:19px/1.85 var(--serif);padding:22px 24px;background:#f0efe5;margin:20px 0;border-left:3px solid #b1b999;overflow-wrap:anywhere}@media(max-width:760px){.writing-model{padding:18px}.model-text{padding:17px;font-size:18px}.comparison{padding:18px}.comparison .en{font-size:20px}}
