:root{color:#eafff8;--mint:#61ffc3;--amber:#ffab32;--danger:#ff3d42;--panel:#051411e0;--line:#61ffc357;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--stick-x:90px;--stick-y:70vh;background:#06110f;font-family:Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body,#game,#ui{width:100%;height:100dvh;margin:0;position:fixed;inset:0;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 50% 40%,#17362e,#030806 70%)}button,input{font:inherit}button{color:#eafff8;border:1px solid var(--line);letter-spacing:.08em;cursor:pointer;background:linear-gradient(135deg,#1e4e42f0,#05120ff5);min-width:48px;min-height:48px;font-weight:700;box-shadow:0 0 18px #2cffb117,inset 0 0 0 1px #ffffff0a}button:active{filter:brightness(1.25);transform:translateY(1px)}#arena-canvas{width:100%;height:100%;display:block}#ui{pointer-events:none;z-index:2}.fatal{color:#fff;padding:3rem}#menu{pointer-events:auto;padding:calc(20px + var(--safe-t)) calc(20px + var(--safe-r)) calc(20px + var(--safe-b)) calc(20px + var(--safe-l));background:radial-gradient(circle at 50% 45%,#09251f8c,#010504eb);place-items:center;transition:opacity .18s;display:grid;position:absolute;inset:0}.menu-panel{border:1px solid var(--line);clip-path:polygon(0 14px,14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%);background:linear-gradient(145deg,#081b17f2,#030a08f5);width:min(520px,96vw);max-height:94dvh;padding:clamp(22px,4vw,42px);overflow:auto;box-shadow:0 0 70px #21ffae1f}#menu.hidden{opacity:0;visibility:hidden}.eyebrow{color:var(--mint);letter-spacing:.12em;font-size:.76rem}.menu-panel h1{letter-spacing:-.07em;margin:.38em 0 .2em;font:800 clamp(2.8rem,10vw,5.4rem)/.86 Orbitron}.menu-panel h1 em{color:var(--amber);text-shadow:0 0 24px #ffab3259;font-style:normal;display:block}.tagline{color:#b7d8cf;margin:1.4rem 0}.menu-panel>button{width:100%;margin:.3rem 0}#start{color:#06110f;background:linear-gradient(90deg,var(--mint),#b2ffe5);border-color:#c8fff0;font-size:1.02rem}#settings{gap:.65rem;margin-top:1rem;display:grid}#settings label{color:#a8cbc2;grid-template-columns:100px 1fr;align-items:center;font-size:.82rem;display:grid}#settings .check{grid-template-columns:auto 1fr}.menu-panel input[type=range]{accent-color:var(--amber)}#controls-panel{color:#b9d7d0;border-left:2px solid var(--amber);margin-top:1rem;padding:.8rem;font-size:.84rem;line-height:1.6}.credits{color:#8ea8a1;letter-spacing:.08em;text-align:center;margin:1.1rem 0 0;font-size:.8rem}.credits strong{color:var(--amber)}#ios-hint{color:#8ea8a1;font-size:.75rem;display:none}#hud{padding:calc(14px + var(--safe-t)) calc(16px + var(--safe-r)) calc(14px + var(--safe-b)) calc(16px + var(--safe-l));text-shadow:0 2px 5px #000;font-family:Orbitron,sans-serif;display:none;position:absolute;inset:0}.playing#hud{display:block}.hud-vitals,.hud-wave,.hud-weapon,.hud-skills{border-left:2px solid var(--mint);background:linear-gradient(90deg,#030e0cd1,#030e0c26);padding:.55rem .7rem;font-size:.72rem;position:absolute}.hud-vitals{left:calc(16px + var(--safe-l));bottom:calc(14px + var(--safe-b));grid-template-columns:auto auto;gap:.08rem .4rem;display:grid}.hud-vitals .label{color:var(--mint);grid-column:1/-1;font-size:.56rem}.hud-vitals strong{font-size:1.32rem}.hud-vitals span{color:#91b2a9;align-self:center}.hud-wave{top:calc(14px + var(--safe-t));text-align:center;border-left:0;border-bottom:2px solid var(--amber);left:50%;transform:translate(-50%)}.hud-wave span,.hud-wave strong{display:block}.hud-wave span{color:var(--amber)}.hud-weapon{right:calc(16px + var(--safe-r));bottom:calc(14px + var(--safe-b));text-align:right;border-left:0;border-right:2px solid var(--amber)}.hud-weapon span,.hud-weapon strong{display:block}.hud-weapon strong{color:var(--amber);font-size:1.75rem}.hud-skills{left:calc(16px + var(--safe-l));top:calc(14px + var(--safe-t));gap:.7rem;display:flex}.hud-skills span{align-items:center;gap:.25rem;display:flex}.hud-skills i{border:1px solid var(--line);background:linear-gradient(90deg,var(--mint) var(--charge,100%),transparent var(--charge,100%));width:48px;height:6px}#crosshair{width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:"";background:#eafff8;position:absolute;box-shadow:0 0 5px #000}#crosshair:before{width:22px;height:2px;top:10px}#crosshair:after{width:2px;height:22px;left:10px}#hitmarker{opacity:0;color:#fff;font:700 34px/1 sans-serif;transition:opacity 40ms;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}#hitmarker.show{opacity:1}#hurt{opacity:0;transition:opacity .15s;position:absolute;inset:0;box-shadow:inset 0 0 95px 25px #ff141ecc}#hurt.show{opacity:1}#toast{color:var(--amber);opacity:0;background:#091a16;padding:.4rem .8rem;position:absolute;top:22%;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#touch-controls{pointer-events:none;position:absolute;inset:0}#touch-toggle{right:calc(8px + var(--safe-r));top:calc(8px + var(--safe-t));pointer-events:auto;z-index:8;width:54px;height:48px;color:var(--mint);display:none;position:absolute}.touch-actions{display:none}.visible .touch-actions{display:block}.touch-actions button{pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#051814c2;border-radius:50%;width:58px;height:58px;font-size:.67rem;position:absolute}[data-action=fire]{right:calc(22px + var(--safe-r));bottom:calc(78px + var(--safe-b));color:var(--amber);border-color:var(--amber)!important;width:76px!important;height:76px!important}[data-action=jump]{right:calc(100px + var(--safe-r));bottom:calc(38px + var(--safe-b))}[data-action=dash]{right:calc(112px + var(--safe-r));bottom:calc(112px + var(--safe-b))}[data-action=melee]{right:calc(28px + var(--safe-r));bottom:calc(166px + var(--safe-b))}[data-action=skill1]{right:calc(184px + var(--safe-r));bottom:calc(36px + var(--safe-b))}[data-action=skill2]{right:calc(184px + var(--safe-r));bottom:calc(104px + var(--safe-b))}[data-action=weaponNext]{right:calc(104px + var(--safe-r));bottom:calc(182px + var(--safe-b))}[data-action=pause]{right:calc(72px + var(--safe-r));top:calc(8px + var(--safe-t))}.virtual-stick{left:calc(var(--stick-x) - 58px);top:calc(var(--stick-y) - 58px);background:#0514113d;border:1px solid #61ffc373;border-radius:50%;width:116px;height:116px;display:none;position:absolute}.visible .virtual-stick{display:block}#debug{z-index:12;color:#6effc1;pointer-events:none;background:#000b;padding:.35rem .55rem;font:12px monospace;position:absolute;top:8px;left:8px}@media (pointer:coarse),(width<=760px){#touch-toggle,#ios-hint{display:block}.menu-panel{padding:20px}.menu-panel h1{font-size:clamp(2.5rem,15vw,4.2rem)}.hud-wave{top:calc(62px + var(--safe-t))}.hud-skills{top:auto;bottom:calc(100px + var(--safe-b));left:calc(8px + var(--safe-l));transform-origin:0 100%;transform:scale(.85)}.hud-vitals{left:calc(8px + var(--safe-l));bottom:calc(8px + var(--safe-b))}.hud-weapon{right:calc(8px + var(--safe-r));bottom:calc(8px + var(--safe-b))}.hud-wave{padding:.35rem;font-size:.58rem}#crosshair{opacity:.78}}@media (width<=500px) and (orientation:portrait){.touch-actions button{width:52px;height:52px}[data-action=fire]{width:68px!important;height:68px!important}.menu-panel{max-height:88dvh}.hud-skills{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#crosshair.locked{filter:drop-shadow(0 0 6px var(--amber));transform:translate(-50%,-50%)scale(1.25)}#crosshair.locked:before,#crosshair.locked:after{background:var(--amber)}body.aiming #touch-controls.visible:after{content:"";left:calc(var(--aim-x,75vw) - 64px);top:calc(var(--aim-y,60vh) - 64px);pointer-events:none;border:1px dashed #ffab3273;border-radius:50%;width:128px;height:128px;position:absolute}#rotate-hint{display:none}@media (orientation:portrait) and (pointer:coarse){#rotate-hint{left:50%;top:calc(110px + var(--safe-t));color:var(--amber);background:var(--panel);border:1px solid var(--line);pointer-events:none;z-index:6;white-space:nowrap;padding:.3rem .6rem;font-size:.7rem;display:block;position:absolute;transform:translate(-50%)}}#hand{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}#hand .hand-sprite{width:min(calc(var(--w,.5) * 100vw), calc(var(--w,.5) * 150vh));aspect-ratio:var(--ar,1);transform-origin:80% 100%;will-change:transform;opacity:0;transition:opacity .15s;position:absolute;bottom:calc(-1*min(4vw,6vh));right:calc(-1*min(3vw,4vh))}#hand img{filter:drop-shadow(0 0 14px #0000008c);width:100%;height:100%;display:block}#hand .muzzle-flash{aspect-ratio:1;opacity:0;background:radial-gradient(circle,#fff 0 8%,var(--flash,#ffd27a) 22%,#ff8c288c 42%,transparent 68%);mix-blend-mode:screen;border-radius:50%;width:38%;position:absolute;transform:translate(-50%,-50%)}#banner{opacity:0;text-align:center;pointer-events:none;background:radial-gradient(#04100dd1,#04100d00 72%);flex-direction:column;align-items:center;gap:.2rem;padding:.9rem 2.2rem;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:26%;left:50%;transform:translate(-50%,-50%)scale(.92)}#banner.show{opacity:1;transform:translate(-50%,-50%)scale(1)}#banner small{color:var(--amber,#ffb347);letter-spacing:.3em;font-size:.8rem;font-weight:800}#banner strong{letter-spacing:.08em;color:#eafff8;text-shadow:0 0 18px #61ffc38c,0 3px #04100d;font-size:clamp(1.6rem,5vw,3.2rem)}#banner span{color:#9fe9d0;letter-spacing:.16em;font-size:.85rem}#banner.boss strong{color:#ff6a5a;text-shadow:0 0 22px #ff503ccc,0 3px #200}#banner.win strong{font-size:clamp(1.2rem,3.4vw,2.2rem)}#menu.v2{background:0 0;padding:0;display:block}#menu.v2 .m-shade{pointer-events:none;background:linear-gradient(90deg,#020807f0 0%,#020807c7 30%,#02080726 62%,#02080773 100%),radial-gradient(at 70% 110%,#ffab322e,#0000 60%);position:absolute;inset:0}#menu.v2.m-sub .m-shade{background:linear-gradient(90deg,#020807f2 0%,#020807d1 34%,#020807b8 100%)}#menu.v2.paused .m-shade{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#020807c7}.m-side{width:min(400px,40vw);padding:calc(24px + var(--safe-t)) 28px calc(18px + var(--safe-b)) calc(clamp(20px,4vw,56px) + var(--safe-l));flex-direction:column;justify-content:center;gap:clamp(12px,3vh,28px);display:flex;position:absolute;top:0;bottom:0;left:0}.m-brand .eyebrow{color:var(--amber);letter-spacing:.34em;margin:0;font-size:.72rem;font-weight:800}.m-brand h1{letter-spacing:.02em;color:#eafff8;text-shadow:0 0 28px #61ffc359,0 4px #031210;margin:.12em 0 .1em;font:900 clamp(2.6rem,6.2vw,5.4rem)/.86 Bahnschrift,Arial Narrow,Trebuchet MS,sans-serif}.m-brand h1 em{color:var(--amber);text-shadow:0 0 30px #ffab3280,0 4px #2a1600;font-style:normal;display:inline}.m-brand .tagline{color:#a9d6c9;letter-spacing:.16em;text-transform:uppercase;margin:.5rem 0 0;font-size:.8rem}.m-nav{flex-direction:column;gap:4px;display:flex}.m-nav button,.m-actions button,.m-tabs button,.m-seg button{min-height:44px;box-shadow:none;clip-path:none;text-align:left;letter-spacing:.16em;color:#cfe9e1;background:0 0;border:0;padding:.55rem 1rem;font:700 clamp(.9rem,1.4vw,1.05rem)/1 Bahnschrift,Trebuchet MS,sans-serif;transition:color .15s,background .15s,padding .15s;position:relative}.m-nav button:before{content:"";background:var(--mint);width:3px;height:0;box-shadow:0 0 12px var(--mint);transition:height .15s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.m-nav button:hover,.m-nav button:focus-visible{color:#fff;background:linear-gradient(90deg,#61ffc329,#0000);outline:none;padding-left:1.4rem}.m-nav button:hover:before,.m-nav button:focus-visible:before{height:70%}.m-nav .m-primary,.m-actions .m-primary{color:#04120e;background:linear-gradient(90deg,var(--mint),#b8ffe8 70%,transparent);text-shadow:none;font-size:clamp(1rem,1.7vw,1.2rem)}.m-nav .m-primary:hover,.m-nav .m-primary:focus-visible{color:#04120e;background:linear-gradient(90deg,#9fffdc,#e2fff5 75%,#0000)}.m-pause-only{display:none}#menu.paused .m-pause-only{display:block}.m-foot{margin-top:auto}.m-foot .credits{text-align:left;margin:0;font-size:.78rem}.m-meta{color:#6f8f87;letter-spacing:.14em;margin:.25rem 0 0;font-size:.72rem}.m-stage{padding:calc(24px + var(--safe-t)) calc(clamp(16px,4vw,48px) + var(--safe-r)) calc(20px + var(--safe-b)) clamp(8px,2vw,24px);pointer-events:none;align-items:center;display:flex;position:absolute;inset:0 0 0 min(400px,40vw)}.m-screen{pointer-events:auto;background:linear-gradient(160deg,#091e1aeb,#030b09f0);border:1px solid #61ffc338;width:100%;max-height:100%;padding:clamp(16px,2.6vw,30px);animation:.22s ease-out m-in;display:none;overflow:auto;box-shadow:0 20px 70px #00000080,inset 0 1px #ffffff0d}.m-screen.on{display:block}@keyframes m-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.m-screen header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.m-screen h2{letter-spacing:.12em;color:#eafff8;margin:0;font:900 clamp(1.3rem,2.6vw,2rem)/1 Bahnschrift,Trebuchet MS,sans-serif}.m-back{clip-path:none;background:#61ffc30f;border:1px solid #61ffc34d;min-width:40px;min-height:40px;padding:0;font-size:1rem}.m-tabs{border-bottom:1px solid #61ffc333;gap:2px;margin-bottom:1rem;display:flex;overflow-x:auto}.m-tabs button{color:#8fb3aa;white-space:nowrap;padding:.7rem 1rem;font-size:.82rem}.m-tabs button.on{color:var(--mint);box-shadow:inset 0 -2px 0 var(--mint)}.m-pane{gap:.35rem;display:none}.m-pane.on{display:grid}.m-row{color:#d8efe9;letter-spacing:.08em;border-bottom:1px solid #ffffff0d;grid-template-columns:minmax(120px,1fr) 2fr auto;align-items:center;gap:1rem;padding:.6rem .4rem;font-size:.86rem;display:grid}.m-row span small{color:#7a9c94;letter-spacing:.02em;margin-top:.2rem;font-size:.72rem;display:block}.m-row input[type=range]{width:100%;accent-color:var(--mint)}.m-row output{text-align:right;min-width:3.4em;color:var(--amber);font-weight:700}.m-toggle{cursor:pointer;grid-template-columns:1fr auto}.m-toggle input{opacity:0;pointer-events:none;position:absolute}.m-toggle i{background:#21332f;border-radius:12px;width:46px;height:24px;transition:background .2s;position:relative}.m-toggle i:after{content:"";background:#9ab;border-radius:50%;width:18px;height:18px;transition:transform .2s,background .2s;position:absolute;top:3px;left:3px}.m-toggle input:checked+i{background:#61ffc373}.m-toggle input:checked+i:after{background:var(--mint);transform:translate(22px)}.m-toggle input:focus-visible+i{outline:2px solid var(--amber)}.m-seg{border:1px solid #61ffc340;grid-column:2/4;display:flex}.m-seg button{text-align:center;color:#9cbcb4;flex:1;padding:.55rem .4rem;font-size:.78rem}.m-seg button.on{color:#fff;background:#61ffc333}.m-arenas{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.m-arena{clip-path:none;text-align:left;background:linear-gradient(180deg,transparent 30%,#020807eb),var(--img) center/cover;border:1px solid #ffb34773;flex-direction:column;justify-content:flex-end;gap:.25rem;min-height:170px;padding:1rem;transition:transform .15s,box-shadow .15s;display:flex}.m-arena:hover,.m-arena:focus-visible{box-shadow:0 0 0 2px var(--amber),0 12px 30px #ffab3240;outline:none;transform:translateY(-3px)}.m-arena small{color:var(--amber);letter-spacing:.24em;font-size:.7rem}.m-arena strong{letter-spacing:.06em;font:900 1.25rem/1 Bahnschrift,Trebuchet MS,sans-serif}.m-arena span{color:#b8d6ce;letter-spacing:.04em;font-size:.78rem;font-weight:400}.m-arena.locked{filter:grayscale()brightness(.5);cursor:not-allowed}.m-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.m-card{background:linear-gradient(#1c140a,#0b0905);border:2px solid #b8862f;flex-direction:column;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #3a2810,0 8px 22px #0006}.m-card-art{background:radial-gradient(circle at 50% 60%,#ffc86e40,transparent 70%),var(--img) center bottom/contain no-repeat;border-bottom:1px solid #6a4a1a;height:150px}.m-card-body{gap:.2rem;padding:.7rem .8rem .9rem;display:grid}.m-card-body small{color:#c99a44;letter-spacing:.2em;font-size:.66rem}.m-card-body strong{color:#fff1d6;letter-spacing:.04em;font:800 1.02rem/1.1 Bahnschrift,Trebuchet MS,sans-serif}.m-card-body em{color:#9fd8c5;font-size:.76rem;font-style:normal}.m-bars{letter-spacing:.14em;color:#b49a70;grid-template-columns:auto 1fr;align-items:center;gap:.25rem .6rem;margin-top:.4rem;font-size:.62rem;display:grid}.m-bars i{background:linear-gradient(90deg,var(--amber) calc(var(--v)*100%),#ffffff14 0);height:6px}.m-keys{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.m-keys h3{color:var(--amber);letter-spacing:.22em;margin:0 0 .6rem;font-size:.8rem}.m-keys dl{grid-template-columns:auto 1fr;gap:.45rem .8rem;margin:0;font-size:.84rem;display:grid}.m-keys dt{color:#eafff8;letter-spacing:.08em;text-align:center;border:1px solid #61ffc359;border-bottom-width:3px;align-self:start;padding:.18rem .5rem;font-size:.72rem;font-weight:700}.m-keys dd{color:#b9d7d0;align-self:center;margin:0}.m-screen[data-name=end]{text-align:center}.m-screen[data-name=end] .eyebrow{color:var(--amber);letter-spacing:.3em;font-size:.76rem}.m-screen[data-name=end] h2{text-shadow:0 0 24px #61ffc359;margin:.3rem 0 1.2rem;font-size:clamp(1.8rem,4vw,3rem)}.m-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:1.4rem;display:grid}.m-stats div{background:#61ffc30d;border:1px solid #61ffc32e;padding:.8rem .5rem}.m-stats small{color:#7fa69c;letter-spacing:.2em;margin-bottom:.3rem;font-size:.66rem;display:block}.m-stats strong{color:#fff;font:800 clamp(1rem,2vw,1.4rem)/1.1 Bahnschrift,Trebuchet MS,sans-serif}.m-actions{justify-content:center;gap:10px;display:flex}.m-actions button{text-align:center;border:1px solid #61ffc359;min-width:170px}.m-actions .m-primary{background:linear-gradient(90deg,var(--mint),#b8ffe8)}@media (width<=760px),(height<=520px){.m-side{width:min(300px,44vw);padding-left:calc(16px + var(--safe-l));gap:10px}.m-brand h1{font-size:clamp(2rem,7vw,3rem)}.m-brand .tagline{display:none}.m-nav button{min-height:36px;padding:.4rem .7rem;font-size:.8rem}.m-stage{left:min(300px,44vw)}.m-stats{grid-template-columns:repeat(2,1fr)}.m-card-art{height:110px}}@media (width<=560px) and (orientation:portrait){.m-side{width:100%;height:auto;min-height:100%;position:relative}#menu.m-sub .m-side{display:none}.m-stage{left:0}.m-row{grid-template-columns:1fr;gap:.4rem}.m-seg{grid-column:auto}}#ui:has(#menu:not(.hidden)) #touch-controls{display:none}
