:root{--paper:#f8f7f3;--ink:#242923;--muted:#62685e;--line:#d2d6cc;--green:#365d49;--wash:#edf0e8;--body:18px;--heading:26px;--display:38px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:var(--body)/1.85 'Microsoft YaHei','PingFang SC',system-ui,sans-serif}a{color:var(--green);text-underline-offset:5px}a:hover{text-decoration-thickness:2px}button,input,select,summary{font:inherit}button{border:1px solid var(--line);background:transparent;color:var(--green);padding:7px 14px;cursor:pointer;border-radius:2px}button:hover,button[aria-pressed=true]{background:var(--wash);border-color:var(--green)}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}h1,h2,h3,h4,p{margin:0 0 20px}h1{font:600 var(--display)/1.35 Georgia,'Noto Serif SC','Songti SC',SimSun,serif;letter-spacing:-.02em}h2{font:600 var(--heading)/1.5 Georgia,'Songti SC',SimSun,serif}h3,h4{font-size:var(--body);line-height:1.8}strong,b{font-weight:600}p{overflow-wrap:break-word}ul,ol{padding-left:28px}li+li{margin-top:10px}figure{margin:30px 0}figcaption{color:var(--muted);margin-top:12px}svg{display:block;max-width:100%;height:auto}svg text{font:18px 'Microsoft YaHei',sans-serif;fill:var(--ink)}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-100px}.skip:focus{top:10px;background:var(--paper);z-index:10}.shell{max-width:1400px;margin:auto;padding:32px 48px 72px}.mast{border-top:4px solid var(--ink);border-bottom:1px solid var(--ink);padding:15px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:28px}.mast>a{color:var(--ink);font-weight:600;text-decoration:none}.mast nav{display:flex;gap:25px;flex-wrap:wrap}.mast nav a{color:var(--muted);text-decoration:none}.hero{padding:48px 0 38px;max-width:920px}.eyebrow{color:var(--green);letter-spacing:.05em;margin-bottom:14px}.deck{color:var(--muted);max-width:740px}.layout{display:grid;grid-template-columns:250px minmax(0,850px);gap:64px;align-items:start}.sidebar{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding-right:16px}.sidebar a{display:block;padding:9px 0;text-decoration:none;color:var(--muted);border-bottom:1px solid var(--line)}.sidebar a[aria-current=true]{color:var(--green);font-weight:600}.sidebar a[data-read=true]::after{content:' · 已读';font-weight:400}.sidebar button{width:100%;margin-bottom:15px}.muted,.meta{color:var(--muted)}.meta{display:flex;gap:20px;flex-wrap:wrap}.lesson{min-width:0;border-bottom:1px solid var(--ink);padding-bottom:38px;margin-bottom:48px}.lesson>header{border-top:1px solid var(--ink);padding-top:20px}.goal{border-left:3px solid var(--green);padding:12px 20px;background:var(--wash)}.block{padding-top:24px;margin-bottom:10px}.block>h3{letter-spacing:.05em;color:var(--green);margin-bottom:13px}.block p:last-child{margin-bottom:0}.example{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.example>h3{margin-bottom:14px}.exercise{border-top:1px solid var(--line);padding:22px 0}.exercise>h4{color:var(--green)}details{border-top:1px solid var(--line);margin:12px 0}summary{cursor:pointer;padding:10px 0;color:var(--green)}details>div{padding:8px 0 12px}.review{margin-top:30px;border-block:1px solid var(--line);padding:22px 0}.pager{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:30px}.prereqs a{margin-right:15px}.math-inline{max-width:100%;vertical-align:baseline}.math-scroll,.formula{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:8px 0}.katex{font-size:1.1em}.katex-display{margin:12px 0}.katex .katex-mathml{position:absolute!important}.formula{scrollbar-width:thin}.home-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:65px;border-bottom:1px solid var(--ink);padding:48px 0 36px}.home-intro h1{max-width:680px}.note{border-left:2px solid var(--green);padding-left:22px}.courses{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}.course-card{padding:26px 0;border-bottom:1px solid var(--line)}.course-card h2{margin-bottom:10px}.course-card p{margin-bottom:12px}.course-card a{text-decoration:none}.chapter-number{color:var(--muted);margin-right:14px}.index-list{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.index-item{padding:22px 0;border-bottom:1px solid var(--line)}.index-item h2{margin-bottom:8px}.index-item p{margin-bottom:8px}.search{width:100%;border:1px solid var(--line);padding:13px 16px;background:transparent;color:var(--ink);margin:8px 0 16px}.footer{border-top:1px solid var(--ink);margin-top:48px;padding-top:20px;color:var(--muted)}.visual{padding:22px;border:1px solid var(--line);background:#f2f4ed}.visual h3{margin-bottom:8px}.visual input[type=range]{width:100%;accent-color:var(--green)}.controls,.visual-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:15px 0}.visual output{font-variant-numeric:tabular-nums}.visual .chart{max-width:660px;margin:0 auto}.visual .axis{stroke:#88917f;stroke-width:1;fill:none}.visual .curve{stroke:var(--green);stroke-width:3;fill:none}.visual .guide{stroke:#88917f;stroke-dasharray:5 5;fill:none}.visual .shade{fill:#365d4925;stroke:var(--green)}.visual .point{fill:var(--green);stroke:var(--paper);stroke-width:2}.visual .other{stroke:#777f73;stroke-width:2;fill:none}.visual .hole{fill:var(--paper);stroke:var(--green);stroke-width:3}.legacy-reading{padding:10px 0}.legacy-reading h3{font-size:var(--body)}.legacy-reading .chapter-position,.legacy-reading .chapter-goal,.legacy-reading .chapter-pager,.legacy-reading .chapter-takeaway{display:none}.table-wrap{max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:var(--body)}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:14px 16px 14px 0}th{color:var(--green)}.status{background:var(--wash);padding:16px 20px}.search-tools{max-width:850px}.notice{margin:12px 0;color:var(--muted)}.diagram-readout{min-height:3.7em}a[data-back]{display:inline-block;margin-top:12px}.chapter-training{padding-top:25px}noscript p{padding:15px;background:var(--wash)}
h2[tabindex="-1"]:focus{outline:none}
.part-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:14px}.part-heading h3,.part-heading h4{margin:0;color:var(--green)}.part-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;flex-shrink:0}.part-actions button{border:0;padding:2px 0;text-decoration:underline;text-underline-offset:5px}.part-actions button:hover{background:transparent}.part-completed{color:var(--green)}[data-completed=true]>.part-heading{margin-bottom:0}.part-body{padding-top:8px;min-width:0}.part-body[hidden]{display:none!important}.part-heading h3,.part-heading h4{min-width:0}.part-heading{flex-wrap:wrap}.part-body>.exercise{margin-top:12px}
@media print{.part-actions{display:none!important}.part-body[hidden]{display:block!important}}
.part-actions{gap:6px}.part-actions button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:5px;border:0;border-radius:50%;text-decoration:none;color:var(--muted)}.part-actions button:hover,.part-actions button[aria-pressed=true]{color:var(--green);background:var(--wash)}.part-actions svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.part-actions [aria-expanded=true] svg{transform:rotate(180deg)}.part-actions .completion-check{opacity:0}.part-actions [aria-pressed=true] circle{fill:var(--green);stroke:var(--green)}.part-actions [aria-pressed=true] .completion-check{opacity:1;stroke:var(--paper)}.part-completed{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.shell{padding-bottom:140px}.study-dock{position:fixed;right:32px;bottom:22px;z-index:20;display:flex;align-items:center;gap:16px;padding:12px 18px;background:var(--paper);border:1px solid var(--line);box-shadow:0 4px 20px #2429230d}.study-dock output,.study-stats p:last-child{font-variant-numeric:tabular-nums;font-family:Consolas,monospace}.study-dock #study-status{margin-left:14px}.study-dock button{white-space:nowrap}#study-dialog{width:800px;max-width:calc(100vw - 80px);max-height:85vh;overflow:auto;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:32px 38px}#study-dialog::backdrop{background:#24292355}.study-dialog-head,.study-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.study-dialog-head h2{margin-bottom:24px}.study-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:20px 0 8px;margin-bottom:24px;border-block:1px solid var(--line)}.study-stats p{margin-bottom:8px}.study-stats p:last-child{font-size:var(--heading)}.study-section-head{margin-top:30px}.achievement-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:0;padding:0}.achievement-list li{margin:0;padding:22px 0;border-top:1px solid var(--line)}.achievement h3{margin:8px 0}.achievement p{margin-bottom:10px}.achievement-state{color:var(--muted)}.achievement[data-unlocked=true] .achievement-state{color:var(--green);font-weight:600}.achievement[data-unlocked=true] .achievement-state::before{content:'✓ ';}.achievement progress{width:100%;height:6px;accent-color:var(--green);display:block;margin:18px 0}.study-section-head p{color:var(--green)}
@media print{.study-dock,#study-dialog{display:none!important}}
@media print{.sidebar,.mast nav,.pager,button,.controls,.visual-actions,.search-tools{display:none!important}.shell{padding:0}.layout,.courses,.home-intro{display:block}.lesson[hidden]{display:block!important}.lesson{break-before:page}.hero{padding:20px 0}a{color:inherit}.visual{break-inside:avoid}details{display:block}.katex{font-size:1em}}
