:root{--hud-yellow: #ffe14d;--hud-red: #ff4d4d;--hud-blue: #4dc3ff;--arcade-pink: #ff155d;--arcade-red: #8b002c;--panel: rgba(16, 14, 40, .88);font-family:Trebuchet MS,Comic Sans MS,Arial Rounded MT Bold,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#14102e;color:#fff}#app{width:100vw;height:100vh}.screen{position:absolute;top:0;right:0;bottom:0;left:0}.game-canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block}.menu-screen{display:flex;align-items:center;justify-content:center;overflow-y:auto;background:linear-gradient(120deg,rgba(255,21,93,.28) 0 18%,transparent 18% 28%,rgba(255,21,93,.16) 28% 38%,transparent 38%),radial-gradient(circle at 18% 12%,rgba(255,120,60,.28),transparent 44%),radial-gradient(circle at 84% 78%,rgba(70,140,255,.24),transparent 42%),repeating-linear-gradient(45deg,#210017 0,#210017 34px,#170024 34px,#170024 68px)}.menu-box{background:var(--panel);border:4px solid var(--hud-yellow);border-radius:14px;box-shadow:0 10px #00000073;padding:28px 34px;max-width:680px;width:min(92vw,680px);max-height:92vh;overflow-y:auto;text-align:center}.menu-box.wide{max-width:860px;width:min(94vw,860px)}.menu-screen.title-screen{--gap: clamp(5px, 1vh, 14px);--art-scale: .6;--marquee-art-scale: .72;overflow:hidden;align-items:stretch;justify-content:stretch;padding:clamp(8px,2.2vh,30px) clamp(8px,2.2vw,42px)}@media (min-height: 800px){.menu-screen.title-screen{--art-scale: .74;--marquee-art-scale: .9}}@media (min-height: 1000px){.menu-screen.title-screen{--art-scale: .9;--marquee-art-scale: 1.05}}@media (min-height: 1250px){.menu-screen.title-screen{--art-scale: 1.15;--marquee-art-scale: 1.35}}.title-screen .menu-box.arcade-cabinet{width:100%;height:100%;max-width:none;max-height:none;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:clamp(10px,1.5vw,26px);row-gap:var(--gap)}.title-screen .menu-title{grid-column:1;grid-row:1;align-self:baseline;margin:0;font-size:clamp(1.1rem,3.4vh,3.3rem)}.title-screen .menu-subtitle{grid-column:2;grid-row:1;align-self:baseline;margin:0;text-align:right;font-size:clamp(.58rem,1.5vh,1.3rem)}.title-screen .menu-body{grid-column:1 / -1;grid-row:2;min-height:0;display:flex}.menu-box.arcade-cabinet{max-width:1120px;width:min(97vw,1120px);padding:18px 22px 22px;border-color:var(--arcade-pink);background:linear-gradient(135deg,#ff155d2e,#08001cf0 38%),#12001cf0;box-shadow:0 0 0 3px #ffffffb8,0 12px #00000080,0 0 48px #ff155d57}.menu-title{margin:0 0 6px;font-size:2.45rem;letter-spacing:4px;color:#fff;text-shadow:3px 3px 0 var(--arcade-pink),6px 6px 0 rgba(0,0,0,.62)}.menu-subtitle{margin:0 0 14px;color:var(--hud-yellow);font-weight:900;letter-spacing:2px;opacity:.95;text-transform:uppercase}.menu-error{color:#ff8a8a;min-height:1.2em;margin:8px 0 0}.btn-column{display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:14px}.btn{font:inherit;cursor:pointer;color:#fff;background:linear-gradient(#ff2d72,#a30038);border:3px solid #fff;border-radius:4px;padding:10px 26px;font-size:1.05rem;font-weight:700;letter-spacing:1px;box-shadow:0 5px #00000073;transition:transform .08s;text-transform:uppercase}.btn:hover:not(:disabled){transform:translateY(-2px) scale(1.03)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.big{font-size:1.25rem;padding:13px 40px;min-width:240px}.btn.ghost{background:transparent;border-color:#ffffff80;box-shadow:none}.btn.gold{background:linear-gradient(#ffe14d,#ff9a2a);color:#260014}.btn:disabled{opacity:.45;cursor:default}.field-label{display:block;text-align:left;font-weight:700;opacity:.9}.field-label.centered{text-align:center;margin:0 0 8px}.drive-mode-picker{margin:6px 0 18px}.mode-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mode-card{font:inherit;color:#fff;background:linear-gradient(180deg,#560022f5,#22001cf5);border:2px solid rgba(255,21,93,.6);border-radius:4px;padding:12px;cursor:pointer;min-height:106px;display:flex;flex-direction:column;justify-content:center;gap:6px;transition:transform .08s,background .08s,border-color .08s}.mode-card:hover{transform:scale(1.03);background:#ffffff26}.mode-card.selected{border-color:#fff;background:linear-gradient(180deg,var(--arcade-pink),#9b0037)}.mode-name{color:var(--hud-yellow);font-weight:900;font-size:1.2rem;letter-spacing:1px}.mode-desc{font-size:.82rem;opacity:.86;line-height:1.25}.arcade-start{flex:1;min-height:0;width:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--gap, 14px)}.arcade-columns{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.85fr) minmax(0,1.2fr);gap:var(--gap, 14px);min-height:0}.arcade-column{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:var(--gap, 14px);min-height:0}.arcade-marquee{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:clamp(8px,1.2vw,20px);align-items:center;padding:clamp(6px,1.1vh,16px) clamp(10px,1.2vw,20px);border:2px solid #fff;border-radius:4px;background:linear-gradient(90deg,#ff155de0,#4a0023d1),repeating-linear-gradient(90deg,transparent 0 24px,rgba(255,255,255,.07) 24px 26px)}.marquee-racer{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--accent);font-weight:900;font-size:clamp(.6rem,1.4vh,1.25rem);text-shadow:2px 2px 0 #000}.marquee-racer img{width:clamp(40px,9vh,132px);height:clamp(40px,9vh,132px);max-width:100%;object-fit:contain;image-rendering:pixelated}.marquee-racer span{max-width:100%;padding:1px 8px;border:1px solid currentColor;border-radius:3px;background:#0a0014b8;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.marquee-start{display:flex;flex-direction:column;align-items:center;gap:4px}.start-hint{font-size:clamp(.5rem,1.1vh,1rem);font-weight:900;letter-spacing:2px;color:var(--hud-yellow);opacity:.85}.arcade-cabinet .btn.big{font-size:clamp(.8rem,2.1vh,1.9rem);padding:clamp(6px,1.2vh,18px) clamp(14px,1.8vw,46px);min-width:clamp(120px,13vw,240px)}.marquee-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left}.marquee-copy strong{color:var(--hud-yellow);font-size:clamp(.95rem,3vh,2.7rem);letter-spacing:1px;text-shadow:2px 2px 0 #a02020}.marquee-copy small{opacity:.88;font-weight:700;font-size:clamp(.56rem,1.3vh,1.2rem)}.insert-coin{color:#fff;font-size:clamp(.55rem,1.2vh,1.05rem);font-weight:900;letter-spacing:3px;animation:blink .85s steps(2,end) infinite}@keyframes blink{50%{opacity:.28}}.arcade-section{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:clamp(5px,1vh,12px) clamp(6px,.8vw,14px);border:2px solid rgba(255,21,93,.58);border-radius:4px;background:#4a00239e;box-shadow:inset 0 0 22px #00000042}.arcade-section.grow{flex:1}.arcade-section .field-label{font-size:clamp(.6rem,1.5vh,1.3rem);letter-spacing:2px;text-transform:uppercase;color:var(--hud-yellow)}.mode-row.compact{min-height:0;gap:clamp(5px,.8vw,12px)}.mode-row.compact .mode-card{min-height:0;padding:clamp(5px,.9vh,12px);gap:clamp(2px,.4vh,6px)}.mode-row.compact .mode-name{font-size:clamp(.7rem,1.9vh,1.65rem)}.mode-row.compact .mode-desc{font-size:clamp(.55rem,1.2vh,1.05rem)}.card-grid.compact-grid{display:grid;flex:1;min-height:0;grid-auto-rows:minmax(0,1fr);gap:clamp(4px,.8vh,10px);margin:clamp(4px,.8vh,8px) 0 0}.compact-grid.racers{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-grid.vehicles{grid-template-columns:repeat(2,minmax(0,1fr))}.card.mini{min-height:0;overflow:hidden;justify-content:center;padding:clamp(4px,.7vh,10px) 6px;gap:clamp(2px,.5vh,7px)}.card.selected,.level-row.selected{background:linear-gradient(180deg,#ff155d9e,#5b0028d1);border-color:#fff;box-shadow:inset 0 0 0 2px #ffffff38,0 0 22px #ff155d42}.card.mini .card-portrait{width:auto;max-width:100%;height:clamp(30px,8.5vh,122px);min-height:0}.card.mini .card-name{font-size:clamp(.58rem,1.5vh,1.35rem)}.card.mini .vehicle-stats{font-size:clamp(.48rem,1.1vh,.98rem)}.card.mini .vehicle-art{transform:skew(-7deg) scale(var(--art-scale, 1));margin:calc((72px * var(--art-scale, 1) - 72px) / 2) calc((150px * var(--art-scale, 1) - 150px) / 2)}.card.mini .vehicle-art.moto{margin:calc((72px * var(--art-scale, 1) - 72px) / 2) calc((144px * var(--art-scale, 1) - 144px) / 2)}.marquee-machine .vehicle-art{transform:skew(-7deg) scale(var(--marquee-art-scale, 1));margin:calc((72px * var(--marquee-art-scale, 1) - 72px) / 2) calc((150px * var(--marquee-art-scale, 1) - 150px) / 2)}.marquee-machine .vehicle-art.moto{margin:calc((72px * var(--marquee-art-scale, 1) - 72px) / 2) calc((144px * var(--marquee-art-scale, 1) - 144px) / 2)}.marquee-machine .circuit-map{width:clamp(46px,5vw,132px);height:clamp(30px,5vh,86px)}.marquee-machine{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-width:0}.vehicle-art{--vehicle: #d42a2a;position:relative;display:block;width:150px;height:72px;margin:0 auto;transform:skew(-7deg)}.vehicle-shadow{position:absolute;left:12px;right:8px;bottom:7px;height:9px;border-radius:50%;background:#0000006b;filter:blur(2px)}.vehicle-body,.vehicle-nose,.vehicle-cockpit,.vehicle-wheel{position:absolute;display:block}.vehicle-body{left:24px;top:26px;width:92px;height:22px;border-radius:12px 18px 8px 10px;background:linear-gradient(135deg,color-mix(in srgb,var(--vehicle) 78%,white),var(--vehicle) 62%,#180014);border:3px solid rgba(255,255,255,.78)}.vehicle-nose{left:100px;top:31px;width:34px;height:14px;border-radius:0 20px 10px 0;background:var(--vehicle);border-top:3px solid rgba(255,255,255,.7)}.vehicle-cockpit{left:61px;top:14px;width:28px;height:22px;border-radius:14px 14px 4px 4px;background:linear-gradient(#c7f3ff,#264354);border:3px solid #120014}.vehicle-wheel{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,#54545c 0,#54545c 22%,#111 24%,#111 66%,#555 68%);bottom:8px}.front-left{left:103px}.front-right{left:75px;transform:scale(.7);opacity:.62}.rear-left{left:28px}.rear-right{left:50px;transform:scale(.7);opacity:.62}.vehicle-art.moto{width:144px;height:72px}.vehicle-art.moto .vehicle-body{left:44px;top:28px;width:58px;height:17px;border-radius:18px 22px 8px 16px}.vehicle-art.moto .vehicle-nose{left:94px;top:28px;width:24px;height:10px}.vehicle-art.moto .vehicle-cockpit{left:62px;top:18px;width:20px;height:16px}.vehicle-art.moto .front-left{left:102px}.vehicle-art.moto .rear-left{left:30px}.vehicle-art.moto .front-right,.vehicle-art.moto .rear-right{display:none}.circuit-map{width:88px;height:58px;overflow:visible;flex:0 0 auto}.circuit-glow,.circuit-line{fill:none;stroke-linejoin:round;stroke-linecap:round}.circuit-glow{stroke:#ff155d94;stroke-width:10;filter:drop-shadow(0 0 6px rgba(255,21,93,.9))}.circuit-line{stroke:#fff;stroke-width:4}.circuit-start{fill:var(--hud-yellow);stroke:#1b0018;stroke-width:2}.level-list.compact-levels{display:grid;flex:1;min-height:0;grid-auto-rows:minmax(0,1fr);gap:clamp(3px,.6vh,8px);margin:clamp(4px,.8vh,8px) 0 0}.compact-levels .level-row{min-height:0;overflow:hidden;gap:clamp(5px,.7vw,14px);padding:clamp(2px,.5vh,8px) clamp(6px,.7vw,14px)}.compact-levels .level-flag{font-size:clamp(.95rem,2.6vh,2.6rem)}.compact-levels .level-text{min-width:0}.compact-levels .level-name{font-size:clamp(.66rem,1.7vh,1.5rem)}.compact-levels .level-country{font-size:clamp(.52rem,1.25vh,1.08rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-levels .level-status{font-size:clamp(.52rem,1.3vh,1.2rem)}.compact-levels .circuit-map{width:clamp(34px,4.4vw,104px);height:clamp(24px,4.2vh,72px)}.arcade-section.online-panel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(8px,1vw,18px)}.online-panel .field-label{margin:0;white-space:nowrap}.online-panel .menu-error{margin:0;min-height:0;font-size:clamp(.55rem,1.2vh,1.1rem)}.online-controls{display:flex;gap:clamp(6px,.7vw,10px);align-items:center;justify-content:center}.online-panel .btn{font-size:clamp(.6rem,1.5vh,1.3rem);padding:clamp(4px,.8vh,12px) clamp(8px,1vw,24px);white-space:nowrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:10px 0 18px}.card{position:relative;font:inherit;color:#fff;background:linear-gradient(180deg,#600028eb,#1f001ff5);border:2px solid var(--accent, rgba(255, 21, 93, .62));border-radius:4px;padding:12px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .08s}.card:hover:not(:disabled){transform:translateY(-2px) scale(1.03);background:#ff155d61}.card.locked{filter:grayscale(1) brightness(.55);cursor:default}.card-portrait{width:84px;height:84px;object-fit:contain;image-rendering:pixelated}.card-name{font-weight:700;font-size:1.05rem}.card-desc{font-size:.8rem;opacity:.8}.card-lock{position:absolute;top:8px;right:10px;font-size:1.2rem}.vehicle-swatch{width:74px;height:52px;border-radius:10px;border:3px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;font-size:1.8rem}.vehicle-stats{font-size:.75rem;color:var(--hud-yellow);letter-spacing:1px}.level-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 16px}.level-row{font:inherit;color:#fff;display:flex;align-items:center;gap:14px;background:linear-gradient(90deg,#5e0028db,#1c0022e0);border:2px solid rgba(255,21,93,.5);border-radius:4px;padding:10px 16px;cursor:pointer;text-align:left;transition:transform .08s}.level-row:hover:not(:disabled){transform:translate(3px);background:#ff155d57}.level-row.locked{filter:grayscale(1) brightness(.55);cursor:default}.level-flag{font-size:1.9rem}.level-text{flex:1;display:flex;flex-direction:column}.level-name{font-weight:700;font-size:1.1rem}.level-country{font-size:.82rem;opacity:.8}.level-status{font-weight:700;color:var(--hud-yellow);letter-spacing:1px}@media (max-width: 960px),(max-height: 520px){.menu-screen.title-screen{overflow-y:auto;align-items:flex-start;justify-content:center;padding:12px}.title-screen .menu-box.arcade-cabinet{display:block;height:auto;overflow:visible;padding:18px 16px}.title-screen .menu-title{font-size:2rem;margin-bottom:6px}.title-screen .menu-subtitle{text-align:center;margin-bottom:14px}.arcade-columns{grid-template-columns:1fr}.arcade-column{grid-template-rows:auto}.arcade-section{overflow:visible}.card-grid.compact-grid,.level-list.compact-levels{grid-auto-rows:auto}.compact-grid.racers{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.compact-grid.vehicles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.card.mini .card-portrait{height:64px}.arcade-marquee{grid-template-columns:1fr;justify-items:center}.marquee-copy{align-items:center;text-align:center}.marquee-machine,.arcade-section.online-panel{grid-template-columns:1fr}}.lobby-players{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:14px 0}.lobby-player{background:#ffffff14;border:3px solid rgba(255,255,255,.35);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:130px}.lobby-portrait{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}.lobby-name{font-weight:700}.lobby-detail{font-size:.75rem;opacity:.8}.lobby-ready{font-size:.8rem;color:var(--hud-yellow);font-weight:700}.chip-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{font:inherit;color:#fff;background:#ffffff1a;border:2px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 14px;cursor:pointer;font-size:.85rem}.chip.selected{background:var(--hud-yellow);color:#201800;font-weight:700}.chip.locked{opacity:.4}.chip:disabled{cursor:default}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.hud-top{position:absolute;top:14px;left:0;right:0;display:flex;justify-content:center;gap:22px;align-items:center}.hud-lap,.hud-timer{background:var(--panel);border:3px solid var(--hud-yellow);border-radius:10px;padding:6px 18px;font-size:1.4rem;font-weight:700;letter-spacing:2px;color:var(--hud-yellow);text-shadow:2px 2px 0 rgba(0,0,0,.6)}.hud-item{width:52px;height:52px;background:var(--panel);border:3px solid #fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:#ffffff80}.hud-place{position:absolute;bottom:22px;right:26px;font-size:4.6rem;font-weight:900;font-style:italic;color:var(--hud-yellow);text-shadow:4px 4px 0 #a02020,7px 7px 0 rgba(0,0,0,.55);letter-spacing:3px}.hud-place[data-place="1"]{color:#ffe14d}.hud-place[data-place="2"]{color:#d8e4f0}.hud-place[data-place="3"]{color:#f0a860}.hud-ranking{position:absolute;top:90px;left:16px;display:flex;flex-direction:column;gap:4px}.rank-row{display:flex;align-items:center;gap:8px;background:#0a081eb8;border-radius:8px;padding:3px 10px 3px 6px;font-size:.85rem}.rank-row.me{outline:2px solid var(--hud-yellow);background:#3c320acc}.rank-row.big-row{font-size:1.1rem;padding:8px 16px}.rank-pos{font-weight:900;width:1.4em;color:var(--hud-yellow)}.rank-portrait{width:26px;height:26px;object-fit:contain;image-rendering:pixelated}.big-row .rank-portrait{width:44px;height:44px}.rank-name{font-weight:700}.rank-time{margin-left:auto;opacity:.85;font-variant-numeric:tabular-nums}.hud-minimap{position:absolute;bottom:20px;left:20px;background:#0a081e8c;border:3px solid rgba(255,255,255,.7);border-radius:12px}.hud-message{position:absolute;top:32%;left:0;right:0;text-align:center;font-size:2.6rem;font-weight:900;font-style:italic;color:#ff9a2a;text-shadow:3px 3px 0 rgba(0,0,0,.6);opacity:0;transform:scale(.7);transition:opacity .15s,transform .15s}.hud-message.visible{opacity:1;transform:scale(1)}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9rem;font-weight:900;font-style:italic;color:var(--hud-yellow);text-shadow:6px 6px 0 #a02020,10px 10px 0 rgba(0,0,0,.5);pointer-events:none;opacity:0;z-index:6}.countdown.visible{opacity:1}.results-list{display:flex;flex-direction:column;gap:6px;margin:12px 0 6px}.celebration-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:5vh;gap:14px;pointer-events:none;z-index:6}.celebration-overlay .btn{pointer-events:auto}.celebration-title{margin:0;font-size:3rem;font-weight:900;font-style:italic;color:var(--hud-yellow);text-shadow:4px 4px 0 #a02020,7px 7px 0 rgba(0,0,0,.55);animation:bounce 1.2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.celebration-text{margin:0;font-size:1.2rem;background:var(--panel);padding:8px 20px;border-radius:10px}.celebration-portraits{display:flex;gap:18px}.celebration-unlock{background:var(--panel);border:3px solid var(--hud-yellow);border-radius:12px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:700;text-align:center;animation:bounce 1.2s infinite}.celebration-unlock:nth-child(2){animation-delay:.2s}.celebration-unlock:nth-child(3){animation-delay:.4s}.celebration-unlock img{width:84px;height:84px;object-fit:contain;image-rendering:pixelated}
