:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--pixel-ink:#f7fff4;--pixel-muted:#eeffe8ad;--pixel-green:#7cff6b;--pixel-cyan:#62f8ff;--pixel-red:#ff4d6d;--pixel-purple:#9b6dff;--pixel-dark:#050409;background:var(--pixel-dark);font-family:Avenir Next,Trebuchet MS,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:#050409;width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit}[hidden]{display:none!important}.eightbit-stage{isolation:isolate;min-height:100dvh;color:var(--pixel-ink);touch-action:manipulation;background:radial-gradient(circle at 50% 42%,#62f8ff29,#0000 34rem),linear-gradient(160deg,#040307 0%,#0a0715 48%,#020205 100%);position:fixed;inset:0;overflow:hidden}.intro-video{z-index:1;object-fit:cover;background:#000;width:100%;height:100%;transition:opacity .7s,filter .9s,transform 1.1s;position:absolute;inset:0;transform:scale(1.002)}.eightbit-stage[data-state=start] .intro-video,.eightbit-stage[data-state=game-pending] .intro-video{opacity:.26;filter:blur(8px)saturate(.72)contrast(1.18);transform:scale(1.035)}.eightbit-stage[data-state=lore] .intro-video,.eightbit-stage[data-state=game] .intro-video{opacity:0;filter:blur(12px)saturate(.55);transform:scale(1.05)}.intro-vignette,.intro-scanlines{z-index:2;pointer-events:none;position:absolute;inset:0}.intro-vignette{background:radial-gradient(circle,#0000 0 46%,#02020547 72%,#000000c7 100%),linear-gradient(#00000052,#0000 24% 70%,#00000080)}.intro-scanlines{opacity:.16;mix-blend-mode:screen;background:linear-gradient(#ffffff38 1px,#0000 1px) 0 0/100% 4px,linear-gradient(90deg,#7cff6b1f 1px,#0000 1px) 0 0/6px 100%;animation:.85s steps(7,end) infinite scan-drift}.intro-loading,.intro-play,.intro-sound,.start-card,.game-hud,.control-button{text-transform:uppercase;letter-spacing:.12em}.intro-loading{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0406086b;border:1px solid #7cff6b47;gap:.32rem;padding:1rem 1.1rem;display:grid;position:absolute;bottom:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem);box-shadow:0 0 0 2px #00000052,0 0 24px #62f8ff1f}.intro-loading strong{color:var(--pixel-ink);text-shadow:2px 0 var(--pixel-red), -2px 0 var(--pixel-cyan);font-size:clamp(.92rem,2vw,1.12rem)}.intro-loading small,.start-card small,.start-copy{color:var(--pixel-muted)}.pixel-kicker{color:var(--pixel-green);font-size:.68rem;font-weight:800}.intro-sound,.intro-play,.start-button{color:var(--pixel-ink);cursor:pointer;border:0}.intro-sound{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05040970;border:1px solid #f7fff42e;align-items:center;gap:.55rem;min-height:2.75rem;padding:.75rem 1rem;display:inline-flex;position:absolute;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);box-shadow:inset 0 0 0 1px #7cff6b0f,0 0 22px #00000038}.intro-sound span{background:var(--pixel-red);width:.6rem;height:.6rem;box-shadow:0 0 12px}.intro-sound[aria-pressed=true] span{background:var(--pixel-green)}.intro-play{z-index:6;background:var(--pixel-green);color:#081008;padding:1rem 1.3rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:8px 8px #111,0 0 34px #7cff6b57}.start-screen{z-index:4;opacity:0;pointer-events:none;place-items:center;padding:clamp(1rem,4vw,3rem);transition:opacity .7s;display:grid;position:absolute;inset:0}.eightbit-stage[data-state=start] .start-screen,.eightbit-stage[data-state=game-pending] .start-screen{opacity:1;pointer-events:auto}.start-screen:before{z-index:-1;content:"";background:radial-gradient(circle at 50% 38%,#7cff6b24,#0000 20rem),linear-gradient(#05040914,#050409bd);position:absolute;inset:0}.start-card{text-align:center;width:min(92vw,580px);min-height:clamp(22rem,54vh,28.5rem);image-rendering:pixelated;background:#050409ad;border:2px solid #f7fff4db;align-content:center;justify-items:center;gap:clamp(1.4rem,3.2vw,2.4rem);padding:clamp(2.4rem,6vw,4.2rem) clamp(1.8rem,5vw,3.5rem);transition:transform .72s cubic-bezier(.19,1,.22,1);display:grid;transform:translateY(12px)scale(.98);box-shadow:0 0 0 6px #050409b8,0 0 0 8px #7cff6b9e,18px 18px #0000007a,0 0 72px #62f8ff33}.eightbit-stage[data-state=start] .start-card,.eightbit-stage[data-state=game-pending] .start-card{transform:translateY(0)scale(1)}.start-card h1{letter-spacing:-.08em;text-transform:none;text-shadow:4px 0 var(--pixel-cyan), -4px 0 var(--pixel-red), 0 8px 0 #000000b8;margin:0;font-size:clamp(2.7rem,12vw,7rem);line-height:.82}.start-copy{margin:0;font-size:clamp(.8rem,2.4vw,1rem);font-weight:800}.start-legend{visibility:hidden}.fight-result{z-index:8;background:linear-gradient(#0504092e,#050409c7);place-items:center;padding:clamp(1rem,4vw,3rem);display:grid;position:absolute;inset:0}.fight-result[hidden]{display:none}.game-screen[data-flow=gameover] .game-controls,.game-screen[data-flow=victory] .game-controls,.game-screen[data-flow=complete] .game-controls{visibility:hidden;pointer-events:none}.fight-result__card{text-align:center;background:#050409c7;border:2px solid #f7fff4db;justify-items:center;gap:.85rem;width:min(92vw,520px);padding:clamp(1.4rem,4vw,2.6rem);display:grid;box-shadow:0 0 0 6px #050409b8,0 0 0 8px #7cff6b9e,14px 14px #0000007a,0 0 56px #62f8ff2e}.fight-result__card h2{letter-spacing:-.06em;text-shadow:3px 0 var(--pixel-cyan), -3px 0 var(--pixel-red), 0 6px 0 #000000b8;margin:0;font-size:clamp(2.2rem,8vw,4.6rem);line-height:.84}.fight-result[data-kind=gameover] .fight-result__card{box-shadow:0 0 0 6px #050409b8,0 0 0 8px #ff4d6db3,14px 14px #0000007a,0 0 56px #ff4d6d33}.fight-result__actions{gap:.7rem;width:min(76vw,280px);margin-top:.4rem;display:grid}.fight-result__ghost{color:var(--pixel-ink);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #f7fff447;min-height:2.6rem;font-weight:850}.fight-result__ghost:hover,.fight-result__ghost:focus-visible{background:#f7fff414;outline:0}.linear-dialog{z-index:5;color:#f7fff4;text-align:left;background:#050409b8;border:1px solid #f7fff433;gap:.28rem;width:min(36rem,100vw - 2rem);padding:.75rem .9rem;display:grid;position:absolute;bottom:clamp(7.2rem,16vw,9.5rem);right:50%;transform:translate(50%);box-shadow:6px 6px #00000047}.linear-dialog[hidden]{display:none}.linear-dialog span{color:var(--pixel-green);letter-spacing:.16em;text-transform:uppercase;font-size:.62rem;font-weight:900}.linear-dialog strong{letter-spacing:.02em;font-size:clamp(.92rem,2vw,1.15rem);font-weight:800}.fight-meta{gap:.12rem;display:grid}.fight-meta span{letter-spacing:.16em;text-transform:uppercase}.start-button{background:var(--pixel-ink);color:#050409;min-width:min(76vw,300px);box-shadow:8px 8px 0 var(--pixel-green);padding:1rem 1.4rem;font-weight:950;transition:transform .16s,box-shadow .16s,background .16s;position:relative}.start-button:hover,.start-button:focus-visible{background:var(--pixel-green);box-shadow:10px 10px 0 var(--pixel-purple);outline:0;transform:translate(-2px,-2px)}.start-button:active{box-shadow:4px 4px 0 var(--pixel-purple);transform:translate(3px,3px)}.start-soon{min-width:min(76vw,300px);color:var(--pixel-green);letter-spacing:.18em;text-transform:uppercase;text-shadow:2px 0 var(--pixel-cyan), -2px 0 var(--pixel-red);pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;padding:1rem 1.4rem;font-weight:950;animation:1.8s steps(2,end) infinite soon-blink}@keyframes soon-blink{50%{opacity:.42}}.lore-screen{z-index:7;background:#000;position:absolute;inset:0;overflow:hidden}.lore-video{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}.lore-screen:after{content:"";pointer-events:none;opacity:.34;background:radial-gradient(circle,#0000 0 56%,#0000007a 100%) 0 0/100% 100%,linear-gradient(#ffffff21 1px,#0000 1px) 0 0/100% 4px;position:absolute;inset:0}.lore-overlay,.lore-skip{z-index:2;text-transform:uppercase;letter-spacing:.12em;position:absolute}.lore-overlay{color:#f7fff4;text-shadow:0 2px #0000008c,0 0 18px #62f8ff38;gap:.28rem;display:grid;bottom:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem)}.lore-overlay span{color:#7cff6bc7;font-size:clamp(.62rem,1.6vw,.78rem);font-weight:900}.lore-overlay strong{font-size:clamp(1rem,3vw,1.65rem);font-weight:950}.lore-skip{color:#f7fff4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#03040894;border:1px solid #f7fff46b;padding:.78rem 1rem;font-size:clamp(.64rem,1.5vw,.78rem);font-weight:950;bottom:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);box-shadow:5px 5px #9b6dffbf}.lore-skip:hover,.lore-skip:focus-visible{color:#050409;background:#7cff6be0;outline:0;transform:translate(-2px,-2px);box-shadow:7px 7px #9b6dffd1}.game-screen{--stage-image:none;--stage-overlay-opacity:.34;--camera-world-x:0px;--camera-world-y:0px;--camera-shake-x:0px;--camera-shake-y:0px;--camera-zoom:1;--furious-evolution-opacity:0;z-index:6;opacity:0;pointer-events:none;background:#050409;transition:opacity .56s;position:absolute;inset:0;overflow:hidden}.game-screen:not(.has-stage-backdrop){background:radial-gradient(circle at 52% 70%,#ffffffb8,#0000 22rem),linear-gradient(#7fd3ff 0%,#b7eaff 54%,#eaf8ff 100%)}.eightbit-stage[data-state=game] .game-screen,.game-screen.is-booted{opacity:1;pointer-events:auto}.stage-backdrop{z-index:0;pointer-events:none;transform:translate3d(var(--camera-world-x), var(--camera-world-y), 0) scale(var(--camera-zoom));transform-origin:0 0;will-change:transform;background:#050409;position:absolute;inset:0;overflow:hidden}.stage-backdrop__layer{--stage-layer-x:0px;--stage-layer-y:0px;--stage-layer-scale-x:1;--stage-layer-scale-y:1;content:"";opacity:0;pointer-events:none;transform:translate3d(var(--stage-layer-x), var(--stage-layer-y), 0) scale(var(--stage-layer-scale-x), var(--stage-layer-scale-y));transform-origin:50%;will-change:opacity, filter, transform;background-color:#050409;background-image:none;background-position:50%;background-size:cover;transition:opacity 1.5s cubic-bezier(.22,1,.36,1),filter 1.5s cubic-bezier(.22,1,.36,1),transform .12s;position:absolute;inset:0}.stage-backdrop__layer--base{opacity:0;transition:opacity .98s cubic-bezier(.22,1,.36,1),filter 1.5s cubic-bezier(.22,1,.36,1),transform .12s}.game-screen.has-stage-backdrop .stage-backdrop__layer--base.is-backdrop-anchor,.game-screen.has-stage-backdrop .stage-backdrop__layer--base.is-fading-in{opacity:1}.stage-backdrop__layer--furious{filter:saturate(1.04)contrast(1.04)}.stage-backdrop__layer--furious-final{filter:saturate(1.12)contrast(1.08);opacity:0;transition:filter 1.5s cubic-bezier(.22,1,.36,1),transform .12s}.game-screen[data-stage-phase=furious] .stage-backdrop__layer--furious{opacity:1}.game-screen[data-stage-phase=furious] .stage-backdrop__layer--furious-final{opacity:var(--furious-evolution-opacity)}.game-screen:before{z-index:2;content:"";opacity:var(--stage-overlay-opacity);pointer-events:none;background:linear-gradient(#124b6e1f 1px,#0000 1px) 0 0/100% 3px,linear-gradient(90deg,#124b6e1a 1px,#0000 1px) 0 0/34px 100%;position:absolute;inset:0}.game-screen[data-scene=final-battle] .ground-line{opacity:.22;background:linear-gradient(90deg,#0000,#ffd6842e 10%,#ffe29c75 50%,#ffd6842e 90%,#0000);box-shadow:0 0 16px #ffb55929}.game-screen[data-hud-tone=light] .game-hud,.game-screen[data-hud-tone=light] .stage-switcher,.game-screen[data-hud-tone=light] .enemy-menu{color:#f8fbff;text-shadow:0 2px #04081261,0 0 14px #05071257}.game-screen[data-hud-tone=light] .game-hud span,.game-screen[data-hud-tone=light] .enemy-menu span,.game-screen[data-hud-tone=light] .stage-switcher span{color:#f8fbffb3}.game-screen[data-hud-tone=light] .game-hud strong,.game-screen[data-hud-tone=light] .game-hud small,.game-screen[data-hud-tone=light] .enemy-menu strong,.game-screen[data-hud-tone=light] .resource-bar{color:#f8fbff}.game-screen[data-hud-tone=light] .resource-bar i{background:#050a145c;border-color:#ffffff47}.game-hud{z-index:4;color:#0c2433;text-shadow:0 1px #ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff6b;border:1px solid #0c243329;gap:.28rem;padding:.72rem .8rem;display:grid;position:absolute;top:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem);box-shadow:inset 0 0 0 1px #ffffff47,4px 4px #0c24331a}.game-hud span{color:#0c243399;font-size:.66rem}.game-hud strong{color:#0c2433;font-size:clamp(.78rem,2vw,1rem)}.game-hud small{color:#0c2433b8;font-size:clamp(.68rem,1.5vw,.78rem);font-weight:850}.player-resources{gap:.38rem;width:min(74vw,22rem);margin-top:.28rem;display:grid}.resource-bar{color:#0c2433;grid-template-columns:4.8rem 1fr 3.2rem;align-items:center;gap:.52rem;display:grid}.resource-bar span,.resource-bar strong{font-size:.62rem;font-weight:950}.resource-bar strong{text-align:right}.resource-bar i{background:#ffffff57;border:1px solid #0c243347;height:.58rem;display:block;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff61,2px 2px #214e661f}.resource-bar b{--resource-ratio:1;transform:scaleX(var(--resource-ratio));transform-origin:0;transition:transform .15s;display:block;position:absolute;inset:0}.resource-bar--health b{background:linear-gradient(90deg,#ff315a,#ff8c54)}.resource-bar--stamina b{background:linear-gradient(90deg,#32d7ff,#7cff6b)}.resource-bar--ammo b{background:linear-gradient(90deg,#ffdc73,#ff4d6d)}.stage-switcher{z-index:4;color:#0c2433;text-align:center;text-transform:uppercase;letter-spacing:.11em;pointer-events:auto;gap:.28rem;display:grid;position:absolute;top:clamp(1rem,3vw,2rem);left:50%;transform:translate(-50%)}.stage-switcher span{color:#0c243399;font-size:.58rem;font-weight:900}.stage-switcher__button{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#0c2433c7;border:1px solid #ffffff57;min-width:9.5rem;padding:.56rem .72rem;font-family:inherit;font-size:.64rem;font-weight:950;transition:transform .12s,background .12s,border-color .12s;box-shadow:inset 0 0 0 1px #ffffff1f,5px 5px #0c243329}.stage-switcher__actions{justify-content:center;gap:.34rem;display:flex}.stage-switcher__tune{color:#fff;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#0c24339e;border:1px solid #ffffff52;min-width:3.8rem;padding:.56rem .54rem;font-family:inherit;font-size:.56rem;font-weight:950;transition:transform .12s,background .12s,border-color .12s;box-shadow:inset 0 0 0 1px #ffffff1a,4px 4px #0c24331f}.stage-switcher__button:hover,.stage-switcher__button:focus-visible,.stage-switcher__tune:hover,.stage-switcher__tune:focus-visible,.stage-switcher__tune[aria-expanded=true]{background:#ff4d6deb;border-color:#ffffff9e;transform:translate(-2px,-2px)}.stage-tuner{z-index:6;color:#f8fbff;text-align:left;text-transform:uppercase;letter-spacing:.08em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08111cd1;border:1px solid #ffffff47;gap:.52rem;width:min(21rem,86vw);padding:.68rem;display:grid;position:absolute;top:calc(100% + .58rem);left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1px #ffffff1a,8px 8px #05080e38,0 0 30px #62f8ff1a}.stage-tuner[hidden]{display:none}.stage-tuner__header,.stage-tuner__footer{justify-content:space-between;align-items:center;gap:.64rem;display:flex}.stage-tuner__header strong{font-size:.62rem;font-weight:950}.stage-tuner__close,.stage-tuner__footer button,.stage-tuner__layers button{color:#f8fbff;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;background:#ffffff1a;border:1px solid #ffffff3d;font-family:inherit;font-weight:950}.stage-tuner__close{width:1.45rem;height:1.45rem;padding:0;font-size:1rem;line-height:1}.stage-tuner__layers{grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem;display:grid}.stage-tuner__layers button,.stage-tuner__footer button{padding:.44rem .5rem;font-size:.5rem}.stage-tuner__layers button[aria-pressed=true]{background:#ff4d6d7a;border-color:#ffe5789e}.stage-tuner label{color:#f8fbffb8;grid-template-columns:5.2rem 1fr 3.4rem;align-items:center;gap:.5rem;font-size:.5rem;font-weight:950;display:grid}.stage-tuner input[type=range]{accent-color:#ff4d6d;width:100%}.stage-tuner output,.stage-tuner__footer small{color:#f8fbffd1;text-align:right;font-size:.48rem;font-weight:900}.enemy-menu{z-index:4;color:#0c2433;text-transform:uppercase;letter-spacing:.11em;pointer-events:auto;gap:.62rem;width:min(26vw,18rem);display:grid;position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.enemy-menu>div:first-child{text-align:right;text-shadow:0 1px #ffffff8a;gap:.18rem;display:grid}.enemy-menu span{color:#0c24339e;font-size:.62rem;font-weight:850}.enemy-menu strong{font-size:clamp(.78rem,1.7vw,.95rem)}.enemy-menu__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;display:grid}.enemy-menu__button{color:#0c2433;cursor:pointer;text-align:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff94;border:1px solid #0c24332e;gap:.14rem;min-height:2.72rem;padding:.52rem .58rem;transition:transform .12s,background .12s,border-color .12s;display:grid;box-shadow:inset 0 0 0 1px #ffffff61,4px 4px #214e661f}.enemy-menu__button span{color:#0c2433;font-size:.58rem;font-weight:950}.enemy-menu__button small{color:#0c243394;font-size:.48rem;font-weight:850}.enemy-menu__button:hover,.enemy-menu__button:focus-visible,.enemy-menu__button.is-active{background:#ffeaeee0;border-color:#ff4d6d94;outline:0;transform:translate(-2px,-2px)}.enemy-menu__actions{flex-wrap:wrap;justify-content:flex-end;justify-self:end;gap:.42rem;display:flex}.enemy-menu__clear,.enemy-menu__phase{color:#f4fbff;cursor:pointer;text-transform:uppercase;letter-spacing:.12em;background:#0c2433d1;border:1px solid #0c243338;justify-self:end;min-height:2.32rem;padding:.56rem .76rem;font-size:.58rem;font-weight:950;transition:transform .12s,background .12s;box-shadow:4px 4px #214e6624}.enemy-menu__phase{background:#37125cd6;border-color:#37125c47;box-shadow:0 0 18px #8033ff2e,4px 4px #214e6624}.enemy-menu__phase:disabled{cursor:default;opacity:.58;transform:none}.enemy-menu__clear:hover,.enemy-menu__clear:focus-visible,.enemy-menu__phase:not(:disabled):hover,.enemy-menu__phase:not(:disabled):focus-visible{background:#ff4d6deb;outline:0;transform:translate(-2px,-2px)}.game-controls{z-index:5;pointer-events:auto;justify-content:space-between;gap:.8rem;display:flex;position:absolute;bottom:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.control-pad{gap:.8rem;display:flex}.control-button{color:#0c2433;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none;background:#ffffffa8;border:1px solid #0c24332e;gap:.18rem;min-width:7rem;padding:.78rem .95rem;transition:transform .12s,border-color .12s,background .12s;display:grid;box-shadow:inset 0 0 0 1px #ffffff70,6px 6px #214e6624,0 0 20px #ffffff4d}.control-button span{font-size:.74rem;font-weight:950}.control-button kbd{color:#0c24339e;font:inherit;letter-spacing:.08em;font-size:.58rem}.control-button:hover,.control-button:focus-visible,.control-button:active,.control-button.is-pressed{background:#d5f4ffdb;border-color:#167fbc94;outline:0;transform:translate(-2px,-2px)}.control-button--shoot:hover,.control-button--shoot:focus-visible,.control-button--shoot:active{background:#ffdbe2e6;border-color:#ff4d6db8}.control-button--sprint:hover,.control-button--sprint:focus-visible,.control-button--sprint:active,.control-button--sprint.is-pressed{background:#ffeccfeb;border-color:#ff9736c2}.game-world{--ground-y:72%;--player-width:clamp(154px, 13.8vw, 236px);--character-shadow-rgb:12 16 20;--character-shadow-y:-7px;z-index:1;transform:translate3d(calc(var(--camera-world-x) + var(--camera-shake-x)), calc(var(--camera-world-y) + var(--camera-shake-y)), 0) scale(var(--camera-zoom));transform-origin:0 0;will-change:transform;position:absolute;inset:0}.ground-line{top:var(--ground-y);background:linear-gradient(90deg,#0000,#3c4a5461 8%,#454e56c2 50%,#3c4a5461 92%,#0000);height:2px;position:absolute;left:clamp(1.25rem,6vw,5rem);right:clamp(1.25rem,6vw,5rem);box-shadow:0 0 0 1px #ffffff3d,0 8px 18px #31556a29}.character-shadow{--character-shadow-x:-200px;--character-shadow-width:120px;--character-shadow-scale-x:1;--character-shadow-scale-y:1;--character-shadow-opacity:.38;top:var(--ground-y);z-index:1;width:var(--character-shadow-width);height:calc(var(--character-shadow-width) * .16);background:radial-gradient(ellipse at center, rgb(var(--character-shadow-rgb) / .72) 0%, rgb(var(--character-shadow-rgb) / .5) 34%, rgb(var(--character-shadow-rgb) / .2) 58%, rgb(var(--character-shadow-rgb) / 0) 78%);opacity:var(--character-shadow-opacity);mix-blend-mode:multiply;filter:blur(.7px);transform:translate3d(var(--character-shadow-x), var(--character-shadow-y), 0) translateX(-50%) scale(var(--character-shadow-scale-x), var(--character-shadow-scale-y));transform-origin:50%;will-change:transform, opacity;pointer-events:none;border-radius:50%;position:absolute;left:0}.character-shadow:after{content:"";background:rgb(var(--character-shadow-rgb) / .36);filter:blur(.3px);border-radius:50%;position:absolute;inset:22% 18%}.enemy-shadow{z-index:1}.enemy-shadow.is-defeated{--character-shadow-scale-x:1.1;--character-shadow-scale-y:.72}.player-shell{--player-x:-180px;--player-bob:0px;--player-y:0px;top:var(--ground-y);z-index:2;width:var(--player-width);height:calc(var(--player-width) * 1.1667);transform:translate3d(var(--player-x), calc(-100% + var(--player-bob) + var(--player-y)), 0);will-change:transform;pointer-events:none;position:absolute;left:0;overflow:visible}.player-sprite{--player-facing:1;filter:drop-shadow(0 3px #0000006b);width:auto;max-width:none;height:100%;transform:translateX(-50%) scaleX(var(--player-facing));transform-origin:bottom;will-change:transform;-webkit-user-select:none;user-select:none;pointer-events:none;display:block;position:absolute;bottom:0;left:50%}.player-shell.is-hit .player-sprite{filter:drop-shadow(0 0 14px #ff4d6dd1)drop-shadow(0 7px #0000003d);animation:.12s steps(2,end) infinite player-hit-flicker}.enemy-shell{--enemy-x:-180px;--enemy-y:0px;--enemy-width:clamp(164px, 14.7vw, 242px);--enemy-aspect:1.1667;--enemy-health-ratio:1;top:var(--ground-y);z-index:3;width:var(--enemy-width);height:calc(var(--enemy-width) * var(--enemy-aspect));transform:translate3d(var(--enemy-x), calc(-100% + var(--enemy-y)), 0);will-change:transform;pointer-events:none;position:absolute;left:0;overflow:visible}.enemy-shell:before{z-index:0;content:"";filter:blur(9px);opacity:0;transform-origin:bottom;pointer-events:none;background:linear-gradient(90deg,#0000,#62f8ff5c,#0000);width:74%;height:24%;position:absolute;bottom:6%;left:50%;transform:translate(-50%)scaleX(.5)}.enemy-shell:after{z-index:4;content:attr(data-enemy-cue);color:#07121a;letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;background:#ffe578e6;border:1px solid #0c243333;padding:.18rem .34rem;font-size:.46rem;font-weight:950;transition:opacity 90ms steps(2,end),transform 90ms steps(2,end);position:absolute;bottom:calc(100% + 2rem);left:50%;transform:translate(-50%,.2rem);box-shadow:3px 3px #0c243329}.enemy-shell.has-cue:after{opacity:1;transform:translate(-50%)}.enemy-health{z-index:2;color:#102638;text-transform:uppercase;letter-spacing:.09em;filter:drop-shadow(0 2px #ffffff57);gap:.18rem;width:min(9rem,112%);display:grid;position:absolute;bottom:calc(100% + .46rem);left:50%;transform:translate(-50%)}.enemy-health__label{text-align:center;font-size:.52rem;font-weight:950}.enemy-health__track{background:#ffffff8f;border:1px solid #10263847;height:.42rem;display:block;position:relative;overflow:hidden}.enemy-health__fill{transform:scaleX(var(--enemy-health-ratio));transform-origin:0;background:linear-gradient(90deg,#ff315a,#ffdc73);transition:transform .16s;display:block;position:absolute;inset:0}.enemy-sprite{--enemy-facing:-1;filter:drop-shadow(0 3px #0006);width:auto;max-width:none;height:100%;transform:translateX(-50%) scaleX(var(--enemy-facing));transform-origin:bottom;-webkit-user-select:none;user-select:none;pointer-events:none;display:block;position:absolute;bottom:0;left:50%}.enemy-shell.is-attacking .enemy-sprite{filter:drop-shadow(0 0 5px #ffd66e47)drop-shadow(0 3px #0006)}.enemy-shell.is-dodging{z-index:4}.enemy-shell.is-dodging:before{opacity:.9;animation:.18s steps(3,end) infinite enemy-dodge-afterimage}.enemy-shell.is-dodging .enemy-sprite{opacity:.9;filter:drop-shadow(6px 0 #62f8ff29)drop-shadow(0 3px #0000005c);animation:.12s steps(2,end) infinite enemy-dodge-flicker}.enemy-shell.is-retreating{z-index:4}.enemy-shell.is-retreating:before{opacity:.58;background:radial-gradient(#ffe57842,#0000 62%),linear-gradient(90deg,#0000,#ff4d6d2e,#0000);animation:.19s steps(3,end) infinite enemy-dodge-afterimage;transform:translate(-50%)scaleX(.92)}.enemy-shell.is-retreating .enemy-sprite{filter:drop-shadow(-6px 0 #ffe5781f)drop-shadow(0 3px #0000005c)}.enemy-shell.is-guarding .enemy-sprite{filter:drop-shadow(0 0 5px #ffd66e47)drop-shadow(0 3px #0006)}.enemy-shell.is-guarding:before{opacity:.62;background:radial-gradient(#ffe57880,#0000 64%);transform:translate(-50%)scaleX(.84)}.enemy-shell.is-parrying .enemy-sprite{filter:drop-shadow(0 0 5px #62f8ff52)drop-shadow(0 3px #0006)}.enemy-shell.is-parrying:after{background:#62f8ffeb}.enemy-shell.is-hit .enemy-sprite{filter:drop-shadow(0 0 6px #ff4d6d6b)drop-shadow(0 3px #0006);animation:.1s steps(2,end) infinite enemy-hit-flicker}.enemy-shell.is-transforming .enemy-sprite{filter:drop-shadow(0 0 8px #ff4d6d66)drop-shadow(0 3px #0006)}.enemy-shell.is-transforming:before{opacity:.74;background:radial-gradient(#ff4d6d7a,#0000 66%),linear-gradient(90deg,#0000,#ffe57847,#0000);transform:translate(-50%)scaleX(.92)}.enemy-shell[data-enemy-asset=gruntV2].is-hit .enemy-sprite{bottom:-1.67%}.enemy-shell[data-enemy-asset=kicker] .enemy-sprite,.enemy-shell[data-enemy-asset=boardBreaker] .enemy-sprite,.enemy-shell[data-enemy-asset=boStaff] .enemy-sprite,.enemy-shell[data-enemy-asset=nunchaku] .enemy-sprite,.enemy-shell[data-enemy-asset=sparringMaster] .enemy-sprite{bottom:-1.43%}.enemy-shell[data-enemy-asset=sparringMasterFurious] .enemy-sprite{filter:drop-shadow(0 0 6px #ff4d6d47)drop-shadow(0 3px #0006);bottom:0}.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=basic] .enemy-sprite{filter:drop-shadow(0 0 6px #ff663647)drop-shadow(0 3px #0006)}.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=darkInvocation] .enemy-sprite,.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=splitVolley] .enemy-sprite,.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=darkRain] .enemy-sprite{filter:drop-shadow(0 0 7px #9c43ff57)drop-shadow(0 3px #0006)}.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=shadowRush] .enemy-sprite,.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=voidDive] .enemy-sprite{filter:drop-shadow(0 0 8px #ff4d6d57)drop-shadow(0 3px #0006)}.enemy-shell[data-enemy-asset=sparringMasterFurious].is-attacking[data-enemy-attack=blinkStrike] .enemy-sprite{filter:drop-shadow(0 0 10px #b440ff75)drop-shadow(0 3px #0006)}.enemy-shell.is-blinking .enemy-sprite{opacity:0}.enemy-shell.is-blinking:before{opacity:.12}.dark-invocation-projectile--orb{--dark-shot-width:clamp(132px, 11.4vw, 196px);aspect-ratio:1}.dark-invocation-projectile--orb:before{background:radial-gradient(circle,#c755ff80,#0000 62%);width:84%;height:84%;right:8%}.enemy-shell.is-defeated{z-index:1}.enemy-shell.is-defeated .enemy-sprite{filter:drop-shadow(0 3px #0003)saturate(.8)}.disc-projectile{--shot-x:0px;--shot-y:-120px;--shot-facing:1;--shot-spin:0deg;--shot-tilt:0deg;--shot-stretch:1;--shot-squash:1;--shot-trail:1;--shot-opacity:1;top:var(--ground-y);z-index:4;aspect-ratio:1;width:clamp(44px,4.7vw,70px);opacity:var(--shot-opacity);transform:translate3d(var(--shot-x), var(--shot-y), 0) translate(-50%, -50%) scaleX(var(--shot-facing)) rotate(var(--shot-tilt));will-change:transform, opacity;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;left:0}.disc-projectile:before{content:"";filter:blur(7px);width:clamp(46px,5.8vw,94px);height:clamp(11px,1.1vw,16px);opacity:var(--shot-trail);transform:translateY(-50%) scaleX(var(--shot-trail));transform-origin:100%;background:linear-gradient(90deg,#ff4d6d00 0%,#ff4d6d38 54%,#ffe57857 100%);border-radius:999px;position:absolute;top:50%;right:56%}.disc-projectile__sprite{filter:drop-shadow(0 0 12px #ff4d6d59)drop-shadow(0 7px #0000003d);width:100%;height:auto;transform:rotate(var(--shot-spin)) scale(var(--shot-stretch), var(--shot-squash));transform-origin:50%;will-change:transform;display:block}.disc-projectile--break{z-index:5;width:clamp(54px,5.4vw,86px);animation:.42s steps(5,end) forwards disc-break-pop}.disc-projectile--break:before{filter:blur(3px);opacity:.86;background:radial-gradient(circle,#ffe578d1 0 18%,#0000 42%),radial-gradient(circle at 72% 28%,#ff4d6db3 0 12%,#0000 34%),radial-gradient(circle at 30% 72%,#62f8ff8a 0 10%,#0000 32%);width:clamp(26px,4vw,58px);height:clamp(18px,1.8vw,28px);right:50%;transform:translate(50%,-50%)scale(1.08)}.disc-projectile--break .disc-projectile__sprite{filter:drop-shadow(0 0 16px #ff4d6d80)drop-shadow(0 6px #00000038)}.dark-invocation-projectile{--dark-shot-x:0px;--dark-shot-y:-120px;--dark-shot-facing:1;--dark-shot-opacity:1;--dark-shot-width:clamp(340px, 29vw, 520px);top:var(--ground-y);z-index:4;width:var(--dark-shot-width);aspect-ratio:2;opacity:var(--dark-shot-opacity);transform:translate3d(var(--dark-shot-x), var(--dark-shot-y), 0) translate(-50%, -50%) scaleX(var(--dark-shot-facing));will-change:transform, opacity;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;left:0}.dark-invocation-projectile:before{content:"";filter:blur(12px);opacity:.82;transform-origin:100%;background:radial-gradient(at 100%,#c755ff8c,#0000 52%),linear-gradient(90deg,#250d3a00,#531b7c80,#b440ff3d);width:120%;height:42%;position:absolute;top:52%;right:42%;transform:translateY(-50%)}.dark-invocation-projectile__sprite{z-index:1;filter:drop-shadow(0 0 18px #9c43ffa8)drop-shadow(0 0 28px #40006c85)drop-shadow(0 7px #0000002e);transform-origin:50%;width:100%;height:auto;display:block;position:relative}@keyframes scan-drift{0%{transform:translateY(0)}to{transform:translateY(8px)}}@keyframes disc-break-pop{0%{opacity:1;transform:translate3d(var(--shot-x), var(--shot-y), 0) translate(-50%, -50%) scaleX(var(--shot-facing)) rotate(var(--shot-tilt)) scale(.92)}42%{opacity:1;transform:translate3d(var(--shot-x), calc(var(--shot-y) - 10px), 0) translate(-50%, -50%) scaleX(var(--shot-facing)) rotate(calc(var(--shot-tilt) * -1)) scale(1.18)}to{opacity:0;transform:translate3d(var(--shot-x), calc(var(--shot-y) - 22px), 0) translate(-50%, -50%) scaleX(var(--shot-facing)) rotate(var(--shot-tilt)) scale(.76)}}@keyframes player-hit-flicker{0%,to{opacity:1}50%{opacity:.55}}@keyframes enemy-hit-flicker{0%,to{opacity:1}50%{opacity:.42}}@keyframes enemy-dodge-flicker{0%,to{opacity:.92}50%{opacity:.58}}@keyframes enemy-dodge-afterimage{0%{transform:translate(-50%)scaleX(.44)}to{transform:translate(-50%)scaleX(1.18)}}@media (width<=640px){.intro-sound{top:1rem;bottom:auto}.intro-loading{max-width:calc(100vw - 2rem)}.start-card{box-shadow:0 0 0 5px #050409b8,0 0 0 7px #7cff6b9e,10px 10px #0000007a,0 0 50px #62f8ff29}.game-world{--ground-y:74%;--player-width:clamp(142px, 38vw, 192px)}.game-hud{max-width:calc(100vw - 2rem);top:auto;bottom:6.4rem}.stage-switcher{inset:auto 1rem 10.2rem auto;transform:none}.stage-switcher__button{min-width:8.4rem}.stage-tuner{width:min(21rem,100vw - 2rem);left:auto;right:0;transform:none}.stage-tuner label{grid-template-columns:4.8rem 1fr 3.1rem}.player-resources{width:min(92vw,20rem)}.enemy-menu{gap:.4rem;width:auto;top:1rem;left:1rem;right:1rem}.enemy-menu>div:first-child{text-align:left}.enemy-menu__grid{overscroll-behavior-x:contain;gap:.42rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.enemy-menu__button{min-width:8.2rem}.enemy-menu__clear{justify-self:stretch}.game-controls{justify-content:space-between;gap:.6rem;bottom:1rem;left:1rem;right:1rem}.control-pad{gap:.5rem}.control-button{width:min(17vw,6.8rem);min-width:0;padding:.66rem .64rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.disc-projectile__sprite,.dark-invocation-projectile__sprite{image-rendering:pixelated}.player-sprite,.enemy-sprite{image-rendering:auto;filter:drop-shadow(0 3px #0000006b)}.player-shell.is-hit .player-sprite{filter:drop-shadow(0 0 6px #ff4d6d8c)drop-shadow(0 3px #0000006b)}.player-shell.is-smashing .player-sprite{filter:drop-shadow(0 0 5px #ffd66e61)drop-shadow(0 3px #0000006b)}.player-shell.is-dashing .player-sprite{filter:drop-shadow(0 0 5px #62f8ff52)drop-shadow(0 3px #0000006b)}.control-button--smash{border-color:#ffe578b8}.control-button--dash{border-color:#62f8ffb8}.control-button--smash:hover,.control-button--smash.is-pressed{background:#ffe57829}
