/* Gundam room visual FX (Step 1): card deal-in + deck shuffle animations.
   Kept in a separate file so it stays out of the large gundam_room.css. */

/* Card deal-in: new hand cards slide up + fade into place. */
@keyframes fxDealInZero {
  0%   { opacity: 0; transform: translateY(28px) scale(0.84); }
  55%  { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.card-zero.fx-deal-in-zero {
  animation: fxDealInZero 0.32s cubic-bezier(0.2, 0.8, 0.25, 1) both;
  z-index: 40;
  will-change: transform, opacity;
}

/* Deck shuffle: quick riffle/wobble on the deck pile body. */
@keyframes fxShuffleZero {
  0%   { transform: translateX(0)    rotate(0deg); }
  18%  { transform: translateX(-4px) rotate(-3deg); }
  38%  { transform: translateX(4px)  rotate(3deg); }
  58%  { transform: translateX(-3px) rotate(-2deg); }
  78%  { transform: translateX(3px)  rotate(2deg); }
  100% { transform: translateX(0)    rotate(0deg); }
}
.pile-body-zero.fx-shuffle-zero {
  animation: fxShuffleZero 0.6s ease-in-out both;
  transform-origin: 50% 60%;
}

/* Blocker highlight: cyan pulse on units that can block during block step. */
@keyframes fxBlockerPulseZero {
  0%, 100% { box-shadow: 0 0 0 2px #00e5ff, 0 0 10px 2px rgba(0,229,255,0.45); }
  50%       { box-shadow: 0 0 0 3px #00e5ff, 0 0 20px 4px rgba(0,229,255,0.75); }
}
.card-zero.fx-can-block-zero {
  animation: fxBlockerPulseZero 1s ease-in-out infinite;
  z-index: 20;
}

@media (prefers-reduced-motion: reduce) {
  .card-zero.fx-deal-in-zero,
  .pile-body-zero.fx-shuffle-zero,
  .card-zero.fx-can-block-zero {
    animation: none !important;
  }
  .card-zero.fx-can-block-zero {
    box-shadow: 0 0 0 3px #00e5ff;
  }
}
