:root{--ink:#163331;--muted:#63736d;--paper:#f6f5ef;--panel:#fffef8;--line:#d9dfd5;--teal:#126c64;--orange:#b74e2f;--blue:#416aa0;--gold:#9c761b;--soft:#e9eee4;--red:#ae3b3b;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 "Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}button{border:0;color:inherit;background:none}a{color:var(--teal)}button:disabled{opacity:.35;cursor:default}.topbar{max-width:1440px;margin:auto;padding:22px 4%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:650;line-height:1.3}.brandmark{font-size:33px;display:grid;place-items:center;border:1px solid var(--teal);border-radius:50%;width:48px;height:48px;font-family:Georgia,serif}.brand small{display:block;font-size:11px;letter-spacing:1px;margin-top:6px;font-weight:400;color:var(--muted)}nav{display:flex;gap:5px}nav button{padding:9px 15px;border-radius:30px;font-size:14px}nav button.active{background:var(--ink);color:var(--panel)}.progress{font-size:12px;color:var(--muted);white-space:nowrap}main{max-width:1280px;margin:auto;padding:0 32px}.intro{display:flex;align-items:center;justify-content:space-between;gap:60px;padding:62px 0 48px}.intro>div:first-child{max-width:720px}.eyebrow,.tiny-label{font-size:12px;letter-spacing:1.6px;color:var(--teal);font-weight:600;margin:0 0 12px}.intro h1{font-family:Georgia,"Microsoft YaHei",serif;font-size:clamp(34px,4.4vw,58px);line-height:1.25;letter-spacing:-2px;margin:12px 0 22px;font-weight:600}.intro em{font-style:normal;color:var(--teal)}.lead{font-size:17px;line-height:1.85;color:#52645d;max-width:660px;margin:0}.intro-actions{display:flex;align-items:center;gap:24px;margin-top:30px}.primary{background:var(--teal);color:#fffef8;border-radius:8px;padding:12px 22px;font-size:15px}.primary:hover{background:#0c514b}.text-button{color:var(--teal);font-size:14px;padding:8px 0}.route-note{max-width:280px;border-left:2px solid var(--orange);padding:4px 0 4px 24px;font-size:13px;flex-shrink:0}.route-note strong{display:block;font-size:17px;line-height:1.5}.route-note p{color:var(--muted);margin:10px 0 14px}.route-note>span:last-child{font-size:11px;color:var(--gold)}h2{font-size:23px;line-height:1.4;font-weight:600;margin:0}h3{font-size:18px;margin:0 0 10px}.map-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.map-heading p{font-size:12px;color:var(--muted);margin:0}.network-scroll{margin-top:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:auto}#network{width:100%;min-width:980px;display:block}.net-edge{stroke:#cbd6cc;stroke-width:1.5;fill:none}.net-edge.cross{stroke-dasharray:5 5;stroke:#b7bcae}.net-node{cursor:pointer}.net-node rect{fill:var(--panel);stroke:#b5cabc;stroke-width:1.1;transition:.15s}.net-node:hover rect,.net-node:focus rect{fill:var(--soft);stroke:var(--teal);stroke-width:2}.net-node.done rect{fill:#e3eee6}.net-node text{pointer-events:none;fill:var(--ink)}.net-node .subtitle{fill:var(--muted);font-size:11px}.map-footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;margin-top:12px}.study-path{padding:52px 0 20px}#chapter-paths{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:24px}.chapter-path{border-top:2px solid var(--teal);padding-top:17px}.chapter-path span{font-size:11px;color:var(--gold)}.chapter-path h3{font-size:19px;margin:6px 0}.chapter-path p{font-size:13px;color:var(--muted);margin:0}.chapter-path button{margin-top:16px}.lesson-top{display:flex;justify-content:space-between;align-items:center;padding:24px 0}#lesson-count{font-size:12px;color:var(--muted)}.lesson-layout{display:grid;grid-template-columns:200px 1fr;gap:42px}.lesson-sidebar{position:sticky;top:24px;height:fit-content;padding-right:12px}.lesson-sidebar button{display:flex;text-align:left;align-items:center;gap:10px;padding:10px 12px;margin:3px 0;width:100%;border-radius:6px;font-size:13px;line-height:1.4}.lesson-sidebar button.active{background:var(--ink);color:var(--panel)}.lesson-sidebar button span{font-size:10px;opacity:.6}.nav-group-label{font-size:11px;letter-spacing:1px;color:var(--muted);margin:15px 12px 5px}.sidebar-note{font-size:11px;line-height:1.8;color:var(--muted);margin:22px 12px}.lesson-title{margin:12px 0 24px}.lesson-title h1{font-size:32px;line-height:1.4;margin:8px 0 15px}.lesson-title .lead{font-size:16px}.experiment{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.experiment-bar{padding:12px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.experiment-bar button{font-size:12px}.controls{display:flex;gap:14px 24px;flex-wrap:wrap;padding:18px 22px 10px;align-items:center}.control{font-size:12px;display:flex;flex-direction:column;gap:4px;min-width:140px;flex:1}.control label{display:flex;justify-content:space-between;gap:12px}.control output{color:var(--teal);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--teal);height:24px;cursor:pointer}select{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:8px;border-radius:5px;font-size:13px;max-width:100%}.action-button{background:var(--soft);padding:8px 14px;border-radius:6px;font-size:12px;min-height:40px}.stage{padding:0 10px;position:relative}.stage svg{width:100%;display:block;min-height:260px;user-select:none;-webkit-user-select:none}.stage [data-drag]{cursor:grab;touch-action:none}.stage text{font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:12px;fill:var(--muted)}.stage .axis-title{font-size:12px;fill:var(--ink)}.stage .plot-title{font-size:14px;fill:var(--ink);font-weight:600}.stage .note{font-size:12px;fill:var(--muted)}.readout{padding:14px 22px;background:#ecf1e9;color:var(--ink);font-size:13px;line-height:1.7;min-height:52px;font-variant-numeric:tabular-nums}.readout strong{color:var(--teal)}.task{margin:18px 0 28px;padding:13px 18px;border-left:3px solid var(--orange);background:#f1ede2;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:20px}.task strong{display:block;color:var(--orange);font-size:11px;margin-bottom:3px}.task button{flex-shrink:0}.task .result{display:block;margin-top:6px;color:var(--teal)}.explanation{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:22px}.explanation h3{font-size:17px}.explanation p{font-size:14px;color:#52645d;margin:0}.explanation .pitfall{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;font-size:13px;color:var(--muted)}.pitfall strong{color:var(--orange)}.derivation{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;font-size:14px}.derivation summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;list-style:none;color:var(--teal)}.derivation[open] summary{margin-bottom:16px}.derivation p{font-size:14px;color:#52645d}.formula{font:18px/1.8 Georgia,"Times New Roman",serif;color:var(--ink);background:#eeefe7;padding:14px 18px;border-radius:6px;overflow-wrap:anywhere}.concept-check{margin:30px 0}.concept-check h3{font-size:17px}#quiz-options{display:grid;gap:8px;margin-top:15px}#quiz-options button{padding:11px 15px;border:1px solid var(--line);border-radius:7px;background:var(--panel);text-align:left;font-size:13px}#quiz-options button.selected{border-color:var(--teal);background:var(--soft)}#quiz-feedback{font-size:13px;margin:12px 0;min-height:22px;color:var(--teal)}.connections{margin-top:25px}.connections button{border-bottom:1px solid var(--line);margin:5px 18px 5px 0;padding:5px 0;color:var(--teal);font-size:13px}.lesson-bottom{display:flex;justify-content:space-between;margin:35px 0 55px}.review-row{border-top:1px solid var(--line);padding:21px 0;display:grid;grid-template-columns:42px 1fr auto;gap:20px;align-items:center}.review-row p{margin:2px 0;font-size:13px;color:var(--muted)}.review-row .num{color:var(--teal);font:24px Georgia,serif}.review-summary{margin-bottom:30px;padding:22px;background:var(--soft);border-radius:12px;font-size:14px}.review-row h3{font-size:17px;margin:0}.review-row button{color:var(--teal);font-size:13px}.progress-bar{height:6px;background:#d8e1d4;border-radius:5px;margin:12px 0}.progress-bar i{height:100%;display:block;background:var(--teal);border-radius:5px}footer{border-top:1px solid var(--line);font-size:11px;color:var(--muted);padding:28px 0 35px;margin-top:48px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}footer button{font-size:11px!important}#sources{width:100%;font-size:12px}#sources p{max-width:900px}.quiz-note{font-size:13px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:1000px){.progress{display:none}.lesson-layout{grid-template-columns:1fr;gap:15px}.lesson-sidebar{position:static;padding:0}.lesson-sidebar>.tiny-label,.sidebar-note{display:none}#lesson-nav{display:flex;overflow-x:auto;gap:5px;padding-bottom:12px}.lesson-sidebar button{flex-shrink:0;width:auto;white-space:nowrap;padding:8px 12px}.nav-group-label{display:none}.intro{gap:30px}.route-note{max-width:230px}}@media(max-width:650px){body{font-size:15px}.topbar{padding:16px 20px;flex-wrap:wrap;gap:16px}.brand{font-size:17px}.brandmark{width:40px;height:40px;font-size:28px}nav{width:100%;justify-content:space-between}nav button{font-size:13px;padding:8px 12px}main{padding:0 20px}.intro{padding:35px 0 30px;display:block}.intro h1{font-size:35px;letter-spacing:-1px}.lead{font-size:15px}.route-note{max-width:none;margin-top:30px;padding-left:17px}.route-note p{margin:8px 0}.intro-actions{gap:18px}.primary{padding:11px 16px;font-size:13px}.text-button{font-size:13px}.map-heading{display:block}.map-heading p{margin-top:8px}.network-scroll{border-radius:12px}.map-footer{display:block;font-size:11px}.map-footer span{display:block;margin-top:5px}#chapter-paths{grid-template-columns:1fr 1fr;gap:25px 20px}.study-path{padding-top:32px}.chapter-path h3{font-size:17px}.chapter-path p{font-size:12px}.lesson-title h1{font-size:27px}.lesson-title .lead{font-size:15px}.experiment-bar{padding:10px 15px}.controls{padding:15px 15px 5px;gap:10px 18px}.control{min-width:120px}.stage{padding:0}.stage svg{min-height:240px}.readout{padding:12px 15px;font-size:12px}.task{display:block;padding:12px 14px;margin-bottom:24px}.task button{margin-top:10px}.explanation{grid-template-columns:1fr;gap:20px}.explanation .pitfall{grid-column:auto}.explanation p{font-size:14px}.formula{font-size:16px}.review-row{gap:12px;grid-template-columns:25px 1fr auto}.review-row h3{font-size:15px}.review-row p{font-size:12px}.review-row button{font-size:12px}footer{margin-top:30px}.stage text{font-size:13px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:is(.lesson-main,.lesson-sidebar,.lesson-layout,#lesson-nav){min-width:0}
@media(max-width:1000px){.lesson-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.stage text{font-size:15px}.stage .plot-title{font-size:16px}.stage .axis-title,.stage .note{font-size:14px}.experiment-bar{gap:15px}.experiment-bar>span{flex:1}.experiment-bar>button{flex-shrink:0}.stage svg{min-height:0}}
