/* Hollow-Faehigkeiten am Brett (board-fx-hollow/-bonewall/-revive/-ghoul/-bonepact/
   -plague/-decay.js). Partikel sind .boardFx-dust (main-12.css); Bewegungen laufen
   ueber Web Animations, hier stehen nur Formen und Farben. */

/* Knochen-Splitter: Schaft mit zwei Gelenkknubbeln an jedem Ende. */
.boardFx-bone {
  position: fixed; pointer-events: none; z-index: 2;
  border-radius: 999px;
  background:
    radial-gradient(circle at 9% 28%, #f6f1e2 0 15%, transparent 17%),
    radial-gradient(circle at 9% 72%, #f6f1e2 0 15%, transparent 17%),
    radial-gradient(circle at 91% 28%, #f6f1e2 0 15%, transparent 17%),
    radial-gradient(circle at 91% 72%, #f6f1e2 0 15%, transparent 17%),
    linear-gradient(#efe8d4, #c9bf9f) 50% 50% / 76% 46% no-repeat;
  filter: drop-shadow(0 0 3px rgba(230, 223, 202, .55)) drop-shadow(0 1px 1px rgba(0, 0, 0, .5));
}

/* Seelen-Irrlicht (Nekromantin, Ghoul). */
.boardFx-soul {
  position: fixed; pointer-events: none; z-index: 3; border-radius: 50%;
  background: radial-gradient(circle at 45% 40%, #fff 0 18%, #8affdf 36%, rgba(0, 230, 168, .55) 60%, transparent 74%);
  box-shadow: 0 0 14px 4px rgba(0, 230, 168, .55);
}

/* Wiederbelebte Figur verdichtet sich aus Seelenlicht; Ghoul-Kopie leuchtet krank. */
.boardFx-reviveGhost { z-index: 2; }
.boardFx-riseInfected { filter: drop-shadow(0 0 8px rgba(0, 230, 168, .8)) saturate(.7); }

/* Pestbringer: Giftlache laeuft im Moment des Schlags uebers Feld aus. */
.boardFx-plagueSpill {
  position: fixed; pointer-events: none; z-index: -1; border-radius: 50%;
  background: radial-gradient(ellipse, rgba(158, 224, 74, .55) 0 40%, rgba(52, 96, 28, .45) 62%, transparent 72%);
  box-shadow: 0 0 14px rgba(158, 224, 74, .45);
  opacity: 0; transform: translate(-50%, -50%) scale(.2);
  animation: boardFxPlagueSpill .9s cubic-bezier(.2, .7, .3, 1) 1 forwards;
}
.boardFx-plagueSpill--w {
  background: radial-gradient(ellipse, rgba(190, 122, 255, .55) 0 40%, rgba(84, 26, 136, .45) 62%, transparent 72%);
  box-shadow: 0 0 14px rgba(190, 122, 255, .45);
}
/* Pestgemisch: dunkle Lache ohne Leuchten, in die der Pestbringer versinkt. */
.boardFx-plagueSpill--mix {
  background: radial-gradient(ellipse, rgba(8, 5, 12, .78) 0 42%, rgba(30, 18, 38, .5) 64%, transparent 74%);
  box-shadow: none;
}
/* Pestgemisch: zwei Giftschlieren (lila, gruen) kreisen flach am Feldboden
   umeinander und ziehen sich zusammen (board-fx-plague.js swirl). Scharfe,
   schmale Schweife statt weicher Lichtflecken. */
.boardFx-plagueSwirl {
  position: fixed; pointer-events: none; z-index: -1;
  transform: translate(-50%, -50%) scaleY(.44);
}
.boardFx-plagueSwirl i {
  position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 0deg,
    rgba(190, 122, 255, 0) 0deg, rgba(190, 122, 255, .9) 80deg, rgba(190, 122, 255, 0) 150deg,
    rgba(158, 224, 74, 0) 180deg, rgba(158, 224, 74, .9) 260deg, rgba(158, 224, 74, 0) 330deg);
  -webkit-mask-image: radial-gradient(closest-side, transparent 60%, #000 66% 80%, transparent 88%);
  mask-image: radial-gradient(closest-side, transparent 60%, #000 66% 80%, transparent 88%);
  opacity: 0;
}
@keyframes boardFxPlagueSpill {
  0%   { opacity: 0;   transform: translate(-50%, -50%) scale(.2); }
  25%  { opacity: .95; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0;   transform: translate(-50%, -50%) scale(1.15); }
}

/* Knochenpakt: das Skelett steht im zweiten Leben auf, die Risse leuchten kurz nach. */
.boardFx-riseRelit { animation: boardFxRelit .7s ease-out var(--fx-rise-delay, 0ms) both; }
@keyframes boardFxRelit {
  0%   { filter: brightness(1.7) saturate(1.4); }
  100% { filter: brightness(1) saturate(1); }
}

/* Lich-Verfall: die welkende Figur bekommt einen fahlen Schimmer. */
.boardFx-witherGhost { z-index: 2; }

@media (prefers-reduced-motion: reduce) {
  .boardFx-plagueSpill, .boardFx-plagueSwirl { animation: none !important; display: none !important; }
  .boardFx-bone, .boardFx-soul { display: none !important; }
  .boardFx-riseRelit { animation: none !important; }
}

