@font-face{font-family:system-local;src:local('Arial')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#07151c;color:#e6eee9;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:wait;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b9fff2;outline-offset:5px}button{border:0}button,input{-webkit-tap-highlight-color:transparent}.hidden{display:none!important}#game{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 65% 45%,#214449,#08131d 65%)}#scene,#scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#scene{touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 47%,transparent 48%,#020a1340 100%);z-index:1}.screen{position:absolute;inset:0;z-index:10}.title-screen{padding:36px 4.5vw 24px;background:linear-gradient(90deg,#051018e8 0%,#07121bc9 26%,#07131b1a 64%,transparent 100%);display:flex;flex-direction:column;justify-content:space-between}.title-top,.title-bottom{display:flex;align-items:center;justify-content:space-between}.studio-name{font-size:13px;letter-spacing:.3em;font-weight:800}.studio-name i{color:#a3bab7;font-size:9px;font-style:normal;letter-spacing:.2em;margin-left:13px}.stage-tag{font-size:10px;letter-spacing:.16em;color:#99c6c2;border:1px solid #779c9d55;padding:9px 12px;background:#10212666}.stage-tag b{font-weight:400;color:#678d90;margin-left:8px}.title-copy{margin-top:-15px;max-width:640px}.kicker{display:flex;align-items:center;gap:11px;font-size:10px;letter-spacing:.24em;color:#c9af77;font-weight:600}.kicker span{width:28px;height:1px;background:#d7ae65}h1{position:relative;display:inline-block;font-size:clamp(75px,9.8vw,156px);line-height:.81;font-weight:900;letter-spacing:-.055em;margin:29px 0 25px;color:#e4efe9;text-shadow:0 4px 35px #0005}h1 em{font-style:normal;color:#8de4d8;font-size:.91em;letter-spacing:-.065em}.title-rule{display:block;background:linear-gradient(90deg,#cbab73,#cbab7300);height:2px;margin-top:30px;width:80%}.intro{font-size:clamp(14px,1.3vw,18px);color:#abbdbb;line-height:1.7;letter-spacing:.025em;margin:0 0 28px}.title-actions{display:flex;gap:26px;align-items:center}.primary{padding:18px 24px;background:#bfece2;color:#09242b;font-size:12px;font-weight:800;letter-spacing:.13em;display:flex;align-items:center;justify-content:space-between;gap:48px;min-height:52px;transition:background .18s,transform .18s;box-shadow:0 0 35px #6ce9d51a;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}.primary:hover{background:#e5fff5;transform:translateY(-2px)}.primary span{font-size:19px;font-weight:400}.text-button{color:#b4c9c6;background:transparent;font-size:10px;font-weight:600;letter-spacing:.12em;padding:15px 0}.text-button:hover{color:#fff}.text-button span{margin-left:9px;font-size:15px}.game-details{display:flex;align-items:center;gap:12px;color:#6e9494;font-size:9px;letter-spacing:.12em;margin-top:23px}.game-details i{width:3px;height:3px;background:#668d8b;border-radius:100%}.best-score{font-size:10px;letter-spacing:.09em;color:#d2b985;margin-top:12px;min-height:12px}.title-bottom{font-size:9px;letter-spacing:.1em;color:#799795;gap:15px}.title-bottom b{display:block;font-size:8px;color:#4d7476;letter-spacing:.15em;margin-top:6px}.corner-setting{position:absolute;right:4.5vw;bottom:70px;border:1px solid #789c9655;width:40px;height:40px;color:#a7c8c3;background:#0b1c2380;font-size:20px}.modal-screen{display:flex;align-items:center;justify-content:center;background:#041018bc;backdrop-filter:blur(8px);padding:20px}.panel{width:min(480px,100%);background:linear-gradient(130deg,#173037f2,#0b1c25fa);border:1px solid #7ea5a03b;box-shadow:0 25px 80px #0008;padding:38px;max-height:calc(100dvh - 40px);overflow:auto;scrollbar-color:#41696a #10242c}.panel h2{font-size:35px;font-weight:650;letter-spacing:-.035em;line-height:1.12;margin:15px 0}.panel p{font-size:13px;line-height:1.7;color:#a4bcb9;margin:0 0 22px}.panel .primary{width:100%;margin-top:20px}.panel .text-button{display:block;margin:12px auto 0}.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:650;color:#93bab4}.button-row{display:flex;gap:10px;margin-top:12px}.secondary{padding:14px 16px;color:#acc9c3;background:#0a192157;border:1px solid #6c96954a;font-size:10px;letter-spacing:.1em;flex:1}.secondary:hover{background:#264349}.controls-panel{width:min(610px,100%)}.controls-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:14px 18px;font-size:11px;align-items:center;margin:23px 0}.controls-grid b{font-weight:450;color:#c6d8d2}kbd{font-family:inherit;border:1px solid #89aaa448;border-bottom-width:2px;padding:3px 6px;border-radius:3px;font-size:9px;background:#c0e3d309;color:#b9d5d0;white-space:nowrap}.panel .fine-print{font-size:11px;color:#809f9d;line-height:1.6;margin-top:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;font-size:12px;color:#bfd4cf;border-bottom:1px solid #799b9519}.setting-row input[type=range]{width:42%;accent-color:#8de6d5}.setting-row output{width:35px;text-align:right;color:#80b6ad;font-size:10px}.setting-row input[type=checkbox]{accent-color:#96e5d5;width:18px;height:18px}.setting-row select{max-width:60%;background:#0a1b25;color:#b9d9d1;border:1px solid #4e7370;padding:8px;font-size:10px}.panel #fullscreen-button{width:100%;margin-top:20px}#hud{position:absolute;top:max(25px,env(safe-area-inset-top));left:30px;right:30px;display:flex;align-items:start;justify-content:space-between;gap:20px;pointer-events:none;z-index:4}#hud button{pointer-events:auto}.pilot{display:flex;gap:13px;align-items:center;background:linear-gradient(90deg,#071821e8,#07182177);padding:12px 18px 12px 12px;border-left:2px solid #8ad9cb;width:250px}.crest{font-size:39px;line-height:1;color:#80dece;text-shadow:0 0 20px #57d7c89c}.pilot>div{flex:1}.pilot .eyebrow{font-size:8px}.pilot .eyebrow span{float:right;color:#d7e6df;letter-spacing:0;font-size:9px}.health-track{margin:8px 0 7px;height:5px;width:100%;background:#030e15}.health-track>div{height:100%;width:100%;background:linear-gradient(90deg,#45a99d,#a1efc8);transition:width .16s}#buffs{font-size:7px;letter-spacing:.12em;color:#6faaa3}.wave-readout{text-align:center;display:flex;align-items:center;flex-direction:column;text-shadow:0 2px 9px #000;background:radial-gradient(ellipse,#051620b3,transparent 72%);padding:5px 20px}.wave-readout strong{font-size:11px;letter-spacing:.13em;font-weight:400;color:#a9c8bf}.wave-readout strong b{font-size:24px;font-weight:700;letter-spacing:.03em;color:#e0e9d7;margin-left:4px}.wave-readout strong i{font-style:normal;font-size:10px;color:#819b99;letter-spacing:0;margin-left:4px}#objective{font-size:9px;color:#a6c4bd;margin-top:5px;max-width:230px}.hud-right{display:flex;align-items:center;gap:8px}.currency{position:relative;min-width:90px;padding:11px 16px 9px 30px;background:#071821b3;margin-right:5px}.currency>span{position:absolute;color:#dfbe77;left:12px;top:14px;font-size:13px}.currency strong{font-weight:600;font-size:20px;line-height:1}.currency small{display:block;font-size:6px;letter-spacing:.16em;margin-top:5px;color:#7f9991}.icon-button{background:#091e28b3;border:1px solid #84b6b444;color:#b8dcd6;width:37px;height:37px;font-size:18px}.icon-button:hover{background:#23454a}.desktop-hints{position:absolute;bottom:23px;left:30px;display:flex;gap:18px;z-index:3;pointer-events:none}.desktop-hints span{font-size:9px;color:#afc8c0;text-shadow:0 1px 3px #000}.desktop-hints kbd{margin-right:3px;background:#06161fc7}.ability-status{position:absolute;right:30px;bottom:23px;z-index:3;display:flex;gap:8px}.ability-status>div{position:relative;display:flex;align-items:center;gap:8px;min-width:74px;height:33px;padding:4px 11px;background:#091e28bb;border:1px solid #76aaa13b;overflow:hidden}.ability-status b{color:#8ddfce;font-size:21px;font-weight:400}.ability-status span{font-size:7px;letter-spacing:.12em;color:#a6cfc7}.ability-status i{position:absolute;bottom:0;left:0;height:2px;background:#7ce5cc;width:100%}.combo{position:absolute;right:35px;top:130px;display:flex;flex-direction:column;text-align:right;z-index:3;pointer-events:none}.combo small{font-size:8px;letter-spacing:.2em;color:#b2d4c9}.combo b{font-size:44px;font-weight:650;line-height:1.2;color:#f4d590;text-shadow:0 0 25px #f4c66855}.combo>span{font-size:7px;letter-spacing:.18em;color:#b9dcd3}.wave-banner{position:absolute;top:24%;left:50%;transform:translateX(-50%);z-index:5;pointer-events:none;font-size:clamp(20px,3vw,38px);font-weight:700;letter-spacing:.07em;color:#c9f5df;text-align:center;white-space:nowrap;text-shadow:0 0 40px #61eed08c,0 2px 12px #001017;opacity:0;transition:opacity .2s}.wave-banner.show{opacity:1}.wave-banner small{display:block;font-size:9px;letter-spacing:.22em;font-weight:400;color:#e1c689;margin-top:10px}.upgrade-panel{width:min(850px,100%);text-align:center}.upgrade-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:25px}.upgrade-card{color:#c2ded5;background:linear-gradient(150deg,#173d40,#10242d);border:1px solid #709c9566;min-height:205px;padding:20px;text-align:left;display:flex;flex-direction:column;gap:16px;transition:transform .18s,background .18s}.upgrade-card:hover{transform:translateY(-5px);background:linear-gradient(150deg,#235653,#15343d)}.upgrade-card .glyph{color:#d5bd86;font-size:35px;line-height:1}.upgrade-card strong{font-size:15px;letter-spacing:-.02em}.upgrade-card span{font-size:11px;line-height:1.6;color:#90b4aa}.upgrade-card small{margin-top:auto;font-size:8px;letter-spacing:.2em;color:#b1e7d3}.result-stats{display:flex;justify-content:space-between;margin:30px 0;padding:22px 0;border-top:1px solid #759b9438;border-bottom:1px solid #759b9438}.result-stats>div{display:flex;flex-direction:column;gap:8px}.result-stats strong{font-size:27px;color:#d9e6d5;font-weight:600}.result-stats span{font-size:8px;letter-spacing:.15em;color:#82aaa0}.touch-controls{position:absolute;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:end;z-index:6;pointer-events:none;user-select:none;-webkit-user-select:none}.touch-controls button{pointer-events:auto;width:56px;height:56px;background:#0b2736a6;border:1px solid #8cc6be75;color:#b8e9dc;border-radius:50%;touch-action:none;backdrop-filter:blur(2px)}.touch-controls button.pressed{background:#5bbba7b8;color:#fff;transform:scale(.94)}.touch-move,.touch-actions{display:flex;gap:8px;align-items:end}.touch-move button{font-size:39px;width:64px;height:64px}.touch-actions button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px}.touch-actions b{font-size:24px;font-weight:400}.touch-actions small{font-size:6px;letter-spacing:.08em}.touch-actions .touch-jump{width:70px;height:70px;background:#366f6dba}.touch-actions button[data-action=slam]{width:44px;height:44px}.touch-actions button[data-action=attack]{background:#715c338a;border-color:#e2bf7388}.performance{position:absolute;left:15px;bottom:78px;font:10px ui-monospace,monospace;color:#a4d3c3;background:#04141bba;padding:7px;z-index:8;white-space:pre;pointer-events:none}.notification{position:absolute;left:50%;bottom:100px;transform:translateX(-50%);max-width:80%;background:#15363bf2;border:1px solid #5e9388;color:#c3e4d7;padding:12px 18px;z-index:30;font-size:12px;text-align:center}#damage-flash{position:absolute;inset:0;box-shadow:inset 0 0 100px #e6544c88;opacity:0;pointer-events:none;z-index:2;transition:opacity .12s}#boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#07151c;z-index:40;transition:opacity .45s}#boot .rift-mark{font-size:65px;color:#9fe8dc;animation:pulse 1.7s ease-in-out infinite}#boot p{font-size:10px;letter-spacing:.2em;color:#88b4ae;text-transform:uppercase}@keyframes pulse{50%{opacity:.3;transform:scale(.9)}}@media(min-width:1600px){.title-screen{padding:45px 6vw 30px}.title-copy{margin-left:2vw}.title-bottom{font-size:11px}.kicker{font-size:12px}.primary{font-size:13px;padding:21px 28px}.intro{margin-bottom:34px}.game-details{font-size:10px}.title-actions{gap:36px}}
@media(max-width:900px){#hud{left:15px;right:15px;top:15px;gap:9px}.pilot{width:200px;padding:10px;gap:7px}.crest{font-size:30px}.wave-readout{padding:3px 5px}.wave-readout .eyebrow{font-size:7px}.currency{min-width:60px;padding-right:8px}.desktop-hints{gap:9px;left:15px}.ability-status{right:15px}.title-copy{margin-top:0}.title-screen{padding-top:25px}.title-bottom{font-size:8px}.panel{padding:27px}.title-actions{gap:20px}.upgrade-choices{gap:10px}.upgrade-card{padding:16px}.combo{right:20px;top:115px}}
@media(max-width:600px){.title-screen{padding:24px 24px 20px;background:linear-gradient(90deg,#06121be8,#06121b88 70%,#06121b44)}.title-copy{padding-bottom:15px}h1{font-size:clamp(75px,20vw,120px);margin:25px 0}.intro{font-size:14px}.title-actions{align-items:stretch;flex-direction:column;gap:4px;max-width:260px}.title-actions .text-button{text-align:left}.title-bottom{font-size:7px;gap:10px}.title-bottom b{font-size:6px}.stage-tag{font-size:7px;padding:7px}.stage-tag b{display:none}.studio-name{font-size:10px;letter-spacing:.2em}.studio-name i{display:none}.kicker{font-size:8px;letter-spacing:.16em}.game-details{font-size:7px;gap:8px;margin-top:12px}.corner-setting{bottom:60px;right:24px}#hud{left:10px;right:10px;top:max(12px,env(safe-area-inset-top));gap:5px;flex-wrap:wrap}.pilot{width:163px;gap:6px;padding:8px;border-left-width:1px}.crest{font-size:26px}.pilot .eyebrow{font-size:7px}.pilot .eyebrow span{font-size:8px}.health-track{margin:6px 0}#buffs{font-size:5px}.hud-right{gap:5px}.currency{min-width:50px;padding:7px 7px 7px 23px;margin-right:0}.currency>span{left:8px;top:9px;font-size:10px}.currency strong{font-size:17px}.currency small{font-size:5px}.icon-button{width:31px;height:31px;font-size:16px}.wave-readout{position:absolute;top:67px;left:50%;transform:translateX(-50%);width:250px}.wave-readout .eyebrow{font-size:6px}.wave-readout strong{font-size:8px}.wave-readout strong b{font-size:20px}#objective{font-size:8px}.combo{top:140px;right:17px}.combo b{font-size:31px}.combo small,.combo>span{font-size:6px}.ability-status{display:none}.touch-controls{left:12px;right:12px;bottom:max(20px,env(safe-area-inset-bottom))}.touch-move{gap:6px}.touch-move button{width:49px;height:55px;border-radius:12px}.touch-actions{gap:6px;flex-wrap:wrap;width:146px;justify-content:flex-end}.touch-actions button{width:45px;height:45px}.touch-actions .touch-jump{width:58px;height:58px}.touch-actions button[data-action=slam]{width:36px;height:36px}.touch-actions button[data-action=dash]{width:42px;height:42px}.touch-actions button[data-action=attack]{width:49px;height:49px}.touch-actions button[data-action=slam],.touch-actions button[data-action=dash]{transform:translateY(-38px)}.touch-actions .touch-jump,.touch-actions button[data-action=attack]{margin-top:-30px}.panel h2{font-size:29px}.panel{padding:25px 22px}.panel p{font-size:12px}.controls-grid{font-size:9px;gap:14px 10px;grid-template-columns:1fr 1.3fr}.controls-grid kbd{font-size:8px}.upgrade-choices{grid-template-columns:1fr;gap:10px}.upgrade-card{display:grid;grid-template-columns:36px 1fr;gap:6px 12px;min-height:0;padding:13px 15px}.upgrade-card .glyph{grid-row:1/4;font-size:30px;padding-top:4px}.upgrade-card strong{font-size:14px}.upgrade-card span{font-size:10px;line-height:1.4}.upgrade-card small{font-size:7px}.upgrade-panel h2{margin:10px 0}.upgrade-panel p{margin-bottom:5px}.upgrade-choices{margin-top:15px}.wave-banner{top:29%;font-size:22px}.wave-banner small{font-size:8px}.setting-row{font-size:11px}.performance{bottom:130px}.title-top{gap:12px}}
@media(max-height:550px){.title-screen{padding:18px 28px 14px}.title-copy{margin:0}.title-top{height:23px}.kicker{font-size:7px}h1{font-size:clamp(60px,14vh,90px);margin:14px 0 10px}.title-rule{margin-top:15px}.intro{font-size:11px;line-height:1.5;margin-bottom:12px}.title-actions{flex-direction:row;gap:20px;max-width:none}.title-actions .primary{padding:12px 20px;min-height:40px;font-size:10px}.game-details{margin-top:10px;font-size:7px}.best-score{font-size:8px;margin-top:7px}.title-bottom{font-size:7px}.corner-setting{bottom:45px}.stage-tag{font-size:7px}.pilot{width:180px}.wave-readout{position:static;transform:none;width:auto;max-width:220px}#hud{flex-wrap:nowrap}.wave-readout .eyebrow{font-size:6px}.wave-readout strong b{font-size:21px}.combo{top:100px}.touch-controls{bottom:12px}.touch-move button{width:51px;height:51px}.touch-actions{width:auto;flex-wrap:nowrap}.touch-actions button{width:44px;height:44px}.touch-actions .touch-jump{width:58px;height:58px}.touch-actions button[data-action=slam],.touch-actions button[data-action=dash]{transform:none}.touch-actions .touch-jump,.touch-actions button[data-action=attack]{margin-top:0}.desktop-hints{bottom:12px}.panel{padding:22px 28px}.panel h2{font-size:27px;margin:10px 0}.panel p{font-size:11px;margin-bottom:12px}.panel .primary{margin-top:12px;padding:12px 20px;min-height:42px}.upgrade-choices{grid-template-columns:repeat(3,1fr);margin-top:15px}.upgrade-card{display:flex;min-height:175px;padding:14px;gap:10px}.upgrade-card .glyph{font-size:24px}.upgrade-card span{font-size:10px}.controls-grid{margin:12px 0;gap:10px}.panel .fine-print{margin-top:12px}.setting-row{min-height:45px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Compact phones keep every action target separate and thumb sized. */
@media(max-width:600px) and (min-height:551px){.touch-actions{display:grid;grid-template-columns:52px 60px;grid-template-rows:48px 60px;gap:8px;width:120px;align-items:center;justify-items:center}.touch-actions button[data-action=slam],.touch-actions button[data-action=dash]{width:46px;height:46px;transform:none}.touch-actions button[data-action=attack]{width:52px;height:52px;margin-top:0}.touch-actions .touch-jump{width:60px;height:60px;margin-top:0}.touch-actions button[data-action=slam]{grid-column:1;grid-row:1}.touch-actions button[data-action=dash]{grid-column:2;grid-row:1}.touch-actions button[data-action=attack]{grid-column:1;grid-row:2}.touch-actions button[data-action=jump]{grid-column:2;grid-row:2}}
