@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#071219;--cream:#f0eadf;--red:#d24b3c;--mint:#91d1c2;--gold:#e4b572}*{box-sizing:border-box}html,body,#game{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--cream);font-family:'Space Grotesk',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}#world{display:block;width:100%;height:100%;touch-action:none}.screen{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 60% 25%,#163141e8,#061117f7 62%)}.screen[hidden],#hud[hidden],#touch[hidden],#portal-prompt[hidden],#crosshair[hidden],#pause[hidden],#desktop-help[hidden]{display:none}.brand,.mini-brand{font:64px/.8 'Bebas Neue',sans-serif;letter-spacing:-.02em}.brand span,.mini-brand span{color:var(--red)}#loading p{font-size:11px;letter-spacing:.2em;color:#a9beb9;margin-top:28px}.select-card{width:min(980px,100%);text-align:center}.eyebrow{font-size:11px;letter-spacing:.23em;color:var(--gold)}h1{font:clamp(64px,10vw,126px)/.82 'Bebas Neue',sans-serif;margin:18px 0 34px}h1 em{color:#b7d5d0;font-style:normal}.weapons{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.weapons button{min-height:180px;padding:20px;border:1px solid #6d85837d;background:#0b1b22b8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}.weapons button:hover,.weapons button:focus-visible{border-color:var(--gold);background:#162930;transform:translateY(-3px)}.weapon-icon{font:58px Georgia,serif;color:var(--gold);height:64px}.weapons strong{font:30px 'Bebas Neue',sans-serif;letter-spacing:.05em}.weapons small{color:#a8bbb6}.hint{color:#b8c7c3;font-size:14px;margin:25px 0 8px}.home-link{font-size:12px;color:#91aaa5;text-decoration:underline;text-underline-offset:4px}#hud{position:fixed;z-index:5;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:22px 28px;pointer-events:none;background:linear-gradient(#031017bd,transparent)}.mini-brand{font-size:37px}.mission{display:flex;flex-direction:column;text-align:center}.mission small{font-size:9px;letter-spacing:.2em;color:#96aaa5}.mission strong{font-size:14px;margin-top:4px}.stats{display:flex;flex-direction:column;align-items:flex-end;font-size:11px;letter-spacing:.12em;gap:4px}.stats #health{color:#e96558;letter-spacing:.05em;font-size:14px}#crosshair{position:fixed;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff9;font-size:24px;pointer-events:none}#message{position:fixed;z-index:6;left:50%;top:17%;transform:translateX(-50%);font:32px 'Bebas Neue',sans-serif;letter-spacing:.05em;text-shadow:0 2px 16px #000;opacity:0;transition:opacity .25s;pointer-events:none;text-align:center}#message.show{opacity:1}#portal-prompt{position:fixed;z-index:8;left:50%;bottom:35px;transform:translateX(-50%);width:min(390px,calc(100% - 32px));padding:16px 18px;background:#07151de8;border:1px solid #9fb1ac88;backdrop-filter:blur(12px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 18px}#portal-prompt small{font-size:9px;letter-spacing:.18em;color:var(--gold)}#portal-prompt strong{font:31px 'Bebas Neue',sans-serif;grid-column:1}#portal-prompt button{grid-column:2;grid-row:1/3;border:0;background:var(--cream);color:#10191c;padding:12px 17px;font-weight:700;cursor:pointer}#desktop-help{position:fixed;z-index:5;bottom:18px;left:22px;font-size:9px;letter-spacing:.14em;color:#9fb2ad}#pause{position:fixed;z-index:7;right:18px;top:92px;width:42px;height:42px;border:1px solid #82938f77;background:#07151d99;cursor:pointer}.pause-card{width:min(380px,100%);padding:32px;border:1px solid #79908a;background:#091820;text-align:center}.pause-card h2{font:54px 'Bebas Neue',sans-serif;margin:15px 0 25px}.pause-card button,.pause-card a{display:block;width:100%;padding:15px;margin:10px 0;border:1px solid #8ba09b;background:transparent;color:var(--cream);cursor:pointer}.pause-card button:first-of-type{background:var(--cream);color:#091820}.pause-card a{font-size:14px}#touch{position:fixed;z-index:6;inset:auto 0 0;pointer-events:none;height:190px}#joystick{position:absolute;left:24px;bottom:25px;width:116px;height:116px;border:1px solid #9fb4ae55;border-radius:50%;background:#06131a66;pointer-events:auto;touch-action:none}#joystick span{position:absolute;left:38px;top:38px;width:40px;height:40px;border-radius:50%;background:#d8e5df99}#touch button{position:absolute;border:1px solid #b2c4be66;border-radius:50%;background:#10212aa8;pointer-events:auto;touch-action:none;font-size:10px;font-weight:700}#touch-attack{right:25px;bottom:28px;width:82px;height:82px}#touch-dash{right:104px;bottom:112px;width:58px;height:58px;color:var(--gold)}
@media(max-width:700px){.weapons{grid-template-columns:1fr}.weapons button{min-height:88px;display:grid;grid-template-columns:64px 1fr;grid-template-rows:1fr 1fr;text-align:left;padding:12px 20px}.weapon-icon{grid-row:1/3;font-size:44px}.weapons strong{font-size:28px;align-self:end}.weapons small{align-self:start}h1{font-size:60px;margin:15px 0 25px}.select-card{max-height:92vh;overflow:auto}.hint{margin-top:18px}#hud{padding:18px 16px}.mission{display:none}.mini-brand{font-size:32px}.stats{font-size:9px}#message{top:15%;font-size:27px}#desktop-help{display:none!important}#pause{top:72px}}
@media(pointer:fine){#touch{display:none!important}}
@media(prefers-reduced-motion:reduce){.weapons button{transition:none}}
#loading .load-retry,#loading .load-home{display:block;min-width:210px;margin:10px auto 0;padding:13px 18px;border:1px solid #a9bdb7;background:transparent;color:var(--cream);font:600 14px 'Space Grotesk',sans-serif;text-align:center;cursor:pointer}#loading .load-retry{margin-top:24px;background:var(--cream);color:#091820}
#weapon-select{background:linear-gradient(115deg,#051117f4 0%,#0b1d25d9 48%,#260b0beb 100%);isolation:isolate}#weapon-select:before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 66%,#be3d3020 66% 70%,transparent 70%),repeating-linear-gradient(90deg,transparent 0 79px,#b9d4d006 80px);z-index:-1;pointer-events:none}.select-card{padding:clamp(20px,4vw,48px);border-top:1px solid #a6bbb55c;border-bottom:1px solid #a6bbb55c;background:linear-gradient(90deg,transparent,#06121999 15% 85%,transparent);backdrop-filter:blur(7px)}.weapons button{position:relative;overflow:hidden;background:linear-gradient(145deg,#13272ecf,#08151bec);box-shadow:inset 0 1px #dce9e315,0 20px 60px #0004;transition:transform .25s,border-color .25s,background .25s}.weapons button:after{content:'';position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.45}.weapons button:hover .weapon-icon,.weapons button:focus-visible .weapon-icon{color:#ffd08b;text-shadow:0 0 25px #e4b57299}.weapon-icon{transition:color .25s,text-shadow .25s}#hud{border-bottom:1px solid #91aaa520;backdrop-filter:blur(3px)}.mission strong{font-family:'Bebas Neue',sans-serif;font-size:21px;letter-spacing:.06em}.stats{padding:9px 12px;border:1px solid #82938f48;background:#06141a80}.mini-brand{text-shadow:0 3px 18px #000}#portal-prompt{box-shadow:0 18px 70px #000a,inset 0 1px #e9f4ed18}#portal-prompt:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}#touch-attack{background:radial-gradient(circle,#81332cbb,#1b1c24dc);border-color:#e46a5a88}#touch-dash{background:radial-gradient(circle,#7a5825bb,#1c2024dc);border-color:#e4b57288}
.player-level{position:absolute;left:92px;top:23px;width:145px}.player-level small{font-size:9px;letter-spacing:.15em;color:#b8cbc5}.player-level small b{color:var(--gold);font-size:13px}.xp-track,.player-level .xp-track{height:4px;margin-top:7px;background:#ffffff18;overflow:hidden}.xp-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#d34a3e,#e4b572);box-shadow:0 0 12px #e4b572}.stats b{color:var(--gold)}#target-bar{position:fixed;z-index:7;top:90px;left:50%;transform:translateX(-50%);width:min(320px,60vw);text-align:center;pointer-events:none}#target-bar span{font:18px 'Bebas Neue',sans-serif;letter-spacing:.12em;text-shadow:0 2px 8px #000}#target-bar>div{height:7px;margin-top:5px;border:1px solid #e9e5d75e;background:#17090dd9;padding:1px}#target-bar i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#cf3e39,#f06c58);transition:width .16s}#combo{position:fixed;z-index:7;right:5vw;top:28%;font:44px/.8 'Bebas Neue',sans-serif;color:#f3c277;text-shadow:0 0 24px #d64a3b;transform:rotate(-4deg);pointer-events:none}#skill-meter{position:fixed;z-index:7;right:25px;bottom:25px;width:170px;pointer-events:none}#skill-meter small{font-size:10px;letter-spacing:.13em;color:#d9e2de}#skill-meter>div{height:5px;margin-top:7px;background:#fff2}#skill-meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#8f3bb9,#f05a49);box-shadow:0 0 12px #a545cf;transform-origin:left}.toon-tag{color:var(--gold)}#touch-skill{right:112px;bottom:33px;width:67px;height:67px;background:radial-gradient(circle,#6a2d80bb,#171722dc);border-color:#c96def88}#touch-dash{right:102px;bottom:113px}.level-flash{animation:level-pop .7s ease both}@keyframes level-pop{0%{transform:scale(.8);opacity:0}45%{transform:scale(1.15)}100%{transform:none;opacity:1}}
@media(max-width:700px){.player-level{left:16px;top:64px;width:120px}#target-bar{top:110px;width:54vw}#combo{top:21%;right:18px;font-size:34px}#skill-meter{right:18px;bottom:182px;width:130px}#desktop-help{display:none!important}}
@media(max-width:700px){#portal-prompt{bottom:205px;width:calc(100% - 28px)}#portal-prompt strong{font-size:27px}}
#technique{position:fixed;z-index:9;left:50%;top:23%;transform:translateX(-50%) skewX(-7deg);min-width:260px;padding:8px 22px;text-align:center;background:linear-gradient(90deg,transparent,#0a1723e8 18% 82%,transparent);border-top:1px solid #e5bd7580;border-bottom:1px solid #e5bd7580;pointer-events:none;animation:technique-in .5s ease both}#technique strong{display:block;font:28px/.95 'Bebas Neue',sans-serif;letter-spacing:.08em;color:#f2e9da;text-shadow:0 0 20px #e35b46}#technique small{display:block;margin-top:5px;font-size:8px;letter-spacing:.2em;color:#e4b572}@keyframes technique-in{0%{opacity:0;transform:translateX(-50%) translateY(18px) skewX(-7deg) scale(.9)}35%{opacity:1}100%{transform:translateX(-50%) skewX(-7deg)}}@media(max-width:700px){#technique{top:26%;min-width:220px}#technique strong{font-size:23px}}
.stamina-label{display:block!important;margin-top:9px;color:#9fd9cb!important}.stamina-track{height:4px!important}.stamina-track i{background:linear-gradient(90deg,#4b9e8a,#a8e9d7)!important;box-shadow:0 0 10px #65cbb2!important}#music-toggle{position:fixed;z-index:8;left:22px;bottom:42px;padding:9px 12px;border:1px solid #96aca65e;background:#07151dcf;color:#dce8e3;font:600 10px 'Space Grotesk',sans-serif;letter-spacing:.12em;cursor:pointer;backdrop-filter:blur(8px)}#music-toggle span{color:var(--gold);margin-left:5px}#touch-guard{right:180px;bottom:91px;width:61px;height:61px;background:radial-gradient(circle,#28615abb,#152426dc);border-color:#91d1c288}@media(max-width:700px){#music-toggle{left:16px;bottom:181px;font-size:9px;padding:8px 10px}#skill-meter{bottom:212px}}
#music-toggle[hidden]{display:none!important}

.home-priority{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 18px;padding:12px 18px;border:1px solid #f0c66d;background:linear-gradient(90deg,#f1d28e,#e3ab55);color:#11191b;font-size:12px;font-weight:800;letter-spacing:.08em;box-shadow:0 0 28px #e4b5724d}.home-priority:hover,.home-priority:focus-visible{background:#fff1bf;transform:translateY(-2px)}
#quick-start{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;width:min(560px,100%);min-height:68px;margin:0 auto 12px;padding:13px 20px;border:1px solid #fff0ae;background:linear-gradient(95deg,#f3d88f,#e6a84b);color:#10191b;box-shadow:0 16px 55px #0007,0 0 35px #e4b57232;cursor:pointer}#quick-start span{font:25px 'Bebas Neue',sans-serif;letter-spacing:.08em}#quick-start small{font-size:10px;font-weight:600;letter-spacing:.04em}#quick-start:hover,#quick-start:focus-visible{background:#fff0b4;transform:translateY(-2px)}.loadout-label{margin:13px 0 9px;color:#91aaa4;font-size:9px;letter-spacing:.18em}
#first-victory{position:fixed;z-index:35;inset:0;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 35%,#5d431b8f,#02070be8 62%);backdrop-filter:blur(8px)}#first-victory[hidden]{display:none}.victory-card{position:relative;width:min(460px,100%);padding:38px;text-align:center;border:1px solid #f0cc78;background:radial-gradient(circle at 50% 0,#63451d65,transparent 38%),linear-gradient(145deg,#13272f,#071117);box-shadow:0 30px 110px #000,0 0 60px #e4b5722e}.victory-card:before{content:'';position:absolute;inset:9px;border:1px solid #e4b57235;pointer-events:none}.victory-card h2{margin:10px 0 17px;font:clamp(54px,11vw,78px)/.82 'Bebas Neue',sans-serif;color:#f6dfa0}.victory-card>p:not(.eyebrow){margin:0 auto 24px;max-width:340px;color:#c1d1cc;font-size:14px;line-height:1.55}.victory-card a,.victory-card button{display:block;width:100%;min-height:51px;padding:14px 16px;border:1px solid #e4b572;font-weight:800;letter-spacing:.09em;cursor:pointer}.victory-card a{background:#e4b572;color:#101719}.victory-card button{margin-top:9px;background:transparent;color:#f0eadf}
#instructions-toggle{position:fixed;z-index:8;right:70px;top:92px;height:42px;padding:0 14px;border:1px solid #d9b86e99;background:#07151dcc;color:#f0d792;font:700 9px 'Space Grotesk',sans-serif;letter-spacing:.13em;cursor:pointer;backdrop-filter:blur(8px)}#instructions-toggle[hidden]{display:none!important}
#instructions-panel{position:fixed;z-index:19;right:20px;top:145px;width:min(390px,calc(100% - 40px));max-height:calc(100dvh - 170px);overflow:auto;padding:27px;background:linear-gradient(145deg,#10252bf5,#071117fa);border:1px solid #e4b5729c;box-shadow:0 26px 90px #000d,0 0 45px #e4b57220;pointer-events:auto}#instructions-panel[hidden]{display:none}#instructions-close{position:absolute;right:12px;top:10px;width:34px;height:34px;border:0;background:transparent;color:#e9dbc1;font-size:25px;cursor:pointer}#instructions-panel h2{margin:8px 0 16px;font:58px/.82 'Bebas Neue',sans-serif;color:#f4d47e}#instructions-panel ol{margin:0 0 20px;padding-left:22px;color:#d9e3df;font-size:13px;line-height:1.55}#instructions-panel li{padding:4px 0}.instruction-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.instruction-grid p{margin:0;padding:10px;border:1px solid #ffffff1c;background:#ffffff08;font-size:11px;color:#b9cbc6}.instruction-grid strong{display:block;margin-bottom:4px;color:#e9c574;font-size:9px;letter-spacing:.14em}#instructions-panel>small{display:block;margin-top:16px;color:#91aaa4;line-height:1.5}
@media(max-width:700px){.home-priority{margin-bottom:12px}#instructions-toggle{right:64px;top:72px;height:38px;padding:0 10px;font-size:8px}#instructions-panel{right:14px;top:120px;width:calc(100% - 28px);max-height:calc(100dvh - 140px);padding:22px}#instructions-panel h2{font-size:48px}}

/* Horde combat HUD */
#wave-count{font:10px 'Space Grotesk',sans-serif;letter-spacing:.16em;color:var(--gold);margin-top:3px}#power-rack{position:fixed;z-index:7;left:50%;bottom:23px;transform:translateX(-50%);display:flex;gap:7px;pointer-events:auto}#power-rack[hidden]{display:none}#power-rack button{position:relative;min-width:118px;height:44px;padding:5px 9px 7px;border:1px solid #a9bdb64a;background:#07151ddd;overflow:hidden;cursor:pointer;text-align:left}#power-rack kbd{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:5px;border:1px solid #e5bd7570;color:var(--gold);font:700 10px 'Space Grotesk',sans-serif}#power-rack span{font:16px 'Bebas Neue',sans-serif;letter-spacing:.04em}#power-rack i{position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,#ffe7a0,#e34d3e);transform-origin:left;transform:scaleX(1)}#power-rack button.cooling{opacity:.52}#power-rack button.ready{box-shadow:0 0 22px #f0c46666;border-color:#f0c4669e}.mission strong{line-height:1}.stats{min-width:190px}#touch-wave,#touch-ray,#touch-ultimate{width:50px;height:50px;font-size:8px!important;background:#132430dd!important}#touch-wave{right:176px;bottom:26px}#touch-ray{right:225px;bottom:66px}#touch-ultimate{right:171px;bottom:82px;color:#ffe39a;border-color:#e4b57299!important}#touch-ultimate.ready{box-shadow:0 0 20px #ffd46f;background:#654114dd!important}
#direct-presave{position:fixed;z-index:8;left:22px;top:92px;padding:13px 16px;border:1px solid #f0cc78aa;background:#24190ddd;color:#ffe7a0;font:700 10px 'Space Grotesk',sans-serif;letter-spacing:.13em;backdrop-filter:blur(8px)}#direct-presave:focus-visible,#direct-presave:hover{background:#f0cc78;color:#111}.instruction-presave{display:block;margin-top:17px;padding:12px;border:1px solid #e4b57299;color:#f4d47e;text-align:center;font-size:12px}.quality-select{display:flex;justify-content:center;gap:7px;margin:14px auto 0;border:0}.quality-select legend{position:absolute;width:1px;height:1px;overflow:hidden}.quality-select button{min-height:34px;padding:7px 12px;border:1px solid #78908b66;background:#07151dcc;color:#abc0ba;font-size:9px;letter-spacing:.12em;cursor:pointer}.quality-select button[aria-pressed="true"]{border-color:var(--gold);color:#ffe3a2;background:#3a2918}
@media(max-width:700px){#direct-presave{left:12px;top:72px;padding:11px 10px;font-size:8px}.mission{display:flex;position:fixed;top:118px;left:50%;transform:translateX(-50%);width:min(300px,70vw);padding:7px 10px;background:#06141acc;border:1px solid #e4b5724d}.mission strong{font-size:14px}.mission small,#wave-count{font-size:8px}.quality-select{flex-wrap:wrap}.quality-select button{padding:6px 9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:700px){#power-rack{display:none!important}.stats{min-width:0}#wave-count{font-size:8px}#touch-guard{right:226px;bottom:119px;width:53px;height:53px}#touch-dash{right:106px;bottom:128px;width:54px;height:54px}#touch-skill{right:112px;bottom:45px;width:62px;height:62px}#touch-attack{right:20px;bottom:27px;width:78px;height:78px}}
#boss-hud{position:fixed;z-index:8;left:50%;top:78px;transform:translateX(-50%);width:min(620px,72vw);text-align:center;pointer-events:none;text-shadow:0 2px 12px #000}#boss-hud small{display:block;color:#f0bd74;font-size:9px;letter-spacing:.22em}#boss-hud strong{display:block;margin:4px 0;font:26px 'Bebas Neue',sans-serif;letter-spacing:.12em}#boss-hud>div{height:8px;padding:1px;border:1px solid #ffc98480;background:#16090de8}#boss-hud i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#8e121b,#ff6a42,#ffd073);box-shadow:0 0 14px #ff493d;transform-origin:left}#boss-hud span{display:block;margin-top:4px;color:#cfded9;font-size:8px;letter-spacing:.16em}@media(max-width:700px){#boss-hud{top:70px;width:68vw}#boss-hud strong{font-size:20px}.player-level{display:none}}
#boost-banner{position:fixed;z-index:9;left:50%;bottom:84px;transform:translateX(-50%);padding:7px 16px;border:1px solid #ffd07180;background:#07151de8;color:#ffe2a0;font:18px 'Bebas Neue',sans-serif;letter-spacing:.08em;pointer-events:none}

/* Phase Three: Open Gate */
.mode-select{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(620px,100%);margin:0 auto 13px}.mode-select button{padding:11px 14px;border:1px solid #78908b66;background:#07151dcc;text-align:left;cursor:pointer}.mode-select button strong,.mode-select button small{display:block}.mode-select button strong{font:20px 'Bebas Neue',sans-serif;letter-spacing:.08em}.mode-select button small{margin-top:2px;color:#9fb4ae;font-size:9px;letter-spacing:.08em}.mode-select button.active{border-color:var(--gold);background:linear-gradient(110deg,#4a2d18aa,#10232ad9);box-shadow:inset 3px 0 var(--gold),0 0 25px #e4b57222}.mode-select button:disabled{opacity:.42;cursor:not-allowed}#phase3-cinematic{position:fixed;z-index:18;inset:0;pointer-events:none;background:linear-gradient(90deg,#0008,transparent 35% 65%,#0008)}#phase3-cinematic[hidden]{display:none}.phase3-bars:before,.phase3-bars:after{content:'';position:absolute;left:0;right:0;height:10vh;background:#020405}.phase3-bars:before{top:0}.phase3-bars:after{bottom:0}.phase3-title-card{position:absolute;left:50%;top:50%;width:min(760px,calc(100% - 44px));transform:translate(-50%,-50%);text-align:center;text-shadow:0 4px 28px #000}.phase3-title-card p{margin:0 0 8px;color:var(--gold);font-size:10px;font-weight:800;letter-spacing:.34em}.phase3-title-card h2{margin:0;font:clamp(55px,10vw,120px)/.82 'Bebas Neue',sans-serif;letter-spacing:.03em}.phase3-title-card span{display:block;margin-top:15px;color:#d8e4df;font-size:12px;letter-spacing:.13em;text-transform:uppercase}#phase3-skip{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(12vh,env(safe-area-inset-bottom));padding:9px 13px;border:1px solid #ffffff55;background:#071219bb;color:#fff;pointer-events:auto;font-size:9px;letter-spacing:.16em}.phase3-story #first-victory{display:none!important}.phase3-story #touch-wave,.phase3-story #touch-ray,.phase3-story #touch-ultimate{display:none}.phase3-story #touch-guard{right:178px;bottom:104px}.phase3-story #touch-dash{right:105px;bottom:117px}.phase3-story #touch-skill{right:111px;bottom:34px}.phase3-story .mission{border-color:#e4b57277;box-shadow:0 0 30px #e4b57216}.phase3-story #wave-label{color:#f0c979}.phase3-cinematic-active #hud,.phase3-cinematic-active #touch,.phase3-cinematic-active #skill-meter,.phase3-cinematic-active #power-rack,.phase3-cinematic-active #target-bar{opacity:.16}
@media(max-width:700px){.mode-select{grid-template-columns:1fr}.mode-select button{padding:8px 12px}.mode-select button strong{font-size:17px}.mode-select button small{font-size:8px}.phase3-title-card h2{font-size:58px}.phase3-title-card span{font-size:10px;line-height:1.5}.phase3-story #portal-prompt{bottom:190px}.phase3-story #skill-meter{bottom:194px}}
@media(prefers-reduced-motion:reduce){.phase3-bars:before,.phase3-bars:after{transition:none}.phase3-cinematic-active #hud,.phase3-cinematic-active #touch{opacity:.3}}
#gate-reward{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 45%,#b3782933,transparent 42%),#02070bea;backdrop-filter:blur(9px)}#gate-reward[hidden]{display:none}#gate-reward>div{width:min(620px,100%);padding:clamp(28px,6vw,58px);border:1px solid #e4b572;background:linear-gradient(145deg,#173039,#09151b 62%);box-shadow:0 24px 120px #000;text-align:center}#gate-reward p{margin:0;color:#e4b572;font-size:11px;font-weight:800;letter-spacing:.2em}#gate-reward h2{margin:18px 0 12px;font:clamp(58px,10vw,104px)/.82 'Bebas Neue',sans-serif;letter-spacing:.03em}#gate-reward span{display:block;margin:0 auto 24px;max-width:430px;color:#c5d5d1;font-size:14px;line-height:1.5}#gate-reward a,#gate-reward button{display:block;width:100%;padding:17px;border:1px solid #e4b572;font-weight:900;letter-spacing:.1em;text-decoration:none;cursor:pointer}#gate-reward a{background:#e4b572;color:#081419;box-shadow:0 0 40px #e4b57244}#gate-reward button{margin-top:10px;background:transparent;color:#f2eadc}

/* Distinct thumb zones: movement on the left, actions on the right. */
@media(max-width:700px),(pointer:coarse){
 #touch{height:210px;padding-bottom:env(safe-area-inset-bottom)}
 #joystick{left:max(12px,env(safe-area-inset-left));bottom:calc(22px + env(safe-area-inset-bottom));width:96px;height:96px}
 #joystick span{left:28px;top:28px}
 #touch button,.phase3-story #touch button{width:48px;height:48px;font-size:8px;right:12px;bottom:calc(22px + env(safe-area-inset-bottom))}
 #touch #touch-attack{right:12px;width:58px;height:58px}
 #touch #touch-skill{right:78px}
 #touch #touch-dash{right:132px}
 #touch #touch-guard{right:12px;bottom:calc(88px + env(safe-area-inset-bottom))}
 #touch #touch-wave{right:66px;bottom:calc(88px + env(safe-area-inset-bottom))}
 #touch #touch-ray{right:120px;bottom:calc(88px + env(safe-area-inset-bottom))}
 #touch #touch-ultimate{right:66px;bottom:calc(142px + env(safe-area-inset-bottom))}
 #power-rack{display:none!important}#desktop-help{display:none!important}
 #skill-meter,.phase3-story #skill-meter{bottom:calc(205px + env(safe-area-inset-bottom))}
 .screen{overflow-y:auto;align-items:start}.select-card{margin:auto;max-height:none;overflow:visible}
 #music-toggle{left:12px;bottom:calc(144px + env(safe-area-inset-bottom))}
}
@media(pointer:coarse) and (orientation:landscape) and (max-height:500px){
 #hud{padding:8px 14px}.player-level{display:none}.mission{position:fixed;top:8px;left:50%;transform:translateX(-50%);width:44vw;background:#06141acc}.mission strong{font-size:14px}
 #boss-hud{top:65px;width:45vw}#boss-hud strong{font-size:18px}#target-bar{top:115px;width:36vw}
 #pause{top:70px}#direct-presave{top:62px;font-size:8px;padding:9px}#instructions-toggle{top:112px;bottom:auto}
 #skill-meter,.phase3-story #skill-meter{right:188px;bottom:18px;width:120px}#music-toggle{left:122px;bottom:22px}
 .phase3-story #portal-prompt,#portal-prompt{bottom:20px;width:36vw;padding:8px}#portal-prompt strong{font-size:18px}
 .weapons{grid-template-columns:repeat(3,1fr)}.weapons button{min-height:90px}.select-card{padding:16px}.select-card h1{font-size:44px;margin:12px}.mode-select{grid-template-columns:1fr 1fr}.phase3-title-card h2{font-size:46px}
}

#survival-dialog{width:min(560px,calc(100% - 28px));max-height:90dvh;overflow:auto;border:1px solid #e4b572;background:#091923;color:#f4ead8;padding:clamp(20px,5vw,38px);box-shadow:0 20px 100px #000}#survival-dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}#survival-dialog small{color:#e4b572;letter-spacing:.1em;font-size:12px}#survival-dialog h2{font-size:32px;margin:18px 0}#survival-dialog p{font-size:16px;line-height:1.5}#survival-dialog button{display:block;width:100%;padding:16px;margin:10px 0;text-align:left;background:#19353b;color:#f4ead8;border:1px solid #7a9994;font:inherit;cursor:pointer}#survival-dialog button:focus-visible{outline:3px solid #e4b572}.last-light #portal-prompt{display:none!important}.mode-select{flex-wrap:wrap}

#survival-difficulty{font:inherit;color:#edcf93;background:#142830;border:1px solid #a78d60;padding:10px;margin-bottom:12px;max-width:100%}.survivor-title{color:#e4b572;letter-spacing:.12em;font-size:12px}
