*{margin:0;padding:0;box-sizing:border-box}body{font-family:Courier New,monospace;background:linear-gradient(135deg,#0a0a0a,#1a1a2e);color:#0f0;overflow:hidden;display:flex;justify-content:center;align-items:center;min-height:100vh;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#game-container{position:relative;width:100%;max-width:1200px;height:100vh;display:flex;justify-content:center;align-items:center;padding:120px 28px 24px}#gameCanvas{display:block;background:#000;border:3px solid #00ff00;box-shadow:0 0 20px #00ff004d,0 0 40px #0f03,inset 0 0 20px #00ff001a;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none}#ui-overlay{position:absolute;top:10px;left:10px;right:10px;display:flex;flex-direction:column;align-items:stretch;gap:14px;pointer-events:none;font-size:18px;text-shadow:2px 2px 4px rgba(0,0,0,.8);z-index:10}.hud-row{display:flex;width:100%;pointer-events:none;justify-content:center}.hud-row--top,.hud-row--bottom{justify-content:center}#version-tag{position:absolute;bottom:12px;right:18px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#00ff00a6;text-shadow:0 0 6px rgba(0,255,0,.4);pointer-events:none;z-index:120}.hud-box{background:#000000b3;border:2px solid #00ff00;border-radius:4px;padding:8px 15px;min-height:44px;display:flex;align-items:center;gap:12px}#score-display{display:flex;gap:20px;align-items:center;pointer-events:none}#ui-meta{display:flex;flex-direction:row;align-items:center;gap:14px;justify-content:center;flex-wrap:wrap;width:100%;pointer-events:auto}.powerup-panel{display:flex;flex-direction:row;align-items:center;gap:12px;min-width:0;flex:0 0 auto;flex-wrap:wrap}#shield-display{display:flex;align-items:center;font-size:14px;letter-spacing:1px;text-transform:uppercase}.powerup-list{display:flex;flex-wrap:wrap;gap:6px;min-height:18px;align-items:center;flex:1 1 auto}.powerup-list.empty:before{content:"NO ACTIVE POWER-UPS";font-size:11px;color:#0f09}.powerup-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;font-size:11px;font-weight:700;letter-spacing:1px;border-radius:4px;text-transform:uppercase;background:#0f03;border:2px solid #00ff00;color:#0f0;box-shadow:0 0 10px #00ff0040}.powerup-badge[data-type=double-shot]{background:#4be8ff40;border-color:#4be8ff;color:#c2f6ff}.powerup-badge[data-type=rapid-fire]{background:#ff4aa940;border-color:#ff4aa9;color:#ffd3ec}.powerup-badge[data-type=speed]{background:#7cff6b38;border-color:#7cff6b;color:#e9ffe5}.powerup-badge[data-type=shield]{background:#8c5bff40;border-color:#8c5bff;color:#e5dcff}#wave-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#0009;z-index:50;text-align:center;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px) scale(1.02);transition:opacity .35s ease,transform .45s ease,visibility 0s linear .35s}#wave-overlay:not(.hidden){opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .35s ease,transform .45s ease,visibility 0s}#developer-overlay{display:none!important}#wave-overlay.hidden{display:none}.wave-card{background:#000000d9;border:3px solid #00ff00;border-radius:8px;padding:30px 50px;box-shadow:0 0 30px #0f06}#wave-overlay:not(.hidden) .wave-card{animation:wavePop .45s ease both}.wave-card h2{font-size:42px;margin-bottom:12px;color:#0f0;letter-spacing:4px}.wave-card p{font-size:18px;color:#0d0}.hud-button{pointer-events:auto;font-size:14px;letter-spacing:1px;text-transform:uppercase;margin-top:0;box-shadow:none;transition:background .2s,transform .2s;cursor:pointer}.hud-button:hover{background:#0f03}.hud-button:active{transform:scale(.96)}.hud-button.muted{color:#ff4d4d;border-color:#ff4d4d}.hud-button.active{color:#0f0;border-color:#0f0}.hud-button:focus-visible{outline:2px dashed #00ff00;outline-offset:3px}#touch-controls{position:absolute;bottom:32px;right:24px;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:95}#touch-controls.visible{pointer-events:none;opacity:1;transform:translateY(0)}.touch-button{pointer-events:auto;width:88px;height:88px;border-radius:50%;border:3px solid #00ff00;background:#000000bf;color:#0f0;font-family:Courier New,monospace;font-size:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase;box-shadow:0 0 18px #00ff0059,inset 0 0 12px #00ff0040;transition:transform .1s ease,box-shadow .2s ease,background .2s ease}.touch-button:active,.touch-button.touch-button--pressed{transform:scale(.94);background:#0f03;box-shadow:0 0 26px #00ff008c,inset 0 0 16px #00ff0059}.touch-button:focus-visible{outline:3px dashed #00ff00;outline-offset:6px}.screen-overlay{position:absolute;inset:0;background:#000000e0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;z-index:100;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px) scale(1.02);transition:opacity .45s ease,transform .55s ease,visibility 0s linear .45s;padding:32px 24px;text-align:center;backdrop-filter:blur(6px)}.screen-overlay:not(.hidden){opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .45s ease,transform .55s ease,visibility 0s}#start-screen{gap:16px;text-align:center}#start-screen p{max-width:480px;color:#66ffbf;letter-spacing:1px;opacity:.9}#start-screen button:not(.hud-button){box-shadow:0 0 30px #00ffcc73}#start-screen button:not(.hud-button):hover{box-shadow:0 0 38px #00ffccb3}h1{font-size:48px;color:#0f0;text-shadow:0 0 10px rgba(0,255,0,.8),0 0 20px rgba(0,255,0,.6),0 0 30px rgba(0,255,0,.4);letter-spacing:4px;animation:pulse 2s ease-in-out infinite}.title-glow{font-size:clamp(48px,7vw,68px);letter-spacing:clamp(8px,1vw,12px);color:#9cfffb;text-shadow:0 0 16px rgba(156,255,251,.9),0 0 28px rgba(0,255,204,.7),0 0 40px rgba(0,128,255,.45);animation:titlePulse 3.4s ease-in-out infinite,titleFloat 9s ease-in-out infinite;text-transform:uppercase}@keyframes pulse{0%,to{text-shadow:0 0 10px rgba(0,255,0,.8),0 0 20px rgba(0,255,0,.6),0 0 30px rgba(0,255,0,.4)}50%{text-shadow:0 0 20px rgba(0,255,0,1),0 0 30px rgba(0,255,0,.8),0 0 40px rgba(0,255,0,.6)}}@keyframes titlePulse{0%,to{text-shadow:0 0 16px rgba(156,255,251,.9),0 0 34px rgba(0,255,204,.65),0 0 48px rgba(0,128,255,.4)}50%{text-shadow:0 0 28px rgba(156,255,251,1),0 0 48px rgba(0,255,204,.85),0 0 68px rgba(0,128,255,.55)}}@keyframes titleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes wavePop{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}p{font-size:18px;color:#0d0;margin:5px 0}button:not(.hud-button){font-family:Courier New,monospace;font-size:20px;font-weight:700;color:#000;background:#0f0;border:3px solid #00ff00;padding:15px 40px;cursor:pointer;text-transform:uppercase;letter-spacing:2px;transition:all .2s;margin-top:20px;box-shadow:0 0 20px #00ff0080}button:not(.hud-button):hover{background:#0d0;border-color:#0d0;transform:scale(1.05);box-shadow:0 0 30px #0f0c}button:not(.hud-button):active{transform:scale(.98);box-shadow:0 0 10px #0f09}@media (max-width: 900px){#touch-controls.visible{transform:translateY(10px)}}@media (pointer: coarse){#touch-controls.visible{transform:translateY(0)}}@media (max-width: 768px){h1{font-size:32px}p{font-size:14px}button:not(.hud-button){font-size:16px;padding:12px 30px}#ui-overlay{left:8px;right:8px;top:8px;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;font-size:13px}.hud-box{padding:6px 10px;min-height:36px;font-size:12px}.hud-row{width:100%}.hud-row--top,.hud-row--bottom{justify-content:center}#score-display{flex-direction:row;gap:16px;justify-content:center;width:100%}#ui-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;width:100%;align-items:stretch;justify-content:stretch}#wave-display,#lives-display{text-align:center;justify-content:center}#powerup-panel,#soundToggle{grid-column:1 / -1;width:100%;justify-content:center}.powerup-panel{flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}#shield-display{font-size:12px}.powerup-list{justify-content:center;flex-wrap:wrap}.wave-card{padding:20px 30px}.wave-card h2{font-size:32px}.wave-card p{font-size:16px}.hud-button{font-size:12px;padding:5px 10px}#version-tag{font-size:10px;right:12px;bottom:130px}#touch-controls,.touch-button{display:none}#game-container{padding:80px 16px 140px}.mobile-controls{height:110px}.control-label{font-size:16px}}@media (max-width: 480px){h1{font-size:24px}p{font-size:12px}button:not(.hud-button){font-size:14px;padding:10px 20px}#ui-overlay{left:8px;right:8px;gap:6px;font-size:11px}.hud-box{padding:5px 8px;min-height:32px;font-size:11px}#ui-meta{grid-gap:6px}.hud-button{font-size:11px;padding:4px 8px}#version-tag{font-size:9px;right:10px;bottom:120px}.wave-card{padding:16px 24px}.wave-card h2{font-size:26px}.wave-card p{font-size:14px}#game-container{padding:70px 12px 130px}.mobile-controls{height:100px;gap:6px;padding:6px}.control-label{font-size:14px}}@media (max-width: 420px){#game-container{padding:65px 10px 120px}#ui-overlay{gap:6px;font-size:10px}.hud-box{min-height:30px;padding:4px 8px;gap:6px}#score-display{gap:12px}#score-display span span{font-size:14px}#ui-meta{grid-gap:5px}.mobile-controls{height:90px;padding:5px;gap:5px}.control-label{font-size:11px;letter-spacing:1px}}@media (max-width: 360px){#game-container{padding:60px 8px 110px}#ui-overlay{font-size:9px}#score-display span{font-size:10px}#score-display span span{font-size:13px}#version-tag{display:none}.hud-box{min-height:28px;padding:3px 6px}.mobile-controls{height:80px;padding:4px;gap:4px}.control-label{font-size:10px;letter-spacing:.5px}}*{-webkit-tap-highlight-color:transparent}.update-notification{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(calc(100% + 48px));background:#000000eb;border:2px solid #00ffcc;border-radius:8px;padding:16px 24px;display:flex;align-items:center;gap:16px;z-index:150;box-shadow:0 4px 20px #0fc6,0 0 40px #0fc3;transition:transform .4s cubic-bezier(.68,-.55,.265,1.55),opacity .3s ease;opacity:0;pointer-events:none}.update-notification:not(.hidden){transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.update-notification p{color:#0fc;font-size:16px;margin:0;letter-spacing:1px;text-shadow:0 0 8px rgba(0,255,204,.6)}.update-notification button{font-family:Courier New,monospace;font-size:14px;font-weight:700;color:#000;background:#0fc;border:2px solid #00ffcc;padding:8px 20px;cursor:pointer;text-transform:uppercase;letter-spacing:1.5px;border-radius:4px;transition:all .2s;box-shadow:0 0 12px #00ffcc80}.update-notification button:hover{background:#0da;border-color:#0da;transform:scale(1.05);box-shadow:0 0 20px #0fcc}.update-notification button:active{transform:scale(.98)}@media (max-width: 600px){.update-notification{bottom:16px;padding:12px 18px;gap:12px;max-width:calc(100% - 32px)}.update-notification p{font-size:14px}.update-notification button{font-size:12px;padding:6px 16px}}.dev-panel{position:fixed;top:0;right:0;width:420px;height:100vh;background:#000;border-left:2px solid #00ff00;color:#0f0;font-family:Courier New,monospace;font-size:13px;z-index:999;display:flex;flex-direction:column;overflow:hidden;box-shadow:-4px 0 20px #00ff004d;transition:transform .3s ease}.dev-panel.hidden{transform:translate(100%)}.dev-panel-header{background:transparent;color:#0f0;padding:12px 16px;font-weight:700;font-size:12px;letter-spacing:3px;border-bottom:1px solid #00ff00;text-align:center;text-shadow:0 0 10px rgba(0,255,0,.8)}.dev-panel-section{border-bottom:1px solid #002200;flex-shrink:0}.dev-panel-section.console-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.dev-panel-title{color:#0f0;font-size:10px;font-weight:700;letter-spacing:1.5px;padding:14px;text-transform:uppercase;text-shadow:0 0 8px rgba(0,255,0,.6);cursor:pointer;user-select:none;transition:background .2s}.dev-panel-title:hover{background:#00ff0014}.dev-panel-title:before{content:"▾";display:inline-block;margin-right:6px;transition:transform .2s}.dev-panel-section.collapsed .dev-panel-title:before{transform:rotate(-90deg)}.dev-panel-content{padding:0 14px 14px;overflow:hidden;max-height:1000px;transition:max-height .3s ease,padding .3s ease}.dev-panel-section.collapsed .dev-panel-content{max-height:0;padding-top:0;padding-bottom:0}.dev-speed-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}.dev-speed-btn{background:#00ff000d;border:1px solid rgba(0,255,0,.3);color:#0f0;padding:8px 4px;font-family:Courier New,monospace;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s;text-shadow:0 0 5px rgba(0,255,0,.5)}.dev-speed-btn:hover{background:#00ff0026;border-color:#0f0;box-shadow:0 0 10px #0f06}.dev-speed-btn.active{background:#00ff0040;border-color:#0f0;box-shadow:0 0 15px #0f09,inset 0 0 10px #0f03}.dev-speed-custom{display:flex;align-items:center;justify-content:center;gap:10px}.dev-speed-adjust{background:#00ff000d;border:1px solid rgba(0,255,0,.3);color:#0f0;padding:6px 14px;font-family:Courier New,monospace;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;min-width:40px}.dev-speed-adjust:hover{background:#00ff0026;border-color:#0f0;box-shadow:0 0 10px #0f06}.dev-speed-display{font-size:18px;font-weight:700;color:#0ff;min-width:80px;text-align:center;text-shadow:0 0 10px rgba(0,255,255,.8)}.dev-level-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}.dev-level-btn{background:#00ff000d;border:1px solid rgba(0,255,0,.3);color:#0f0;padding:8px 4px;font-family:Courier New,monospace;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s;text-shadow:0 0 5px rgba(0,255,0,.5)}.dev-level-btn:hover{background:#00ff0026;border-color:#0f0;box-shadow:0 0 10px #0f06}.dev-level-custom{display:flex;align-items:center;justify-content:center;gap:10px}.dev-level-adjust{background:#00ff000d;border:1px solid rgba(0,255,0,.3);color:#0f0;padding:6px 12px;font-family:Courier New,monospace;font-size:14px;cursor:pointer;transition:all .2s;min-width:40px}.dev-level-adjust:hover{background:#00ff0026;border-color:#0f0;box-shadow:0 0 10px #0f06}.dev-level-display{font-size:16px;font-weight:700;color:#0ff;min-width:120px;text-align:center;text-shadow:0 0 10px rgba(0,255,255,.8);letter-spacing:1px}.dev-speed-controls,.dev-level-controls{display:none}.dev-speed-controls input[type=range]{width:100%;height:6px;background:#1a1a1a;border:1px solid #00ff00;border-radius:3px;outline:none;cursor:pointer}.dev-speed-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#0f0;border-radius:50%;cursor:pointer;box-shadow:0 0 8px #0f09}.dev-speed-controls input[type=range]::-webkit-slider-thumb:hover{background:#0ff;box-shadow:0 0 12px #0ffc}.dev-speed-controls input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#0f0;border:none;border-radius:50%;cursor:pointer;box-shadow:0 0 8px #0f09}.dev-speed-controls input[type=range]::-moz-range-thumb:hover{background:#0ff;box-shadow:0 0 12px #0ffc}.dev-speed-input-group{display:flex;align-items:center;gap:8px;background:#0a0a0a;border:1px solid #00ff00;border-radius:4px;padding:8px 12px}.dev-speed-input-group input[type=number]{flex:1;background:transparent;border:none;color:#0ff;font-family:Courier New,monospace;font-size:16px;font-weight:700;outline:none;text-align:right;width:80px}.dev-speed-input-group input[type=number]::-webkit-inner-spin-button,.dev-speed-input-group input[type=number]::-webkit-outer-spin-button{opacity:1;height:24px}.dev-speed-unit{color:#0f0;font-weight:700;font-size:14px}.dev-level-controls{display:flex;flex-direction:column;gap:8px}.dev-level-input-group{display:flex;align-items:center;gap:8px;background:#0a0a0a;border:1px solid #00ff00;border-radius:4px;padding:8px 12px}.dev-level-label{font-family:Courier New,monospace;font-size:11px;color:#0f0;white-space:nowrap}#levelInput{flex:1;background:transparent;border:none;color:#0ff;font-family:Courier New,monospace;font-size:16px;font-weight:700;outline:none;text-align:center;width:60px}#levelInput::-webkit-inner-spin-button,#levelInput::-webkit-outer-spin-button{opacity:1;height:24px}.dev-level-jump-btn{background:#0f03;border:1px solid #00ff00;color:#0f0;padding:6px 16px;font-family:Courier New,monospace;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;border-radius:4px}.dev-level-jump-btn:hover{background:#00ff004d;box-shadow:0 0 8px #00ff0080}.dev-level-jump-btn:active{background:#0f06;transform:scale(.95)}.dev-log-filters{display:flex;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #002200;flex-wrap:wrap}.dev-log-filter-item{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;color:#0f0;user-select:none}.dev-log-filter-item input[type=checkbox]{cursor:pointer;width:12px;height:12px;accent-color:#00ff00}.dev-log-filter-item span{opacity:.6;transition:opacity .2s}.dev-log-filter-item input:checked+span{opacity:1;font-weight:700}.dev-stats{display:flex;flex-direction:column;gap:8px}.dev-stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #001100}.dev-stat-row:last-child{border-bottom:none}.dev-stat-label{color:#0f0;opacity:.7;font-size:12px}.dev-stat-value{color:#0ff;font-weight:700;font-size:13px;text-align:right}.dev-console{background:#0a0a0a;border:1px solid #00ff00;border-radius:4px;padding:12px;flex:1;min-height:150px;max-height:400px;overflow-y:auto;overflow-x:hidden;font-size:11px;line-height:1.6}.dev-console-line{color:#0f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}.dev-console-line.error{color:red}.dev-console-line.warn{color:#ff0}.dev-console-line.info{color:#0ff}.dev-console-line.decision{color:#0f0;opacity:.6}.dev-console::-webkit-scrollbar{width:8px}.dev-console::-webkit-scrollbar-track{background:#000}.dev-console::-webkit-scrollbar-thumb{background:#0f0;border-radius:4px}.dev-console::-webkit-scrollbar-thumb:hover{background:#0ff}body.dev-mode-active #game-container{width:calc(100vw - 420px);margin-left:0;margin-right:auto;transition:width .3s ease}body.dev-mode-active #developer-overlay{display:none}.mobile-controls{position:absolute;bottom:0;left:0;right:0;height:120px;display:flex;gap:12px;padding:12px;background:#000000e6;border-top:2px solid #00ff00;z-index:90;pointer-events:auto;opacity:0;transform:translateY(100%);transition:opacity .3s ease,transform .3s ease}.mobile-controls:not(.hidden){opacity:1;transform:translateY(0)}.mobile-control-zone{flex:1;display:flex;align-items:center;justify-content:center;background:#00ff0014;border:2px solid rgba(0,255,0,.4);border-radius:8px;cursor:pointer;user-select:none;transition:all .1s ease;touch-action:none}.mobile-control-zone:active,.mobile-control-zone.active{background:#00ff0040;border-color:#0f0;box-shadow:0 0 20px #0f09,inset 0 0 20px #00ff004d;transform:scale(.96)}.control-label{font-family:Courier New,monospace;font-size:18px;font-weight:700;color:#0f0;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 10px rgba(0,255,0,.8);pointer-events:none}@media (hover: none) and (pointer: coarse){.mobile-controls{display:flex}}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;display:flex;justify-content:center;align-items:center;font-size:24px;color:#0f0;z-index:1000}
