:root{color-scheme:dark;font-family:Inter,Pretendard,system-ui,-apple-system,sans-serif;--cyan: #26e0ff;--cyan-soft: #9cf4ff;--orange: #ff7a3d;--navy: #10182c;--panel: rgba(12, 19, 37, .97);--white: #f7fbff}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#10182c}@supports (height: 100dvh){html,body,#app{width:100dvw;height:100dvh}}button,input,select{font:inherit}button{color:inherit}#game-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;display:block;width:100%;height:100%;outline:none}#app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,13,28,.1),transparent 22%,transparent 66%,rgba(5,10,20,.34));z-index:1}.hidden{display:none!important}.panel{position:fixed;z-index:10;color:var(--white);background:linear-gradient(135deg,rgba(38,224,255,.08),transparent 42%),var(--panel);border:1px solid rgba(166,238,255,.2);box-shadow:0 28px 80px #0004118c,inset 0 1px #ffffff0d;isolation:isolate}.menu-panel{left:clamp(24px,6vw,88px);top:50%;width:min(450px,calc(100vw - 48px));transform:translateY(-50%);border-radius:24px;padding:27px}.leaderboard-panel{right:clamp(24px,5vw,72px);top:50%;width:min(330px,calc(100vw - 48px));height:min(429px,calc(100vh - 36px));max-height:calc(100vh - 36px);padding:22px;overflow:auto;transform:translateY(-50%);border-radius:22px}.leaderboard-panel.result-context{right:clamp(18px,3vw,42px)}.leaderboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.leaderboard-heading h2{margin:8px 0 0;font-size:22px;letter-spacing:-.035em}.leaderboard-refresh{position:relative;width:35px;height:35px;display:grid;place-items:center;flex:0 0 auto;color:var(--cyan-soft);font-size:20px;cursor:pointer;border:1px solid rgba(156,244,255,.18);border-radius:10px;background:#ffffff0e;transform:none}.leaderboard-refresh:hover{border-color:#26e0ffa6;background:#26e0ff1a}.leaderboard-refresh .refresh-icon{width:1em;height:1em;display:block;line-height:1}.leaderboard-refresh.is-loading{color:var(--cyan);cursor:wait;border-color:#26e0ff7a;background:#26e0ff21}.leaderboard-refresh:disabled{opacity:.78}.leaderboard-status{min-height:17px;margin:12px 0 10px;color:#d5e9f89e;font-size:11px;line-height:1.45}.leaderboard-status.online{color:#76f6a4}.leaderboard-status.error{color:#ff9e86}.leaderboard-list{min-height:194px;margin:0;padding:0;display:grid;align-content:start;gap:6px;list-style:none}.leaderboard-list li{min-height:34px;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:#ffffff09}.leaderboard-list li.you{border-color:#26e0ff8c;background:#26e0ff1a}.leaderboard-list .leaderboard-rank{color:var(--cyan-soft);font-size:11px;font-weight:900}.leaderboard-list .leaderboard-name{overflow:hidden;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.leaderboard-list .leaderboard-name i{margin-left:5px;color:var(--cyan);font-size:9px;font-style:normal;letter-spacing:.08em}.leaderboard-list time{color:#ebf7ffc2;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.leaderboard-list .leaderboard-empty{grid-template-columns:1fr;place-items:center;min-height:194px;padding:20px;color:#d5e9f86b;text-align:center;line-height:1.55}.leaderboard-list .leaderboard-empty span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-list .leaderboard-skeleton{overflow:hidden;color:transparent;background:linear-gradient(100deg,#ffffff06,#ffffff14,#ffffff06);background-size:200% 100%;animation:leaderboard-shimmer 1.15s linear infinite}@keyframes leaderboard-shimmer{to{background-position:-200% 0}}.leaderboard-personal{min-height:34px;margin-top:11px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;background:#01081885}.leaderboard-personal span{color:#c3daed94;font-size:10px;font-weight:900;letter-spacing:.12em}.leaderboard-personal strong{overflow:hidden;color:var(--cyan-soft);font-size:11px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.leaderboard-rule{display:block;margin-top:9px;color:#c3daed80;font-size:9px;letter-spacing:.045em;text-align:center}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--cyan-soft);font-size:11px;font-weight:800;letter-spacing:.22em}.live-dot{width:7px;height:7px;border-radius:99px;background:var(--cyan);box-shadow:0 0 16px var(--cyan)}h1{margin:10px 0 2px;font-family:Black Han Sans,Inter,sans-serif;font-size:clamp(49px,6vw,68px);line-height:.96;letter-spacing:-.055em;text-shadow:0 5px 28px rgba(0,0,0,.28)}h1 span{color:var(--cyan);font-family:Inter,sans-serif;font-weight:900}.tagline{margin:9px 0 18px;color:#e8f4ffb3;font-size:14px}.name-field{display:grid;grid-template-columns:108px 1fr;align-items:center;margin-bottom:9px;padding:6px 7px 6px 15px;border-radius:12px;background:#01081885;border:1px solid rgba(174,222,255,.13)}.name-field span{color:#c3daed94;font-size:9px;font-weight:800;letter-spacing:.14em}.name-field input{width:100%;padding:9px 11px;color:#fff;font-weight:800;background:#ffffff0f;border:0;border-radius:8px;outline:none}.name-field input:focus{box-shadow:0 0 0 1px var(--cyan)}.track-field{display:grid;gap:6px;margin-bottom:11px;padding:10px 12px;border-radius:12px;background:#01081885;border:1px solid rgba(174,222,255,.13)}.track-field>span{color:#c3daed94;font-size:9px;font-weight:800;letter-spacing:.14em}.track-field>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.track-field select{min-width:0;padding:7px 8px;color:#fff;font-size:12px;font-weight:800;background:#ffffff12;border:0;border-radius:7px;outline:none}.track-field select option{color:#10182c;background-color:#f7fbff}.track-field b{color:var(--cyan-soft);font-size:9px;letter-spacing:.06em;white-space:nowrap}.track-field small{overflow:hidden;color:#d7e8f685;font-size:9px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.menu-actions{display:grid;gap:9px}.primary-btn,.secondary-btn{width:100%;min-height:61px;display:flex;align-items:center;gap:14px;padding:10px 17px;cursor:pointer;border-radius:13px;border:0;text-align:left;transition:transform .16s ease,filter .16s ease,border-color .16s ease}.primary-btn{position:relative;isolation:isolate;color:#071421;background:linear-gradient(135deg,#8bf3ff,var(--cyan));box-shadow:0 10px 30px #26e0ff33}.primary-btn>*{position:relative;z-index:2;transform:translateZ(0)}.secondary-btn{color:#fff;background:#ffffff0e;border:1px solid rgba(255,255,255,.13)}.primary-btn:hover,.secondary-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}.primary-btn:active,.secondary-btn:active{transform:translateY(0)}.primary-btn:disabled,.secondary-btn:disabled{cursor:not-allowed;opacity:.38;filter:saturate(.35);transform:none}.primary-btn:focus-visible,.secondary-btn:focus-visible,.text-btn:focus-visible,.icon-btn:focus-visible{outline:2px solid white;outline-offset:3px}.button-icon{width:26px;font-size:20px;text-align:center}.primary-btn>span:last-child,.secondary-btn>span:last-child{display:grid;gap:2px}.primary-btn strong,.secondary-btn strong{font-size:14px}.primary-btn small,.secondary-btn small{font-size:10px;opacity:.62;font-weight:600}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 13px;margin-top:14px}.controls-grid span{display:flex;align-items:center;gap:8px}kbd{min-width:42px;padding:4px 6px;color:#e6f7ffb8;font:700 8px/1 Inter,sans-serif;text-align:center;letter-spacing:.05em;background:#ffffff13;border:1px solid rgba(255,255,255,.12);border-radius:5px;box-shadow:inset 0 -2px #0000002e}.controls-grid b{color:#dfeefa85;font-size:9px;letter-spacing:.05em}.display-tools{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:7px 8px 7px 12px;border:1px solid rgba(156,244,255,.12);border-radius:11px;background:#01081857}.display-tools>span{min-width:0;display:grid;gap:3px}.display-tools>span b{color:#e0f2ffb3;font-size:8px;letter-spacing:.13em}.display-tools>span small{overflow:hidden;color:#c4dbef6b;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.fullscreen-btn{min-width:101px;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;color:var(--cyan-soft);cursor:pointer;border:1px solid rgba(38,224,255,.22);border-radius:8px;background:#26e0ff14}.fullscreen-btn i{font-size:15px;font-style:normal;line-height:1}.fullscreen-btn b{font-size:9px;letter-spacing:.04em}.fullscreen-btn:hover{border-color:#26e0ff9e;background:#26e0ff24}.fullscreen-btn[aria-pressed=true],.icon-btn[aria-pressed=true]{color:#071421;background:var(--cyan)}.fullscreen-btn:focus-visible,.touch-control:focus-visible{outline:2px solid white;outline-offset:3px}.menu-status{min-height:16px;margin:12px 0 -3px;color:#c4dbef80;font-size:10px}.menu-status.error{color:#ff8e9f}.hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;color:#fff;pointer-events:none}.top-left{position:absolute;top:28px;left:34px;display:flex;align-items:center;gap:19px}.rank-card{display:flex;align-items:center;gap:8px;padding-right:21px;border-right:1px solid rgba(255,255,255,.22)}.rank-card>strong{font-size:49px;font-weight:900;line-height:.9;letter-spacing:-.08em;text-shadow:0 3px 18px rgba(0,0,0,.45)}.rank-card>span{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:3px;color:#ffffffb8;font-size:13px}.rank-card small{grid-column:1 / -1;margin-top:2px;font-size:7px;letter-spacing:.16em;opacity:.65}.race-meta{display:grid;gap:4px;text-shadow:0 2px 10px rgba(0,0,0,.5)}.race-meta span{color:var(--cyan-soft);font-size:10px;font-weight:800;letter-spacing:.12em}.race-meta strong{font-variant-numeric:tabular-nums;font-size:19px;letter-spacing:.04em}.top-right{position:absolute;top:29px;right:32px;display:flex;gap:9px;align-items:center;pointer-events:auto}.network-pill{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:99px;background:#040d1c9e;border:1px solid rgba(255,255,255,.13);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.network-pill span{width:6px;height:6px;border-radius:50%;background:#63ed8b;box-shadow:0 0 9px #63ed8b}.network-pill b{font-size:8px;letter-spacing:.1em}.network-pill.warn span{background:#ffbd43;box-shadow:0 0 9px #ffbd43}.icon-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.13);border-radius:50%;color:#fff;background:#040d1c9e;cursor:pointer}.icon-btn.mobile-action{display:none}#minimap{position:absolute;top:79px;right:25px;width:155px;height:155px;overflow:visible;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}#minimap-shadow,#minimap-track{fill:none;stroke-linecap:round;stroke-linejoin:round}#minimap-shadow{stroke:#01071080;stroke-width:9}#minimap-track{stroke:#e1f7ff94;stroke-width:3}.map-dot{stroke:#030914cc;stroke-width:1.5}.map-dot.local{stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 0 5px var(--cyan))}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:clamp(95px,18vw,220px);font-weight:900;font-style:italic;letter-spacing:-.1em;color:#fff;text-shadow:0 0 18px rgba(38,224,255,.8),0 9px 45px rgba(0,0,0,.5);animation:countdown-pop .36s ease-out}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.45)}to{opacity:1;transform:scale(1)}}.toast{position:absolute;top:31%;left:50%;padding:7px 11px;transform:translate(-50%);color:var(--cyan-soft);font-size:12px;font-weight:900;letter-spacing:.2em;text-align:center;text-shadow:0 2px 10px #001;border:1px solid transparent;border-radius:8px;opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s}.toast.visible{opacity:1}.toast.slipstream{color:#baf9ff;border-color:#26e0ff5c;background:#0416277a;box-shadow:0 0 22px #26e0ff1f}.toast.catch-up{color:#ffe49b;border-color:#ffc54952;background:#26170570}.bottom-hud{position:absolute;left:50%;bottom:31px;width:min(540px,calc(100vw - 50px));transform:translate(-50%);display:flex;align-items:end;justify-content:space-between;gap:34px}.boost-panel{flex:1;max-width:330px;padding-bottom:6px}.boost-label{display:flex;justify-content:space-between;margin-bottom:7px;font-size:8px;font-weight:800;letter-spacing:.15em;color:#ebf7ffc7}.charge-track{height:12px;padding:3px;overflow:hidden;background:#040b199e;border:1px solid rgba(255,255,255,.2);transform:skew(-13deg)}.charge-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#46a7ff,var(--cyan),white);box-shadow:0 0 13px var(--cyan);transition:width .08s linear}.boost-slots{display:flex;gap:7px;margin-top:9px}.boost-slots i{width:43px;height:8px;transform:skew(-15deg);border:1px solid rgba(255,255,255,.25);background:#0208158f}.boost-slots i.active{background:linear-gradient(90deg,var(--orange),#ffd25b);box-shadow:0 0 14px #ff7737a6}.speedometer{width:132px;display:grid;grid-template-columns:1fr auto;align-items:baseline;text-align:right;text-shadow:0 3px 20px rgba(0,0,0,.58)}.speedometer strong{font-size:58px;font-weight:900;line-height:.8;letter-spacing:-.08em;font-variant-numeric:tabular-nums}.speedometer span{margin-left:7px;color:#ffffffad;font-size:10px;font-weight:800}.speedometer i{grid-column:1 / -1;margin-top:8px;color:var(--cyan-soft);font-size:8px;font-style:normal;font-weight:800;letter-spacing:.18em}.speedometer i.slipstream{color:#c7fbff;text-shadow:0 0 12px rgba(38,224,255,.85)}.speedometer i.catch-up{color:#ffe49b;text-shadow:0 0 12px rgba(255,190,55,.65)}.key-hint{position:absolute;left:28px;bottom:22px;color:#e8f5ff75;font-size:8px;letter-spacing:.06em}.key-hint kbd{min-width:21px;padding:3px 4px;margin:0 3px}.key-hint span{margin:0 3px;opacity:.4}.orientation-hint,.touch-controls{display:none}.touch-controls[aria-hidden=true]{display:none!important}.touch-controls{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-left-cluster,.touch-right-cluster,.touch-control.reset{position:absolute;z-index:3}.touch-left-cluster{left:max(17px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:162px;display:grid;gap:7px;justify-items:center;pointer-events:none}.touch-left-meta{display:grid;gap:4px;justify-items:center}.auto-drive-indicator{display:flex;align-items:center;gap:5px;color:#ddf8ff9e;font-size:7px;font-weight:900;letter-spacing:.13em;text-shadow:0 1px 7px rgba(0,0,0,.65)}.auto-drive-indicator i{width:5px;height:5px;border-radius:50%;background:#63ed8b;box-shadow:0 0 8px #63ed8bbf}.touch-steering{display:flex;gap:10px}.touch-right-cluster{right:max(17px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:grid;gap:8px;justify-items:center;pointer-events:none}.touch-control{display:grid;place-items:center;align-content:center;gap:2px;padding:0;color:#f4fcffe6;cursor:pointer;pointer-events:auto;border:1px solid rgba(218,246,255,.25);border-radius:20px;background:linear-gradient(145deg,#1e344c59,#030c1c47);box-shadow:0 5px 19px #00030e2e,inset 0 1px #ffffff12;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;touch-action:none}.touch-control span{font-size:25px;font-weight:900;line-height:.78}.touch-control b{color:#e2f4fda8;font-size:7px;letter-spacing:.09em}.touch-control.steer{width:76px;height:76px;border-radius:24px}.touch-control.steer span{font-size:42px}.touch-control.brake{width:92px;height:36px;border-radius:13px;background:linear-gradient(145deg,#70839747,#030c1c47)}.touch-control.brake span{font-size:13px}.touch-control.brake b{font-size:6px}.touch-control.boost{width:78px;height:38px;border-color:#ffbd4361;border-radius:14px;background:linear-gradient(145deg,#ffbd4333,#1912064d)}.touch-control.boost span{color:#ffe181;font-size:16px}.touch-control.drift{width:96px;height:90px;border-color:#26e0ff70;background:linear-gradient(145deg,#26e0ff33,#05152757)}.touch-control.drift span{font-size:31px}.touch-control.reset{left:50%;bottom:max(17px,env(safe-area-inset-bottom));width:48px;height:43px;transform:translate(-50%);border-radius:14px;opacity:.64}.touch-control.reset span{font-size:18px}.touch-control.is-active{color:#fff;border-color:#fff;background:linear-gradient(145deg,#26e0ffad,#1461939e);box-shadow:0 0 24px #26e0ff7a,inset 0 2px #ffffff3d;transform:scale(.94)}.touch-control.reset.is-active{transform:translate(-50%) scale(.92)}.room-browser-panel{left:50%;top:50%;width:min(610px,calc(100vw - 40px));max-height:calc(100vh - 36px);padding:28px;overflow:auto;transform:translate(-50%,-50%);border-radius:24px;background:radial-gradient(circle at 86% 8%,rgba(38,224,255,.15),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.04),transparent 46%),#080f1ff7}.room-browser-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.room-browser-heading h2{margin:7px 0 0;font-size:34px;letter-spacing:-.04em}.room-browser-track{display:grid;grid-template-columns:1fr auto;gap:5px 16px;margin:20px 0 12px;padding:14px 16px;border:1px solid rgba(136,231,255,.18);border-radius:13px;background:linear-gradient(105deg,#26e0ff21,#ff7a3d12)}.room-browser-track span{grid-column:1 / -1;color:#cae3f480;font-size:8px;font-weight:800;letter-spacing:.16em}.room-browser-track strong{font-size:16px}.room-browser-track small{align-self:end;color:var(--cyan-soft);font-size:9px;font-weight:800}.room-browser-status{min-height:17px;margin:0 0 10px;color:#d5e9f894;font-size:10px;line-height:1.5}.room-browser-status.error{color:#ff9e86}.room-list{min-height:216px;display:grid;align-content:start;gap:7px;margin:0;padding:0;list-style:none}.room-list li{min-height:54px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:9px 10px 9px 13px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:#ffffff0a}.room-list li.busy{opacity:.64}.room-list li.empty{grid-template-columns:1fr;place-items:center;min-height:216px;padding:24px;color:#d5e9f866;text-align:center;line-height:1.6;border-style:dashed}.room-list .room-identity{min-width:0;display:grid;gap:3px}.room-list .room-identity strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.room-list .room-identity small{color:#cae3f47a;font-size:8px;font-weight:800;letter-spacing:.08em}.room-list .room-count{color:var(--cyan-soft);font-size:10px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}.room-list .room-join-btn{min-width:64px;padding:8px 10px;color:#061421;font-size:10px;font-weight:900;cursor:pointer;border:0;border-radius:8px;background:var(--cyan)}.room-list .room-join-btn:disabled{color:#ebf7ff73;cursor:not-allowed;background:#ffffff14}.room-browser-actions{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-top:14px}.room-browser-actions .primary-btn{min-height:48px}.room-browser-actions .text-btn{margin:0}.room-browser-rule{display:block;margin-top:12px;color:#c3daed75;font-size:9px;line-height:1.5;text-align:center}.lobby-panel{left:50%;top:50%;width:min(650px,calc(100vw - 40px));max-height:calc(100vh - 36px);padding:28px;overflow:auto;transform:translate(-50%,-50%);border-radius:24px;background:radial-gradient(circle at 86% 8%,rgba(38,224,255,.15),transparent 34%),linear-gradient(145deg,rgba(255,255,255,.04),transparent 46%),#080f1ff7}.lobby-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.lobby-heading h2{margin:7px 0 0;font-size:34px;letter-spacing:-.04em}.room-code-card{min-width:112px;padding:10px 14px;text-align:right;border-radius:11px;background:#0108188c;border:1px solid rgba(146,234,255,.2)}.room-code-card span{display:block;margin-bottom:4px;color:#cae3f475;font-size:8px;font-weight:800;letter-spacing:.16em}.room-code-card strong{color:var(--cyan);font-size:16px;letter-spacing:.1em}.lobby-track-card{position:relative;display:grid;grid-template-columns:1fr auto;gap:4px 16px;margin:22px 0 18px;padding:17px 19px;overflow:hidden;border-radius:14px;background:linear-gradient(105deg,#26e0ff21,#ff7a3d12);border:1px solid rgba(136,231,255,.18)}.lobby-track-card:after{content:"";position:absolute;top:-22px;right:30px;width:110px;height:110px;border:15px solid rgba(255,255,255,.025);border-radius:50%}.lobby-track-card>span{grid-column:1 / -1;color:#cae3f480;font-size:8px;font-weight:800;letter-spacing:.16em}.lobby-track-card strong{position:relative;z-index:1;font-size:18px}.lobby-track-card small{position:relative;z-index:1;align-self:end;color:var(--cyan-soft);font-size:9px;font-weight:800;letter-spacing:.08em}.lobby-network{display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;margin:-8px 0 16px;padding:11px 14px;border-radius:11px;color:#76f6a4;background:#53ed8b11;border:1px solid rgba(83,237,139,.2)}.lobby-network>span{display:flex;align-items:center;gap:7px;font-size:8px;font-weight:900;letter-spacing:.13em}.lobby-network>span i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor}.lobby-network strong{font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.lobby-network small{grid-column:1 / -1;color:#daeefc7a;font-size:9px}.lobby-network.measuring{color:var(--cyan-soft);background:#26e0ff0f;border-color:#26e0ff2e}.lobby-network.warn{color:#ffd168;background:#ffbe4312;border-color:#ffbe4340}.lobby-network.bad{color:#ff8e9f;background:#ff5a7413;border-color:#ff5a7447}.lobby-roster-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;color:#daeefc8c;font-size:9px;font-weight:800;letter-spacing:.13em}.lobby-roster-heading b{color:#fff;margin-left:5px}.lobby-roster-heading small{color:#daeefc75;font-size:9px;letter-spacing:0}.lobby-roster-heading small.error{color:#ff8e9f}.lobby-player-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;list-style:none}.lobby-player-list li{min-height:50px;display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:10px;padding:8px 11px;border-radius:11px;background:#ffffff0b;border:1px solid rgba(255,255,255,.08)}.lobby-player-list li.local{border-color:#26e0ffbf;box-shadow:inset 0 0 18px #26e0ff14}.lobby-player-list li.ready{background:#53ed8b14;border-color:#53ed8b40}.lobby-player-list li.empty{grid-template-columns:31px 1fr;color:#d5e9f838;border-style:dashed;background:#ffffff05}.player-number{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:#d6efff8c;font-size:9px;font-weight:900;background:#ffffff12}.lobby-player-list li.local .player-number{color:#061421;background:var(--cyan)}.player-name{overflow:hidden;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.player-state{padding:4px 6px;border-radius:5px;color:#daeefc73;font-size:7px;font-weight:900;letter-spacing:.09em;background:#ffffff0e}.player-state.host{color:#ffe18c;background:#ffb83c1f}.player-state.ready{color:#76f6a4;background:#53ed8b1f}.lobby-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.lobby-actions .simple{min-height:48px;justify-content:center;text-align:center;font-weight:900;letter-spacing:.04em}.lobby-actions #lobby-ready-btn,.lobby-actions #lobby-start-btn{grid-column:1 / -1}.lobby-actions .text-btn{grid-column:1 / -1;justify-self:center;margin:0}.compact-panel,.result-panel{left:50%;top:50%;transform:translate(-50%,-50%);width:min(390px,calc(100vw - 40px));padding:31px;border-radius:22px;text-align:center}.compact-panel .eyebrow,.result-panel .eyebrow{justify-content:center}.compact-panel h2,.result-panel h2{margin:9px 0 23px;font-size:33px}.primary-btn.simple{min-height:46px;display:block;text-align:center;font-weight:800}.text-btn{margin-top:10px;padding:9px 18px;border:0;color:#ebf7ffa6;background:transparent;cursor:pointer}.result-panel{width:min(470px,calc(100vw - 40px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}.result-scroll-content{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.result-panel h2{margin-bottom:4px;font-size:48px;letter-spacing:-.04em}.result-scroll-content>p{margin:0 0 19px;color:var(--cyan-soft);font-size:12px}.result-panel ol{margin:0 0 12px;padding:0;list-style:none;display:grid;gap:6px}.result-panel li{display:grid;grid-template-columns:28px 1fr auto;gap:9px;padding:10px 12px;text-align:left;font-size:12px;border-radius:9px;background:#ffffff0d}.result-panel li.local{color:#061421;background:var(--cyan);font-weight:800}.result-panel li span:last-child{font-variant-numeric:tabular-nums;opacity:.75}.result-actions{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;flex:0 0 auto;padding-top:11px;border-top:1px solid rgba(156,244,255,.14);background:var(--panel)}.result-actions .text-btn{min-height:46px;margin:0}.result-ranking-card{margin:0 0 14px;padding:13px;display:grid;gap:4px;border:1px solid rgba(38,224,255,.28);border-radius:12px;background:#26e0ff12}.result-ranking-card>span{color:var(--cyan-soft);font-size:10px;font-weight:900;letter-spacing:.14em}.result-ranking-card>strong{font-size:17px}.result-ranking-card>small{color:#e0f0fcad;font-size:11px;line-height:1.45}.result-ranking-card.success{border-color:#53ed8b59;background:#53ed8b14}.result-ranking-card.success>span{color:#76f6a4}.result-ranking-card.error{border-color:#ff7a3d61;background:#ff7a3d14}.result-ranking-card.error>span{color:#ffad86}.result-ranking-card .text-btn{justify-self:center;margin:2px 0 -4px;padding:5px 12px;color:var(--cyan-soft);font-size:11px}#loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:16px;color:#fff;background:#060b19b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#loading i{width:42px;height:42px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite}#loading span{font-size:10px;font-weight:800;letter-spacing:.16em}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:721px)and (max-width:1100px){.menu-panel{left:18px;width:min(450px,calc(55vw - 24px))}.leaderboard-panel:not(.result-context){right:18px;width:min(330px,calc(45vw - 24px))}.leaderboard-panel.result-context{left:18px;right:18px;top:auto;bottom:14px;width:auto;height:auto;max-height:198px;padding:14px 17px;transform:none}.leaderboard-panel.result-context .leaderboard-heading h2{font-size:16px}.leaderboard-panel.result-context .leaderboard-status{margin:6px 0}.leaderboard-panel.result-context .leaderboard-list{min-height:0;grid-template-columns:repeat(5,minmax(0,1fr))}.leaderboard-panel.result-context .leaderboard-list li{min-width:0;grid-template-columns:22px minmax(0,1fr)}.leaderboard-panel.result-context .leaderboard-list time{grid-column:2}.leaderboard-panel.result-context .leaderboard-list .leaderboard-empty{grid-column:1 / -1;min-height:42px}.leaderboard-panel.result-context .leaderboard-rule{display:none}.result-panel{top:14px;max-height:calc(100vh - 226px);transform:translate(-50%)}}@media(max-width:720px){.menu-panel{left:18px;top:14px;width:calc(100vw - 36px);max-height:calc(100vh - 232px);padding:24px;overflow:auto;transform:none}.leaderboard-panel{left:18px;right:auto;top:auto;bottom:14px;width:calc(100vw - 36px);height:auto;max-height:205px;padding:14px 17px;transform:none}.leaderboard-heading h2{font-size:16px}.leaderboard-status{margin:6px 0}.leaderboard-list{min-height:0;grid-template-columns:repeat(5,minmax(104px,1fr));overflow-x:auto;padding-bottom:4px}.leaderboard-list li{min-width:0;grid-template-columns:22px minmax(0,1fr)}.leaderboard-list time{grid-column:2}.leaderboard-list .leaderboard-empty{grid-column:1 / -1;min-height:42px}.leaderboard-rule{display:none}.result-panel{top:14px;max-height:calc(100vh - 232px);transform:translate(-50%)}.room-browser-panel{width:calc(100vw - 28px);padding:21px}.room-browser-heading h2{font-size:28px}.room-list li{grid-template-columns:minmax(0,1fr) auto}.room-list .room-count{grid-column:1}.room-list .room-join-btn{grid-column:2;grid-row:1 / 3}.room-browser-actions{grid-template-columns:1fr}.room-browser-actions .text-btn{justify-self:center}.lobby-panel{width:calc(100vw - 28px);padding:21px}.lobby-heading h2{font-size:28px}.room-code-card{min-width:96px}.lobby-track-card{margin:17px 0 14px}.lobby-network{margin-top:-5px}.lobby-player-list{gap:6px}.lobby-player-list li{min-width:0;grid-template-columns:26px minmax(0,1fr);gap:7px;padding:7px 8px}.lobby-player-list .player-state{grid-column:2;justify-self:start;margin-top:-4px}.player-number{width:24px;height:24px;grid-row:1 / 3}.key-hint{display:none}#minimap{width:115px;height:115px;top:75px}.top-left{left:20px}.top-right{right:18px}.rank-card>strong{font-size:39px}.bottom-hud{bottom:22px}.speedometer{width:105px}.speedometer strong{font-size:46px}}body.mobile-ui .panel{touch-action:pan-y}body.mobile-ui{overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body.mobile-ui input,body.mobile-ui textarea,body.mobile-ui select,body.mobile-ui [contenteditable=true]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}body.mobile-ui canvas,body.mobile-ui img,body.mobile-ui svg,body.mobile-ui button{-webkit-user-drag:none}body.mobile-ui .controls-grid{display:none}body.mobile-ui .touch-controls{display:block}body.mobile-ui .icon-btn{width:43px;height:43px;font-size:16px;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}body.mobile-ui .icon-btn.mobile-action{display:block}body.mobile-ui .top-left{top:max(14px,env(safe-area-inset-top));left:max(17px,env(safe-area-inset-left))}body.mobile-ui .top-right{top:max(12px,env(safe-area-inset-top));right:max(15px,env(safe-area-inset-right));gap:7px}body.mobile-ui #minimap{right:max(18px,env(safe-area-inset-right))}body.mobile-ui .bottom-hud{bottom:max(104px,calc(env(safe-area-inset-bottom) + 92px));width:min(410px,calc(100vw - 48px))}body.mobile-ui .key-hint,body.is-installed-app #race-fullscreen-btn{display:none}body.mobile-ui.is-wide-mobile .touch-left-cluster{width:150px}body.mobile-ui.is-wide-mobile .touch-control.steer{width:70px;height:70px;border-radius:22px}body.mobile-ui.is-wide-mobile .touch-control.brake{width:86px;height:32px}body.mobile-ui.is-wide-mobile .touch-control.boost{width:72px;height:34px}body.mobile-ui.is-wide-mobile .touch-control.drift{width:88px;height:82px}body.mobile-ui.is-wide-mobile .bottom-hud{bottom:max(91px,calc(env(safe-area-inset-bottom) + 83px));width:320px;gap:15px}body.mobile-ui.is-wide-mobile .boost-panel{max-width:202px}body.mobile-ui.is-wide-mobile .speedometer{width:91px}body.mobile-ui.is-wide-mobile .speedometer strong{font-size:39px}body.mobile-ui.is-wide-mobile #minimap{width:82px;height:82px}@media(pointer:coarse){button{-webkit-tap-highlight-color:transparent}.primary-btn:hover,.secondary-btn:hover{transform:none;filter:none}}@media(orientation:landscape)and (max-height:600px){body.mobile-ui .menu-panel{left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));width:min(405px,calc(52vw - 18px));max-height:calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));padding:16px 18px;overflow:auto;transform:none}body.mobile-ui .menu-panel h1{margin-top:6px;font-size:42px}body.mobile-ui .menu-panel .tagline{display:none}body.mobile-ui .name-field{margin:8px 0 7px}body.mobile-ui .track-field{gap:4px;margin-bottom:7px;padding:7px 10px}body.mobile-ui .track-field small{display:none}body.mobile-ui .primary-btn,body.mobile-ui .secondary-btn{min-height:49px;padding:7px 13px}body.mobile-ui .menu-actions{gap:6px}body.mobile-ui .display-tools{min-height:37px;margin-top:7px}body.mobile-ui .menu-status{margin-top:7px}body.mobile-ui .leaderboard-panel:not(.result-context){top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));height:calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));max-height:none;padding:16px;transform:none}body.mobile-ui .leaderboard-panel:not(.result-context) .leaderboard-heading h2{font-size:16px}body.mobile-ui .rank-card>strong{font-size:38px}body.mobile-ui .race-meta strong{font-size:16px}body.mobile-ui .network-pill{padding:8px 10px}body.mobile-ui #minimap{top:64px;width:94px;height:94px}body.mobile-ui .bottom-hud{width:350px;gap:18px}body.mobile-ui .boost-panel{max-width:220px}body.mobile-ui .speedometer{width:102px}body.mobile-ui .speedometer strong{font-size:43px}body.mobile-ui .result-panel{left:50%;right:auto;top:max(10px,env(safe-area-inset-top));bottom:max(10px,env(safe-area-inset-bottom));width:min(560px,calc(100vw - 24px));height:auto;max-height:none;padding:16px 18px;transform:translate(-50%)}body.mobile-ui .result-panel.with-leaderboard{left:max(12px,env(safe-area-inset-left));width:min(470px,calc(57vw - 24px));transform:none}body.mobile-ui .result-panel h2{margin:4px 0 2px;font-size:34px}body.mobile-ui .result-scroll-content>p{margin-bottom:8px;font-size:10px}body.mobile-ui .result-ranking-card{margin-bottom:8px;padding:8px 10px;gap:2px}body.mobile-ui .result-ranking-card>strong{font-size:14px}body.mobile-ui .result-ranking-card>small{font-size:9px;line-height:1.3}body.mobile-ui .result-panel ol{margin-bottom:8px;gap:4px}body.mobile-ui .result-panel li{padding:7px 9px}body.mobile-ui .result-actions{padding-top:8px}body.mobile-ui .result-actions .primary-btn.simple,body.mobile-ui .result-actions .text-btn{min-height:44px}body.mobile-ui .leaderboard-panel.result-context{left:auto;right:max(12px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));bottom:max(10px,env(safe-area-inset-bottom));width:min(410px,calc(43vw - 24px));height:auto;max-height:none;padding:16px;overflow-y:auto;transform:none}body.mobile-ui .leaderboard-panel.result-context .leaderboard-list{min-height:0;grid-template-columns:1fr;overflow:visible}body.mobile-ui .leaderboard-panel.result-context .leaderboard-list li{grid-template-columns:27px minmax(0,1fr) auto}body.mobile-ui .leaderboard-panel.result-context .leaderboard-list time{grid-column:auto}}@media(orientation:portrait){body.mobile-ui{--portrait-panel-top: max(10px, env(safe-area-inset-top));--portrait-panel-bottom: max(10px, env(safe-area-inset-bottom));--portrait-rank-height: clamp(190px, 28dvh, 220px);--portrait-panel-gap: 10px}body.mobile-ui .menu-panel{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:var(--portrait-panel-top);width:auto;max-height:calc(100dvh - var(--portrait-panel-top) - var(--portrait-panel-bottom) - var(--portrait-rank-height) - var(--portrait-panel-gap));padding:18px;overflow:auto;transform:none}body.mobile-ui .menu-panel h1{margin-top:5px;font-size:42px}body.mobile-ui .menu-panel .tagline{margin:4px 0 10px;font-size:10px}body.mobile-ui .name-field{margin:8px 0 7px}body.mobile-ui .track-field{gap:4px;margin-bottom:7px;padding:7px 10px}body.mobile-ui .track-field small{display:none}body.mobile-ui .menu-actions{gap:6px}body.mobile-ui .primary-btn,body.mobile-ui .secondary-btn{min-height:50px;padding:8px 12px}body.mobile-ui .display-tools{min-height:38px;margin-top:7px}body.mobile-ui .menu-status{margin-top:7px}body.mobile-ui .leaderboard-panel:not(.result-context){left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:auto;bottom:var(--portrait-panel-bottom);width:auto;height:var(--portrait-rank-height);max-height:var(--portrait-rank-height);padding:14px 16px;transform:none}body.mobile-ui .result-panel{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:var(--portrait-panel-top);bottom:auto;width:auto;height:calc(100dvh - var(--portrait-panel-top) - var(--portrait-panel-bottom));max-height:none;padding:18px;transform:none}body.mobile-ui .result-panel.with-leaderboard{height:calc(100dvh - var(--portrait-panel-top) - var(--portrait-panel-bottom) - var(--portrait-rank-height) - var(--portrait-panel-gap))}body.mobile-ui .leaderboard-panel.result-context{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:auto;bottom:var(--portrait-panel-bottom);width:auto;height:var(--portrait-rank-height);max-height:var(--portrait-rank-height);padding:14px 16px;transform:none}body.mobile-ui .leaderboard-panel:not(.result-context) .leaderboard-list:has(.leaderboard-empty){display:block;overflow:hidden}body.mobile-ui .leaderboard-panel:not(.result-context) .leaderboard-empty{width:100%;display:flex;align-items:center;justify-content:center}body.mobile-ui .leaderboard-panel:not(.result-context) .leaderboard-empty span{width:0;flex:1 1 0}body.mobile-ui .orientation-hint{position:absolute;top:max(111px,calc(env(safe-area-inset-top) + 98px));left:50%;display:grid;gap:2px;padding:8px 13px;transform:translate(-50%);color:#fff;text-align:center;white-space:nowrap;border:1px solid rgba(38,224,255,.24);border-radius:10px;background:#040d1ca3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body.mobile-ui .orientation-hint b{color:var(--cyan-soft);font-size:9px;letter-spacing:.08em}body.mobile-ui .orientation-hint span{color:#e6f6ff99;font-size:8px}body.mobile-ui .network-pill b{display:none}body.mobile-ui .network-pill{width:32px;height:32px;justify-content:center;padding:0}body.mobile-ui .top-left{gap:8px}body.mobile-ui .rank-card{gap:4px;padding-right:9px}body.mobile-ui .rank-card>strong{font-size:31px}body.mobile-ui .rank-card>span{gap:2px;font-size:10px}body.mobile-ui .race-meta{gap:2px}body.mobile-ui .race-meta span{font-size:8px}body.mobile-ui .race-meta strong{font-size:14px}body.mobile-ui .top-right{gap:5px}body.mobile-ui .icon-btn{width:39px;height:39px}body.mobile-ui #minimap{top:71px;width:91px;height:91px}body.mobile-ui .bottom-hud{bottom:max(112px,calc(env(safe-area-inset-bottom) + 102px));width:calc(100vw - 34px);gap:14px}body.mobile-ui .boost-panel{max-width:205px}body.mobile-ui .speedometer{width:89px}body.mobile-ui .speedometer strong{font-size:41px}body.mobile-ui .touch-left-cluster{left:max(10px,env(safe-area-inset-left));width:124px;gap:5px}body.mobile-ui .touch-left-meta{gap:3px}body.mobile-ui .auto-drive-indicator{font-size:6px}body.mobile-ui .touch-steering{gap:6px}body.mobile-ui .touch-control.steer{width:59px;height:66px;border-radius:20px}body.mobile-ui .touch-control.brake{width:76px;height:32px}body.mobile-ui .touch-right-cluster{right:max(10px,env(safe-area-inset-right));gap:5px}body.mobile-ui .touch-control.boost{width:68px;height:34px}body.mobile-ui .touch-control.drift{width:76px;height:72px;border-radius:20px}body.mobile-ui .touch-control.reset{bottom:max(101px,calc(env(safe-area-inset-bottom) + 91px))}}@media(prefers-reduced-motion:reduce){.leaderboard-list .leaderboard-skeleton{animation:none}}
