@import url('vendor/katex.min.css');
:root{font-size:22px;--ink:#122e46;--blue:#1256a0;--muted:#445a6c;--paper:#fff;--line:#c3d0dd;--soft:#edf4fc;--nav:270px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:#f5f8fc;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65;padding-bottom:110px}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:1rem;cursor:pointer;background:white;color:var(--ink);border:1px solid #8ba3b8;border-radius:9px;padding:.48rem .8rem;min-height:52px;font-weight:600}button:hover:not(:disabled){background:#e4effc;border-color:var(--blue)}button:disabled{opacity:.45;cursor:default}a{color:#064c96;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:4px solid #d37900;outline-offset:3px}.skip{position:fixed;top:-100px;left:12px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}header{background:#fff;border-bottom:1px solid var(--line);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:20}.brand{font-size:1.1rem;font-weight:700;line-height:1.3}.brand span{display:block;font-size:.85rem;font-weight:400;color:var(--muted);margin-top:6px}.reading-controls,.font-controls{display:flex;align-items:center;gap:12px}.font-controls{gap:8px}.font-controls button{padding:8px 12px}#font-label{font-size:.85rem;min-width:70px;text-align:center}#menu-toggle{display:none}.shell{display:grid;grid-template-columns:var(--nav) minmax(0,1fr);max-width:1800px;margin:auto}nav{padding:26px 14px 50px 20px;background:#fff;border-right:1px solid var(--line);align-self:start;position:sticky;top:0;max-height:calc(100vh - 110px);overflow:auto}.nav-title{font-size:.85rem;font-weight:700;margin:0 8px 16px;color:var(--muted)}nav details{margin-bottom:9px}nav summary{font-weight:700;font-size:.91rem;cursor:pointer;padding:10px 6px;line-height:1.45}nav summary span{font-weight:400;display:block;margin-left:17px;color:var(--muted);font-size:.8rem}nav ol{padding:0;list-style:none;margin:4px 0 14px}nav a{display:block;font-size:.86rem;text-decoration:none;line-height:1.45;padding:10px 12px;margin:4px 0;border-radius:7px;border-left:4px solid transparent;color:var(--ink)}nav a:hover{background:var(--soft)}nav a[aria-current=step]{background:#e0edff;border-left-color:var(--blue);font-weight:700}nav .resources{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}nav .resources a{font-size:.88rem}main{min-width:0;padding:34px clamp(22px,3vw,56px) 48px;outline:none}.eyebrow{color:var(--blue);font-size:.9rem;font-weight:700;margin:0 0 10px}.lesson-head{max-width:1200px;margin:0 0 28px}h1{font-size:1.85rem;line-height:1.23;margin:0 0 14px;font-weight:700;letter-spacing:-.025em}.lesson-source{font-size:.85rem;color:var(--muted);margin:0}.reading-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.9fr);gap:28px;align-items:start}.math-panel{min-width:0;background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--blue);padding:clamp(20px,2.2vw,36px);border-radius:4px 4px 12px 12px;font-size:1.13rem;line-height:1.8;overflow-wrap:break-word}.math-panel p{margin:0 0 1em}.math-panel p:last-child{margin-bottom:0}.math-panel h2{font-size:1.12rem;margin:0 0 16px;line-height:1.4}.math-display{overflow-x:auto;overflow-y:hidden;padding:10px 4px;max-width:100%;margin:.8rem 0}.katex{font-size:1.07em}.katex-display{margin:.45em 0}.explanation{padding:0 0 0 26px;border-left:3px solid #8fb3df;font-size:1.07rem;line-height:1.75}.explanation h2{font-size:1rem;line-height:1.4;margin:0 0 18px;color:#104d8d}.explanation p{margin:0 0 1em}.explanation p:last-child{margin-bottom:0}.context-box{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);font-size:.91rem;color:var(--muted)}.figure{display:block;max-width:100%;height:auto;margin:20px auto 0;background:white}.figure-note{font-size:.9rem;margin-top:15px;color:var(--muted)}footer{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:30;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;gap:18px;box-shadow:0 -4px 20px #12345609}#position{font-size:.9rem;color:var(--muted)}#position strong{color:var(--ink)}.step-buttons{display:flex;gap:12px}.step-buttons button{min-width:128px}#next{background:var(--blue);color:#fff;border-color:var(--blue)}#next:hover:not(:disabled){background:#084480}.progress-track{height:5px;background:#dce7f1;width:160px;border-radius:3px;margin-top:7px}.progress-fill{height:100%;background:var(--blue);border-radius:3px}.inline-math{white-space:normal}.nav-close{display:none}noscript{display:block;padding:32px;font-size:24px}.completion{font-size:1.1rem}
@media(min-width:1700px){:root{--nav:310px}.reading-grid{gap:44px}.explanation{padding-left:32px}}
@media(max-width:1250px){.reading-grid{grid-template-columns:minmax(0,1fr)}.explanation{border-left:4px solid #8fb3df;padding:22px 24px;background:#edf4fc;border-radius:0 10px 10px 0}.math-panel{max-width:100%}}
@media(max-width:900px){:root{--nav:0px}header{padding:16px 18px;align-items:flex-start;flex-wrap:wrap}.brand{font-size:1.05rem}.brand span{font-size:.85rem}.reading-controls{justify-content:space-between;width:100%}#menu-toggle{display:block}.shell{display:block}nav{display:none}nav.open{display:block;position:fixed;inset:0 0 0 0;z-index:60;width:100%;max-height:100dvh;padding:20px 24px 40px}nav .nav-close{display:block;position:sticky;top:0;margin:0 0 22px auto;background:#fff;z-index:1}nav a{font-size:1rem;padding:12px}nav summary{font-size:1rem}.nav-title{font-size:1rem}main{padding:25px 18px 32px}h1{font-size:1.7rem}.reading-grid{gap:24px}footer{padding:12px 16px}#position{font-size:.8rem}.progress-track{width:90px}.step-buttons button{min-width:106px;padding:10px 14px}body{padding-bottom:110px}}
@media(max-width:440px){.step-buttons{gap:8px}.step-buttons button{min-width:85px;padding:10px;font-size:.9rem}#position{max-width:100px}.progress-track{width:80px}.math-panel{padding:20px 15px}header{gap:14px}.font-controls{gap:5px}#font-label{min-width:58px}.explanation{padding:20px}.lesson-source{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.prose{margin-bottom:1em}.prose:last-child{margin-bottom:0}.explanation-paragraph{margin-bottom:1em}.explanation-paragraph:last-child{margin-bottom:0}
@media(max-width:600px){footer{display:grid;grid-template-columns:1fr;gap:8px;padding:10px 16px}#position{max-width:none;display:flex;align-items:center;justify-content:space-between;font-size:.8rem}.progress-track{margin:0;width:90px}.step-buttons{display:grid;grid-template-columns:1fr 1fr}.step-buttons button{min-width:0}body{padding-bottom:155px}}

/* Detailed derivations use the main column, keeping the short explanation beside them. */
.math-panel,.explanation{font-size:1rem;min-width:0}
.derivation{margin-top:1.5rem;border-top:2px solid var(--line);padding-top:1rem}
.derivation>summary{cursor:pointer;color:#104d8d;font-weight:700;line-height:1.45;padding:.3rem 0}
.derivation>summary span{display:block;font-size:.85em;font-weight:400;color:var(--muted);margin-top:.2rem}
.derivation-steps{padding-left:1.55em;margin:1.1rem 0 0}
.derivation-steps>li{padding-left:.25em;margin-bottom:1.45rem}
.derivation-steps>li::marker{color:#1256a0;font-weight:700}
.derivation h3{font-size:1em;line-height:1.5;margin:0 0 .5rem}
.derivation .math-display{padding-left:0;padding-right:0}
.font-controls{font-size:16px;flex-shrink:0}
.font-controls button{font-size:18px;min-height:44px}
#font-size{font:inherit;font-size:18px;color:var(--ink);background:#fff;border:1px solid #8ba3b8;border-radius:8px;min-height:44px;padding:8px;max-width:110px}
select:focus-visible{outline:4px solid #d37900;outline-offset:3px}
.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}
nav summary,nav a,nav .resources a{font-size:max(16px,.86rem)}
nav summary span,.nav-title,.lesson-source,.eyebrow,.brand span{font-size:max(14px,.85rem)}
.extra-large .reading-grid{grid-template-columns:minmax(0,1fr)}
.extra-large .explanation{padding:22px 24px;background:#edf4fc}
header{flex-wrap:wrap}
@media(max-width:600px){.reading-controls{gap:8px;flex-wrap:wrap}#menu-toggle{font-size:18px}.derivation-steps{padding-left:1.2em}.derivation-steps>li{padding-left:.1em}}

.paper-link{font-size:max(16px,.9rem);margin:0 0 1rem}.paper-link a{display:inline-block;font-weight:700;padding:.45em .7em;border:1px solid #8fb3df;border-radius:8px;background:#fff}
