/* Ultimate feedback stays inside existing cards and respects reduced motion. */
#battleUltimateButton[data-ultimate-state],#mobileUltimate[data-ultimate-state]{border-color:color-mix(in srgb,var(--ultimate-color,#c5abef) 40%,#354251)}
#battleUltimateButton[data-ultimate-state=ready],#mobileUltimate[data-ultimate-state=ready]{border-color:var(--ultimate-color);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ultimate-color) 24%,transparent)}
#battleUltimateButton[data-ultimate-state=targeting],#mobileUltimate[data-ultimate-state=targeting]{outline:2px solid var(--ultimate-color);outline-offset:2px}
#battleUltimateButton[data-ultimate-state=casting] .detail,#mobileUltimate[data-ultimate-state=casting] .mobileActionCooldown{color:var(--ultimate-color)}
#battleUltimateButton[data-ultimate-state=unavailable],#mobileUltimate[data-ultimate-state=unavailable]{filter:saturate(.45)}
.ultimateAttunement{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 9px/1.2 system-ui;color:var(--ultimate-color,#e8cc8a)}
.ultimateAttunement[hidden]{display:none}
#mobileUltimate[data-ultimate-id=greaterconjuration] .mobileActionName{display:none}
#mobileUltimate .ultimateAttunement{order:1;margin-top:3px;font-size:11px;font-weight:700;flex-shrink:0}
#mobileUltimate .mobileActionCooldown{order:2;flex-shrink:0}
#gameFrame .combatAbilityDock #battleUltimateStatus{display:block;position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);max-width:110px;padding:3px 6px;border:1px solid color-mix(in srgb,var(--ultimate-color) 45%,#354251);border-radius:5px;background:#101b29;color:#ece7dc;font:700 9px/1.2 system-ui;white-space:nowrap}
#battleUltimateButton .ultimateAttunement{position:absolute;top:-32px;left:50%;transform:translateX(-50%);max-width:140px;padding:3px 6px;border-radius:4px;background:#101b29;border:1px solid #72634d;font-size:9px}
.ultimateSrOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.ultimateReadyFlash{animation:ultimate-ready .85s ease-out 1}
@keyframes ultimate-ready{0%,30%{box-shadow:0 0 12px color-mix(in srgb,var(--ultimate-color) 55%,transparent),inset 0 0 0 1px var(--ultimate-color)}100%{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ultimate-color) 24%,transparent)}}
@media(prefers-reduced-motion:reduce){.ultimateReadyFlash{animation:none}}
html[data-reduced-motion=true] .ultimateReadyFlash{animation:none}
