:root{--blue:#2a8bff;--blue-deep:#0c3f9e;--orange:#ff7a1a;--orange-deep:#a3400a;--ink:#eaf2ff;--ink-dim:#9fb0cc;--panel:#080c18b8;--panel-edge:#8cbeff2e;--accent:#39d2ff;--gold:#ffc23a;--display:"Rajdhani", "Segoe UI", system-ui, sans-serif;--body:"Inter", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--body);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;background:#05060c;margin:0;overflow:hidden}#game{width:100vw;height:100vh;display:block;position:fixed;inset:0}.hidden{display:none!important}#flash{pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,#ffffffe6,#fff0 70%);transition:opacity .6s ease-out;position:fixed;inset:0}#hud{pointer-events:none;font-family:var(--display);position:fixed;inset:0}#scoreboard{top:max(12px, env(safe-area-inset-top));filter:drop-shadow(0 6px 18px #00000080);align-items:stretch;display:flex;position:absolute;left:50%;transform:translate(-50%)}#scoreboard .team{align-items:center;gap:12px;min-width:150px;padding:0 14px;display:flex}#scoreboard .team.blue{clip-path:polygon(8% 0,100% 0,100% 100%,0 100%);background:linear-gradient(90deg,#0c3f9e33,#2a8bfff2);justify-content:flex-end}#scoreboard .team.orange{clip-path:polygon(0 0,92% 0,100% 100%,0 100%);background:linear-gradient(270deg,#a3400a33,#ff7a1af2)}#scoreboard .name{letter-spacing:1.5px;text-transform:uppercase;opacity:.95;text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:15px;font-weight:700;overflow:hidden}#scoreboard .score{text-align:center;min-width:34px;font-size:42px;font-weight:700;line-height:1}.clock-wrap{text-align:center;background:#060912eb;border-bottom:2px solid #ffffff26;min-width:118px;padding:6px 20px 4px}#clock{letter-spacing:1px;font-variant-numeric:tabular-nums;font-size:36px;font-weight:700;line-height:1}#clock.urgent{color:#ff5a5a}#ot{letter-spacing:3px;color:var(--gold);font-size:11px;font-weight:700}#netstat{font:600 12px var(--body);color:var(--ink-dim);background:#00000059;border-radius:6px;padding:4px 8px;position:absolute;top:14px;right:16px}#center-msg{text-align:center;letter-spacing:4px;text-shadow:0 0 30px #39d2ff99,0 6px #00000059;font-size:clamp(64px,12vw,150px);font-weight:700;line-height:1;position:absolute;top:34%;left:0;right:0}#center-msg.pop{animation:.55s cubic-bezier(.2,1.6,.4,1) pop}#center-msg.blue{color:#bfe0ff;text-shadow:0 0 40px var(--blue), 0 0 90px var(--blue)}#center-msg.orange{color:#ffe0c4;text-shadow:0 0 40px var(--orange), 0 0 90px var(--orange)}#sub-msg{text-align:center;letter-spacing:2px;color:var(--ink);text-shadow:0 2px 8px #000000b3;font-size:clamp(18px,2.4vw,28px);font-weight:600;position:absolute;top:calc(34% + clamp(70px,13vw,160px));left:0;right:0}@keyframes pop{0%{opacity:0;transform:scale(2.2)}60%{opacity:1}to{transform:scale(1)}}#callouts{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:30%;right:24px}.callout{letter-spacing:2px;color:#fff;border-right:4px solid var(--accent);background:linear-gradient(90deg,#0000,#0a0e1cd9 30%);padding:6px 16px 4px;font-size:22px;font-weight:700;animation:.35s ease-out slidein,.5s ease-in 2.2s forwards fadeout}.callout.blue{border-color:var(--blue)}.callout.orange{border-color:var(--orange)}.callout .pts{color:var(--gold);margin-left:10px;font-size:16px}@keyframes slidein{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:none}}@keyframes fadeout{to{opacity:0;transform:translate(30px)}}#replay-tag{letter-spacing:6px;text-shadow:0 2px 10px #0009;align-items:center;gap:12px;font-size:26px;font-weight:700;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}#replay-tag .dot{background:#ff3b3b;border-radius:50%;width:14px;height:14px;animation:1s infinite blink;box-shadow:0 0 12px #ff3b3b}#replay-tag .skip{letter-spacing:1px;color:var(--ink-dim);font-size:13px;font-family:var(--body);margin-left:10px;font-weight:600}@keyframes blink{50%{opacity:.2}}#boost{right:max(26px, env(safe-area-inset-right));bottom:max(26px, env(safe-area-inset-bottom));width:170px;height:170px;position:absolute}#boost svg{width:100%;height:100%;transform:rotate(135deg)}#boost .track{fill:#0508128c;stroke:#ffffff1f;stroke-width:14px;stroke-dasharray:386 516}#boost .arc{fill:none;stroke:var(--gold);stroke-width:14px;stroke-linecap:round;stroke-dasharray:0 516;filter:drop-shadow(0 0 6px #ffc23ae6);transition:stroke-dasharray 80ms linear}#boost.low .arc{stroke:#ff6a3a}#boost-num{text-shadow:0 0 18px #ffc23a80;justify-content:center;align-items:center;padding-bottom:8px;font-size:56px;font-weight:700;display:flex;position:absolute;inset:0}#boost-label{text-align:center;letter-spacing:4px;width:100%;color:var(--ink-dim);font-size:12px;font-weight:700;position:absolute;bottom:34px}#speed{text-align:right;color:#eaf2ffd9;text-shadow:0 2px 8px #0009;font-size:30px;font-weight:700;line-height:1;position:absolute;bottom:36px;right:206px}#speed small{letter-spacing:3px;color:var(--ink-dim);font-size:11px;display:block}#speed.supersonic{color:#fff;text-shadow:0 0 16px var(--accent)}#splitline,.pbar,body.split #boost,body.split #speed,body.split #camtag,body.split #speedfx,body.split #ball-arrow{display:none}body.split #splitline{background:#05060c;height:4px;margin-top:-2px;display:block;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 14px #000000e6}body.split .pbar{background:#05081299;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:12px;padding:8px 14px;display:flex;position:absolute;right:18px}#pbar1{bottom:calc(50% + 12px)}#pbar2{bottom:max(14px, env(safe-area-inset-bottom))}.pbar .pname{letter-spacing:2px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:16px;font-weight:700;overflow:hidden}.pbar.b .pname{color:#8cc4ff}.pbar.o .pname{color:#ffc08a}.pbar .pmeter{background:#ffffff1f;border-radius:5px;width:150px;height:10px;overflow:hidden}.pbar .pmeter i{background:var(--gold);width:33%;height:100%;transition:width 80ms linear;display:block;box-shadow:0 0 10px #ffc23ae6}.pbar.low .pmeter i{background:#ff6a3a}.pbar b{text-align:right;color:#fff;text-shadow:0 0 14px #ffc23a80;min-width:44px;font-size:30px;font-weight:700}#itembox{background:#0508129e;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;padding:8px 14px 8px 10px;display:none;position:absolute;bottom:60px;left:22px}body.rumble #itembox{display:flex}#itembox kbd{font:700 13px var(--display);color:var(--gold);background:#ffffff14;border:1px solid #fff3;border-radius:5px;padding:2px 7px}#itembox b{letter-spacing:1.5px;text-transform:uppercase;color:#fff;font-size:20px;display:block}#itembox small{letter-spacing:2px;color:var(--ink-dim);text-transform:uppercase;font-size:11px;display:block}#itembox.empty b{color:var(--ink-dim)}#itembox.ready{border-color:#ffc23ab3;animation:.35s ease-out itempop;box-shadow:0 0 18px #ffc23a4d}#itembox.active{border-color:#39d2ffcc;box-shadow:0 0 18px #39d2ff59}@keyframes itempop{0%{transform:scale(1.25)}to{transform:scale(1)}}.pitem{letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);font-size:13px;font-weight:700;display:none}body.rumble .pitem{display:inline}.tb.item{background:#ffc23a40;display:none;bottom:30px;right:206px}body.rumble .tb.item{display:block}body.touch #itembox{top:86px;bottom:auto;left:12px}body.touch #itembox kbd{display:none}#cartag{font:700 13px var(--display);letter-spacing:3px;color:var(--ink);border-left:3px solid var(--accent);text-transform:uppercase;opacity:.9;padding:2px 0 2px 10px;transition:opacity .8s;position:absolute;bottom:56px;left:22px}#cartag.fade{opacity:0}body.split #cartag,body.replay #cartag{display:none}#camtag{letter-spacing:3px;color:var(--ink-dim);transform-origin:0 100%;background:#00000059;border:1px solid #ffffff14;border-radius:4px;padding:5px 12px;font-size:14px;font-weight:700;transition:color .2s,background .2s,border-color .2s,transform .2s,box-shadow .2s;position:absolute;bottom:22px;left:22px}#camtag.on{color:#eaf4ff;background:#2878ff59;border-color:#78beff8c}#camtag.flash{transform:scale(1.35);box-shadow:0 0 22px #78beffb3}#camtag .key{color:var(--gold);letter-spacing:1px;background:#ffffff24;border-radius:3px;margin-left:10px;padding:1px 7px}#scoreboard-full{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;padding:10px 16px;position:absolute;top:90px;left:50%;transform:translate(-50%)}#ui{pointer-events:none;position:fixed;inset:0}.screen{pointer-events:auto;background:radial-gradient(at 50% 120%,#39d2ff24,#0000 60%),linear-gradient(#03040a40,#03040ac7);flex-direction:column;justify-content:center;align-items:center;padding:24px;animation:.35s ease-out fadein;display:flex;position:absolute;inset:0;overflow-y:auto}#screen-main{background:linear-gradient(90deg,#03040ae0 0%,#03040a8c 38%,#03040a00 70%);align-items:flex-start;padding-left:max(6vw,24px)}@keyframes fadein{0%{opacity:0}to{opacity:1}}.screen{justify-content:flex-start}.screen:before,.screen:after{content:"";flex:1 1 0}body.in-menu #hud,body.replay #boost,body.replay #speed,body.replay #camtag,body.replay .pbar{visibility:hidden}.brand{margin-bottom:34px}.logo{font-family:var(--display);letter-spacing:1px;white-space:nowrap;transform-origin:0 100%;background:linear-gradient(#fff 0%,#cfe6ff 45%,#6fb8ff 100%);color:#0000;filter:drop-shadow(0 4px 24px #2a8bff73);-webkit-background-clip:text;background-clip:text;font-size:clamp(60px,9vw,118px);font-style:italic;font-weight:700;line-height:.9;transform:skew(-6deg)}.logo span{background:linear-gradient(90deg, var(--orange), var(--gold));color:#0000;filter:drop-shadow(0 4px 18px #ff7a1a73);-webkit-background-clip:text;background-clip:text;margin-left:.04em;display:inline}.tag{color:var(--ink-dim);letter-spacing:3px;text-transform:uppercase;margin-top:12px;font-size:15px;font-weight:600}.menu{flex-direction:column;gap:12px;width:min(420px,90vw);display:flex}.menu.narrow{width:min(320px,90vw)}.row{gap:12px;display:flex}.row.center{justify-content:center;margin-top:18px}.btn{pointer-events:auto;cursor:pointer;text-align:left;color:var(--ink);font:inherit;border:1px solid var(--panel-edge);background:linear-gradient(90deg,#141c34d9,#0c122499);border-radius:10px;flex-direction:column;flex:1;gap:3px;padding:14px 18px;transition:transform .12s,border-color .12s,background .12s,box-shadow .12s;display:flex}.btn b{font-family:var(--display);letter-spacing:1.5px;text-transform:uppercase;font-size:22px}.btn small{color:var(--ink-dim);font-size:12.5px}.btn:hover,.btn:focus-visible,.btn.focus{border-color:#39d2ffcc;outline:none;transform:translate(6px);box-shadow:0 0 0 1px #39d2ff80,0 8px 30px #39d2ff2e}.btn.primary{background:linear-gradient(90deg,#2a8bff8c,#0c3f9e59);border-color:#5aaaff80}.btn.primary.alt{background:linear-gradient(90deg,#ff7a1a80,#a3400a4d);border-color:#ffa05a80}.btn.danger{border-color:#ff5a5a66}.btn.small{font-family:var(--display);text-transform:uppercase;letter-spacing:1.5px;text-align:center;white-space:nowrap;justify-content:center;align-items:center;padding:10px 14px;font-size:18px;font-weight:700}.menu .row .btn.small{letter-spacing:1px;min-width:0;padding-inline:8px}.btn.back{font-family:var(--display);text-transform:uppercase;letter-spacing:2px;text-align:center;flex:none;margin-top:24px;padding:10px 26px;font-size:18px;font-weight:700}.footer{color:#9fb0ccb3;letter-spacing:1px;font-size:12px;position:absolute;bottom:18px;left:max(6vw,24px)}h2{font-family:var(--display);letter-spacing:3px;text-transform:uppercase;text-shadow:0 4px 20px #0009;margin:0 0 22px;font-size:44px}h3{font-family:var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin:18px 0 8px;font-size:18px}.cards{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.card{pointer-events:auto;cursor:pointer;width:220px;min-height:210px;color:var(--ink);text-align:left;font:inherit;border:1px solid var(--panel-edge);background:linear-gradient(160deg,#182240e6,#080c1ad9);border-radius:14px;flex-direction:column;gap:8px;padding:20px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.card.friend .lvl{color:var(--accent)}body.touch .card.friend{display:none}.card .lvl{font-family:var(--display);color:var(--gold);font-size:54px;font-weight:700;line-height:1}.card b{font-family:var(--display);text-transform:uppercase;letter-spacing:1.5px;font-size:26px}.card small{color:var(--ink-dim);font-size:13px;line-height:1.45}.card:hover,.card:focus-visible,.card.focus{border-color:#ffc23acc;outline:none;transform:translateY(-6px);box-shadow:0 14px 40px #ffc23a2e}.opts{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:22px;display:flex}.opts label,.field{color:var(--ink-dim);letter-spacing:1.5px;text-transform:uppercase;flex-direction:column;gap:6px;font-size:12px;font-weight:600;display:flex}.field{width:min(420px,90vw);margin-bottom:16px}.field.inline{flex-direction:row;justify-content:space-between;align-items:center;width:auto;margin-bottom:0}select,input[type=text],input:not([type]),#opt-code,#opt-name{pointer-events:auto;font:600 16px var(--body);color:var(--ink);border:1px solid var(--panel-edge);-webkit-user-select:text;user-select:text;background:#080c18cc;border-radius:8px;outline:none;padding:10px 12px}select:focus,input:focus{border-color:#39d2ffcc}.join{gap:12px;display:flex}.join input{text-transform:uppercase;letter-spacing:6px;text-align:center;width:140px;font-family:var(--display);font-size:24px;font-weight:700}.join .btn{text-align:center}.status{min-height:20px;color:var(--ink-dim);text-align:center;margin-top:14px;font-size:14px}.status.err{color:#ff8080}.code{font-family:var(--display);letter-spacing:18px;color:#fff;text-shadow:0 0 30px #39d2ffb3;margin:6px 0 4px;font-size:88px;font-weight:700}.spinner{border:4px solid #ffffff1f;border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;margin:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;width:min(560px,92vw);max-height:64vh;padding:6px 22px 18px;overflow-y:auto}.settings label{color:var(--ink);grid-template-columns:1fr 1.3fr 48px;align-items:center;gap:12px;padding:7px 0;font-size:14px;display:grid}.settings label select{grid-column:2/4}.settings output{color:var(--ink-dim);font-variant-numeric:tabular-nums;text-align:right;font-size:13px}.settings input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);justify-self:start}input[type=range]{pointer-events:auto;accent-color:var(--accent);width:100%}.hint{color:var(--ink-dim);font-size:12px}.controls-grid{background:var(--panel);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;width:min(900px,94vw);padding:10px 24px 20px;display:grid}.controls-grid table{border-collapse:collapse;width:100%;font-size:14px}.controls-grid td{border-bottom:1px solid #ffffff0f;padding:6px 4px}.controls-grid td:first-child{font-family:var(--display);color:var(--gold);white-space:nowrap;width:45%;font-size:16px;font-weight:700}.tips{color:var(--ink-dim);margin:0;padding-left:18px;font-size:13.5px;line-height:1.55}.end-banner{font-family:var(--display);letter-spacing:6px;font-size:clamp(60px,10vw,120px);font-weight:700;line-height:1}.end-banner.win{background:linear-gradient(180deg, #fff, var(--gold));color:#0000;filter:drop-shadow(0 0 30px #ffc23a99);-webkit-background-clip:text;background-clip:text}.end-banner.lose{color:#c9d4e8}.end-score{font-family:var(--display);margin:10px 0 18px;font-size:54px;font-weight:700}.end-score .b{color:var(--blue)}.end-score .o{color:var(--orange)}#screen-end{background:linear-gradient(90deg,#03040ae6 0%,#03040a9e 40%,#03040a00 66%);align-items:flex-start;padding-left:max(6vw,24px)}#screen-end>*{width:min(600px,92vw)}#screen-end .end-score{margin:6px 0 8px}#screen-end .row.center{justify-content:flex-start}#screen-end .btn{white-space:nowrap;flex:0 auto;align-items:center;padding:12px 22px}#screen-end .status{text-align:left}.end-mvp{font-family:var(--display);letter-spacing:2px;text-transform:uppercase;align-items:center;gap:10px;margin-bottom:14px;font-size:22px;font-weight:700;display:flex}.end-mvp span{letter-spacing:3px;background:linear-gradient(90deg, var(--gold), #ffb627);color:#1a1204;border-radius:6px;padding:3px 10px;font-size:13px}.end-mvp.b{color:#8cc4ff}.end-mvp.o{color:#ffc08a}table.stats{border-collapse:collapse;background:var(--panel);border-radius:12px;min-width:min(560px,92vw);font-size:15px;overflow:hidden}table.stats th,table.stats td{text-align:center;padding:10px 14px}table.stats th{font-family:var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim);background:#ffffff0a;font-size:13px}table.stats td:first-child{text-align:left;font-weight:800}table.stats tr.blue td:first-child{color:#8cc4ff}table.stats tr.orange td:first-child{color:#ffb27a}table.stats .mvp{color:var(--gold);font-family:var(--display);letter-spacing:2px;margin-left:8px;font-size:12px}#fps{color:#9f9;pointer-events:none;background:#0006;border-radius:4px;padding:2px 6px;font:600 12px monospace;position:fixed;top:8px;left:8px}#toast{opacity:0;border:1px solid var(--panel-edge);pointer-events:none;background:#080c18eb;border-radius:10px;padding:10px 18px;font-size:14px;transition:all .25s;position:fixed;bottom:30px;left:50%;transform:translate(-50%)translateY(20px)}#toast.show{opacity:1;transform:translate(-50%)}#touch{pointer-events:none;position:fixed;inset:0}#stick-zone{pointer-events:auto;width:45vw;height:65vh;position:absolute;bottom:0;left:0}#stick-base{left:max(40px, env(safe-area-inset-left));background:#ffffff12;border:2px solid #ffffff2e;border-radius:50%;width:150px;height:150px;position:absolute;bottom:40px}#stick-knob{background:#ffffff4d;border:2px solid #ffffff80;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;position:absolute;top:50%;left:50%}#touch-buttons{right:max(20px, env(safe-area-inset-right));width:260px;height:250px;position:absolute;bottom:24px}.tb{pointer-events:auto;color:#fff;font:700 14px var(--display);letter-spacing:1px;touch-action:none;background:#ffffff1a;border:2px solid #ffffff59;border-radius:50%;position:absolute}.tb.active{background:#ffffff59}.tb.big{width:96px;height:96px}.tb.small{width:62px;height:62px;font-size:12px}.tb.jump{background:#2a8bff4d;bottom:0;right:0}.tb.boost{background:#ffa0284d;bottom:34px;right:104px}.tb.drift{bottom:112px;right:16px}.tb.brake{bottom:138px;right:190px}.tb.cam{bottom:150px;right:96px}#touch-pause{top:max(12px, env(safe-area-inset-top));right:12px}#touch-reset{top:max(12px, env(safe-area-inset-top));font-size:22px;display:none;right:84px}body.training #touch-reset{display:block}.touch-only{display:none}body.touch .touch-only{display:inline}body.touch .kb-only{display:none}@media (width<=720px){#scoreboard .team{gap:6px;min-width:92px;padding:0 8px}#scoreboard .name{max-width:58px;font-size:11px}#scoreboard .score{font-size:30px}#clock{font-size:26px}.clock-wrap{min-width:84px;padding:4px 10px}#boost{width:120px;height:120px}#boost-num{font-size:38px}#speed{display:none}body.touch #boost{width:90px;height:90px;top:86px;bottom:auto;right:12px}body.touch #boost-num{font-size:28px}body.touch #boost-label{display:none}#screen-main{padding-left:24px}.footer{display:none}}#ball-arrow{filter:drop-shadow(0 0 8px #7fdcffe6);width:38px;height:38px;margin:-19px 0 0 -19px;position:absolute}#ball-arrow svg{fill:#bff0ff;width:100%;height:100%}#chat{font-family:var(--body);flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;bottom:60px;left:22px}.chatline{border-left:3px solid var(--accent);background:#060912b3;border-radius:6px;padding:5px 12px;font-size:15px;font-weight:600;animation:.25s ease-out slidein,.6s ease-in 4s forwards fadeout}.chatline.blue{border-color:var(--blue)}.chatline.orange{border-color:var(--orange)}.chatline b{margin-right:6px}.chatline.blue b{color:#8cc4ff}.chatline.orange b{color:#ffb27a}body.touch #boost{width:92px;height:92px;top:86px;bottom:auto;right:12px}body.touch #boost-num{padding-bottom:4px;font-size:28px}body.touch #boost-label,body.touch #speed,body.touch #camtag{display:none}body.touch #netstat{left:12px;right:auto}body.touch #chat{top:70px;bottom:auto}body.touch #callouts{top:180px}@media (height<=540px){.screen{justify-content:flex-start;padding-top:14px;padding-bottom:14px}#screen-main{justify-content:center}.brand{margin-bottom:12px}.logo{font-size:46px}.tag{letter-spacing:2px;margin-top:6px;font-size:11px}.menu{gap:8px}.btn{padding:8px 14px}.btn b{font-size:18px}.btn small{font-size:11px}.btn.small{padding:7px 12px;font-size:15px}.btn.back{margin-top:10px;padding:8px 20px}.footer{display:none}h2{margin-bottom:10px;font-size:28px}.cards{gap:10px}.card{gap:4px;width:190px;min-height:0;padding:12px 14px}.card .lvl{font-size:30px}.card b{font-size:20px}.opts{margin-top:10px}.code{letter-spacing:12px;font-size:56px}.spinner{width:32px;height:32px;margin:8px}.settings{max-height:calc(100vh - 120px)}.end-banner{font-size:54px}.end-score{margin:4px 0 8px;font-size:34px}table.stats th,table.stats td{padding:5px 10px;font-size:13px}#center-msg{font-size:72px;top:28%}#sub-msg{font-size:16px;top:calc(28% + 80px)}}#screen-garage{background:linear-gradient(90deg,#03040ae6 0%,#03040a99 34%,#03040a00 60%);align-items:flex-start;padding-left:max(6vw,24px)}.garage{flex-direction:column;gap:14px;width:min(420px,90vw);display:flex}.garage h2{margin-bottom:4px}.garage h3{align-items:baseline;gap:10px;margin:0 0 8px;display:flex}.gval{color:var(--ink);font-family:var(--body);letter-spacing:1px;text-transform:none;font-size:13px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.ghint{font:500 12px var(--body);color:var(--ink-dim);letter-spacing:.3px;margin:8px 0 0}.chip{pointer-events:auto;cursor:pointer;font:700 16px var(--display);letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);border:1px solid var(--panel-edge);background:#0c1224cc;border-radius:8px;padding:8px 14px}.chips.small .chip{margin-bottom:8px;padding:5px 10px;font-size:13px}.chip.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 18px #39d2ff4d}.swatches{flex-wrap:wrap;gap:8px;display:flex}.sw{pointer-events:auto;cursor:pointer;border:2px solid #ffffff2e;border-radius:50%;width:34px;height:34px;padding:0}.sw.on{box-shadow:0 0 0 2px var(--accent), 0 0 16px #39d2ff80;border-color:#fff;transform:scale(1.1)}.sw.team{background:conic-gradient(var(--blue) 0 50%, var(--orange) 50% 100%)}.chip:focus-visible,.sw:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.small.primary{background:linear-gradient(90deg,#2a8bff8c,#0c3f9e59)}@media (height<=540px){.garage{gap:6px}.sw{width:26px;height:26px}.chip{padding:5px 10px;font-size:13px}}#speedfx{pointer-events:none;opacity:0;background:radial-gradient(at 50% 55%,#0000 55%,#04081829 76%,#0408186b 100%);transition:opacity .25s linear;position:fixed;inset:0}#replay-tag .rinfo{letter-spacing:2px;color:var(--gold);white-space:nowrap;font-size:16px}#replay-tag .skip{white-space:nowrap}@media (prefers-reduced-motion:reduce){#speedfx{display:none}}#drill{white-space:nowrap;letter-spacing:2px;color:var(--gold);text-transform:uppercase;font-size:12px;font-weight:700}#tips{border:1px solid var(--panel-edge);max-width:min(760px,70vw);font:600 14px var(--body);color:var(--ink);background:#060912c7;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:14px;padding:10px 16px;animation:.4s ease-out fadein;display:flex;position:absolute;top:96px;left:50%;transform:translate(-50%)}#tips span{white-space:nowrap}#tips kbd{font:700 13px var(--display);letter-spacing:1px;color:var(--gold);background:#ffffff12;border:1px solid #ffffff2e;border-radius:5px;margin-right:4px;padding:1px 6px}body.touch #tips{max-width:60vw;font-size:12px;top:76px}#versus{font-family:var(--display);text-transform:uppercase;justify-content:center;align-items:center;gap:28px;font-weight:700;animation:.5s ease-out fadein;display:flex;position:absolute;top:18%;left:0;right:0}#versus .vb,#versus .vo{letter-spacing:2px;text-overflow:ellipsis;white-space:nowrap;max-width:42vw;font-size:clamp(26px,4.6vw,64px);overflow:hidden}#versus .vb{color:#bfe0ff;text-shadow:0 0 30px var(--blue);text-align:right}#versus .vo{color:#ffe0c4;text-shadow:0 0 30px var(--orange)}#versus .vx{color:var(--gold);letter-spacing:6px;font-size:clamp(22px,3vw,36px)}#rotate{z-index:40;font:700 20px var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--ink);text-align:center;background:#05060cf0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:fixed;inset:0}#rotate .rot-icon{color:var(--accent);font-size:64px;animation:2.4s ease-in-out infinite spin}#splash{z-index:50;font-family:var(--display);background:radial-gradient(at 50% 60%,#10183a,#05060c 70%);flex-direction:column;justify-content:center;align-items:center;gap:22px;transition:opacity .5s;display:flex;position:fixed;inset:0}#splash.gone{opacity:0;pointer-events:none}.sp-logo{color:#eaf2ff;letter-spacing:1px;text-align:center;font-size:72px;font-style:italic;font-weight:700;line-height:.9;transform:skew(-6deg)}.sp-logo span{color:#ff9a3a}.sp-bar{background:#ffffff1f;border-radius:2px;width:180px;height:4px;overflow:hidden}.sp-bar i{background:#39d2ff;width:40%;height:100%;animation:1.1s ease-in-out infinite sp;display:block}@keyframes sp{0%{transform:translate(-100%)}to{transform:translate(260%)}}.career{font:600 13px var(--body);color:var(--ink-dim);letter-spacing:.5px;flex-wrap:wrap;gap:18px;margin-top:18px;display:flex}.career b{font:700 18px var(--display);color:var(--ink);letter-spacing:1px;margin-right:5px}.career:empty{display:none}@media (height<=540px){.career{margin-top:8px;font-size:11px}.career b{font-size:15px}}.binds{grid-template-columns:1fr auto auto;gap:6px 12px;padding:6px 0;font-size:14px;display:grid}.binds .bind-head{font:700 11px var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--ink-dim);text-align:center}.binds span{align-self:center}.bind{pointer-events:auto;cursor:pointer;min-width:96px;font:700 15px var(--display);letter-spacing:1px;color:var(--gold);border:1px solid var(--panel-edge);background:#ffffff0f;border-radius:6px;padding:5px 10px}.bind.wait{color:var(--ink);border-color:var(--accent);animation:1s infinite blink}.bind-reset{grid-column:1/4;justify-self:start}
