:root{color:#f4f1f8;font-synthesis:none;text-rendering:optimizelegibility;--ink:#07050c;--paper:#f4f1f8;--gold:#b9a1ff;--cyan:#e7e1f3;--coral:#e15f7b;--violet:#9f7dea;--violet-bright:#cbb9ff;--danger:#f36c86;--surface-0:#050309f0;--surface-1:#120c1be0;--surface-2:#251934c7;--line-soft:#e6def821;--line-strong:#dccfff57;--text-muted:#efeaf794;--text-faint:#efeaf757;--shadow-deep:0 28px 70px #00000085;--ease-out:cubic-bezier(.2, .8, .2, 1);background:#030205;font-family:Inter,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:radial-gradient(circle at 50% -25%,#35244e 0%,#0000 54%),radial-gradient(circle at 10% 90%,#59397726,#0000 32%),#030205;width:100%;min-width:320px;min-height:100%;margin:0;overflow:hidden}button{color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}button[hidden]{display:none!important}button:focus-visible{outline-offset:3px;outline:2px solid #fff;box-shadow:0 0 0 5px #9f7dea6b}#app{min-height:100vh;min-height:100dvh;padding:max(clamp(8px, 2vw, 24px), env(safe-area-inset-top)) max(clamp(8px, 2vw, 24px), env(safe-area-inset-right)) max(clamp(8px, 2vw, 24px), env(safe-area-inset-bottom)) max(clamp(8px, 2vw, 24px), env(safe-area-inset-left));place-items:center;display:grid}#game-shell{width:min(100vw - 32px,177.778vh - 120.889px);aspect-ratio:16/9;background:radial-gradient(circle at 50% 0%, #593e7e26, transparent 45%), var(--ink);isolation:isolate;border:1px solid #e0d6f938;border-radius:clamp(12px,1.8vw,24px);width:min(100vw - 32px,177.778dvh - 120.889px);position:relative;overflow:hidden;box-shadow:0 34px 80px #00000073,0 0 0 6px #ffffff08}#game-shell:after{z-index:90;border-radius:inherit;content:"";pointer-events:none;border:1px solid #ffffff0d;position:absolute;inset:0;box-shadow:inset 0 0 38px #00000038}#game-shell:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border:0;border-radius:0;height:100dvh}#game-canvas,#game-canvas canvas,#ui-root{position:absolute;inset:0;width:100%!important;height:100%!important}#game-canvas canvas{display:block}#ui-root{z-index:10;pointer-events:none}.outside-hint{bottom:max(5px, env(safe-area-inset-bottom));color:#ded7eb75;letter-spacing:.08em;white-space:nowrap;margin:0;font-size:11px;position:fixed;left:50%;transform:translate(-50%)}.is-hidden{visibility:hidden!important;opacity:0!important;pointer-events:none!important}.screen{pointer-events:auto;place-items:center;padding:clamp(16px,4vw,54px);transition:opacity .18s,visibility .18s;display:grid;position:absolute;inset:0}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.boot-screen{z-index:80;background:linear-gradient(135deg,#030206fa,#0d0814f7),repeating-linear-gradient(90deg,#0000 0 49px,#ffffff05 49px 50px);overflow:hidden}.boot-screen:before,.boot-screen:after{aspect-ratio:1;content:"";border:1px solid #b9a1ff21;border-radius:50%;width:min(68vmin,620px);position:absolute}.boot-screen:before{animation:18s linear infinite boot-orbit}.boot-screen:after{border-style:dashed;width:min(48vmin,430px);animation:12s linear infinite reverse boot-orbit}.boot-panel{z-index:2;text-align:center;justify-items:center;width:min(480px,78%);display:grid;position:relative}.boot-sigil{aspect-ratio:1;border:1px solid #d2c6f342;border-radius:50%;width:clamp(76px,9vw,116px);margin-bottom:20px;position:relative;box-shadow:0 0 55px #9f7dea26}.boot-sigil i{border:1px solid #cbb9ff57;border-radius:50%;animation:5s linear infinite boot-orbit;position:absolute;inset:12%}.boot-sigil i:nth-child(2){border-style:dashed;animation-direction:reverse;inset:27%}.boot-sigil b{color:#d8caff;text-shadow:0 0 18px #a383f1;place-items:center;display:grid;position:absolute;inset:0}.boot-panel h2{letter-spacing:.05em;margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(28px,4.2vw,54px)}.boot-copy{color:var(--text-muted);margin:12px 0 24px;font-size:clamp(10px,1vw,14px)}.boot-progress{background:#ffffff17;border-radius:8px;width:min(380px,100%);height:3px;overflow:hidden}.boot-progress i{transform-origin:0;width:100%;height:100%;transition:transform .18s var(--ease-out);background:linear-gradient(90deg,#7252ba,#d4c4ff,#fff);display:block;transform:scaleX(0);box-shadow:0 0 18px #a685f4}.boot-percent{color:var(--violet-bright);letter-spacing:.2em;margin-top:9px;font-family:Arial Narrow,sans-serif;font-size:11px}.boot-error{justify-items:center;margin-top:18px;display:grid}.boot-error p{color:#ffd8e0c7;max-width:430px;margin:0 0 18px;font-size:12px;line-height:1.7}.boot-screen.is-error .boot-progress,.boot-screen.is-error .boot-percent{opacity:.3}.boot-screen.is-error .boot-sigil{border-color:#f36c867a;box-shadow:0 0 55px #f36c8624}@keyframes boot-orbit{to{transform:rotate(360deg)}}.title-screen{background:linear-gradient(90deg,#040207f0,#07040bad 48%,#04020757),radial-gradient(circle at 76% 42%,#a990ee1f,#0000 38%);place-items:center;overflow:hidden}.title-screen:after{content:"";pointer-events:none;background:linear-gradient(125deg,#0000 45%,#9f7dea14);transition:background .3s;position:absolute;inset:0}.title-screen[data-biome=verdant]:after{background:linear-gradient(125deg,#0000 45%,#5cab8e17)}.title-screen[data-biome=twilightRuins]:after{background:linear-gradient(125deg,#0000 45%,#c4835817)}.title-screen[data-biome=cavern]:after{background:linear-gradient(125deg,#0000 45%,#8f5eb61a)}.title-screen[data-biome=cosmos]:after,.title-screen[data-biome=theoryNexus]:after{background:linear-gradient(125deg,#0000 45%,#8177e01f)}.title-fullscreen{z-index:8;position:absolute;top:16px;right:16px}.title-panel{z-index:2;grid-area:1/1/-1;align-self:center;min-width:0;position:relative}.eyebrow{color:var(--gold);letter-spacing:.25em;text-transform:uppercase;margin:0 0 clamp(6px,1vw,13px);font-size:clamp(7px,.85vw,11px);font-weight:900}h1,h2,p{text-wrap:balance}h1{color:#fff;letter-spacing:-.055em;text-shadow:0 8px 22px #000000db;flex-direction:column;margin:0;font-family:Georgia,Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(40px,6vw,78px);font-weight:900;line-height:.81;display:flex}h1 strong{color:#cbbdf2;letter-spacing:.08em;-webkit-text-stroke:1px #ffffff38;font-size:.77em}.title-subtitle{color:#f2edf9d1;letter-spacing:.17em;margin:clamp(8px,1vw,13px) 0 0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(12px,1.4vw,19px);font-weight:700}.title-copy{color:#f0ebf8b8;margin:clamp(12px,1.7vw,22px) 0;font-size:clamp(10px,1vw,14px);font-weight:700;line-height:1.7}.primary-button,.secondary-button,.text-button,.icon-button{cursor:pointer;border:0}.primary-button{min-width:min(290px,100%);color:var(--ink);letter-spacing:.06em;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), filter .12s ease;background:linear-gradient(105deg,#eee9f8,#b49af2 72%,#9875e8);border:1px solid #f4efff;border-radius:9px;justify-content:space-between;align-items:center;padding:clamp(10px,1.15vw,15px) clamp(14px,1.55vw,21px);font-size:clamp(11px,1.08vw,15px);font-weight:900;display:inline-flex;box-shadow:6px 7px #020104bd,0 8px 32px #8c67dc24}.primary-button:hover{filter:brightness(1.08);transform:translate(3px,3px);box-shadow:3px 4px #020104bd,0 10px 34px #8c67dc36}.primary-button:active{transform:translate(5px,5px)}kbd{color:#f3efff;white-space:nowrap;background:#050308d1;border:1px solid #ffffff57;border-radius:5px;place-items:center;min-width:24px;min-height:21px;padding:3px 6px;font-family:inherit;font-size:.69em;font-weight:900;display:inline-grid;box-shadow:inset 0 -2px #00000059}.campaign-progress-summary{width:min(370px,100%);margin:0 0 10px}.campaign-progress-summary>div:first-child{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.campaign-progress-summary span{color:var(--violet-bright);letter-spacing:.18em;font-size:7px;font-weight:900}.campaign-progress-summary strong{color:var(--text-muted);letter-spacing:.05em;font-size:8px}.campaign-progress-track{background:#ffffff17;border-radius:8px;height:3px;overflow:hidden}.campaign-progress-track i{transform-origin:0;width:100%;height:100%;transition:transform .38s var(--ease-out);background:linear-gradient(90deg,#7754c4,#d7c9ff);display:block;transform:scaleX(0);box-shadow:0 0 12px #9f7dea}.continue-button{width:min(370px,100%)}.control-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;margin-top:clamp(12px,1.5vw,19px);display:grid}.control-grid div{color:#fff9;align-items:center;gap:4px;min-width:0;font-size:clamp(7px,.72vw,10px);font-weight:800;display:flex}.control-grid span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gamepad-note{color:#ffffff4f;letter-spacing:.07em;margin:9px 0 0;font-size:clamp(6px,.62vw,8px)}.title-orbit{aspect-ratio:1;border:1px solid #a990ee29;border-radius:50%;width:34%;position:absolute;right:9%;box-shadow:0 0 80px #a990ee0f}.title-orbit:after{aspect-ratio:1;background:var(--gold);width:8px;box-shadow:0 0 18px var(--gold);content:"";border-radius:50%;position:absolute;top:6%;left:50%}.orbit-one{animation:18s linear infinite title-orbit}.orbit-two{border-style:dashed;width:23%;animation:12s linear infinite reverse title-orbit}@keyframes title-orbit{to{transform:rotate(360deg)}}.campaign-title-layout{z-index:2;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(285px,.72fr) minmax(600px,1.28fr);align-items:center;gap:14px clamp(20px,2.6vw,42px);width:100%;height:100%;display:grid;position:relative}.stage-select-panel{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:linear-gradient(145deg,#1b1326d4,#050308e6),repeating-linear-gradient(0deg,#0000 0 45px,#ffffff08 45px 46px);border-radius:16px;grid-area:2/2;align-self:end;min-width:0;padding:clamp(11px,1.1vw,16px);box-shadow:0 22px 48px #00000061,inset 0 1px #ffffff0a}.stage-select-heading{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.stage-select-heading .eyebrow{margin-bottom:2px}.stage-select-heading h2{margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(18px,1.8vw,25px)}.stage-select-heading>span{color:var(--text-faint);letter-spacing:.13em;white-space:nowrap;font-size:6px;font-weight:900}.stage-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(5px,.55vw,8px);display:grid}.stage-button{--stage-accent:#a990ee;color:#ece8f3;background:linear-gradient(145deg, color-mix(in srgb, var(--stage-accent) 14%, transparent), transparent 48%), linear-gradient(150deg, #231b2ebd, #07040ae6);cursor:pointer;text-align:left;min-width:0;min-height:clamp(44px,3.8vw,54px);transition:transform .13s var(--ease-out), border-color .13s ease, background .13s ease, box-shadow .13s ease;border:1px solid #ffffff1c;border-radius:9px;align-content:center;padding:clamp(5px,.55vw,8px);display:grid;position:relative;overflow:hidden}.stage-button[data-act="1"]{--stage-accent:#72b89c}.stage-button[data-act="2"]{--stage-accent:#c8906d}.stage-button[data-act="3"]{--stage-accent:#a97bc4}.stage-button[data-act="4"]{--stage-accent:#8c83df}.stage-button:hover,.stage-button:focus-visible,.stage-button.is-selected{z-index:2;border-color:color-mix(in srgb, var(--stage-accent) 72%, #fff);background:linear-gradient(145deg, color-mix(in srgb, var(--stage-accent) 28%, transparent), transparent 55%), linear-gradient(150deg, #332643db, #08050df5);box-shadow:inset 0 0 18px color-mix(in srgb, var(--stage-accent) 10%, transparent), 0 8px 24px #00000040;transform:translateY(-2px)}.stage-button>span{color:color-mix(in srgb, var(--stage-accent) 72%, #fff);font-family:Arial Narrow,sans-serif;font-size:clamp(13px,1.2vw,18px);font-weight:900;line-height:1}.stage-button strong{text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:clamp(7px,.7vw,10px);line-height:1.25;overflow:hidden}.stage-button small{color:var(--text-faint);letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:clamp(5px,.45vw,7px);font-weight:800;overflow:hidden}.stage-button>i{color:color-mix(in srgb, var(--stage-accent) 62%, #fff);letter-spacing:.12em;text-shadow:0 0 9px var(--stage-accent);font-size:8px;font-style:normal;font-weight:900;position:absolute;top:5px;right:6px}.stage-button.is-boss{--stage-accent:#e15f7b}.stage-button.is-cleared:after{background:linear-gradient(90deg, var(--stage-accent), transparent);content:"";width:100%;height:2px;position:absolute;bottom:0;left:0}.debug-room-button{color:#dffcf8;cursor:pointer;letter-spacing:.12em;background:linear-gradient(110deg,#16615b57,#0d0914db);border:1px solid #67e2d46b;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:7px;padding:7px 11px;font-size:10px;font-weight:900;display:flex}.debug-room-button[hidden]{display:none}.debug-room-button small{color:#8ecdc4;letter-spacing:.05em;font-size:8px}.stage-preview{background:#00000030;border:1px solid #ffffff14;border-radius:9px;grid-template-columns:minmax(150px,.9fr) minmax(180px,1.3fr) auto;align-items:center;gap:12px;min-height:52px;margin-top:8px;padding:6px 9px;display:grid}.stage-preview>div{min-width:0;display:grid}.stage-preview span{color:var(--violet-bright);letter-spacing:.13em;font-size:6px;font-weight:900}.stage-preview strong{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-family:Georgia,Yu Mincho,serif;font-size:13px;overflow:hidden}.stage-preview small{color:var(--text-faint);letter-spacing:.09em;font-size:6px}.stage-preview p{color:var(--text-muted);margin:0;font-size:8px;line-height:1.55}.stage-preview em{color:#d8caff;letter-spacing:.1em;white-space:nowrap;font-size:7px;font-style:normal;font-weight:900}.hud{z-index:22;pointer-events:none;justify-content:space-between;align-items:flex-start;padding:clamp(10px,1.15vw,16px);transition:opacity .14s;display:flex;position:absolute;top:0;left:0;right:0}.hud-cluster{align-items:stretch;display:flex}.hud-left{flex-direction:column;width:clamp(172px,17vw,232px);position:relative}.stage-chip,.health-meter,.ability-row>div,.boss-hud,.hud-right{border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:linear-gradient(145deg,#0f0a16e0,#040307d6);box-shadow:0 9px 28px #0000002e,inset 0 1px #ffffff08}.stage-chip{border-radius:5px 13px 10px 5px;flex-direction:column;min-width:0;padding:clamp(7px,.7vw,10px) clamp(9px,.9vw,13px) 12px;display:flex}.stage-chip span,.hud-stat span{color:var(--violet-bright);letter-spacing:.15em;font-size:clamp(5px,.52vw,7px);font-weight:900}.stage-chip strong{text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:clamp(9px,.9vw,13px);overflow:hidden}.stage-chip small{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:clamp(5px,.48vw,7px);font-weight:700;overflow:hidden}.health-meter{z-index:2;border-radius:9px 16px 16px 9px;gap:3px;width:clamp(128px,12vw,170px);margin:-6px 0 0 10px;padding:6px 9px 7px;display:grid}.player-health-summary{justify-content:space-between;align-items:center;gap:8px;display:flex}.player-health-summary span{color:var(--coral);letter-spacing:.16em;font-size:clamp(6px,.58vw,8px);font-weight:950}.player-health-summary strong{letter-spacing:.06em;font-family:Arial Narrow,sans-serif;font-size:clamp(9px,.86vw,12px)}.player-health-track{background:#ffffff1a;border-radius:5px;height:6px;overflow:hidden}.player-health-track i{border-radius:inherit;background:linear-gradient(90deg,#8d2943,#e7607f,#ffbac8);width:100%;height:100%;transition:width .15s;display:block;box-shadow:0 0 10px #e7607f75}.hud-right{border-radius:14px;align-items:stretch;gap:0;min-height:48px;padding:3px;display:flex}.hud-stat{border-right:1px solid #ffffff14;flex-direction:column;justify-content:center;align-items:flex-end;min-width:clamp(58px,5.5vw,79px);padding:4px clamp(6px,.65vw,9px);display:flex}.hud-stat.compact{min-width:clamp(45px,4.3vw,61px)}.hud-stat strong{letter-spacing:.04em;margin-top:2px;font-family:Arial Narrow,sans-serif;font-size:clamp(9px,.95vw,14px)}.debt-stat strong{color:#c8b4ff}.icon-button{color:#ffffffb8;pointer-events:auto;background:#ffffff0a;border:1px solid #ffffff1c;border-radius:11px;width:clamp(34px,3vw,40px);margin:2px;font-size:clamp(10px,1vw,14px);font-weight:900;transition:color .12s,background .12s,border-color .12s,transform .12s}.icon-button:hover,.icon-button.is-active{color:#fff;background:#9f7dea4d;border-color:#e0d6ff6b}.icon-button:active{transform:scale(.94)}.hud-center{flex-direction:column;align-items:center;width:min(480px,36vw);display:flex;position:absolute;top:clamp(10px,1.15vw,16px);left:50%;transform:translate(-50%)}.ability-row{justify-content:center;gap:5px;transition:opacity .16s,transform .16s;display:flex}.dash-meter,.attack-meter{text-align:center;border-radius:10px;width:clamp(84px,8vw,108px);height:clamp(31px,2.8vw,38px);padding:0 8px;position:relative;overflow:hidden}.dash-meter i,.attack-meter i{opacity:.52;transform:scaleX(var(--charge-progress,0));transform-origin:0;background:linear-gradient(90deg,#4c347585,#c2a8ffbd);transition:transform 90ms linear,opacity .13s,background .13s;position:absolute;inset:0}.dash-meter i{transform:translate(-102%)}.dash-meter.is-ready i{transform:translate(0)}.punch-meter i{background:linear-gradient(90deg,#6f274f85,#ff9fcdb8)}.dash-meter span,.attack-meter span{z-index:2;color:#ffffff8c;letter-spacing:.08em;white-space:nowrap;place-items:center;height:100%;font-size:clamp(5px,.5vw,7px);font-weight:900;display:grid;position:relative}.dash-meter.is-ready span,.attack-meter.is-ready span,.attack-meter.is-charging span,.attack-meter.is-charged span{color:#fff}.attack-meter.is-ready i{opacity:.2;transform:scaleX(1)}.attack-meter.is-charging i{opacity:.82;transform:scaleX(var(--charge-progress,0))}.attack-meter.is-charged{border-color:#f6efffa8;box-shadow:0 0 18px #bc97ff45,inset 0 0 11px #ffffff1c}.attack-meter.is-charged i{opacity:.92;background:linear-gradient(90deg,#7450c4,#f8f2ff,#b987ff);transform:scaleX(1)}.punch-meter.is-charged i{background:linear-gradient(90deg,#91365f,#fff3fa,#ff88c2)}.beam-meter.is-sealed{border-color:#f36c8661}.beam-meter.is-sealed i{opacity:.58;background:#cb435e94;transform:scaleX(1)}.beam-meter.is-sealed span{color:#ffc0cd}.boss-hud{border-radius:10px;width:min(450px,100%);margin-top:26px;padding:7px 11px 9px}.boss-hud>div:first-child{justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px;display:flex}.boss-hud span{text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Yu Mincho,serif;font-size:clamp(9px,.85vw,12px);font-weight:800;overflow:hidden}.boss-hud strong{color:#ef708a;align-items:baseline;gap:8px;display:flex}.boss-hud strong small{letter-spacing:.2em;font-size:7px}.boss-hud strong b{color:#ffe9ee;letter-spacing:.05em;font-family:Arial Narrow,sans-serif;font-size:clamp(8px,.76vw,11px)}.boss-health-track{background:#ffffff17;border-radius:5px;height:6px;overflow:hidden}.boss-health-track i{border-radius:inherit;background:linear-gradient(90deg,#922b43,#f16d88,#ffd3dc);width:100%;height:100%;transition:width .15s;display:block;box-shadow:0 0 12px #ef6d887a}.boss-hud.is-secret{background:linear-gradient(145deg,#26070eed,#070307e8);border-color:#ff54717a}.hud:not(.is-boss-active) .boss-hud{display:none}.hud.is-boss-active .ability-row{opacity:.72;transform:scale(.9)}.touch-controls{z-index:38;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.touch-cluster{bottom:max(14px, env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;display:flex;position:absolute}.touch-movement{left:max(14px, env(safe-area-inset-left));gap:8px}.touch-actions{right:max(14px, env(safe-area-inset-right));grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,50px);gap:7px;display:grid}.touch-cluster button{color:#ffffffe0;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);touch-action:none;background:linear-gradient(145deg,#281d39c7,#050309c7);border:1px solid #f1ebff47;border-radius:18px;place-content:center;min-width:52px;min-height:52px;font-size:18px;font-weight:900;display:grid;box-shadow:0 9px 24px #00000040,inset 0 0 14px #ffffff0a}.touch-cluster button small{color:#ffffff8a;letter-spacing:.08em;font-size:6px;font-weight:900}.touch-cluster button b{margin-top:1px;font-size:14px}.touch-cluster button.is-pressed{color:#09060e;background:#c6b0ff;border-color:#e5dcff;transform:scale(.94);box-shadow:0 0 25px #b596ff7a}.touch-movement button{border-radius:22px;width:62px;height:62px}.touch-observe{grid-area:1/1}.touch-jump{grid-area:1/2}.touch-beam{grid-area:1/3/span 2;align-self:center;height:66px;border-color:#c9b7ff6b!important}.touch-dash{grid-area:2/1}.touch-punch{grid-area:2/2;border-color:#ff97c257!important}.orientation-hint{display:none}.pause-screen,.result-screen{z-index:50;-webkit-backdrop-filter:blur(9px)saturate(.72);backdrop-filter:blur(9px)saturate(.72);background:radial-gradient(circle at 50% 38%,#6c4d941c,#0000 42%),#020104c2}.modal-panel{border:1px solid var(--line-strong);width:min(540px,84%);box-shadow:var(--shadow-deep), inset 0 1px 0 #ffffff0d;text-align:center;background:linear-gradient(145deg,#261b34f7,#07040afc),repeating-linear-gradient(0deg,#0000 0 44px,#ffffff05 44px 45px);border-radius:18px;padding:clamp(24px,3vw,42px);position:relative;overflow:hidden}.modal-panel:before{content:"";background:linear-gradient(90deg,#0000,#c9b5ff,#0000);width:42%;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.modal-panel h2{letter-spacing:.04em;margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(30px,3.6vw,48px);line-height:1.15}.modal-panel>p:not(.eyebrow){color:var(--text-muted);margin:10px 0 22px;font-size:clamp(9px,.95vw,13px);line-height:1.65}.pause-panel{width:min(690px,86%)}.pause-panel .eyebrow{margin-bottom:8px}.pause-content{grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr);align-items:stretch;gap:12px;margin:18px 0;display:grid}.pause-controls{text-align:left;background:#00000026;border:1px solid #ffffff17;border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:2px 13px;padding:8px 12px;display:grid}.pause-controls p{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:6px;min-width:0;margin:0;padding:5px 0;display:flex}.pause-controls span{color:var(--text-faint);letter-spacing:.12em;font-size:6px;font-weight:900}.pause-controls kbd{text-overflow:ellipsis;max-width:78px;font-size:6px;overflow:hidden}.pause-panel>.primary-button{width:min(350px,100%)}.button-row{justify-content:center;align-items:center;gap:8px;margin-top:17px;display:flex}.secondary-button,.text-button{color:#ffffffab;background:0 0;padding:9px 13px;font-size:clamp(8px,.78vw,11px);font-weight:800}.secondary-button{border:1px solid #ffffff2b;border-radius:8px}.secondary-button:hover,.text-button:hover{color:#fff;border-color:var(--violet-bright);background:#9f7dea17}.pause-fullscreen{height:34px;margin:0}.result-panel{width:min(600px,86%)}.result-panel .eyebrow{margin-bottom:9px}.result-panel .primary-button{width:min(390px,100%)}.result-achievements{justify-content:center;align-items:center;gap:6px;min-height:23px;margin-top:-8px;display:flex}.result-achievements span{color:#dacdff;letter-spacing:.12em;background:#9f7dea1a;border:1px solid #cebbff47;border-radius:20px;padding:4px 8px;font-size:6px;font-weight:900}.result-stats{grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0 10px;display:grid}.result-stats div,.result-bonus div{background:#00000026;border:1px solid #ffffff17;border-radius:8px;flex-direction:column;min-width:0;padding:10px 5px;display:flex}.result-stats span,.result-bonus span{color:var(--violet-bright);letter-spacing:.11em;font-size:clamp(6px,.6vw,8px);font-weight:900}.result-stats strong{margin-top:3px;font-family:Arial Narrow,sans-serif;font-size:clamp(12px,1.4vw,19px)}.result-bonus{grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 16px;display:grid}.result-bonus div{padding:6px 5px}.result-bonus strong{color:var(--text-muted);margin-top:2px;font-family:Arial Narrow,sans-serif;font-size:clamp(8px,.9vw,12px)}.result-bonus .is-earned{background:#9f7dea14;border-color:#cdb7ff33}.result-bonus .is-earned strong{color:#e9e0ff}.result-screen:not(.is-loss) .modal-panel{box-shadow:0 0 90px #9f7dea29, var(--shadow-deep)}.result-screen.is-loss .eyebrow{color:var(--coral)}.result-screen.is-loss .modal-panel:before{background:linear-gradient(90deg, transparent, var(--coral), transparent)}.result-screen.is-true-ending .modal-panel{box-shadow:0 0 105px #ce466133, var(--shadow-deep);border-color:#e0587069}.result-screen.is-true-ending .modal-panel:before{background:linear-gradient(90deg,#0000,#ff758f,#f3e4ff,#0000)}.audio-mixer{background:linear-gradient(110deg,#08050ddb,#221730b8),repeating-linear-gradient(90deg,#0000 0 31px,#ffffff08 31px 32px);border:1px solid #d8caff30;border-radius:10px;width:min(370px,100%);margin:12px 0 0;padding:9px 11px 10px;box-shadow:inset 0 0 22px #a990ee0f}.audio-mixer>p{justify-content:space-between;align-items:baseline;margin:0 0 6px;display:flex}.audio-mixer>p span{color:#d6c9fa;letter-spacing:.2em;font-size:8px;font-weight:900}.audio-mixer>p small{color:#ffffff59;font-size:7px}.audio-mixer label{color:#ffffffb0;letter-spacing:.12em;grid-template-columns:34px minmax(90px,1fr) 38px;align-items:center;gap:8px;min-height:24px;font-size:8px;font-weight:900;display:grid}.audio-mixer input[type=range]{appearance:none;background:linear-gradient(90deg, #b49af4 var(--audio-level,50%), #ffffff1f var(--audio-level,50%));cursor:pointer;border-radius:4px;width:100%;height:4px;margin:0}.audio-mixer input[type=range]::-webkit-slider-thumb{appearance:none;background:#7f60c8;border:2px solid #f5f0ff;border-radius:50%;width:13px;height:13px;box-shadow:0 0 10px #b99eff9e}.audio-mixer input[type=range]:focus-visible{outline-offset:5px;outline:2px solid #e5dcff}.audio-mixer output{color:#f0ebff;text-align:right;font-family:Arial Narrow,sans-serif;font-size:9px}.pause-screen .audio-mixer{text-align:left;width:100%;height:100%;margin:0}@media (max-width:1000px),(max-height:700px){.campaign-title-layout{grid-template-columns:minmax(235px,.68fr) minmax(500px,1.32fr);column-gap:16px}.title-copy{margin:10px 0}.control-grid{gap:4px 7px;margin-top:10px}.stage-select-panel{padding:11px}.stage-select-heading{margin-bottom:7px}.stage-button{min-height:53px;padding:4px 6px}.stage-preview{min-height:52px;margin-top:7px;padding:6px 8px}.campaign-title-layout .audio-mixer{margin-top:7px;padding:6px 8px}.campaign-title-layout .audio-mixer>p{display:none}.campaign-title-layout .audio-mixer label{min-height:20px}.hud.is-boss-active .ability-row{transform-origin:top;transform:translate(-50px)scale(.9)}}@media (max-width:900px),(max-height:620px){#game-shell{width:min(100vw - 16px,177.778dvh - 42.6667px)}.outside-hint,.title-copy,.control-grid,.gamepad-note{display:none}.campaign-title-layout{grid-template-columns:minmax(210px,.58fr) minmax(480px,1.42fr);column-gap:12px}.campaign-progress-summary{margin-top:12px}.stage-select-heading>span{display:none}.stage-button{min-height:46px}.stage-preview{grid-template-columns:minmax(130px,.9fr) minmax(150px,1.3fr) auto}.stage-preview p{font-size:7px}.hud{padding:7px}.hud-left{width:165px}.stage-chip{padding:6px 8px 10px}.hud-stat{min-width:50px;padding:3px 5px}.hud-stat.compact{min-width:40px}.hud-center{width:340px;top:7px}.dash-meter,.attack-meter{width:82px;height:29px}.boss-hud{width:335px;margin-top:28px;padding:5px 8px 7px}.pause-panel{width:min(720px,94%);padding:15px 20px}.pause-panel>p:not(.eyebrow){margin:4px 0 9px}.pause-content{margin:9px 0}.pause-controls p{padding:3px 0}.result-panel{padding:17px 22px}.result-panel>p:not(.eyebrow){margin:5px 0 10px}.result-stats{margin:10px 0 7px}.result-bonus{margin-bottom:10px}.button-row{margin-top:9px}}@media (max-width:760px),(max-height:520px){#app{padding:4px}#game-shell{border-radius:10px;width:min(100vw - 8px,177.778dvh - 14.2222px)}.hud{padding:4px}.hud-left{width:132px}.stage-chip{border-radius:4px 9px 7px 4px;padding:4px 6px 8px}.stage-chip small{display:none}.health-meter{gap:2px;width:112px;margin-top:-4px;padding:3px 6px 5px}.player-health-track{height:4px}.hud-right{border-radius:9px;min-height:36px;padding:2px}.hud-stat{min-width:42px;padding:2px 4px}.hud-stat.compact,.debt-stat{display:none}.hud-right .icon-button{border-radius:7px;width:29px}.hud-center{width:286px;top:4px}.dash-meter,.attack-meter{border-radius:7px;width:70px;height:25px;padding:0 4px}.boss-hud{width:286px;margin-top:20px;padding:4px 7px 5px}.boss-health-track{height:4px}.hud.is-boss-active .ability-row{transform-origin:top;transform:scale(.78)}.modal-panel h2{font-size:27px}.pause-panel{width:min(720px,96%);padding:10px 15px}.pause-panel .eyebrow{margin-bottom:3px}.pause-content{grid-template-columns:1fr 1fr;gap:7px;margin:6px 0}.pause-controls{padding:3px 8px}.pause-controls p:nth-child(n+5){display:none}.pause-screen .audio-mixer{padding:4px 7px}.pause-screen .audio-mixer>p{display:none}.pause-screen .audio-mixer label{min-height:18px}.pause-panel>.primary-button{padding:7px 11px}.secondary-button,.text-button{padding:6px 9px}.result-panel{width:min(600px,94%);padding:12px 16px}.result-achievements{min-height:18px}.result-stats div{padding:6px 3px}.result-bonus div{padding:4px 3px}.result-panel .primary-button{padding:7px 11px}}@media (orientation:landscape) and (max-height:320px){.boss-hud{margin-top:54px}.ability-row,.hud.is-boss-active .ability-row{transform-origin:top;gap:3px;transform:translate(-32px)}.dash-meter,.attack-meter{border-radius:6px;width:40px;height:20px;padding:0 2px}.dash-meter span,.attack-meter span{font-size:0}.dash-meter span:after,.attack-meter span:after{letter-spacing:.04em;font-size:6px}.dash-meter span:after{content:"DASH"}.beam-meter span:after{content:"BEAM"}.punch-meter span:after{content:"PUNCH"}}@media (orientation:portrait) and (max-width:760px){#game-shell.is-title-mode{aspect-ratio:auto;border-radius:12px;width:calc(100vw - 8px);height:calc(100dvh - 8px)}#game-shell.is-title-mode #game-canvas{opacity:0}#game-shell.is-title-mode .title-screen{padding:max(28px, env(safe-area-inset-top)) 12px max(24px, env(safe-area-inset-bottom));display:block;overflow:hidden auto}#game-shell.is-title-mode .campaign-title-layout{grid-template-rows:auto;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;height:auto;display:grid}#game-shell.is-title-mode .title-panel{grid-area:auto/1;width:100%;padding:0 4px}#game-shell.is-title-mode h1{font-size:clamp(39px,14vw,58px)}#game-shell.is-title-mode .title-copy,#game-shell.is-title-mode .control-grid,#game-shell.is-title-mode .gamepad-note,#game-shell.is-title-mode .title-orbit{display:none}#game-shell.is-title-mode .campaign-progress-summary{width:100%;margin-top:14px}#game-shell.is-title-mode .continue-button,#game-shell.is-title-mode .audio-mixer{width:100%}#game-shell.is-title-mode .stage-select-panel{border-radius:12px;grid-area:auto/1;max-height:none;padding:10px;overflow:visible}#game-shell.is-title-mode .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}#game-shell.is-title-mode .stage-button{min-height:48px;padding:4px 7px}#game-shell.is-title-mode .stage-button strong{font-size:8px}#game-shell.is-title-mode .stage-button small{font-size:6px;display:block}#game-shell.is-title-mode .stage-preview{grid-template-columns:minmax(0,1fr) auto}#game-shell.is-title-mode .stage-preview p,.touch-cluster{display:none}.touch-controls{z-index:60}.orientation-hint{z-index:1;width:min(280px,82%);color:var(--text);pointer-events:auto;text-align:center;background:#08050df7;border:1px solid #ded1ff7a;border-radius:14px;place-items:center;padding:16px 18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #000000a3}.orientation-hint span{color:var(--violet-bright);font-size:30px}.orientation-hint strong{margin-top:5px;font-family:Georgia,Yu Mincho,serif;font-size:16px;line-height:1.45}.orientation-hint small{color:#efeaf7d1;margin-top:5px;font-size:10px;line-height:1.5}}@media (max-width:440px){#game-shell.is-title-mode .title-screen{padding-left:9px;padding-right:9px}#game-shell.is-title-mode .title-subtitle{font-size:10px}#game-shell.is-title-mode .stage-select-heading h2{font-size:16px}#game-shell.is-title-mode .stage-button{min-height:45px}#game-shell.is-title-mode .stage-preview{min-height:45px;padding:5px 7px}.title-fullscreen{top:8px;right:8px}}@media (any-pointer:coarse){.outside-hint{display:none}}@media (any-pointer:coarse) and (orientation:landscape) and (max-height:520px){.touch-cluster{bottom:max(8px, env(safe-area-inset-bottom))}.touch-movement{left:max(8px, env(safe-area-inset-left))}.touch-actions{right:max(8px, env(safe-area-inset-right))}.touch-movement button{width:54px;min-width:54px;height:54px;min-height:54px}.touch-actions{grid-template-rows:repeat(2,41px);grid-template-columns:repeat(3,44px);gap:5px}.touch-actions button{border-radius:14px;min-width:44px;min-height:44px}.touch-beam{height:58px!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.attack-meter i,.audio-mixer input[type=range],.campaign-progress-track i,.boot-progress i{transition:none!important}}.card-hud{--card-slot-width:clamp(42px,5.8vh,52px);--card-slot-height:clamp(63px,8.7vh,78px);z-index:48;pointer-events:auto;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.card-stock{grid-template-columns:repeat(5,var(--card-slot-width));background:#05040ad1;border:1px solid #8874b5;border-radius:10px;gap:4px;padding:5px;display:grid}.card-slot{width:var(--card-slot-width);height:var(--card-slot-height);color:#fff;cursor:pointer;background:#100c1a;border:1px solid #9a86c5;border-radius:6px;padding:0;position:relative;overflow:hidden}.card-slot img{object-fit:cover;width:100%;height:100%}.card-slot-empty{width:var(--card-slot-width);height:var(--card-slot-height);background:#100c1a80;border:1px dashed #5d526f;border-radius:6px}.card-slot.is-selected{outline-offset:2px;outline:2px solid #e5d5ff}.card-slot.is-used img,.card-slot[aria-disabled=true] img{filter:brightness(.35)saturate(.6)}.card-name{text-overflow:ellipsis;white-space:nowrap;background:#040308d1;padding:2px;font-size:8px;line-height:1.1;position:absolute;inset:auto 2px 2px;overflow:hidden}.card-cost{background:#17136a;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid;position:absolute;top:3px;left:3px}.card-used,.card-cooldown{letter-spacing:1px;background:#05030a7a;place-items:center;font-weight:900;display:grid;position:absolute;inset:0}.card-cooldown{font-size:18px}.card-invalid{color:#ff92a9;font-size:16px;position:absolute;top:3px;right:4px}.card-library-button{color:#ddd2f4;background:#100b1c;border:1px solid #8874b5;border-radius:7px;height:34px}.card-hud.is-debug-room{--card-slot-width:36px;--card-slot-height:54px}.card-hud.is-debug-room .card-stock{grid-template-columns:repeat(10,var(--card-slot-width));gap:3px}.card-hud.is-debug-room .card-name{font-size:6px}.card-hud.is-debug-room .card-cost{width:16px;height:16px;font-size:8px}.card-hud.is-debug-room .card-used{letter-spacing:0;font-size:9px}.card-hud.is-debug-room .card-library-button{width:42px;font-size:0}.card-hud.is-debug-room .card-library-button:after{content:"LIB";font-size:9px}.card-library-overlay{z-index:120;pointer-events:auto;background:#020207d6;place-items:center;display:grid;position:absolute;inset:0}.card-library-panel{color:#eee;background:#090711;border:1px solid #8d79b9;border-radius:14px;width:min(1040px,92vw);max-height:86vh;padding:20px;overflow:auto}.card-library-panel header{justify-content:space-between;align-items:center;display:flex}.card-library-panel header button{color:#fff;background:0 0;border:0;font-size:28px}.card-library-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;display:grid}.card-library-section-title{color:#cfc0e8;letter-spacing:.12em;border-bottom:1px solid #4f4163;grid-column:1/-1;margin:8px 0 0;padding-bottom:5px;font-size:12px}.library-card-entry{align-content:start;min-width:0;display:grid}.library-card{color:#ddd;background:#100c19;border:1px solid #554869;border-radius:8px;gap:4px;width:100%;padding:7px;display:grid}.library-card.is-active{border-color:#78e2be;box-shadow:0 0 0 2px #78e2be55}.library-card img{aspect-ratio:2/3;object-fit:cover;width:100%}.library-card small{color:#a99ac5}.library-card-controls{grid-template-columns:30px 1fr 30px;gap:3px;margin-top:6px;display:grid}.library-card-controls button{color:#e8dcfa;background:#181022;border:1px solid #67567e;border-radius:5px;min-width:0;padding:5px 2px;font-size:10px}.library-card-controls button[aria-pressed=true]{color:#fff2cf;background:#3a2712;border-color:#ffca77}.library-card-controls button:disabled{opacity:.3}.card-library-empty{text-align:center;color:#aaa0b8;grid-column:1/-1;padding:50px}@media (max-width:600px){.card-hud{--card-slot-width:42px;--card-slot-height:63px;bottom:8px}.card-stock{gap:3px;padding:5px}.card-name{font-size:7px}.card-cost{width:18px;height:18px;font-size:9px}.card-library-button{width:34px;font-size:0}.card-library-button:after{content:"L";font-size:12px}.library-card-controls{grid-template-columns:26px 1fr 26px}.library-card-controls button{font-size:9px}.card-hud.is-debug-room{--card-slot-width:29px;--card-slot-height:44px}.card-hud.is-debug-room .card-stock{grid-template-columns:repeat(7,var(--card-slot-width));gap:2px;padding:3px}.card-hud.is-debug-room .card-used{font-size:7px}}@media (max-width:600px) and (any-pointer:coarse){.card-hud{bottom:72px}}@media (orientation:landscape) and (max-height:320px) and (pointer:fine){.card-hud{--card-slot-width:32px;--card-slot-height:48px;gap:4px;bottom:4px}.card-stock{border-radius:7px;gap:2px;padding:3px}.card-slot,.card-slot-empty{border-radius:4px}}
