:root{color-scheme:light;--ink:#182344;--muted:#536078;--mint:#51edc8;--peach:#ffc775;--paper:#f4f6fb;--navy:#17264e;--purple:#7260ec;--shadow:0 14px 40px #14234922;font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px}button,input{font:inherit}button{cursor:pointer;border:0;font-weight:800;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,summary:focus-visible,input:focus-visible{outline:4px solid #fd8a27;outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.045)}[hidden]{display:none!important}.shell{max-width:1280px;margin:auto;padding:18px 28px 14px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.brand{display:flex;align-items:center;gap:13px}.lca{background:var(--ink);color:#fff;font-size:15px;letter-spacing:1px;padding:10px 12px;border-radius:11px;transform:rotate(-4deg)}.brand-title{font-size:19px;letter-spacing:1.6px}.brand-title b{color:#7060d6}.quiet{background:white;border:1px solid #dce2ec;border-radius:12px;padding:12px 16px;font-size:14px;min-height:46px}.quiet span{display:inline-block;margin-left:8px;background:var(--paper);border-radius:50%;padding:1px 6px}.game{isolation:isolate;position:relative;width:100%;height:min(70vw,620px);min-height:555px;overflow:hidden;border-radius:26px;background:#21496a;border:5px solid #fff;box-shadow:var(--shadow)}canvas{display:block;width:100%;height:100%;touch-action:none}.start-screen{position:absolute;inset:0;overflow:auto;display:flex;align-items:flex-start;justify-content:space-between;padding:28px 44px;background:linear-gradient(90deg,#10264655 0%,#10264611 55%,transparent 100%)}.start-card{margin-block:auto;width:415px;max-width:52%;padding:25px 27px 19px;background:#fffffff5;border-radius:24px;box-shadow:0 15px 50px #10264630}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:900;color:#4c5980}.mini-star{color:#1e8f7c;font-size:18px;margin-right:5px}h1{font-size:clamp(38px,4.3vw,58px);line-height:1.01;letter-spacing:-2px;margin:15px 0 10px;font-weight:900}h1 em{font-style:normal;color:#6350d7}p{line-height:1.5}.intro{margin:0 0 19px;font-size:14px;color:var(--muted)}fieldset{border:0;padding:0;margin:0 0 16px}legend{font-size:14px;font-weight:900;margin-bottom:9px;padding:0}.table-options{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.table-options button{background:#edf0f8;border:2px solid transparent;border-radius:9px;min-height:39px;color:var(--ink);font-size:16px;padding:7px 0}.table-options button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.table-options button:last-child{font-size:14px}.modes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modes button{display:grid;grid-template-columns:24px 1fr;grid-template-rows:auto auto;text-align:left;border:2px solid #d9dfeb;background:#fff;border-radius:12px;padding:10px 9px;gap:2px 4px;color:var(--ink)}.modes button span{grid-row:1/3;font-size:19px;align-self:center}.modes button b{font-size:15px}.modes button small{font-size:10px;font-weight:600;white-space:nowrap}.modes button[aria-pressed=true]{border-color:#188c78;background:#e5fcf5}.primary{background:var(--mint);color:#073d35;box-shadow:0 4px 0 #20a68a;border-radius:12px;min-height:50px;padding:14px 22px;font-size:17px}.primary:active{box-shadow:none;transform:translateY(3px)}.start-button{width:100%;display:flex;justify-content:space-between;align-items:center}.small-note{font-size:12px;color:var(--muted);margin:13px 0 0;line-height:1.45}.start-card .small-note{text-align:center}.mission-card{align-self:flex-start;margin:44px 12px 0 0;color:white;text-shadow:0 2px 10px #16374b44}.orbit-mark{font-size:65px;color:#ffe394}.mission-card p{font-size:11px;font-weight:900;letter-spacing:2px;margin:5px 0 10px}.mission-card strong{font-size:32px;line-height:1.12;display:block;letter-spacing:-1px}.locker-button{display:block;background:#17324bea;color:#fff;border:1px solid #ffffff55;border-radius:40px;min-height:46px;padding:12px 17px;font-size:14px;margin-top:26px;box-shadow:0 6px 15px #10264630}.locker-button span:first-child{color:#ffe394}.hud{position:absolute;top:16px;left:16px;right:16px;display:flex;gap:9px;align-items:stretch}.hud-cell{background:#132a4bef;backdrop-filter:blur(7px);color:#fff;border:1px solid #ffffff26;padding:10px 18px;border-radius:14px;min-width:115px}.hud-label{font-size:10px;font-weight:900;letter-spacing:1.5px;display:block;color:#c7d4ed}.hud-cell strong{font-size:27px;line-height:1.15}.hud-cell strong small{font-size:16px}.hud-cell.coins strong{color:#ffdc6e}#shields{font-size:23px;color:#72efd5;display:block;margin-top:3px;white-space:nowrap}.pause{margin-left:auto;background:white;color:var(--ink);font-size:25px;border-radius:14px;min-width:56px}.checkpoint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:white;background:#152b4deb;border:1px solid #ffffff44;border-radius:12px;padding:10px 16px;width:210px;text-align:center}.checkpoint span{font-size:12px;font-weight:800;letter-spacing:.5px}.progress{height:5px;border-radius:5px;background:#ffffff38;margin-top:8px;overflow:hidden}.progress i{height:100%;display:block;background:var(--mint);width:0;border-radius:5px}.toast{position:absolute;top:108px;left:50%;transform:translateX(-50%);padding:10px 18px;border-radius:50px;background:#fff;color:var(--ink);font-weight:800;font-size:15px;opacity:0;max-width:90%;text-align:center;pointer-events:none;box-shadow:var(--shadow)}.toast.show{opacity:1}.run-controls{display:flex;align-items:center;justify-content:space-between;padding:13px 10px 0;gap:15px}.steer-group{display:flex;gap:10px}.steer-group button{border-radius:15px;background:white;border:1px solid #dce2ed;box-shadow:0 4px 0 #dce2ed;width:77px;height:66px;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}.steer-group button b{font-size:27px;line-height:1.1}.steer-group button span{font-size:10px;letter-spacing:1px}.steer-group:last-child button{background:var(--navy);color:white;box-shadow:0 4px 0 #0a1531}.run-controls p{font-size:14px;text-align:center;font-weight:700;margin:0;line-height:1.4}.run-controls p span{font-size:12px;color:var(--muted);font-weight:400}.bottom-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:17px 5px 0;font-size:12px;color:var(--muted)}.motion-setting{white-space:nowrap;display:flex;align-items:center;gap:6px;cursor:pointer}.motion-setting input{accent-color:#5b49c9;width:18px;height:18px}.end-screen{position:absolute;inset:0;background:#132a4ba1;display:flex;justify-content:center;align-items:center;overflow:auto;padding:20px}.results-card{width:min(580px,100%);background:white;border-radius:24px;padding:27px;max-height:100%;overflow:auto;text-align:center}h2{font-size:34px;line-height:1.12;letter-spacing:-1px;margin:12px 0}.results-card>p{margin:9px 0 15px;color:var(--muted);font-size:14px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.result-stats div{background:#eef2f8;border-radius:13px;padding:14px 5px}.result-stats strong{display:block;font-size:27px}.result-stats span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.practice-summary{background:#e3faf4;border-radius:10px;padding:10px}.end-actions{display:flex;gap:10px;margin-top:20px;justify-content:center}.secondary{border-radius:12px;background:#e9edf5;color:var(--ink);min-height:50px;padding:13px 18px;font-size:16px}.results-card details{text-align:left;font-size:14px;max-height:170px;overflow:auto;border:1px solid #dae1ed;border-radius:12px;padding:12px}.results-card summary{font-weight:800;cursor:pointer;min-height:22px}.results-card ol{padding-left:25px;margin-bottom:0}.results-card li{padding:5px 0;color:var(--muted)}dialog{padding:0;border:0;background:#fff;color:var(--ink);border-radius:24px;box-shadow:0 25px 90px #03152d80;width:min(520px,calc(100% - 28px));max-height:calc(100dvh - 28px);overflow:auto}dialog::backdrop{background:#07172cd9;backdrop-filter:blur(6px)}.dialog-inner{padding:30px}.dialog-inner>p{color:var(--muted)}.full{display:block;width:100%;margin-top:13px}.station-heading{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:1.5px;font-weight:900;color:#5b6380}.station-icon{background:#e5f9f2;color:#147b66;border-radius:12px;padding:8px 10px;font-size:23px}.safe-pill{margin-left:auto;letter-spacing:0;background:#eef0f7;color:#536079;padding:6px 9px;border-radius:20px;font-size:10px;white-space:nowrap}.question-inner h2{font-size:30px;margin-top:25px}.question-inner h2 span{display:block;font-size:64px;letter-spacing:-2px;margin:10px 0;color:#624ed1}.question-inner>p{font-size:15px;margin-top:0}.answers{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:20px 0 14px}.answers button{background:#edf1f9;border:2px solid #dce3f0;color:var(--ink);min-height:74px;border-radius:14px;font-size:30px}.answers button.wrong{background:#fff1e8;border-color:#bb7148;color:#976244;font-size:20px}.answers button.correct{background:#d9fff1;border-color:#168a6a}.feedback{font-size:16px;line-height:1.4;font-weight:700;min-height:23px;margin:13px 0;color:#275c52}.feedback.retry{color:#865627}.question-inner #continueButton{width:100%;margin-top:4px}.visual-hint{background:#f6f0ff;border-radius:12px;padding:12px;margin:12px 0;font-size:14px;line-height:1.6;color:#533c88}.hint-groups{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.hint-group{border-radius:6px;background:#dfd5f7;padding:2px 5px;color:#6342a0;letter-spacing:1px;font-size:12px;max-width:100%}.text-button{background:none;color:#536078;display:block;margin:15px auto 0;padding:10px;text-decoration:underline;min-height:42px;font-size:13px}.help-steps p{font-size:15px;background:#f2f5fa;border-radius:10px;padding:11px 14px}.help-steps b{color:var(--ink)}.suit-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.suit{border:2px solid #dce3ef;border-radius:14px;background:#f5f7fb;padding:15px 9px;min-height:120px;display:flex;align-items:center;flex-direction:column;gap:6px;color:var(--ink)}.suit[aria-pressed=true]{border-color:#17997b;background:#e5faf3}.suit:disabled{opacity:.62}.suit-swatch{width:43px;height:43px;border:5px solid #ffffff;border-radius:50%;box-shadow:0 0 0 2px #b8c3d5}.suit small{font-size:12px}.danger{background:#fff0e9;color:#95391e;min-height:50px;border-radius:12px}.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}body[data-motion=less] *{scroll-behavior:auto!important;transition:none!important}
@media(min-width:1500px){.shell{padding-top:25px}.game{height:660px}}
@media(max-width:850px){.shell{padding:13px 15px}.game{min-height:565px}.start-screen{padding:24px;gap:20px}.start-card{padding:22px;max-width:64%;width:370px}.mission-card{margin:80px 0 0}.mission-card strong{font-size:26px}.mission-card p{font-size:9px}.locker-button{font-size:12px;padding:10px}.brand-title{font-size:16px}.modes button small{font-size:9px}.hud-cell{padding:10px 13px}}
@media(max-width:600px){.shell{padding:10px 8px}.topbar{margin-bottom:10px;padding:0 4px}.brand{gap:8px}.brand-title{font-size:14px;letter-spacing:1px}.lca{font-size:12px;padding:9px 10px}.quiet{font-size:12px;padding:10px;min-height:42px}.quiet span{display:none}.game{border-width:3px;border-radius:21px;height:calc(100svh - 180px);min-height:525px;max-height:750px}.start-screen{padding:16px;align-items:flex-end;justify-content:center;background:linear-gradient(0deg,#17264e70,transparent)}.start-card{max-width:100%;width:390px;padding:19px 21px 14px}.eyebrow{font-size:10px;letter-spacing:1.4px}.start-card h1{font-size:38px;margin:10px 0 8px;letter-spacing:-1.5px}.start-card h1 br{display:none}.intro{font-size:12px;margin-bottom:14px}.table-field{margin-bottom:13px}legend{font-size:13px;margin-bottom:7px}.table-options button{min-height:35px;padding:4px 0;font-size:15px}.modes button{padding:9px 8px}.modes button small{font-size:10px}.mode-field{margin-bottom:13px}.start-button{min-height:48px;font-size:16px}.small-note{font-size:11px;margin-top:11px}.mission-card{position:absolute;top:0;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;margin:0}.mission-card .orbit-mark{font-size:45px}.mission-card p,.mission-card strong{display:none}.locker-button{margin-top:0;font-size:12px}.hud{top:10px;left:10px;right:10px;gap:6px}.hud-cell{min-width:0;padding:8px 9px;flex:1}.hud-label{font-size:8px;letter-spacing:.6px}.hud-cell strong{font-size:21px}.hud-cell strong small{font-size:12px}#shields{font-size:17px;margin-top:3px}.pause{min-width:43px;font-size:22px}.toast{top:84px;font-size:13px;padding:9px 13px;width:max-content;max-width:90%}.checkpoint{bottom:15px;width:180px;padding:8px 12px}.checkpoint span{font-size:11px}.run-controls{padding:11px 4px 0;gap:9px}.steer-group{gap:7px}.steer-group button{width:60px;height:59px;border-radius:12px}.steer-group button b{font-size:24px}.steer-group button span{font-size:9px}.run-controls p{font-size:11px;max-width:100px}.run-controls p span{display:none}.bottom-bar{font-size:10px;padding:13px 5px 0;align-items:flex-start;gap:10px}.bottom-bar>span{max-width:58%;line-height:1.5}.motion-setting{font-size:11px;gap:3px}.motion-setting input{margin:0 3px 0 0;width:16px;height:16px}.dialog-inner{padding:24px}.question-inner h2{font-size:27px}.question-inner h2 span{font-size:58px}.answers button{min-height:66px;font-size:27px}.station-heading{gap:7px;font-size:10px;letter-spacing:1px}.safe-pill{font-size:9px;padding:5px 7px}.results-card{padding:22px 17px}.results-card h2{font-size:29px}.result-stats strong{font-size:23px}.result-stats span{font-size:10px}.end-actions{flex-direction:column}.end-screen{padding:14px}.help-steps p{font-size:14px}}
@media(max-height:620px) and (min-width:601px){.game{min-height:510px}.start-card{padding:16px 23px}.start-card h1{font-size:40px}.start-screen{padding:14px 28px}.intro{margin-bottom:10px}fieldset{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(forced-colors:active){button,.hud-cell,.start-card,.results-card,dialog{border:2px solid ButtonText}.table-options button[aria-pressed=true],.modes button[aria-pressed=true]{outline:3px solid Highlight}}

/* Endless runner HUD */
.equation-bar{position:absolute;top:96px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 30px));background:#101d3beF;color:white;border:1px solid #b9d9ff55;border-radius:17px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 8px 26px #0e173941;pointer-events:none}.equation-bar>div:first-child{min-width:0}.equation-label{display:block;font-size:10px;letter-spacing:1.8px;font-weight:900;color:#bbcfef}.equation-bar strong{font-size:38px;line-height:1.2;display:block;letter-spacing:1px}.gate-choices{display:block;font-size:12px;font-weight:700;color:#c1d4ee;margin-top:2px;white-space:nowrap}.bonus-badge{background:#26395d;border:1px solid #7491c855;border-radius:12px;padding:10px 15px;text-align:center;min-width:81px}.bonus-badge b{display:block;font-size:31px;color:#ccd9f0;line-height:1.05}.bonus-badge span{display:block;font-size:10px;letter-spacing:1px;font-weight:900;margin-top:3px;white-space:nowrap}.bonus-badge.active{background:#145541;border-color:#6bffd1;box-shadow:0 0 24px #5bffbd33}.bonus-badge.active b{color:#8fffdc}.bonus-badge.active span{color:#d3ffed}.toast{top:218px;font-size:14px}.checkpoint{display:flex;justify-content:space-between;align-items:center;width:240px;bottom:17px;padding:10px 16px}.checkpoint #distance{font-size:18px;color:#fff;font-weight:900}.checkpoint #paceLabel{font-size:9px;letter-spacing:1px;color:#d3ddf1}.modes button{display:flex;flex-direction:column;padding:11px 13px;gap:3px}.modes button small{font-size:11px}.mission-card .orbit-mark{font-style:italic;font-size:84px;font-weight:900;letter-spacing:-7px}.game{background:#101b38}.run-controls .steer-group button{box-shadow:0 3px 0 #bac6dd}.run-controls .steer-group:last-child button{box-shadow:0 3px 0 #0a1531}
@media(max-width:600px){.equation-bar{top:78px;padding:10px 13px;border-radius:13px;gap:9px}.equation-label{font-size:8px;letter-spacing:1px}.equation-bar strong{font-size:30px}.gate-choices{font-size:10px}.bonus-badge{min-width:65px;padding:8px 10px;border-radius:9px}.bonus-badge b{font-size:26px}.bonus-badge span{font-size:8px}.toast{top:180px;font-size:12px;width:max-content}.modes button small{font-size:10px}.mission-card .orbit-mark{font-size:53px;letter-spacing:-4px}.checkpoint{width:205px}.checkpoint #distance{font-size:15px}}

.pause{font-size:13px;min-width:63px;padding:0 10px}body[data-phase=running] .game,body[data-phase=paused] .game,body[data-phase=help] .game{height:calc(100svh - 210px);min-height:310px;max-height:620px}.gate-choices{font-size:14px;word-spacing:3px}@media(max-width:600px){.pause{font-size:11px;min-width:48px;padding:0 6px}.gate-choices{font-size:11px;word-spacing:0}body[data-phase=running] .game,body[data-phase=paused] .game,body[data-phase=help] .game{height:calc(100svh - 200px);min-height:320px;max-height:720px}}

.runner-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 15px;font-size:14px;font-weight:900}.runner-label select{font:inherit;font-size:13px;border:2px solid #dbe2ee;background:#f0f4fa;color:#182344;border-radius:10px;min-height:44px;padding:8px 10px;max-width:76%}.runner-label select:focus-visible{outline:4px solid #fd8a27;outline-offset:3px}.start-card h1{font-size:44px}.start-card .intro{margin-bottom:14px}.start-card fieldset{margin-bottom:13px}@media(max-width:600px){.runner-label{font-size:13px;margin-bottom:12px}.runner-label select{min-height:40px;font-size:12px}.start-card h1{font-size:35px}.start-card{padding-top:16px}.start-screen{align-items:flex-start;padding-top:70px;padding-bottom:15px}}

.table-options{grid-template-columns:repeat(7,1fr)}.table-options button:last-child{font-size:12px}

/* Keep the equation legible while leaving the route open. */
.equation-bar{top:91px;width:min(354px,calc(100% - 24px));padding:7px 11px;gap:10px;border-radius:11px;box-shadow:0 4px 16px #0e173929}
.equation-label{font-size:8px;letter-spacing:1px;line-height:1.2}
.equation-bar strong{font-size:27px;line-height:1.12;letter-spacing:.2px}
.gate-choices{font-size:10px;line-height:1.2;word-spacing:0;white-space:normal;margin-top:3px}
.bonus-badge{min-width:49px;padding:5px 6px;border-radius:8px;flex-shrink:0}
.bonus-badge b{font-size:20px;line-height:1}
.bonus-badge span{font-size:7px;letter-spacing:.6px;margin-top:3px}
.toast{top:169px;font-size:12px;padding:8px 13px}
@media(max-width:600px){.equation-bar{top:75px;width:min(330px,calc(100% - 20px));padding:7px 9px;gap:8px}.equation-bar strong{font-size:25px}.equation-label{font-size:7px;letter-spacing:.7px}.gate-choices{font-size:9px}.bonus-badge{min-width:44px;padding:5px}.bonus-badge b{font-size:19px}.bonus-badge span{font-size:7px}.toast{top:151px;font-size:11px}}

.play-settings{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.bottom-bar{flex-wrap:wrap}.bottom-bar>span{flex:1;min-width:180px}.play-settings .motion-setting{min-height:30px}@media(max-width:600px){.bottom-bar{gap:7px}.bottom-bar>span{max-width:none;flex-basis:100%}.play-settings{justify-content:flex-start;gap:12px;width:100%}.play-settings .motion-setting{font-size:11px}}

/* Minimal equation HUD; answers live with their physical gates. */
#laneReadout,#gateTiming{display:none!important}.gate-choices.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.equation-bar{top:65px;padding:5px 10px;width:min(310px,calc(100% - 24px))}.equation-bar strong{font-size:25px}#masteryStatus{font-size:8px}.equation-label{font-size:7px}.toast{top:142px}@media(max-width:600px){.equation-bar{top:58px}.equation-bar strong{font-size:23px}.toast{top:130px}}

#shields{color:#75cfff;text-shadow:0 0 10px #278bff55}

/* Feedback stays in the reserved top strip, never over the runner. */
#statusToast{top:3px;left:50%;max-width:calc(100% - 150px);font-size:10px;padding:4px 9px;border-radius:8px;z-index:12}@media(max-width:600px){#statusToast{top:2px;max-width:calc(100% - 105px);font-size:9px;padding:3px 6px}}

#statusToast{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:12px;max-height:20px}

/* Let swipes begin over noninteractive run information; Pause remains clickable. */
.hud{pointer-events:none}.hud .pause{pointer-events:auto}
