:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#23332f;background:#f0f2eb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{height:82px;border-bottom:1px solid #d8ded3;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fafbf6}.brand{color:#244b3c;text-decoration:none;font-weight:850;letter-spacing:.1em;display:flex;align-items:center;gap:12px}.brand>span:last-child{font-size:13px;letter-spacing:0;font-weight:500;color:#627269;border-left:1px solid #c5cec3;padding-left:14px}.sun{font-size:36px;color:#b56728}.badge,.eyebrow{font-size:11px;font-weight:800;letter-spacing:.11em}.badge{padding:8px 12px;border:1px solid #c8d2c5;border-radius:30px;color:#5b6e62}main{max-width:1140px;margin:auto;padding:33px 34px 16px}.intro{margin-bottom:25px}.eyebrow{color:#4d6b5a}h1{font-size:clamp(25px,3vw,37px);line-height:1.15;letter-spacing:-.04em;margin:10px 0}p{line-height:1.5}.intro>p:last-child{color:#637168;margin:9px 0}.layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:22px}.card{background:#fffef9;border:1px solid #d5ded0;border-radius:22px;box-shadow:0 9px 18px #244b3c04}.play{padding:27px 30px}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.card-top>span:last-child{font-size:13px;color:#627268}.topic-label{font-size:13px;margin-right:10px}select{max-width:100%;border:1px solid #becabc;border-radius:9px;padding:10px;font:inherit;font-size:14px;background:#f6f8f1;color:#314c3f}#prompt{margin:25px 0 12px;font-size:20px;font-weight:650}.problem{font-size:38px;text-align:center;min-height:128px;display:flex;align-items:center;justify-content:center;letter-spacing:-.03em;font-variant-numeric:tabular-nums}form{display:grid;grid-template-columns:auto minmax(70px,1fr) auto;gap:12px;align-items:center;margin-top:18px}form label{font-size:24px;font-weight:650}input:not([type=checkbox]){width:100%;height:52px;background:white;border:2px solid #9baea0;border-radius:9px;font:inherit;font-size:23px;padding:8px 12px}button{font:inherit;font-size:14px;font-weight:700;border:1px solid #a8b9a8;border-radius:10px;padding:13px 16px;min-height:46px;cursor:pointer;background:#fffef9;color:#244b3c}button.primary{background:#215840;border-color:#215840;color:white}button span{margin-left:14px}button:disabled{cursor:default;opacity:.45}button:hover:enabled{filter:brightness(.96)}:focus-visible{outline:3px solid #a65f19;outline-offset:4px}button[hidden]{display:none}.muted,.small{font-size:12px;color:#627268}.muted{margin:8px 0}#notice{min-height:24px;color:#215840;font-size:14px;margin:9px 0}aside.side{padding:27px 25px}h2{font-size:22px;letter-spacing:-.025em;line-height:1.2;margin:14px 0 23px}.wallet{display:flex;align-items:baseline;gap:10px;padding:18px 0;border-block:1px solid #e2e7da}.wallet>span:first-child{color:#ae6421;font-size:30px}.wallet strong{font-size:45px;letter-spacing:-.05em}.wallet>span:last-child{font-size:12px;color:#657167}.side>p{font-size:13px}.rule{display:flex;gap:12px;align-items:center;background:#edf3e6;border-radius:12px;margin:22px 0;padding:8px 14px}.rule>span{font-size:28px}.rule p{font-size:14px;line-height:1.5}.motion{display:flex;gap:8px;align-items:center;font-size:13px;line-height:1.5;margin-top:20px}.motion input{width:18px;height:18px;accent-color:#215840}summary{font-size:13px;cursor:pointer;margin:22px 0 12px}li{font-size:12px;line-height:1.5;padding:5px 0}ol{padding-left:20px}footer{font-size:11px;color:#596b5c;margin-top:24px;text-align:center}dialog{width:min(850px,calc(100vw - 32px));max-height:calc(100dvh - 28px);border:1px solid #d5ded0;border-radius:22px;background:#fffef9;color:#23332f;padding:25px 30px;box-shadow:0 30px 100px #142d3866}dialog::backdrop{background:#132d25b8;backdrop-filter:blur(4px)}.coach-top{display:flex;justify-content:space-between;gap:12px}.coach-top>span:last-child{font-size:13px;font-weight:750}dialog h2{font-size:28px;margin:15px 0 4px}#coach-desc{font-size:14px;color:#5c6b61;margin:0 0 15px}.attempt{display:flex;gap:10px;font-size:13px;align-items:center}.attempt strong{background:#f1eadd;border:1px solid #ddd0bb;border-radius:6px;padding:4px 9px;color:#67522f;font-size:17px}.attempt>span{color:#627268}.visual{background:#f2f5ed;border:1px solid #dbe2d4;border-radius:16px;min-height:250px;display:flex;align-items:center;justify-content:center;margin-top:14px;overflow:hidden}.equation-work{width:100%;padding:18px 25px;max-width:640px}.math-row{font-size:30px;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px;min-height:50px;font-variant-numeric:tabular-nums}.math-row.operation{justify-content:space-around;color:#187a68;font-size:24px;animation:move-operation 1.1s both}.balance-line{height:1px;background:#acbaaa;margin:8px 12%}.math-row.result{color:#18654e;font-weight:750}.dim{color:#768378;font-size:24px}.fraction{display:inline-flex;flex-direction:column;vertical-align:middle;align-items:stretch;text-align:center;line-height:1.15;margin:0 3px;min-width:22px}.fraction>span{padding:3px 7px}.fraction>span:first-child{border-bottom:2px solid currentColor}.caption{font-size:17px;margin:13px 0;min-height:26px;font-weight:600}.timeline{display:flex;gap:6px}.timeline>span{height:4px;flex:1;background:#dae1d4;border-radius:4px}.timeline>span.done{background:#34775b}#completion{font-size:12px;color:#5e7062;margin:10px 0}.coach-controls{display:flex;gap:8px;flex-wrap:wrap}.coach-controls button:last-child{margin-left:auto}.coach-controls #continue{font-size:13px}.coach-controls+.small{margin:12px 0 0}.slope-work{display:flex;align-items:center;width:100%;padding:4px 12px}.slope-work svg{width:55%;height:265px}.slope-math{flex:1;text-align:center}.slope-math>span{font-size:10px;font-weight:800;letter-spacing:.07em;display:block;margin-bottom:15px}.slope-math>div{font-size:27px}.slope-math small{font-size:12px;display:block;margin-top:16px}svg{font-family:inherit;overflow:visible}svg .grid{stroke:#dce3d6;stroke-width:1;fill:none}svg .axis{stroke:#697c6b;stroke-width:1.5;fill:none}svg text:where(:not(.er-source-player text)){font-size:12px;fill:#49624f}.tick{text-anchor:middle;font-size:10px!important}.point-label{font-size:13px;font-weight:700}svg circle{fill:#243e32}.slope-line{stroke:#b3bcae;stroke-width:2;fill:none}.rise{stroke:#187a68;stroke-width:3;fill:none}.run{stroke:#8060b2;stroke-width:3;fill:none}.rise-label{fill:#187a68;text-anchor:end;font-weight:bold;font-size:17px}.run-label{fill:#8060b2;text-anchor:middle;font-weight:bold;font-size:17px}.draw{stroke-dasharray:210;stroke-dashoffset:210;animation:draw 1.5s ease-out forwards}.reveal{animation:reveal 1.2s both}.paused *{animation-play-state:paused!important}.graph-question{min-height:0}.graph-question svg{height:245px;width:100%}.manual *{animation:none!important;stroke-dashoffset:0!important}@keyframes draw{to{stroke-dashoffset:0}}@keyframes reveal{from{opacity:.15;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes move-operation{from{opacity:.1;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;stroke-dashoffset:0!important}}@media(max-width:750px){header{padding:0 20px;height:66px}.badge{font-size:9px}.brand>span:last-child{display:none}main{padding:24px 18px}.layout{grid-template-columns:1fr}.intro h1{font-size:28px}.play{padding:23px}.side{margin-bottom:16px}form{grid-template-columns:auto 1fr}form button{grid-column:1/-1}.problem{font-size:32px}dialog{padding:20px}.coach-controls button:last-child{margin-left:0}.slope-work{padding:4px;flex-direction:column}.slope-work svg{width:100%;height:220px}.slope-math{padding:12px 0}.math-row{font-size:25px}.caption{font-size:15px}.coach-top .eyebrow{font-size:9px}}@media(max-height:790px) and (min-width:751px){main{padding-top:23px}.intro{margin-bottom:20px}.intro h1{font-size:32px}.play{padding:23px 27px}.graph-question svg{height:220px}dialog{padding:20px 25px}.visual{min-height:225px}.slope-work svg{height:235px}dialog h2{font-size:25px}.math-row{min-height:44px;font-size:28px}.caption{margin:10px 0}}
.math-row.balanced{display:grid;grid-template-columns:1fr 45px 1fr;gap:0}.math-row.balanced>span:first-child{text-align:right}.math-row.balanced>span:last-child{text-align:left}.math-row.balanced.operation{justify-content:initial}
svg .tick{font-size:14px!important}svg .point-label{font-size:18px}.rise-label,.run-label{font-size:21px}.slope-work svg{height:265px}
.slope-work>.graph-wrap{width:55%}.slope-work .graph-wrap svg{width:100%;height:240px}.point-key{font-size:14px;text-align:center;font-weight:700;padding:8px 0 0}.point-key span{margin-left:18px}svg .point-label{paint-order:stroke;stroke:#f2f5ed;stroke-width:5px;stroke-linejoin:round}.graph-question>.graph-wrap{width:100%}@media(max-width:750px){.slope-work>.graph-wrap{width:100%}.slope-work .graph-wrap svg{height:220px}}

.text-equivalent summary{margin:10px 0 0}.text-equivalent p{font-size:15px;line-height:1.5;margin:10px 0 0}

.motion{min-height:44px}
/* Keep separate mathematical lines separate in local teaching extensions. */
.visual .equation-work[data-facet] .math-row,.visual .equation-work[data-topic] .math-row{display:block;line-height:1.5}
.visual table{border-collapse:collapse;margin:10px auto;font-size:22px}.visual th,.visual td{border:1px solid #b9cbb2;padding:5px 18px;text-align:center}.visual th{background:#e3ecdc}.visual .axis-row{background:#e3f1dc}
@media(min-width:751px){.visual .equation-work[data-facet]:has(svg){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:5px 15px;align-items:center;max-width:none;padding:10px 16px}.visual .equation-work[data-facet]:has(svg)>svg{grid-column:1;grid-row:1;width:100%;height:225px!important}.visual .equation-work[data-facet]:has(svg)>div:not(.math-row){grid-column:1;grid-row:2;text-align:center;font-size:14px!important}.visual .equation-work[data-facet]:has(svg)>.math-row{grid-column:2;grid-row:1/3;font-size:26px}.visual .equation-work[data-facet]:has(svg){min-height:260px}}
/* Keep the solo demo's game-return controls in reach while the original
   16:9 scene retains its readable size. The rest of the modal scrolls. */
#coach,#full-coach{overflow-y:auto;scroll-padding-bottom:84px}
#coach .coach-controls,#full-coach .coach-controls{position:sticky;bottom:0;z-index:3;background:#fffef9;padding:9px 0 7px;border-top:1px solid #dbe2d4;box-shadow:0 -8px 10px #fffef9;margin-top:8px}
@media(max-width:500px){#coach .coach-controls,#full-coach .coach-controls{bottom:-1px;gap:6px}#coach .coach-controls button,#full-coach .coach-controls button{flex:1 1 42%;padding:10px 8px}#coach .coach-controls #continue{flex-basis:100%}}
