*,:before,:after{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}:root{--ink:#0b0f1e;--panel:#101a40b8;--panel-solid:#1a2a5e;--text:#f4f7ff;--muted:#a9b8e8;--gas:#ffd21f;--brake:#ff5a6b;--pedal-w:clamp(62px, 13vmin, 122px);--edge:max(12px, env(safe-area-inset-bottom))}html,body{touch-action:none;overscroll-behavior:none;background:#8fcbef;height:100%;margin:0;overflow:hidden}body{font-family:ui-rounded,SF Pro Rounded,system-ui,sans-serif}#viewport{width:100vw;height:100vh;display:block}body:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#381e5242 100%);position:fixed;inset:0}#fps{top:max(10px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:2;color:var(--text);letter-spacing:.04em;pointer-events:none;background:#101a4073;border-radius:999px;padding:3px 9px;font:700 12px/1.4 ui-monospace,SF Mono,monospace;position:fixed}#reset{top:max(10px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));z-index:2;border:3px solid var(--ink);background:linear-gradient(165deg, #34488a 0%, var(--panel-solid) 55%, #101a3e 100%);min-height:44px;box-shadow:inset 0 2px 0 #ffffff38, 0 4px 0 var(--ink), 0 8px 14px #0a14324d;color:var(--text);letter-spacing:.08em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:0 14px 0 10px;font:900 13px/1 ui-rounded,SF Pro Rounded,system-ui,sans-serif;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:inline-flex;position:fixed}#reset svg{fill:none;width:22px;height:22px;stroke:var(--gas);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}#reset.is-pressed{box-shadow:inset 0 2px 0 #ffffff24, 0 1px 0 var(--ink), 0 3px 6px #0a14324d;transform:translateY(3px)}#controls{z-index:2;padding:0 max(14px, env(safe-area-inset-right)) var(--edge) max(14px, env(safe-area-inset-left));pointer-events:none;justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.pedal{--accent:var(--gas);width:var(--pedal-w);height:calc(var(--pedal-w) * 1.55);perspective:420px;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:pointer;background:0 0;border:0;flex:none;padding:0}.pedal--brake{--accent:var(--brake);height:calc(var(--pedal-w) * 1.3)}.pedal__plate{border:3px solid var(--ink);background:linear-gradient(165deg, #34488a 0%, var(--panel-solid) 45%, #101a3e 100%);width:100%;height:100%;box-shadow:inset 0 2px 0 #ffffff38, inset 0 -3px 0 #00000040, 0 6px 0 var(--ink), 0 12px 20px #0a143259;transform-origin:50% 100%;border-radius:26% 26% 18% 18%/16% 16% 12% 12%;flex-direction:column;align-items:center;transition:transform 90ms ease-out,box-shadow 90ms ease-out,filter 90ms ease-out;display:flex}.pedal__grip{background:repeating-linear-gradient(180deg, var(--accent) 0 11%, transparent 11% 21%), #0000002e;opacity:.85;border-radius:12px;flex:1;width:66%;margin:16% 0 9%;box-shadow:inset 0 0 0 2px #00000040}.pedal__label{color:var(--accent);font-weight:900;font-size:calc(var(--pedal-w) * .15);letter-spacing:.08em;text-shadow:0 2px 0 var(--ink);margin-bottom:11%}.pedal.is-pressed .pedal__plate{box-shadow:inset 0 2px 0 #ffffff1f, inset 0 -2px 0 #0000004d, 0 2px 0 var(--ink), 0 4px 10px #0a14324d;filter:brightness(1.12);transform:rotateX(24deg)translateY(5px)scale(.97)}.pedal.is-pressed .pedal__grip{opacity:1}.dash{border:3px solid var(--ink);background:var(--panel);-webkit-backdrop-filter:blur(8px);width:clamp(190px,22vmin + 120px,340px);box-shadow:inset 0 2px 0 #ffffff29, 0 5px 0 var(--ink), 0 10px 20px #0a14324d;color:var(--text);pointer-events:none;border-radius:18px;flex:0 auto;padding:6px 12px 8px}.dash__main{justify-content:space-between;align-items:center;gap:10px;display:flex}.dash__speed{font-variant-numeric:tabular-nums;text-shadow:0 2px 0 var(--ink);align-items:baseline;gap:5px;font-size:clamp(24px,3vmin + 12px,40px);font-weight:900;line-height:1;display:flex}.dash__speed small{color:var(--gas);letter-spacing:.08em;text-transform:uppercase;font-size:.38em;font-weight:800}.dash__chip{border:2px solid var(--ink);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;background:#00000040;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:clamp(11px,1.2vmin + 7px,15px);font-weight:800;display:inline-flex}.dash__chip span{color:var(--text)}.dash__chip svg{width:1em;height:1em;fill:var(--gas);stroke:var(--gas);stroke-width:1.6px;stroke-linejoin:round}.dash__bar{fill:none;width:100%;height:clamp(7px,.8vmin + 4px,11px);margin-top:6px;display:block}.dash__bar path{stroke-width:10px}.dash__track{stroke:#ffffff1f}.dash__redline{stroke:#ff5a6b59;stroke-dasharray:0 82 18}.dash__rpm{stroke:url(#rpm-gradient);stroke-dasharray:100;stroke-dashoffset:100px}@media (height<=500px){.dash{border-radius:14px;padding:4px 9px 6px}.dash__chip{gap:3px;padding:1px 7px;font-size:11px}.dash__bar{margin-top:4px}}#message{z-index:3;color:#fff;text-align:center;background:#1b1b1f;place-items:center;padding:16px;font-size:18px;display:grid;position:fixed;inset:0}#message[hidden]{display:none}
