*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:'Segoe UI',system-ui,sans-serif;color:#fff;touch-action:none}

#game-canvas{position:fixed;inset:0;width:100%;height:100%}

/* ── SCREENS ── */
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:50;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);padding:1rem;overflow-y:auto}
.screen.hidden{display:none!important}

/* ── START ── */
#start-screen h1{font-size:clamp(2.4rem,10vw,5.5rem);font-weight:900;letter-spacing:-2px;background:linear-gradient(135deg,#ff6b35,#f7c59f,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;line-height:1}
.subtitle{font-size:.85rem;letter-spacing:4px;text-transform:uppercase;color:#777;margin:.5rem 0 2.5rem}
.mode-btns{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-bottom:2rem}
.btn-mode{padding:.9rem 2.4rem;border-radius:50px;font-size:1rem;font-weight:700;cursor:pointer;border:none;letter-spacing:1px;text-transform:uppercase;transition:transform .15s,box-shadow .15s}
.btn-solo{background:linear-gradient(135deg,#ff6b35,#e63946);color:#fff;box-shadow:0 0 30px rgba(255,107,53,.4)}
.btn-solo:hover{transform:scale(1.05);box-shadow:0 0 45px rgba(255,107,53,.6)}
.btn-mp{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.2)}
.btn-mp:hover{background:rgba(255,255,255,.14);transform:scale(1.03)}
.controls-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem 1.6rem;text-align:center;max-width:420px;width:100%}
.controls-box h3{font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:#666;margin-bottom:.7rem}
.key-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .8rem;font-size:.85rem;color:#ccc;text-align:left}
.key-grid span{display:flex;align-items:center;gap:.4rem}
kbd{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:5px;padding:2px 7px;font-size:.78rem;font-family:monospace}

/* ── MP SCREEN ── */
#mp-screen{gap:1rem}
#mp-screen h2{font-size:clamp(1.5rem,5vw,2.5rem);font-weight:800;margin-bottom:.5rem}
.mp-input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:.75rem 1rem;color:#fff;font-size:1rem;outline:none;width:min(280px,90vw);transition:border-color .2s}
.mp-input:focus{border-color:#ff6b35}
.mp-input::placeholder{color:#555}
.mp-row{display:flex;gap:.6rem;width:min(280px,90vw);flex-wrap:wrap;justify-content:center}
.btn-sm{background:#ff6b35;border:none;color:#fff;font-weight:700;padding:.72rem 1.4rem;border-radius:8px;cursor:pointer;font-size:.95rem;transition:background .2s;white-space:nowrap}
.btn-sm:hover{background:#e05a2a}
.btn-sm:disabled{opacity:.5;cursor:default}
.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.2);color:#aaa;padding:.6rem 1.2rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:.2s}
.btn-ghost:hover{border-color:rgba(255,255,255,.4);color:#fff}
.mp-divider{color:#444;font-size:.8rem;letter-spacing:2px;text-transform:uppercase}

/* ── LOBBY ── */
#lobby-screen h2{font-size:clamp(1.4rem,5vw,2.2rem);font-weight:800;margin-bottom:.3rem}
.lobby-code-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:1rem 2rem;text-align:center;margin:.8rem 0 1.2rem}
.lobby-code-box .label{font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:#666;margin-bottom:.3rem}
#lobby-code{font-size:clamp(2rem,7vw,3rem);font-weight:900;letter-spacing:.15em;color:#ff6b35}
#lobby-count{font-size:.8rem;color:#666;margin-bottom:.8rem}
#lobby-players{display:flex;flex-direction:column;gap:.5rem;width:min(300px,90vw);min-height:80px;margin-bottom:1rem}
.lobby-player{display:flex;align-items:center;gap:.7rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.55rem .9rem}
.lobby-player::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--pcolor,#fff);flex-shrink:0}
.pname{flex:1;font-size:.95rem}
.host-badge{font-size:.65rem;background:#ff6b35;color:#fff;padding:2px 7px;border-radius:10px;letter-spacing:1px}
.btn-start-race{background:linear-gradient(135deg,#2dc653,#1a8a3a);border:none;color:#fff;font-size:1rem;font-weight:700;padding:.85rem 2.5rem;border-radius:50px;cursor:pointer;letter-spacing:1px;box-shadow:0 0 25px rgba(45,198,83,.35);transition:transform .15s}
.btn-start-race:hover{transform:scale(1.04)}

/* ── GAMEMODE PICKER (lobby) ── */
#gm-picker{width:min(340px,92vw);margin:.6rem 0 .9rem;text-align:center}
.gm-picker-label{font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:#555;margin-bottom:.5rem}
.gm-btns{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-bottom:.55rem}
.gm-btn{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#aaa;padding:.45rem .85rem;border-radius:20px;cursor:pointer;font-size:.82rem;font-weight:600;transition:.18s;white-space:nowrap}
.gm-btn:hover{background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.3)}
.gm-btn.selected{background:rgba(255,107,53,.22);border-color:#ff6b35;color:#ff6b35}
.gm-desc-text{font-size:.8rem;color:#888;line-height:1.5;min-height:2rem;padding:0 .5rem}
.gm-picker-view-txt{font-size:.9rem;font-weight:700;color:#ff6b35;margin:.5rem 0 .8rem;letter-spacing:1px}

/* ── HUD ── */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10}
#hud.hidden{display:none!important}
#hud-lap{position:absolute;top:max(14px,env(safe-area-inset-top,14px));left:50%;transform:translateX(-50%);font-size:.82rem;letter-spacing:3px;text-transform:uppercase;color:#aaa;background:rgba(0,0,0,.55);padding:5px 16px;border-radius:20px;white-space:nowrap}
#hud-lap span{color:#fff;font-weight:700}
#hud-timer{position:absolute;top:calc(max(14px,env(safe-area-inset-top,14px))+34px);left:50%;transform:translateX(-50%);font-size:clamp(1.7rem,5vw,2.8rem);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-1px;text-shadow:0 0 20px rgba(255,107,53,.6)}
#hud-best{position:absolute;top:max(14px,env(safe-area-inset-top,14px));right:max(14px,env(safe-area-inset-right,14px));text-align:right;font-size:.78rem;color:#777;background:rgba(0,0,0,.5);padding:7px 12px;border-radius:10px;line-height:1.7}
#hud-best .val{color:#f7c59f;font-weight:700;font-variant-numeric:tabular-nums}
#speedometer{position:absolute;bottom:max(170px,calc(170px + env(safe-area-inset-bottom,0px)));right:max(18px,env(safe-area-inset-right,18px));text-align:center}
#speed-val{font-size:clamp(2.2rem,7vw,3.8rem);font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
#speed-unit{font-size:.7rem;letter-spacing:2px;color:#777;text-transform:uppercase}
#minimap{position:absolute;bottom:max(170px,calc(170px + env(safe-area-inset-bottom,0px)));left:max(18px,env(safe-area-inset-left,18px));width:clamp(100px,18vw,140px);height:clamp(100px,18vw,140px);border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.15);background:rgba(0,0,0,.5)}
#minimap canvas{width:100%;height:100%}
#wrong-way{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(1.4rem,5vw,2.2rem);font-weight:900;color:#e63946;letter-spacing:4px;text-transform:uppercase;display:none;text-shadow:0 0 30px rgba(230,57,70,.8);animation:blink .45s ease-in-out infinite alternate}
@keyframes blink{from{opacity:1}to{opacity:.4}}
#countdown{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(5rem,20vw,10rem);font-weight:900;text-shadow:0 0 60px rgba(255,107,53,.8);display:none;pointer-events:none;font-variant-numeric:tabular-nums}
#lap-flash{position:absolute;top:40%;left:50%;transform:translateX(-50%);font-size:clamp(1rem,3vw,1.5rem);font-weight:700;letter-spacing:3px;text-transform:uppercase;text-shadow:0 0 30px #ff6b35;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .2s}
#lap-flash.show{opacity:1}

/* ── TOUCH CONTROLS ── */
#touch-controls{position:fixed;bottom:0;left:0;right:0;height:160px;z-index:20;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 16px 20px}
#t-steer-zone{position:relative;width:clamp(160px,42vw,240px);height:130px;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.15);border-radius:22px;pointer-events:all;touch-action:none;display:flex;align-items:center;justify-content:center;overflow:hidden}
#t-steer-ring{width:72px;height:72px;border-radius:50%;border:2px solid rgba(255,255,255,.18);position:absolute;pointer-events:none}
#t-steer-thumb{width:48px;height:48px;border-radius:50%;background:rgba(255,107,53,.45);border:2px solid #ff6b35;position:absolute;pointer-events:none;transition:transform .06s ease-out,background .1s}
#t-steer-thumb.active{background:rgba(255,107,53,.75)}
#t-steer-label{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font-size:.55rem;color:rgba(255,255,255,.25);letter-spacing:3px;text-transform:uppercase;pointer-events:none}
#t-pedals{display:flex;flex-direction:column;gap:10px;pointer-events:all}
.touch-btn{width:clamp(76px,20vw,100px);height:clamp(52px,13vw,62px);border-radius:18px;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.2);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.4rem;line-height:1;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;transition:background .1s,border-color .1s}
.btn-label{font-size:.55rem;letter-spacing:2px;color:rgba(255,255,255,.5);margin-top:2px}
.touch-btn:active,.touch-btn.active{background:rgba(255,107,53,.35);border-color:#ff6b35}
.touch-gas{background:rgba(45,198,83,.18);border-color:rgba(45,198,83,.4)}
.touch-gas:active,.touch-gas.active{background:rgba(45,198,83,.5);border-color:#2dc653}
.touch-brake{background:rgba(230,57,70,.18);border-color:rgba(230,57,70,.4)}
.touch-brake:active,.touch-brake.active{background:rgba(230,57,70,.5);border-color:#e63946}

/* ── FINISH SCREEN ── */
#finish-screen h2{font-size:clamp(1.8rem,6vw,3.2rem);font-weight:900;background:linear-gradient(135deg,#f7c59f,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.2rem;text-align:center}
#finish-time{font-size:clamp(2.4rem,8vw,3.8rem);font-weight:900;font-variant-numeric:tabular-nums;margin-bottom:.2rem}
#position-txt{font-size:.85rem;color:#888;letter-spacing:2px;margin-bottom:1.5rem}
.name-entry{display:flex;gap:.6rem;margin-bottom:1.5rem;flex-wrap:wrap;justify-content:center}
.name-entry input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.7rem 1.1rem;color:#fff;font-size:1rem;outline:none;width:min(200px,55vw);transition:border-color .2s}
.name-entry input:focus{border-color:#ff6b35}
.name-entry input::placeholder{color:#555}
.btn-submit{background:#ff6b35;border:none;color:#fff;font-weight:700;padding:.7rem 1.4rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:background .2s}
.btn-submit:hover{background:#e05a2a}
.btn-submit:disabled{opacity:.5;cursor:default}
.leaderboard{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.9rem 1.3rem;width:min(340px,92vw);margin-bottom:1.4rem;max-height:220px;overflow-y:auto}
.leaderboard h3{font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:#666;margin-bottom:.7rem}
.lb-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.88rem}
.lb-row:last-child{border-bottom:none}
.lb-pos{color:#555;width:26px;font-size:.78rem}
.lb-pos.gold{color:#ffd700;font-weight:700}.lb-pos.silver{color:#c0c0c0;font-weight:700}.lb-pos.bronze{color:#cd7f32;font-weight:700}
.lb-name{flex:1;padding:0 .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-time{color:#f7c59f;font-weight:700;font-variant-numeric:tabular-nums}
.lb-new{color:#ff6b35;font-size:.65rem;margin-left:4px}
.btn-retry{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.7rem 2.2rem;border-radius:50px;cursor:pointer;font-size:.95rem;transition:.2s;margin-top:.5rem}
.btn-retry:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}

/* ── Responsive ── */
@media(max-width:480px){
    .mode-btns{flex-direction:column;align-items:center}
    .btn-mode{width:220px;text-align:center}
    #hud-best{display:none}
}
@media(hover:none){
    #touch-controls{display:flex}
}
@media(hover:hover){
    #touch-controls{display:none}
}

/* ── START LIGHTS ── */
#start-lights{position:fixed;top:12%;left:50%;transform:translateX(-50%);z-index:40;pointer-events:none}
#start-lights.hidden{display:none!important}
.sl-row{display:flex;gap:14px;background:rgba(0,0,0,.75);padding:14px 22px;border-radius:14px;border:1px solid rgba(255,255,255,.1)}
.sl-light{width:44px;height:44px;border-radius:50%;background:#1a1a1a;border:3px solid #333;transition:background .12s,box-shadow .12s}
.sl-light.red{background:#cc0000;box-shadow:0 0 18px #ff0000,0 0 40px rgba(200,0,0,.6)}
.sl-light.green{background:#00cc00;box-shadow:0 0 18px #00ff00,0 0 40px rgba(0,200,0,.6)}

/* ── HUD EXTRAS ── */
#hud-pos{position:absolute;top:calc(max(14px,env(safe-area-inset-top,14px))+34px);left:max(14px,env(safe-area-inset-left,14px));font-size:clamp(1.4rem,4vw,2rem);font-weight:900;letter-spacing:2px;text-shadow:0 0 20px rgba(255,107,53,.7);display:none}
#hud-boost{position:absolute;top:40%;left:50%;transform:translateX(-50%);font-size:clamp(.9rem,2.5vw,1.2rem);font-weight:900;letter-spacing:4px;text-transform:uppercase;color:#ffcc00;text-shadow:0 0 25px #ff8800;opacity:0;pointer-events:none;transition:opacity .2s;white-space:nowrap}
#hud-boost.show{opacity:1}
#hud-pit{position:absolute;top:44%;left:50%;transform:translateX(-50%);font-size:clamp(.85rem,2.2vw,1.1rem);font-weight:900;letter-spacing:3px;text-transform:uppercase;color:#00ff88;text-shadow:0 0 20px #00cc55;opacity:0;pointer-events:none;transition:opacity .2s;white-space:nowrap}
#hud-pit.show{opacity:1}

/* ── NAME LABELS ── */
#name-labels{position:fixed;inset:0;pointer-events:none;z-index:9;overflow:hidden}
.name-label{position:absolute;transform:translateX(-50%);font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:2px 8px;border-radius:6px;background:rgba(0,0,0,.55);white-space:nowrap;pointer-events:none}

/* ── DAMAGE BAR ── */
#hud-damage-bar{position:absolute;bottom:max(170px,calc(170px + env(safe-area-inset-bottom,0px)));right:max(18px,env(safe-area-inset-right,18px));margin-top:8px;width:clamp(60px,12vw,90px);height:6px;background:rgba(255,255,255,.15);border-radius:3px;margin-top:4px;top:auto}
#hud-damage-fill{height:100%;width:100%;background:#2dc653;border-radius:3px;transition:width .3s,background .3s}
/* ── GAP ── */
#hud-gap{position:absolute;top:calc(max(14px,env(safe-area-inset-top,14px))+34px+2.5rem);left:max(14px,env(safe-area-inset-left,14px));font-size:.8rem;font-weight:700;letter-spacing:2px;color:#aaa;background:rgba(0,0,0,.5);padding:3px 10px;border-radius:8px;display:none;white-space:nowrap}
/* ── THEME LABEL ── */
#hud-theme{position:absolute;top:max(14px,env(safe-area-inset-top,14px));left:50%;transform:translateX(-50%);margin-top:2.8rem;font-size:.62rem;letter-spacing:3px;text-transform:uppercase;color:#555;white-space:nowrap;pointer-events:none}
/* ── SPECTATOR BAR ── */
#spectator-bar{position:fixed;top:0;left:0;right:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);z-index:35;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid rgba(255,255,255,.1)}
#spectator-bar.hidden{display:none!important}
#spectator-txt{font-size:.85rem;letter-spacing:2px;color:#f7c59f}
#btn-results{background:#ff6b35;border:none;color:#fff;font-weight:700;padding:.5rem 1.2rem;border-radius:8px;cursor:pointer;font-size:.85rem}

/* ── CAR SELECT ── */
#car-screen{gap:.7rem}
#car-screen h2{font-size:clamp(1.5rem,5vw,2.4rem);font-weight:800;margin-bottom:0}
#car-cards{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center;max-width:580px;width:100%}
.car-card{cursor:pointer;border:2px solid rgba(255,255,255,.12);border-radius:12px;padding:.55rem .45rem .4rem;background:rgba(255,255,255,.04);display:flex;flex-direction:column;align-items:center;gap:.3rem;width:clamp(82px,17vw,100px);transition:border-color .18s,background .18s,transform .12s}
.car-card:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);transform:translateY(-2px)}
.car-card.selected{border-color:#ff6b35;background:rgba(255,107,53,.12);transform:translateY(-2px)}
.car-icon{width:52px;height:80px}
.car-icon svg{width:100%;height:100%;display:block}
.car-card-name{font-size:.58rem;letter-spacing:1.2px;text-transform:uppercase;color:#999;text-align:center;line-height:1.25}
.car-card.selected .car-card-name{color:#ff9060}
#colour-section{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;max-width:320px;margin-top:.3rem}
.colour-row{display:flex;gap:2rem;justify-content:center}
.colour-label{display:flex;flex-direction:column;align-items:center;gap:.3rem;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:#888;cursor:pointer}
.colour-label input[type="color"]{width:54px;height:38px;border:2px solid rgba(255,255,255,.2);border-radius:8px;background:none;cursor:pointer;padding:2px}
.colour-label input[type="color"]:hover{border-color:rgba(255,255,255,.45)}

/* ── MP STEP FLOW ── */
#mp-step-choice{display:flex;flex-direction:column;gap:.9rem;width:min(300px,90vw);margin:0 auto 1rem}
.btn-mp-create{background:linear-gradient(135deg,#ff6b35,#e63946)!important}
.btn-mp-join{background:linear-gradient(135deg,#4895ef,#1d3461)!important}
#mp-step-create,#mp-step-join{display:flex;flex-direction:column;gap:.8rem;width:min(300px,90vw);margin:0 auto}
#mp-step-choice.hidden,#mp-step-create.hidden,#mp-step-join.hidden{display:none!important}
.mp-action-btn{width:100%;margin-top:.2rem}
.mp-back-btn{font-size:.8rem;margin-top:0}

/* ── GAMEPAD INDICATOR ── */
#hud-gamepad{position:fixed;bottom:calc(max(18px,env(safe-area-inset-bottom,18px)) + 110px);left:50%;transform:translateX(-50%);font-size:.72rem;letter-spacing:2px;color:#aaa;background:rgba(0,0,0,.65);padding:4px 14px;border-radius:20px;opacity:0;transition:opacity .4s;pointer-events:none;white-space:nowrap;z-index:31}
#hud-gamepad.show{opacity:1}

/* ── VOTE REMATCH BUTTON ── */
#btn-vote-rematch{background:linear-gradient(135deg,#5a4fcf,#7c6fff);color:#fff;border:none;border-radius:8px;padding:.5rem 1.2rem;font-size:.85rem;font-weight:700;cursor:pointer;letter-spacing:1px;transition:opacity .2s,transform .1s}
#btn-vote-rematch:hover:not(:disabled){transform:scale(1.04)}
#btn-vote-rematch:disabled{opacity:.55;cursor:not-allowed}

/* ── SEED INPUT ── */
#seed-row,#code-row{display:flex;align-items:center;justify-content:center;margin-top:.5rem;width:100%}
.seed-label{display:flex;align-items:center;gap:.6rem;font-size:.82rem;letter-spacing:1px;color:#aaa}
.seed-label span{text-transform:uppercase;font-size:.72rem;letter-spacing:2px;color:#777}
#pick-seed{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:.45rem .8rem;color:#fff;font-size:.95rem;outline:none;width:110px;text-align:center;-moz-appearance:textfield}
#pick-seed::-webkit-outer-spin-button,#pick-seed::-webkit-inner-spin-button{-webkit-appearance:none}
#pick-seed:focus{border-color:#ff6b35}
#pick-code{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:.45rem .8rem;color:#fff;font-size:.95rem;outline:none;width:130px;text-align:center}
#pick-code:focus{border-color:#a855f7}

/* ── ADMIN PANEL ── */
#admin-toggle{position:fixed;top:calc(max(14px,env(safe-area-inset-top,14px)) + 66px);right:max(14px,env(safe-area-inset-right,14px));z-index:50;pointer-events:auto;background:rgba(168,85,247,.25);border:1px solid rgba(168,85,247,.5);color:#fff;font-size:1.1rem;width:38px;height:38px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}
#admin-toggle.hidden{display:none}
#admin-panel{position:fixed;top:calc(max(14px,env(safe-area-inset-top,14px)) + 114px);right:max(14px,env(safe-area-inset-right,14px));z-index:50;pointer-events:auto;background:rgba(10,10,20,.92);border:1px solid rgba(168,85,247,.45);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:160px;backdrop-filter:blur(10px);user-select:none}
#admin-panel.hidden{display:none}
#admin-drag-handle{font-size:.6rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.55);text-align:center;padding:8px;background:rgba(168,85,247,.15);border-radius:8px;cursor:grab;touch-action:none;margin-bottom:4px;border:1px solid rgba(168,85,247,.4);-webkit-user-select:none;user-select:none}
#admin-drag-handle:hover{background:rgba(168,85,247,.28);color:#fff}
#admin-title{font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:rgba(168,85,247,.8);text-align:center;padding-bottom:6px;border-bottom:1px solid rgba(168,85,247,.2);margin-bottom:2px}
.admin-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:.82rem;padding:.5rem .8rem;border-radius:10px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;white-space:nowrap}
.admin-btn:hover,.admin-btn:active{background:rgba(168,85,247,.25);border-color:rgba(168,85,247,.6)}
.admin-btn.active{background:rgba(168,85,247,.35);border-color:#a855f7;color:#d8b4fe}
#admin-fly-btns{display:flex;gap:6px}
#admin-fly-btns.hidden{display:none}
.admin-fly-btn{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:.78rem;padding:.45rem .4rem;border-radius:8px;cursor:pointer;text-align:center;user-select:none;-webkit-user-select:none;touch-action:none}
.admin-fly-btn:active{background:rgba(168,85,247,.4)}
#admin-announce-row{display:flex;gap:5px;margin-top:2px}
#admin-announce-input{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:.4rem .6rem;color:#fff;font-size:.78rem;outline:none;min-width:0;pointer-events:auto;touch-action:auto}
#admin-announce-input:focus{border-color:#a855f7}
.admin-announce-send{background:rgba(168,85,247,.3);border:1px solid rgba(168,85,247,.5);color:#fff;font-size:1rem;width:34px;border-radius:8px;cursor:pointer;flex-shrink:0;pointer-events:auto}
.admin-announce-send:active{background:rgba(168,85,247,.6)}
#admin-announcement{position:fixed;top:18%;left:50%;transform:translateX(-50%);z-index:60;background:rgba(10,10,20,.92);border:2px solid #a855f7;border-radius:16px;padding:14px 24px;font-size:1.1rem;font-weight:700;color:#fff;text-align:center;text-shadow:0 0 16px rgba(168,85,247,.7);pointer-events:none;max-width:80vw;word-break:break-word;backdrop-filter:blur(10px);box-shadow:0 0 40px rgba(168,85,247,.3)}
#admin-announcement.hidden{display:none}

/* ── GAMEMODE HUD ── */
#gm-banner{position:fixed;top:calc(max(14px,env(safe-area-inset-top,14px)) + 90px);left:50%;transform:translateX(-50%);font-size:clamp(.85rem,2.5vw,1.1rem);font-weight:900;letter-spacing:3px;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.65);padding:6px 20px;border-radius:20px;pointer-events:none;white-space:nowrap;opacity:0;transition:opacity .3s;z-index:31}
#gm-banner.show{opacity:1}
#bumper-timer{position:fixed;top:max(14px,env(safe-area-inset-top,14px));left:max(14px,env(safe-area-inset-left,14px));font-size:clamp(1.3rem,4vw,2rem);font-weight:900;font-variant-numeric:tabular-nums;color:#fff;background:rgba(0,0,0,.6);padding:5px 14px;border-radius:12px;pointer-events:none;z-index:31}
#bumper-scores{position:fixed;top:calc(max(14px,env(safe-area-inset-top,14px)) + 3.2rem);left:max(14px,env(safe-area-inset-left,14px));font-size:.78rem;color:#ccc;background:rgba(0,0,0,.55);padding:6px 12px;border-radius:10px;pointer-events:none;z-index:31;min-width:130px}
.bs-row{padding:2px 0;white-space:nowrap}.bs-row b{color:#fff}
.bs-me{color:#ff6b35}.bs-me b{color:#ff6b35}
#elim-timer{position:fixed;bottom:calc(max(18px,env(safe-area-inset-bottom,18px)) + 180px);left:50%;transform:translateX(-50%);font-size:.82rem;font-weight:800;letter-spacing:2px;color:#ffaa00;background:rgba(0,0,0,.6);padding:4px 14px;border-radius:20px;pointer-events:none;white-space:nowrap;z-index:31}
#gm-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(2rem,8vw,4rem);font-weight:900;letter-spacing:-1px;text-align:center;white-space:pre-line;text-shadow:0 0 40px currentColor;background:rgba(0,0,0,.45);pointer-events:none;z-index:45;animation:gmOverlayIn .3s ease-out}
#gm-overlay.hidden{display:none}
@keyframes gmOverlayIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
#cops-role-badge{position:fixed;top:max(14px,env(safe-area-inset-top,14px));left:50%;transform:translateX(-50%);margin-top:calc(34px + 2.2rem);font-size:.88rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:#fff;padding:5px 18px;border-radius:20px;pointer-events:none;white-space:nowrap;z-index:31;border:2px solid rgba(255,255,255,.3);box-shadow:0 0 16px rgba(0,0,0,.5)}

/* ── FINISH SEED ── */
#finish-seed{font-size:.72rem;letter-spacing:3px;text-transform:uppercase;color:#555;margin-bottom:.3rem;cursor:pointer}
#finish-seed:hover{color:#888}

/* ── SLIPSTREAM HUD ── */
#hud-slipstream{position:fixed;top:48%;left:50%;transform:translateX(-50%);font-size:.88rem;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:#22eeff;text-shadow:0 0 18px #00bbff;pointer-events:none;transition:opacity .25s;opacity:0;white-space:nowrap;z-index:31}
#hud-slipstream.active{color:#00ffee;text-shadow:0 0 28px #00ffcc,0 0 8px #fff;animation:slipPulse .4s ease-in-out infinite alternate}
@keyframes slipPulse{from{opacity:.85}to{opacity:1}}

