.eda-combat-stage {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: visible;
    pointer-events: none;
    z-index: 10050;
    isolation: isolate;
}
.eda-combat-glow { filter: drop-shadow(0 0 5px var(--eda-light)) drop-shadow(0 0 13px var(--eda-light)); }
.eda-card-shatter { position: fixed; inset: 0; z-index: 10051; pointer-events: none; }
.eda-card-shard { position: absolute; display: block; pointer-events: none; will-change: transform, opacity; }
.eda-card-shard > img { position: absolute; max-width: none; max-height: none; }
.eda-card-shard > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
body.v3-vfx-disabled .eda-combat-stage { display: none; }
.eda-combat-stage[data-skin="akademia"] .eda-combat-glow {
    filter: drop-shadow(0 0 3px #FDF22A) drop-shadow(0 0 9px #FCC83C);
}
.eda-combat-stage[data-skin="akademia"] .eda-academy-book {
    paint-order: stroke fill;
}
/* The pin floats while the outer targeting ring keeps the existing acquisition motion. */
.eda-crosshair-svg.is-academy.is-animated .eda-ch-academy-pin {
    transform-origin: 50px 50px;
    animation: edaAcademyPinFloat 2.6s ease-in-out infinite;
    filter: drop-shadow(0 0 2px #FDF22A);
}
.eda-bounty-frame:has(.eda-crosshair-svg.is-academy) .eda-bounty-portal {
    background: radial-gradient(ellipse at 50% 22%, #FDE78133, #58525B88 65%);
    border-color: #FCC83C;
}
.eda-bounty-frame:has(.eda-crosshair-svg.is-academy) .eda-bounty-stamp {
    color: #FCFC83;
    background: linear-gradient(110deg, #58525B, #302b35);
    border: 1px solid #FCC83C;
}
@keyframes edaAcademyPinFloat {
    0%, 100% { transform: translateY(1px); }
    50% { transform: translateY(-2px); }
}
/* Damage numbers keep their existing higher overlay layer. */
@media (prefers-reduced-motion: reduce) {
    .eda-combat-glow { filter: drop-shadow(0 0 4px var(--eda-light)); }
    .eda-crosshair-svg.is-academy.is-animated .eda-ch-academy-pin { animation: none; }
}
