@keyframes cardEnter {
  0% { opacity: 0; transform: translateY(-44px) scale(0.82) rotate(-8deg); }
  55% { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
}
.card-enter { animation: cardEnter 0.48s var(--ease-spring) both; }

@keyframes cardExit {
  0% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(28px) scale(0.78); }
}
.card-exit { animation: cardExit 0.24s var(--ease-out-soft) both; }

@keyframes pulseRing {
  0%, 100% { opacity: 0.45; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

@keyframes softGlow {
  0%, 100% { box-shadow: 0 6px 16px var(--shadow-soft), 0 0 0 rgba(232,200,116,0); }
  50% { box-shadow: 0 8px 22px var(--shadow-soft), 0 0 22px rgba(232,200,116,0.5); }
}
.btn.is-ready:not(.btn--knock):not(.btn--gin) { animation: softGlow 1.8s ease-in-out infinite; }

@keyframes badgePop {
  0% { transform: scale(0.55); opacity: 0; }
  60% { transform: scale(1.14); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
.dealer-badge:not(.hidden) { animation: badgePop 0.38s var(--ease-spring) both; }

@keyframes modalIn {
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes shimmerText {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.modal-title,
.brand h1 em {
  background: linear-gradient(
    90deg,
    var(--brass-400) 0%,
    var(--brass-100) 22%,
    var(--brass-300) 45%,
    var(--brass-700) 68%,
    var(--brass-300) 100%
  );
  background-size: 250% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmerText 4s linear infinite;
}

@keyframes ambientPulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 0.85; transform: scale(1.06); }
}

@keyframes crownFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes tableGlow {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 1; }
}
.table-glow { animation: tableGlow 5s ease-in-out infinite; }

@keyframes startCardIn {
  0% { opacity: 0; transform: translateY(24px) scale(0.96); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.start-card { animation: startCardIn 0.7s var(--ease-luxe) both; }
