:root{--ink: #f6f2e8;--dim: #a9adc0;--bg: #12141c;--panel: rgba(20, 22, 36, .86);--line: rgba(255, 255, 255, .12);--yellow: #ffd21a;--orange: #ff8a2a;--pink: #ff4d8a;--cyan: #3dd8ff;--green: #4dff7a;--display: "Arial Black", "Segoe UI Black", "Helvetica Neue", Impact, system-ui, sans-serif;--body: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;touch-action:none}#game{position:fixed;left:0;top:0;width:100%;height:100%;display:block}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--cyan)}h2,h3,p{margin:0}#ui{position:fixed;inset:0;bottom:var(--deck-h, 0px);overflow-y:auto;overflow-x:hidden;touch-action:pan-y;display:flex;flex-direction:column}#ui.s-none{display:none}#ui:not(.s-none):not(.s-title):not(.s-pause){background:linear-gradient(180deg,#0e101ce6,#0e101cc7);backdrop-filter:blur(7px) saturate(1.2)}#ui.s-title{background:radial-gradient(ellipse at center,#0a0c1840,#0a0c18d1);align-items:center;justify-content:center}#ui.s-pause{background:#0a0c18b8;backdrop-filter:blur(5px);align-items:center;justify-content:center}.logo{font-family:var(--display);font-style:italic;line-height:.82;letter-spacing:-.02em;transform:rotate(-4deg) skew(-6deg);display:inline-flex;flex-direction:column;filter:drop-shadow(0 6px 0 #1b1030) drop-shadow(0 10px 24px rgba(0,0,0,.6))}.logo span{font-size:clamp(64px,15vw,190px);background:linear-gradient(180deg,#fff,#dfe9f4 28%,#8fa3b8 46%,#fff 52%,#ffe07a 60%,#ff9a2a 82%,#d0421a);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px rgba(20,10,40,.55);padding:0 .12em}.logo span:last-child{margin-left:.5em;background:linear-gradient(180deg,#fff,#ffd0e4 26%,#ff5c9c 48%,#fff 53%,#ff9ac8 60%,#ff2f7a 84%,#a8104a);-webkit-background-clip:text;background-clip:text}.logo.small span{font-size:34px;-webkit-text-stroke:1px rgba(20,10,40,.55)}.logo.small{filter:drop-shadow(0 3px 0 #1b1030)}.title-box{text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px;padding:24px;animation:rise .6s cubic-bezier(.2,1.4,.4,1)}.tag{font-size:clamp(16px,2.2vw,22px);font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.8)}.fine{font-size:13px;color:var(--dim)}@keyframes rise{0%{transform:translateY(30px) scale(.92);opacity:0}}.btn{border:0;border-radius:14px;padding:12px 22px;font-family:var(--display);font-size:15px;letter-spacing:.04em;background:linear-gradient(180deg,#3a3f58,#2a2e44);color:#fff;box-shadow:0 4px #14162a,0 8px 18px #00000059;transition:transform .08s,filter .12s;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn:hover{transform:translateY(-2px);filter:brightness(1.12)}.btn:active{transform:translateY(3px);box-shadow:0 1px #14162a}.btn.go{background:linear-gradient(180deg,#ffe45c,#ffb21a 55%,#ff8a1a);color:#2a1600;box-shadow:0 4px #a8500a,0 8px 22px #ff961459}.btn.big{font-size:22px;padding:16px 44px;border-radius:18px;font-style:italic}.btn.ghost{background:#ffffff12;box-shadow:inset 0 0 0 1.5px var(--line)}.btn.small{font-size:12px;padding:8px 14px;border-radius:10px}.btn.disabled{filter:grayscale(.8) brightness(.75)}.btn:disabled{opacity:.5;pointer-events:none}.link{background:none;border:0;color:var(--cyan);text-decoration:underline;padding:6px 0;font-size:14px}.bolts{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);color:var(--yellow);font-size:16px}.bolt-ico{width:14px;height:14px;display:inline-block;background:linear-gradient(135deg,#fff6c0,#ffc21a 45%,#b87400);clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);position:relative}.btn .bolts{color:inherit;font-size:inherit}.head,.menu-top{display:flex;align-items:center;gap:16px;padding:14px clamp(14px,3vw,34px);position:sticky;top:0;z-index:5;background:linear-gradient(180deg,#0e101cf2,#0e101c00)}.head h2{font-family:var(--display);font-style:italic;font-size:clamp(22px,3vw,34px);letter-spacing:.02em;flex:1;background:linear-gradient(180deg,#fff,#ffd21a);-webkit-background-clip:text;background-clip:text;color:transparent}.head-right{display:flex;align-items:center;gap:14px;margin-left:auto}.chip{border:0;border-radius:999px;padding:7px 16px;background:#ffffff14;box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}.chip b{font-size:13px}.chip small{font-size:10.5px;color:var(--dim)}.chip.in{box-shadow:inset 0 0 0 1.5px var(--green)}.chip.in small{color:var(--green)}.chip:hover{background:#ffffff24}.page{flex:1;padding:6px clamp(14px,3vw,34px) 30px;width:100%;max-width:1280px;margin:0 auto}.page.narrow{max-width:520px}.foot{position:sticky;bottom:0;padding:16px;display:flex;gap:12px;justify-content:center;background:linear-gradient(0deg,#0e101cf5,#0e101c00);z-index:4}.card{background:var(--panel);border-radius:18px;padding:18px;box-shadow:inset 0 0 0 1.5px var(--line),0 10px 30px #0000004d;text-align:left}.card h3{font-family:var(--display);font-size:16px;letter-spacing:.03em;margin-bottom:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.card+.card{margin-top:14px}.muted{color:var(--dim);font-size:13.5px}.lead{color:var(--dim);font-size:15px;margin:2px 0 14px}.grid{display:grid;gap:12px}.menu-cols{flex:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:22px;padding:4px clamp(14px,3vw,34px) 30px;max-width:1180px;width:100%;margin:0 auto;align-items:start}.menu-list{display:flex;flex-direction:column;gap:10px}.menu-item{text-align:left;border:0;border-radius:16px;padding:14px 20px;background:var(--panel);box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;gap:2px;transition:transform .1s,box-shadow .12s,background .12s}.menu-item b{font-family:var(--display);font-style:italic;font-size:22px;letter-spacing:.03em}.menu-item span{color:var(--dim);font-size:13.5px}.menu-item:hover{transform:translate(8px);box-shadow:inset 0 0 0 2px var(--yellow);background:#282414e6}.menu-item.primary{background:linear-gradient(100deg,#ffd21a,#ff8a1a);color:#2a1600;box-shadow:0 5px #a8500a}.menu-item.primary b{font-size:28px}.menu-item.primary span{color:#5a3000;font-weight:600}.menu-item.primary:hover{background:linear-gradient(100deg,#ffe45c,#ffa02a);box-shadow:0 5px #a8500a}.profile{display:flex;flex-direction:column;gap:10px}.profile-row{display:flex;gap:14px;align-items:center}.profile-row>div{display:flex;flex-direction:column}.profile-row small{color:var(--dim);font-size:10.5px;letter-spacing:.12em;font-weight:700}.profile-row b{font-family:var(--display);font-size:18px}.profile-row span{color:var(--yellow);font-size:12.5px}.profile-car{display:flex;justify-content:center;background:radial-gradient(ellipse at center,rgba(255,255,255,.1),transparent 68%);border-radius:14px}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;border-top:1.5px solid var(--line);padding-top:12px}.profile-stats b{display:block;font-family:var(--display);font-size:19px}.profile-stats small{color:var(--dim);font-size:10px;letter-spacing:.1em}.portrait{border-radius:16px;box-shadow:0 0 0 2.5px #fff3,0 6px 14px #0006;flex:none}.steps{display:flex;gap:8px;padding:0 clamp(14px,3vw,34px) 10px;flex-wrap:wrap}.steps span{font-family:var(--display);font-size:12px;padding:6px 14px;border-radius:999px;background:#ffffff12;color:var(--dim)}.steps .on{background:var(--yellow);color:#2a1600}.steps .done{color:var(--green)}.drivers{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.driver{border:0;display:grid;grid-template-columns:auto 1fr;column-gap:14px;row-gap:1px;align-items:start;transition:transform .1s,box-shadow .12s}.driver .portrait{grid-row:span 3}.driver b{font-family:var(--display);font-size:17px;align-self:end}.driver small{color:var(--dim);font-size:12px}.driver .perk{color:var(--yellow);font-size:12.5px;font-weight:700}.driver p{grid-column:1 / -1;color:var(--dim);font-size:12.5px;margin-top:8px;line-height:1.35}.driver .tagline{grid-column:1 / -1;margin-top:8px}.card.on{box-shadow:inset 0 0 0 2.5px var(--yellow),0 0 0 4px #ffd21a2e,0 10px 30px #0000004d}.card.locked{filter:saturate(.6)}button.card:hover{transform:translateY(-3px)}.tagline{font-style:normal;font-family:var(--display);font-size:11px;letter-spacing:.08em;color:var(--dim)}.tagline.on{color:var(--green)}.tagline.price .bolts{font-size:13px}.veh-pick,.garage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:start}.veh-stage{position:sticky;top:80px;display:flex;flex-direction:column;align-items:center;gap:12px}.veh-big{width:min(100%,380px);aspect-ratio:1;background:radial-gradient(ellipse at 50% 55%,rgba(255,255,255,.16),rgba(255,255,255,.03) 55%,transparent 70%),conic-gradient(from 0deg,#ffffff08,#ffffff14,#ffffff08,#ffffff14,#ffffff08);border-radius:50%;box-shadow:inset 0 0 0 2px var(--line),inset 0 -30px 60px #00000059}.veh-side{display:flex;flex-direction:column;gap:14px}.veh-info,.detail{background:var(--panel);border-radius:18px;padding:18px;box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;gap:10px;align-items:flex-start;width:100%}.veh-info h3,.detail h3{font-family:var(--display);font-style:italic;font-size:26px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.veh-info p,.detail p{color:var(--dim);font-size:14px}.weapon b{color:var(--pink)}.stat-bars{width:100%;display:grid;gap:6px}.stat{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:10px}.stat label{font-size:11px;letter-spacing:.1em;font-weight:700;color:var(--dim);text-transform:uppercase}.stat i{height:9px;border-radius:6px;background:#ffffff1a;overflow:hidden;display:block}.stat i b{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--cyan),var(--green));transition:width .25s}.veh-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.veh-chip{border:0;border-radius:14px;padding:6px 4px 8px;background:#ffffff0f;box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;align-items:center}.veh-chip small{font-size:11px;font-weight:700}.veh-chip.on{box-shadow:inset 0 0 0 2.5px var(--yellow);background:#ffd21a1f}.veh-chip.locked canvas{filter:brightness(.35) saturate(.2)}.veh-chip.locked small{color:var(--dim)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tab{border:0;border-radius:999px;padding:8px 16px;font-family:var(--display);font-size:12.5px;background:#ffffff12;color:var(--dim)}.tab.on{background:var(--yellow);color:#2a1600}.items{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.item{border:0;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;transition:transform .1s}.item b{font-size:12.5px}.item small{font-size:11px;color:var(--dim)}.item .price .bolts{font-size:12px}.item.locked canvas{filter:saturate(.75) brightness(.8)}.swatch{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:26px;box-shadow:inset 0 -8px 14px #0000004d,inset 0 6px 10px #fff6;margin:8px 0}.swatch.horn{background:linear-gradient(135deg,#5a6078,#2a2e44)}.garage-side{min-width:0}.cups{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.tracks{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:16px}.cup,.track{border:0;display:flex;flex-direction:column;gap:6px}.cup b,.track b{font-family:var(--display);font-style:italic;font-size:19px}.cup p,.track p{color:var(--dim);font-size:13px}.track small{color:var(--yellow);font-size:12px}.cup-tracks{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.cup-tracks>div{display:flex;flex-direction:column;gap:3px}.cup-tracks small{color:var(--dim);font-size:11px}.cup canvas,.track canvas{background:#0000004d;border-radius:10px}.setup{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.setup .card+.card{margin-top:0}.seed-card{grid-column:1 / -1;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}.seed-card small{font-size:10.5px;letter-spacing:.12em;font-weight:700;color:var(--dim)}.seed-row{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}.city-name{font-family:var(--display);font-style:italic;font-size:22px;color:var(--yellow)}.seed-card p{color:var(--dim);font-size:13px;margin-top:4px}.rounds{display:flex;flex-direction:column;gap:6px}.round-pill{font-family:var(--display);font-size:11.5px;padding:6px 14px;border-radius:999px;white-space:nowrap}.round-pill.r0{background:linear-gradient(90deg,#ffb46a,#ffe2a8);color:#4a2200}.round-pill.r1{background:linear-gradient(90deg,#5ac8ff,#c8f0ff);color:#00304a}.round-pill.r2{background:linear-gradient(90deg,#2a2466,#6a4ac8);color:#e8dcff}input{font:inherit;color:var(--ink);background:#00000059;border:0;border-radius:12px;padding:11px 14px;box-shadow:inset 0 0 0 1.5px var(--line);outline:none;user-select:text;-webkit-user-select:text}input:focus{box-shadow:inset 0 0 0 2px var(--yellow)}body.padnav .gpfocus{outline:3px solid var(--yellow);outline-offset:3px;border-radius:14px;box-shadow:0 0 0 6px #ffd21a38,0 0 26px #ffd21a8c;position:relative;z-index:2;animation:gpring 1.1s ease-in-out infinite}body.padnav input.gpfocus{box-shadow:inset 0 0 0 2px var(--yellow),0 0 0 6px #ffd21a38}@keyframes gpring{50%{outline-offset:5px}}@media (prefers-reduced-motion: reduce){body.padnav .gpfocus{animation:none}}body.tv #ui,body.tv #hud{zoom:var(--tv-zoom, 1)}body.tv #touch,body.tv #deck{display:none!important}body.tv{cursor:none}#tvwait{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:#0a0b12b8;backdrop-filter:blur(6px);font-family:var(--display);zoom:var(--tv-zoom, 1)}#tvwait.hidden{display:none}#tvwait b{font-size:54px;font-style:italic;color:var(--yellow);text-shadow:0 4px 0 #a8500a}#tvwait span{font-size:26px;animation:tvpulse 1.6s ease-in-out infinite}@keyframes tvpulse{50%{opacity:.45}}#deck{--hit: .6;--ring-w: clamp(5px, calc(5px + (100vw - 360px)*.15) , 22px);--ring: calc(var(--ring-w) * .55);position:fixed;left:0;right:0;bottom:0;height:var(--deck-h);z-index:15;display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom);border-radius:22px 22px 0 0;touch-action:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:radial-gradient(120% 90% at 50% 0%,#1b1838,#07061a 55%,#040312);font-family:var(--display)}#deck[data-mode=controller]{--ring: var(--ring-w)}.deckEdge{position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 var(--ring) 0 0 #ffd21ae6,inset 0 0 0 var(--ring) #ff4d8a8c,inset 0 0 34px #ff4d8a40}#deck.flash .deckEdge{animation:deckhit .45s ease-out}@keyframes deckhit{0%{box-shadow:inset 0 0 0 calc(var(--ring) * 2) rgba(255,255,255,var(--hit)),inset 0 0 70px rgba(255,90,90,var(--hit))}}.deckPad{flex:1;position:relative}#deck[data-mode=controller] .deckPad{display:none}.deckCtl{display:none;flex:1;align-items:flex-end;justify-content:center;padding:14px;color:#a99fc9;font:600 12px var(--body);text-align:center}#deck[data-mode=controller] .deckCtl{display:flex}.dk{position:absolute;font-family:inherit;color:#f3eaff;border:0;padding:0;touch-action:none}.dk.shoulder{top:calc(var(--ring) + 8px);width:26%;height:30px;border-radius:14px 14px 8px 8px;font-size:10px;background:linear-gradient(#3a3550,#211d33);box-shadow:0 3px #07060d}.dk.shoulder.l{left:calc(var(--ring) + 13px)}.dk.shoulder.r{right:calc(var(--ring) + 13px)}.dpad,.abxy{position:absolute;top:50%;width:clamp(64px,min(40vw,calc(var(--deck-h) - 150px)),190px);aspect-ratio:1;transform:translateY(-46%)}.dpad{left:5%;touch-action:none}.abxy{right:5%}.dpad i{position:absolute;background:linear-gradient(145deg,#2d2a3c,#15131f);box-shadow:0 4px #07060d}.dpad .arm.up,.dpad .arm.down{left:34%;width:32%;height:36%}.dpad .arm.left,.dpad .arm.right{top:34%;height:32%;width:36%}.dpad .arm.up{top:0;border-radius:8px 8px 0 0}.dpad .arm.down{bottom:0;border-radius:0 0 8px 8px}.dpad .arm.left{left:0;border-radius:8px 0 0 8px}.dpad .arm.right{right:0;border-radius:0 8px 8px 0}.dpad .hub{left:33%;top:33%;width:34%;height:34%;box-shadow:none}.dpad.up .arm.up,.dpad.down .arm.down,.dpad.left .arm.left,.dpad.right .arm.right{background:linear-gradient(145deg,#3dd8ff,#2a6f7a);box-shadow:0 0 22px #3dd8ff}.dk.face{width:34%;height:34%;border-radius:50%;font-size:12px;background:radial-gradient(circle at 35% 30%,#d4549a,#8f1f5e 60%,#5e1240);box-shadow:0 4px #3a0a27,0 0 16px #e646a073}.dk.face.x{left:33%;top:0}.dk.face.y{left:0;top:33%}.dk.face.a{right:0;top:33%}.dk.face.b{left:33%;bottom:0}.dk.face.down,.dk.shoulder.down{transform:translateY(3px);filter:brightness(1.5);box-shadow:0 1px #000,0 0 26px #ff4d8a}.menuBtns{position:absolute;left:50%;bottom:8px;transform:translate(-50%);display:flex;gap:30px}.menuBtns span{display:flex;flex-direction:column;align-items:center;gap:13px}.menuBtns em{font-style:normal;font-size:7px;color:#a99fc9;letter-spacing:1px}.dk.pill{position:static;width:52px;height:16px;border-radius:9px;transform:rotate(-24deg);background:linear-gradient(#4a4560,#2a2638)}.dk.pill.down{transform:rotate(-24deg) translateY(2px);filter:brightness(1.5)}.deckHint{position:absolute;left:50%;top:calc(var(--ring) + 46px);transform:translate(-50%);font:600 9px var(--body);color:#8f86b3;white-space:nowrap;letter-spacing:.04em}@media (max-width: 820px),(pointer: coarse){.menuBtns em{font-size:8px;color:#c9c2e8}}body.with-deck .hud-bl{bottom:26px}body.with-deck .hud-map{width:96px;height:96px}@media (max-width: 1000px){.lobby-cols,.room-cols,.room-players.teams{grid-template-columns:1fr}}.room-players.teams{grid-template-columns:1fr}.page.room,.page.lobby{max-width:1500px}#toast{position:fixed;left:50%;top:14px;transform:translate(-50%);z-index:30;display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:14px;background:linear-gradient(100deg,#4a3d0a,#4a1630);box-shadow:inset 0 0 0 1.5px #ffd21a99,0 10px 30px #00000080;font-weight:700;font-size:14px;max-width:94vw;animation:rise .3s}.logo-art{display:block;width:min(96vw,1000px,calc((100vh - var(--deck-h, 0px) - 190px) * 1.695));height:auto;aspect-ratio:1000 / 590;margin-bottom:-18px}.title-box{gap:14px;padding:10px}
