:root{--color-void:#050510;--color-night:#0a0a1f;--color-surface:#12122a;--color-surface-alt:#1a1a3e;--color-border:#2a2a5a;--color-cyan:#00e5ff;--color-cyan-dim:#00a0b2;--color-magenta:#ff0080;--color-amber:#ffb300;--color-green:#0f8;--color-white:#e8e8ff;--color-muted:#6a6a9a;--font-display:"Orbitron", monospace;--font-mono:"JetBrains Mono", monospace;--font-body:"Exo 2", sans-serif;--radius-sm:6px;--radius-md:12px;--radius-lg:16px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--color-void);width:100%;height:100%;font-family:var(--font-body);color:var(--color-white);-webkit-user-select:none;user-select:none;overflow:hidden}canvas{display:block}::-webkit-scrollbar{background:var(--color-surface);width:6px}::-webkit-scrollbar-thumb{background:var(--color-cyan-dim);border-radius:3px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes damageFlash{0%{opacity:0}20%{opacity:.6}to{opacity:0}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}@keyframes blipPulse{0%,to{opacity:1;r:4}50%{opacity:.6;r:6}}.hud-topbar{z-index:100;background:linear-gradient(#0a0a1ff2,#0000);justify-content:space-between;align-items:center;height:48px;padding:0 16px;animation:.4s ease-out slideInUp;display:flex;position:fixed;top:0;left:0;right:0}.menu-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-cyan);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12122acc;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.menu-button:hover{border-color:var(--color-cyan);box-shadow:0 0 8px #00e5ff4d}.settings-menu{z-index:200;background:#00000080;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.settings-panel{border:1px solid var(--color-cyan);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0a0a19f2;min-width:280px;padding:0;animation:.3s ease-out slideInUp;box-shadow:0 0 40px #00e5ff26,0 8px 40px #0009}.settings-header{border-bottom:1px solid #00e5ff26;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.settings-title{font-family:var(--font-display);letter-spacing:3px;color:var(--color-cyan);font-size:12px}.settings-close{color:var(--color-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex}.settings-close:hover{color:var(--color-white)}.settings-section{flex-direction:column;gap:6px;padding:12px 18px;display:flex}.settings-label{font-family:var(--font-display);letter-spacing:2px;color:var(--color-muted);font-size:9px}.settings-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-cyan);font-family:var(--font-display);letter-spacing:1px;cursor:pointer;background:#12122acc;outline:none;padding:8px 12px;font-size:11px;transition:all .2s}.settings-select:hover{border-color:var(--color-cyan);box-shadow:0 0 8px #00e5ff4d}.settings-select option{background:var(--color-surface);color:var(--color-white)}.settings-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-amber);font-family:var(--font-display);letter-spacing:2px;cursor:pointer;text-align:left;background:#12122acc;padding:8px 14px;font-size:10px;transition:all .2s}.settings-toggle:hover{border-color:var(--color-amber);box-shadow:0 0 8px #ffb3004d}.settings-toggle-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-muted);font-family:var(--font-display);letter-spacing:2px;cursor:pointer;text-align:center;background:#12122acc;width:80px;padding:8px 14px;font-size:10px;transition:all .2s}.settings-toggle-btn.active{border-color:var(--color-cyan);color:var(--color-cyan);box-shadow:0 0 8px #00e5ff4d}.settings-divider{background:#00e5ff1a;height:1px;margin:4px 0}.settings-section.credits{gap:4px;padding:16px 18px}.credits-text{font-family:var(--font-mono);color:var(--color-white);opacity:.8;font-size:11px}.credits-link{font-family:var(--font-mono);color:var(--color-cyan);opacity:.7;font-size:10px;text-decoration:none;transition:opacity .2s}.credits-link:hover{opacity:1;text-decoration:underline}.hud-right{align-items:center;gap:16px;display:flex}.hud-city-selector{align-items:center;gap:8px;display:flex}.city-select{border:1px solid var(--color-cyan-dim);border-radius:var(--radius-sm);color:var(--color-cyan);font-family:var(--font-display);letter-spacing:1px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12122acc;outline:none;padding:6px 12px;font-size:11px;transition:all .2s}.city-select:hover{border-color:var(--color-cyan);box-shadow:0 0 8px #00e5ff4d}.city-select option{background:var(--color-surface);color:var(--color-white)}.time-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-amber);font-family:var(--font-display);letter-spacing:2px;cursor:pointer;background:#12122acc;padding:6px 14px;font-size:10px;transition:all .2s}.time-toggle:hover{border-color:var(--color-amber);box-shadow:0 0 8px #ffb3004d}.hud-coords{flex-direction:column;align-items:flex-end;display:flex}.coord-label{font-family:var(--font-display);letter-spacing:2px;color:var(--color-muted);font-size:8px}.coord-value{font-family:var(--font-mono);color:var(--color-cyan);letter-spacing:.5px;font-size:11px}.minimap-container{border:1px solid var(--color-cyan);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:90;background:#0a0a19e6;width:180px;animation:.4s ease-out slideInLeft;position:fixed;bottom:16px;left:16px;overflow:hidden;box-shadow:0 0 0 1px #00e5ff1a,0 4px 30px #00000080,inset 0 1px #00e5ff1a}.minimap-container.hud-topright-minimap{inset:290px 16px auto auto}.minimap-header{background:#00e5ff14;border-bottom:1px solid #00e5ff33;padding:6px 12px}.minimap-title{font-family:var(--font-display);letter-spacing:3px;color:var(--color-cyan);font-size:9px}.minimap-view{padding:8px;position:relative}.minimap-view svg{border-radius:4px;display:block}.player-blip{filter:drop-shadow(0 0 4px var(--color-cyan))}.player-ping{animation:2s ease-in-out infinite blipPulse}.minimap-scale{text-align:center;margin-top:4px}.minimap-scale span{font-family:var(--font-mono);color:var(--color-muted);font-size:9px}.health-container{border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:90;background:#0a0a19e0;width:260px;padding:10px 14px;animation:.4s ease-out slideInUp;position:fixed;top:60px;left:16px;box-shadow:0 4px 20px #0006}.health-container.hud-topright{width:220px;top:56px;left:auto;right:16px}.health-label{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.health-segments{gap:4px;display:flex}.health-segment{border-radius:2px;flex:1;height:12px;transition:all .2s}.health-segment.empty{background:#2a2a5a80;border:1px solid #2a2a5acc}.health-segment.filled{border:1px solid #0000}.vehicle-indicator{border:1px solid var(--color-amber);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#0a0a19e0;min-width:180px;padding:12px 16px;animation:.4s ease-out slideInUp;position:fixed;bottom:16px;right:16px;box-shadow:0 0 0 1px #ffb30026,0 0 20px #ffb3001a,0 4px 30px #00000080}.vehicle-name-row{border-bottom:1px solid #ffb30033;margin-bottom:10px;padding-bottom:8px}.vehicle-name{font-family:var(--font-display);letter-spacing:2px;color:var(--color-amber);text-shadow:0 0 10px #ffb30066;font-size:11px}.speedometer{flex-direction:column;gap:6px;display:flex}.speed-gauge-track{background:#141428cc;border:1px solid #ffb30033;border-radius:4px;width:100%;height:8px;position:relative;overflow:hidden}.speed-gauge-fill{background:linear-gradient(90deg, var(--color-amber) 0%, #ff6d00 70%, #ff3d00 100%);border-radius:4px;height:100%;transition:width .1s ease-out;position:relative;box-shadow:0 0 8px #ffb30099}.speed-gauge-fill:after{content:"";background:#ffffff80;width:2px;position:absolute;top:0;bottom:0;right:0;box-shadow:0 0 4px #fffc}.speed-readout{justify-content:center;align-items:baseline;gap:6px;display:flex}.speed-value{font-family:var(--font-display);color:var(--color-amber);text-shadow:0 0 15px #ffb30099;text-align:right;min-width:60px;font-size:28px;font-weight:700;line-height:1;transition:color .15s}.speed-unit{font-family:var(--font-mono);letter-spacing:1px;color:var(--color-amber);opacity:.7;text-transform:uppercase;font-size:10px}.interaction-prompt{border:1px solid var(--color-cyan);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#0a0a19e6;align-items:center;gap:10px;padding:10px 18px;animation:.2s ease-out fadeIn;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #00e5ff33}.interact-key{background:var(--color-cyan);width:28px;height:28px;color:var(--color-void);font-family:var(--font-display);border-radius:4px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;box-shadow:0 2px #0096b4cc}.interact-text{font-family:var(--font-body);color:var(--color-white);letter-spacing:.5px;font-size:13px;font-weight:500}.crosshair{pointer-events:none;z-index:90;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair-dot{background:var(--color-cyan);width:4px;height:4px;box-shadow:0 0 4px var(--color-cyan);border-radius:50%;transition:all .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair-ring{border:1px solid var(--color-cyan);opacity:.5;border-radius:50%;width:20px;height:20px;transition:all .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair.active .crosshair-dot{background:var(--color-amber);box-shadow:0 0 8px var(--color-amber)}.crosshair.active .crosshair-ring{border-color:var(--color-amber);opacity:.8;width:28px;height:28px}.falling-indicator{border:1px solid var(--color-magenta);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#0a0a19d9;align-items:center;gap:8px;padding:8px 16px;animation:.3s ease-out slideInDown;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%);box-shadow:0 0 20px #ff00804d}.falling-icon{color:var(--color-magenta);font-size:14px;animation:.6s ease-in-out infinite bounceDown}.falling-text{font-family:var(--font-display);letter-spacing:3px;color:var(--color-magenta);text-shadow:0 0 10px #ff008080;font-size:11px}@keyframes bounceDown{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes slideInDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.damage-flash{pointer-events:none;z-index:200;background:radial-gradient(#0000 30%,#ff003280 100%);animation:.3s ease-out forwards damageFlash;position:fixed;inset:0}.death-screen{z-index:300;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.death-overlay{background:0 0;animation:1s ease-in forwards deathFadeIn;position:absolute;inset:0}@keyframes deathFadeIn{to{background:#050510f2}}.death-text{text-align:center;animation:.5s ease-out 1s both fadeIn;position:relative}.death-killed{font-family:var(--font-display);color:var(--color-magenta);letter-spacing:8px;text-shadow:0 0 40px #ff008080;font-size:72px;font-weight:900;animation:.3s ease-in-out glitch}.death-sub{font-family:var(--font-body);color:var(--color-muted);letter-spacing:2px;margin-top:12px;font-size:14px}.respawn-text{text-align:center;position:relative}.respawn-label{font-family:var(--font-display);color:var(--color-cyan);letter-spacing:6px;text-shadow:0 0 20px #00e5ff80;font-size:28px;font-weight:700}.respawn-dots span{color:var(--color-cyan);font-size:32px;animation:.6s ease-in-out infinite pulse;display:inline-block}.respawn-dots span:nth-child(2){animation-delay:.2s}.respawn-dots span:nth-child(3){animation-delay:.4s}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-2px,-1px)}80%{transform:translate(2px,1px)}to{transform:translate(0)}}.scanline-overlay{pointer-events:none;z-index:40;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000008 2px 4px);position:fixed;inset:0}
