/* RewardBadge — premium rozet aura efektleri (--bc = rozet rengi) */
.reward-badge {
  --bc: var(--rc, #ff7a45);
  --bc-hi: color-mix(in srgb, var(--bc) 72%, #fff);
  --bc-mid: color-mix(in srgb, var(--bc) 88%, #fff);
  --bc-soft: color-mix(in srgb, var(--bc) 45%, transparent);
  --bc-glow: color-mix(in srgb, var(--bc) 62%, transparent);
  --badge-size: 32px;
  --glyph-size: calc(var(--badge-size) * 0.56);
  position: relative;
  display: inline-grid;
  place-items: center;
  width: var(--badge-size);
  height: var(--badge-size);
  min-width: var(--badge-size);
  min-height: var(--badge-size);
  max-width: var(--badge-size);
  max-height: var(--badge-size);
  border-radius: 50%;
  line-height: 0;
  font-size: 0;
  box-sizing: border-box;
  flex-shrink: 0;
  isolation: isolate;
  contain: layout style;
  background:
    linear-gradient(145deg,
      color-mix(in srgb, var(--bc) 24%, rgba(255, 255, 255, 0.12)),
      color-mix(in srgb, var(--bc) 10%, rgba(0, 0, 0, 0.32)));
  border: 2px solid color-mix(in srgb, var(--bc) 48%, rgba(255, 255, 255, 0.16));
  box-shadow:
    0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
  transition: transform 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease;
}

.reward-badge-ico {
  position: relative;
  z-index: 3;
  display: grid;
  place-items: center;
  width: var(--glyph-size);
  height: var(--glyph-size);
  color: var(--bc-hi);
}

.reward-badge-ico > svg,
.reward-badge-ico > img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
}

.reward-badge-ico > img {
  object-fit: cover;
  object-position: center;
  border-radius: 50%;
}

.reward-aura-stack {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  overflow: visible;
}

.rw-fx {
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
}

/* ── GLOW — premium aura gölgesi ── */
.reward-aura--glow {
  animation: rw-glow-badge 3.2s ease-in-out infinite;
}
.rw-fx-glow-halo {
  inset: calc(-45% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--bc) 55%, transparent) 0%,
    color-mix(in srgb, var(--bc) 28%, transparent) 38%,
    transparent 72%
  );
  animation: rw-glow-halo 3.2s ease-in-out infinite;
}
.rw-fx-glow-bloom {
  inset: calc(-18% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 55%,
    color-mix(in srgb, var(--bc) 40%, rgba(255, 255, 255, 0.25)) 0%,
    transparent 62%
  );
  filter: blur(4px);
  animation: rw-glow-halo 2.6s ease-in-out infinite reverse;
}

/* ── PULSE — nefes alan halkalar ── */
.reward-aura--pulse {
  animation: rw-pulse-badge 2.2s ease-in-out infinite;
}
.rw-fx-pulse-halo {
  inset: calc(-30% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(circle, var(--bc-glow) 0%, transparent 68%);
  animation: rw-pulse-halo 2.2s ease-in-out infinite;
}
.rw-fx-pulse-ring {
  inset: -4px;
  border: 2px solid color-mix(in srgb, var(--bc) 65%, rgba(255, 255, 255, 0.3));
  animation: rw-pulse-ring 2.2s ease-out infinite;
}
.rw-fx-pulse-ring--b {
  animation-delay: 1.1s;
  border-color: color-mix(in srgb, var(--bc) 40%, transparent);
}

/* ── SHIMMER — ışık süpürme ── */
.rw-fx-shimmer-base {
  inset: -8%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bc-soft) 0%, transparent 70%);
  opacity: 0.85;
}
.rw-fx-shimmer-sweep {
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    105deg,
    transparent 30%,
    color-mix(in srgb, var(--bc) 20%, rgba(255, 255, 255, 0.75)) 48%,
    color-mix(in srgb, var(--bc) 35%, #fff) 50%,
    color-mix(in srgb, var(--bc) 20%, rgba(255, 255, 255, 0.75)) 52%,
    transparent 70%
  );
  background-size: 220% 100%;
  mix-blend-mode: screen;
  animation: rw-shimmer-sweep 2.4s ease-in-out infinite;
}
.rw-fx-shimmer-spec {
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.35) 0%, transparent 42%);
  opacity: 0.5;
  animation: rw-shimmer-spec 3s ease-in-out infinite;
}

/* ── ELECTRIC — Ki Enerjisi: çerçeve boyunca dolaşan elektrik (SVG dönmez) ── */
.reward-aura--electric {
  animation: rw-electric-badge 1.6s steps(2) infinite;
}
.rw-ki-energy {
  position: absolute;
  inset: calc(-38% * var(--aura-spread, 1));
  border-radius: 50%;
}
.rw-ki-energy-sweep {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    color-mix(in srgb, var(--bc) 75%, #fff) 28deg,
    color-mix(in srgb, var(--bc) 95%, #fff) 42deg,
    transparent 68deg,
    transparent 160deg,
    color-mix(in srgb, var(--bc) 55%, #fff) 200deg,
    color-mix(in srgb, var(--bc) 80%, #fff) 230deg,
    transparent 280deg
  );
  filter: blur(calc(5px * var(--aura-spread, 1)));
  animation: rw-ki-spin 2.2s linear infinite;
}
.rw-ki-energy-sweep--b {
  inset: 8%;
  filter: blur(calc(7px * var(--aura-spread, 1)));
  opacity: 0.55;
  animation: rw-ki-spin 3.2s linear infinite reverse;
}
.rw-ki-perimeter {
  position: absolute;
  inset: calc(-30% * var(--aura-spread, 1));
  pointer-events: none;
}
.rw-ki-perimeter-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.rw-ki-crawl {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 2px var(--bc-hi));
}
.rw-ki-crawl--a {
  stroke: var(--bc-mid);
  stroke-width: 2.2;
  stroke-dasharray: 6 4 3 5 8 74;
  animation: rw-ki-crawl 2.4s linear infinite;
}
.rw-ki-crawl--b {
  stroke: color-mix(in srgb, var(--bc) 70%, #fff);
  stroke-width: 1.4;
  stroke-dasharray: 3 6 2 4 12 73;
  opacity: 0.75;
  animation: rw-ki-crawl 1.8s linear infinite reverse;
}
.rw-ki-crawl--c {
  stroke: #fff;
  stroke-width: 0.8;
  stroke-dasharray: 2 8 1 6 4 79;
  opacity: 0.55;
  animation: rw-ki-crawl 3s linear infinite;
  animation-delay: -0.6s;
}
.rw-ki-bolt-seg {
  fill: none;
  stroke: var(--bc-mid);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 3px var(--bc-hi));
  animation: rw-ki-bolt-flicker 1.6s ease-in-out infinite;
}
.rw-ki-bolt-seg:nth-child(5),
.rw-ki-bolt-seg:nth-child(6) {
  stroke-width: 1.4;
  opacity: 0.85;
}

/* ── ORBIT — dönen uydu ── */
.rw-fx-orbit-glow {
  inset: -22%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bc-soft) 0%, transparent 68%);
}
.rw-fx-orbit-ring {
  inset: -6px;
  border: 1.5px solid color-mix(in srgb, var(--bc) 50%, transparent);
  animation: rw-ki-spin 4s linear infinite;
}
.rw-fx-orbit-sat {
  inset: -6px;
  animation: rw-ki-spin 4s linear infinite;
}
.rw-fx-orbit-sat::after {
  content: '';
  position: absolute;
  top: -3px;
  left: 50%;
  width: 6px;
  height: 6px;
  margin-left: -3px;
  border-radius: 50%;
  background: var(--bc-mid);
  box-shadow: 0 0 10px var(--bc-hi), 0 0 18px var(--bc-glow);
}

/* ── SPARK — kıvılcım parçacıkları ── */
.rw-fx-spark-glow {
  inset: calc(-20% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(circle, var(--bc-glow) 0%, transparent 65%);
  animation: rw-glow-halo 2.8s ease-in-out infinite;
}
.rw-fx-spark-dot {
  width: calc(3px * var(--aura-spread, 1) + 1px);
  height: calc(3px * var(--aura-spread, 1) + 1px);
  border-radius: 50%;
  background: var(--bc-mid);
  box-shadow: 0 0 4px var(--bc-hi), 0 0 8px var(--bc-glow);
  top: 50%;
  left: 50%;
  transform:
    rotate(calc(var(--sp-i) * 36deg))
    translateY(calc(var(--badge-size) * -0.52 * var(--aura-spread, 1)))
    rotate(calc(var(--sp-i) * -36deg));
  animation: rw-spark-twinkle 2s ease-in-out infinite;
  animation-delay: calc(var(--sp-i) * -0.22s);
}

/* ── NEON — keskin neon çerçeve ── */
.reward-aura--neon {
  animation: rw-neon-flicker 3s steps(2) infinite;
}
.rw-fx-neon-outer {
  inset: -6px;
  border-radius: inherit;
  border: 2px solid var(--bc-hi);
  box-shadow:
    0 0 8px var(--bc-glow),
    0 0 16px color-mix(in srgb, var(--bc) 50%, transparent),
    inset 0 0 8px color-mix(in srgb, var(--bc) 30%, transparent);
}
.rw-fx-neon-inner {
  inset: -2px;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.55);
  opacity: 0.7;
}

/* ── PLASMA — canlı enerji bulutu: rozetin DIŞINDA dönen nebula.
   (Eski sürüm rozetin içinde 4px blur'lu, %50 opak blob'lardı —
   tonlu rozet zemininde görünmüyordu. Yeni sürüm dışa taşan,
   ters yönlü dönen iki plazma bulutu + iç çekirdek parıltısı.) ── */
.reward-aura--plasma {
  animation: rw-plasma-badge 3.4s ease-in-out infinite;
}
.rw-fx-plasma-cloud {
  inset: calc(-32% * var(--aura-spread, 1));
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    color-mix(in srgb, var(--bc) 66%, transparent) 0deg,
    transparent 74deg,
    color-mix(in srgb, var(--bc) 48%, #818cf8) 132deg,
    transparent 206deg,
    color-mix(in srgb, var(--bc) 58%, #22d3ee) 282deg,
    transparent 344deg
  );
  filter: blur(calc(7px * var(--aura-spread, 1)));
  opacity: 0.85;
  animation: rw-ki-spin 3.4s linear infinite;
}
.rw-fx-plasma-cloud--b {
  inset: calc(-19% * var(--aura-spread, 1));
  filter: blur(calc(5px * var(--aura-spread, 1)));
  opacity: 0.6;
  animation: rw-ki-spin 5.2s linear infinite reverse;
}
.rw-fx-plasma-core {
  inset: -3px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--bc) 45%, rgba(255, 255, 255, 0.3)) 0%,
    transparent 62%
  );
  filter: blur(2px);
  animation: rw-plasma-core 2.4s ease-in-out infinite;
}

/* ── RIPPLE — genişleyen dalgalar ── */
.rw-fx-ripple {
  inset: 0;
  border-radius: 50%;
  border: 2px solid var(--bc-hi);
  opacity: 0;
  animation: rw-ripple 2.4s ease-out infinite;
  animation-delay: calc(var(--rp-i) * 0.75s);
}

/* ── AURORA — kutup ışığı: yavaşça süzülen çok tonlu ışık şeridi ── */
.reward-aura--aurora {
  animation: rw-aurora-badge 6s ease-in-out infinite;
}
.rw-fx-aurora-glow {
  inset: calc(-34% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--bc) 34%, transparent) 0%,
    color-mix(in srgb, var(--bc) 14%, transparent) 45%,
    transparent 72%
  );
  animation: rw-glow-halo 5.4s ease-in-out infinite;
}
.rw-fx-aurora-veil {
  inset: calc(-30% * var(--aura-spread, 1));
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    color-mix(in srgb, var(--bc) 62%, #4ade80) 50deg,
    color-mix(in srgb, var(--bc) 48%, #38bdf8) 110deg,
    transparent 170deg,
    transparent 200deg,
    color-mix(in srgb, var(--bc) 55%, #a78bfa) 260deg,
    color-mix(in srgb, var(--bc) 70%, #fff) 305deg,
    transparent 350deg
  );
  filter: blur(calc(6px * var(--aura-spread, 1)));
  opacity: 0.75;
  animation: rw-ki-spin 7s linear infinite;
}
.rw-fx-aurora-veil--b {
  inset: calc(-18% * var(--aura-spread, 1));
  filter: blur(calc(4px * var(--aura-spread, 1)));
  opacity: 0.5;
  animation: rw-ki-spin 11s linear infinite reverse;
}

/* ── FLAME — yükselen kor parçacıkları + nefes alan ısı parıltısı ── */
.reward-aura--flame {
  animation: rw-flame-badge 2.8s ease-in-out infinite;
}
.rw-fx-flame-glow {
  inset: calc(-26% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 68%,
    color-mix(in srgb, var(--bc) 58%, #ffb347) 0%,
    color-mix(in srgb, var(--bc) 26%, transparent) 46%,
    transparent 72%
  );
  filter: blur(2px);
  animation: rw-flame-flicker 1.9s ease-in-out infinite;
}
.rw-fx-flame-ember {
  width: calc(3px * var(--aura-spread, 1) + 1px);
  height: calc(3px * var(--aura-spread, 1) + 1px);
  border-radius: 50%;
  top: 72%;
  left: calc(18% + var(--fe-i) * 13%);
  background: color-mix(in srgb, var(--bc) 70%, #ffd9a0);
  box-shadow: 0 0 5px var(--bc-hi), 0 0 10px var(--bc-glow);
  opacity: 0;
  animation: rw-flame-rise 2.1s ease-out infinite;
  animation-delay: calc(var(--fe-i) * -0.35s);
}

/* ── PRISM — kromatik prizma halkası + dönen ışık kırılması ── */
.reward-aura--prism {
  animation: rw-prism-badge 4.2s ease-in-out infinite;
}
.rw-fx-prism-glow {
  inset: calc(-24% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--bc) 30%, transparent) 0%, transparent 66%);
}
.rw-fx-prism-ring {
  inset: -5px;
  border-radius: 50%;
  padding: 2px;
  background: conic-gradient(
    from 0deg,
    color-mix(in srgb, var(--bc) 55%, #f87171),
    color-mix(in srgb, var(--bc) 55%, #facc15),
    color-mix(in srgb, var(--bc) 55%, #4ade80),
    color-mix(in srgb, var(--bc) 55%, #38bdf8),
    color-mix(in srgb, var(--bc) 55%, #a78bfa),
    color-mix(in srgb, var(--bc) 55%, #f87171)
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: rw-ki-spin 5s linear infinite;
}
.rw-fx-prism-shine {
  inset: calc(-14% * var(--aura-spread, 1));
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    color-mix(in srgb, var(--bc) 30%, rgba(255, 255, 255, 0.85)) 24deg,
    transparent 60deg
  );
  filter: blur(calc(3px * var(--aura-spread, 1)));
  mix-blend-mode: screen;
  animation: rw-ki-spin 5s linear infinite;
}

/* ── STARDUST — parıldayıp süzülen yıldız tozu ── */
.rw-fx-star-glow {
  inset: calc(-22% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--bc) 34%, transparent) 0%, transparent 64%);
  animation: rw-glow-halo 3.6s ease-in-out infinite;
}
.rw-fx-star {
  width: calc(5px * var(--aura-spread, 1) + 1px);
  height: calc(5px * var(--aura-spread, 1) + 1px);
  top: 50%;
  left: 50%;
  border-radius: 0;
  background: color-mix(in srgb, var(--bc) 42%, #fff);
  clip-path: polygon(50% 0%, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0% 50%, 38% 38%);
  filter: drop-shadow(0 0 3px var(--bc-hi));
  transform:
    rotate(calc(var(--st-i) * 45deg))
    translateY(calc(var(--badge-size) * -0.54 * var(--aura-spread, 1)))
    rotate(calc(var(--st-i) * -45deg));
  animation: rw-star-twinkle 2.6s ease-in-out infinite;
  animation-delay: calc(var(--st-i) * -0.33s);
}

/* ── HALO — eğik altın halka: rozetin üzerinde süzülen 3B çember ── */
.reward-aura--halo {
  animation: rw-glow-badge 4.5s ease-in-out infinite;
}
.rw-fx-halo-glow {
  inset: calc(-24% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 30%,
    color-mix(in srgb, var(--bc) 34%, transparent) 0%,
    transparent 66%
  );
  animation: rw-glow-halo 3.8s ease-in-out infinite;
}
.rw-fx-halo-ring {
  left: -12%;
  right: -12%;
  top: calc(-26% * var(--aura-spread, 1));
  height: 34%;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--bc) 78%, #fff);
  box-shadow:
    0 0 8px var(--bc-glow),
    inset 0 0 6px color-mix(in srgb, var(--bc) 45%, transparent);
  animation: rw-halo-bob 3.2s ease-in-out infinite;
}
.rw-fx-halo-ring--b {
  border-width: 1px;
  opacity: 0.45;
  filter: blur(1.5px);
  animation: rw-halo-bob 3.2s ease-in-out infinite reverse;
}

/* ── VORTEX — içe çeken spiral girdap ── */
.reward-aura--vortex {
  animation: rw-pulse-badge 3s ease-in-out infinite;
}
.rw-fx-vortex-swirl {
  inset: calc(-30% * var(--aura-spread, 1));
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    color-mix(in srgb, var(--bc) 72%, #fff) 40deg,
    transparent 90deg,
    transparent 120deg,
    color-mix(in srgb, var(--bc) 62%, transparent) 165deg,
    transparent 215deg,
    transparent 240deg,
    color-mix(in srgb, var(--bc) 68%, #fff) 285deg,
    transparent 340deg
  );
  filter: blur(calc(4px * var(--aura-spread, 1)));
  opacity: 0.8;
  animation: rw-ki-spin 2.4s linear infinite;
}
.rw-fx-vortex-swirl--b {
  inset: calc(-16% * var(--aura-spread, 1));
  opacity: 0.55;
  filter: blur(calc(3px * var(--aura-spread, 1)));
  animation: rw-ki-spin 1.6s linear infinite reverse;
}
.rw-fx-vortex-ring {
  inset: -5px;
  border-radius: 50%;
  border: 1.5px dashed color-mix(in srgb, var(--bc) 60%, transparent);
  animation: rw-ki-spin 6s linear infinite;
}

/* ── FROST — buz kristalleri + soğuk çerçeve parıltısı ── */
.reward-aura--frost {
  animation: rw-frost-badge 3.6s ease-in-out infinite;
}
.rw-fx-frost-rim {
  inset: -4px;
  border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--bc) 40%, #dff3ff);
  box-shadow:
    0 0 10px color-mix(in srgb, var(--bc) 35%, #bfe8ff),
    inset 0 0 8px color-mix(in srgb, var(--bc) 22%, #dff3ff);
  opacity: 0.8;
}
.rw-fx-frost-mist {
  inset: calc(-24% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--bc) 26%, #bfe8ff) 0%,
    transparent 66%
  );
  opacity: 0.4;
  filter: blur(3px);
  animation: rw-glow-halo 4.4s ease-in-out infinite;
}
.rw-fx-frost-shard {
  width: calc(5px * var(--aura-spread, 1) + 1px);
  height: calc(7px * var(--aura-spread, 1) + 1px);
  top: 50%;
  left: 50%;
  background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--bc) 45%, #9fd8ff));
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  filter: drop-shadow(0 0 3px color-mix(in srgb, var(--bc) 50%, #bfe8ff));
  transform:
    rotate(calc(var(--fr-i) * 60deg))
    translateY(calc(var(--badge-size) * -0.56 * var(--aura-spread, 1)));
  animation: rw-frost-twinkle 3s ease-in-out infinite;
  animation-delay: calc(var(--fr-i) * -0.5s);
}

/* ── COMET — kuyruklu yıldız: parlak baş + solan ışık kuyruğu ── */
.rw-fx-comet-glow {
  inset: calc(-20% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(circle, var(--bc-soft) 0%, transparent 64%);
}
.rw-fx-comet-tail {
  inset: calc(-26% * var(--aura-spread, 1));
  border-radius: 50%;
  background: conic-gradient(
    from 0deg,
    color-mix(in srgb, var(--bc) 88%, #fff) 0deg,
    color-mix(in srgb, var(--bc) 55%, transparent) 50deg,
    color-mix(in srgb, var(--bc) 22%, transparent) 105deg,
    transparent 150deg
  );
  -webkit-mask: radial-gradient(closest-side, transparent 68%, #000 72%, #000 96%, transparent 100%);
  mask: radial-gradient(closest-side, transparent 68%, #000 72%, #000 96%, transparent 100%);
  filter: blur(0.5px);
  animation: rw-ki-spin 2.8s linear infinite;
}
.rw-fx-comet-head {
  inset: calc(-26% * var(--aura-spread, 1));
  border-radius: 50%;
  animation: rw-ki-spin 2.8s linear infinite;
}
.rw-fx-comet-head::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -1px;
  width: 7px;
  height: 7px;
  margin-top: -3.5px;
  border-radius: 50%;
  background: #fff;
  box-shadow:
    0 0 6px var(--bc-hi),
    0 0 14px var(--bc-glow),
    0 0 22px color-mix(in srgb, var(--bc) 45%, transparent);
}

/* ── NOVA — periyodik yıldız patlaması: ışınlar + çekirdek flaşı ── */
.reward-aura--nova {
  animation: rw-pulse-badge 2.6s ease-in-out infinite;
}
.rw-fx-nova-flash {
  inset: calc(-26% * var(--aura-spread, 1));
  border-radius: 50%;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--bc) 62%, #fff) 0%,
    color-mix(in srgb, var(--bc) 28%, transparent) 42%,
    transparent 70%
  );
  animation: rw-nova-flash 2.6s ease-in-out infinite;
}
.rw-fx-nova-ray {
  width: 2px;
  height: calc(var(--badge-size) * 0.42 * var(--aura-spread, 1));
  top: 50%;
  left: 50%;
  margin: calc(var(--badge-size) * -0.21 * var(--aura-spread, 1)) -1px;
  border-radius: 2px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--bc) 80%, #fff), transparent);
  transform-origin: 50% 0%;
  transform:
    rotate(calc(var(--nv-i) * 45deg))
    translateY(calc(var(--badge-size) * 0.5 * var(--aura-spread, 1)));
  opacity: 0;
  animation: rw-nova-burst 2.6s ease-out infinite;
  animation-delay: calc(var(--nv-i) * 0.02s);
}

/* ── Keyframes ── */
@keyframes rw-glow-halo {
  0%, 100% { transform: scale(0.88); opacity: 0.55; }
  50% { transform: scale(1.12); opacity: 1; }
}
@keyframes rw-glow-badge {
  0%, 100% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 16px -4px var(--bc-glow),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
  50% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 28px 0 color-mix(in srgb, var(--bc) 55%, transparent),
      0 0 48px -8px var(--bc-glow),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
}
@keyframes rw-pulse-halo {
  0%, 100% { transform: scale(0.9); opacity: 0.45; }
  50% { transform: scale(1.15); opacity: 0.95; }
}
@keyframes rw-pulse-ring {
  0% { transform: scale(0.92); opacity: 0.85; }
  100% { transform: scale(1.35); opacity: 0; }
}
@keyframes rw-pulse-badge {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.08); }
}
@keyframes rw-shimmer-sweep {
  0% { background-position: 130% 0; }
  100% { background-position: -30% 0; }
}
@keyframes rw-shimmer-spec {
  0%, 100% { opacity: 0.35; }
  50% { opacity: 0.75; }
}
@keyframes rw-ki-spin {
  to { transform: rotate(360deg); }
}
@keyframes rw-ki-crawl {
  to { stroke-dashoffset: -100; }
}
@keyframes rw-ki-bolt-flicker {
  0%, 100% { opacity: 0.25; stroke: color-mix(in srgb, var(--bc) 60%, transparent); }
  12% { opacity: 1; stroke: var(--bc-mid); }
  22% { opacity: 0.4; }
  35% { opacity: 0.9; stroke: #fff; }
  50% { opacity: 0.3; }
}
@keyframes rw-ki-arc-flicker {
  0%, 100% { opacity: 0.35; }
  8% { opacity: 1; }
  16% { opacity: 0.5; }
  24% { opacity: 0.95; }
  40% { opacity: 0.4; }
}
@keyframes rw-ki-dash {
  to { stroke-dashoffset: -100; }
}
@keyframes rw-electric-badge {
  0%, 100% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 12px -2px var(--bc-glow),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
  50% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 24px 2px color-mix(in srgb, var(--bc) 65%, #fff),
      0 0 40px -4px var(--bc-glow),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
}
@keyframes rw-spark-twinkle {
  0%, 100% { opacity: 0.2; transform: rotate(calc(var(--sp-i) * 36deg)) translateY(calc(var(--badge-size) * -0.48 * var(--aura-spread, 1))) scale(0.55); }
  50% { opacity: 1; transform: rotate(calc(var(--sp-i) * 36deg)) translateY(calc(var(--badge-size) * -0.56 * var(--aura-spread, 1))) scale(1); }
}
@keyframes rw-neon-flicker {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.12); }
}
@keyframes rw-ripple {
  0% { transform: scale(0.85); opacity: 0.75; }
  100% { transform: scale(1.55); opacity: 0; }
}
@keyframes rw-plasma-badge {
  0%, 100% { filter: brightness(1) saturate(1); }
  50% { filter: brightness(1.1) saturate(1.2); }
}
@keyframes rw-plasma-core {
  0%, 100% { transform: scale(0.92); opacity: 0.5; }
  50% { transform: scale(1.08); opacity: 0.9; }
}
@keyframes rw-halo-bob {
  0%, 100% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(calc(var(--badge-size) * -0.06)); opacity: 1; }
}
@keyframes rw-frost-badge {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.07) saturate(0.92); }
}
@keyframes rw-frost-twinkle {
  0%, 100% {
    opacity: 0.25;
    transform:
      rotate(calc(var(--fr-i) * 60deg))
      translateY(calc(var(--badge-size) * -0.52 * var(--aura-spread, 1)))
      scale(0.6);
  }
  50% {
    opacity: 1;
    transform:
      rotate(calc(var(--fr-i) * 60deg))
      translateY(calc(var(--badge-size) * -0.6 * var(--aura-spread, 1)))
      scale(1);
  }
}
@keyframes rw-nova-flash {
  0%, 55%, 100% { transform: scale(0.7); opacity: 0.25; }
  70% { transform: scale(1.15); opacity: 1; }
  85% { transform: scale(1); opacity: 0.5; }
}
@keyframes rw-nova-burst {
  0%, 55% { opacity: 0; transform: rotate(calc(var(--nv-i) * 45deg)) translateY(calc(var(--badge-size) * 0.42 * var(--aura-spread, 1))) scaleY(0.3); }
  68% { opacity: 1; }
  100% { opacity: 0; transform: rotate(calc(var(--nv-i) * 45deg)) translateY(calc(var(--badge-size) * 0.72 * var(--aura-spread, 1))) scaleY(1.05); }
}
@keyframes rw-aurora-badge {
  0%, 100% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 14px -4px var(--bc-glow),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
  50% {
    box-shadow:
      0 3px 14px -4px color-mix(in srgb, var(--bc) 58%, transparent),
      0 0 26px -2px color-mix(in srgb, var(--bc) 60%, #7dd3fc),
      inset 0 1px 0 rgba(255, 255, 255, 0.14);
  }
}
@keyframes rw-flame-badge {
  0%, 100% { filter: brightness(1); }
  40% { filter: brightness(1.1); }
  60% { filter: brightness(1.04); }
}
@keyframes rw-flame-flicker {
  0%, 100% { transform: scale(0.94); opacity: 0.6; }
  30% { transform: scale(1.06); opacity: 0.95; }
  55% { transform: scale(0.98); opacity: 0.75; }
  80% { transform: scale(1.1); opacity: 1; }
}
@keyframes rw-flame-rise {
  0% { transform: translateY(0) scale(0.6); opacity: 0; }
  18% { opacity: 1; }
  100% {
    transform: translateY(calc(var(--badge-size) * -1.05 * var(--aura-spread, 1))) scale(0.2);
    opacity: 0;
  }
}
@keyframes rw-prism-badge {
  0%, 100% { filter: saturate(1) brightness(1); }
  50% { filter: saturate(1.25) brightness(1.06); }
}
@keyframes rw-star-twinkle {
  0%, 100% {
    opacity: 0.15;
    transform:
      rotate(calc(var(--st-i) * 45deg))
      translateY(calc(var(--badge-size) * -0.5 * var(--aura-spread, 1)))
      rotate(calc(var(--st-i) * -45deg))
      scale(0.5);
  }
  50% {
    opacity: 1;
    transform:
      rotate(calc(var(--st-i) * 45deg))
      translateY(calc(var(--badge-size) * -0.6 * var(--aura-spread, 1)))
      rotate(calc(var(--st-i) * -45deg))
      scale(1.05);
  }
}

/* Varyantlar */
.reward-badge--rounded { border-radius: 12px; }
.reward-badge--sm { --badge-size: 28px; }
.reward-badge--md { --badge-size: 32px; }

/* Profil / ranking — kompakt rozetlerde efekt taşmasını azalt */
.reward-badge--compact {
  --aura-spread: 0.68;
}

.reward-badge.wfs-pv-badge > .wfs-pv-badge-tip { grid-area: 1 / 1; z-index: 5; }
.reward-badge.wfs-pv-badge > .reward-badge-ico,
.reward-badge.wfs-pv-badge > .reward-aura-stack { grid-area: 1 / 1; }
.reward-badge.wfs-pv-badge--reward:hover,
.reward-badge.wfs-pv-badge--reward:focus-visible { transform: scale(1.08); }

@media (prefers-reduced-motion: reduce) {
  .reward-aura-stack,
  .reward-aura-stack *,
  .reward-aura--glow,
  .reward-aura--pulse,
  .reward-aura--electric,
  .reward-aura--neon,
  .reward-aura--plasma,
  .reward-aura--aurora,
  .reward-aura--flame,
  .reward-aura--prism,
  .reward-aura--halo,
  .reward-aura--vortex,
  .reward-aura--frost,
  .reward-aura--nova {
    animation: none !important;
  }
}
