:root{--bg: #0a0c0f;--bg-scrim: rgba(10, 12, 15, .9);--surface: rgba(16, 20, 25, .72);--surface-solid: #12161b;--surface-raised: #1a2027;--line: #29313b;--text: #eef2f5;--muted: #9aa5b1;--accent: #4ef0c2;--accent-ink: #04140f;--accent-ink-line: rgba(4, 20, 15, .35);--overlay: rgba(10, 12, 15, .55);--shadow: rgba(0, 0, 0, .6);--faster: #6cb6ff;--slower: #ff8170;--danger: #ff8170;--bronze: #c98a5a;--silver: #b9c3cc;--gold: #f2c94c;--author: #4ef0c2;--heading: "Sora", system-ui, sans-serif;--body: "Sora", system-ui, sans-serif;--radius: 8px;--scene-sky-top: #03050a;--scene-sky-horizon: #16233d;--scene-fog: #0d1526;--scene-floor: #0c1015;--scene-floor-line: #1a222d;--scene-asphalt: #262a31;--scene-road-line: #d9dee5;--scene-side: #171b21;--scene-wall: #2c333d;--scene-boost: #ff7a45;--scene-car-dark: #14171b;--scene-tail: #ff3b4e;--scene-ghost: #c4e6ff;--scene-tower: #222831;--scene-light: #e9efff;--scene-moon: #c9d6ff;--scene-glass: #0b0e13;--scene-rim: #8a929c;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-tap-highlight-color:transparent}h1,h2,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}kbd{display:inline-block;min-width:1.6em;padding:0 .35em;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:var(--surface-raised);font-family:var(--body);font-size:.8em;line-height:1.5;text-align:center}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.eyebrow,.section-title{color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 1.2em;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);font-weight:700;cursor:pointer}.btn:hover{border-color:var(--muted)}.btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{border-color:var(--text)}.btn-primary kbd{border-color:var(--accent-ink-line);background:transparent;color:var(--accent-ink)}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer}.icon-btn svg,.touch-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-btn .when-off,.icon-btn[aria-pressed=false] .when-on{display:none}.icon-btn[aria-pressed=false] .when-off{display:block}.menu{position:fixed;inset:0;overflow-y:auto;background:linear-gradient(90deg,var(--bg-scrim) 0,var(--bg-scrim) 34rem,transparent 52rem)}.menu-panel{display:flex;flex-direction:column;gap:1.75rem;width:min(100%,31rem);padding-block:max(2rem,env(safe-area-inset-top,0px)) max(2rem,env(safe-area-inset-bottom,0px));padding-left:max(1.5rem,env(safe-area-inset-left,0px));padding-right:1.5rem}.menu-head{display:grid;gap:.6rem}.menu h1{font-family:var(--heading);font-size:clamp(2.6rem,9vw,4rem);font-weight:700;line-height:.95;letter-spacing:-.035em;text-wrap:balance}.lede{color:var(--muted);max-width:34ch}.tracks{display:grid;gap:.75rem}.track-list{display:grid;gap:.5rem}.track-row{display:grid;grid-template-columns:3.2rem 1fr auto;align-items:center;gap:.75rem;width:100%;min-height:64px;padding:.65rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer}.track-row:hover{border-color:var(--muted)}.track-row[aria-pressed=true]{border-color:var(--accent);background:var(--surface-raised)}.track-code{color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.track-row[aria-pressed=true] .track-code{color:var(--accent)}.track-main{display:grid;min-width:0}.track-name{font-weight:700}.track-tag{color:var(--muted);font-size:.875rem}.track-best{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}.track-best.has-time{color:var(--text)}.medal{width:14px;height:14px;flex:none}.medal circle{fill:var(--line)}.medal-author circle{fill:var(--author)}.medal-gold circle{fill:var(--gold)}.medal-silver circle{fill:var(--silver)}.medal-bronze circle{fill:var(--bronze)}.menu-actions{display:flex}.menu-actions .btn{min-width:12rem}.controls{display:grid;gap:.75rem}.controls-list{display:grid;gap:.4rem;font-size:.875rem}.controls-list div{display:grid;grid-template-columns:9.5rem 1fr;gap:.75rem}.controls-list dt{color:var(--muted)}.controls-touch{display:none}@media(pointer:coarse){.controls-keys{display:none}.controls-touch{display:grid}}.footnote{color:var(--muted);font-size:.875rem}a{color:var(--accent);text-underline-offset:3px}.records{display:grid;gap:.75rem}.records-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.records-track{font-size:.875rem;font-weight:700}.records-note{color:var(--muted);font-size:.875rem}.records-list{display:grid;gap:.15rem;font-variant-numeric:tabular-nums}.record{display:grid;grid-template-columns:1.75rem 1fr auto 14px;align-items:center;gap:.6rem;min-height:2.1rem;padding:.1rem .6rem;border-radius:6px}.record:nth-child(odd){background:var(--surface)}.record-rank{color:var(--muted);font-weight:700}.record-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-time{font-feature-settings:"tnum"}.record.is-you{box-shadow:inset 0 0 0 1px var(--accent)}.record.is-you .record-rank,.record.is-you .record-name{color:var(--accent);font-weight:700}.records-you{padding-inline:.6rem;color:var(--accent);font-weight:700}.player{display:grid;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--line)}.player-line{font-size:.875rem}.player-actions{display:flex;flex-wrap:wrap;gap:1.25rem}.link-btn{min-height:44px;padding:0;border:0;background:none;color:var(--accent);font-size:.875rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.confirm{display:grid;gap:.6rem;font-size:.875rem}.name-form{display:grid;gap:.45rem}.name-form label{font-size:.875rem;font-weight:700}.name-row{display:flex;flex-wrap:wrap;gap:.5rem}.name-row input{flex:1 1 10rem;min-width:0;min-height:48px;padding:0 .9rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--text);font:inherit}.name-row input:focus-visible{border-color:var(--accent);outline-offset:0}.field-help{color:var(--muted);font-size:.875rem}.field-error{color:var(--danger);font-size:.875rem;font-weight:700}.btn-danger{border-color:var(--danger);background:transparent;color:var(--danger)}.finish-board{color:var(--accent);font-weight:700}#finish-form:not([hidden])~.overlay-actions #btn-again{border-color:var(--line);background:var(--surface-raised);color:var(--text)}@media(min-width:1000px){.records{position:fixed;top:max(2rem,env(safe-area-inset-top,0px));right:max(1.5rem,env(safe-area-inset-right,0px));width:22rem;max-height:calc(100% - 4rem);overflow-y:auto;padding:1.25rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-scrim)}}.hud{position:fixed;inset:0;pointer-events:none;font-variant-numeric:tabular-nums}.hud button{pointer-events:auto}.hud-track{position:absolute;top:max(1rem,env(safe-area-inset-top,0px));left:max(1rem,env(safe-area-inset-left,0px));padding:.5rem .8rem;border-radius:var(--radius);background:var(--surface);font-size:.875rem}.hud-track-name{font-weight:700}.hud-best{color:var(--muted)}.hud-race{position:absolute;top:max(1rem,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);display:grid;justify-items:center;gap:.15rem}.hud-time{padding:.15rem .9rem;border-radius:var(--radius);background:var(--surface);font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700;font-feature-settings:"tnum";letter-spacing:.01em}.hud-cp{color:var(--muted);font-size:.875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hud-split{margin-top:.4rem;padding:.1rem .8rem;border-radius:var(--radius);background:var(--surface);font-size:1.5rem;font-weight:700;font-feature-settings:"tnum"}.hud-split[data-tone=faster]{color:var(--faster)}.hud-split[data-tone=slower]{color:var(--slower)}.hud-actions{position:absolute;top:max(1rem,env(safe-area-inset-top,0px));right:max(1rem,env(safe-area-inset-right,0px));display:flex;gap:.5rem}.hud-speed{position:absolute;bottom:max(1.25rem,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;align-items:baseline;gap:.4rem;text-shadow:0 2px 12px var(--shadow)}.hud-speed-value{min-width:3ch;font-size:clamp(2.4rem,7vw,3.6rem);font-weight:700;font-feature-settings:"tnum";line-height:1;text-align:right}.hud-speed-unit{color:var(--muted);font-weight:700}.hud-hint{position:absolute;top:38%;left:50%;transform:translate(-50%);padding:.5rem 1rem;border-radius:var(--radius);background:var(--surface);white-space:nowrap}.countdown{position:absolute;top:30%;left:50%;transform:translate(-50%);font-size:clamp(4rem,16vw,8rem);font-weight:700;line-height:1;text-shadow:0 4px 30px var(--shadow)}.countdown[data-go]{color:var(--accent)}.touch{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;padding:0 max(1rem,env(safe-area-inset-right,0px)) max(1rem,env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));pointer-events:none;user-select:none;-webkit-user-select:none}.touch-group{display:flex;align-items:flex-end;gap:.75rem;pointer-events:auto}.touch-btn{display:grid;place-items:center;width:76px;height:76px;border:1px solid var(--line);border-radius:50%;background:var(--surface);touch-action:none}.touch-btn svg{width:30px;height:30px}.touch-btn.is-down{background:var(--surface-raised);border-color:var(--text)}.touch-group:last-child{position:relative}.touch-btn-small{position:absolute;right:0;bottom:calc(100% + .75rem);width:52px;height:52px}.touch-btn-small svg{width:22px;height:22px}.touch-btn-gas{width:92px;height:92px;border-color:var(--accent);color:var(--accent)}@media(max-width:420px){.touch-btn{width:66px;height:66px}.touch-btn-small{width:48px;height:48px}.touch-btn-gas{width:82px;height:82px}}.touch-btn-gas.is-down{background:var(--accent);color:var(--accent-ink)}body:has(.touch:not([hidden])) .hud-speed{bottom:max(7.5rem,env(safe-area-inset-bottom,0px))}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:1.5rem max(1rem,env(safe-area-inset-right,0px)) 1.5rem max(1rem,env(safe-area-inset-left,0px));overflow-y:auto;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.overlay-card{display:grid;gap:1rem;width:min(100%,26rem);padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-solid)}.overlay-card h2{font-size:1.75rem;line-height:1.1}.overlay-actions{display:flex;flex-wrap:wrap;gap:.5rem}.overlay-actions .btn{flex:1 1 auto}.finish-time{font-size:3rem;font-weight:700;font-feature-settings:"tnum";line-height:1}.finish-delta{color:var(--muted)}.finish-delta[data-tone=faster]{color:var(--faster)}.medal-table{display:grid;gap:.35rem;font-size:.875rem}.medal-table li{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:.6rem;color:var(--muted);font-variant-numeric:tabular-nums}.medal-table li.is-earned{color:var(--text)}.medal-table .tick{width:1.2em;color:var(--accent);text-align:right}.no-webgl{position:fixed;left:1rem;right:1rem;bottom:1rem;padding:1rem;border:1px solid var(--slower);border-radius:var(--radius);background:var(--surface-solid)}@media(max-width:640px){.menu{background:var(--bg-scrim)}.hud-track{display:none}.hud-race{top:calc(max(1rem,env(safe-area-inset-top,0px)) + 3.25rem)}.hud-actions{gap:.35rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}html,body{height:auto;overflow:auto}.page{display:grid;gap:1.5rem;max-width:40rem;padding-block:max(2.5rem,env(safe-area-inset-top,0px)) 3rem;padding-left:max(1.5rem,env(safe-area-inset-left,0px));padding-right:max(1.5rem,env(safe-area-inset-right,0px))}.page h1{font-size:clamp(2rem,7vw,2.75rem);line-height:1.05;letter-spacing:-.03em}.page h2{font-size:1.125rem}.page section{display:grid;gap:.5rem}.page p,.page li{color:var(--muted);max-width:62ch}.page ul{display:grid;gap:.35rem;padding-left:1.2rem;list-style:disc}.back{font-weight:700}
