/* Burbz battle FX (battle-fx-v855): the layer every move plays on.
   It sits on the body, over the arena and under the header (100), the dock
   (200), Merlin's lesson (1200) and toasts (1600). It never takes a touch.
   Only transform and opacity animate; the particles live on the canvas. */
.bfx-layer { position:fixed; inset:0; width:100vw; height:100dvh; pointer-events:none; z-index:90; overflow:hidden; contain:layout style; }
.bfx-layer[hidden] { display:none; }
.bfx-canvas { position:absolute; left:0; top:0; }
.bfx-dom, .bfx-under { position:absolute; inset:0; }

/* ---- Cards are patched in place now, so their bars can glide ---------------- */
.arena-unit .au-hpbar { position:relative; }
.arena-unit .au-hpbar > .au-hpchunk { position:absolute; left:0; top:0; bottom:0; height:auto; border-radius:inherit; z-index:0;
  background:linear-gradient(180deg,#fff6e0,#ffb59e); opacity:.92; transition:width .55s cubic-bezier(.4,0,.2,1) .5s; }
.arena-unit .au-hpbar > div:not(.au-hpchunk) { position:relative; z-index:1; }
/* The bird's picture fades back while its ghost is away: a shadow left behind. */
.arena-unit.fx-art-hidden .au-art { opacity:.28; }
/* While a spell flies, the effects layer draws it; the aim line fades back. */
.battle-aim-overlay.bfx-flying .aim-projectile, .battle-aim-overlay.bfx-flying .aim-projectile-glow { opacity:0; }
.battle-aim-overlay.bfx-flying path { opacity:.35; }
.arena-unit.fx-rm-hit { outline:3px solid var(--bfx-flash, #ffe0a0); outline-offset:1px; }

/* ---- Ghosts: a bird's art lunging, recoiling or dissolving -------------------- */
.bfx-ghost { position:absolute; left:0; top:0; will-change:transform; transform-origin:50% 50%; }
.bfx-ghost-art { position:absolute; inset:0; width:100%; height:100%; border-radius:9px; object-fit:cover; display:block; transform-origin:50% 60%; }
.bfx-ghost-emoji { display:grid; place-items:center; line-height:1; text-align:center; }
.bfx-ghost.ours .bfx-ghost-art { box-shadow:0 0 0 2px rgba(255,226,150,.85), 0 0 22px rgba(255,200,90,.7); }
.bfx-ghost.evil .bfx-ghost-art { box-shadow:0 0 0 2px rgba(255,45,85,.85), 0 0 24px rgba(255,45,85,.55), 0 0 40px rgba(122,31,255,.45); }
.bfx-ghost.echo .bfx-ghost-art { box-shadow:none; filter:saturate(1.8) brightness(1.35); }
.bfx-ghost.echo.evil .bfx-ghost-art { filter:brightness(.55) saturate(2) hue-rotate(-20deg); }
.bfx-ghost.dive .bfx-ghost-art { border-radius:50%; }
.bfx-ghost.hit .bfx-ghost-art { box-shadow:0 0 0 2px rgba(255,255,255,.75); }
.bfx-ghost.hit.evil-hit .bfx-ghost-art { box-shadow:0 0 0 2px rgba(255,90,110,.85), 0 0 16px rgba(255,45,85,.5); }
.bfx-ghost-flash { position:absolute; inset:0; border-radius:9px; background:radial-gradient(circle at 50% 45%, rgba(255,255,255,.95) 0, rgba(255,255,255,.55) 40%, rgba(255,255,255,0) 78%); mix-blend-mode:screen; }
.bfx-ghost-flash.magic { background:radial-gradient(circle at 50% 45%, rgba(255,255,255,.95) 0, rgba(225,205,255,.6) 40%, rgba(170,130,255,0) 78%); }
.bfx-chroma-a, .bfx-chroma-b { mix-blend-mode:screen; opacity:0; }
.bfx-chroma-a { filter:sepia(1) saturate(9) hue-rotate(-50deg); }
.bfx-chroma-b { filter:sepia(1) saturate(9) hue-rotate(150deg); }

/* ---- Boxes that follow a card: numbers, stamps, the potion bottle --------------- */
.bfx-box { position:absolute; left:0; top:0; will-change:transform; }
.bfx-in { position:absolute; left:0; top:0; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; white-space:nowrap; }

/* Damage numbers: big, bouncy, outlined. */
.bfx-num .bfx-in { animation:bfxNumPop 1.15s cubic-bezier(.2,.9,.25,1) forwards; }
.bfx-num-v { font:400 30px/1 'Russo One', sans-serif; letter-spacing:.5px; color:#fff6dc;
  text-shadow:-2px -2px 0 #2a1406, 2px -2px 0 #2a1406, -2px 2px 0 #2a1406, 2px 2px 0 #2a1406, 0 3px 0 #2a1406, 0 0 14px rgba(255,190,80,.85); }
.bfx-num-sub { margin-top:1px; font:700 11px/1 'Rajdhani', sans-serif; letter-spacing:.12em; text-transform:uppercase; color:#f3e3c0;
  text-shadow:0 1px 0 #000, 0 0 6px rgba(0,0,0,.8); }
.bfx-num.magic .bfx-num-v { color:#f4e8ff; text-shadow:-2px -2px 0 #24104a, 2px -2px 0 #24104a, -2px 2px 0 #24104a, 2px 2px 0 #24104a, 0 3px 0 #24104a, 0 0 16px rgba(190,140,255,.95); }
.bfx-num.evil-hit .bfx-num-v { color:#ff7088; text-shadow:-2px -2px 0 #2a0610, 2px -2px 0 #2a0610, -2px 2px 0 #2a0610, 2px 2px 0 #2a0610, 0 3px 0 #2a0610, 0 0 16px rgba(255,45,85,.9); }
.bfx-num.crit .bfx-num-v { font-size:38px; color:#ffd23f; text-shadow:-2px -2px 0 #4a1a00, 2px -2px 0 #4a1a00, -2px 2px 0 #4a1a00, 2px 2px 0 #4a1a00, 0 4px 0 #4a1a00, 0 0 22px rgba(255,150,40,1); }
.bfx-num.crit.evil-hit .bfx-num-v { color:#ff3355; text-shadow:-2px -2px 0 #2a0008, 2px -2px 0 #2a0008, -2px 2px 0 #2a0008, 2px 2px 0 #2a0008, 0 4px 0 #2a0008, 0 0 24px rgba(255,30,70,1); }
.bfx-num.crit .bfx-in { animation-name:bfxNumCrit; animation-duration:1.3s; }
.bfx-num.resist .bfx-num-v { font-size:25px; color:#cfd4dc; text-shadow:-2px -2px 0 #22252b, 2px -2px 0 #22252b, -2px 2px 0 #22252b, 2px 2px 0 #22252b, 0 0 8px rgba(0,0,0,.6); }
.bfx-num.small .bfx-num-v { font-size:23px; }
.bfx-num.burn .bfx-num-v { color:#ffb35c; text-shadow:-2px -2px 0 #3a1200, 2px -2px 0 #3a1200, -2px 2px 0 #3a1200, 2px 2px 0 #3a1200, 0 0 14px rgba(255,110,30,.95); }
.bfx-num.heal .bfx-num-v { color:#8dffae; text-shadow:-2px -2px 0 #06321a, 2px -2px 0 #06321a, -2px 2px 0 #06321a, 2px 2px 0 #06321a, 0 3px 0 #06321a, 0 0 14px rgba(120,255,160,.9); }
.bfx-num.absorb .bfx-num-v { font-size:18px; color:#bfe6ff; text-shadow:-1px -1px 0 #0a1e33, 1px -1px 0 #0a1e33, -1px 1px 0 #0a1e33, 1px 1px 0 #0a1e33, 0 0 10px rgba(120,190,255,.9); }
.bfx-num.stat .bfx-num-v { font:700 15px/1 'Rajdhani', sans-serif; letter-spacing:.04em; color:#ffe28a;
  text-shadow:-1.5px -1.5px 0 #2a1a00, 1.5px -1.5px 0 #2a1a00, -1.5px 1.5px 0 #2a1a00, 1.5px 1.5px 0 #2a1a00, 0 0 10px rgba(255,200,80,.9); }
.bfx-num.stat.debuff .bfx-num-v { color:#ff8fb0; text-shadow:-1.5px -1.5px 0 #2a0616, 1.5px -1.5px 0 #2a0616, -1.5px 1.5px 0 #2a0616, 1.5px 1.5px 0 #2a0616, 0 0 10px rgba(255,80,140,.9); }
.bfx-num.stat.speed .bfx-num-v { color:#8ffff0; text-shadow:-1.5px -1.5px 0 #06302a, 1.5px -1.5px 0 #06302a, -1.5px 1.5px 0 #06302a, 1.5px 1.5px 0 #06302a, 0 0 10px rgba(80,240,210,.9); }
.bfx-num.stat.burn .bfx-num-v { color:#ffb35c; }
.bfx-num.stat .bfx-in { animation-name:bfxStatRise; animation-duration:1.2s; }
@keyframes bfxNumPop {
  0% { opacity:0; transform:translate(-50%,-50%) scale(.3); }
  12% { opacity:1; transform:translate(-50%,-62%) scale(1.32); }
  24% { transform:translate(-50%,-58%) scale(.9); }
  34% { transform:translate(-50%,-63%) scale(1.07); }
  44% { transform:translate(-50%,-65%) scale(1); }
  76% { opacity:1; transform:translate(-50%,-120%) scale(1); }
  100% { opacity:0; transform:translate(-50%,-165%) scale(.92); }
}
@keyframes bfxNumCrit {
  0% { opacity:0; transform:translate(-50%,-50%) scale(.2) rotate(-12deg); }
  10% { opacity:1; transform:translate(-50%,-62%) scale(1.45) rotate(4deg); }
  22% { transform:translate(-50%,-58%) scale(.88) rotate(-2deg); }
  32% { transform:translate(-50%,-63%) scale(1.12) rotate(0deg); }
  44% { transform:translate(-50%,-66%) scale(1); }
  78% { opacity:1; transform:translate(-50%,-115%) scale(1); }
  100% { opacity:0; transform:translate(-50%,-160%) scale(.9); }
}
@keyframes bfxStatRise {
  0% { opacity:0; transform:translate(-50%,-20%) scale(.6); }
  16% { opacity:1; transform:translate(-50%,-60%) scale(1.15); }
  30% { transform:translate(-50%,-70%) scale(1); }
  75% { opacity:1; transform:translate(-50%,-140%); }
  100% { opacity:0; transform:translate(-50%,-190%); }
}

/* Stamps: CRITICAL!, SUPER EFFECTIVE!, WILL NOT FALL!, PIERCE! */
.bfx-stamp .bfx-in { font:700 19px/1 'Rajdhani', sans-serif; letter-spacing:.07em; text-transform:uppercase; padding:4px 10px 3px; border-radius:6px;
  animation:bfxStamp 1.15s cubic-bezier(.2,1.3,.3,1) forwards; }
.bfx-stamp.crit .bfx-in { color:#ffe066; background:linear-gradient(180deg,#7a1d00,#3a0a00); border:2px solid #ffc83d;
  box-shadow:0 0 0 2px rgba(0,0,0,.55), 0 0 18px rgba(255,170,40,.8); text-shadow:0 1px 0 #000; }
.bfx-stamp.crit.evil .bfx-in { color:#ffd6de; background:linear-gradient(180deg,#5a0018,#22000a); border-color:#ff3355; box-shadow:0 0 0 2px rgba(0,0,0,.55), 0 0 18px rgba(255,40,80,.85); }
.bfx-stamp.super .bfx-in { font-size:15px; color:#fffbe8; background:linear-gradient(90deg,#0e5c4e,#17a589 50%,#0e5c4e); border:2px solid #9fffe0;
  box-shadow:0 0 0 2px rgba(0,0,0,.5), 0 0 16px rgba(80,240,200,.75); text-shadow:0 1px 0 #053a30; animation-name:bfxRibbon; }
.bfx-stamp.rally .bfx-in { font-size:17px; color:#fff8dc; background:linear-gradient(180deg,#a86a00,#5a3500); border:2px solid #ffe28a; box-shadow:0 0 20px rgba(255,210,90,.9); }
.bfx-stamp.pierce .bfx-in { font-size:13px; color:#e8f6ff; background:#14304e; border:1.5px solid #8fd0ff; }
@keyframes bfxStamp {
  0% { opacity:0; transform:translate(-50%,-50%) scale(2.4) rotate(-14deg); }
  14% { opacity:1; transform:translate(-50%,-50%) scale(.92) rotate(-7deg); }
  24% { transform:translate(-50%,-50%) scale(1.06) rotate(-8deg); }
  34% { transform:translate(-50%,-50%) scale(1) rotate(-8deg); }
  80% { opacity:1; transform:translate(-50%,-58%) scale(1) rotate(-8deg); }
  100% { opacity:0; transform:translate(-50%,-75%) scale(.96) rotate(-8deg); }
}
@keyframes bfxRibbon {
  0% { opacity:0; transform:translate(-50%,-50%) scaleX(.1); }
  14% { opacity:1; transform:translate(-50%,-50%) scaleX(1.12); }
  24% { transform:translate(-50%,-50%) scaleX(.97); }
  32% { transform:translate(-50%,-50%) scaleX(1); }
  82% { opacity:1; transform:translate(-50%,-60%); }
  100% { opacity:0; transform:translate(-50%,-75%); }
}

/* The potion bottle pops up and uncorks. */
.bfx-bottle .bfx-in { font-size:32px; line-height:1; filter:drop-shadow(0 3px 4px rgba(0,0,0,.6)); animation:bfxBottle 1.05s cubic-bezier(.2,1.2,.3,1) forwards; }
@keyframes bfxBottle {
  0% { opacity:0; transform:translate(-50%,-20%) scale(.4) rotate(-20deg); }
  25% { opacity:1; transform:translate(-50%,-110%) scale(1.3) rotate(12deg); }
  42% { transform:translate(-50%,-118%) scale(1) rotate(-8deg); }
  70% { opacity:1; transform:translate(-50%,-128%) scale(1) rotate(0deg); }
  100% { opacity:0; transform:translate(-50%,-165%) scale(.8); }
}

.bfx-flash { position:absolute; inset:0; opacity:0; }

/* ---- The cinematic cut-in for signatures, specials and ultimates --------------- */
.bfx-cutin { position:absolute; inset:0; }
.bfx-cutin-dim { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 42%, rgba(10,8,20,.25), rgba(4,3,8,.8)); opacity:0;
  animation:bfxCutDim var(--bfx-ms, 650ms) ease forwards; }
.bfx-cutin-band { position:absolute; left:-10%; right:-10%; top:calc(40% - 64px); height:128px; display:flex; align-items:center; gap:14px;
  padding:0 calc(10% + 20px); overflow:hidden; transform:skewY(-7deg) translateX(-115%);
  background:linear-gradient(90deg, rgba(10,8,16,.96), rgba(42,28,10,.96) 55%, rgba(10,8,16,.96));
  border-top:3px solid var(--bfx-c1, #ffd36b); border-bottom:3px solid var(--bfx-c1, #ffd36b);
  box-shadow:0 0 0 1px rgba(0,0,0,.6), 0 0 36px var(--bfx-c1, #ffd36b);
  animation:bfxCutBand var(--bfx-ms, 650ms) cubic-bezier(.2,.8,.2,1) forwards; }
.bfx-cutin.evil .bfx-cutin-band { flex-direction:row-reverse; text-align:right; transform:skewY(7deg) translateX(115%);
  background:linear-gradient(90deg, rgba(14,3,12,.96), rgba(60,6,26,.96) 50%, rgba(16,4,22,.96)); animation-name:bfxCutBandEvil; }
.bfx-cutin-lines { position:absolute; inset:-20px -40px; opacity:.55;
  background:repeating-linear-gradient(90deg, transparent 0 26px, rgba(255,255,255,.07) 26px 28px, transparent 28px 61px, rgba(255,255,255,.12) 61px 62px);
  animation:bfxLines .32s linear infinite; }
.bfx-cutin.evil .bfx-cutin-lines { animation-direction:reverse; background:repeating-linear-gradient(90deg, transparent 0 26px, rgba(255,60,100,.12) 26px 28px, transparent 28px 61px, rgba(160,60,255,.14) 61px 62px); }
.bfx-cutin-art { position:relative; flex:0 0 auto; width:106px; height:106px; border-radius:16px; overflow:hidden; transform:skewY(7deg);
  border:3px solid var(--bfx-c1, #ffd36b); background:#14110c; box-shadow:0 0 24px var(--bfx-c1, #ffd36b), inset 0 0 18px rgba(0,0,0,.6);
  animation:bfxCutArt var(--bfx-ms, 650ms) ease-out forwards; }
.bfx-cutin.evil .bfx-cutin-art { transform:skewY(-7deg); }
.bfx-cutin-art img, .bfx-cutin-art canvas { width:100%; height:100%; object-fit:cover; display:block; }
.bfx-cutin-emoji { display:grid; place-items:center; width:100%; height:100%; font-size:58px; }
.bfx-cutin-text { position:relative; min-width:0; transform:skewY(7deg); }
.bfx-cutin.evil .bfx-cutin-text { transform:skewY(-7deg); }
.bfx-cutin-kicker { font:700 12px/1.1 'Rajdhani', sans-serif; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,236,200,.86); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bfx-cutin-name { margin-top:4px; font:700 clamp(24px, 8.4vw, 40px)/.95 'Rajdhani', sans-serif; letter-spacing:.02em; text-transform:uppercase; color:#ffe08a;
  text-shadow:0 2px 0 #3a2200, 0 3px 0 #1a1000, 0 0 18px rgba(255,200,80,.85); overflow-wrap:anywhere; }
.bfx-cutin.evil .bfx-cutin-kicker { color:rgba(255,196,210,.86); }
.bfx-cutin.evil .bfx-cutin-name { color:#ff4d6d; text-shadow:0 2px 0 #2a0010, 0 3px 0 #120008, 0 0 20px rgba(255,45,85,.85); }
@keyframes bfxCutDim { 0% { opacity:0; } 18% { opacity:1; } 78% { opacity:1; } 100% { opacity:0; } }
@keyframes bfxCutBand {
  0% { transform:skewY(-7deg) translateX(-115%); }
  24% { transform:skewY(-7deg) translateX(0); }
  76% { transform:skewY(-7deg) translateX(3%); opacity:1; }
  100% { transform:skewY(-7deg) translateX(115%); opacity:.2; }
}
@keyframes bfxCutBandEvil {
  0% { transform:skewY(7deg) translateX(115%); }
  24% { transform:skewY(7deg) translateX(0); }
  76% { transform:skewY(7deg) translateX(-3%); opacity:1; }
  100% { transform:skewY(7deg) translateX(-115%); opacity:.2; }
}
@keyframes bfxCutArt { 0% { opacity:.4; } 26% { opacity:1; } 100% { opacity:1; } }
@keyframes bfxLines { from { transform:translateX(0); } to { transform:translateX(62px); } }

/* ---- Finale ------------------------------------------------------------------------ */
.bfx-finale { position:absolute; inset:0; }
.bfx-finale-dim { position:absolute; inset:0; opacity:0; background:radial-gradient(ellipse at 50% 32%, rgba(255,228,150,.2), rgba(12,9,4,.62));
  animation:bfxFinDim 1.25s ease forwards; }
.bfx-finale.lost .bfx-finale-dim { background:radial-gradient(ellipse at 50% 40%, rgba(40,52,80,.45), rgba(8,10,18,.72)); }
.bfx-finale-title { position:absolute; left:50%; top:36%; transform:translate(-50%,-50%); white-space:nowrap;
  font:700 66px/1 'Rajdhani', sans-serif; letter-spacing:.05em; color:#ffe08a;
  text-shadow:0 3px 0 #5a3500, 0 5px 0 #2a1800, 0 0 28px rgba(255,200,80,.95), 0 0 70px rgba(255,170,50,.6);
  animation:bfxFinTitle 1.25s cubic-bezier(.2,1.25,.3,1) forwards; }
.bfx-finale.lost .bfx-finale-title { font-size:32px; letter-spacing:.03em; color:#e2e8f4; text-shadow:0 2px 0 #151b28, 0 0 20px rgba(150,180,255,.5); animation-name:bfxFinSoft; }
.bfx-finale-sub { position:absolute; left:50%; top:calc(36% + 46px); transform:translateX(-50%); font:700 15px/1 'Rajdhani', sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:#fff3c4; text-shadow:0 1px 0 #000, 0 0 10px rgba(255,200,80,.7); opacity:0; animation:bfxFinDim 1.25s ease forwards; }
@keyframes bfxFinDim { 0% { opacity:0; } 20% { opacity:1; } 82% { opacity:1; } 100% { opacity:0; } }
@keyframes bfxFinTitle {
  0% { opacity:0; transform:translate(-50%,-50%) scale(2.6); letter-spacing:.4em; }
  22% { opacity:1; transform:translate(-50%,-50%) scale(.94); letter-spacing:.05em; }
  32% { transform:translate(-50%,-50%) scale(1.04); }
  42% { transform:translate(-50%,-50%) scale(1); }
  84% { opacity:1; transform:translate(-50%,-52%) scale(1); }
  100% { opacity:0; transform:translate(-50%,-60%) scale(1.04); }
}
@keyframes bfxFinSoft { 0% { opacity:0; transform:translate(-50%,-40%); } 25% { opacity:1; transform:translate(-50%,-50%); } 82% { opacity:1; } 100% { opacity:0; transform:translate(-50%,-56%); } }

/* ---- The comic theme: ink outlines and paper ribbons ----------------------------------- */
.comic-ui .bfx-num-v { color:#fffef6; text-shadow:-2px -2px 0 var(--comic-ink,#152828), 2px -2px 0 var(--comic-ink,#152828), -2px 2px 0 var(--comic-ink,#152828), 2px 2px 0 var(--comic-ink,#152828), 0 4px 0 var(--comic-ink,#152828); }
.comic-ui .bfx-num.evil-hit .bfx-num-v { color:#ff5a6e; }
.comic-ui .bfx-num.crit .bfx-num-v { color:var(--comic-yellow,#ffda38); }
.comic-ui .bfx-num.heal .bfx-num-v { color:#5ff08e; }
.comic-ui .bfx-num.magic .bfx-num-v { color:#e6d2ff; }
.comic-ui .bfx-stamp .bfx-in { color:var(--comic-ink,#152828); background:var(--comic-yellow,#ffda38); border:3px solid var(--comic-ink,#152828); box-shadow:3px 4px 0 var(--comic-ink,#152828); text-shadow:none; }
.comic-ui .bfx-stamp.crit.evil .bfx-in { background:#ff8a8a; }
.comic-ui .bfx-stamp.super .bfx-in { background:#7fe0c4; }
.comic-ui .bfx-cutin-band { background:var(--comic-paper,#fff9e8); border-top:4px solid var(--comic-ink,#152828); border-bottom:4px solid var(--comic-ink,#152828); box-shadow:0 6px 0 var(--comic-ink,#152828); }
.comic-ui .bfx-cutin.evil .bfx-cutin-band { background:#ffd9cf; }
.comic-ui .bfx-cutin-lines { background:repeating-linear-gradient(90deg, transparent 0 26px, rgba(21,40,40,.08) 26px 28px); }
.comic-ui .bfx-cutin-art { border-color:var(--comic-ink,#152828); box-shadow:3px 4px 0 var(--comic-ink,#152828); }
.comic-ui .bfx-cutin-kicker { color:var(--comic-ink,#152828); }
.comic-ui .bfx-cutin-name { color:var(--comic-ink,#152828); text-shadow:2px 2px 0 var(--comic-yellow,#ffda38); }
.comic-ui .bfx-cutin.evil .bfx-cutin-name { color:#8f1426; text-shadow:2px 2px 0 #ffc2b8; }
.comic-ui .bfx-finale-title { color:var(--comic-yellow,#ffda38); text-shadow:-3px -3px 0 var(--comic-ink,#152828), 3px -3px 0 var(--comic-ink,#152828), -3px 3px 0 var(--comic-ink,#152828), 3px 3px 0 var(--comic-ink,#152828), 0 6px 0 var(--comic-ink,#152828); }
.comic-ui .arena-unit .au-hpbar > .au-hpchunk { background:#fffef6; }

/* ---- Reduced motion: no travel, shake, knockback or particles; static flashes,
   outlines and fading numbers instead. ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .bfx-in, .bfx-num .bfx-in, .bfx-stamp .bfx-in, .bfx-bottle .bfx-in { animation:bfxFade 1.1s ease forwards !important; transform:translate(-50%,-60%) !important; }
  .bfx-ghost { display:none !important; }
  .bfx-cutin-band { animation:bfxFade var(--bfx-ms, 450ms) ease forwards !important; transform:skewY(-7deg) !important; }
  .bfx-cutin.evil .bfx-cutin-band { transform:skewY(7deg) !important; }
  .bfx-cutin-lines, .bfx-cutin-art { animation:none !important; }
  .bfx-finale-title { animation:bfxFade 1s ease forwards !important; transform:translate(-50%,-50%) !important; letter-spacing:.05em !important; }
  .arena-unit .au-hpbar > .au-hpchunk { transition:none; }
  /* Gaps the woodland theme left open. */
  .arena-unit.shake, .arena-unit.targetable, .move-btn.attack-confirm-btn { animation:none; }
  .dmg-float { animation:bfxFade 1s ease forwards; }
}
.bfx-box.rm .bfx-in { animation:bfxFade 1.1s ease forwards; transform:translate(-50%,-60%); }
@keyframes bfxFade { 0% { opacity:0; } 14% { opacity:1; } 76% { opacity:1; } 100% { opacity:0; } }
