@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;500;600;700;800;900&family=Space+Mono:wght@400;700&display=swap');
:root{--bg:#080d18;--panel:#0d1523;--line:#233149;--cyan:#4de6ee;--red:#fa5364;--amber:#ffc45b;--ink:#e8f0f4;--muted:#728096}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(ellipse at 50% 35%,#16243a 0,#0b1220 48%,#070b13 100%);color:var(--ink)}body{font-family:'Barlow Condensed',Arial,sans-serif;display:grid;place-items:center;overflow:hidden}.game-shell{width:min(1180px,100vw);padding:16px 22px 12px}.topbar,.bottom-bar{height:48px;display:flex;align-items:center;justify-content:space-between;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.12em}.brand{text-decoration:none;color:var(--ink);font-weight:bold;font-size:15px;letter-spacing:.1em}.brand-mark{color:var(--cyan);font-size:18px;margin-right:8px}.brand-sub{color:#65748a;font-size:9px;margin-left:8px}.top-status{color:#b9c6d4}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#54efad;box-shadow:0 0 10px #54efad;margin-right:8px}.divider{color:#3b4a5e;padding:0 10px}.sound-btn,#restartBtn{border:1px solid #26344a;color:#9db0c2;background:#0c1421;padding:8px 10px;font:inherit;cursor:pointer}.sound-btn span{font-size:9px;margin-left:5px}.arena-wrap{position:relative;width:100%;aspect-ratio:16/9;max-height:calc(100vh - 132px);min-height:360px;overflow:hidden;border:1px solid #27374b;background:#090f1a;box-shadow:0 20px 80px #0008,inset 0 0 0 5px #0a101b}.arena-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #49607955}.arena-wrap canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.arena-scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#fff0 0 3px,#06101a12 4px 5px);mix-blend-mode:multiply}.hud{position:absolute;z-index:2;pointer-events:none;font-family:'Space Mono',monospace}.boss-hud{left:7%;right:7%;top:5%}.hud-label{display:flex;justify-content:space-between;font-size:12px;font-weight:bold;letter-spacing:.15em;text-shadow:0 2px 4px #000}.hud-label span:last-child{color:#ffd5d8}.bar{height:10px;position:relative;background:#161c29;border:1px solid #52607466;overflow:hidden}.bar-fill{height:100%;width:100%;transition:width .2s;background:linear-gradient(90deg,#e93551,#ff7180);box-shadow:0 0 13px #fa536466}.boss-bar{margin-top:6px;height:12px}.boss-bar:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(105deg,transparent 0 9px,#080d1855 10px 12px)}.boss-subline{display:flex;justify-content:space-between;font-size:9px;color:#a5b2c2;margin-top:5px;letter-spacing:.1em}.boss-subline span:last-child{color:#738097}.boss-subline b{color:var(--amber)}.player-hud{left:7%;bottom:6%;width:min(330px,42%)}.player-hud-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.micro-label{font-size:9px;letter-spacing:.15em;color:#b5c4d4}.player-bar{width:220px;height:8px;margin-top:5px}.player-bar .bar-fill{background:linear-gradient(90deg,#13bfc8,#69fff1);box-shadow:0 0 12px #4de6ee66}.lives{color:#4de6ee;letter-spacing:.28em;font-size:13px;white-space:nowrap}.player-hud-bottom{display:flex;justify-content:space-between;font-size:9px;color:#9baabd;margin-top:5px}.dash-label{display:flex;align-items:center;gap:6px}.dash-label b{color:#59eee7}.dash-track{display:inline-block;width:58px;height:4px;background:#1d2c3b}.dash-track i{display:block;width:100%;height:100%;background:var(--cyan)}.overlay{position:absolute;z-index:4;inset:0;display:grid;place-items:center;background:linear-gradient(90deg,#070c17d9,#0b1323b5 55%,#070c17d9);transition:opacity .25s}.overlay.hidden{opacity:0;pointer-events:none}.overlay-card{width:min(470px,82%);text-align:center;padding:22px 28px;background:#0b1322db;border:1px solid #34445b;box-shadow:0 12px 60px #0009;position:relative}.overlay-card:before,.overlay-card:after{content:"";position:absolute;width:24px;height:24px;border-color:var(--cyan);border-style:solid}.overlay-card:before{left:-1px;top:-1px;border-width:2px 0 0 2px}.overlay-card:after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}.overlay-kicker{font:10px 'Space Mono',monospace;letter-spacing:.2em;color:var(--cyan)}h1{font-size:clamp(48px,8vw,84px);line-height:.78;letter-spacing:.02em;margin:18px 0 14px;font-weight:900}h1 em{font-style:normal;color:var(--red)}.overlay-card p{color:#a6b5c7;font-size:17px;margin:0 0 21px}.primary-btn{background:var(--cyan);color:#08111c;border:0;padding:13px 35px;font:800 16px 'Barlow Condensed',sans-serif;letter-spacing:.13em;cursor:pointer;box-shadow:0 0 24px #4de6ee38}.primary-btn span{margin-left:18px}.overlay-foot{font:8px 'Space Mono',monospace;color:#718198;letter-spacing:.08em;margin-top:18px}.overlay-foot i{color:var(--red);font-style:normal;padding:0 5px}.toast{position:absolute;z-index:3;top:32%;left:50%;transform:translate(-50%,-50%);font:700 clamp(24px,4vw,46px) 'Barlow Condensed',sans-serif;color:#ff596b;letter-spacing:.2em;text-shadow:0 0 20px #fa5364;opacity:0;pointer-events:none}.toast.show{animation:toast 1.5s ease-out}@keyframes toast{0%{opacity:0;transform:translate(-50%,-20%)}20%{opacity:1;transform:translate(-50%,-50%)}80%{opacity:1}100%{opacity:0}}.bottom-bar{height:36px;color:#77869b}.control-hint{display:flex;align-items:center;font-size:9px;letter-spacing:.08em}.control-hint kbd{font:9px 'Space Mono',monospace;border:1px solid #354258;background:#101a29;padding:3px 5px;margin-right:3px;color:#d1dbe4}.hint-gap{width:12px}.footer-right{display:flex;align-items:center;gap:18px}.footer-right b{color:#d4e4f0}.mobile-controls{display:none}
@media(max-width:700px){body{overflow:hidden}.game-shell{padding:8px 8px 5px}.topbar{height:34px}.brand{font-size:12px}.brand-sub{display:none}.top-status{font-size:8px}.sound-btn{padding:5px 7px;font-size:9px}.sound-btn span{display:none}.arena-wrap{aspect-ratio:4/5;max-height:calc(100dvh - 94px);min-height:0}.boss-hud{left:5%;right:5%;top:4%}.boss-hud .hud-label{font-size:10px}.boss-subline{font-size:8px}.player-hud{left:5%;bottom:25%;width:70%}.player-bar{width:min(190px,52vw)}.bottom-bar{height:45px}.control-hint{display:none}.footer-right{margin-left:auto}.mobile-controls{display:block;position:absolute;z-index:3;inset:auto 0 0;height:22%;pointer-events:none;padding:9px 13px;display:flex;align-items:center;justify-content:space-between}.dpad,.mobile-actions{pointer-events:auto}.dpad>button,.dpad div button,.mobile-actions button{border:1px solid #77a2bb66;background:#0c1b2ab8;color:#d4f7f7;border-radius:8px;touch-action:none;user-select:none}.dpad>button{display:block;margin:0 auto 5px;width:42px;height:37px}.dpad div{display:flex;gap:5px}.dpad div button{width:42px;height:37px}.mobile-actions{display:flex;align-items:center;gap:9px}.mobile-actions button{border-radius:50%;width:61px;height:61px;font:700 12px 'Space Mono',monospace}.mobile-actions .fire-btn{background:#7c2034b8;border-color:#ff6476;color:#fff}.mobile-actions .dash-btn{width:49px;height:49px;color:var(--cyan);border-color:var(--cyan)}.overlay-card{padding:18px 16px}.overlay-foot{font-size:7px}.footer-right{gap:10px;font-size:9px}#restartBtn{font-size:9px;padding:7px}}
@media(max-height:650px) and (min-width:701px){.game-shell{padding-top:5px}.topbar{height:34px}.bottom-bar{height:28px}.arena-wrap{max-height:calc(100vh - 75px)}}
.slow-readout{display:none;color:#07111b;background:var(--cyan);padding:3px 6px;margin-left:10px;font-size:9px;letter-spacing:.04em}.slow-readout.active{display:inline-block;box-shadow:0 0 12px #4de6ee88}
.ammo-label{color:#ffca71;letter-spacing:.08em}.ammo-label b{color:#fff1cf;font-size:12px}
.aim-pad{pointer-events:auto;display:grid;justify-items:center;gap:4px}.aim-pad>button,.aim-pad div button{border:1px solid #4de6ee88;background:#0c1b2ab8;color:#8ff8ef;border-radius:6px;width:31px;height:27px;touch-action:none;user-select:none}.aim-pad div{display:flex;gap:4px}
.desktop-missile{display:none;position:absolute;z-index:3;right:7%;bottom:17%;padding:11px 18px;border:1px solid #ffbd60;background:#351f17d9;color:#ffe0a5;font:700 13px 'Space Mono',monospace;letter-spacing:.1em;box-shadow:0 0 16px #ffb14c44;cursor:pointer;touch-action:none;user-select:none}.desktop-missile:active{background:#814723;color:#fff}
@media(max-width:700px){.desktop-missile{display:none!important}}
@media(max-width:700px){.mobile-controls{padding:9px 10px}.dpad>button,.dpad div button{width:36px;height:33px}.aim-pad>button,.aim-pad div button{width:26px;height:23px}.mobile-actions{gap:7px}.mobile-actions .fire-btn{width:54px;height:54px}.mobile-actions .dash-btn{width:44px;height:44px}}
.slow-field{position:fixed;z-index:8;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .38s ease,filter .38s ease,backdrop-filter .38s ease;filter:saturate(.5) brightness(.72);background:radial-gradient(ellipse at center,transparent 20%,#58edf00c 48%,#06111b82 100%)}.slow-field:before,.slow-field:after{content:"";position:absolute;inset:8%;border:1px solid #7cfff033;opacity:0;transform:scale(1.08)}.slow-field:before{inset:2%;border-color:#65eeef24;box-shadow:inset 0 0 45px #51e7e622}.slow-mo .slow-field{opacity:1;filter:saturate(.7) brightness(.66);backdrop-filter:saturate(.62) brightness(.73) blur(.45px);box-shadow:inset 0 0 0 1px #89fff044,inset 0 0 90px #2adce51e}.slow-mo .slow-field:after{animation:slowRipple .7s ease-out 1}.slow-mo .slow-field:before{opacity:1;transition:opacity .3s ease}@keyframes slowRipple{0%{opacity:.75;transform:scale(.96);border-color:#a1fff0aa}100%{opacity:0;transform:scale(1.08);border-color:#68edff10}}
.time-btn{border:1px solid #4de6ee88;background:#0d2630;color:#a8fff4;padding:7px 10px;font:700 9px 'Space Mono',monospace;letter-spacing:.06em;cursor:pointer;box-shadow:0 0 12px #4de6ee22}.time-btn.active{background:#1c5960;color:#fff;border-color:#a1fff0;box-shadow:0 0 18px #4de6ee77}.time-btn:disabled{opacity:.62;cursor:default}.mobile-time-btn{display:none}
@media(max-width:700px){.time-btn{display:none}.mobile-time-btn{display:block;position:absolute;z-index:3;right:5%;bottom:25%;width:55px;height:55px;border:1px solid #4de6eeaa;border-radius:50%;background:#0b2833e8;color:#a8fff4;font:700 10px 'Space Mono',monospace;letter-spacing:.02em;box-shadow:0 0 14px #4de6ee3c;touch-action:manipulation}.mobile-time-btn.active{background:#1c5960;color:#fff;border-color:#bafff2;box-shadow:0 0 20px #4de6ee88}.mobile-time-btn:disabled{opacity:.68}}
.guide-btn{display:block;margin:10px auto 0;padding:7px 13px;border:1px solid #41566d;background:#101b2a;color:#b9cad9;font:700 9px 'Space Mono',monospace;letter-spacing:.12em;cursor:pointer}.guide-btn:hover{border-color:var(--cyan);color:#cffffa}.howto-panel{display:none;margin:13px auto 0;padding:11px 13px;border:1px solid #2a4053;background:#09121feF;text-align:left;max-height:36vh;overflow-y:auto}.howto-panel.open{display:block}.howto-title{font:700 9px 'Space Mono',monospace;letter-spacing:.17em;color:var(--cyan);margin-bottom:8px}.howto-list{list-style:none;margin:0;padding:0}.howto-list li{display:grid;grid-template-columns:88px 1fr;gap:9px;padding:6px 0;border-top:1px solid #263347;font:11px/1.35 'Space Mono',monospace;color:#a9b8c8}.howto-list b{color:#ffc45b;font-size:9px;letter-spacing:.04em}.howto-list span{font:12px/1.3 'Barlow Condensed',Arial,sans-serif;color:#c1ccd8}.guide-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media(max-width:700px){.howto-panel{max-height:32vh;padding:9px 10px}.howto-list li{grid-template-columns:75px 1fr;gap:7px;padding:5px 0}.howto-list span{font-size:11px}.overlay-card{max-height:calc(100% - 18px);overflow-y:auto}}
.qte-button{display:none;position:fixed;z-index:10;top:50%;left:50%;transform:translate(-50%,-50%);width:min(400px,86%);padding:18px 16px;border:2px solid #ffcf68;background:#1a1423ed;color:#fff4d8;box-shadow:0 0 30px #ffb94166,inset 0 0 24px #ff405c22;cursor:pointer;touch-action:manipulation;flex-direction:column;align-items:center;gap:6px}.qte-button span{font:900 clamp(28px,5vw,48px)/1 'Barlow Condensed',Arial,sans-serif;letter-spacing:.12em;color:#ffe38c;text-shadow:0 0 14px #ff9d45}.qte-button small{font:10px 'Space Mono',monospace;color:#e3d5c7}.qte-button i{font:700 11px 'Space Mono',monospace;color:#ff7a89;font-style:normal}.qte-button.hit{border-color:#7affd4;background:#102721f0;box-shadow:0 0 32px #4dffb777,inset 0 0 24px #4dffb722}.qte-button.hit span{color:#9bffda;text-shadow:0 0 16px #4dffb7}
body.qte-active .qte-button{display:flex;animation:qtePulse .72s ease-in-out infinite alternate}body.qte-active .arena-wrap{transform-origin:center;animation:qteBend 3s ease-in-out both;filter:saturate(1.15) contrast(1.05)}@keyframes qtePulse{from{box-shadow:0 0 18px #ffb94155,inset 0 0 18px #ff405c18}to{box-shadow:0 0 34px #ffb94199,inset 0 0 30px #ff405c33}}@keyframes qteBend{0%{transform:perspective(900px) rotateX(0) rotateZ(0) skewX(0)}14%{transform:perspective(900px) rotateX(1.2deg) rotateZ(-.45deg) skewX(.25deg)}58%{transform:perspective(900px) rotateX(.8deg) rotateZ(.35deg) skewX(-.2deg)}100%{transform:perspective(900px) rotateX(0) rotateZ(0) skewX(0)}}

body.boss-explosion .arena-wrap{transform-origin:center;animation:bossDeathShake .14s linear infinite}@keyframes bossDeathShake{0%,100%{transform:translate(0,0)}25%{transform:translate(-4px,2px)}50%{transform:translate(4px,-2px)}75%{transform:translate(-2px,-3px)}}


.qte-button{width:auto;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;gap:0}.qte-button small,.qte-button i{display:none}.qte-button.hit{border:0;background:transparent;box-shadow:none}body.qte-active .qte-button{animation:none}.qte-button span{animation:qteTextPulse .72s ease-in-out infinite alternate}@keyframes qteTextPulse{from{text-shadow:0 0 10px #ff9d45}to{text-shadow:0 0 24px #ffb941,0 0 44px #ff405c}}


.qte-button{position:absolute;top:auto;left:auto;right:5%;bottom:8%;transform:none;width:auto;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;gap:0}.qte-button:focus-visible{outline:none}body.qte-active .qte-button{animation:none}@media(max-width:700px){.qte-button{right:5%;bottom:29%}}.game-shell.qte-hit-shake{animation:qteScreenShake .22s steps(2,end)}@keyframes qteScreenShake{0%,100%{transform:translate(0,0)}20%{transform:translate(-7px,2px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-5px,-2px)}80%{transform:translate(4px,1px)}}

