:root{--bg:#1b1712;--bg-panel:#221d16;--ink:#ece5d5;--ink-strong:#f4eee0;--muted:#a2957c;--faint:#6f6656;--accent:#cf9a52;--accent-ink:#241f17;--rule:#3a3227;--rule-soft:#2c261e;--selection:rgba(207,154,82,0.28);--maxw:1180px;--font-display:Georgia,"Times New Roman",serif;--font-serif:Georgia,"Times New Roman",serif}:root[data-theme=light]{--bg:#f4efe4;--bg-panel:#faf6ec;--ink:#2a241b;--ink-strong:#1b160f;--muted:#6d6350;--faint:#9a8f7a;--accent:#b3701f;--accent-ink:#fbf7ee;--rule:#d8cdb7;--rule-soft:#e6ddca;--selection:rgba(179,112,31,0.2)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--selection)}a{color:inherit;text-decoration:none}.shell{max-width:var(--maxw);margin:0 auto;padding:0 40px 96px}.topbar{justify-content:space-between;padding:26px 0 30px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.topbar,.topbar .center{display:flex;align-items:center}.topbar .center{gap:18px}.topbar .brandmark em{color:var(--accent);font-style:italic;font-family:var(--font-display);text-transform:none;letter-spacing:.02em}.topbar-actions{display:flex;align-items:center;gap:18px}.topbar .navarrow{color:var(--faint);font-size:15px}.icon-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;font-size:15px;line-height:1;transition:color .15s ease}.icon-btn:hover{color:var(--accent)}.icon-btn svg{display:block}.search-overlay{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;background:rgba(0,0,0,.55)}.search-modal{width:100%;max-width:620px;max-height:70vh;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--rule);border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden;text-transform:none;letter-spacing:normal;font-size:16px}.search-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--rule);color:var(--muted)}.search-input{flex:1 1;min-width:0;background:none;border:none;outline:none;color:var(--ink-strong);font:inherit;font-size:17px}.search-input::placeholder{color:var(--muted)}.search-kbd{font-family:ui-monospace,monospace;font-size:12px;letter-spacing:0;padding:4px 8px;border-radius:6px;background:var(--bg);color:var(--muted)}.search-results{overflow-y:auto;padding:6px}.search-result{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:8px;color:inherit;text-decoration:none}.search-result:focus-visible,.search-result:hover{background:var(--rule-soft);outline:none}.search-result-meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.search-result-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink-strong)}.search-result-dek{font-size:14px;color:var(--muted);line-height:1.4}.search-empty{padding:28px 14px;text-align:center;color:var(--muted)}.masthead{text-align:center;padding:8px 0 22px}.masthead h1{font-family:var(--font-display);font-weight:900;color:var(--ink-strong);font-size:clamp(42px,7.5vw,88px);line-height:.95;margin:0;letter-spacing:-.01em}.masthead .tagline{font-family:var(--font-display);font-style:italic;color:var(--muted);font-size:clamp(14px,1.7vw,18px);margin-top:16px}.rule{border:0;border-top:1px solid var(--rule);margin:22px 0}.rule.thick{border-top-width:2px}.filters{justify-content:space-between;gap:24px;padding:6px 0 4px}.filter-group,.filters{display:flex;align-items:center;flex-wrap:wrap}.filter-group{gap:12px}.filter-group .label{letter-spacing:.16em;color:var(--muted)}.filter-group .label,.pill{font-size:11px;text-transform:uppercase}.pill{font-family:var(--font-serif);font-weight:600;letter-spacing:.12em;color:var(--ink);background:transparent;border:1px solid var(--rule);border-radius:3px;padding:8px 15px;cursor:pointer;transition:all .15s ease}.pill:hover{border-color:var(--accent);color:var(--accent)}.pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.kicker{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:40px 0 18px;display:flex;align-items:center;gap:8px}.kicker:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.byline{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.byline .sep,.byline a{color:var(--accent)}.byline .sep{opacity:.6}.byline .info{color:var(--faint)}.lead{display:block}.lead h2{font-family:var(--font-display);font-weight:800;color:var(--ink-strong);font-size:clamp(28px,4.4vw,50px);line-height:1.02;margin:0 0 22px;letter-spacing:-.005em;transition:color .15s ease}.lead:hover h2{color:var(--accent)}.lead .cols{column-count:2;column-gap:44px}.lead .cols p{margin:0 0 16px}.dropcap:first-letter{font-family:var(--font-display);font-weight:800;float:left;font-size:3.6em;line-height:.72;padding:8px 10px 0 0;color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:0;gap:0;margin-top:6px}.story{padding:30px 30px 34px;border-top:1px solid var(--rule);border-right:1px solid var(--rule-soft)}.story:nth-child(3n){border-right:none;padding-right:4px}.story:nth-child(3n+1){padding-left:0}.story h3{font-family:var(--font-display);font-weight:700;color:var(--ink-strong);font-size:20px;line-height:1.12;margin:0 0 14px;transition:color .15s ease}.story:hover h3{color:var(--accent)}.story p{margin:0;font-size:15px;line-height:1.55;color:var(--ink)}.story .fade{-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent);max-height:168px;overflow:hidden}.empty{padding:60px 0;text-align:center;color:var(--muted);font-style:italic;font-family:var(--font-display);font-size:20px}.footer{margin-top:60px;padding-top:24px;border-top:2px solid var(--rule);justify-content:space-between;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);flex-wrap:wrap;gap:12px}.colophon,.footer{display:flex;align-items:center}.colophon{gap:14px}.colophon-text{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.3}.colophon-text .name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em;text-transform:none;color:var(--ink-strong)}.colophon-text .role{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.colophon-logo{width:40px;height:40px;object-fit:contain;flex:none}:root[data-theme=light] .colophon-logo{filter:invert(1) brightness(.35)}@media (max-width:640px){.footer{flex-direction:column;align-items:flex-start;gap:18px}.colophon{flex-direction:row-reverse}.colophon-text{align-items:flex-start}}.article{max-width:720px;margin:0 auto;padding:10px 0 40px}.back{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-block;margin:30px 0 26px}.back:hover{color:var(--accent)}.article h1{font-weight:800;color:var(--ink-strong);font-size:clamp(28px,5vw,46px);line-height:1.04;margin:12px 0 20px;letter-spacing:-.005em}.article .dek,.article h1{font-family:var(--font-display)}.article .dek{font-style:italic;color:var(--muted);font-size:19px;line-height:1.4;margin:0 0 28px}.article .body p{margin:0 0 20px;font-size:17px;line-height:1.7}.article .body h2{font-family:var(--font-display);font-weight:800;color:var(--ink-strong);font-size:24px;line-height:1.2;margin:40px 0 14px}.section-head{padding:4px 0 6px}.section-head .kicker{margin:10px 0 14px}.section-head h1{font-family:var(--font-display);font-weight:800;color:var(--ink-strong);font-size:clamp(28px,5vw,46px);line-height:1.04;margin:0 0 18px}.section-head .dek{font-family:var(--font-display);font-size:19px;line-height:1.4;max-width:720px}.section-head .dek,.section-list{font-style:italic;color:var(--muted);margin:0}.section-list{font-size:16px;line-height:1.7}.chapters,.section-list{list-style:none;padding:0}.chapters{margin:0}.chapter-row{display:grid;grid-template-columns:56px 1fr auto;align-items:baseline;grid-gap:16px;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule-soft)}.chapter-num{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;color:var(--accent)}.chapter-main{display:flex;flex-direction:column;gap:4px}.chapter-title{font-family:var(--font-display);font-weight:700;font-size:20px;line-height:1.15;color:var(--ink-strong);transition:color .15s ease}.chapter-row:hover .chapter-title{color:var(--accent)}.chapter-sections{font-size:15px;line-height:1.45;color:var(--muted)}.chapter-count{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);white-space:nowrap}.chapter-nav{display:flex;justify-content:space-between;gap:24px;margin-top:48px;padding-top:20px;border-top:1px solid var(--rule);font-size:14px;color:var(--muted)}.chapter-nav a:hover{color:var(--accent)}.curriculum-link{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:26px 0 0;padding:16px 20px;border:1px solid var(--rule);background:var(--bg-panel);transition:border-color .15s ease}.curriculum-link:hover{border-color:var(--accent)}.curriculum-link strong{font-family:var(--font-display);font-size:20px;color:var(--ink-strong)}.curriculum-link span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.story:nth-child(3n){border-right:1px solid var(--rule-soft);padding-right:30px}.story:nth-child(3n+1){padding-left:30px}.story:nth-child(2n){border-right:none;padding-right:4px}.story:nth-child(odd){padding-left:0}}@media (max-width:640px){.shell{padding:0 22px 64px}.lead .cols{column-count:1}.grid{grid-template-columns:1fr}.story{padding:26px 0;border-right:none!important;padding-left:0!important;padding-right:0!important}.topbar{font-size:11px}.topbar .brandmark{display:none}.filter-group{gap:8px}.icon-btn{padding:6px}.topbar,.topbar .center{gap:8px}.topbar-actions{gap:2px}.chapter-row{grid-template-columns:40px 1fr}.chapter-count{grid-column:2}.chapter-num{font-size:28px}}.lesson-content{font-size:18px;line-height:1.75;min-width:0}.lesson-content p{margin:0 0 20px}.lesson-content h2{font-family:var(--font-display);color:var(--ink-strong);font-size:clamp(23px,3.5vw,29px);line-height:1.3;margin:0 0 20px}.lesson-content h3{font-size:18px;margin:0 0 16px;color:var(--ink-strong)}.lesson-content a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.lesson-content li{margin-bottom:12px}.lesson-content ol,.lesson-content ul{padding-left:26px}.lesson-intro{font-size:20px}.lesson-contents,.lesson-goals{margin:30px 0;padding:24px;border:1px solid var(--rule)}.lesson-contents h2,.lesson-goals h2{font-size:21px;margin-bottom:12px}.lesson-contents ol,.lesson-goals ul{margin-bottom:0}.lesson-contents>a{display:inline-block;margin-top:14px}.lesson-section{padding:36px 0 16px;border-top:1px solid var(--rule);scroll-margin-top:24px}.lesson-equation{max-width:100%;overflow-x:auto;padding:12px 8px;margin:20px 0;background:var(--bg-panel);border:1px solid var(--rule-soft)}.lesson-equation .katex-display{margin:8px 0}.lesson-equation .katex-display>.katex{white-space:nowrap}.lesson-content .katex{font-size:1.08em}.lesson-example{margin:26px 0;padding:24px;background:var(--bg-panel);border-left:3px solid var(--accent)}.lesson-example ol{margin:0}.complex-diagram{margin:26px 0;padding:16px;border:1px solid var(--rule);background:var(--bg-panel)}.complex-diagram svg{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;font-family:var(--font-serif),serif}.complex-diagram figcaption{color:var(--muted);font-size:15px;text-align:center}.lesson-mistake{padding:0 0 0 20px;margin:26px 0;border-left:2px solid var(--muted)}.lesson-mistake>strong{color:var(--accent)}.lesson-mistake p{margin:8px 0 0}.lesson-recap{color:var(--muted);font-size:16px}.lesson-quiz{border-top:2px solid var(--accent);padding-top:36px;margin-top:30px;scroll-margin-top:24px}.lesson-quiz fieldset{padding:20px 0;border:0;border-bottom:1px solid var(--rule);min-width:0;margin:24px 0}.lesson-quiz legend{font-weight:600;padding:0;max-width:100%}.quiz-option{display:flex;align-items:baseline;gap:12px;padding:12px 16px;border:1px solid var(--rule);margin:10px 0;cursor:pointer}.quiz-option:has(input:checked),.quiz-option:hover{border-color:var(--accent);background:var(--bg-panel)}.quiz-option input{accent-color:var(--accent);flex-shrink:0}.quiz-correct{border-color:var(--accent);border-left-width:4px}.quiz-feedback{padding:16px;background:var(--bg-panel)}.quiz-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.quiz-actions button{font:inherit;padding:10px 18px;border:1px solid var(--accent);color:var(--bg);background:var(--accent);cursor:pointer}.quiz-actions button+button{color:var(--ink);background:transparent;border-color:var(--rule)}.quiz-actions button:disabled{opacity:.5;cursor:not-allowed}.lesson-content :focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lesson-quiz [role=status]{font-size:15px;color:var(--muted)}.lesson-navigation{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;border-top:1px solid var(--rule);padding-top:24px;margin-top:40px;font-size:16px}@media (max-width:640px){.lesson-content{font-size:17px}.lesson-intro{font-size:18px}.lesson-contents,.lesson-example,.lesson-goals{padding:18px}.lesson-equation{font-size:15px}.quiz-option{padding:12px}}.sketch{margin:32px 0;padding:12px;border:1px solid var(--rule);border-radius:12px}.sketch svg{display:block;width:100%;height:auto}.sketch figcaption{margin-top:8px;font-size:14px;text-align:center;color:#5f5a50}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0}.tags li{font-size:12px;letter-spacing:.04em;color:var(--accent);border:1px solid var(--rule);border-radius:999px;padding:4px 12px}.cover .sketch{margin:0 0 22px;padding:10px;aspect-ratio:1200/630;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 0 var(--rule),0 10px 24px -18px rgba(0,0,0,.6);transition:transform .25s ease,box-shadow .25s ease}.cover .sketch svg{width:100%;height:100%}.cover .sketch figcaption{display:none}.lead:hover .cover .sketch,.story:hover .cover .sketch{transform:translateY(-3px);box-shadow:0 1px 0 var(--accent),0 16px 28px -18px rgba(0,0,0,.7)}.lead .cover{page-break-inside:avoid;break-inside:avoid}.lead .cover .sketch{margin-bottom:20px}.widget{margin:32px 0;padding:18px 20px 20px;border:1px solid var(--rule);border-radius:12px;background:var(--w-paper);color:var(--w-ink);font-family:var(--font-serif);min-width:0}.widget-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#5f5a50;margin-bottom:12px}.widget svg{display:block;width:100%;height:auto}.widget-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.widget-actions button{font:inherit;font-size:15px;padding:8px 16px;border:1px solid var(--w-ink);border-radius:999px;background:transparent;color:var(--w-ink);cursor:pointer}.widget-actions button.primary{background:var(--w-ink);color:var(--w-paper)}.widget-actions button:disabled{opacity:.35;cursor:not-allowed}.widget :focus-visible{outline:2px solid var(--w-red);outline-offset:3px}.widget-progress{display:flex;gap:6px;margin-top:14px}.widget-progress span{flex:1 1;height:4px;border-radius:2px;background:#e4ded0;transition:background .3s}.widget-progress span.on{background:var(--w-red)}.derivation-lines{list-style:none;margin:0;padding:0}.derivation-lines li{display:flex;align-items:center;gap:12px;padding:2px 0;opacity:.4;transition:opacity .4s}.derivation-lines li.is-current{opacity:1;animation:derivation-in .5s ease-out}.derivation-lines li:not(.is-current) .katex [style*=color]{color:inherit!important}.derivation-num{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid;font-size:12px;line-height:22px;text-align:center}.derivation-lines li.is-current .derivation-num{background:var(--w-ink);color:var(--w-paper)}.derivation-math{min-width:0;overflow-x:auto;padding:0 4px}.derivation-math .katex-display{margin:6px 0;text-align:left}.derivation-math .katex-display>.katex{text-align:left;white-space:nowrap}.derivation-note{margin-top:14px;padding:12px 14px;border-left:3px solid var(--w-red);background:#f4f0e6;font-size:16px;line-height:1.6;min-height:4.6em}@keyframes derivation-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.secant svg text{font-family:var(--font-serif)}.secant-readout{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:12px 0 0}.secant-readout div{padding:8px 10px;background:#f4f0e6;border-radius:8px}.secant-readout dt{font-size:12px;color:#5f5a50}.secant-readout dd{margin:2px 0 0;font-size:20px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.secant-controls{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 20px;gap:12px 20px;margin-top:14px}.secant-controls label{display:flex;flex-direction:column;gap:4px;font-size:15px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.secant-controls input{width:100%;accent-color:var(--w-red)}.article .body .katex{font-size:1.05em}@media (max-width:640px){.widget{padding:14px 12px 16px}.derivation-lines li{gap:8px}.derivation-math{font-size:14px}.secant-readout{grid-template-columns:1fr 1fr 1fr}.secant-readout dd{font-size:16px}.secant-controls{grid-template-columns:1fr}.secant svg text{font-size:30px}}@media (prefers-reduced-motion:reduce){.derivation-lines li.is-current{animation:none}}