@import"https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Source+Code+Pro:wght@400;600&family=Source+Sans+3:wght@400;700&display=swap";:root{--void-purple: #7A00FF;--cyber-cyan: #00E5FF;--hot-magenta: #FF00AA;--deep-void: #0A0A0A;--electric-blue: #00A3FF;--shadow-purple: #4A0080;--dim-cyan: #00B8D4;--glitch-white: #FFFFFF;--neon-green: #00FF88;--dark-surface: #0F0F1A}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;background:var(--deep-void);font-family:"Source Sans 3",sans-serif;overflow:hidden;min-height:100vh}#root{display:flex;justify-content:center;align-items:center;min-height:100vh;background:radial-gradient(ellipse at center,#0F0F1A 0%,var(--deep-void) 70%)}.game-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center}.game-viewport{position:relative;width:600px;height:680px}canvas{display:block;border:2px solid var(--void-purple);box-shadow:0 0 30px var(--shadow-purple),0 0 60px #7a00ff4d,inset 0 0 30px #7a00ff0d;background:var(--deep-void)}.ui-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;color:var(--glitch-white)}.ui-overlay button{pointer-events:all}.screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:#0a0a0ae0}.title-text{font-family:Orbitron,sans-serif;font-size:52px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--void-purple);text-shadow:0 0 10px var(--void-purple),0 0 30px var(--void-purple),0 0 60px rgba(122,0,255,.5);animation:title-pulse 3s ease-in-out infinite;line-height:1.1;text-align:center}@keyframes title-pulse{0%,to{text-shadow:0 0 10px var(--void-purple),0 0 30px var(--void-purple),0 0 60px rgba(122,0,255,.5)}50%{text-shadow:0 0 20px var(--cyber-cyan),0 0 40px var(--void-purple),0 0 80px rgba(0,229,255,.3)}}.glitch-text{font-family:Orbitron,sans-serif;font-weight:700;letter-spacing:.2em;text-transform:uppercase;animation:glitch 2s infinite}@keyframes glitch{0%,to{text-shadow:0 0 10px var(--cyber-cyan),0 0 20px var(--cyber-cyan)}25%{text-shadow:-2px 0 10px var(--hot-magenta),2px 0 20px var(--cyber-cyan)}50%{text-shadow:2px 0 10px var(--cyber-cyan),-2px 0 20px var(--hot-magenta)}75%{text-shadow:0 0 10px var(--void-purple),0 0 20px var(--cyber-cyan)}}.tagline{font-family:"Source Sans 3",sans-serif;font-size:13px;letter-spacing:.35em;color:var(--dim-cyan);text-transform:uppercase;margin-top:8px;opacity:.85}.lore-text{font-family:"Source Sans 3",sans-serif;font-size:14px;color:var(--dim-cyan);letter-spacing:.08em;line-height:1.7;text-align:center;max-width:420px;margin-top:24px;opacity:.75;font-style:italic}.neon-button{font-family:Orbitron,sans-serif;font-weight:700;font-size:16px;letter-spacing:.2em;text-transform:uppercase;padding:14px 44px;border:2px solid;background:transparent;cursor:pointer;transition:all .25s;margin-top:32px}.neon-button.purple{color:var(--void-purple);border-color:var(--void-purple);text-shadow:0 0 8px var(--void-purple);box-shadow:0 0 15px var(--shadow-purple),inset 0 0 15px #7a00ff14}.neon-button.purple:hover{background:var(--void-purple);color:var(--deep-void);box-shadow:0 0 30px var(--void-purple)}.neon-button.cyan{color:var(--cyber-cyan);border-color:var(--cyber-cyan);text-shadow:0 0 8px var(--cyber-cyan);box-shadow:0 0 15px var(--cyber-cyan),inset 0 0 15px #00e5ff14}.neon-button.cyan:hover{background:var(--cyber-cyan);color:var(--deep-void);box-shadow:0 0 30px var(--cyber-cyan)}.neon-button.magenta{color:var(--hot-magenta);border-color:var(--hot-magenta);text-shadow:0 0 8px var(--hot-magenta);box-shadow:0 0 15px var(--hot-magenta),inset 0 0 15px #ff00aa14}.neon-button.magenta:hover{background:var(--hot-magenta);color:var(--deep-void);box-shadow:0 0 30px var(--hot-magenta)}.neon-button:focus{outline:none}.hud{position:absolute;top:0;left:0;width:100%;display:flex;justify-content:space-between;padding:14px 20px;pointer-events:none;font-family:Source Code Pro,monospace}.hud-group{display:flex;flex-direction:column}.hud-label{font-size:10px;letter-spacing:.25em;color:var(--dim-cyan);text-transform:uppercase}.hud-value{font-size:22px;color:var(--cyber-cyan);text-shadow:0 0 10px var(--cyber-cyan);margin-top:2px;letter-spacing:.05em}.hud-lives{display:flex;gap:6px;margin-top:4px;align-items:center}.life-pip{width:10px;height:10px;border-radius:50%;background:var(--cyber-cyan);box-shadow:0 0 8px var(--cyber-cyan)}.life-pip.lost{background:transparent;border:1px solid var(--dim-cyan);box-shadow:none;opacity:.3}.score-value{font-family:Source Code Pro,monospace;font-size:48px;color:var(--cyber-cyan);text-shadow:0 0 20px var(--cyber-cyan);letter-spacing:.1em;margin:8px 0}.new-record{font-family:Orbitron,sans-serif;font-size:18px;color:var(--hot-magenta);text-shadow:0 0 15px var(--hot-magenta);letter-spacing:.2em;animation:pulse .6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.leaderboard{margin-top:28px;text-align:center;width:100%;max-width:300px}.leaderboard-title{font-family:Orbitron,sans-serif;font-size:11px;letter-spacing:.3em;color:var(--dim-cyan);text-transform:uppercase;margin-bottom:12px}.leaderboard-table{width:100%;border-collapse:collapse;font-family:Source Code Pro,monospace}.leaderboard-row{font-size:15px;letter-spacing:.08em}.leaderboard-row+.leaderboard-row td{padding-top:6px}.lb-rank{width:28px;color:var(--dim-cyan);font-size:11px;text-align:right;padding-right:12px;vertical-align:middle}.lb-initials{color:var(--cyber-cyan);text-shadow:0 0 8px var(--cyber-cyan);text-align:left;padding-right:16px;font-weight:600;letter-spacing:.2em;vertical-align:middle}.lb-score{color:var(--glitch-white);text-align:right;vertical-align:middle}.rank-1 .lb-initials{color:var(--hot-magenta);text-shadow:0 0 10px var(--hot-magenta)}.rank-1 .lb-score{color:var(--hot-magenta);text-shadow:0 0 8px var(--hot-magenta)}.initials-entry{display:flex;flex-direction:column;align-items:center}.initials-score{font-family:Source Code Pro,monospace;font-size:44px;color:var(--cyber-cyan);text-shadow:0 0 20px var(--cyber-cyan);letter-spacing:.1em;margin:8px 0 4px}.initials-label{font-size:12px;letter-spacing:.25em;color:var(--dim-cyan);text-transform:uppercase;margin-bottom:24px}.initials-chars{display:flex;gap:20px}.initial-slot{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer}.initial-arrow{background:transparent;border:none;color:var(--dim-cyan);font-size:18px;cursor:pointer;padding:4px 10px;line-height:1;transition:color .15s;pointer-events:all;font-family:Orbitron,sans-serif}.initial-arrow:hover{color:var(--cyber-cyan);text-shadow:0 0 8px var(--cyber-cyan)}.initial-char{display:block;width:54px;height:68px;line-height:68px;text-align:center;font-family:Source Code Pro,monospace;font-size:40px;font-weight:600;color:var(--glitch-white);border:2px solid var(--dim-cyan);background:#00b8d40d;transition:border-color .15s,box-shadow .15s}.initial-slot.active .initial-char{color:var(--cyber-cyan);border-color:var(--cyber-cyan);box-shadow:0 0 18px var(--cyber-cyan),inset 0 0 10px #00e5ff1f;text-shadow:0 0 10px var(--cyber-cyan)}.initials-hint{margin-top:20px;font-size:11px;letter-spacing:.12em;color:var(--dim-cyan);opacity:.65;text-transform:uppercase}.wave-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;animation:wave-in .4s ease-out forwards}.wave-number{font-family:Orbitron,sans-serif;font-size:13px;letter-spacing:.4em;color:var(--dim-cyan);text-transform:uppercase}.wave-lore{font-family:"Source Sans 3",sans-serif;font-size:13px;color:var(--dim-cyan);letter-spacing:.06em;font-style:italic;opacity:.7;margin-top:8px;max-width:360px}@keyframes wave-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.touch-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;width:100%;max-width:600px;margin:8px auto 0;user-select:none;-webkit-user-select:none;touch-action:none}.touch-dpad{display:flex;gap:10px}.touch-btn{width:66px;height:66px;border-radius:50%;border:2px solid var(--void-purple);background:#7a00ff14;color:var(--void-purple);font-size:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;box-shadow:0 0 12px #7a00ff4d,inset 0 0 8px #7a00ff0d;text-shadow:0 0 8px var(--void-purple);transition:background .1s}.touch-btn:active{background:#7a00ff4d;box-shadow:0 0 25px #7a00ff99}.touch-fire{width:84px;height:84px;border-color:var(--hot-magenta);background:#ff00aa14;color:var(--hot-magenta);font-family:Orbitron,sans-serif;font-size:13px;font-weight:700;letter-spacing:.12em;box-shadow:0 0 12px #ff00aa4d;text-shadow:0 0 8px var(--hot-magenta)}.touch-fire:active{background:#ff00aa4d;box-shadow:0 0 25px #f0a9}.controls-hint{font-size:12px;letter-spacing:.15em;color:var(--dim-cyan);text-transform:uppercase;opacity:.7;margin-top:16px}.brand-footer{position:absolute;bottom:0;width:100%;text-align:center;padding:8px 0 10px;font-family:"Source Sans 3",sans-serif;font-size:10px;letter-spacing:.25em;color:var(--shadow-purple);text-transform:uppercase;pointer-events:none;opacity:.6}@media(max-width:640px){body{overflow:auto}#root{align-items:flex-start;padding-top:8px}.game-viewport{width:100vw;height:calc(100vw * (800/600));max-height:70vh}.game-viewport canvas{width:100%!important;height:100%!important}.ui-overlay{width:100%;height:100%}.title-text{font-size:32px}.glitch-text{font-size:28px}.score-value{font-size:32px}.neon-button{padding:11px 28px;font-size:13px}canvas{border-width:1px}}@media(max-width:640px)and (orientation:landscape){.touch-controls{position:fixed;bottom:0;left:0;right:0;background:#0a0a0ad9;max-width:100%}}.game-viewport.colorblind canvas{filter:hue-rotate(55deg) contrast(1.2) saturate(1.15)}@media(prefers-reduced-motion:reduce){.title-text,.glitch-text{animation:none}.new-record{animation:none;opacity:1}.wave-banner{animation:none}@keyframes title-pulse{0%,to{text-shadow:0 0 10px var(--void-purple),0 0 30px var(--void-purple),0 0 60px rgba(122,0,255,.5)}}@keyframes glitch{0%,to{text-shadow:0 0 10px var(--cyber-cyan),0 0 20px var(--cyber-cyan)}}@keyframes pulse{0%,to{opacity:1}}@keyframes wave-in{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}}}
