/* The cut-in never captures input or stops the authoritative battle clock. */
.ultimate-overlay{position:fixed;inset:0;z-index:16;pointer-events:none;overflow:hidden;--ultimate-color:#ffe69a;contain:layout paint}
.ultimate-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 44%,transparent 20%,color-mix(in srgb,var(--ultimate-color) 24%,transparent) 65%,transparent);animation:ultimate-wash 650ms both;animation-delay:var(--ultimate-delay)}
.ultimate-cut-in{position:absolute;width:min(var(--ultimate-width,92vw),560px);height:min(var(--ultimate-height,38dvh),330px);left:var(--ultimate-x,50%);top:var(--ultimate-y,38%);transform:translate(-50%,-50%);filter:drop-shadow(0 0 20px var(--ultimate-color))}
.ultimate-portrait{height:100%;width:66%;margin:auto;animation:ultimate-entry 650ms cubic-bezier(.2,.8,.25,1) both;animation-delay:var(--ultimate-delay)}
.ultimate-portrait svg{width:100%;height:100%}.ultimate-title{position:absolute;left:3%;right:3%;bottom:0;text-align:center;color:#fff8dd;text-shadow:0 2px 3px #172f32,0 0 12px #172f32;font-weight:900;animation:ultimate-title 650ms both;animation-delay:var(--ultimate-delay)}
.ultimate-title small{display:block;color:#fff6d9;font-size:10px;letter-spacing:2px}.ultimate-title strong{font-size:clamp(25px,7vw,44px);line-height:1.3}
.ultimate-streak{position:absolute;inset:35% -35%;border-top:4px solid var(--ultimate-color);transform:rotate(-25deg);box-shadow:0 -5px 18px var(--ultimate-color);animation:ultimate-wash 650ms both;animation-delay:var(--ultimate-delay)}
.theme-shadow .ultimate-streak{border-bottom:3px solid var(--ultimate-color);transform:rotate(25deg)}
.theme-star .ultimate-streak{inset:10% 20%;border:3px solid var(--ultimate-color);border-radius:50%;transform:rotate(-35deg)}
.theme-light .ultimate-streak{inset:22% 5%;border:0;border-top:5px solid var(--ultimate-color);transform:rotate(0);border-radius:50%}
.ally-ultimate{position:absolute;top:9%;right:12px;max-width:75%;padding:6px 12px;background:#283e37dd;border:1px solid var(--ultimate-color);border-radius:20px;color:#fff1ce;font-size:12px}
body.in-battle .control-panel,body.in-battle .topbar{position:relative;z-index:20}
.hero-actor[data-pose="attack"][data-pose-frame="1"] .idle-art{transform:rotate(-10deg) translateY(-5%)}
.hero-actor[data-pose="attack"][data-pose-frame="2"] .idle-art{transform:rotate(12deg) translateY(-18%) scale(1.08)}
.hero-actor[data-pose="guard"] .idle-art{transform:scale(.95) translateY(4%);filter:drop-shadow(0 0 7px #9ee9f4)}
.hero-actor[data-pose="dodge"] .idle-art{transform:translateX(-20%) rotate(-14deg);opacity:.65}
.hero-actor[data-pose="support"] .idle-art{transform:translateY(-8%);filter:drop-shadow(0 0 9px var(--job-color))}
.hero-actor[data-pose="ultimate"] .idle-art{transform:scale(1.16);filter:drop-shadow(0 0 12px var(--job-color))}
.hero-actor .idle-art{transition:transform 80ms linear}
@keyframes ultimate-entry{0%{opacity:0;transform:translateX(-35%) scale(.8)}20%{opacity:1;transform:translateX(0) scale(1.03)}75%{opacity:1;transform:scale(1.08)}100%{opacity:0;transform:translateX(16%) scale(1.12)}}
@keyframes ultimate-title{0%,12%{opacity:0;transform:translateY(15px)}25%,75%{opacity:1;transform:none}100%{opacity:0}}
@keyframes ultimate-wash{0%{opacity:0}25%,65%{opacity:.85}100%{opacity:0}}
.ultimate-overlay.reduced .ultimate-portrait,.ultimate-overlay.reduced .ultimate-title{animation:none;opacity:1;transform:none}.ultimate-overlay.reduced .ultimate-wash,.ultimate-overlay.reduced .ultimate-streak{display:none}
@media(prefers-reduced-motion:reduce){.hero-actor .idle-art{transition:none;transform:none!important}.ultimate-portrait,.ultimate-title{animation:none}.ultimate-wash,.ultimate-streak{display:none}}
