/* =========================================================
   Paczka #104 — Finishery v3
   Osiem odmiennych choreografii na pełnej szerokości areny.
   ========================================================= */

.cinematic-finisher-v3 .finisher-choreography {
    position: absolute;
    z-index: 14;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.cinematic-finisher-v3[data-winner-side="right"] .finisher-choreography {
    transform: scaleX(-1);
}

.cinematic-finisher-v3 .finisher-choreography .finisher-action {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
}

.cinematic-finisher-v3 .finisher-director-center > b,
.cinematic-finisher-v3 .finisher-profession-effect,
.cinematic-finisher-v3 .finisher-director-wave,
.cinematic-finisher-v3 .finisher-director-particles {
    display: none;
}

.cinematic-finisher-v3 .finisher-director-impact-word {
    z-index: 22;
}

.cinematic-finisher-v3 .finisher-director-result {
    z-index: 36;
}

.cinematic-finisher-v3 .finisher-freeze-card {
    z-index: 38;
}

.cinematic-finisher-v3 .finisher-stage-stamp,
.cinematic-finisher-v3 .finisher-director-header {
    z-index: 40;
}

.cinematic-finisher-v3 .finisher-film-shutter,
.cinematic-finisher-v3 .finisher-letterbox {
    z-index: 44;
}

.cinematic-finisher-v3 .finisher-director-bg {
    transition: filter .5s ease, transform .8s cubic-bezier(.16,.84,.18,1);
}

.cinematic-finisher-v3.is-impact .finisher-director-bg {
    filter: brightness(1.18) saturate(1.22);
}

.cinematic-finisher-v3.is-aftershock .finisher-director-bg {
    filter: brightness(.72) saturate(.86);
}

/* ---------------------------------------------------------
   Ninja Archer — cisza, celowanie, pojedyncza strzała
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-archer .finisher-director-bg {
    background:
        linear-gradient(90deg, transparent 0 49.85%, rgba(225,255,244,.12) 50%, transparent 50.15%),
        radial-gradient(ellipse at 23% 50%, rgba(34,205,156,.22), transparent 27%),
        radial-gradient(ellipse at 78% 50%, rgba(255,225,142,.13), transparent 20%),
        linear-gradient(110deg, #010604, #03140f 46%, #080904);
}

.cinematic-finisher-v3 .archer-bow {
    left: 20%;
    width: clamp(150px, 18vw, 310px);
    height: clamp(250px, 32vw, 520px);
    transform: translate(-50%, -50%) scale(.46) rotate(-8deg);
}

.cinematic-finisher-v3 .archer-string {
    left: 20%;
    height: clamp(230px, 29vw, 480px);
    transform: translate(-50%, -50%) scaleY(.18);
}

.cinematic-finisher-v3 .archer-arrow {
    left: 18%;
    width: clamp(250px, 34vw, 650px);
    transform: translate(-12%, -50%) scaleX(.08);
}

.cinematic-finisher-v3 .archer-trail {
    left: 50%;
    width: 72vw;
}

.cinematic-finisher-v3 .archer-target {
    left: 79%;
    width: clamp(150px, 15vw, 260px);
    height: clamp(150px, 15vw, 260px);
}

.cinematic-finisher-v3 .archer-spark {
    --spark-rotation: 38deg;
    left: 79%;
    top: 50%;
    width: clamp(180px, 22vw, 360px);
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(255,245,189,.96), transparent);
    box-shadow: 0 0 28px rgba(255,245,189,.72);
    transform: translate(-50%, -50%) rotate(var(--spark-rotation)) scaleX(.05);
}

.cinematic-finisher-v3 .archer-spark.spark-b {
    --spark-rotation: -38deg;
}

.cinematic-finisher-v3.finisher-effect-archer.is-charging .archer-bow,
.cinematic-finisher-v3.finisher-effect-archer.is-charging .archer-string {
    animation: v3-archer-draw .9s cubic-bezier(.16,.84,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-archer.is-beat-one .archer-target {
    animation: v3-archer-lock .62s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-archer.is-executing .archer-arrow,
.cinematic-finisher-v3.finisher-effect-archer.is-executing .archer-trail {
    animation: v3-archer-flight .68s cubic-bezier(.08,.82,.14,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-archer.is-impact .archer-target {
    animation: v3-archer-pierce .72s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-archer.is-impact .archer-spark {
    animation: v3-archer-spark .56s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-archer.is-impact .archer-spark.spark-b {
    animation-delay: .07s;
}

@keyframes v3-archer-draw {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.38) rotate(-14deg); }
    70% { opacity: 1; transform: translate(-50%, -50%) scale(1.06) rotate(0); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); }
}

@keyframes v3-archer-lock {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(1.8) rotate(24deg); }
    60% { opacity: .92; transform: translate(-50%, -50%) scale(.92) rotate(0); }
    100% { opacity: .72; transform: translate(-50%, -50%) scale(1); }
}

@keyframes v3-archer-flight {
    0% { opacity: 0; transform: translate(-20vw, -50%) scaleX(.12); }
    14% { opacity: 1; }
    76% { opacity: 1; transform: translate(46vw, -50%) scaleX(1); }
    100% { opacity: 0; transform: translate(61vw, -50%) scaleX(1.25); }
}

@keyframes v3-archer-pierce {
    0% { opacity: .8; transform: translate(-50%, -50%) scale(1); filter: brightness(1); }
    18% { opacity: 1; transform: translate(-50%, -50%) scale(.76); filter: brightness(3); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.4); filter: brightness(1.2) blur(4px); }
}

@keyframes v3-archer-spark {
    0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--spark-rotation)) scaleX(.05); }
    22% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--spark-rotation)) scaleX(1.4); }
}

/* ---------------------------------------------------------
   Ninja Dagger — zniknięcie, przeskok i cztery cięcia
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-dagger .finisher-director-bg {
    background:
        radial-gradient(circle at 50% 50%, rgba(50,255,196,.10), transparent 16%),
        linear-gradient(135deg, transparent 38%, rgba(89,255,205,.08) 39%, transparent 40%),
        linear-gradient(45deg, transparent 58%, rgba(235,255,248,.06) 59%, transparent 60%),
        #010403;
}

.cinematic-finisher-v3 .dagger-shadow {
    top: 51%;
    width: clamp(150px, 16vw, 280px);
    height: min(62vh, 620px);
    background: linear-gradient(180deg, rgba(73,255,200,.06), rgba(0,0,0,.78));
    filter: blur(12px);
}

.cinematic-finisher-v3 .shadow-a { left: 21%; }
.cinematic-finisher-v3 .shadow-b { left: 79%; }

.cinematic-finisher-v3 .dagger-slash {
    left: 50%;
    width: min(88vw, 1500px);
    height: clamp(4px, .55vw, 9px);
}

.cinematic-finisher-v3 .dagger-impact {
    left: 79%;
    width: clamp(240px, 26vw, 470px);
    height: clamp(240px, 26vw, 470px);
}

.cinematic-finisher-v3.finisher-effect-dagger.is-charging .dagger-shadow {
    animation: v3-dagger-shadows .42s steps(2, end) forwards;
}

.cinematic-finisher-v3.finisher-effect-dagger.is-beat-one[data-winner-side="left"] .finisher-director-fighter.is-winner,
.cinematic-finisher-v3.finisher-effect-dagger.is-beat-one[data-winner-side="right"] .finisher-director-fighter.is-winner {
    opacity: .08 !important;
    filter: blur(8px) brightness(1.8) !important;
}

.cinematic-finisher-v3.finisher-effect-dagger.is-beat-one .slash-a,
.cinematic-finisher-v3.finisher-effect-dagger.is-beat-one .slash-b,
.cinematic-finisher-v3.finisher-effect-dagger.is-beat-two .slash-c,
.cinematic-finisher-v3.finisher-effect-dagger.is-beat-two .slash-d {
    animation: v3-dagger-cut .34s cubic-bezier(.12,.86,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-dagger.is-beat-one .slash-b,
.cinematic-finisher-v3.finisher-effect-dagger.is-beat-two .slash-d {
    animation-delay: .09s;
}

.cinematic-finisher-v3.finisher-effect-dagger.is-impact .dagger-impact {
    animation: v3-dagger-vanish-burst .78s ease-out forwards;
}

@keyframes v3-dagger-shadows {
    0% { opacity: 0; filter: blur(18px); }
    45% { opacity: .82; filter: blur(5px); }
    100% { opacity: .28; filter: blur(13px); }
}

@keyframes v3-dagger-cut {
    0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--rot)) scaleX(.02); }
    38% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--rot)) scaleX(1.18); filter: blur(1px); }
}

@keyframes v3-dagger-vanish-burst {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.08); }
    24% { opacity: 1; transform: translate(-50%, -50%) scale(.72); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.2); filter: blur(10px); }
}

/* ---------------------------------------------------------
   Wojownik Body — frontalna szarża i fizyczna fala uderzenia
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-body .finisher-director-bg {
    background:
        radial-gradient(circle at 72% 50%, rgba(255,214,145,.20), transparent 16%),
        radial-gradient(circle at 25% 50%, rgba(255,91,40,.24), transparent 28%),
        linear-gradient(100deg, #090302, #1a0702 48%, #070201);
}

.cinematic-finisher-v3 .body-fist {
    left: 17%;
    width: clamp(170px, 18vw, 330px);
    height: clamp(170px, 18vw, 330px);
}

.cinematic-finisher-v3 .body-trail {
    left: 40%;
    width: 58vw;
    height: clamp(100px, 13vw, 230px);
}

.cinematic-finisher-v3 .body-ring,
.cinematic-finisher-v3 .body-impact {
    left: 77%;
}

.cinematic-finisher-v3 .body-ring.ring-a { width: 180px; height: 180px; }
.cinematic-finisher-v3 .body-ring.ring-b { width: 340px; height: 340px; }
.cinematic-finisher-v3 .body-ring.ring-c { width: 560px; height: 560px; }

.cinematic-finisher-v3.finisher-effect-body.is-charging .body-fist {
    animation: v3-body-windup .72s cubic-bezier(.2,.78,.2,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-body.is-beat-one .body-trail {
    animation: v3-body-pressure .52s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-body.is-executing .body-fist,
.cinematic-finisher-v3.finisher-effect-body.is-executing .body-trail {
    animation: v3-body-charge .6s cubic-bezier(.08,.9,.12,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-body.is-executing[data-winner-side="left"] .finisher-director-fighter.is-winner,
.cinematic-finisher-v3.finisher-effect-body.is-executing[data-winner-side="right"] .finisher-director-fighter.is-winner {
    transform: scale(1.09) !important;
    filter: brightness(1.75) saturate(1.35) !important;
}

.cinematic-finisher-v3.finisher-effect-body.is-impact .body-impact,
.cinematic-finisher-v3.finisher-effect-body.is-impact .body-ring {
    animation: v3-body-shockwave 1.08s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-body.is-impact .ring-b { animation-delay: .08s; }
.cinematic-finisher-v3.finisher-effect-body.is-impact .ring-c { animation-delay: .16s; }

@keyframes v3-body-windup {
    0% { opacity: 0; transform: translate(-100%, -50%) scale(.4) rotate(-18deg); }
    65% { opacity: 1; transform: translate(-50%, -50%) scale(1.12) rotate(5deg); }
    100% { opacity: .95; transform: translate(-50%, -50%) scale(1) rotate(0); }
}

@keyframes v3-body-pressure {
    from { opacity: 0; transform: translate(-50%, -50%) scaleX(.1); }
    to { opacity: .7; transform: translate(-50%, -50%) scaleX(.7); }
}

@keyframes v3-body-charge {
    0% { opacity: .8; transform: translate(-50%, -50%) scale(.9); }
    100% { opacity: 1; transform: translate(52vw, -50%) scale(1.42) rotate(8deg); }
}

@keyframes v3-body-shockwave {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.08); }
    18% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.4); filter: blur(3px); }
}

/* ---------------------------------------------------------
   Wojownik Mental — kontrola pola, kompresja i przełamanie
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-mental .finisher-director-bg {
    background:
        repeating-linear-gradient(90deg, transparent 0 8vw, rgba(133,165,255,.045) 8vw calc(8vw + 1px)),
        repeating-linear-gradient(0deg, transparent 0 8vh, rgba(133,165,255,.04) 8vh calc(8vh + 1px)),
        radial-gradient(circle at 76% 50%, rgba(112,145,255,.20), transparent 26%),
        linear-gradient(120deg, #02040a, #090a13 52%, #050302);
}

.cinematic-finisher-v3 .mental-eye {
    left: 50%;
    width: clamp(250px, 28vw, 520px);
    height: clamp(120px, 14vw, 240px);
}

.cinematic-finisher-v3 .mental-line.line-h { width: 86vw; }
.cinematic-finisher-v3 .mental-line.line-v { height: 82vh; }

.cinematic-finisher-v3 .mental-grid,
.cinematic-finisher-v3 .mental-pulse {
    left: 77%;
}

.cinematic-finisher-v3 .mental-grid.grid-a { width: 260px; height: 260px; }
.cinematic-finisher-v3 .mental-grid.grid-b { width: 480px; height: 480px; }

.cinematic-finisher-v3.finisher-effect-mental.is-charging .mental-eye,
.cinematic-finisher-v3.finisher-effect-mental.is-charging .mental-line {
    animation: v3-mental-lock .98s cubic-bezier(.16,.84,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-mental.is-beat-one .mental-grid {
    animation: v3-mental-cage 1.05s cubic-bezier(.18,.78,.22,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-mental.is-beat-two .mental-grid.grid-b {
    animation: v3-mental-compress .62s ease-in forwards;
}

.cinematic-finisher-v3.finisher-effect-mental.is-impact .mental-pulse {
    animation: v3-mental-break .92s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-mental.is-beat-two .finisher-director-fighter.is-loser {
    transform: scaleX(.9) scaleY(1.03) !important;
    filter: contrast(1.35) saturate(.45) !important;
}

@keyframes v3-mental-lock {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(1.8); filter: blur(12px); }
    70% { opacity: 1; transform: translate(-50%, -50%) scale(.94); filter: blur(0); }
    100% { opacity: .78; transform: translate(-50%, -50%) scale(1); }
}

@keyframes v3-mental-cage {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(2.2) rotate(-18deg); }
    100% { opacity: .86; transform: translate(-50%, -50%) scale(1) rotate(0); }
}

@keyframes v3-mental-compress {
    from { opacity: .86; transform: translate(-50%, -50%) scale(1); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(.34); filter: brightness(2); }
}

@keyframes v3-mental-break {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
    20% { opacity: 1; transform: translate(-50%, -50%) scale(.5); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.8); filter: blur(8px); }
}

/* ---------------------------------------------------------
   Sura WP — materializacja ostrza i rozcięcie kadru
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-weapon .finisher-director-bg {
    background:
        linear-gradient(132deg, transparent 0 47%, rgba(191,163,255,.14) 49%, transparent 51%),
        radial-gradient(ellipse at 50% 26%, rgba(139,86,255,.23), transparent 26%),
        linear-gradient(115deg, #03020a, #0c0618 50%, #040208);
}

.cinematic-finisher-v3 .weapon-blade {
    left: 37%;
    top: 34%;
    width: clamp(95px, 10vw, 180px);
    height: clamp(320px, 44vw, 700px);
}

.cinematic-finisher-v3 .weapon-guard,
.cinematic-finisher-v3 .weapon-handle,
.cinematic-finisher-v3 .weapon-aura {
    left: 37%;
}

.cinematic-finisher-v3 .weapon-slash {
    left: 76%;
    width: clamp(18px, 1.4vw, 28px);
    height: min(92vh, 920px);
}

.cinematic-finisher-v3.finisher-effect-weapon.is-charging .weapon-blade,
.cinematic-finisher-v3.finisher-effect-weapon.is-charging .weapon-guard,
.cinematic-finisher-v3.finisher-effect-weapon.is-charging .weapon-handle,
.cinematic-finisher-v3.finisher-effect-weapon.is-charging .weapon-aura {
    animation: v3-weapon-summon 1.05s cubic-bezier(.16,.84,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-weapon.is-beat-one .weapon-aura {
    animation: v3-weapon-rune .72s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-weapon.is-executing .weapon-blade {
    animation: v3-weapon-cleave .82s cubic-bezier(.12,.86,.16,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-weapon.is-impact .weapon-slash {
    animation: v3-weapon-rift .88s ease-out forwards;
}

@keyframes v3-weapon-summon {
    0% { opacity: 0; transform: translate(-50%, -100%) scale(.22) rotate(-38deg); filter: blur(14px); }
    68% { opacity: 1; transform: translate(-50%, -50%) scale(1.08) rotate(4deg); filter: blur(0); }
    100% { opacity: .94; transform: translate(-50%, -50%) scale(1) rotate(0); }
}

@keyframes v3-weapon-rune {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.15) rotate(-35deg); }
    55% { opacity: 1; }
    100% { opacity: .38; transform: translate(-50%, -50%) scale(1.45) rotate(18deg); }
}

@keyframes v3-weapon-cleave {
    0% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); }
    48% { opacity: 1; transform: translate(16vw, -34%) scale(1.15) rotate(54deg); }
    100% { opacity: 0; transform: translate(48vw, 18%) scale(1.36) rotate(128deg); filter: blur(3px); }
}

@keyframes v3-weapon-rift {
    0% { opacity: 0; transform: translate(-50%, -50%) scaleY(.08) rotate(34deg); }
    24% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) scaleY(1.45) rotate(34deg); filter: blur(4px); }
}

/* ---------------------------------------------------------
   Sura BM — zaćmienie, więzy i implozja
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-black-magic .finisher-director-bg {
    background:
        radial-gradient(circle at 76% 50%, rgba(143,89,255,.26), transparent 18%),
        radial-gradient(circle at 76% 50%, rgba(0,0,0,.92), transparent 38%),
        linear-gradient(120deg, #010103, #080312 54%, #020104);
}

.cinematic-finisher-v3 .bm-orb {
    left: 76%;
    width: clamp(210px, 24vw, 430px);
    height: clamp(210px, 24vw, 430px);
}

.cinematic-finisher-v3 .bm-ring,
.cinematic-finisher-v3 .bm-tendril,
.cinematic-finisher-v3 .bm-seal {
    left: 76%;
}

.cinematic-finisher-v3 .bm-ring.ring-a { width: 280px; height: 280px; }
.cinematic-finisher-v3 .bm-ring.ring-b { width: 500px; height: 500px; }
.cinematic-finisher-v3 .bm-tendril { height: min(46vh, 470px); }
.cinematic-finisher-v3 .tendril-a { --rot: 0deg; }
.cinematic-finisher-v3 .tendril-b { --rot: 120deg; }
.cinematic-finisher-v3 .tendril-c { --rot: 240deg; }

.cinematic-finisher-v3.finisher-effect-black-magic.is-charging .bm-orb {
    animation: v3-bm-eclipse 1.18s cubic-bezier(.16,.84,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-black-magic.is-beat-one .bm-ring,
.cinematic-finisher-v3.finisher-effect-black-magic.is-beat-one .bm-tendril {
    animation: v3-bm-bind 1.05s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-black-magic.is-beat-two .bm-orb {
    animation: v3-bm-collapse .72s ease-in forwards;
}

.cinematic-finisher-v3.finisher-effect-black-magic.is-beat-two .finisher-director-fighter.is-loser {
    transform: scale(.86) !important;
    filter: brightness(.5) saturate(.35) blur(2px) !important;
}

.cinematic-finisher-v3.finisher-effect-black-magic.is-impact .bm-seal {
    animation: v3-bm-seal 1.12s ease-out forwards;
}

@keyframes v3-bm-eclipse {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.06); filter: blur(18px); }
    72% { opacity: 1; transform: translate(-50%, -50%) scale(1.12); filter: blur(0); }
    100% { opacity: .94; transform: translate(-50%, -50%) scale(1); }
}

@keyframes v3-bm-bind {
    0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) scale(.12); }
    100% { opacity: .84; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)) scale(1); }
}

@keyframes v3-bm-collapse {
    0% { opacity: .94; transform: translate(-50%, -50%) scale(1); filter: brightness(1); }
    82% { opacity: 1; transform: translate(-50%, -50%) scale(.12); filter: brightness(3); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(.02); filter: brightness(6); }
}

@keyframes v3-bm-seal {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.08) rotate(-60deg); }
    32% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.6) rotate(36deg); filter: blur(8px); }
}

/* ---------------------------------------------------------
   Szaman Smok — manifestacja smoka i pozioma fala ognia
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-dragon .finisher-director-bg {
    background:
        radial-gradient(ellipse at 28% 50%, rgba(255,202,92,.24), transparent 24%),
        radial-gradient(ellipse at 78% 50%, rgba(255,54,18,.23), transparent 30%),
        linear-gradient(105deg, #080201, #1c0601 52%, #070101);
}

.cinematic-finisher-v3 .dragon-head {
    left: 14%;
    width: clamp(190px, 22vw, 390px);
    height: clamp(150px, 17vw, 300px);
}

.cinematic-finisher-v3 .dragon-jaw {
    left: 18%;
    width: clamp(150px, 17vw, 300px);
    height: clamp(60px, 7vw, 120px);
}

.cinematic-finisher-v3 .dragon-flame {
    left: 22%;
    width: 68vw;
    height: clamp(90px, 12vw, 210px);
}

.cinematic-finisher-v3 .flame-b { top: 44%; }
.cinematic-finisher-v3 .flame-c { top: 57%; }
.cinematic-finisher-v3 .dragon-burst { left: 80%; width: 260px; height: 260px; }

.cinematic-finisher-v3.finisher-effect-dragon.is-charging .dragon-head,
.cinematic-finisher-v3.finisher-effect-dragon.is-charging .dragon-jaw {
    animation: v3-dragon-manifest .82s cubic-bezier(.16,.84,.18,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-dragon.is-beat-one .dragon-head,
.cinematic-finisher-v3.finisher-effect-dragon.is-beat-one .dragon-jaw {
    animation: v3-dragon-roar .52s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-dragon.is-executing .dragon-flame {
    animation: v3-dragon-breath .96s cubic-bezier(.08,.8,.16,1) forwards;
}

.cinematic-finisher-v3.finisher-effect-dragon.is-executing .flame-b { animation-delay: .09s; }
.cinematic-finisher-v3.finisher-effect-dragon.is-executing .flame-c { animation-delay: .18s; }

.cinematic-finisher-v3.finisher-effect-dragon.is-impact .dragon-burst {
    animation: v3-dragon-inferno 1.12s ease-out forwards;
}

@keyframes v3-dragon-manifest {
    0% { opacity: 0; transform: translate(-80%, -50%) scale(.3); filter: blur(14px); }
    70% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); filter: blur(0); }
    100% { opacity: .9; transform: translate(-50%, -50%) scale(1); }
}

@keyframes v3-dragon-roar {
    0% { opacity: .9; transform: translate(-50%, -50%) scale(1); }
    45% { opacity: 1; transform: translate(-44%, -50%) scale(1.18); filter: brightness(1.8); }
    100% { opacity: .94; transform: translate(-50%, -50%) scale(1.04); }
}

@keyframes v3-dragon-breath {
    0% { opacity: 0; transform: translate(0, -50%) scaleX(.04); transform-origin: left center; }
    20% { opacity: 1; }
    100% { opacity: .92; transform: translate(0, -50%) scaleX(1.1); transform-origin: left center; }
}

@keyframes v3-dragon-inferno {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.12); }
    24% { opacity: 1; transform: translate(-50%, -50%) scale(.72); filter: brightness(2.4); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(3); filter: blur(12px); }
}

/* ---------------------------------------------------------
   Szaman Healer — znak wyroku i trzy pionowe pioruny
   --------------------------------------------------------- */
.cinematic-finisher-v3.finisher-effect-healer .finisher-director-bg {
    background:
        linear-gradient(90deg, transparent 75.8%, rgba(255,255,255,.09) 76%, transparent 76.2%),
        radial-gradient(ellipse at 76% 18%, rgba(255,251,188,.25), transparent 24%),
        radial-gradient(ellipse at 76% 74%, rgba(58,218,190,.15), transparent 24%),
        linear-gradient(115deg, #010504, #07120f 52%, #090802);
}

.cinematic-finisher-v3 .healer-cloud,
.cinematic-finisher-v3 .healer-bolt,
.cinematic-finisher-v3 .healer-ground,
.cinematic-finisher-v3 .healer-flash {
    left: 77%;
}

.cinematic-finisher-v3 .healer-cloud {
    top: 16%;
    width: clamp(300px, 34vw, 620px);
    height: clamp(110px, 13vw, 230px);
}

.cinematic-finisher-v3 .healer-bolt {
    top: 47%;
    height: min(76vh, 760px);
}

.cinematic-finisher-v3 .bolt-a { margin-left: -86px; }
.cinematic-finisher-v3 .bolt-c { margin-left: 86px; }
.cinematic-finisher-v3 .healer-ground { top: 76%; width: clamp(280px, 34vw, 620px); }
.cinematic-finisher-v3 .healer-flash { width: 250px; height: 250px; }

.cinematic-finisher-v3.finisher-effect-healer.is-charging .healer-cloud {
    animation: v3-healer-storm .92s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-healer.is-beat-one .healer-ground {
    animation: v3-healer-sigil .72s ease-out forwards;
}

.cinematic-finisher-v3.finisher-effect-healer.is-beat-two .bolt-a,
.cinematic-finisher-v3.finisher-effect-healer.is-beat-two .bolt-c {
    animation: v3-healer-warning .28s steps(2, end) forwards;
}

.cinematic-finisher-v3.finisher-effect-healer.is-impact .healer-bolt,
.cinematic-finisher-v3.finisher-effect-healer.is-impact .healer-flash {
    animation: v3-healer-judgement .72s steps(3, end) forwards;
}

.cinematic-finisher-v3.finisher-effect-healer.is-impact .bolt-b { animation-delay: .08s; }
.cinematic-finisher-v3.finisher-effect-healer.is-impact .bolt-c { animation-delay: .16s; }

@keyframes v3-healer-storm {
    0% { opacity: 0; transform: translate(-50%, -120%) scale(.55); filter: blur(12px); }
    100% { opacity: .88; transform: translate(-50%, -50%) scale(1); filter: blur(0); }
}

@keyframes v3-healer-sigil {
    0% { opacity: 0; transform: translate(-50%, -50%) scaleX(.08); }
    55% { opacity: 1; transform: translate(-50%, -50%) scaleX(1.08); }
    100% { opacity: .72; transform: translate(-50%, -50%) scaleX(1); }
}

@keyframes v3-healer-warning {
    0%, 100% { opacity: 0; transform: translate(-50%, -50%) scaleY(.2); }
    50% { opacity: .72; transform: translate(-50%, -50%) scaleY(.72); }
}

@keyframes v3-healer-judgement {
    0%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(.16); }
    35%, 70% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); filter: brightness(2.2); }
}

/* Etapy inne niż finał nie dziedziczą złotej oprawy MAIN EVENT. */
.cinematic-finisher-v3.finisher-stage-semifinal .finisher-stage-stamp,
.cinematic-finisher-v3.finisher-stage-quarterfinal .finisher-stage-stamp,
.cinematic-finisher-v3.finisher-stage-elimination .finisher-stage-stamp,
.cinematic-finisher-v3.finisher-stage-league .finisher-stage-stamp,
.cinematic-finisher-v3.finisher-stage-regular .finisher-stage-stamp {
    border-color: rgba(86,210,189,.38);
    background: rgba(2,12,10,.68);
    box-shadow: 0 0 30px rgba(86,210,189,.12);
}

@media (max-width: 980px) {
    .cinematic-finisher-v3 .finisher-choreography {
        inset: 74px 0 118px;
    }

    .cinematic-finisher-v3 .finisher-director-header {
        z-index: 41;
    }

    .cinematic-finisher-v3 .archer-bow,
    .cinematic-finisher-v3 .archer-string,
    .cinematic-finisher-v3 .body-fist,
    .cinematic-finisher-v3 .dragon-head,
    .cinematic-finisher-v3 .dragon-jaw {
        left: 14%;
    }

    .cinematic-finisher-v3 .archer-target,
    .cinematic-finisher-v3 .body-ring,
    .cinematic-finisher-v3 .body-impact,
    .cinematic-finisher-v3 .mental-grid,
    .cinematic-finisher-v3 .mental-pulse,
    .cinematic-finisher-v3 .bm-orb,
    .cinematic-finisher-v3 .bm-ring,
    .cinematic-finisher-v3 .bm-tendril,
    .cinematic-finisher-v3 .bm-seal,
    .cinematic-finisher-v3 .dragon-burst,
    .cinematic-finisher-v3 .healer-cloud,
    .cinematic-finisher-v3 .healer-bolt,
    .cinematic-finisher-v3 .healer-ground,
    .cinematic-finisher-v3 .healer-flash {
        left: 84%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cinematic-finisher-v3 .finisher-choreography {
        display: none;
    }
}
