.combat-page{padding-top:30px;padding-bottom:48px;max-width:1480px}.combat-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px}.combat-heading h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.045em;margin:8px 0 0;line-height:1.1}.combat-heading .eyebrow{font-size:.62rem;letter-spacing:.15em;margin:18px 0 0}.combat-back{font-size:.8rem;color:var(--muted,#626972)}.combat-intro{margin:0 0 4px;max-width:20em;font-size:.85rem;color:var(--muted,#626972);line-height:1.7}.combat-theater{--combat-ink:#f0f7f8;--combat-dim:#b7cbd3;--combat-line:#344b5a;--combat-panel:#142b3b;color:var(--combat-ink);background:#0b1b29;border:1px solid #344b5a;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px #14293524}.combat-frame{position:relative;isolation:isolate;background:#0c1c2a;overflow:hidden}.combat-frame canvas{display:block;width:100%;height:auto;aspect-ratio:16 / 9;touch-action:none;background:#152a37;outline-offset:-4px}.combat-hud{position:absolute;inset:0 0 auto;z-index:2;display:flex;align-items:flex-start;gap:24px;justify-content:space-between;padding:22px 26px 40px;color:white;background:linear-gradient(#071323dd,#07132366 58%,transparent);pointer-events:none;font-variant-numeric:tabular-nums}.combat-health{width:180px;max-width:28%;display:grid;gap:7px}.combat-health>span{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;white-space:nowrap}.combat-health progress,.combat-mission progress,.combat-boss progress,.combat-context progress{appearance:none;border:0;display:block;width:100%;height:7px;border-radius:4px;overflow:hidden;background:#ffffff25}.combat-theater progress::-webkit-progress-bar{background:#ffffff25}.combat-theater progress::-webkit-progress-value{background:#74e9bd;border-radius:4px}.combat-theater progress::-moz-progress-bar{background:#74e9bd}.combat-energy-row{display:flex;gap:7px;align-items:center;font-size:.6rem;color:#bddce5}.combat-health #combat-energy{height:4px;flex:1}.combat-health #combat-energy::-webkit-progress-value{background:#7bcfff}.combat-health #combat-energy::-moz-progress-bar{background:#7bcfff}.combat-mission{display:grid;gap:6px;text-align:center;max-width:50%}.combat-mission b{font-size:.9rem;letter-spacing:.03em}.combat-mission span{font-size:.71rem;color:#d6e9ee}.combat-mission progress{height:3px;width:90%;max-width:220px;justify-self:center}.combat-score{text-align:right;display:grid;gap:3px;min-width:44px}.combat-score>span{font-size:.67rem;color:#cadde7}.combat-score strong{font-size:1.4rem;line-height:1.1}.combat-score #combat-combo{color:#ffe0a1;white-space:nowrap}.combat-boss{position:absolute;top:100px;left:25%;width:50%;z-index:2;color:#fff0dc;pointer-events:none}.combat-boss[hidden]{display:none}.combat-boss>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-size:.68rem}.combat-boss progress{height:6px}.combat-boss progress::-webkit-progress-value{background:#ff9b84}.combat-boss progress::-moz-progress-bar{background:#ff9b84}.combat-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;padding:26px;background:#07121bbd;backdrop-filter:blur(4px)}.combat-overlay[hidden]{display:none}.combat-dialog{width:min(590px,100%);text-align:center;color:#f9fcff;flex:0 0 auto;margin:auto}.combat-dialog .eyebrow{font-size:.65rem;letter-spacing:.18em;color:#9de3d9;margin:0 0 12px}.combat-dialog h2{font-size:clamp(1.6rem,4vw,3rem);letter-spacing:-.03em;line-height:1.1;margin:0 0 16px}.combat-dialog>p:not(.eyebrow){font-size:.94rem;line-height:1.7;max-width:460px;margin:0 auto 20px;color:#dce8ed}.combat-dialog-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.combat-dialog .button{border:1px solid #9de3d960;background:#a9f0d8;color:#122c2c;min-height:44px;padding:11px 24px}.combat-dialog .button.secondary{background:#ffffff12;color:#fff;border-color:#ffffff50}.combat-text-button{padding:10px 12px;min-height:44px;font:inherit;font-size:.8rem;color:#dce8ed;border:0;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.combat-dialog p.combat-save-copy{font-size:.71rem;color:#bac9d0;margin-top:20px;margin-bottom:0}.combat-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.combat-perks[hidden]{display:none}.combat-perks button{background:#123047;border:1px solid #b6e8df55;border-radius:10px;padding:18px 10px;color:white;font:inherit;cursor:pointer;display:grid;gap:8px;justify-items:center;min-height:44px}.combat-perks button>i{font-size:1.5rem;font-style:normal;color:#a9f0d8}.combat-perks button>b{font-size:.88rem}.combat-perks button>span{font-size:.71rem;line-height:1.5;color:#cad8df}.combat-command-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--combat-line);background:#102535}.combat-loadout{display:grid;gap:4px;flex:1;min-width:0}.combat-loadout b{font-size:.88rem}.combat-loadout span{font-size:.72rem;color:var(--combat-dim);font-variant-numeric:tabular-nums}.combat-toolbar{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.combat-toolbar .button{padding:8px 12px;min-height:44px;font-size:.75rem;border-color:#435966;color:var(--combat-ink);background:#213949;box-shadow:none}.combat-toolbar .button:disabled{opacity:.45}.combat-touch{display:flex;justify-content:space-between;gap:14px;padding:14px 20px;background:#0d202e}.combat-move,.combat-actions{display:flex;gap:8px}.combat-touch button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;width:66px;height:60px;border:1px solid #4f6878;background:#1b3446;color:#eef7fb;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:inherit;font-size:.86rem;font-weight:650;cursor:pointer;transition:background-color 80ms ease;position:relative}.combat-touch .combat-move button:not(.combat-interact){font-size:1.5rem}.combat-touch button span{font-size:.6rem;font-weight:400;color:#c2d7e1;margin-top:4px}.combat-touch .combat-interact{margin-left:8px;border-style:dashed}.combat-touch .combat-attack{background:#a9f0d8;border-color:#a9f0d8;color:#12372e;width:94px}.combat-touch .combat-attack span{color:#245444}.combat-touch button:active,.combat-touch button.is-held{background:#e1fff3;color:#163e38;box-shadow:inset 0 0 0 2px #8ed5c3}.combat-touch button.is-held span{color:#31584f}.combat-touch button.is-cooling{background:#142938;color:#aac1cd}.combat-touch button.is-cooling:after{content:attr(data-cooldown);position:absolute;top:3px;right:5px;font-size:.58rem;color:#ffe0b7}.combat-touch .combat-interact.is-near{border-style:solid;border-color:#9ff4d1;box-shadow:0 0 0 2px #9ff4d128}.combat-page button:focus-visible,.combat-frame canvas:focus-visible{outline:3px solid #57cddb;outline-offset:3px}.combat-toast{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;padding:9px 20px;border:1px solid #b4e6d879;background:#0b203aef;color:#e6fff6;border-radius:8px;font-size:.85rem;pointer-events:none;opacity:0;transition:opacity 140ms ease;z-index:3;text-align:center}.combat-toast.is-visible{opacity:1}.combat-context{position:absolute;bottom:19px;left:50%;transform:translateX(-50%);z-index:2;max-width:calc(100% - 32px);width:max-content;min-width:220px;padding:10px 18px;background:#0b203af0;border:1px solid #83cabb66;border-radius:7px;text-align:center;pointer-events:none}.combat-context[hidden]{display:none}.combat-context span{font-size:.78rem;color:#e2fff3}.combat-context progress{margin-top:7px;height:3px}.combat-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:14px 0 20px}.combat-status{min-height:1.5em;margin:0;font-size:.8rem;color:var(--muted,#626972)}.combat-best{font-size:.74rem;color:var(--muted,#626972);white-space:nowrap;font-variant-numeric:tabular-nums}.combat-guide{padding-top:16px;border-top:1px solid var(--line,#dce0e5)}.combat-guide summary{font-size:.88rem;font-weight:600;cursor:pointer;min-height:44px}.combat-guide summary span{font-size:.72rem;font-weight:400;margin-left:12px;color:var(--muted,#626972)}.combat-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:10px 0}.combat-guide h3{font-size:.95rem;margin:0 0 10px}.combat-guide p{font-size:.83rem;line-height:1.9;color:var(--muted,#626972);margin:0}.combat-guide kbd{font:inherit;font-size:.74rem;background:var(--surface,#fff);border:1px solid var(--line,#cfd5dd);border-radius:4px;padding:1px 5px;margin:0 2px;white-space:nowrap}.combat-footnote{font-size:.71rem;color:var(--muted,#626972);margin-top:18px;line-height:1.8}.combat-noscript{padding:20px;border:1px solid #aaa}.combat-page[data-game=blade] .combat-touch .combat-attack{background:#ffdcac;border-color:#ffdcac;color:#382936}.combat-page[data-game=blade] .combat-touch .combat-attack span{color:#5a4050}.combat-page[data-game=blade] .combat-dialog .eyebrow{color:#ffd5aa}.combat-page[data-game=blade] .combat-dialog .button{background:#ffd5aa;color:#382a37}.combat-page[data-game=blade] .combat-health progress::-webkit-progress-value{background:#ffd5aa}.combat-page[data-game=blade] .combat-health progress::-moz-progress-bar{background:#ffd5aa}
.combat-theater:fullscreen,.combat-theater.is-expanded{border:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;background:#07131e;width:100%;height:100%;max-width:none;overflow:auto}.combat-theater:fullscreen .combat-frame,.combat-theater.is-expanded .combat-frame{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.combat-theater:fullscreen canvas,.combat-theater.is-expanded canvas{height:100%;max-height:calc(100dvh - 166px);width:100%;object-fit:contain;aspect-ratio:auto}.combat-theater.is-expanded{position:fixed;inset:0;z-index:1000;height:100dvh}.combat-theater:fullscreen .combat-hud,.combat-theater.is-expanded .combat-hud{padding-top:max(18px,env(safe-area-inset-top))}.combat-theater:fullscreen .combat-touch,.combat-theater.is-expanded .combat-touch{padding-bottom:max(12px,env(safe-area-inset-bottom));padding-inline:max(20px,env(safe-area-inset-left))}.combat-focus{overflow:hidden}
@media(hover:hover) and (pointer:fine){.combat-perks button:hover{background:#23465b;border-color:#a9f0d8}.combat-text-button:hover{color:white}.combat-toolbar .button:hover{background:#345368}.combat-touch button:hover{border-color:#9abcd0}}
@media(max-width:700px){.combat-page{padding-top:18px;padding-bottom:28px}.combat-heading{gap:16px;margin-bottom:17px}.combat-heading h1{font-size:2rem}.combat-heading .eyebrow{font-size:.48rem;letter-spacing:.1em;margin-top:14px}.combat-intro{font-size:.72rem;max-width:10em}.combat-theater{border-radius:11px;margin-inline:-8px}.combat-frame canvas{aspect-ratio:8 / 7}.combat-frame.is-menu{min-height:320px}.combat-frame.is-menu canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.combat-hud{padding:14px 12px 26px;gap:10px}.combat-health{width:104px;gap:5px;max-width:30%}.combat-health>span{font-size:.6rem;gap:3px}.combat-health progress{height:5px}.combat-energy-row{font-size:.48rem;gap:4px}.combat-mission{gap:5px;max-width:45%}.combat-mission b{font-size:.68rem}.combat-mission span{font-size:.58rem;line-height:1.5;max-width:15em}.combat-score>span{font-size:.54rem}.combat-score strong{font-size:1rem}.combat-score #combat-combo{font-size:.5rem}.combat-boss{top:90px;left:22%;width:56%}.combat-boss>div{font-size:.57rem}.combat-command-bar{gap:8px;padding:11px 10px;flex-wrap:wrap}.combat-loadout{min-width:100%;grid-template-columns:1fr auto;align-items:center;gap:5px}.combat-loadout b{font-size:.77rem}.combat-loadout span{font-size:.65rem}.combat-toolbar{gap:5px;width:100%;justify-content:space-between}.combat-toolbar .button{font-size:.67rem;padding:8px;flex:1;min-width:44px}.combat-touch{padding:10px;gap:8px;align-items:stretch}.combat-touch button{width:51px;height:56px;font-size:.73rem;border-radius:8px}.combat-touch .combat-attack{width:58px}.combat-move{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.combat-move .combat-interact{grid-column:1 / -1;width:auto;margin-left:0;height:44px;flex-direction:row;gap:6px;font-size:.74rem}.combat-move .combat-interact span{margin:0}.combat-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.combat-actions button{width:66px;height:53px}.combat-actions .combat-attack{width:66px}.combat-touch button span{font-size:.52rem}.combat-guide-grid{grid-template-columns:1fr;gap:24px}.combat-overlay{padding:20px 12px;backdrop-filter:blur(3px)}.combat-dialog h2{font-size:1.75rem;margin-bottom:12px}.combat-dialog .eyebrow{font-size:.52rem;margin-bottom:12px}.combat-dialog>p:not(.eyebrow){font-size:.78rem;line-height:1.6;margin-bottom:15px;max-width:350px}.combat-dialog .button{min-height:44px;font-size:.78rem;padding:9px 16px}.combat-text-button{min-height:44px;font-size:.68rem;padding:8px}.combat-dialog p.combat-save-copy{font-size:.62rem;margin-top:12px}.combat-perks{gap:6px;margin:12px 0}.combat-perks button{padding:13px 6px;gap:6px}.combat-perks button>i{font-size:1.1rem}.combat-perks button>b{font-size:.72rem}.combat-perks button>span{font-size:.6rem}.combat-toast{bottom:78px;font-size:.68rem;padding:8px 12px}.combat-context{bottom:14px;padding:8px 10px;min-width:180px}.combat-context span{font-size:.67rem}.combat-summary{gap:10px;padding:12px 0 16px;flex-wrap:wrap}.combat-status{font-size:.73rem;flex:1;min-width:65%}.combat-best{font-size:.66rem}.combat-theater:fullscreen canvas,.combat-theater.is-expanded canvas{max-height:calc(100dvh - 246px)}.combat-theater:fullscreen .combat-touch,.combat-theater.is-expanded .combat-touch{padding-inline:max(12px,env(safe-area-inset-left))}}
@media(max-width:380px){.combat-intro{display:none}.combat-theater{margin-inline:-10px}.combat-mission span{font-size:.54rem}.combat-mission b{font-size:.62rem}.combat-health>span{font-size:.55rem}.combat-toolbar .button{padding:8px 5px}.combat-perks button>span{font-size:.56rem}.combat-dialog h2{font-size:1.55rem}}
@media(max-height:560px) and (orientation:landscape){.combat-theater:fullscreen .combat-command-bar,.combat-theater.is-expanded .combat-command-bar{position:absolute;top:0;left:0;right:0;z-index:5;pointer-events:none;background:transparent;border:0;padding:7px 12px}.combat-theater:fullscreen .combat-loadout,.combat-theater.is-expanded .combat-loadout{display:none}.combat-theater:fullscreen .combat-toolbar,.combat-theater.is-expanded .combat-toolbar{margin-left:auto;width:auto;pointer-events:auto}.combat-theater:fullscreen .combat-toolbar .button,.combat-theater.is-expanded .combat-toolbar .button{flex:none;min-height:44px}.combat-theater:fullscreen .combat-touch,.combat-theater.is-expanded .combat-touch{position:absolute;inset:auto 0 0;background:transparent;z-index:3;pointer-events:none;padding:12px}.combat-theater:fullscreen .combat-touch button,.combat-theater.is-expanded .combat-touch button{pointer-events:auto;background:#143244db}.combat-theater:fullscreen canvas,.combat-theater.is-expanded canvas{max-height:100dvh}.combat-theater:fullscreen .combat-hud,.combat-theater.is-expanded .combat-hud{padding-top:62px}.combat-theater:fullscreen .combat-boss,.combat-theater.is-expanded .combat-boss{top:118px}.combat-theater:fullscreen .combat-context,.combat-theater.is-expanded .combat-context{bottom:12px}.combat-theater:fullscreen .combat-overlay,.combat-theater.is-expanded .combat-overlay{z-index:6}.combat-theater:fullscreen .combat-actions,.combat-theater.is-expanded .combat-actions{display:flex}.combat-theater:fullscreen .combat-move,.combat-theater.is-expanded .combat-move{display:flex;align-items:flex-end}.combat-theater:fullscreen .combat-move .combat-interact,.combat-theater.is-expanded .combat-move .combat-interact{height:56px;min-width:60px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.combat-page button,.combat-toast{transition:none}}
@media(prefers-reduced-transparency:reduce){.combat-overlay{background:#132a3cf5;backdrop-filter:none}.combat-context,.combat-toast{background:#122b3e}}
@media(prefers-contrast:more){.combat-theater button{border-width:2px}.combat-hud{background:#071323}.combat-overlay{background:#071323}}

/* Mission hints stay above the action; they must never cover a ground-level player. */
.combat-context{top:100px;bottom:auto;width:330px;max-width:calc(100% - 32px)}.combat-frame.has-boss .combat-context{top:142px}.combat-context progress[hidden]{display:none}.combat-toast{top:160px;bottom:auto}.combat-frame.has-boss .combat-toast{top:205px}.combat-toolbar .audio-settings-button{min-height:44px;min-width:44px;padding:8px 12px;border:1px solid #435966;border-radius:10px;background:#213949;color:#f0f7f8;font-size:.75rem}.combat-toolbar .button{border-radius:10px}
@media(max-width:700px){.combat-context{top:83px;width:260px;min-width:0;padding:8px 10px}.combat-frame.has-boss .combat-context{top:123px}.combat-toast{top:132px;bottom:auto}.combat-frame.has-boss .combat-toast{top:178px}.combat-toolbar .audio-settings-button{font-size:.67rem;padding:8px;flex:1}.combat-summary{display:block}.combat-best{display:block;margin-top:7px}}
@media(max-height:560px) and (orientation:landscape){.combat-theater:fullscreen .combat-context,.combat-theater.is-expanded .combat-context{top:auto;bottom:12px;width:270px}.combat-theater:fullscreen .combat-toast,.combat-theater.is-expanded .combat-toast{top:168px;bottom:auto}}

.combat-page.shell{width:min(100% - 40px,1400px);max-width:1400px}

/* Preserve the scene's proportions when a tall phone enters the expanded view. */
@media(orientation:portrait){.combat-theater:fullscreen .combat-frame,.combat-theater.is-expanded .combat-frame{flex:0 0 auto;width:100%}.combat-theater:fullscreen canvas,.combat-theater.is-expanded canvas{height:auto;max-height:none;aspect-ratio:16 / 9}}
@media(orientation:portrait) and (max-width:700px){.combat-theater:fullscreen canvas,.combat-theater.is-expanded canvas{aspect-ratio:8 / 7}}

.combat-frame canvas:focus-visible{outline-offset:-4px}
