
.buff-aura-host {
  position: absolute;
  inset: -24%;
  pointer-events: none;
  overflow: visible;
  border-radius: 0;
}

.card-portrait.has-buff-aura,
.portrait-ornament.has-buff-aura,
.card-portrait-wrap.has-buff-aura,
.fighter-frame.has-buff-aura,
.hp-portrait.has-buff-aura,
.hero-panel.has-buff-aura,
.stage-fighter.has-buff-aura,
.buff-wear-portrait.has-buff-aura,
.bbs-aura-portrait.has-buff-aura,
.community-profile-character.has-buff-aura,
.plaza-profile-character.has-buff-aura,
.bbs-left-character.has-buff-aura,
.hp-portrait:has(.has-buff-aura),
.hero-panel:has(.has-buff-aura) {
  overflow: visible !important;
}

.card-portrait > .buff-aura-host.is-back { z-index: 0; }
.card-portrait > .character-preview-2d { z-index: 2; }
.card-portrait > .buff-aura-host.is-front {
  z-index: 3;
  
  -webkit-mask-image: radial-gradient(ellipse 40% 52% at 50% 58%, transparent 0 76%, #000 100%);
  mask-image: radial-gradient(ellipse 40% 52% at 50% 58%, transparent 0 76%, #000 100%);
}

.buff-aura--mythic.is-no-outer-ring .ba-seal-ring.is-rim,
.buff-aura.is-no-outer-ring .ba-seal-ring.is-rim,
.buff-aura--mythic .ba-mythic-rim {
  display: none !important;
}
.buff-aura--mythic .ba-epic-glow {
  background:
    radial-gradient(circle, rgba(244, 63, 94, 0.42) 0%, rgba(190, 18, 60, 0.16) 42%, transparent 70%),
    radial-gradient(circle at 50% 45%, rgba(251, 113, 133, 0.22) 0%, transparent 55%);
}
.buff-aura--mythic .ba-seal {
  filter:
    hue-rotate(-35deg) saturate(1.35)
    drop-shadow(0 0 3px rgba(251, 113, 133, 0.95))
    drop-shadow(0 0 12px rgba(225, 29, 72, 0.75));
}
.buff-aura--mythic .ba-mythic-ray {
  top: 41%;
  width: 3px;
  height: 42%;
  opacity: 0.9;
  background: linear-gradient(180deg, #fb7185, #e11d48 40%, transparent);
  filter: drop-shadow(0 0 4px rgba(225, 29, 72, 0.8));
}
.ba-mythic-ray-host {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.buff-aura--mythic .ba-seal-wrap,
.buff-aura--mythic .ba-epic-glow {
  z-index: 1;
  position: absolute;
}

.buff-aura--rare .ba-rare-seal-glow {
  width: 70%;
  height: 70%;
  background: radial-gradient(circle, rgba(167, 139, 250, 0.32) 0%, rgba(124, 58, 237, 0.12) 48%, transparent 72%);
}
.buff-aura--rare .ba-rare-seal-wrap {
  width: 88%;
  height: 88%;
}
.buff-aura--rare .ba-rare-seal {
  filter:
    drop-shadow(0 0 3px rgba(196, 181, 253, 0.9))
    drop-shadow(0 0 8px rgba(124, 58, 237, 0.55));
}

.card-portrait.rarity-mythic > .buff-aura-host.is-front {
  -webkit-mask-image: none;
  mask-image: none;
}

.portrait-ornament > .buff-aura-host:not(.is-back):not(.is-front),
.fighter-frame > .buff-aura-host:not(.is-back):not(.is-front),
.card-portrait-wrap > .buff-aura-host:not(.is-back):not(.is-front) {
  display: none;
}

.card-portrait-wrap { position: relative; }

.card-portrait.has-buff-aura > .character-preview-2d {
  filter:
    drop-shadow(0 0 1px var(--fx-color, #d4a017))
    drop-shadow(0 0 4px var(--fx-color, #d4a017))
    drop-shadow(0 0 10px var(--fx-color, #d4a017));
}
.card-portrait.has-buff-aura.rarity-legendary > .character-preview-2d {
  filter:
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 3px var(--fx-color, #d4a017))
    drop-shadow(0 0 8px var(--fx-color, #d4a017))
    drop-shadow(0 0 16px var(--fx-color, #d4a017));
}

.buff-aura {
  position: absolute;
  inset: 0;
  pointer-events: none;
  --fx-color: #d4a017;
}

.ba-bloom {
  position: absolute;
  left: 50%;
  top: 72%;
  width: 78%;
  height: 44%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, var(--fx-color) 0%, transparent 70%);
  opacity: 0.45;
  filter: blur(8px);
  animation: baBloom 2.4s ease-in-out infinite;
}

.ba-fx-img {
  position: absolute;
  pointer-events: none;
  object-fit: contain;
  
  mix-blend-mode: screen;
  image-rendering: auto;
}
.ba-halo-img {
  left: 50%;
  top: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  opacity: 0.85;
  animation: baHaloPulse 2.2s ease-in-out infinite;
}
.ba-halo-img.is-soft {
  width: 82%;
  height: 82%;
  opacity: 0.6;
}
.ba-swirl-img {
  left: 50%;
  top: 50%;
  width: 108%;
  height: 108%;
  transform: translate(-50%, -50%);
  opacity: 0.8;
  animation: baSpin 7s linear infinite;
}

.ba-wings-img {
  left: 50%;
  top: 50%;
  width: 160%;
  height: 110%;
  max-width: none;
  transform: translate(-50%, -50%);
  opacity: 1;
  filter: drop-shadow(0 0 8px var(--fx-color, #d4a017));
  z-index: 0;
}
.ba-wings-img.rarity-rare {
  width: 140%;
  height: 95%;
  opacity: 0.92;
}
.ba-wings-img.rarity-epic {
  width: 155%;
  height: 105%;
}
.ba-wings-img.rarity-legendary {
  width: 178%;
  height: 122%;
  filter:
    drop-shadow(0 0 2px #fff)
    drop-shadow(0 0 10px var(--fx-color, #d4a017))
    drop-shadow(0 0 20px var(--fx-color, #d4a017));
}

.ba-orb-img {
  width: 20%;
  height: 20%;
  left: 50%;
  top: 56%;
  margin: -10% 0 0 -10%;
  animation: baOrbit 2.8s linear infinite;
  --orbit-r: 48%;
  --orbit-a: 0deg;
  transform: rotate(var(--orbit-a)) translateX(var(--orbit-r)) rotate(calc(-1 * var(--orbit-a)));
  filter: drop-shadow(0 0 4px var(--fx-color, #d4a017));
}
.ba-orb-img.is-spark {
  width: 15%;
  height: 15%;
  margin: -7.5% 0 0 -7.5%;
}
.buff-aura--legendary .ba-orb-img {
  --orbit-r: 52%;
  width: 22%;
  height: 22%;
  margin: -11% 0 0 -11%;
  animation-duration: 2s;
}

.buff-aura--rare {
  overflow: visible;
  --fx-color: #dc2626;
}
.ba-rare-bolt-host {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 118%;
  height: 118%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.ba-rare-bolts {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.ba-rare-bolt-core,
.ba-rare-bolt-branch {
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.ba-rare-bolt-core {
  stroke: #b91c1c;
  stroke-width: 2.4;
  filter: drop-shadow(0 0 3px rgba(185, 28, 28, 0.9));
}
.ba-rare-bolt-branch {
  stroke: #991b1b;
  stroke-width: 1.5;
  filter: drop-shadow(0 0 2px rgba(153, 27, 27, 0.8));
}
.ba-rare-bolt.is-a {
  animation: baRareBolt 1.1s steps(2, end) infinite;
}
.ba-rare-bolt.is-b {
  animation: baRareBolt 1.35s steps(2, end) infinite;
  animation-delay: 0.35s;
}
.ba-rare-bolt.is-c {
  animation: baRareBolt 0.95s steps(2, end) infinite;
  animation-delay: 0.55s;
  opacity: 0.85;
}
.ba-rare-bolt.is-c .ba-rare-bolt-core {
  stroke: #dc2626;
  stroke-width: 1.8;
}
.ba-rare-flash-host {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.ba-rare-flash {
  position: absolute;
  top: 22%;
  width: 3px;
  height: 56%;
  border-radius: 2px;
  background: linear-gradient(180deg, transparent, #b91c1c 35%, #7f1d1d 70%, transparent);
  opacity: 0;
  filter: drop-shadow(0 0 4px rgba(185, 28, 28, 0.85));
  animation: baRareFlash 1.2s steps(2, end) infinite;
}
.ba-rare-flash.is-l {
  left: 12%;
  transform: rotate(-12deg);
}
.ba-rare-flash.is-r {
  right: 12%;
  left: auto;
  transform: rotate(12deg);
  animation-delay: 0.4s;
  background: linear-gradient(180deg, transparent, #991b1b 35%, #7f1d1d 70%, transparent);
}
@keyframes baRareBolt {
  0%, 40% { opacity: 0; }
  45%, 58% { opacity: 1; }
  62%, 100% { opacity: 0.15; }
}
@keyframes baRareFlash {
  0%, 50% { opacity: 0; }
  54%, 62% { opacity: 0.9; }
  66%, 100% { opacity: 0; }
}

.ba-epic-glow {
  position: absolute;
  left: 50%;
  top: 41%;
  width: 78%;
  height: 78%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(192, 132, 252, 0.38) 0%, rgba(126, 34, 206, 0.14) 42%, transparent 70%),
    radial-gradient(circle at 50% 45%, rgba(167, 139, 250, 0.2) 0%, transparent 55%);
  filter: blur(7px);
  animation: baBloom 2.4s ease-in-out infinite;
}
.ba-seal-wrap {
  position: absolute;
  left: 50%;
  top: 41%;
  width: 98%;
  height: 98%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 0;
}
.ba-seal {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter:
    drop-shadow(0 0 3px rgba(216, 180, 254, 0.95))
    drop-shadow(0 0 12px rgba(168, 85, 247, 0.72));
}
.ba-seal-spin {
  transform-origin: 100px 100px;
}
.ba-seal-spin.is-outer {
  animation: baSealSpin 16s linear infinite;
}
.ba-seal-spin.is-mid {
  animation: baSealSpinRev 11s linear infinite;
}
.ba-seal-spin.is-core {
  animation: baSealSpin 8s linear infinite;
}
.ba-seal-core-fill {
  animation: baSealPulse 2.6s ease-in-out infinite;
}
.ba-seal-ring {
  stroke: rgba(233, 213, 255, 0.88);
  stroke-width: 1.2;
  fill: none;
}
.ba-seal-ring.is-rim {
  stroke: rgba(167, 139, 250, 0.35);
  stroke-width: 0.7;
  stroke-dasharray: 1 3;
}
.ba-seal-ring.is-mid {
  stroke: rgba(192, 132, 252, 0.8);
  stroke-width: 1.15;
}
.ba-seal-ring.is-mid-inner {
  stroke: rgba(216, 180, 254, 0.55);
  stroke-width: 0.85;
  stroke-dasharray: 3 2.5;
}
.ba-seal-ring.is-outer {
  stroke: rgba(216, 180, 254, 0.95);
  stroke-width: 1.7;
}
.ba-seal-ring.is-dash {
  stroke: rgba(196, 181, 253, 0.6);
  stroke-width: 0.85;
  stroke-dasharray: 2.5 4.5;
}
.ba-seal-ring.is-dash-alt {
  stroke: rgba(167, 139, 250, 0.45);
  stroke-width: 0.7;
  stroke-dasharray: 1 2.2 4 2.2;
}
.ba-seal-ring.is-core {
  stroke: rgba(237, 233, 254, 0.9);
  stroke-width: 1.35;
}
.ba-seal-ring.is-core-dot {
  stroke: rgba(192, 132, 252, 0.7);
  stroke-width: 0.9;
  stroke-dasharray: 1.5 2;
}
.ba-seal-hex {
  fill: none;
  stroke: rgba(216, 180, 254, 0.55);
  stroke-width: 0.9;
}
.ba-seal-star {
  fill: rgba(168, 85, 247, 0.12);
  stroke: rgba(233, 213, 255, 0.75);
  stroke-width: 0.85;
}
.ba-seal-diamond {
  fill: rgba(216, 180, 254, 0.85);
  stroke: rgba(167, 139, 250, 0.7);
  stroke-width: 0.4;
}
.ba-seal-petal {
  fill: rgba(192, 132, 252, 0.22);
  stroke: rgba(216, 180, 254, 0.55);
  stroke-width: 0.5;
}
.ba-seal-eye {
  fill: rgba(126, 34, 206, 0.35);
  stroke: rgba(233, 213, 255, 0.85);
  stroke-width: 1;
  animation: baSealPulse 2.2s ease-in-out infinite;
}
.ba-seal-eye-dot {
  fill: rgba(245, 243, 255, 0.95);
}
.ba-seal-runes {
  fill: rgba(237, 233, 254, 0.9);
  font-size: 7.5px;
  letter-spacing: 1.5px;
  font-family: Georgia, 'Times New Roman', serif;
}
.ba-seal-runes.is-inner {
  fill: rgba(216, 180, 254, 0.85);
  font-size: 6.5px;
  letter-spacing: 1px;
}
.ba-seal-spoke {
  stroke: rgba(233, 213, 255, 0.92);
  stroke-width: 1.15;
  stroke-linecap: round;
}
.ba-seal-spoke.is-fine {
  stroke: rgba(196, 181, 253, 0.7);
  stroke-width: 0.7;
}
.ba-seal-dot {
  fill: rgba(245, 243, 255, 0.95);
}
.ba-seal-dot.is-tiny {
  fill: rgba(216, 180, 254, 0.85);
}
.ba-seal-tip {
  fill: rgba(233, 213, 255, 0.95);
  stroke: rgba(192, 132, 252, 0.85);
  stroke-width: 0.5;
}
.ba-seal-tipbar {
  stroke: rgba(237, 233, 254, 0.95);
  stroke-width: 1.25;
  stroke-linecap: round;
}
@keyframes baSealSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes baSealSpinRev {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}
@keyframes baSealPulse {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
.ba-ray {
  position: absolute;
  left: 50%;
  top: 56%;
  width: 2px;
  height: 36%;
  margin-left: -1px;
  transform-origin: 50% 0;
  transform: rotate(var(--ray-a, 0deg));
  background: linear-gradient(180deg, #fff, var(--fx-color), transparent);
  opacity: 0.5;
  animation: baRay 1.6s ease-in-out infinite;
}

.ba-pillar-host {
  position: absolute;
  left: 50%;
  top: -18%;
  width: 120%;
  height: 140%;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}
.ba-pillar {
  position: absolute;
  left: 50%;
  bottom: 8%;
  width: 18%;
  height: 100%;
  margin-left: -9%;
  transform: translateX(var(--pillar-x, 0%)) scaleX(var(--pillar-scale, 1));
  transform-origin: 50% 100%;
  background:
    linear-gradient(180deg,
      rgba(255, 255, 255, 0.95) 0%,
      var(--fx-color, #f59e0b) 28%,
      rgba(245, 158, 11, 0.35) 62%,
      transparent 100%);
  filter: blur(1.5px);
  opacity: 0.55;
  border-radius: 40% 40% 20% 20% / 8% 8% 40% 40%;
  mix-blend-mode: screen;
  animation: baPillar 2.4s ease-in-out infinite;
  animation-delay: var(--pillar-delay, 0s);
  box-shadow:
    0 0 18px rgba(255, 255, 255, 0.35),
    0 0 36px var(--fx-color, #f59e0b);
}
.ba-pillar.is-core {
  width: 26%;
  margin-left: -13%;
  opacity: 0.85;
  filter: blur(0.5px);
  background:
    linear-gradient(180deg,
      #fff 0%,
      #fff7ed 18%,
      var(--fx-color, #f59e0b) 42%,
      rgba(245, 158, 11, 0.25) 72%,
      transparent 100%);
}
.ba-pillar::after {
  content: '';
  position: absolute;
  inset: 10% 32% 0;
  background: linear-gradient(180deg, rgba(255,255,255,.9), transparent 70%);
  border-radius: inherit;
  opacity: 0.7;
}
@keyframes baPillar {
  0%, 100% { opacity: 0.4; transform: translateX(var(--pillar-x, 0%)) scaleX(var(--pillar-scale, 1)) scaleY(0.92); }
  50% { opacity: 0.9; transform: translateX(var(--pillar-x, 0%)) scaleX(calc(var(--pillar-scale, 1) * 1.08)) scaleY(1.05); }
}

.ba-sparkle {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 6px 2px var(--fx-color);
  animation: baSpark 1.4s ease-in-out infinite;
}

@keyframes baBloom {
  0%, 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.94); }
  50% { opacity: 0.55; transform: translate(-50%, -50%) scale(1.08); }
}
@keyframes baHaloPulse {
  0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.96); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.06); }
}
@keyframes baSpin {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes baOrbit {
  from {
    transform: rotate(var(--orbit-a)) translateX(var(--orbit-r)) rotate(calc(-1 * var(--orbit-a)));
  }
  to {
    transform: rotate(calc(var(--orbit-a) + 360deg)) translateX(var(--orbit-r)) rotate(calc(-1 * (var(--orbit-a) + 360deg)));
  }
}
@keyframes baRay {
  0%, 100% { opacity: 0.25; }
  50% { opacity: 0.9; }
}
@keyframes baSpark {
  0%, 100% { opacity: 0.25; transform: scale(0.6); }
  50% { opacity: 1; transform: scale(1.3); }
}

.eo-buff { position: relative; }
.eo-buff .rarity-tag {
  display: inline-block;
  margin-left: 4px;
  padding: 0 4px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.4;
  vertical-align: middle;
  border: 1px solid currentColor;
}
.eo-buff.rarity-low { box-shadow: inset 0 0 0 1px #a8a29e; }
.eo-buff.rarity-common { box-shadow: inset 0 0 0 1px #94a3b8; }
.eo-buff.rarity-rare { box-shadow: inset 0 0 0 1px #3b82f6; }
.eo-buff.rarity-epic { box-shadow: 0 0 0 1px #a855f7, 0 0 10px rgba(168, 85, 247, 0.45); }
.eo-buff.rarity-legendary {
  box-shadow: 0 0 0 1px #f59e0b, 0 0 14px rgba(245, 158, 11, 0.65);
  animation: chipLeg 1.8s ease-in-out infinite;
}
.eo-buff.rarity-mythic {
  box-shadow: 0 0 0 1px #8b7fd6, 0 0 10px rgba(139, 127, 214, 0.32);
  animation: chipLeg 1.5s ease-in-out infinite;
}
.eo-buff.rarity-immortal {
  box-shadow: 0 0 0 1px #fbbf24, 0 0 18px rgba(251, 191, 36, 0.85);
  animation: chipLeg 1.2s ease-in-out infinite;
}

.buff-aura--mythic {
  --fx-color: #8b7fd6;
}

.card-portrait.rarity-epic > .buff-aura-host.is-back {
  inset: -28%;
  z-index: 0;
  overflow: visible;
}

.ba-mythic-mist {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 68%;
  height: 68%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(34, 211, 238, 0.62) 0%, rgba(6, 182, 212, 0.28) 42%, transparent 72%);
  filter: blur(8px);
  animation: baMythicMist 3.6s ease-in-out infinite;
  z-index: 0;
  pointer-events: none;
}

.ba-mythic-halo-soft {
  left: 50%;
  top: 48%;
  width: 62%;
  height: 62%;
  opacity: 0.72;
  z-index: 1;
  mix-blend-mode: screen;
  filter:
    hue-rotate(168deg) saturate(1.85) brightness(1.28)
    drop-shadow(0 0 12px rgba(34, 211, 238, 0.75));
  animation: baMythicHalo 3.2s ease-in-out infinite;
}

.ba-mythic-ring {
  left: 50%;
  top: 48%;
  opacity: 0.95;
  z-index: 2;
  mix-blend-mode: screen;
  filter:
    hue-rotate(172deg) saturate(2.1) brightness(1.45)
    drop-shadow(0 0 10px rgba(6, 182, 212, 0.9));
  pointer-events: none;
}
.ba-mythic-ring.is-outer {
  width: 102%;
  height: 102%;
  opacity: 0.78;
  animation: baMythicSpin 22s linear infinite;
}
.ba-mythic-ring.is-mid {
  width: 82%;
  height: 82%;
  opacity: 0.92;
  animation: baMythicSpinRev 14s linear infinite;
}
.ba-mythic-ring.is-inner {
  width: 60%;
  height: 60%;
  opacity: 1;
  animation: baMythicPulse 2.8s ease-in-out infinite;
}

.ba-mythic-seal-wrap {
  position: absolute;
  left: 50%;
  top: 39%;
  width: 56%;
  height: 56%;
  transform: translate(-50%, -50%);
  z-index: 3;
  pointer-events: none;
}
.ba-mythic-seal {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter:
    drop-shadow(0 0 2px rgba(254, 243, 199, 0.95))
    drop-shadow(0 0 8px rgba(245, 158, 11, 0.85))
    drop-shadow(0 0 14px rgba(217, 119, 6, 0.55));
}
.ba-mythic-seal-spin {
  transform-origin: 100px 100px;
}
.ba-mythic-seal-spin.is-outer {
  animation: baSealSpin 14s linear infinite;
}
.ba-mythic-seal-spin.is-mid {
  animation: baSealSpinRev 9s linear infinite;
}
.ba-mythic-seal-spin.is-core {
  animation: baSealSpin 7s linear infinite;
}
.ba-mythic-seal-core {
  animation: baSealPulse 2.4s ease-in-out infinite;
}
.ba-mythic-seal-ring {
  stroke: rgba(253, 230, 138, 0.95);
  stroke-width: 1.35;
  fill: none;
}
.ba-mythic-seal-ring.is-outer {
  stroke: rgba(251, 191, 36, 0.9);
  stroke-width: 1.5;
}
.ba-mythic-seal-ring.is-dash {
  stroke: rgba(252, 211, 77, 0.7);
  stroke-width: 1.1;
  stroke-dasharray: 3 4;
}
.ba-mythic-seal-ring.is-mid {
  stroke: rgba(245, 158, 11, 0.88);
  stroke-width: 1.25;
}
.ba-mythic-seal-ring.is-core {
  stroke: rgba(254, 243, 199, 0.95);
  stroke-width: 1.4;
}
.ba-mythic-seal-hex {
  fill: none;
  stroke: rgba(251, 191, 36, 0.85);
  stroke-width: 1.2;
}
.ba-mythic-seal-star {
  fill: rgba(245, 158, 11, 0.18);
  stroke: rgba(253, 230, 138, 0.9);
  stroke-width: 1;
}
.ba-mythic-seal-spoke {
  stroke: rgba(252, 211, 77, 0.85);
  stroke-width: 1.15;
}
.ba-mythic-seal-dot {
  fill: rgba(254, 243, 199, 0.95);
}
.ba-mythic-seal-tip {
  fill: rgba(251, 191, 36, 0.95);
}
.ba-mythic-seal-eye {
  fill: rgba(245, 158, 11, 0.55);
  stroke: rgba(254, 243, 199, 0.95);
  stroke-width: 1.2;
  animation: baSealPulse 2.2s ease-in-out infinite;
}
.ba-mythic-seal-eye-dot {
  fill: rgba(254, 249, 195, 1);
}
.ba-mythic-seal-runes {
  fill: rgba(253, 230, 138, 0.88);
  font-size: 8px;
  letter-spacing: 2px;
}

.ba-mythic-orbit {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 90%;
  height: 90%;
  transform: translate(-50%, -50%);
  z-index: 4;
  pointer-events: none;
  animation: baMythicSpin 9s linear infinite;
}
.ba-mythic-orbit-slot {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--orb-a, 0deg));
}
.ba-mythic-orb {
  position: absolute;
  left: 0;
  top: 0;
  width: 17%;
  height: 17%;
  transform: translate(-50%, calc(-50% - 190%));
  opacity: 1;
  mix-blend-mode: screen;
  filter:
    hue-rotate(170deg) saturate(2.2) brightness(1.55)
    drop-shadow(0 0 8px rgba(34, 211, 238, 1));
  animation: baMythicOrbPulse 2.2s ease-in-out infinite;
}

.ba-mythic-front-glow {
  position: absolute;
  left: 50%;
  top: 42%;
  width: 42%;
  height: 26%;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(34, 211, 238, 0.48), transparent 72%);
  filter: blur(4px);
  animation: baMythicFrontGlow 3s ease-in-out infinite;
  pointer-events: none;
}
.ba-mythic-front-rim {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 54%;
  height: 54%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1.5px solid rgba(34, 211, 238, 0.65);
  box-shadow: 0 0 14px rgba(6, 182, 212, 0.55);
  opacity: 0.8;
  animation: baMythicPulse 3.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes baMythicMist {
  0%, 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.96); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.06); }
}
@keyframes baMythicHalo {
  0%, 100% { opacity: 0.55; transform: translate(-50%, -50%) scale(0.96); }
  50% { opacity: 0.88; transform: translate(-50%, -50%) scale(1.06); }
}
@keyframes baMythicFrontGlow {
  0%, 100% { opacity: 0.45; transform: translateX(-50%) scale(0.96); }
  50% { opacity: 0.9; transform: translateX(-50%) scale(1.08); }
}
@keyframes baMythicSpin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes baMythicSpinRev {
  from { transform: translate(-50%, -50%) rotate(360deg); }
  to { transform: translate(-50%, -50%) rotate(0deg); }
}
@keyframes baMythicPulse {
  0%, 100% { opacity: 0.82; transform: translate(-50%, -50%) scale(0.97); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}
@keyframes baMythicOrbPulse {
  0%, 100% { opacity: 0.85; filter: hue-rotate(170deg) saturate(2) brightness(1.4) drop-shadow(0 0 6px rgba(34, 211, 238, 0.95)); }
  50% { opacity: 1; filter: hue-rotate(170deg) saturate(2.4) brightness(1.65) drop-shadow(0 0 12px rgba(6, 182, 212, 1)); }
}

.card-portrait.has-buff-aura.rarity-epic > .character-preview-2d {
  filter:
    drop-shadow(0 0 4px rgba(34, 211, 238, 0.95))
    drop-shadow(0 0 12px rgba(6, 182, 212, 0.65));
}

.card-portrait.has-buff-aura.rarity-immortal > .character-preview-2d {
  filter:
    drop-shadow(0 0 1px #fff)
    drop-shadow(0 0 4px var(--fx-color, #fbbf24))
    drop-shadow(0 0 12px var(--fx-color, #fbbf24));
}
.ba-immortal-core {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 42%;
  height: 42%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(251, 191, 36, 0.45) 0%, rgba(245, 158, 11, 0.15) 50%, transparent 72%);
  filter: blur(4px);
  animation: baBloom 1.8s ease-in-out infinite;
}
.ba-immortal-ring {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 96%;
  height: 96%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 2px solid rgba(251, 191, 36, 0.55);
  box-shadow: 0 0 14px rgba(251, 191, 36, 0.5);
  animation: baSealSpin 10s linear infinite;
}
.buff-aura--immortal .ba-wings-img {
  filter:
    drop-shadow(0 0 2px #fde68a)
    drop-shadow(0 0 12px #f59e0b)
    drop-shadow(0 0 22px #fbbf24);
}
.buff-aura--immortal .ba-pillar {
  background:
    linear-gradient(180deg,
      rgba(255, 248, 220, 0.95) 0%,
      #fbbf24 28%,
      rgba(245, 158, 11, 0.4) 62%,
      transparent 100%);
}
@keyframes chipLeg {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.18); }
}
.buff-item .rarity-pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  border: 1px solid currentColor;
}

@media (prefers-reduced-motion: reduce) {
  .buff-aura *,
  .ba-fx-img,
  .ba-pillar,
  .ba-rare-bolt,
  .ba-rare-flash,
  .ba-seal-spin,
  .ba-seal-core-fill,
  .ba-seal-eye,
  .ba-mythic-ring,
  .ba-mythic-seal-spin,
  .ba-mythic-seal-core,
  .ba-mythic-seal-eye,
  .ba-mythic-orbit,
  .ba-mythic-orb,
  .ba-mythic-mist,
  .ba-mythic-halo-soft,
  .ba-mythic-front-glow,
  .ba-mythic-front-rim,
  .eo-buff.rarity-legendary,
  .buff-item.rarity-legendary { animation: none !important; }
}
