/* Faehigkeit gerade bereit (render/ability-ready.js): Der Eintrag in der
   Aktionsleiste leuchtet einmal in Faehigkeits-Blau auf, ein Lichtstreif zieht
   hindurch; auf dem Brett zuendet am Fuss der Figur ein Ring (board-effect-ring.js).
   --mp-t traegt die schon verstrichene Zeit, damit Neuaufbauten nicht neu starten. */

.effectChip.effectJustReady .effectReadyFlash {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(105deg,
    transparent 34%,
    rgba(160, 255, 245, .18) 45%,
    rgba(235, 255, 252, .42) 50%,
    rgba(160, 255, 245, .18) 55%,
    transparent 66%) no-repeat;
  background-size: 260% 100%;
  box-shadow:
    inset 0 0 0 1px rgba(77, 208, 196, .95),
    inset 0 0 18px rgba(77, 208, 196, .38);
  opacity: 0;
  animation:
    effectReadyGlow 1.5s cubic-bezier(.25, .7, .3, 1) both,
    effectReadySweep .95s cubic-bezier(.45, .1, .3, 1) both;
  animation-delay: var(--mp-t, 0ms), calc(var(--mp-t, 0ms) + .12s);
}
@keyframes effectReadyGlow {
  0%   { opacity: 0; }
  18%  { opacity: 1; }
  60%  { opacity: .8; }
  100% { opacity: 0; }
}
@keyframes effectReadySweep {
  from { background-position: 115% 0; }
  to   { background-position: -15% 0; }
}

/* Mana-Kugel des Eintrags blinkt mit auf. */
.effectChip.effectJustReady .effectCost {
  animation: effectReadyOrb .7s cubic-bezier(.3, 1.5, .5, 1) both;
  animation-delay: calc(var(--mp-t, 0ms) + .1s);
}
@keyframes effectReadyOrb {
  0%   { transform: scale(1); filter: brightness(1); }
  40%  { transform: scale(1.22); filter: brightness(1.6); }
  100% { transform: scale(1); filter: brightness(1); }
}

/* Brett: ruhiger Ring am Figurenfuss, waechst auf, haelt kurz, klingt aus. */
.boardFx-effectRing.is-ready {
  animation: mpReadyRing 1.6s cubic-bezier(.2, .8, .3, 1) both;
}
.boardFx-effectRing.is-ready::after {
  animation: mpFlashRipple 1.1s ease-out .3s both;
}
@keyframes mpReadyRing {
  0%   { opacity: 0; transform: scale(.5); }
  28%  { opacity: 1; transform: scale(1.06); }
  42%  { transform: scale(1); }
  70%  { opacity: .9; }
  100% { opacity: 0; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .effectChip.effectJustReady .effectReadyFlash,
  .effectChip.effectJustReady .effectCost,
  .boardFx-effectRing.is-ready,
  .boardFx-effectRing.is-ready::after { animation: none; }
  .effectChip.effectJustReady .effectReadyFlash { opacity: 0; }
}
