/* Animation de la donne. */
.deal-fx {
  position: fixed;
  z-index: 1850;
  inset: 0;
  overflow: hidden;
  pointer-events: auto;
}

.deal-in-progress .hand-layout .zone-cards > *,
.deal-in-progress .hand-layout .deposit-switch,
.deal-in-progress .player-zone .actions,
.deal-in-progress .player-zone .deposit-controls,
.deal-in-progress .player-zone .hint {
  visibility: hidden !important;
}

.deal-floating-deck {
  position: fixed;
  z-index: 10;
  width: 70px;
  height: 98px;
  transform: translate(-50%, -50%);
  animation: deal-deck-levitate 1.15s ease-in-out infinite alternate;
  filter: drop-shadow(0 16px 13px rgba(0,0,0,.48));
  transition: opacity .3s, transform .3s;
}

.deal-floating-deck i {
  position: absolute;
  inset: 0;
  display: block;
  border: 4px solid #f5ecd6;
  border-radius: 8px;
  background-color: #182f29;
  background-position: center;
  background-size: cover;
  transform:
    translate(var(--deck-x), var(--deck-y))
    rotate(var(--deck-rotate));
  box-shadow: 0 4px 9px rgba(0,0,0,.34);
}

.deal-floating-deck.deal-complete {
  opacity: 0;
  transform: translate(-50%, -58%) scale(.86);
}

.deal-flying-card {
  position: fixed;
  display: block;
  width: 64px;
  height: 90px;
  border: 3px solid #f5ecd6;
  border-radius: 7px;
  background-color: #182f29;
  background-position: center;
  background-size: cover;
  box-shadow: 0 9px 19px rgba(0,0,0,.46);
  will-change: transform, opacity;
}

.deal-flying-card.deal-card-landed {
  filter: drop-shadow(0 4px 5px rgba(0,0,0,.28));
}

.deal-finishing .deal-flying-card {
  transition: opacity .3s ease;
  opacity: 0 !important;
}

@keyframes deal-deck-levitate {
  from { transform: translate(-50%, -55%) rotate(-2.4deg); }
  to { transform: translate(-50%, -67%) rotate(2.8deg); }
}

@media (max-width: 700px) {
  .deal-floating-deck {
    width: 58px;
    height: 82px;
  }
  .deal-flying-card {
    width: 52px;
    height: 73px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .deal-floating-deck {
    animation-duration: 1.8s;
  }
}
