:root{--paper:#fffefa;--canvas:#edf7f5;--ink:#173036;--muted:#617176;--line:#cddbd8;--teal:#0f766e;--teal-dark:#0b4f4b;--yellow:#f3bd4f}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--lesson-canvas,#fdfcf8);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}.brand-logo{display:inline-flex;line-height:0}.brand-logo img{display:block;height:auto;width:100%}.brand-logo-lockup{width:168px}.brand-logo-primary{width:min(380px,90vw)}.brand-logo-symbol{width:96px}:root{--lesson-canvas:#fdfcf8;--figure-surface:#f2f0ea;--ink-primary:#1a1917;--ink-muted:#6e6a63;--rule:#dcd8cf;--signal:#b3372c;--font-display:"Source Serif 4",Georgia,"Times New Roman",ui-serif,serif;--font-reading:Georgia,"Source Serif 4",ui-serif,serif;--font-system:"JetBrains Mono",ui-monospace,Consolas,"Courier New",monospace;--reading-column:720px;--figure-breakout:1080px;--space-reading:18px;--space-section:84px;--space-entry:120px}.lesson-math .katex{font-size:1.05em}.textbook-shell{--sidebar-w:304px;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.textbook-shell-collapsed{grid-template-columns:minmax(0,1fr)}.textbook-shell-collapsed .textbook-sidebar{display:none}.textbook-shell-dragging{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.textbook-resizer{cursor:col-resize;height:100vh;left:calc(var(--sidebar-w) - 4px);position:fixed;top:0;touch-action:none;width:9px;z-index:40}.textbook-resizer:after{background:transparent;content:"";height:100%;left:3px;position:absolute;top:0;transition:background .15s ease;width:2px}.textbook-resizer:focus-visible:after,.textbook-resizer:hover:after,.textbook-resizer[data-dragging]:after{background:var(--signal)}.textbook-resizer:focus-visible{outline:none}.textbook-reopen{align-items:center;animation:textbook-reopen-arrive .45s ease-out both;background:none;border:0;cursor:pointer;display:inline-flex;justify-content:center;left:18px;padding:6px;position:fixed;top:16px;z-index:40}.textbook-reopen-symbol{display:block;height:auto;transition:transform .3s ease;width:30px}.textbook-reopen:hover .textbook-reopen-symbol{transform:scale(1.08)}@keyframes textbook-reopen-arrive{0%{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}.textbook-reopen[data-opening]{pointer-events:none}.textbook-reopen[data-opening] .textbook-reopen-symbol{animation:textbook-walk-in .52s ease-in forwards}@keyframes textbook-walk-in{0%{opacity:1;transform:none}55%{opacity:.75;transform:scale(1.28)}to{opacity:0;transform:scale(1.65);filter:blur(1.5px)}}.textbook-shell-entering .textbook-sidebar{animation:textbook-sidebar-enter .5s ease-out both}.textbook-shell-entering .textbook-brand{animation:textbook-soft-rise .55s ease-out both;animation-delay:.05s}.textbook-shell-entering .textbook-scroll{animation:textbook-soft-rise .6s ease-out both;animation-delay:.14s}@keyframes textbook-sidebar-enter{0%{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}@keyframes textbook-soft-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.textbook-reopen,.textbook-reopen[data-opening] .textbook-reopen-symbol,.textbook-shell-entering .textbook-brand,.textbook-shell-entering .textbook-scroll,.textbook-shell-entering .textbook-sidebar{animation:none}}.textbook-sidebar{background:var(--lesson-canvas);border-right:1px solid var(--rule);display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;position:-webkit-sticky;position:sticky;top:0}.textbook-brand{border-bottom:1px solid var(--rule);flex:none;padding:28px 26px 22px}.textbook-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:0 26px 48px}.textbook-brand .brand-logo-lockup{width:132px}.textbook-context{background:var(--lesson-canvas);border-bottom:1px solid var(--rule);color:var(--ink-muted);font-family:var(--font-system);font-size:11px;letter-spacing:.1em;line-height:1.7;margin:0 -26px 26px;padding:24px 26px 18px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}.textbook-topic{margin-bottom:30px}.textbook-section-label,.textbook-topic-label{align-items:baseline;color:var(--ink-primary);display:flex;font-family:var(--font-system);font-size:11px;gap:10px;letter-spacing:.12em;line-height:1.5;margin:0 0 12px;text-transform:uppercase}.textbook-topic-icon{align-self:center;color:var(--signal);flex:none}.textbook-entry span,.textbook-section-label span,.textbook-topic-label span{color:var(--ink-muted);flex:none;font-family:var(--font-system);font-size:11px;letter-spacing:.04em;min-width:34px}.textbook-topic>.textbook-entries{border-left:1px solid var(--rule);margin-left:7px;padding-left:17px}.textbook-section{margin-top:14px}.textbook-section-label{color:var(--ink-muted)}.textbook-section .textbook-entries{border-left:1px solid var(--rule);margin-left:6px;padding-left:16px}.textbook-entries{display:grid;grid-gap:2px;gap:2px;list-style:none;margin:0;padding:0}.textbook-entry{border-radius:6px;color:var(--ink-primary);display:flex;font-family:var(--font-reading);font-size:14.5px;gap:10px;line-height:1.45;margin-left:-8px;padding:6px 8px;text-decoration:none}a.textbook-entry:hover{background:var(--figure-surface)}.textbook-entry[aria-current=page]{background:var(--figure-surface);box-shadow:inset 2px 0 0 var(--signal)}.textbook-entry-icon,.textbook-entry-upcoming{color:var(--ink-muted)}.textbook-entry-icon{align-self:flex-start;flex:none;margin-top:4px;opacity:.75}.textbook-section-label .textbook-entry-icon{margin-top:2px}.textbook-entry[aria-current=page] .textbook-entry-icon{color:var(--signal);opacity:1}@keyframes textbook-icon-hop{0%{transform:translateY(0)}40%{transform:translateY(-3px)}70%{transform:translateY(1px)}to{transform:translateY(0)}}.textbook-entry:hover .textbook-entry-icon,.textbook-section-label:hover .textbook-entry-icon,.textbook-topic-label:hover .textbook-topic-icon{animation:textbook-icon-hop .5s cubic-bezier(.34,1.4,.64,1)}@media (prefers-reduced-motion:reduce){.textbook-entry:hover .textbook-entry-icon,.textbook-section-label:hover .textbook-entry-icon,.textbook-topic-label:hover .textbook-topic-icon{animation:none}}.visually-hidden{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.lesson-canvas{background:var(--lesson-canvas);color:var(--ink-primary);min-height:100vh;padding:72px 24px 140px}.lesson-article{font-family:var(--font-reading);margin:0 auto;max-width:var(--figure-breakout)}.lesson-article>*{margin-left:auto;margin-right:auto;max-width:var(--reading-column)}.lesson-article>.lesson-phase{max-width:var(--figure-breakout)}.lesson-phase>*{margin-left:auto;margin-right:auto;max-width:var(--reading-column)}.lesson-phase>.lesson-figure{max-width:var(--figure-breakout)}.lesson-entry-rule span,.lesson-kicker,.lesson-meta,.motion-controls button,.motion-state-label,.motion-telemetry{font-family:var(--font-system);font-size:12px;letter-spacing:.14em;text-transform:uppercase}.lesson-masthead .lesson-meta{color:var(--ink-muted);margin:0 0 28px}.lesson-masthead h1{font-family:var(--font-display);font-size:clamp(40px,6vw,68px);font-weight:600;letter-spacing:-.015em;line-height:1.02;margin:0}.lesson-masthead h1:after{content:"."}.lesson-premise{color:var(--ink-muted);font-size:19px;line-height:1.6;margin:26px 0 0;max-width:620px}.lesson-entry-rule{align-items:center;display:flex;gap:20px;margin-bottom:var(--space-section);margin-top:var(--space-section)}.lesson-entry-rule:after,.lesson-entry-rule:before{background:var(--rule);content:"";flex:1 1;height:1px}.lesson-entry-rule span{color:var(--ink-muted);font-style:normal}.lesson-kicker{color:var(--ink-muted);margin:0 0 10px}.lesson-question{margin-bottom:var(--space-section)}.lesson-question-with-art{align-items:center;display:flex;gap:36px}.lesson-question-copy{flex:1 1;min-width:0}.lesson-question-text{font-family:var(--font-display);font-size:clamp(24px,3.2vw,32px);font-style:italic;line-height:1.3;margin:0}.lesson-question-art{animation:lesson-question-rise .9s ease-out both;animation-delay:.15s;display:block;flex:none;width:clamp(150px,22vw,220px)}.lesson-question-art svg{display:block;height:auto;width:100%}@media (max-width:860px){.lesson-question-with-art{align-items:flex-start;flex-direction:column;gap:18px}.lesson-question-art{align-self:flex-end;width:170px}}@media (prefers-reduced-motion:reduce){.lesson-question-art{animation:none}}.lesson-phase{margin-bottom:var(--space-section)}.lesson-phase-label{align-items:baseline;border-top:1px solid var(--ink-primary);display:flex;font-family:var(--font-system);font-size:13px;font-weight:400;gap:14px;letter-spacing:.18em;margin:0 0 40px;padding-top:14px;text-transform:uppercase}.lesson-phase-label span{color:var(--ink-muted)}.lesson-key-idea h3,.lesson-prose h3{font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.25;margin:0 0 var(--space-reading)}.lesson-key-idea p,.lesson-prose p{font-size:18px;line-height:1.75;margin:0}.lesson-key-idea{margin-bottom:44px}.lesson-key-idea>p:first-line{font-weight:600}.lesson-prose{margin-bottom:44px}.lesson-subsection{border-top:1px solid var(--rule);padding-top:22px}.lesson-sub-heading{align-items:baseline;display:flex;gap:14px}.lesson-sub-index{color:var(--signal);flex:none;font-family:var(--font-system);font-size:13px;font-weight:400;letter-spacing:.14em}.lesson-subsection>p{padding-left:37px}.lesson-aside{border-top:1px solid var(--rule);margin-bottom:44px;padding-top:18px}.lesson-aside-observation{border-top:2px solid var(--signal)}.lesson-aside-observation .lesson-kicker{color:var(--signal);font-weight:700;letter-spacing:.18em}.lesson-aside-body{font-size:17px;line-height:1.7;margin:0}.lesson-aside ol,.lesson-aside ul{margin:0;padding-left:22px}.lesson-aside li{font-size:17px;line-height:1.7;margin-bottom:10px}.lesson-aside li::marker{color:var(--ink-muted);font-family:var(--font-system);font-size:13px}.lesson-example-steps{margin:16px 0 0;padding-left:22px}.lesson-example-steps li{font-size:16px;line-height:1.65;margin-bottom:8px}.lesson-answer-frame{background:var(--figure-surface);border:1px solid var(--rule);margin-top:22px;padding:18px 20px 20px}.lesson-answer-label{color:var(--ink-muted);display:block;font-family:var(--font-system);font-size:11px;letter-spacing:.14em;margin-bottom:10px;text-transform:uppercase}.lesson-answer-input{background:var(--lesson-canvas);border:1px solid var(--rule);border-radius:0;color:var(--ink-primary);display:block;font-family:var(--font-reading);font-size:16px;line-height:1.6;min-height:104px;padding:12px 14px;resize:vertical;width:100%}.lesson-answer-input:focus{border-color:var(--ink-primary);outline:2px solid color-mix(in srgb,var(--signal) 35%,transparent);outline-offset:1px}.lesson-answer-input::placeholder{color:var(--ink-muted);opacity:.85}.lesson-answer-details{display:flex;flex-direction:column;align-items:flex-end;margin-top:12px}.lesson-answer-details>summary.lesson-answer-toggle{background:none;border:1px solid var(--ink-primary);border-radius:999px;color:var(--ink-primary);cursor:pointer;display:inline-flex;font-family:var(--font-system);font-size:11px;letter-spacing:.12em;list-style:none;padding:7px 14px;text-transform:uppercase;width:-moz-fit-content;width:fit-content}.lesson-answer-details>.lesson-answer{align-self:stretch}.lesson-answer-details>summary.lesson-answer-toggle::-webkit-details-marker{display:none}.lesson-answer-details>summary.lesson-answer-toggle:hover,.lesson-answer-details[open]>summary.lesson-answer-toggle{background:var(--ink-primary);color:var(--lesson-canvas)}.lesson-answer-details[open] .lesson-answer-toggle-closed,.lesson-answer-toggle-open{display:none}.lesson-answer-details[open] .lesson-answer-toggle-open{display:inline}.lesson-answer{border-top:1px solid var(--rule);margin-top:16px;padding-top:14px}.lesson-answer-kicker{color:var(--signal);font-family:var(--font-system);font-size:11px;font-weight:700;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}.lesson-answer-body{font-family:var(--font-reading);font-size:17px;line-height:1.7;margin:0}.lesson-summary{border-bottom:1px solid var(--ink-primary);border-top:1px solid var(--ink-primary);margin-top:56px;padding:22px 0 26px}.lesson-summary-conclusion{font-family:var(--font-display);font-size:21px;line-height:1.5;margin:0 0 18px}.lesson-summary-terms{display:flex;flex-wrap:wrap;gap:8px 10px;list-style:none;margin:0;padding:0}.lesson-summary-terms li{border:1px solid var(--rule);border-radius:999px;color:var(--ink-muted);font-family:var(--font-system);font-size:12px;letter-spacing:.1em;padding:6px 12px;text-transform:uppercase}.lesson-next{margin-top:var(--space-section);text-align:right}.lesson-next a{color:var(--ink-primary);font-family:var(--font-display);font-size:21px;text-decoration:none}.lesson-next a:hover{text-decoration:underline;text-underline-offset:5px}.lesson-figure{margin-bottom:var(--space-section);margin-top:56px;margin-left:auto;margin-right:auto;max-width:var(--figure-breakout);width:100%}.lesson-figure-question{color:var(--ink-primary);font-family:var(--font-display);font-size:22px;font-style:italic;line-height:1.45;margin:0 0 28px;max-width:var(--reading-column);padding-left:34px;position:relative}.lesson-figure-question:before{background:var(--signal);content:"";height:2px;left:0;position:absolute;top:.68em;width:20px}@supports (animation-timeline:view()){.lesson-figure-question{animation:lesson-question-rise ease-out both;animation-timeline:view();animation-range:entry 0 entry 55%}}@keyframes lesson-question-rise{0%{opacity:.15;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lesson-figure-question{animation:none}}.lesson-figure-caption{border-top:1px solid var(--rule);color:var(--ink-primary);font-size:16px;line-height:1.65;margin:28px auto 0;max-width:var(--reading-column);padding-top:14px}.lesson-figure-caption strong{font-family:var(--font-system);font-size:12px;font-weight:400;letter-spacing:.14em;margin-right:10px}.lesson-figure-static{background:var(--figure-surface);display:grid;grid-gap:24px;gap:24px;grid-template-columns:1fr 1fr;padding:32px}.lesson-figure-print{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.motion-figure{-webkit-user-select:none;-moz-user-select:none;user-select:none}.motion-stage{background:var(--figure-surface);cursor:col-resize;position:relative;touch-action:none}.motion-stage svg{display:block;height:auto;width:100%}.motion-baseline{stroke:var(--ink-muted);stroke-width:1.5}.motion-axis,.motion-tick{stroke:var(--ink-muted);stroke-width:1}.motion-axis-label{fill:var(--ink-muted);font-family:var(--font-system);font-size:13px;font-style:italic}.motion-path-ghost{fill:none;stroke:var(--rule);stroke-dasharray:3 5;stroke-width:1.5}.motion-path{fill:none;stroke:var(--ink-primary);stroke-width:2}.motion-marker{fill:var(--signal)}.motion-runner{fill:var(--ink-primary)}.motion-telemetry{display:grid;grid-gap:3px;gap:3px;pointer-events:none;position:absolute;top:16px}.motion-telemetry[hidden]{display:none}.motion-telemetry span{color:var(--ink-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.motion-telemetry .motion-state-label{color:var(--ink-primary);margin-bottom:5px}.motion-telemetry-v{display:inline-block;transform-origin:left center;transition:color .25s ease,transform .25s ease}.motion-telemetry-right .motion-telemetry-v{transform-origin:right center}.motion-telemetry .motion-telemetry-key{color:var(--signal);font-weight:700;transform:scale(1.22)}@media (prefers-reduced-motion:reduce){.motion-telemetry-v{transition:none;transform:none!important}}.motion-telemetry-left{left:20px}.motion-telemetry-right{right:20px;text-align:right}.motion-divider{bottom:0;cursor:col-resize;position:absolute;top:0;transform:translateX(-50%);width:44px}.motion-divider:before{background:var(--ink-primary);bottom:0;content:"";left:50%;position:absolute;top:0;width:2px}.motion-divider:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.motion-divider-handle{align-items:center;background:var(--lesson-canvas);border:1.5px solid var(--ink-primary);border-radius:999px;color:var(--ink-primary);display:flex;font-size:11px;height:44px;justify-content:center;left:50%;letter-spacing:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:44px}.motion-controls{align-items:center;display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.motion-controls button{align-items:center;background:none;border:1px solid var(--rule);border-radius:999px;color:var(--ink-muted);cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;width:30px}.motion-controls button:hover{border-color:var(--ink-primary);color:var(--ink-primary)}.motion-controls input[type=range]{accent-color:var(--ink-primary);width:180px}@media (max-width:1080px){.textbook-shell{--sidebar-w:264px}}@media (max-width:860px){.textbook-shell{grid-template-columns:minmax(0,1fr)}.textbook-sidebar{border-bottom:1px solid var(--rule);border-right:0;display:block;height:auto;max-height:none;overflow:visible;position:static}.textbook-scroll{overflow:visible;padding-bottom:32px}.textbook-context{margin:0 0 26px;padding:24px 0 18px;position:static}.textbook-reopen,.textbook-resizer{display:none}.textbook-shell-collapsed .textbook-sidebar{display:block}.lesson-canvas{padding:48px 18px 96px}:root{--space-section:56px}.motion-telemetry{font-size:10px}.lesson-figure-static{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.motion-stage *{transition:none!important}}@page{margin:18mm 16mm;size:A4}@media print{.lesson-canvas,body{background:white;padding:0}.textbook-shell{display:block}.motion-figure,.textbook-sidebar{display:none}.lesson-figure-print{background:none;border:1px solid var(--rule);clip:auto;-webkit-clip-path:none;clip-path:none;height:auto;margin-top:12px;overflow:visible;padding:14px 16px;position:static;white-space:normal;width:auto}.lesson-figure-print p{font-size:13px;line-height:1.6;margin:0 0 8px}.lesson-phase{page-break-inside:avoid;break-inside:avoid}.lesson-answer-details>summary,.lesson-answer-input{display:none}.lesson-answer-details>.lesson-answer{border-top:1px solid var(--rule);display:block;margin-top:12px;padding-top:10px}}