:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f6f8;--surface:#fff;--surface-sunk:#eef0f4;--border:#e1e5eb;--border-strong:#c9d0da;--text:#141820;--text-2:#4f5968;--text-3:#676f7b;--accent:#2f5bea;--accent-hover:#2349c9;--accent-soft:#e9eefd;--on-accent:#fff;--slope:#7c3aed;--slope-soft:#f1eafe;--intercept:#097a6f;--intercept-soft:#e3f5f2;--target:#d4520f;--good:#167c3b;--good-soft:#e5f4ea;--bad:#c42b2b;--bad-soft:#fbeaea;--unsure:#9d5e10;--unsure-soft:#fbf1e3;--map-mastered:#167c3b;--map-progress:#c27a0e;--map-available:#2f5bea;--map-locked:#a3acb9;--plane-bg:#fff;--grid-minor:#eef1f5;--grid-major:#dce2ea;--axis:#8793a2;--axis-label:#6c7683;--shadow-1:0 1px 2px #1018280d, 0 1px 3px #1018280f;--shadow-2:0 8px 28px #10182824, 0 2px 6px #1018280f;--radius:14px;--radius-sm:9px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-math:"STIX Two Math", "STIX Two Text", "Cambria Math", "Latin Modern Math", Cambria, Georgia, serif;--content:760px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1217;--surface:#171b22;--surface-sunk:#1e232c;--border:#2a303b;--border-strong:#3a4250;--text:#e8ebf0;--text-2:#a9b2bf;--text-3:#7a8493;--accent:#7096ff;--accent-hover:#8eabff;--accent-soft:#1d2843;--on-accent:#0b1020;--slope:#b18cff;--slope-soft:#2a2140;--intercept:#3fc9b8;--intercept-soft:#15302d;--target:#ff8a4c;--good:#4cc77a;--good-soft:#15291d;--bad:#ff6b6b;--bad-soft:#351a1c;--unsure:#e7a948;--unsure-soft:#33281a;--map-mastered:#4cc77a;--map-progress:#e7a948;--map-available:#7096ff;--map-locked:#5d6675;--plane-bg:#141820;--grid-minor:#1e232c;--grid-major:#2b323e;--axis:#6b7686;--axis-label:#8b95a4;--shadow-1:0 1px 2px #0006;--shadow-2:0 10px 30px #00000080}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}button,input{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.25}p{margin:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{max-width:var(--content);align-items:center;gap:14px;min-height:56px;margin:0 auto;padding:12px 16px;display:flex}.brand{letter-spacing:-.02em;color:var(--text);flex-shrink:0;font-size:18px;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.crumbs{min-width:0;color:var(--text-2);align-items:center;gap:6px;font-size:14px;display:flex;overflow:hidden}.crumbs a{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;text-decoration:none;overflow:hidden}.crumbs a:hover{color:var(--text)}.crumbs [aria-current=page]{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.crumb-sep{color:var(--text-3);flex-shrink:0}.page{max-width:var(--content);flex-direction:column;gap:24px;margin:0 auto;padding:28px 16px 120px;display:flex}.footer{max-width:var(--content);color:var(--text-3);margin:0 auto;padding:0 16px 110px;font-size:13px}.footer a{color:var(--text-3)}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-size:12px;font-weight:600}.page-title{font-size:clamp(26px,5vw,34px);font-weight:700}.lede{color:var(--text-2);max-width:62ch;font-size:18px}.muted{color:var(--text-2)}.small{font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:20px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform 80ms;display:inline-flex}.btn:hover{background:var(--surface-sunk)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-quiet{color:var(--text-2);background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--surface-sunk);color:var(--text)}.btn-sm{min-height:36px;padding:0 12px;font-size:14px}.math{font-family:var(--font-math);white-space:nowrap;font-size:1.12em}.math var{font-style:italic}.math .op{padding:0 .26em}.display-math{text-align:center;padding:6px 0;font-size:26px}.coming-soon{color:var(--text-3);flex-direction:column;gap:8px;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.coming-soon li{align-items:baseline;gap:12px;display:flex}.coming-soon .unit-index{text-align:center;flex-shrink:0;width:40px;font-weight:700}.frac{vertical-align:middle;flex-direction:column;align-items:center;margin:0 .1em;font-size:.82em;line-height:1.05;display:inline-flex}.frac>span:first-child{border-bottom:1px solid;padding:0 .15em}.frac>span:last-child{padding:0 .15em}.is-slope{color:var(--slope);font-weight:600}.is-intercept{color:var(--intercept);font-weight:600}.units{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.unit{grid-template-columns:40px 1fr;align-items:start;gap:14px;display:grid}.unit-number{background:var(--surface-sunk);width:40px;height:40px;color:var(--text-2);border:1px solid var(--border);border-radius:50%;place-items:center;font-weight:700;display:grid}.unit[data-state=mastered] .unit-number{background:var(--good);border-color:var(--good);color:var(--surface)}.unit[data-state=in-progress] .unit-number,.unit[data-state=ready] .unit-number{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.unit[data-state=soon]{opacity:.6}.unit-body{flex-direction:column;gap:10px;display:flex}.unit-title{font-size:17px;font-weight:650}.unit-meta{color:var(--text-2);font-size:13px}.pill{background:var(--surface-sunk);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill-good{background:var(--good-soft);color:var(--good)}.pill-accent{background:var(--accent-soft);color:var(--accent)}.lesson{flex-direction:column;gap:22px;display:flex}.lesson-text{max-width:64ch;font-size:17px;line-height:1.7}.lesson h2{margin-top:10px;font-size:21px}.key-idea{border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;flex-direction:column;gap:4px;padding:14px 18px;display:flex}.key-idea[data-tone=slope]{border-left-color:var(--slope);background:var(--slope-soft)}.key-idea[data-tone=intercept]{border-left-color:var(--intercept);background:var(--intercept-soft)}.key-idea[data-tone=warn]{border-left-color:var(--unsure);background:var(--unsure-soft)}.key-idea-title{font-weight:700}.figure{flex-direction:column;gap:12px;margin:0;display:flex}.figure figcaption{color:var(--text-2);font-size:14px}.big-equation{font-family:var(--font-math);text-align:center;padding:4px 0;font-size:clamp(26px,6vw,34px)}.big-equation var{font-style:italic}.slider-row{grid-template-columns:92px 1fr 52px;align-items:center;gap:12px;display:grid}.slider-row label{font-weight:600}.slider-row output{font-family:var(--font-math);text-align:right;font-variant-numeric:tabular-nums}.slider-row input[type=range]{accent-color:currentColor;width:100%}.example{flex-direction:column;gap:14px;display:flex}.example-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.steps{counter-reset:step;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:step;grid-template-columns:26px 1fr;align-items:baseline;gap:10px;display:grid}.steps li:before{content:counter(step);background:var(--surface-sunk);width:24px;height:24px;color:var(--text-2);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.check{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunk);flex-direction:column;gap:14px;padding:16px;display:flex}.check[data-passed=true]{border-color:color-mix(in srgb, var(--good) 45%, transparent)}.check-label{letter-spacing:.06em;text-transform:uppercase;color:var(--slope);font-size:12px;font-weight:700}.check[data-passed=true] .check-label{color:var(--good)}.lesson-end{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.prompt{flex-direction:column;gap:12px;font-size:19px;line-height:1.6;display:flex}.value-table{border-collapse:collapse;font-family:var(--font-math);align-self:flex-start;font-size:17px}.value-table th,.value-table td{border:1px solid var(--border-strong);text-align:center;font-variant-numeric:tabular-nums;padding:6px 14px}.value-table th{background:var(--surface-sunk);font-style:italic;font-weight:400}.answer-row{gap:10px;display:flex}.text-input{border:1px solid var(--border-strong);background:var(--surface);min-width:0;min-height:48px;font-size:18px;font-family:var(--font-math);border-radius:10px;flex:1;padding:0 14px}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.choices{flex-direction:column;gap:10px;display:flex}.choice{text-align:left;border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;min-height:52px;padding:14px 16px;font-size:16px;transition:border-color .12s,background .12s}.choice:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.choice:disabled{cursor:default}.choice[data-state=correct]{border-color:var(--good);background:var(--good-soft)}.choice[data-state=chosen-wrong]{border-color:var(--bad);background:var(--bad-soft)}.choice[data-state=dim]{opacity:.55}.readout{color:var(--text-2);flex-wrap:wrap;align-items:baseline;gap:10px;font-size:14px;display:flex}.readout strong{color:var(--accent);font-size:19px;font-weight:400}.hint{color:var(--text-2);font-size:14px}.warn-text{color:var(--unsure);font-size:14px}.feedback{border-radius:var(--radius);border:1px solid;flex-direction:column;gap:12px;padding:18px 20px;display:flex}.feedback[data-verdict=correct]{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 35%, transparent)}.feedback[data-verdict=incorrect]{background:var(--bad-soft);border-color:color-mix(in srgb, var(--bad) 35%, transparent)}.feedback[data-verdict=unverified]{background:var(--unsure-soft);border-color:color-mix(in srgb, var(--unsure) 35%, transparent)}.feedback-heading{font-size:18px;font-weight:700}.feedback[data-verdict=correct] .feedback-heading{color:var(--good)}.feedback[data-verdict=incorrect] .feedback-heading{color:var(--bad)}.feedback[data-verdict=unverified] .feedback-heading{color:var(--unsure)}.solution{border-top:1px solid color-mix(in srgb, currentColor 12%, transparent);flex-direction:column;gap:8px;padding-top:12px;display:flex}.mastery{flex-direction:column;gap:8px;display:flex}.meter{background:var(--surface-sunk);border-radius:999px;height:8px;position:relative;overflow:hidden}.meter-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .22s ease-out}.meter[data-mastered=true] .meter-fill{background:var(--good)}.meter-mark{background:var(--text-3);width:2px;position:absolute;top:-2px;bottom:-2px}.mastery-facts{color:var(--text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 16px;font-size:13px;display:flex}.banner{border-radius:var(--radius-sm);background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:15px;display:flex}.plane-wrap{width:100%;max-width:540px;margin:0 auto}.plane{touch-action:none;-webkit-user-select:none;user-select:none;border-radius:var(--radius-sm);background:var(--plane-bg);border:1px solid var(--border);width:100%;height:auto;display:block}.plane .grid-minor{stroke:var(--grid-minor);stroke-width:1px}.plane .grid-major{stroke:var(--grid-major);stroke-width:1px}.plane .axis{stroke:var(--axis);stroke-width:1.5px}.plane .tick-label{fill:var(--axis-label);font-size:13px;font-family:var(--font)}.plane .axis-title{fill:var(--text-2);font-size:13px;font-weight:600;font-family:var(--font)}.plane .line-student{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.plane .line-vertical{stroke:var(--unsure);stroke-width:2.5px;stroke-dasharray:6 5}.plane .line-target{stroke:var(--target);stroke-width:2.5px;stroke-dasharray:8 6}.plane .line-plain{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.plane .line-second{stroke:var(--intercept);stroke-width:3px;stroke-linecap:round}.plane .line-guide{stroke:var(--text-3);stroke-width:2px;stroke-dasharray:6 5}.plane .right-angle{fill:none;stroke:var(--text-2);stroke-width:1.5px}.plane .leg-slope{stroke:var(--slope);stroke-width:2.5px;stroke-dasharray:5 4}.plane .leg-label{fill:var(--slope);font-size:13px;font-weight:700;font-family:var(--font);paint-order:stroke;stroke:var(--plane-bg);stroke-width:4px}.plane .dot-intercept{fill:var(--intercept);stroke:var(--plane-bg);stroke-width:2.5px}.plane .dot-label{fill:var(--intercept);font-size:13px;font-weight:700;font-family:var(--font);paint-order:stroke;stroke:var(--plane-bg);stroke-width:4px}.plane .dot-point{fill:var(--slope);stroke:var(--plane-bg);stroke-width:2.5px}.plane .handle{cursor:grab;outline:none}.plane .handle:active{cursor:grabbing}.plane .handle-dot{fill:var(--plane-bg);stroke:var(--accent);stroke-width:3.5px}.plane .handle[data-active=true] .handle-dot,.plane .handle:focus-visible .handle-dot{fill:var(--accent)}.plane .handle-ring{fill:none;stroke:var(--accent);stroke-width:2px;opacity:0}.plane .handle:focus-visible .handle-ring{opacity:.5}.map-fab{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:40;border:1px solid var(--border);background:var(--surface);width:56px;height:56px;color:var(--text);box-shadow:var(--shadow-2);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:background .12s,color .12s;display:grid;position:fixed;transform:translate(-50%)}.map-fab:hover{background:var(--surface-sunk)}.map-fab[aria-expanded=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.map-fab svg{width:22px;height:22px}.sheet-backdrop{z-index:30;background:#0a0e145c;animation:.16s ease-out fade-in;position:fixed;inset:0}.sheet{z-index:35;background:var(--surface);max-height:min(82vh,760px);box-shadow:var(--shadow-2);border-radius:20px 20px 0 0;flex-direction:column;animation:.22s cubic-bezier(.2,.8,.2,1) sheet-up;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet-grip{background:var(--border-strong);border-radius:999px;flex-shrink:0;width:40px;height:5px;margin:10px auto 0}.sheet-header{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:1000px;margin:0 auto;padding:10px 20px 8px;display:flex}.sheet-title{font-size:18px;font-weight:700}.sheet-body{flex-direction:column;gap:16px;width:100%;max-width:1000px;margin:0 auto;padding:4px 20px 96px;display:flex;overflow-y:auto}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.legend{color:var(--text-2);flex-wrap:wrap;gap:6px 16px;font-size:13px;display:flex}.legend-swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.map-scroll{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);overflow-x:auto}.map-svg{display:block}.map-node{cursor:pointer;outline:none}.map-node rect{fill:var(--surface);stroke-width:1.5px}.map-node text{font-size:12px;font-family:var(--font);fill:var(--text)}.map-node[data-status=locked] text{fill:var(--text-3)}.map-node[data-status=mastered] rect{stroke:var(--map-mastered);fill:color-mix(in srgb, var(--map-mastered) 12%, var(--surface))}.map-node[data-status=in-progress] rect{stroke:var(--map-progress);fill:color-mix(in srgb, var(--map-progress) 12%, var(--surface))}.map-node[data-status=available] rect{stroke:var(--map-available);fill:color-mix(in srgb, var(--map-available) 10%, var(--surface))}.map-node[data-status=locked] rect{stroke:var(--map-locked);stroke-dasharray:4 3}.map-node[aria-pressed=true] rect{stroke:var(--text);stroke-width:3px}.map-node:focus-visible rect{stroke:var(--accent);stroke-width:3px}.map-edge{fill:none;stroke:var(--border-strong);stroke-width:1.5px}.map-edge[data-travelled=true]{stroke:var(--map-mastered);stroke-width:2px}.map-check{fill:var(--map-mastered);font-size:13px;font-weight:700}.status-text[data-status=mastered]{color:var(--map-mastered)}.status-text[data-status=in-progress]{color:var(--map-progress)}.status-text[data-status=available]{color:var(--map-available)}.status-text[data-status=locked]{color:var(--text-3)}.connections{grid-template-columns:76px 1fr;gap:6px 10px;font-size:14px;display:grid}.connections dt{color:var(--text-2)}.connections dd{margin:0}.demo{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.demo summary{cursor:pointer;color:var(--text-2);font-weight:600}.demo[open] summary{margin-bottom:10px}.toggle-chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text-2);border-radius:999px;padding:5px 12px;font-size:13px}.toggle-chip[aria-pressed=true]{background:var(--map-mastered);border-color:var(--map-mastered);color:var(--surface)}.inspector-table{border-collapse:collapse;width:100%;font-size:14px}.inspector-table th,.inspector-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:10px 10px 10px 0}.inspector-table th{color:var(--text-2);font-weight:600}.inspector-scroll{overflow-x:auto}@media (width<=560px){.page{gap:20px;padding-top:20px}.card{padding:16px}.prompt{font-size:17px}.slider-row{grid-template-columns:72px 1fr 44px}}
