:root{--ink:#f3f6f9;--dim:#93a7ba;--edge:#93a7ba52;--panel:#101821ed;--road:#2b333d;--paint:#f2f2ee;--go:#4ade7a;--wait:#ff8a3d;--stop:#ff5e52;--sun:#ffc23d}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#0d141c;margin:0;font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#app{-webkit-tap-highlight-color:transparent;position:fixed;inset:0}#game-canvas{touch-action:none;width:100%;height:100%;display:block}#app[data-input=touch]{user-select:none}#boot-status{text-align:center;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:700;position:fixed;inset:auto 0 46%}#hud-root{pointer-events:none;position:absolute;inset:0}.sk-hud{position:absolute;inset:0}.sk-hud.hidden{display:none}.sk-prompt{text-align:center;max-width:min(680px,88vw);color:var(--ink);border:1px solid var(--edge);backdrop-filter:blur(3px);background:#0d141c9e;border-radius:999px;padding:9px 18px;font-size:15px;font-weight:700;transition:opacity .2s;position:absolute;top:18px;left:50%;transform:translate(-50%)}.sk-progress{letter-spacing:.1em;color:var(--dim);font-size:13px;font-weight:800;position:absolute;top:18px;right:20px}.sk-check{text-align:center;border:1px solid var(--edge);backdrop-filter:blur(4px);background:#0d141cad;border-radius:14px;width:min(430px,84vw);padding:12px 16px 10px;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.sk-check-label{letter-spacing:.06em;color:var(--wait);font-size:17px;font-weight:800}.sk-check-label b{font-weight:900}.sk-check-label.want-left,.sk-check-label.want-right{color:var(--wait)}.sk-check-label.done{color:var(--go)}.sk-check-label.stale{color:var(--stop);font-size:15px}#app:not(.paneled):not([data-paused]) .sk-check-label.want-left,#app:not(.paneled):not([data-paused]) .sk-check-label.want-right{animation:1.15s ease-in-out infinite nudge}@keyframes nudge{0%,to{opacity:1}50%{opacity:.55}}.sk-sweep{background:#93a7ba2e;border-radius:999px;height:8px;margin:10px 0 8px;position:relative;overflow:hidden}.sk-sweep-fill{background:var(--wait);border-radius:999px;width:0;height:100%;transition:width 60ms linear}.sk-sweep-head{background:var(--paint);border-radius:2px;width:3px;height:14px;margin-left:-1.5px;transition:left 60ms linear;position:absolute;top:-3px}.sk-sweep-head.holding{background:var(--go);box-shadow:0 0 8px var(--go)}.sk-pips{justify-content:center;gap:8px;display:flex}.sk-pip{letter-spacing:.06em;width:30px;height:22px;color:var(--dim);background:#93a7ba24;border:1px solid #0000;border-radius:6px;font-size:12px;font-weight:900;line-height:22px}.sk-pip.active{border-color:var(--wait);color:var(--wait)}.sk-pip.done{color:var(--go);background:#4ade7a33;border-color:#4ade7a80}.sk-freshness-track{background:#93a7ba29;border-radius:999px;height:3px;margin-top:9px;overflow:hidden}.sk-freshness{background:var(--go);width:0;height:100%;transition:width .12s linear}.sk-freshness.low{background:var(--stop)}.sk-gap{opacity:0;letter-spacing:.05em;border:1px solid var(--edge);background:#0d141ca8;border-radius:999px;padding:7px 16px;font-size:14px;font-weight:800;transition:opacity .14s;position:absolute;bottom:160px;left:50%;transform:translate(-50%)}.sk-gap.visible{opacity:1}.sk-gap.clear{color:var(--go);border-color:#4ade7a73}.sk-gap.wait{color:var(--wait);border-color:#ff8a3d73}.sk-signal{opacity:0;letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--edge);background:#0d141cb3;border-radius:8px;padding:6px 15px;font-size:13px;font-weight:800;transition:opacity .14s;position:absolute;top:96px;left:50%;transform:translate(-50%)}#app:not([data-input=touch]) .sk-signal{padding-block:4px;top:92px}.sk-signal.visible{opacity:1}.sk-signal.walk{color:var(--go);border-color:#4ade7a80}.sk-signal.clearing{color:var(--wait);border-color:#ff8a3d80}.sk-signal.stop{color:var(--stop);border-color:#ff5e5280}.sk-hud.sk-free .sk-check,.sk-hud.sk-free .sk-gap,.sk-hud.sk-free .sk-progress{display:none}.sk-tally{border:1px solid var(--edge);backdrop-filter:blur(3px);letter-spacing:.04em;color:var(--ink);white-space:pre;text-align:right;background:#0d141cb8;border-radius:12px;padding:10px 14px;font-size:15px;font-weight:800;line-height:1.6;display:none;position:absolute;top:12px;right:14px}.sk-hud.sk-free .sk-tally{display:block}.sk-coach{text-align:center;opacity:0;border:1px solid var(--edge);background:#0d141cdb;border-radius:12px;max-width:min(560px,86vw);padding:12px 20px;font-size:16px;font-weight:700;line-height:1.45;transition:opacity .2s;position:absolute;top:18px;left:50%;transform:translate(-50%)}.sk-coach.visible{opacity:1}.sk-coach.good{color:var(--go);border-color:#4ade7a8c}#app:not([data-input=touch]) .sk-hud:has(.sk-coach.visible) .sk-prompt{opacity:0}.sk-hud .sk-coach{margin:0}.sk-flash{opacity:0;pointer-events:none;background:#fff;transition:opacity 90ms linear;position:absolute;inset:0}#touch{pointer-events:none;position:absolute;inset:0}#touch[hidden]{display:none}#touch>*{pointer-events:auto}#app.paneled #touch,#app[data-paused] #touch{display:none}.pad{left:max(10px, env(safe-area-inset-left));bottom:max(10px, env(safe-area-inset-bottom));flex-direction:column;gap:8px;width:104px;display:flex;position:absolute}.move{border:1px solid var(--edge);width:100%;min-height:46px;color:var(--ink);font:inherit;letter-spacing:.04em;cursor:pointer;touch-action:none;background:#0d141cd1;border-radius:14px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:800;display:flex}.move.walk{min-height:66px;font-size:15px}.move-arrow{color:var(--dim);font-size:12px}.move[data-on=true] .move-arrow{color:inherit}#go-walk[data-on=true]{color:#06210f;background:#4ade7ae6;border-color:#0000}#go-run[data-on=true]{color:#2a1705;background:#ff8a3deb;border-color:#0000}#go-back[data-on=true]{background:#93a7ba57}#app[data-input=touch] .sk-hud:not(.hidden){padding:max(8px, env(safe-area-inset-top)) 10px 0;flex-direction:column;align-items:center;gap:6px;display:flex}#app[data-input=touch] :is(.sk-prompt,.sk-signal,.sk-check,.sk-gap,.sk-coach){max-width:100%;margin:0;position:static;transform:none}#app[data-input=touch] .sk-prompt{padding:7px 14px;font-size:12.5px}#app[data-input=touch] .sk-check{width:min(430px,100%)}#app[data-input=touch] .sk-coach{padding:10px 16px;font-size:14px}#app[data-input=touch] .sk-progress{top:12px;right:12px}#app[data-input=touch][data-short=true] .move.walk{min-height:52px}#app[data-input=touch][data-short=true] .pad{gap:6px;width:96px}.panel>.btn.primary{z-index:1;box-shadow:0 6px 18px 12px var(--panel);margin-bottom:0;position:sticky;bottom:0}.panel>.row:has(>.btn.primary){z-index:1;background:var(--panel);box-shadow:0 -2px 18px 12px var(--panel);margin-bottom:0;padding-top:6px;position:sticky;bottom:0}#ui-root{backdrop-filter:blur(7px);background:#080d139e;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0;overflow-y:auto}#ui-root.hidden{display:none}.panel{text-align:center;background:var(--panel);border:1px solid var(--edge);border-radius:18px;width:min(660px,94vw);max-height:92vh;padding:26px 28px;overflow-y:auto;box-shadow:0 30px 70px #00000080}.title{letter-spacing:.02em;margin:0 0 2px;font-size:40px;font-weight:900}h2.title{font-size:30px}.tagline{color:var(--sun);letter-spacing:.06em;margin:0 0 14px;font-weight:800}.eyebrow{letter-spacing:.14em;color:var(--dim);text-transform:uppercase;font-size:12px;font-weight:800;display:block}.blurb{color:var(--dim);margin:10px 0;font-size:14px}.blurb b{color:var(--ink)}.lesson{margin:10px 0;font-size:17px;font-weight:700}.rulenote{color:var(--dim);margin:6px 0 14px;font-size:13px}.advice{color:var(--wait);margin:8px 0 12px;font-size:14px;font-weight:700}.fineprint{color:var(--dim);opacity:.8;margin:14px 0 0;font-size:12px}.promo{color:var(--dim);margin:12px 0 0;font-size:13px}.promo a{color:var(--sun);font-weight:800;text-decoration:none}.row{flex-wrap:wrap;justify-content:center;gap:4px;margin:12px 0 4px;display:flex}.btn{border:1px solid var(--edge);color:var(--ink);font:inherit;letter-spacing:.05em;cursor:pointer;background:#93a7ba1a;border-radius:10px;margin:5px 4px;padding:11px 22px;font-size:15px;font-weight:800;display:inline-block}.btn:hover{background:#93a7ba33}.btn.primary{background:var(--sun);border-color:var(--sun);color:#1a1305}.btn.primary:hover{background:#ffd05f}.btn.warn{color:var(--stop);background:#ff5e521f;border-color:#ff5e526b}.btn.small{padding:7px 14px;font-size:12px}.modes{align-items:stretch;gap:8px;margin:18px 0 8px;display:flex}.modes .mode{text-align:left;border:1px solid var(--edge);color:var(--dim);font:inherit;cursor:pointer;background:#93a7ba14;border-radius:11px;flex-direction:column;flex:1 1 0;gap:5px;padding:11px 12px;display:flex}.modes .mode b{letter-spacing:.06em;color:var(--ink);font-weight:800}.modes .mode.on b{color:inherit}.modes .mode span{letter-spacing:0;opacity:.85;font-size:12.5px;font-weight:600;line-height:1.45}.modes .mode:hover{background:#93a7ba29}@media (width<=380px){.modes{flex-direction:column}}.modes .mode.on{background:var(--sun);border-color:var(--sun);color:#1b1405}.panel.freeplay .modes .mode.on{background:var(--stop);border-color:var(--stop);color:#2a0b08}.mode-note{color:var(--dim);margin:0 0 4px;font-size:13px;line-height:1.5}.panel.freeplay .lvl:hover{border-color:var(--stop)}.levels{flex-direction:column;gap:8px;margin:16px 0 8px;display:flex}.lvl{text-align:left;cursor:pointer;border:1px solid var(--edge);width:100%;color:var(--ink);font:inherit;background:#93a7ba14;border-radius:12px;align-items:center;gap:14px;padding:12px 16px;display:flex}.lvl:hover{border-color:var(--sun);background:#93a7ba29}.lvl-n{color:var(--sun);min-width:22px;font-size:22px;font-weight:900}.lvl-body{flex:1}.lvl-body b{font-size:16px;display:block}.lvl-body small{color:var(--dim);margin-top:2px;font-size:12.5px;display:block}.lvl-best{color:var(--dim);font-size:13px;font-weight:900}.lvl-best.perfect{color:var(--go)}.cities-head{margin:10px 0 2px}.cities-head b{letter-spacing:.14em;color:var(--dim);text-transform:uppercase;font-size:12px;font-weight:800;display:block}.cities-head p{color:var(--dim);margin:4px 0 8px;font-size:13px;line-height:1.45}.controls-table{border-collapse:collapse;text-align:left;margin:12px auto 8px;font-size:13px}.controls-table td{color:var(--dim);padding:3px 10px}.controls-table td:first-child{color:var(--sun);text-align:right;white-space:nowrap;font-weight:800}.howto{text-align:left;max-width:460px;color:var(--dim);margin:10px auto 14px;font-size:14.5px;line-height:1.8}.howto b{color:var(--ink)}.settings{border-top:1px solid var(--edge);margin-top:14px;padding-top:12px}.setting{color:var(--dim);justify-content:center;align-items:center;gap:12px;margin:6px 0;font-size:13px;display:flex}.setting input{width:200px}.setting-block{margin-top:10px}.setting-label{letter-spacing:.1em;color:var(--dim);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800;display:block}.report-headline{font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:56px;font-weight:900}.report-headline.good{color:var(--go)}.report-headline.ok{color:var(--sun)}.report-headline.bad{color:var(--stop)}.marks{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0;display:flex}.mark{border:1px solid var(--edge);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:800}.mark.got{color:var(--go);background:#4ade7a1a;border-color:#4ade7a73}.mark.missed{color:var(--dim)}img.report-card{border:1px solid var(--edge);border-radius:12px;width:100%;margin:12px 0 4px}@media (width<=560px){.title{font-size:30px}.panel{padding:20px 18px}.sk-prompt{font-size:13px}}
