@font-face{font-family:Cormorant;src:url('./font.woff2')}*{box-sizing:border-box}body{margin:0;background:#080c19;color:#f4e9cf;font-family:Georgia,serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit;border:1px solid #cda45566;background:#151b2c;border-radius:6px;min-height:40px;padding:8px 16px}button:hover{border-color:#ffd085;background:#292739}button:focus-visible,a:focus-visible{outline:3px solid #7be7ef;outline-offset:3px}button:disabled{opacity:.6}header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #d8af5926;background:#0b1020}header a{color:#e4cf9f;text-decoration:none;font:14px system-ui}header div{display:flex;gap:10px}header button{font:12px system-ui}.brand{font-size:22px;color:#e5c582}.brand i{font-size:12px;margin:0 16px}#stage{position:relative;width:100%;height:calc(100dvh - 98px);max-width:1600px;margin:auto;overflow:hidden;background:#0b1023;touch-action:none}canvas{width:100%;height:100%;display:block;object-fit:contain}#hud{position:absolute;top:18px;left:4%;right:4%;display:flex;justify-content:space-between;gap:24px;pointer-events:none}#hud[hidden]{display:none}.health{width:25%;max-width:290px;font:12px system-ui;letter-spacing:2px}.health span{display:flex;justify-content:space-between;margin-bottom:9px}.health b{font-weight:400;color:#e5cc9c}.health meter{width:100%;height:10px;appearance:none;background:#292737;border:1px solid #d1b26466;border-radius:20px;overflow:hidden}.health meter::-webkit-meter-bar{background:#292737;border:0}.health meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#44b4a4,#c4e5a4)}.boss meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#b14141,#ee9d54)}.chapter{text-align:center;width:40%;font:11px system-ui;letter-spacing:2px}.chapter small{display:block;margin-top:8px;font-size:11px;letter-spacing:0;color:#d0c5b0}.energy{height:4px;background:#283040;width:150px;margin:9px auto 0}.energy span{display:block;height:100%;background:#78d6de;width:0}#overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(90deg,#080d20b0,#080d2020,#080d20a0);padding:20px}#overlay[hidden]{display:none}.panel{text-align:center;width:min(650px,95vw);padding:30px 25px;background:radial-gradient(ellipse,#090e24ed 35%,#090e2499 70%,transparent 75%)}#eyebrow{font:11px system-ui;letter-spacing:5px;color:#e6b65d}h1{font-family:Cormorant,Georgia,serif;font-size:clamp(40px,6vw,82px);margin:12px 0 0;font-weight:600;letter-spacing:2px;color:#ffe1a1;text-shadow:0 4px 20px #000}h1 em{font-size:.4em;font-weight:400;color:#c09b60}#subtitle{font:12px system-ui;letter-spacing:7px;color:#e2bd7c;margin:10px 0 25px}#description{font-size:17px;line-height:1.7;color:#d7d1c3}.primary{display:block;margin:24px auto 14px;padding:15px 40px;background:linear-gradient(#e9bd72,#bf8641);color:#1b1420;border:1px solid #ffe2a2;box-shadow:0 5px 30px #ff9e1920;font-weight:bold;font-size:18px}.primary:hover{background:#f3cd8a}.secondary{margin:auto}.secondary[hidden]{display:none}#controls{font:11px/2 system-ui;color:#b4b6c0}.footnote{font:10px system-ui;color:#8f97ac}#toast{position:absolute;left:15%;right:15%;bottom:100px;text-align:center;color:#ffdf96;font:17px Georgia;text-shadow:0 2px 6px #000;pointer-events:none}footer{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:#8c94aa;font:9px system-ui;letter-spacing:2px}#touch{display:none;position:absolute;bottom:10px;left:12px;right:12px;justify-content:space-between;pointer-events:none}#touch button{touch-action:none;user-select:none;pointer-events:auto;width:56px;height:56px;padding:4px;border-radius:50%;background:#111a30d9;font-size:22px}#touch button small{display:block;font:9px system-ui}.move,.actions{display:flex;gap:8px;align-items:end}#touch button.held{background:#67502c}#touch button[data-action=shoot]{width:68px;height:68px;border-color:#e6b15a;color:#ffdd9a}@media(pointer:coarse){#touch{display:flex}#controls{display:none}#toast{bottom:100px}}@media(max-height:550px){header{height:42px}#stage{height:calc(100dvh - 42px)}footer{display:none}.panel{padding:10px}h1{font-size:38px}#description{font-size:13px;margin:8px}#subtitle{margin:5px 0 10px}.primary{margin:12px auto;padding:10px 25px}#controls{line-height:1.5;margin:4px}.footnote{margin:5px}#hud{top:8px}}@media(max-width:600px){header{padding:0 12px}.brand{font-size:16px}.brand i{margin:0 4px}header button{padding:6px 9px}#hud{gap:8px;left:3%;right:3%}.chapter{font-size:9px;letter-spacing:0}.health{font-size:10px;letter-spacing:1px}.chapter small{font-size:9px}.energy{width:100px}#touch{left:6px;right:6px}.move,.actions{gap:4px}#touch button{width:42px;height:48px;font-size:18px}#touch button[data-action=shoot]{width:52px;height:58px}footer{padding:0 12px;font-size:7px;letter-spacing:1px}.panel{padding:20px 5px}#eyebrow{letter-spacing:2px;font-size:9px}#description{font-size:14px}}

.rotate{display:none}@media(pointer:coarse){.rotate{display:block;margin-top:8px;color:#d8b77a}}
/* Match Lanka Dahan's native-gesture protection and keep labels out of hit testing. */
#touch button{touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none}#touch button small{pointer-events:none}
@media(pointer:coarse){#hud{background:linear-gradient(#080d1ef5,#080d1ed9,transparent);left:0;right:0;top:0;padding:10px 12px 18px;gap:8px}#touch{bottom:max(10px,env(safe-area-inset-bottom));padding:6px 0;background:linear-gradient(transparent,#080d1ecc)}#touch button{min-width:44px;min-height:50px}#toast{bottom:100px;font-size:14px;left:8%;right:8%}}
/* Two-thumb controls and a visible desktop astra selector. */
#control-options{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:16px auto 0;max-width:520px;font:12px system-ui}#control-options label{display:flex;align-items:center;gap:7px}#control-options select{font:inherit;color:#ffe0a1;background:#192139;border:1px solid #9e855d;border-radius:5px;padding:7px}#mode-help{flex-basis:100%;margin:0;color:#b7c5d6;line-height:1.5}#control-options input{accent-color:#e7bc75}#overlay{z-index:8;overflow-y:auto;touch-action:pan-y}#touch{z-index:5}#hud{z-index:3}#toast{z-index:4}
#arsenal{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:4;text-align:center;max-width:95%;width:max-content;background:#0b1123e8;border:1px solid #bda16a55;border-radius:10px;padding:10px}#arsenal[hidden]{display:none}.weapon-options{display:flex;gap:8px;align-items:stretch}.weapon-options button{font:12px system-ui;text-align:left;padding:8px 14px}.weapon-options strong,.weapon-options small{display:block}.weapon-options small{font-size:10px;margin-top:4px;color:#bec6d4}.weapon-options button[aria-pressed=true]{border-color:#ffe2a1;background:#56452d;box-shadow:inset 0 0 0 1px #c7a46b}.weapon-options button:disabled{opacity:.7}.weapon-options button[aria-pressed=true]:disabled{opacity:1}#weapon-help{font:11px system-ui;color:#e4d3ad;margin:8px 0 0}#cast-selected{color:#ffe1a1}
#move-pad{position:relative;display:flex;align-items:center;justify-content:space-around;width:132px;height:64px;background:#111a30db;border:1px solid #cda45588;border-radius:32px;pointer-events:auto;touch-action:none;color:#ffe0a0;font:22px system-ui}#move-pad i{height:28px;width:20px;border-radius:12px;background:#8d9ab544}#move-pad span,#move-pad i,#move-pad small{pointer-events:none}#move-pad small{position:absolute;bottom:3px;font:8px system-ui;letter-spacing:2px;color:#b4bbc9}#move-pad[data-direction=left]{background:linear-gradient(90deg,#77592d,#111a30 65%)}#move-pad[data-direction=right]{background:linear-gradient(270deg,#77592d,#111a30 65%)}#auto-status{position:absolute;bottom:83px;right:0;font:9px system-ui;letter-spacing:1px;color:#c9dccf;text-align:right}body[data-mode=manual] #auto-status{display:none}body[data-mode=assisted] #touch [data-action=shoot],body[data-mode=assisted] #touch [data-action=swap]{display:none}#touch .unavailable{opacity:.55}#touch .actions{align-items:center;gap:10px}#touch [data-action=jump]{width:68px;height:68px;border-color:#e9c17c}#touch [data-action=astra]{width:62px;height:62px;border-color:#80cdb7}#touch [data-action=dodge]{width:54px;height:54px}#touch [data-action=astra] small{font-size:11px}body.mirrored #touch{flex-direction:row-reverse}body.mirrored #auto-status{right:auto;left:0;text-align:left}
@media(pointer:coarse){body.in-battle header{height:0;border:0;padding:0}body.in-battle header>a,body.in-battle header>.brand,body.in-battle #sound{display:none}body.in-battle header #pause{position:fixed;right:max(7px,env(safe-area-inset-right));top:7px;z-index:10;min-height:34px;padding:6px 9px;font-size:11px}body.in-battle footer{display:none}body.in-battle #stage{height:100dvh;max-width:none}body.in-battle #hud{padding:12px 64px 12px 10px;gap:10px}#hud .health{font-size:10px;letter-spacing:1px}#hud .health span{margin-bottom:5px}#hud .chapter{font-size:9px;letter-spacing:0}#hint{font-size:10px}#arsenal{display:none}#touch{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(9px,env(safe-area-inset-bottom));align-items:center;padding:0;background:none}#toast{bottom:110px;font-size:13px;left:15%;right:15%}#controls{display:none}#control-options{font-size:11px;gap:8px}#overlay{align-items:safe center}.panel{padding:16px 12px}body[data-control-size=large] #move-pad{width:150px;height:76px}body[data-control-size=large] #touch .actions button{width:68px;height:68px}body[data-control-size=large] #touch [data-action=jump]{width:78px;height:78px}body[data-mode=manual] #touch .actions{display:grid;grid-template-columns:repeat(3,52px);gap:5px}body[data-mode=manual] #touch .actions button{width:50px;height:50px;font-size:20px}body[data-mode=manual] #touch [data-action=jump]{grid-column:2;grid-row:1 / 3;height:68px}body[data-mode=manual] #touch [data-action=shoot]{grid-column:3;grid-row:1 / 3;height:68px}body[data-mode=manual] #touch [data-action=astra]{grid-column:1;grid-row:2}body[data-mode=manual] #touch [data-action=swap]{position:absolute;right:0;bottom:108px;width:44px;height:40px;border-radius:6px}body.mirrored[data-mode=manual] #touch [data-action=swap]{right:auto;left:0}#touch .move{margin:0}}
@media(pointer:coarse) and (orientation:landscape){#hud .chapter #chapter{display:none}#hud .chapter small{margin-top:1px}#hud .energy{margin-top:5px;height:3px}#touch{left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}#overlay .panel{padding:8px 12px;max-width:720px;width:95%}#overlay h1{font-size:32px;margin:0}#overlay #eyebrow{margin:4px}#overlay #subtitle{margin:4px}#overlay #description{font-size:12px;line-height:1.4;margin:4px}#overlay .primary{padding:8px 20px;min-height:36px;margin:8px auto}#overlay .footnote{display:none}#control-options{margin-top:8px}#mode-help{font-size:10px;max-width:600px}}
@media(pointer:coarse) and (max-width:420px){#touch{left:8px;right:8px}#move-pad{width:112px;height:60px}#touch .actions{gap:6px}#touch [data-action=dodge]{width:48px;height:52px}#touch [data-action=jump]{width:60px;height:64px}#touch [data-action=astra]{width:56px;height:60px}body[data-control-size=large] #move-pad{width:120px;height:70px}body[data-control-size=large] #touch .actions button{width:60px;height:66px}body[data-control-size=large] #touch [data-action=jump]{width:66px;height:74px}body[data-mode=manual] #touch .actions{grid-template-columns:repeat(3,48px)}#hud .chapter{width:44%}.health{width:23%}}
#menu-sound,.menu-games{font:11px system-ui;min-height:30px;padding:6px 10px}.menu-games{color:#e5c180;display:inline-flex;align-items:center}body:not(.in-battle) #control-options #menu-sound{display:none}
@media(pointer:coarse){body[data-mode=manual] #arsenal{display:block;top:88px;bottom:auto;padding:5px;max-width:94%;background:#0b1123c9}body[data-mode=manual] #arsenal .weapon-options button{padding:5px 10px;min-height:36px;font-size:10px}body[data-mode=manual] #arsenal .weapon-options small{font-size:9px}body[data-mode=manual] #cast-selected{display:none}body[data-mode=manual] #weapon-help{margin:4px 0 0;font-size:9px}body[data-mode=manual][data-control-size=large] #touch .actions{grid-template-columns:repeat(3,56px)}body[data-mode=manual][data-control-size=large] #touch .actions button{width:54px;height:56px}body[data-mode=manual][data-control-size=large] #touch [data-action=jump],body[data-mode=manual][data-control-size=large] #touch [data-action=shoot]{height:76px}body[data-mode=manual][data-control-size=large] #move-pad{width:120px}}
@media(pointer:coarse) and (orientation:landscape){body[data-mode=manual] #arsenal{top:70px}body[data-mode=manual] #arsenal small,body[data-mode=manual] #weapon-help{display:none}}
@media(pointer:coarse) and (max-width:360px){body[data-control-size=large] #move-pad{width:100px}body[data-control-size=large] #touch .actions button{width:52px;height:60px}body[data-control-size=large] #touch [data-action=jump]{width:58px;height:66px}}
@media(pointer:coarse) and (orientation:portrait){#hud .health span{letter-spacing:0;font-size:9px;gap:5px}#hud .health{min-width:65px}#hud .chapter{flex:1}#hud #chapter{font-size:8px}#hud #astra-label{font-size:8px}#hud{padding-right:64px}#auto-status{letter-spacing:.5px;font-size:9px}}
/* Menus may scroll on short phones; only the canvas and game controls suppress gestures. */
#stage{touch-action:auto}#game{touch-action:none}#overlay{touch-action:pan-y}
