@font-face{font-family:Geist;src:url("fonts/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("fonts/GeistMono-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{--paper:#f4f2eb;--surface:#fffefa;--ink:#171917;--subtle:#e2e0d7;--muted:#66706a;--green:#0a7952;--lime:#b7ef63;--orange:#e45e2b;--blue:#315fd2;--code:#101210;--measure:48rem;--rail:17rem;--sans:Geist,ui-sans-serif,system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:430 1rem/1.72 var(--sans);text-rendering:optimizeLegibility}::selection{background:var(--lime);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:40;top:.75rem;left:.75rem;padding:.65rem .8rem;background:var(--lime);color:var(--ink);border:2px solid var(--ink);transform:translateY(-180%);font:750 .75rem var(--mono)}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;min-height:4.65rem;padding:.8rem max(1.1rem,calc((100% - 92rem)/2));background:var(--ink);color:var(--surface);border-bottom:5px solid var(--green);box-shadow:0 .35rem 1.2rem rgb(23 25 23/.16)}.masthead{display:flex;gap:1rem;align-items:baseline;min-width:0}.course-code,.eyebrow{margin:0;font:700 .7rem/1.25 var(--mono);letter-spacing:.08em;text-transform:uppercase}.course-code{color:var(--lime);text-decoration:none}.header-context{margin:0;overflow:hidden;color:#c9d1cc;font:500 .78rem/1.2 var(--mono);text-overflow:ellipsis;white-space:nowrap}.header-actions{display:flex;gap:.45rem;align-items:center}.palette-button,.theme-toggle{min-height:2.45rem;border:1px solid #647168;border-radius:0;padding:.45rem .65rem;background:transparent;color:var(--surface);font:700 .68rem var(--mono);cursor:pointer}.palette-button kbd{margin-left:.45rem;color:var(--lime);font:inherit}.theme-toggle{width:2.45rem;color:var(--lime);font-size:1rem}.reading-meter{grid-column:1/-1;width:100%;height:.25rem;accent-color:var(--orange)}
.book-nav{position:fixed;z-index:15;top:5.1rem;bottom:0;left:0;width:var(--rail);overflow:auto;padding:.8rem .75rem 2rem;border-right:1px solid var(--ink);background:var(--surface);font:580 .75rem/1.4 var(--mono);box-shadow:4px 0 0 var(--ink)}.book-nav summary{display:flex;gap:.55rem;align-items:center;padding:.5rem 0 .8rem;cursor:pointer;list-style:none;color:var(--ink);border-bottom:1px solid var(--ink);font-weight:750}.book-nav summary::-webkit-details-marker{display:none}.book-nav [data-current-label]{margin-left:auto;color:var(--orange);font-size:.66rem}.mobile-nav-label,.mobile-close-label{display:none}.book-nav ol{margin:.35rem 0;padding:0;list-style:none}.book-nav li{margin:0}.nav-part{margin:1rem 0!important;border-top:1px solid var(--subtle)}.nav-part>a{display:grid;gap:.15rem;padding:.65rem 0 .45rem;color:var(--ink);text-decoration:none}.nav-part>a strong{color:var(--green);font-size:.68rem;text-transform:uppercase}.nav-part>a span{font:700 .75rem/1.3 var(--sans)}.chapter-link,.appendix-nav a{display:block;padding:.36rem .1rem .36rem .55rem;color:var(--muted);text-decoration:none}.chapter-link>span{display:inline-block;width:2rem;color:var(--orange);font-size:.66rem}.chapter-link:hover,.appendix-nav a:hover{color:var(--green);text-decoration:underline;text-underline-offset:.2em}.chapter-link.is-current{padding-left:.45rem;border-left:3px solid var(--orange);color:var(--ink);font-weight:750}.appendix-nav{margin-top:1.2rem!important;padding-top:.9rem!important;border-top:1px solid var(--ink)}.appendix-nav strong{font-size:.68rem;color:var(--green)}
.reading-shell{max-width:calc(var(--measure) + 26rem);margin:0 auto;padding:3rem 1.5rem 5rem calc(var(--rail) + 3rem)}.book-cover{margin:0 0 5rem;padding:clamp(2rem,6vw,5rem) 0 3.5rem;border-bottom:5px solid var(--green)}.book-cover h1{max-width:12ch;margin:.55rem 0 .8rem;font:720 clamp(3rem,7vw,6.2rem)/.88 var(--sans);letter-spacing:-.085em}.book-cover>p:not(.eyebrow){max-width:35rem;margin:0 0 1.6rem;color:#3f4943;font-size:1.1rem}.start-reading{display:inline-block;padding:.8rem 1rem;border:2px solid var(--ink);background:var(--lime);color:var(--ink);box-shadow:4px 4px 0 var(--ink);font:750 .72rem var(--mono);text-decoration:none}.start-reading:hover{background:var(--orange);color:#fff}.book-preface{margin-bottom:4rem}.book-part{margin:5rem 0}.part-header{margin:0 0 2.5rem;padding:1.2rem 0;border-top:5px solid var(--green);border-bottom:1px solid var(--ink)}.part-header .eyebrow{color:var(--green)}.part-header h2{margin:.45rem 0 0;font:720 clamp(2.2rem,4.5vw,4rem)/.92 var(--sans);letter-spacing:-.075em}.chapter,.book-chapter{position:relative;margin:4.5rem 0}.chapter-header{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;align-items:end;margin:0 0 2rem;padding:1rem 0 1.15rem;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}.chapter-header .eyebrow{grid-column:1/-1;color:var(--orange)}.chapter-number{grid-row:2;margin:0;color:var(--green);font:700 1.3rem/1 var(--mono)}.chapter-header h1,.chapter-header h2{margin:0;font:710 clamp(1.9rem,4vw,3.35rem)/.96 var(--sans);letter-spacing:-.065em}.chapter-route{grid-column:1/-1;color:var(--blue);font:700 .75rem var(--mono);text-underline-offset:.2em}
.chapter-outline{float:right;width:min(15rem,32%);margin:.1rem 0 1.5rem 2.5rem;padding:.85rem;border:1px solid var(--ink);background:var(--surface);box-shadow:3px 3px 0 var(--subtle)}.chapter-outline .eyebrow{color:var(--green)}.chapter-outline ol{margin:.6rem 0 0;padding:0;list-style:none}.chapter-outline li+li{margin-top:.35rem}.chapter-outline a{color:var(--muted);font-size:.76rem;line-height:1.35;text-decoration:none}.chapter-outline a:hover{color:var(--green);text-decoration:underline;text-underline-offset:.18em}
.content-section{clear:none;margin:2.4rem 0}.content-section h2{margin:0 0 .85rem;padding-top:1rem;border-top:2px solid var(--ink);font:700 clamp(1.45rem,2.5vw,2.1rem)/1.05 var(--sans);letter-spacing:-.045em}.content-section h3,.appendix h3{margin:2rem 0 .65rem;color:var(--green);font:720 1rem/1.25 var(--mono);letter-spacing:.01em}.content-section h3::before,.appendix h3::before{content:"→ ";color:var(--orange)}p{margin:0 0 1.12rem}a{color:var(--blue);text-decoration-thickness:.08em;text-underline-offset:.17em}em{color:#3f4943}code{padding:.06em .25em;background:#e8eee6;color:#075739;font:.88em/1.4 var(--mono)}pre{overflow:auto;margin:1.65rem 0;padding:1.2rem;border:1px solid var(--ink);background:var(--code);color:#e8f2e9}pre code{padding:0;background:none;color:inherit}ul,ol{margin:.7rem 0 1.3rem;padding-left:1.4rem}li{margin:.42rem 0;padding-left:.18rem}hr{height:0;margin:3rem 0;border:0;border-top:2px dashed var(--ink)}
.math-inline{white-space:nowrap}.math-display{overflow:auto;margin:1.45rem 0;padding:1rem;border-block:1px solid var(--ink);background:#edf5e8;text-align:center}.table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--ink);background:var(--surface)}table{width:100%;border-collapse:collapse;font:510 .84rem/1.42 var(--sans)}th,td{padding:.72rem .8rem;text-align:left;vertical-align:top;border-right:1px solid var(--subtle);border-bottom:1px solid var(--subtle)}th{background:var(--ink);color:var(--surface);font:680 .7rem var(--mono);letter-spacing:.04em}.callout{clear:both;margin:1.8rem 0;padding:1rem 1.1rem;border:2px solid var(--blue);border-left-width:.5rem;background:#eef2ff;font:.93rem/1.55 var(--sans)}.callout p:last-child{margin-bottom:0}.callout::before{display:block;margin-bottom:.45rem;color:var(--blue);font:720 .67rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.callout-note::before{content:"Note //"}.callout-caution{border-color:var(--orange);background:#fff2ea}.callout-caution::before{content:"Caution //";color:var(--orange)}.callout-theorem{border-color:var(--green);background:#edf5e8}.callout-theorem::before{content:"Theorem //";color:var(--green)}.callout-definition::before{content:"Definition //"}.worked-example{margin-inline:-1rem;padding:1rem;border-left:5px solid var(--green);background:#edf5e8}.worked-example h3{margin-top:0}.section-exercises{padding:1.1rem;border:2px solid var(--ink);background:var(--surface);box-shadow:5px 5px 0 var(--lime)}.section-exercises h2::before{content:"Practice / ";color:var(--orange);font-family:var(--mono);font-size:.62em}.section-summary{border-left:5px solid var(--green);padding-left:1.1rem}.section-formulas{padding:1rem 1.1rem;border:1px solid var(--ink);background:#eaf1e8}.figure-placeholder{clear:both;margin:2rem 0;padding:1rem;border:2px dashed var(--ink);background:var(--surface);color:var(--muted);font:.88rem/1.5 var(--mono)}.figure-placeholder::before{content:"FIGURE SPECIFICATION";display:block;margin-bottom:.55rem;color:var(--orange);font:720 .67rem var(--mono);letter-spacing:.08em}.figure-placeholder figcaption{margin:0}.appendix{margin:3rem 0}.appendix h3{padding-top:1rem;border-top:2px solid var(--ink)}
.site-footer{clear:both;margin-left:var(--rail);padding:1.4rem max(1.1rem,calc((100% - 92rem)/2));border-top:2px solid var(--ink);background:var(--ink);color:#bdc6c0;font:.72rem/1.45 var(--mono)}.site-footer p{margin:0}.chapter-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:-1.4rem -1.1rem 1.4rem;background:var(--ink)}.chapter-nav a,.chapter-nav .is-empty{min-height:6rem;padding:1rem;background:var(--surface);color:var(--ink);text-decoration:none}.chapter-nav a:hover{background:var(--lime)}.chapter-nav a.next{text-align:right}.chapter-nav a span{display:block;margin-bottom:.45rem;color:var(--orange);font:700 .65rem var(--mono);text-transform:uppercase}.chapter-nav a strong{font:700 .85rem/1.3 var(--sans)}
.chapter-palette{width:min(38rem,calc(100% - 2rem));max-height:min(42rem,calc(100% - 2rem));padding:0;border:2px solid var(--ink);background:var(--surface);box-shadow:8px 8px 0 var(--ink)}.chapter-palette::backdrop{background:rgb(23 25 23/.55)}.chapter-palette form{display:grid;grid-template-columns:1fr auto;gap:.7rem;padding:1rem;border-bottom:1px solid var(--ink)}.chapter-palette label{display:grid;gap:.45rem;color:var(--green);font:700 .7rem var(--mono);text-transform:uppercase}.chapter-palette input{min-width:0;border:0;border-bottom:2px solid var(--ink);padding:.4rem 0;background:transparent;color:var(--ink);font:1rem var(--sans)}.chapter-palette button{align-self:end;border:1px solid var(--ink);background:var(--surface);padding:.5rem .7rem;font:700 .7rem var(--mono)}.chapter-palette ol{max-height:24rem;margin:0;padding:0;overflow:auto;list-style:none}.chapter-palette li+li{border-top:1px solid var(--subtle)}.chapter-palette a{display:grid;gap:.25rem;padding:.8rem 1rem;color:var(--ink);text-decoration:none}.chapter-palette a:hover,.chapter-palette a[aria-current=true]{background:#edf5e8}.chapter-palette small{color:var(--muted);font:.65rem var(--mono)}.chapter-palette mark{background:var(--lime);color:inherit}.chapter-palette>p{margin:0;padding:.75rem 1rem;border-top:1px solid var(--ink);color:var(--muted);font:.7rem var(--mono)}
.dark-mode{--paper:#151817;--surface:#1d211f;--ink:#eef2ec;--subtle:#38413c;--muted:#aab4ae;--green:#6acb9a;--lime:#c6ff73;--orange:#ff8b60;--blue:#8eb0ff;--code:#0e100f;color-scheme:dark}.dark-mode .site-header,.dark-mode .site-footer{background:#0e100f}.dark-mode .book-nav,.dark-mode .chapter-palette{box-shadow:4px 0 0 #0e100f}.dark-mode .chapter-palette{box-shadow:8px 8px 0 #0e100f}.dark-mode .math-display,.dark-mode .worked-example,.dark-mode .callout-theorem,.dark-mode .section-formulas{background:#203128}.dark-mode .callout{background:#202944}.dark-mode .callout-caution{background:#35251e}.dark-mode .chapter-link.is-current{background:#27362f}.dark-mode code{background:#24342a;color:var(--lime)}
@media(max-width:980px){.reading-shell{padding-left:calc(var(--rail) + 2rem)}.chapter-outline{float:none;width:auto;margin:0 0 2rem}.chapter-outline ol{columns:2}.site-footer{margin-left:var(--rail)}}
@media(max-width:680px){body{font-size:.96rem}.site-header{position:relative;min-height:4.5rem;padding:.7rem 1rem}.masthead{display:block}.header-context{margin-top:.25rem}.palette-button span{display:none}.palette-button kbd{margin:0}.book-nav{position:relative;top:auto;width:auto;max-height:70vh;margin:0;box-shadow:none;border-right:0;border-bottom:2px solid var(--ink)}.book-nav:not([open]){max-height:none}.book-nav summary{padding:.15rem 0}.desktop-nav-label{display:none}.mobile-nav-label{display:inline}.book-nav[open] .mobile-nav-label{display:none}.book-nav[open] .mobile-close-label{display:inline}.reading-shell{padding:2.5rem 1.1rem 3.5rem}.book-cover{margin-bottom:3.5rem}.book-cover h1{font-size:clamp(3rem,15vw,4.7rem)}.chapter,.book-chapter{margin:3.5rem 0}.chapter-header{grid-template-columns:1fr}.chapter-number{grid-row:auto}.chapter-header h1,.chapter-header h2{font-size:clamp(2rem,10vw,3rem)}.chapter-outline ol{columns:1}.worked-example{margin-inline:0}.site-footer{margin:0;padding:1.2rem}.chapter-nav{grid-template-columns:1fr;margin:-1.2rem -1.2rem 1.2rem}.chapter-nav .is-empty{display:none}.chapter-nav a.next{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.math-visual-guide,.math-visual-asymptote{fill:none;stroke:var(--orange);stroke-width:1;stroke-dasharray:3 3}
@media print{.skip-link,.site-header,.book-nav,.chapter-outline,.chapter-palette,.chapter-nav{display:none}.reading-shell{padding:0}.site-footer{margin:0;background:#fff;color:#000}.worked-example,.section-exercises,.figure-placeholder{box-shadow:none;break-inside:avoid}}
.learning-bridge{margin:1.55rem 0;padding-left:1rem;border-left:3px solid var(--green)}.learning-bridge>p:first-child{margin-top:0}.derivation-steps{margin:1rem 0 1.25rem}.math-visual-fallback{margin:1.6rem 0;padding:.85rem;border:1px solid var(--ink);background:var(--surface)}.math-visual{display:block;width:100%;max-width:34rem;height:auto;margin:0 auto .55rem;background:color-mix(in srgb,var(--paper) 65%,var(--surface))}.math-visual-axis{fill:none;stroke:var(--muted);stroke-width:1}.math-visual-curve{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.math-visual-secondary,.math-visual-vector{fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:round}.math-visual-muted-curve{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round}.math-visual-point{fill:var(--orange)}.math-visual-points{fill:var(--blue)}.math-visual-rectangles{fill:color-mix(in srgb,var(--lime) 42%,transparent);stroke:var(--green);stroke-width:1}.math-visual-area{fill:color-mix(in srgb,var(--lime) 45%,transparent);stroke:none}.math-visual text{fill:var(--muted);font:600 9px var(--mono)}.math-visual-fallback figcaption{font:.8rem/1.45 var(--mono);color:var(--muted)}.dark-mode .math-visual{background:#202824}.dark-mode .math-visual-curve{stroke:var(--lime)}.dark-mode .math-visual-points{fill:var(--lime)}
@media(max-width:680px){.learning-bridge{padding-left:.75rem}.math-visual-fallback{margin-inline:0}}
.math-visual-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem 1.1rem;align-items:end;margin:.85rem 0 1.6rem;padding:1rem 1.1rem;border:1px solid var(--ink);background:var(--surface);box-shadow:4px 4px 0 var(--subtle);font:.75rem/1.4 var(--mono)}.math-visual-controls label{display:grid;grid-template-columns:auto minmax(7rem,1fr);gap:.65rem;align-items:center;min-height:2.75rem;color:var(--green);font-weight:750}.math-visual-controls input[type="range"]{width:100%;min-height:2.75rem;padding:.5rem 0;accent-color:var(--orange);cursor:pointer}.math-visual-controls input:focus-visible,.math-visual-button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.math-visual-status{grid-column:1/-1;margin:.35rem 0 0;padding:.65rem .85rem;border-left:3px solid var(--green);background:color-mix(in srgb,var(--paper) 70%,var(--surface));color:var(--ink);font-weight:500;font-size:.8rem}.math-visual-matrix{white-space:pre;padding:.7rem;border:1px solid var(--subtle);background:var(--surface);color:var(--ink);font-family:var(--mono)}.math-visual-matrix-fallback pre{max-width:20rem;margin:.2rem 0 .8rem;overflow:auto;background:var(--paper);color:var(--ink)}.dark-mode .math-visual-controls{border-color:var(--subtle);box-shadow:4px 4px 0 #0e100f}.dark-mode .math-visual-button{border-color:var(--subtle);box-shadow:2px 2px 0 #0e100f}.dark-mode .math-visual-status{background:#1e2521;border-left-color:var(--lime)}@media(max-width:680px){.math-visual-controls{grid-template-columns:1fr;padding:.85rem;box-shadow:2px 2px 0 var(--subtle)}.math-visual-controls label{grid-template-columns:1fr;gap:.25rem}}.math-visual-marker{fill:none;stroke:var(--orange);stroke-width:1;stroke-dasharray:3 3}.math-visual-reference{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-dasharray:4 3}.math-visual-root-points{fill:var(--blue)}.dark-mode .math-visual-root-points{fill:var(--lime)}

/* Source-adjacent pedagogy remains reading flow, with semantic landmarks. */
.pedagogy-block{margin:1.35rem 0;padding:1rem 1.1rem;border-top:1px solid var(--subtle);border-bottom:1px solid var(--subtle)}.pedagogy-block h3{margin:.1rem 0 .65rem;font-size:1.05rem}.pedagogy-premise,.pedagogy-conclusion,.pedagogy-result,.pedagogy-limitation,.proof-scope{margin:.65rem 0}.derivation-chain,.proof-chain,.deduction-chain{margin:.8rem 0;padding:0;list-style:none}.derivation-chain li{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(10rem,1fr) auto;gap:.7rem;align-items:center;padding:.55rem 0;border-bottom:1px dotted var(--subtle)}.derivation-equation{font-family:var(--mono);overflow:auto}.derivation-reason,.proof-chain span,.deduction-chain span{color:var(--muted)}.reversible{font:600 .65rem var(--mono);color:var(--green);text-transform:uppercase}.proof-assumptions,.deduction-premises{padding:.65rem .8rem;background:color-mix(in srgb,var(--paper) 60%,var(--surface));border-left:3px solid var(--orange)}.proof-assumptions ul,.deduction-premises ul{margin:.3rem 0 0;padding-left:1.2rem}.proof-chain li,.deduction-chain li{padding:.4rem 0}.proof-chain li strong{display:block}.intuition-block{background:color-mix(in srgb,var(--lime) 15%,var(--surface));border-left:3px solid var(--green)}.misconception{padding:.55rem .7rem;background:color-mix(in srgb,var(--orange) 12%,var(--surface));border-left:3px solid var(--orange)}.math-visual-reduced{margin:.4rem 0 0;color:var(--muted);font-size:.8rem}.math-visual-button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;min-width:3.2rem;margin:.25rem .35rem .25rem 0;padding:.5rem .9rem;border:2px solid var(--ink);background:var(--surface);color:var(--ink);font:750 .75rem var(--mono);cursor:pointer;touch-action:manipulation;box-shadow:2px 2px 0 var(--ink);border-radius:0;transition:background-color .15s,transform .1s,box-shadow .1s}.math-visual-button:hover{background:var(--lime);color:var(--ink)}.math-visual-button:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}@media print{.pedagogy-block{break-inside:avoid}.math-visual-controls{display:none}.math-visual-reduced{display:block}}@media(max-width:680px){.derivation-chain li{grid-template-columns:1fr;gap:.15rem}}

