:root{--bg: #0a0d12;--bg-elev: #10151c;--bg-elev2: #161d27;--bg-code: #0c1117;--line: #233041;--line-soft: #19222e;--text: #e6edf5;--text-soft: #a9b6c6;--text-mute: #6f7f92;--accent: #38bdf8;--accent-soft: rgba(56, 189, 248, .14);--accent-2: #a78bfa;--accent-2-soft: rgba(167, 139, 250, .14);--teal: #2dd4bf;--teal-soft: rgba(45, 212, 191, .14);--blue: #60a5fa;--blue-soft: rgba(96, 165, 250, .14);--pink: #f472b6;--pink-soft: rgba(244, 114, 182, .14);--green: #4ade80;--green-soft: rgba(74, 222, 128, .14);--amber: #fbbf24;--amber-soft: rgba(251, 191, 36, .14);--red: #f87171;--red-soft: rgba(248, 113, 113, .14);--purple: #a78bfa;--purple-soft: rgba(167, 139, 250, .14);--tok-comment: #6f7f92;--tok-keyword: #c792ea;--tok-string: #a5e075;--tok-number: #f78c6c;--tok-function: #82aaff;--tok-type: #ffcb6b;--tok-operator: #89ddff;--tok-punct: #a9b6c6;--radius: 12px;--sidebar-w: 286px;--toc-w: 236px;--content-w: 800px;--font: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;color-scheme:dark}:root[data-theme=light]{--bg: #f7f9fc;--bg-elev: #ffffff;--bg-elev2: #eef2f8;--bg-code: #f3f6fa;--line: #d9e1ec;--line-soft: #e7edf5;--text: #121a24;--text-soft: #3e4b5c;--text-mute: #7a8799;--accent: #0284c7;--accent-soft: rgba(2, 132, 199, .11);--accent-2: #7c3aed;--accent-2-soft: rgba(124, 58, 237, .1);--teal: #0d9488;--teal-soft: rgba(13, 148, 136, .11);--blue: #2563eb;--blue-soft: rgba(37, 99, 235, .1);--pink: #db2777;--pink-soft: rgba(219, 39, 119, .1);--green: #16a34a;--green-soft: rgba(22, 163, 74, .1);--amber: #b45309;--amber-soft: rgba(180, 83, 9, .1);--red: #dc2626;--red-soft: rgba(220, 38, 38, .1);--purple: #7c3aed;--purple-soft: rgba(124, 58, 237, .1);--tok-comment: #7a8799;--tok-keyword: #8b2fc9;--tok-string: #2f7d1e;--tok-number: #c2410c;--tok-function: #1d4ed8;--tok-type: #a16207;--tok-operator: #0e7490;--tok-punct: #3e4b5c;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd{font-family:var(--mono)}img,svg,canvas,video{max-width:100%}::selection{background:var(--accent-soft)}button{font:inherit}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--toc-w);min-height:100vh}.app.no-toc{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--line);background:var(--bg-elev);padding:16px 14px 40px;font-size:14px;z-index:30}.sidebar::-webkit-scrollbar,.toc::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb,.toc::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px}.brand .logo{width:32px;height:32px;border-radius:9px;flex:none}.brand a{color:var(--text);font-weight:750;font-size:16px;letter-spacing:-.01em}.brand a:hover{text-decoration:none}.brand .tag{font-size:11px;color:var(--text-mute);display:block;font-weight:500;margin-top:-2px}.side-tools{display:flex;gap:6px;margin:0 4px 12px}.search-btn{flex:1;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;background:var(--bg-elev2);border:1px solid var(--line);color:var(--text-mute);cursor:pointer;font-size:13px}.search-btn kbd{margin-left:auto;font-size:11px;border:1px solid var(--line);border-radius:5px;padding:0 5px}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;cursor:pointer;background:var(--bg-elev2);border:1px solid var(--line);color:var(--text-soft)}.icon-btn:hover{color:var(--text);border-color:var(--text-mute)}.progress-mini{margin:4px 8px 14px;font-size:12px;color:var(--text-mute)}.progress-mini .bar{height:5px;background:var(--bg-elev2);border-radius:3px;overflow:hidden;margin-top:5px}.progress-mini .bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.part{margin-top:14px}.part-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mute);padding:4px 8px;font-weight:650}.nav-link{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:8px;color:var(--text-soft);line-height:1.35}.nav-link:hover{background:var(--bg-elev2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--text)}.nav-link .num{font-family:var(--mono);font-size:11px;color:var(--text-mute);min-width:20px;padding-top:2px}.nav-link .dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--line);margin-left:auto;margin-top:5px;flex:none}.nav-link .dot.done{background:var(--green);border-color:var(--green)}.main{min-width:0;padding:36px 48px 120px}.article{max-width:var(--content-w);margin:0 auto}.toc{position:sticky;top:0;height:100vh;overflow-y:auto;padding:36px 18px 40px 8px;font-size:13px}.toc-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mute);margin-bottom:10px;font-weight:650}.toc a{display:block;color:var(--text-mute);padding:3px 0 3px 10px;border-left:2px solid var(--line-soft);line-height:1.4}.toc a.h3{padding-left:22px;font-size:12.5px}.toc a:hover{color:var(--text);text-decoration:none}.toc a.active{color:var(--accent);border-left-color:var(--accent)}.mobile-bar{display:none}.chapter-head{margin-bottom:34px}.crumbs{font-size:13px;color:var(--text-mute);margin-bottom:10px}.chapter-head h1{font-size:42px;line-height:1.12;letter-spacing:-.025em;margin:0 0 14px}.lede{font-size:19.5px;color:var(--text-soft);line-height:1.6;margin:0 0 16px}.meta{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text-mute)}.meta span{border:1px solid var(--line);border-radius:999px;padding:2px 10px}.article h2{font-size:28px;letter-spacing:-.015em;line-height:1.25;margin:56px 0 14px;scroll-margin-top:20px}.article h3{font-size:21px;line-height:1.3;margin:34px 0 10px;scroll-margin-top:20px}.article h4{font-size:17px;margin:24px 0 8px}.article p{margin:0 0 16px}.article ul,.article ol{padding-left:24px;margin:0 0 18px}.article li{margin:4px 0}.article strong,.article b{color:var(--text)}.article :not(pre)>code{background:var(--bg-elev2);border:1px solid var(--line-soft);padding:1px 6px;border-radius:6px;font-size:.86em}.article hr{border:none;border-top:1px solid var(--line);margin:40px 0}.article table{width:100%;border-collapse:collapse;margin:6px 0 22px;font-size:15px}.table-wrap{overflow-x:auto;margin:6px 0 22px}.table-wrap table{margin:0}.article th,.article td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}.article th{color:var(--text-soft);font-weight:650;background:var(--bg-elev)}.article blockquote{margin:0 0 18px;padding:4px 18px;border-left:3px solid var(--accent);color:var(--text-soft)}kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:0 6px;font-size:.85em;background:var(--bg-elev)}.callout{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--bg-elev);border-radius:10px;padding:14px 18px;margin:22px 0}.callout-title{font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;display:flex;align-items:center;gap:8px}.callout>:last-child{margin-bottom:0}.callout p:last-child{margin-bottom:0}.callout.intuition{border-left-color:var(--accent)}.callout.intuition .callout-title{color:var(--accent)}.callout.note{border-left-color:var(--blue)}.callout.note .callout-title{color:var(--blue)}.callout.warning{border-left-color:var(--red);background:linear-gradient(0deg,var(--red-soft),var(--red-soft)),var(--bg-elev)}.callout.warning .callout-title{color:var(--red)}.callout.example{border-left-color:var(--green)}.callout.example .callout-title{color:var(--green)}.callout.history{border-left-color:var(--amber)}.callout.history .callout-title{color:var(--amber)}.callout.exercise{border-left-color:var(--purple)}.callout.exercise .callout-title{color:var(--purple)}.callout.interview{border-left-color:var(--pink);background:linear-gradient(0deg,var(--pink-soft),var(--pink-soft)),var(--bg-elev)}.callout.interview .callout-title{color:var(--pink)}.callout.production{border-left-color:var(--teal)}.callout.production .callout-title{color:var(--teal)}figure{margin:26px 0}.fig{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:18px;overflow-x:auto}.fig.board{background:radial-gradient(circle at 1px 1px,var(--line-soft) 1px,transparent 0) 0 0 / 18px 18px,var(--bg-elev)}.fig svg{display:block;margin:0 auto}figcaption{font-size:14px;color:var(--text-mute);margin-top:10px;line-height:1.55}figcaption b{color:var(--text-soft)}.svg-box{fill:var(--bg-elev2);stroke:var(--line);stroke-width:1.5}.svg-label{fill:var(--text);font:600 13px var(--font)}.svg-sub{fill:var(--text-mute);font:400 11.5px var(--font)}.svg-mono{fill:var(--text-soft);font:500 11.5px var(--mono)}.svg-line{stroke:var(--text-mute);stroke-width:1.5;fill:none}.svg-accent{stroke:var(--accent)}.svg-grid{stroke:var(--line-soft);stroke-width:1}.code{position:relative;margin:18px 0 22px;border:1px solid var(--line);border-radius:10px;background:var(--bg-code);overflow:hidden}.code-head{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid var(--line-soft);font-size:12.5px;color:var(--text-mute);font-family:var(--mono)}.code-head .lang{margin-left:auto;text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.code-head button{background:none;border:1px solid var(--line);color:var(--text-mute);border-radius:6px;font-size:11px;padding:1px 8px;cursor:pointer}.code-head button:hover{color:var(--text)}.code pre{margin:0;padding:14px 16px;overflow-x:auto;font-size:13.5px;line-height:1.6}.code pre .ln{display:inline-block;width:2.2em;color:var(--text-mute);opacity:.55;-webkit-user-select:none;user-select:none;text-align:right;margin-right:14px}.code pre .hl-line{background:var(--accent-soft);display:block;margin:0 -16px;padding:0 16px}.code-output{border-top:1px dashed var(--line);padding:10px 16px;font-family:var(--mono);font-size:12.5px;color:var(--text-soft);white-space:pre-wrap;background:var(--bg-elev)}.code-tabs{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--line-soft);overflow-x:auto}.code-tabs button{background:none;border:none;color:var(--text-mute);padding:6px 12px;border-radius:7px 7px 0 0;cursor:pointer;font-size:13px;white-space:nowrap}.code-tabs button.on{color:var(--text);background:var(--bg-elev2);box-shadow:inset 0 -2px 0 var(--accent)}.interactive{border:1px solid var(--line);border-radius:14px;margin:30px 0;background:var(--bg-elev);overflow:hidden}.interactive-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line-soft);background:linear-gradient(90deg,var(--accent-soft),transparent 70%);flex-wrap:wrap}.interactive-head .tag{font-size:10.5px;font-weight:750;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 8px}.interactive-head .tag.game{color:var(--pink);border-color:var(--pink)}.interactive-head .tag.lab{color:var(--green);border-color:var(--green)}.interactive-head .title{font-weight:650;font-size:15px}.interactive-head .hint{margin-left:auto;font-size:12.5px;color:var(--text-mute)}.interactive-body{padding:16px 18px 18px}.interactive-body>p{color:var(--text-soft);font-size:15px}.viz{margin:10px 0;overflow-x:auto}.viz svg{display:block;margin:0 auto}.viz-note{font-size:14px;color:var(--text-soft);background:var(--bg-elev2);border-radius:9px;padding:9px 12px;margin-top:10px;line-height:1.55}.viz-note b{color:var(--text)}.controls{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end;margin:4px 0 10px}.ctl{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-soft);min-width:160px}.ctl-label{display:flex;justify-content:space-between;gap:10px}.ctl-label .val{font-family:var(--mono);color:var(--accent);font-size:12.5px}.ctl input[type=range]{width:100%;accent-color:var(--accent)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg-elev2);flex-wrap:wrap}.seg button{background:none;border:none;color:var(--text-soft);padding:5px 11px;cursor:pointer;font-size:13px;border-right:1px solid var(--line-soft)}.seg button:last-child{border-right:none}.seg button.on{background:var(--accent);color:#061018;font-weight:650}.btn{background:var(--bg-elev2);border:1px solid var(--line);color:var(--text);padding:6px 14px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:550;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:#061018;border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{border-color:var(--red);color:var(--red)}.btn:disabled{opacity:.5;cursor:not-allowed}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{accent-color:var(--accent);width:16px;height:16px}.stepper{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 10px}.stepper .pips{display:flex;gap:5px;flex-wrap:wrap}.stepper .pip{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--bg-elev2);color:var(--text-mute);font-size:12px;cursor:pointer;font-family:var(--mono)}.stepper .pip.on{background:var(--accent);color:#061018;border-color:var(--accent);font-weight:700}.stepper .pip.past{border-color:var(--accent);color:var(--accent)}.stepper .step-name{font-size:13.5px;color:var(--text-soft);margin-left:4px}.score{display:inline-flex;gap:6px;align-items:baseline;font-family:var(--mono);font-size:13px;color:var(--text-soft);background:var(--bg-elev2);border:1px solid var(--line);border-radius:9px;padding:4px 10px}.score b{color:var(--accent);font-size:16px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:10px 0}.stat{background:var(--bg-elev2);border:1px solid var(--line-soft);border-radius:10px;padding:9px 12px}.stat .k{font-size:11.5px;color:var(--text-mute);text-transform:uppercase;letter-spacing:.05em}.stat .v{font-family:var(--mono);font-size:19px;font-weight:650;color:var(--text);overflow-wrap:anywhere;line-height:1.35}.stat.good .v{color:var(--green)}.stat.bad .v{color:var(--red)}.stat.warn .v{color:var(--amber)}.stat.accent .v{color:var(--accent)}.symbol-strip{display:grid;grid-template-columns:minmax(200px,.9fr) 2fr;gap:14px;margin:26px 0}.sym-card,.step-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.sym-card h4,.steps h4{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-mute)}.sym-row{display:flex;gap:10px;font-size:14px;margin:6px 0;line-height:1.45}.sym-row .s{font-family:var(--mono);color:var(--accent);min-width:64px;font-size:13px}.steps{display:flex;flex-direction:column;gap:8px}.step-card{display:flex;gap:12px;padding:10px 14px;font-size:14.5px;line-height:1.5}.step-card .n{flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:750;font-size:12px;display:grid;place-items:center;font-family:var(--mono)}details.reveal{border:1px solid var(--line);border-radius:10px;margin:12px 0 18px;background:var(--bg-elev)}details.reveal summary{cursor:pointer;padding:10px 14px;font-weight:600;font-size:14.5px;color:var(--text-soft)}details.reveal[open] summary{border-bottom:1px solid var(--line-soft)}.reveal-body{padding:12px 16px;font-size:15.5px}.reveal-body>:last-child{margin-bottom:0}.quiz{border:1px solid var(--line);border-radius:14px;margin:30px 0;overflow:hidden;background:var(--bg-elev)}.quiz-head{padding:10px 16px;font-weight:700;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px}.quiz-head .score{margin-left:auto}.quiz-q{padding:14px 16px;border-bottom:1px solid var(--line-soft)}.quiz-q:last-child{border-bottom:none}.quiz-q .q{font-weight:600;margin-bottom:10px;font-size:15.5px}.quiz-q .opts{display:flex;flex-direction:column;gap:6px}.quiz-q .opts button{text-align:left;background:var(--bg-elev2);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:8px 12px;cursor:pointer;font-size:14.5px;line-height:1.45}.quiz-q .opts button:hover:not(:disabled){border-color:var(--accent)}.quiz-q .opts button.right{border-color:var(--green);background:var(--green-soft)}.quiz-q .opts button.wrong{border-color:var(--red);background:var(--red-soft)}.quiz-q .opts button:disabled{cursor:default}.quiz-q .explain{margin-top:10px;font-size:14.5px;color:var(--text-soft);background:var(--bg-elev2);border-radius:9px;padding:9px 12px}.takeaways{border:1px solid var(--accent);background:var(--accent-soft);border-radius:14px;padding:16px 20px;margin:34px 0 20px}.takeaways h3{margin:0 0 8px!important;font-size:15px!important;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.takeaways ul{margin:0}.reading li{margin:6px 0}.reading .note{color:var(--text-mute);font-size:14px}.badge{display:inline-block;font-size:11.5px;font-weight:650;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);vertical-align:middle}.badge.teal{background:var(--teal-soft);color:var(--teal)}.badge.purple{background:var(--purple-soft);color:var(--purple)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.pink{background:var(--pink-soft);color:var(--pink)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.two-col>div>:last-child{margin-bottom:0}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.card h4{margin-top:0!important}.mono{font-family:var(--mono)}.muted{color:var(--text-mute)}.flash-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.flashcard{width:100%;max-width:560px;height:220px;perspective:1200px;cursor:pointer}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .55s;transform-style:preserve-3d}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flash-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;border-radius:14px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;font-size:17px;line-height:1.5}.flash-face.front{background:linear-gradient(135deg,var(--accent-soft),var(--accent-2-soft)),var(--bg-elev2);font-weight:650;font-size:21px}.flash-face.back{background:var(--bg-elev2);transform:rotateY(180deg);font-size:15.5px;color:var(--text-soft)}.seq svg text{font-family:var(--font)}.chapter-foot{margin-top:60px;padding-top:24px;border-top:1px solid var(--line)}.complete-btn{margin-bottom:22px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pager a{border:1px solid var(--line);border-radius:12px;padding:12px 16px;color:var(--text);background:var(--bg-elev)}.pager a:hover{border-color:var(--accent);text-decoration:none}.pager .dir{font-size:12px;color:var(--text-mute)}.pager .next{text-align:right;grid-column:2}.palette-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.palette{width:min(620px,92vw);background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #00000080}.palette input{width:100%;padding:14px 16px;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--text);font-size:16px;outline:none}.palette .results{max-height:50vh;overflow-y:auto}.palette .res{display:block;padding:10px 16px;color:var(--text);border-bottom:1px solid var(--line-soft)}.palette .res.sel,.palette .res:hover{background:var(--accent-soft);text-decoration:none}.palette .res .sub{font-size:12.5px;color:var(--text-mute)}.hero{padding:26px 0 10px}.hero h1{font-size:54px;line-height:1.05;letter-spacing:-.035em;margin:0 0 16px}.hero h1 .grad{background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{font-size:20px;color:var(--text-soft);max-width:680px}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 10px}.hero-cta .btn{padding:10px 18px;font-size:15px}.course-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:18px 0 30px}.ch-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--text);display:flex;flex-direction:column;gap:6px;transition:border-color .15s,transform .15s}.ch-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}.ch-card .n{font-family:var(--mono);font-size:12px;color:var(--accent)}.ch-card .t{font-weight:700;font-size:16px;line-height:1.3}.ch-card .d{font-size:13.5px;color:var(--text-soft);line-height:1.5}.ch-card .f{font-size:12px;color:var(--text-mute);margin-top:auto;display:flex;gap:10px}.part-head{display:flex;align-items:baseline;gap:12px;margin-top:30px}.part-head h2{margin:0!important;font-size:22px!important}.part-head .sub{color:var(--text-mute);font-size:14px}@media (max-width: 1240px){.app{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.toc{display:none}}@media (max-width: 900px){.app,.app.no-toc{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;left:0;top:0;width:min(300px,86vw);transform:translate(-102%);transition:transform .2s;box-shadow:10px 0 40px #0006}.sidebar.open{transform:none}.mobile-bar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20;background:var(--bg-elev);border-bottom:1px solid var(--line);padding:8px 16px;margin:-22px -16px 18px}.mobile-bar .t{font-weight:700}.main{padding:22px 16px 90px}.chapter-head h1{font-size:32px}.hero h1{font-size:38px}.lede{font-size:17.5px}.two-col,.symbol-strip,.pager{grid-template-columns:1fr}.pager .next{grid-column:1}.interactive-head .hint{margin-left:0;width:100%}}
