:root{--font-display:"Lilita One", "Arial Rounded MT Bold", system-ui, sans-serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ink:#1d2230;--ink-2:#3a4152;--night:#14161ec7;--night-solid:#14161e;--panel:#ffffffe0;--accent:#f4c400;--sauce:#e8412c;--herb:#4fae3a;--boost:#7fd4ff;--good:#7dff9a;--cream:#fff8e6;--r-s:8px;--r-m:14px;--r-l:22px;--shadow-1:0 2px 8px #0000002e;--shadow-2:0 10px 30px #00000047;--shadow-pop:0 5px 0 #00000059;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-pop:cubic-bezier(.3, 1.6, .5, 1)}*{box-sizing:border-box}html,body{background:var(--night-solid);height:100%;font:14px/1.4 var(--font-ui);color:var(--ink);margin:0;overflow:hidden}button{font-family:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn{border-radius:var(--r-m);cursor:pointer;font:400 20px/1 var(--font-display);letter-spacing:.02em;color:#fff;background:var(--ink-2);box-shadow:var(--shadow-pop), var(--shadow-1);transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), background .15s, filter .15s;border:0;justify-content:center;align-items:center;gap:10px;padding:12px 20px;display:inline-flex}.btn:hover{filter:brightness(1.08);box-shadow:0 7px 0 #00000059, var(--shadow-2);transform:translateY(-2px)}.btn:active{transform:translateY(4px);box-shadow:0 1px #00000059}.btn.primary{background:var(--accent);color:var(--ink)}.btn.danger{background:var(--sauce)}.btn.ghost{box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff24}.btn.ghost:hover{box-shadow:none;background:#ffffff3d}.btn kbd{opacity:.8;background:#0000002e;border-radius:6px;padding:2px 6px;font:700 11px ui-monospace,monospace}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#scene{width:100vw;height:100vh;display:block}body[data-mode=race] #scene{cursor:none}#hud{z-index:10;border-radius:var(--r-l);background:var(--night);color:#fff;max-width:320px;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px 16px;position:fixed;top:16px;left:16px}#hud h1{font:400 26px/1.1 var(--font-display);color:var(--accent);margin:0 0 4px}#hud h1 span{font:500 13px var(--font-ui);color:#fff;opacity:.6}.hint{opacity:.7;margin:0 0 10px;font-size:12px}.section{letter-spacing:.06em;text-transform:uppercase;opacity:.55;margin:8px 0 5px;font-size:11px;font-weight:700}.pills{flex-wrap:wrap;gap:6px;display:flex}.pills button{cursor:pointer;color:#fff;font:inherit;background:#ffffff1f;border:0;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;transition:background .15s,box-shadow .15s}.pills button:hover{box-shadow:inset 0 -3px 0 var(--accent);background:#ffffff38}#styles button.active{background:var(--accent);color:#111;font-weight:700}#style-description{margin:6px 0 0}#stats{opacity:.7;white-space:pre-wrap;margin:10px 0 0;font-size:11px}#loading{--progress:0;z-index:20;color:var(--cream);background:radial-gradient(ellipse at 50% 40%, #2b3142 0%, var(--night-solid) 70%);transition:opacity .6s var(--ease-out), visibility .6s;place-items:center;display:grid;position:fixed;inset:0}#loading.done{opacity:0;visibility:hidden;pointer-events:none}#fade{z-index:15;background:var(--night-solid);opacity:0;pointer-events:none;position:fixed;inset:0}#fade.show{animation:fade-up .5s var(--ease-out)}@keyframes fade-up{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){#fade.show{animation-duration:.3s!important}}#loading .load-card{text-align:center;width:min(380px,100% - 48px)}#loading .logo{font:400 72px/.84 var(--font-display);text-transform:uppercase;flex-direction:column;align-items:center;margin-bottom:30px;display:flex;transform:rotate(-5deg)}#loading .logo span{color:var(--accent);-webkit-text-stroke:.07em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--sauce), 0 .12em 0 #8f2416}#loading .logo span+span{color:#fff}#loading .bar{background:#ffffff1a;border-radius:999px;height:14px;overflow:hidden;box-shadow:inset 0 2px 4px #0006}#loading .bar i{height:100%;width:calc(var(--progress) * 100%);border-radius:inherit;transition:width .25s var(--ease-out);background:repeating-linear-gradient(-45deg, var(--accent) 0 12px, #ffd84a 12px 24px);background-size:34px 100%;animation:.8s linear infinite bar-roll;display:block}@keyframes bar-roll{to{background-position:34px 0}}#loading p{opacity:.8;justify-content:space-between;gap:12px;margin:10px 2px 0;font-size:13px;font-weight:600;display:flex}#loading .percent{font-variant-numeric:tabular-nums}#loading p.tip{text-align:center;opacity:.6;margin-top:28px;font-weight:500;line-height:1.5;display:block}.pin{flex-direction:column;align-items:center;display:flex}.pin:after{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:7px solid var(--accent);width:0;height:0}.label{background:var(--accent);color:#111;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;box-shadow:0 2px 8px #00000040}footer{z-index:10;background:var(--panel);border-radius:6px;padding:2px 8px;font-size:11px;position:fixed;bottom:6px;right:8px}@media (width<=600px){#hud{max-width:none;left:16px;right:16px}}.play{gap:6px;margin:4px 0 8px;display:flex}.play button{cursor:pointer;font:400 17px/1.1 var(--font-display);background:var(--accent);color:var(--ink);border:0;border-radius:10px;flex:1;padding:8px 10px;transition:transform .12s,filter .15s;box-shadow:0 3px #00000059}.play button:hover{filter:brightness(1.08);transform:translateY(-1px)}.play button:active{box-shadow:none;transform:translateY(2px)}.play button+button{background:var(--ink-2);color:#fff}.play kbd{opacity:.6;margin-left:4px;font:10px ui-monospace,monospace}#hud .back{border-radius:var(--r-s);cursor:pointer;width:100%;font:inherit;text-align:left;color:#fff;background:#ffffff1f;border:0;margin:0 0 4px;padding:6px 10px;font-weight:700}#hud .back:hover{background:#ffffff38}#hud .back kbd{opacity:.6;float:right;margin-top:2px;font:10px ui-monospace,monospace}body[data-mode=race] #hud,body[data-mode=garage] #hud,body[data-mode=title] #hud{display:none}#title{z-index:12;opacity:0;visibility:hidden;transition:opacity .5s var(--ease-out), visibility .5s;background:linear-gradient(90deg,#0c0e16d1 0%,#0c0e1673 38%,#0c0e1600 68%),linear-gradient(#0c0e1600 65%,#0c0e168c 100%);align-items:center;padding:24px clamp(20px,7vw,110px);display:flex;position:fixed;inset:0}body[data-mode=title] #title{opacity:1;visibility:visible}#title .title-col{flex-direction:column;align-items:flex-start;width:min(420px,100%);display:flex}#title .badge{font:700 12px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;background:var(--sauce);color:#fff;box-shadow:var(--shadow-1);border-radius:999px;margin:0 0 34px;padding:5px 12px;transform:rotate(-3deg)}#title .logo{transform-origin:0 100%;font:400 clamp(64px, 11vw, 136px)/.84 var(--font-display);text-transform:uppercase;letter-spacing:.01em;flex-direction:column;margin:0;display:flex;transform:rotate(-5deg)skew(-6deg)}#title .logo span{color:var(--accent);-webkit-text-stroke:.07em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--sauce), 0 .12em 0 #8f2416, 0 .2em .25em #00000073}#title .logo span+span{color:#fff;margin-left:.55em}#title .track-pick{gap:8px;width:100%;margin:2px 0 8px;display:flex}#title .track-card{cursor:pointer;border-radius:var(--radius,12px);color:var(--cream,#fff);font:inherit;text-align:left;background:#14161e8c;border:2px solid #ffffff2e;flex-direction:column;flex:1;align-items:flex-start;gap:1px;padding:9px 12px;transition:border-color .15s,transform .15s,background .15s;display:flex}#title .track-card b{font:400 17px var(--font-display);letter-spacing:.02em;color:#fff}#title .track-card span{opacity:.75;font-size:12px}#title .track-card:hover{border-color:#ffffff73;transform:translateY(-1px)}#title .track-card:focus-visible{outline:3px solid var(--accent);outline-offset:2px}#title .track-card.active{border-color:var(--accent);background:#f4c40029}#title .track-card.active b{color:var(--accent)}#title .track-line{min-height:1.4em;color:var(--cream);opacity:.9;margin:0 0 12px;font-size:14px}#title .track-line b{font:400 17px var(--font-display);color:var(--accent);letter-spacing:.02em}#title .tagline{color:var(--cream);text-shadow:0 1px 3px #0009;margin:26px 0 18px;font-size:17px;font-weight:600}#title .menu{flex-direction:column;gap:12px;width:min(340px,100%);display:flex}#title .menu .btn{justify-content:space-between}#title .menu .btn.big{padding:18px 22px;font-size:28px}#title .pick{color:var(--cream);opacity:.85;margin:18px 0 0;font-size:14px}#title .pick b{color:#fff}#title .record{min-height:1.4em;color:var(--cream);opacity:.85;margin:4px 0 0;font-size:14px}#title .record b{font:400 18px var(--font-display);color:var(--accent);margin-left:4px}body[data-mode=title] #title .logo{animation:logo-in .7s var(--ease-pop) both, logo-bob 3.2s ease-in-out .7s infinite alternate}body[data-mode=title] #title .badge,body[data-mode=title] #title .tagline,body[data-mode=title] #title .menu .btn,body[data-mode=title] #title .track-line,body[data-mode=title] #title .pick,body[data-mode=title] #title .record{animation:slide-in .5s var(--ease-out) both}body[data-mode=title] #title .tagline{animation-delay:.15s}body[data-mode=title] #title .track-line{animation-delay:.19s}body[data-mode=title] #title .menu .btn:first-child{animation-delay:.22s}body[data-mode=title] #title .menu .btn:nth-child(2){animation-delay:.28s}body[data-mode=title] #title .menu .btn:nth-child(3){animation-delay:.34s}body[data-mode=title] #title .menu .btn:nth-child(4){animation-delay:.4s}body[data-mode=title] #title .record,body[data-mode=title] #title .pick{animation-delay:.46s}@keyframes logo-in{0%{opacity:0;transform:rotate(-12deg)skew(-6deg)scale(.6)}to{opacity:1;transform:rotate(-5deg)skew(-6deg)scale(1)}}@keyframes logo-bob{0%{translate:0}to{translate:0 -6px}}@keyframes slide-in{0%{opacity:0;translate:-30px}to{opacity:1;translate:0}}@media (width<=600px){#title{background:linear-gradient(#0c0e161a 0%,#0c0e1666 45%,#0c0e16d9 100%);align-items:flex-end;padding-bottom:48px}#title .menu{width:100%}}@media (height<=560px){#title .logo{font-size:56px}#title .tagline{margin:14px 0}#title .menu{gap:8px}#title .menu .btn.big{padding:12px 18px;font-size:22px}}body[data-mode=garage] footer,body[data-mode=race] footer{display:none}#race-hud{--hud-gap:clamp(10px, 2vw, 22px);z-index:10;pointer-events:none;color:#fff;font-weight:800;display:none;position:fixed;inset:0}#race-hud.show{display:block}#race-hud .top{top:var(--hud-gap);border-radius:var(--r-m);background:var(--night);box-shadow:var(--shadow-1);font:400 24px/1.1 var(--font-display);letter-spacing:.02em;align-items:baseline;gap:16px;padding:8px 20px;display:flex;position:absolute;left:50%;transform:translate(-50%)}#race-hud .time{font-variant-numeric:tabular-nums;color:var(--accent);text-align:right;min-width:4.4em}#race-hud .speed{right:var(--hud-gap);bottom:var(--hud-gap);border-radius:var(--r-l);background:var(--night);width:168px;box-shadow:var(--shadow-1);justify-items:center;padding:10px 14px;display:grid;position:absolute}#race-hud .speed svg{width:140px;height:77px;overflow:visible}#race-hud .speed path{fill:none;stroke-width:11px;stroke-linecap:round}#race-hud .speed .track{stroke:#ffffff24}#race-hud .speed .fill{stroke:var(--accent);stroke-dasharray:0 100;filter:drop-shadow(0 0 6px #f4c40080);transition:stroke .2s}#race-hud .speed.boost .fill{stroke:var(--boost);filter:drop-shadow(0 0 8px #7fd4ffe6)}#race-hud .speed b{font:400 40px/1 var(--font-display);font-variant-numeric:tabular-nums;margin-top:-44px}#race-hud .speed span{letter-spacing:.08em;text-transform:uppercase;opacity:.65;font-size:11px;font-weight:700}#race-hud .drift{gap:6px;margin-top:8px;display:flex}#race-hud .drift i{background:#ffffff2e;border-radius:50%;width:14px;height:14px;transition:background .15s,box-shadow .15s}#race-hud .drift[data-tier="1"] i:nth-child(-n+1){background:var(--boost);box-shadow:0 0 10px var(--boost)}#race-hud .drift[data-tier="2"] i:nth-child(-n+2){background:#ffa22e;box-shadow:0 0 10px #ffa22e}#race-hud .drift[data-tier="3"] i{background:#d07cff;box-shadow:0 0 12px #d07cff}#race-hud .countdown{font:400 120px/1 var(--font-display);color:var(--accent);-webkit-text-stroke:.06em var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--sauce), 0 0 30px #0006;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}#race-hud .flash{opacity:0;white-space:nowrap;font:400 40px/1 var(--font-display);color:#fff;-webkit-text-stroke:.08em var(--ink);paint-order:stroke fill;text-shadow:0 4px #00000073;position:absolute;top:24%;left:50%;transform:translate(-50%)}#race-hud .flash[data-kind=lap]{color:var(--accent);font-size:56px}#race-hud .flash[data-kind=final]{border-radius:var(--r-m);background:var(--sauce);-webkit-text-stroke:0;box-shadow:var(--shadow-2), inset 0 -6px 0 #0003;padding:6px 28px 10px;font-size:60px}#race-hud .flash small{text-align:center;-webkit-text-stroke:0;text-shadow:0 2px 4px #000000b3;font:700 20px var(--font-ui);font-variant-numeric:tabular-nums;color:#fff;margin-top:8px;display:block}#race-hud .flash small .faster{color:var(--good)}#race-hud .flash small .slower{color:#ffb3a8}#race-hud .flash.show{animation:flash 2.6s var(--ease-out)}@keyframes flash{0%{opacity:0;transform:translate(-50%)scale(1.8)}12%{opacity:1;transform:translate(-50%)scale(.94)}18%,75%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-16px)scale(1)}}#race-hud .wrongway{border-radius:var(--r-m);background:var(--sauce);box-shadow:var(--shadow-2);font:400 34px/1 var(--font-display);padding:10px 24px 12px;animation:.6s ease-in-out infinite alternate blink;display:none;position:absolute;top:40%;left:50%;transform:translate(-50%)}#race-hud .wrongway.show{display:block}@keyframes blink{to{filter:brightness(1.35)}}#race-hud .minimap{left:var(--hud-gap);bottom:var(--hud-gap);border-radius:var(--r-l);background:var(--night);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:300px;height:206px;box-shadow:var(--shadow-1), inset 0 0 0 2px #ffffff1a;padding:5px;position:absolute}#race-hud .minimap canvas{border-radius:calc(var(--r-l) - 5px);width:100%;height:100%;display:block;box-shadow:inset 0 0 0 1px #0006}#race-hud .minimap .name{text-overflow:ellipsis;white-space:nowrap;background:var(--accent);max-width:calc(100% - 64px);color:var(--ink);font:400 14px/1 var(--font-display);letter-spacing:.02em;border-radius:999px;padding:3px 10px 4px;position:absolute;top:-11px;left:14px;overflow:hidden;box-shadow:0 2px #00000059}#race-hud .minimap .north{width:22px;height:22px;font:800 10px/1 var(--font-ui);color:#fff;background:#14161ecc;border-radius:50%;place-items:center;display:grid;position:absolute;top:12px;right:12px;box-shadow:inset 0 0 0 1.5px #ffffff59}#race-hud .minimap .north:before{content:"";border:4px solid #0000;border-top:0;border-bottom:6px solid var(--sauce);position:absolute;top:-6px;left:50%;translate:-50%}#race-hud .keys{white-space:nowrap;opacity:.8;text-shadow:0 1px 2px #000;font-size:12px;font-weight:600;transition:opacity 1s;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}#race-hud .keys.hide{opacity:0}#garage-ui{z-index:10;pointer-events:none;display:none;position:fixed;inset:0}#garage-ui.show{display:block}#garage-ui:before{content:"";pointer-events:none;background:radial-gradient(75% 70% at 50% 42%,#0000 55%,#5c3c0a29 100%);position:absolute;inset:0}#garage-ui header{text-align:center;width:max-content;max-width:calc(100% - 200px);position:absolute;top:16px;left:50%;transform:translate(-50%)}#garage-ui h1{font:400 clamp(36px, 6vw, 52px)/1 var(--font-display);text-transform:uppercase;color:var(--accent);-webkit-text-stroke:.07em var(--ink);paint-order:stroke fill;text-shadow:0 .07em 0 var(--sauce);margin:0;rotate:-3deg}#garage-ui header p{color:var(--ink-2);margin:10px 0 0;font-size:13px;font-weight:600}#garage-ui header kbd{background:#1d22301a;border-radius:5px;padding:1px 5px;font:700 11px ui-monospace,monospace}#garage-ui .back{pointer-events:auto;background:var(--ink-2);box-shadow:var(--shadow-pop);padding:9px 14px;font-size:16px;position:absolute;top:18px;left:18px}#garage-ui .stats{pointer-events:auto;border-radius:var(--r-l);background:var(--panel);width:250px;box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px 16px 16px;position:fixed;top:50%;right:22px;translate:0 -60%}#garage-ui .combo{color:var(--ink-2);margin:0 0 10px;font-size:13px}#garage-ui .combo b{font:400 20px/1.1 var(--font-display);color:var(--ink)}#garage-ui .stat{gap:3px;margin-top:8px;display:grid}#garage-ui .stat span{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:11px;font-weight:800}#garage-ui .stat i{background:#1d22301f;border-radius:999px;height:12px;display:block;position:relative;overflow:hidden}#garage-ui .stat i:after{content:"";background:repeating-linear-gradient(90deg,#0000 0 calc(20% - 3px),#fff calc(20% - 3px) 20%);position:absolute;inset:0}#garage-ui .stat b{height:100%;transition:width .45s var(--ease-pop);background:linear-gradient(#ffd83a,#e8a900);display:block}#garage-ui .dock{pointer-events:auto;gap:10px;width:min(980px,100% - 28px);margin-inline:auto;display:grid;position:absolute;bottom:18px;left:0;right:0}#garage-ui .karts{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}#garage-ui .card{text-align:left;cursor:pointer;border-radius:var(--r-m);font:inherit;color:var(--ink);background:var(--panel);transition:transform .15s var(--ease-out), box-shadow .15s, border-color .15s;border:3px solid #0000;grid-template-rows:auto 1fr;grid-template-columns:84px 1fr;align-items:center;gap:2px 12px;padding:8px 14px 8px 8px;display:grid;box-shadow:0 6px 20px #3c28001f}#garage-ui .card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #3c280033}#garage-ui .card .thumb{background:#efe7da 50%/contain no-repeat;border-radius:10px;grid-row:span 2;width:84px;height:56px}#garage-ui .card b{font:400 20px/1.1 var(--font-display);letter-spacing:.01em;align-self:end}#garage-ui .card span{color:var(--ink-2);align-self:start;font-size:12px}#garage-ui .card.active .thumb{background-color:#fff3c4}#garage-ui .card.active{border-color:var(--accent);box-shadow:0 0 0 4px #f4c40059,0 10px 26px #3c280033}#garage-ui .drivers{border-radius:var(--r-l);background:var(--panel);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);grid-template-columns:repeat(6,minmax(0,1fr)) auto;align-items:stretch;gap:8px;padding:10px;display:grid}#garage-ui .driver{text-align:center;border-radius:var(--r-m);cursor:pointer;min-width:0;font:inherit;color:var(--ink);transition:transform .12s var(--ease-out), background .15s, border-color .15s;background:#f1ece2;border:3px solid #0000;grid-template-rows:auto auto auto;align-content:center;justify-items:center;padding:7px 4px 6px;display:grid}#garage-ui .driver:hover{background:#e9e2d4;transform:translateY(-2px)}#garage-ui .driver:active{transform:scale(.96)}#garage-ui .driver .face{width:58px;height:58px;font:400 26px var(--font-display);color:var(--ink);background:50%/cover no-repeat;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 -4px #0000001f}#garage-ui .driver b{font:400 19px/1 var(--font-display);margin-top:5px}#garage-ui .driver small{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;color:var(--ink-2);margin-top:2px;font-size:10px;font-weight:700}#garage-ui .driver.active{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #f4c40059}#garage-ui .driver.active .face{animation:face-pop .4s var(--ease-pop)}@keyframes face-pop{0%{scale:.7}}#garage-ui .go{padding:12px 20px;font-size:22px}#garage-ui.show h1{animation:pop-in .5s var(--ease-pop) both}#garage-ui.show .card{animation:rise-in .45s var(--ease-out) both}#garage-ui.show .card:nth-child(2){animation-delay:60ms}#garage-ui.show .card:nth-child(3){animation-delay:.12s}#garage-ui.show .drivers{animation:rise-in .45s var(--ease-out) .18s both}#garage-ui.show .stats{animation:fade-in .5s var(--ease-out) .3s both}@media (width<=1180px){#garage-ui .stats{order:-1;grid-template-columns:1fr 1fr;column-gap:16px;width:auto;padding:8px 14px 10px;display:grid;position:static;translate:none}#garage-ui .combo{grid-column:span 2;margin-bottom:0}#garage-ui .stat{margin-top:4px}}@media (height<=760px) and (width>=761px){#garage-ui .driver{padding:5px 4px}#garage-ui .driver .face{width:46px;height:46px}#garage-ui .driver b{margin-top:4px;font-size:17px}#garage-ui .driver small{display:none}}@media (width<=900px){#garage-ui .drivers{grid-template-columns:repeat(6,minmax(0,1fr))}#garage-ui .go{grid-column:1/-1}}@media (width<=760px){#garage-ui header{max-width:calc(100% - 150px)}#garage-ui header p{display:none}#garage-ui h1{font-size:32px}#garage-ui .back{padding:8px 12px;font-size:15px}#garage-ui .back kbd{display:none}#garage-ui .dock{gap:8px;bottom:12px}#garage-ui .card{text-align:center;grid-template-columns:1fr;justify-items:center;padding:6px}#garage-ui .card .thumb{grid-row:auto;width:100%;height:44px}#garage-ui .card b{font-size:15px}#garage-ui .card span{display:none}#garage-ui .drivers{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px}#garage-ui .driver{text-align:left;grid-template-rows:auto;grid-template-columns:40px minmax(0,1fr);place-items:center start;column-gap:6px;padding:4px 6px 4px 4px}#garage-ui .driver .face{width:40px;height:40px}#garage-ui .driver b{margin-top:0;font-size:15px}#garage-ui .driver small{display:none}#garage-ui .stats{padding:6px 12px 8px}#garage-ui .combo b{font-size:16px}}#race-hud .ampel{opacity:0;background:#18191d;border:4px solid #f2f2f2;border-radius:18px;flex-direction:column;gap:10px;padding:14px 16px;transition:transform .35s cubic-bezier(.3,1.6,.5,1),opacity .3s;display:flex;position:absolute;top:76px;left:50%;transform:translate(-50%,-40px);box-shadow:0 10px 30px #00000073}#race-hud .ampel.show{opacity:1;transform:translate(-50%)}#race-hud .ampel i{background:#2a2b30;border-radius:50%;width:46px;height:46px;transition:background .12s,box-shadow .12s}#race-hud .ampel[data-state=red] .r,#race-hud .ampel[data-state=redyellow] .r{background:#ff2a1a;box-shadow:0 0 24px 6px #ff2a1abf}#race-hud .ampel[data-state=redyellow] .y{background:#ffb400;box-shadow:0 0 24px 6px #ffb400bf}#race-hud .ampel[data-state=green] .g{background:#2dff6a;animation:.5s ease-out ampel-go;box-shadow:0 0 28px 8px #2dff6acc}@keyframes ampel-go{0%{transform:scale(1.35)}to{transform:scale(1)}}#race-hud .countdown{font-size:96px;top:40%}#race-hud .countdown.go{color:#2dff6a;text-shadow:0 6px #138a3a,0 0 30px #0006}#race-hud .countdown.pop-tick{animation:count-pop .55s var(--ease-pop)}@keyframes count-pop{0%{opacity:0;scale:2.2}40%{opacity:1}to{scale:1}}.mute{cursor:pointer;background:var(--night);color:#fff;pointer-events:auto;border:0;border-radius:10px;place-items:center;padding:7px 10px;line-height:1;transition:background .15s,transform .12s;display:grid}.mute:hover{background:#14161ef2}.mute:active{transform:scale(.92)}.play .mute{background:var(--ink-2);flex:none;box-shadow:0 3px #00000059}#race-hud .mute,#garage-ui .mute{position:absolute;top:18px;right:18px}#sound-panel{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0c1273;display:none;position:fixed;inset:0}#sound-panel.show{animation:fade-in .2s var(--ease-out);place-items:center;display:grid}#sound-panel .card{border-radius:var(--r-l);color:#fff;background:var(--night);width:min(440px,100% - 32px);box-shadow:var(--shadow-2);animation:pop-in .3s var(--ease-pop);padding:20px 22px}#sound-panel h2{font:400 36px/1 var(--font-display);color:var(--accent);margin:0 0 10px}#sound-panel .row{grid-template-columns:1fr auto 140px 52px;align-items:center;gap:10px;padding:7px 0;display:grid}#sound-panel .row.master{border-bottom:1px solid #ffffff1f;margin-bottom:4px;padding-bottom:12px;font-weight:800}#sound-panel label{font-size:14px;font-weight:600}#sound-panel label small{opacity:.55;font-weight:500}#sound-panel .toggle{border-radius:var(--r-s);cursor:pointer;background:#ffffff1f;border:0;padding:4px 8px;font-size:15px}#sound-panel .toggle:hover{background:#ffffff38}#sound-panel input[type=range]{width:100%;accent-color:var(--accent)}#sound-panel .row.muted input{opacity:.35}#sound-panel output{text-align:right;font-variant-numeric:tabular-nums;opacity:.75;font-size:12px}#sound-panel .hint{opacity:.6;margin:10px 0 14px;font-size:12px}#sound-panel .close{width:100%}#race-hud .position{top:var(--hud-gap);left:var(--hud-gap);transform-origin:20% 70%;font:400 26px/1 var(--font-display);text-shadow:0 3px #0009;position:absolute}#race-hud .position b{color:var(--accent);-webkit-text-stroke:.06em var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--sauce), 0 8px 12px #0006;font-size:76px;font-weight:400;line-height:.9}#race-hud .position span{opacity:.9;margin-left:2px}#race-hud .position.pop-up{animation:pos-up .6s var(--ease-pop)}#race-hud .position.pop-down{animation:pos-down .6s var(--ease-out)}@keyframes pos-up{0%{filter:drop-shadow(0 0 14px var(--good));transform:scale(1.5)rotate(-6deg)}to{transform:scale(1)}}@keyframes pos-down{0%{filter:drop-shadow(0 0 14px var(--sauce));transform:translateY(8px)scale(.85)}to{transform:none}}#race-hud .item{top:calc(var(--hud-gap) + 92px);left:var(--hud-gap);border-radius:var(--r-l);background:radial-gradient(circle at 50% 35%, #ffffff29, transparent 70%), var(--night);width:88px;height:88px;box-shadow:var(--shadow-1);border:3px solid #ffffff59;place-items:center;transition:border-color .2s,box-shadow .2s;display:grid;position:absolute}#race-hud .item b{filter:drop-shadow(0 3px 2px #0006);font-size:48px;line-height:1}#race-hud .item small{font:400 18px var(--font-display);color:var(--accent);position:absolute;bottom:5px;right:7px}#race-hud .item kbd{background:var(--accent);color:var(--ink);opacity:0;border-radius:6px;padding:2px 7px;font:700 11px ui-monospace,monospace;transition:opacity .2s;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}#race-hud .item[data-state=ready]{border-color:var(--accent);box-shadow:0 0 22px #f4c40099, var(--shadow-1)}#race-hud .item[data-state=ready] kbd{opacity:1}#race-hud .item[data-state=spin]{border-color:#fff}#race-hud .item[data-state=spin] b{animation:.12s linear infinite item-spin}#race-hud .item.pop-got{animation:item-got .45s var(--ease-pop)}#race-hud .item span{white-space:nowrap;opacity:0;background:var(--accent);color:var(--ink);font:400 15px var(--font-display);border-radius:999px;padding:4px 10px;position:absolute;top:50%;left:calc(100% + 10px);translate:0 -50%}#race-hud .item.pop-got span{animation:item-name 1.8s var(--ease-out)}@keyframes item-name{0%{opacity:0;translate:-10px -50%}15%,75%{opacity:1;translate:0 -50%}to{opacity:0}}#race-hud .drift.pop-tier i{animation:tier-pulse .35s var(--ease-pop)}@keyframes tier-pulse{0%{scale:1.7}to{scale:1}}@keyframes item-spin{0%{transform:translateY(-6px)scale(.9)}to{transform:translateY(6px)scale(1)}}@keyframes item-got{0%{transform:scale(1.3)}to{transform:scale(1)}}#race-hud .ranking{top:calc(var(--hud-gap) + 196px);left:var(--hud-gap);border-radius:var(--r-m);background:var(--night);box-shadow:var(--shadow-1);min-width:120px;margin:0;padding:6px 8px;font-size:13px;list-style:none;position:absolute}#race-hud .ranking li{border-radius:6px;align-items:center;gap:7px;padding:3px 4px;display:flex}#race-hud .ranking li.me{color:var(--ink);background:var(--accent)}#race-hud .ranking li.moved{animation:row-moved .6s var(--ease-out)}@keyframes row-moved{0%{background:#ffffff73;translate:6px}}#race-hud .ranking em{width:14px;font:400 15px var(--font-display);opacity:.8;font-style:normal}#race-hud i.face{border:2px solid var(--c,#111);background-color:var(--tint,var(--c));background-position:50% 42%;background-repeat:no-repeat;background-size:128%;border-radius:50%;flex:none;width:22px;height:22px;box-shadow:0 0 0 1px #00000080}#race-hud .ranking li{padding:2px 4px}@media (height<=720px){#race-hud .minimap{width:252px;height:172px}#race-hud .ranking li{padding:1px 4px}#race-hud i.face{width:20px;height:20px}}@media (width<=760px),(height<=560px){#race-hud .ranking,#race-hud .keys{display:none}#race-hud .minimap{width:196px;height:136px;padding:4px}#race-hud .minimap .name{font-size:12px;top:-9px;left:10px}#race-hud .minimap .north{width:18px;height:18px;font-size:9px;top:9px;right:9px}#race-hud .speed{width:136px;padding:8px 10px}#race-hud .speed svg{width:112px;height:62px}#race-hud .speed b{margin-top:-36px;font-size:32px}#race-hud .top{padding:7px 14px;font-size:19px}#race-hud .position b{font-size:58px}#race-hud .item{top:calc(var(--hud-gap) + 72px);width:70px;height:70px}#race-hud .item b{font-size:38px}#race-hud .flash{font-size:30px}#race-hud .flash[data-kind=lap],#race-hud .flash[data-kind=final]{font-size:40px}#race-hud .countdown{font-size:80px}}#race-hud .speedlines{opacity:0;pointer-events:none;will-change:transform, opacity;background:repeating-conic-gradient(#ffffff80 0deg .5deg,#0000 .5deg 7deg),repeating-conic-gradient(from 3deg,#ffffff59 0deg .35deg,#0000 .35deg 11deg);width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;transition:opacity .25s;position:absolute;top:52%;left:50%;-webkit-mask-image:radial-gradient(circle closest-side,#0000 36%,#00000059 52%,#000 78%);mask-image:radial-gradient(circle closest-side,#0000 36%,#00000059 52%,#000 78%)}#race-hud:before{content:"";pointer-events:none;background:radial-gradient(75% 70% at 50% 55%,#0000 60%,#080a1061 100%);position:absolute;inset:0}#race-hud .pause{pointer-events:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0a0c1273;place-items:center;display:none;position:absolute;inset:0}#race-hud .pause.show{animation:fade-in .2s var(--ease-out);display:grid}#race-hud .pause .card{border-radius:var(--r-l);background:var(--night);width:min(320px,100% - 32px);box-shadow:var(--shadow-2);animation:pop-in .35s var(--ease-pop);flex-direction:column;gap:10px;padding:22px;display:flex}#race-hud .pause h2{text-align:center;font:400 48px/1 var(--font-display);color:var(--accent);text-shadow:0 4px #00000080;margin:0 0 8px}#race-hud .pause .btn{justify-content:space-between}#race-hud .pause .status{text-align:center;opacity:.75;font-variant-numeric:tabular-nums;margin:-4px 0 8px;font-size:14px;font-weight:600}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}#race-hud>.top,#race-hud>.position,#race-hud>.item,#race-hud>.ranking,#race-hud>.minimap,#race-hud>.speed,#race-hud>.drift,#race-hud>.keys,#race-hud>.mute{transition:opacity .5s var(--ease-out), translate .6s var(--ease-out)}#race-hud.intro>.top{opacity:0;translate:0 -30px}#race-hud.intro>.position,#race-hud.intro>.item,#race-hud.intro>.ranking,#race-hud.intro>.minimap{opacity:0;translate:-40px}#race-hud.intro>.speed,#race-hud.intro>.drift,#race-hud.intro>.mute{opacity:0;translate:40px}#race-hud.intro>.keys{opacity:0}#race-hud.finished>.item,#race-hud.finished>.ranking,#race-hud.finished>.keys{opacity:0;translate:-40px}#race-hud .results{border-radius:var(--r-l);background:var(--night);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(470px,100% - 32px);max-height:calc(100% - 32px);box-shadow:var(--shadow-2);pointer-events:auto;text-align:center;padding:22px 24px 16px;display:none;position:absolute;top:50%;left:50%;overflow:auto;translate:-50% -50%}#race-hud .results.show{animation:pop-in .45s var(--ease-pop);display:block}#race-hud .results h2{font:400 56px/1 var(--font-display);color:var(--accent);text-shadow:0 5px #00000080;margin:0}#race-hud .results .cheer{color:var(--cream);margin:6px 0 14px;font-size:15px;font-weight:600}#race-hud .results .podium{justify-content:center;align-items:flex-end;gap:8px;margin:0 0 14px;display:flex}#race-hud .results .step{border-radius:var(--r-m) var(--r-m) 0 0;background:#ffffff1a;flex-direction:column;align-items:center;gap:2px;width:31%;padding:8px 6px 0;display:flex}#race-hud .results .step i.face{border-width:3px;width:42px;height:42px}#race-hud .results .step span{font-size:14px}#race-hud .results .step small{opacity:.7;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}#race-hud .results .step b{font:400 34px/1.3 var(--font-display);color:#ffffffd9}#race-hud .results .step.p1{background:linear-gradient(#f4c40080,#f4c40026);min-height:128px}#race-hud .results .step.p1 b{color:var(--accent)}#race-hud .results .step.p2{min-height:106px}#race-hud .results .step.p3{min-height:92px}#race-hud .results .step.me{box-shadow:inset 0 0 0 2px var(--accent)}#race-hud .results ol{margin:0;padding:0;list-style:none}#race-hud .results ol.standings li{border-radius:var(--r-s);text-align:left;grid-template-columns:24px 24px 1fr auto;align-items:center;gap:10px;padding:5px 10px;font-size:16px;display:grid}#race-hud .results ol.standings li:nth-child(odd){background:#ffffff0d}#race-hud .results ol.standings li.me{color:var(--accent);background:#f4c40024}#race-hud .results ol.standings em{opacity:.6;font-style:normal}#race-hud .results ol.standings b{font-variant-numeric:tabular-nums;font-weight:700}#race-hud .results ol.laps{justify-content:center;gap:6px;margin:12px 0 0;display:flex}#race-hud .results ol.laps li{white-space:nowrap;font-variant-numeric:tabular-nums;background:#ffffff14;border-radius:999px;padding:4px 10px;font-size:13px}#race-hud .results ol.laps li span{opacity:.6;margin-right:6px;font-weight:600}#race-hud .results ol.laps li.best{color:var(--good);background:#7dff9a2e}#race-hud .results .total{margin:12px 0 14px;font-size:18px}#race-hud .results .total b{font:400 24px var(--font-display);color:#fff;margin:0 6px}#race-hud .results .total em{color:var(--good);font-style:normal;animation:1s ease-in-out infinite alternate pulse;display:inline-block}#race-hud .results .total span{opacity:.7;font-size:13px}#race-hud .results .actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}#race-hud .results .actions .btn{padding:10px 14px;font-size:17px}#race-hud .results .credits{opacity:.5;margin:12px 0 0;font-size:10px;font-weight:500}#race-hud .results:not(.settled) .step,#race-hud .results:not(.settled) ol.standings li,#race-hud .results:not(.settled) .total,#race-hud .results:not(.settled) .actions{animation:rise-in .45s var(--ease-out) both}#race-hud .results:not(.settled) .step.p2{animation-delay:.15s}#race-hud .results:not(.settled) .step.p1{animation-delay:.3s}#race-hud .results:not(.settled) .step.p3{animation-delay:.45s}#race-hud .results:not(.settled) ol.standings li{animation-delay:calc(.55s + var(--i) * 80ms)}#race-hud .results:not(.settled) .total{animation-delay:.9s}#race-hud .results:not(.settled) .actions{animation-delay:1s}#race-hud .confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}#race-hud .confetti i{opacity:0;border-radius:2px;width:9px;height:14px;animation:3s cubic-bezier(.3,.6,.6,1) both confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--drift), 105vh) rotate(var(--turn))}}@keyframes rise-in{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0}}@keyframes pulse{0%{scale:1}to{scale:1.1}}@media (height<=640px){#race-hud .results .podium{display:none}}.track-marker{pointer-events:auto;cursor:pointer;border:3px solid var(--ink);background:var(--accent);color:var(--ink);box-shadow:var(--shadow-pop), var(--shadow-1);font:inherit;transition:transform .15s var(--ease-out,ease-out), filter .15s;border-radius:14px;flex-direction:column;align-items:center;gap:1px;margin-bottom:9px;padding:6px 14px 7px;display:flex;position:relative}.track-marker b{font:400 19px/1 var(--font-display);letter-spacing:.02em}.track-marker span{opacity:.75;font-size:11px;font-weight:700}.track-marker:after{content:"";border:9px solid #0000;border-top-color:var(--ink);border-bottom:0;position:absolute;bottom:-12px;left:50%;transform:translate(-50%)}.track-marker:hover,.track-marker:focus-visible{filter:brightness(1.08);transform:translateY(-3px)}#title.switching .menu .btn.primary{opacity:.55;pointer-events:none}#title .online{border-radius:var(--r-l);background:var(--night);width:min(390px,100vw - 32px);max-height:calc(100vh - 48px);color:var(--cream);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:12px;padding:18px 18px 14px;display:flex;position:absolute;top:50%;right:clamp(16px,4vw,64px);overflow:auto;transform:translateY(-50%)}#title .online[hidden]{display:none}#title .online header{justify-content:space-between;align-items:center;display:flex}#title .online header b{font:400 24px/1 var(--font-display);letter-spacing:.02em;color:#fff}#title .online header .code{color:var(--accent);letter-spacing:.12em}#title .online .x{color:var(--cream);cursor:pointer;opacity:.7;background:0 0;border:0;font-size:18px}#title .online .x:hover{opacity:1}#title .online .field{letter-spacing:.06em;text-transform:uppercase;opacity:.9;flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}#title .online input[name]{font:600 16px var(--font-ui);border-radius:var(--r-s);color:#fff;text-transform:none;letter-spacing:0;background:#ffffff14;border:2px solid #ffffff2e;padding:10px 12px}#title .online input[name]:focus{border-color:var(--accent);outline:none}#title .online .join{gap:8px;display:flex}#title .online .join input{flex:1;min-width:0;text-transform:uppercase!important;letter-spacing:.3em!important;font-family:var(--font-display)!important}#title .online .hint,#title .online .status{opacity:.85;margin:0;font-size:13px}#title .online .error{color:#ff9b8a;margin:0;font-size:13px;font-weight:700}#title .online .players{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}#title .online .players li{border-radius:var(--r-m);background:#ffffff12;border:2px solid #0000;align-items:center;gap:10px;padding:7px 10px;display:flex}#title .online .players li.me{border-color:#f4c40080}#title .online .players li.ready .state{color:var(--good)}#title .online .players .face{background:#ffffff26 50%/cover;border-radius:50%;flex:none;width:34px;height:34px}#title .online .players span{flex-direction:column;flex:1;min-width:0;display:flex}#title .online .players span b{font:400 17px/1.1 var(--font-display);color:#fff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#title .online .players span b em{font-style:normal}#title .online .players span small{opacity:.75;font-size:12px}#title .online .players .state{opacity:.85;white-space:nowrap;font-size:12px;font-weight:700}#title .online .tracks{gap:6px;display:flex}#title .online .pill{border-radius:var(--r-m);color:#fff;cursor:pointer;font:400 15px var(--font-display);letter-spacing:.02em;background:#ffffff0d;border:2px solid #ffffff26;flex-direction:column;flex:1;align-items:flex-start;padding:7px 10px;display:flex}#title .online .pill small{font:600 11px var(--font-ui);opacity:.7;letter-spacing:0}#title .online .pill.on{border-color:var(--accent);color:var(--accent);background:#f4c40029}#title .online .pill:disabled{cursor:default}#title .online .pill:disabled:not(.on){opacity:.5}#title .online .fill{align-items:center;gap:8px;font-size:13px;display:flex}#title .online .actions{flex-wrap:wrap;gap:8px;display:flex}#title .online .actions .btn,#title .online>.btn{padding:10px 14px;font-size:17px}#title .online .btn:disabled{opacity:.5;cursor:default;transform:none}#title .online .copy{align-self:flex-start}#title .online .foot{opacity:.8;justify-content:space-between;align-items:center;font-size:12px;display:flex}#title .online .link{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;text-decoration:underline}#title .online-btn .dot{background:var(--good);width:9px;height:9px;box-shadow:0 0 8px var(--good);border-radius:50%;margin-left:auto}@media (width<=900px){#title .online{width:auto;max-height:70vh;position:fixed;inset:auto 12px 12px;transform:none}}
