.menu-feedback{position:absolute;z-index:5;top:calc(var(--safe-top) + 12px);right:calc(var(--safe-right) + 16px);min-height:36px;padding:7px 12px;border:1px solid #fff3b545;border-radius:20px;background:#081619ab;backdrop-filter:blur(8px);color:#f4df9b;font-size:11px;cursor:pointer}.utility .battle-feedback{width:48px;font-size:12px}.feedback-trigger:focus-visible{outline:3px solid #ffe3a0;outline-offset:3px}.feedback-dialog{color:#fff7dc;border:1px solid #ffdd7259;border-radius:22px;background:#112023f5;padding:22px;width:calc(100vw - 24px);max-width:440px;width:min(440px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 28px 100px #0009;font:inherit;overscroll-behavior:contain}.feedback-dialog::backdrop{background:#0009;backdrop-filter:blur(6px)}.feedback-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.feedback-heading small{color:#ddc587;font-size:11px}.feedback-heading h2{margin:7px 0 0;font-size:24px}.feedback-heading button{flex:0 0 36px;width:36px;height:36px;background:#ffffff0d;border:1px solid #ffffff30;border-radius:12px;font-size:22px;cursor:pointer}.feedback-note{color:#b8cfca;line-height:1.6;font-size:13px}.feedback-dialog label{display:grid;gap:7px;margin:15px 0;font-size:13px}.feedback-dialog input,.feedback-dialog select,.feedback-dialog textarea{width:100%;min-width:0;padding:11px 12px;color:#fff5d9;background:#061214;border:1px solid #b4c8c63d;border-radius:12px;font:inherit;font-size:16px;line-height:1.5;resize:vertical;touch-action:auto}.feedback-dialog textarea{min-height:100px;max-height:220px}.feedback-dialog input:focus,.feedback-dialog textarea:focus,.feedback-dialog select:focus{outline:2px solid #f6d260;outline-offset:2px}.feedback-context{font-size:11px;color:#b9cfca}.feedback-privacy{font-size:10px;line-height:1.65;color:#96b4ae}#feedbackMessage{font-size:13px;line-height:1.5;color:#ffda84;min-height:18px;overflow-wrap:anywhere}.feedback-dialog .primary{width:100%;margin-top:4px;cursor:pointer}.feedback-dialog button:disabled{opacity:.55;cursor:wait}@media(orientation:landscape){.menu-feedback{right:calc(var(--safe-right) + 16px);top:calc(var(--safe-top) + 10px)}.game-shell[data-screen="playing"] .boss-hud{right:170px}.feedback-dialog{width:min(550px,calc(100vw - 36px));padding:17px 22px}.feedback-dialog label{margin:10px 0}.feedback-dialog textarea{min-height:74px}.feedback-heading h2{font-size:22px}}@media(max-height:620px){.feedback-dialog{padding:16px}.feedback-heading h2{font-size:20px}.feedback-dialog label{margin:9px 0}.feedback-note{margin:8px 0}.feedback-privacy{margin:7px 0}}
.feedback-dialog:not([open]),.feedback-backdrop[hidden]{display:none}.feedback-dialog.is-fallback[open]{display:block;position:fixed;z-index:101;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}.feedback-backdrop{position:fixed;z-index:100;inset:0;background:#000a;backdrop-filter:blur(6px)}.feedback-open .game-shell{pointer-events:none}
.feedback-dialog input,.feedback-dialog textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.menu-profile{position:absolute;z-index:5;left:calc(var(--safe-left) + 16px);top:calc(var(--safe-top) + 12px);max-width:calc(100% - var(--safe-left) - var(--safe-right) - 160px);padding:6px 12px;border:1px solid #fff3b545;border-radius:14px;background:#081619ab;backdrop-filter:blur(8px);text-align:left;cursor:pointer}.menu-profile span{font-size:11px;color:#f4df9b}.menu-profile small{display:block;max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px;color:#c1d4cc;margin-top:2px}.profile-meta{display:flex;justify-content:space-between;gap:8px;color:#b4c9c1;font-size:11px}.profile-meta span:last-child{white-space:nowrap}#profileMessage{min-height:19px;color:#ffda84;font-size:13px;line-height:1.5}.profile-dialog .text-button{min-height:36px;margin-top:8px}.menu-profile:focus-visible{outline:3px solid #ffe3a0;outline-offset:3px}
@media(orientation:landscape){.menu-profile{left:calc(var(--safe-left) + 23px);top:calc(var(--safe-top) + 10px)}.menu-overlay .title-block{padding-top:56px}.menu-overlay .title-block h1{font-size:clamp(44px,8vw,66px)}}
@media(orientation:landscape) and (min-width:600px){.profile-dialog{width:min(700px,calc(100vw - 36px))}.profile-dialog form{display:grid;grid-template-columns:1.15fr 1fr;gap:8px 24px}.profile-dialog .feedback-heading{grid-column:1/-1}.profile-dialog .feedback-note{grid-column:1;grid-row:2;margin:0}.profile-dialog label{grid-column:1;grid-row:3;margin:0}.profile-dialog .profile-meta{grid-column:1;grid-row:4}.profile-dialog #profileStats{grid-column:1;grid-row:5;margin:0}.profile-dialog .feedback-privacy{grid-column:2;grid-row:2;margin:0}.profile-dialog #profileMessage{grid-column:2;grid-row:3;margin:0}.profile-dialog #profileSave{grid-column:2;grid-row:4}.profile-dialog #profileSkip{grid-column:2;grid-row:5;margin:0}.profile-dialog #profileReload{grid-column:2;grid-row:6;margin:0}}
@media(orientation:portrait){.menu-overlay .title-block{padding-top:118px;padding-top:clamp(118px,15vh,145px)}}
/* Dedicated landscape subtitle/status band: no captions are painted over combat. */
@media(orientation:landscape){
 .game-shell{--battle-top:max(calc(102px + env(safe-area-inset-top)),var(--caption-reserve,0px));}
 .game-shell[data-screen="playing"] .stage{background:#071214}
 .game-shell[data-screen="playing"] #game{position:absolute;left:0;top:var(--battle-top);width:100%;height:calc(100% - var(--battle-top))}
 .game-shell[data-screen="playing"] .scanlines{top:var(--battle-top)}
 .hud{left:max(10px,env(safe-area-inset-left));right:auto;width:min(410px,calc(100% - 180px - env(safe-area-inset-left) - env(safe-area-inset-right)));top:calc(5px + env(safe-area-inset-top));filter:none}
 .hud-row{justify-content:flex-start;gap:6px}.life-card,.weapon-card,.score-card{min-height:33px;border-radius:9px;padding:4px 7px}.life-card{gap:5px}.mini-face{width:24px;height:24px;flex-basis:24px}.mini-face i{top:7px;width:4px;height:5px}.life-card strong,.weapon-card strong,.score-card strong{font-size:14px;margin-top:3px}.weapon-card{min-width:87px;padding-bottom:6px}.life-card small,.weapon-card small,.score-card small{font-size:8px}.progress{height:2px;margin-top:3px}.mission-row{font-size:10px;margin-top:3px}.combo{top:35px;font-size:13px}
 .utility{top:calc(5px + env(safe-area-inset-top));gap:5px}.utility button{width:38px;height:36px;border-radius:10px;font-size:17px}.utility .battle-feedback{width:48px;font-size:11px}
 .game-shell[data-screen="playing"] .boss-hud{left:auto;right:max(10px,env(safe-area-inset-right));top:calc(43px + env(safe-area-inset-top));width:155px;padding:3px 6px;border-radius:7px}.boss-hud>div:first-child{font-size:9px}.boss-track{height:3px;margin-top:3px}.checkpoint-status{font-size:8px}
 .story-caption{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:calc(76px + env(safe-area-inset-top));width:auto;max-height:none;padding:4px 9px;border-radius:5px 10px 10px 5px;background:linear-gradient(110deg,#fff1ba0d,#14272970);box-shadow:none;transform:translateY(-4px);transition:opacity .3s,transform .4s cubic-bezier(.16,1,.3,1)}
 .story-caption.is-on{transform:translateY(0)}.story-caption b{display:inline;font-size:11px;margin-right:8px}.story-caption p{display:inline;font-size:12px;line-height:14px;margin:0}
 .announce{top:calc(var(--battle-top) + 22px)}
 .desktop-help{display:none}
}
@media(orientation:landscape) and (min-width:760px){
 .game-shell{--battle-top:max(calc(78px + env(safe-area-inset-top)),var(--caption-reserve,0px))}
 .hud{width:270px}.hud-row{gap:5px}
 .story-caption{left:calc(290px + env(safe-area-inset-left));right:calc(170px + env(safe-area-inset-right));top:calc(6px + env(safe-area-inset-top));padding:5px 9px}
 .story-caption b{display:block;margin:0 0 3px}.story-caption p{display:block;line-height:15px;font-size:12px}
}
@media(orientation:landscape) and (max-height:350px){
 .joystick-wrap{height:100px;flex-basis:94px}.joystick{width:84px;height:84px}.joystick-knob{width:44px;height:44px;margin:-22px}.joystick-wrap small{font-size:9px}
 .action-zone{height:100px;flex-basis:198px}.action-zone .reload{width:44px;height:44px;min-width:44px;min-height:44px}.action-zone .jump{left:52px;width:48px;height:48px}.action-zone .warm{width:48px;height:48px;bottom:0;border-radius:14px}.action-zone .shoot{width:72px;height:76px;bottom:0}.action-zone .shoot img{width:43px}.action-zone .shoot b{font-size:10px}
}
.leaderboard-dialog{width:calc(100vw - 24px);max-width:520px;width:min(520px,calc(100vw - 24px));background:linear-gradient(145deg,#1f302efb,#0c171bfc)}.rank-me{padding:14px;border:1px solid #f7d95e60;border-radius:14px;background:#e9c84312;font-size:13px;line-height:1.6;overflow-wrap:anywhere;color:#ffe494}.rank-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 0;font-size:11px;color:#b8cfca}.rank-toolbar .text-button{margin:0;padding:8px;font-size:12px}.rank-list{list-style:none;padding:0;margin:8px 0 14px}.rank-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 8px;border-bottom:1px solid #ffffff12}.rank-row strong{display:block;font-size:13px;overflow-wrap:anywhere}.rank-row small{display:block;font-size:11px;color:#9bb7ae;margin-top:5px}.rank-number{font-size:19px;color:#759791;font-variant-numeric:tabular-nums}.rank-score{font-size:18px;color:#ffdc72;font-variant-numeric:tabular-nums}.rank-row.is-podium .rank-number{color:#ffe281}.rank-row.is-mine{background:#f1d16512;border-radius:10px}.rank-submit-status,#leaderboardStatus{font-size:12px;line-height:1.6;color:#f0d789;overflow-wrap:anywhere}.leaderboard-dialog[open]{animation:rank-arrive .3s cubic-bezier(.16,1,.3,1)}@keyframes rank-arrive{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.leaderboard-dialog[open]{animation:none}}@media(max-width:360px){.rank-row{gap:6px;padding-inline:2px}.rank-score{font-size:15px}.rank-row strong{font-size:12px}}

.low-power .menu-profile,.low-power .menu-feedback,.low-power .feedback-dialog{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
