@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-24px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes glow {
  0%, 100% { box-shadow: 0 0 8px rgba(232,184,75,.2); }
  50% { box-shadow: 0 0 24px rgba(232,184,75,.5); }
}
@keyframes countUp {
  from { opacity: 0; transform: scale(.8); }
  to { opacity: 1; transform: scale(1); }
}
.animate-fade-up {
  animation: fadeInUp .5s ease forwards;
}
.animate-fade-left {
  animation: fadeInLeft .5s ease forwards;
}
.jackpot-amount {
  animation: countUp .4s ease, glow 3s ease infinite;
}
.hero-content > * {
  animation: fadeInUp .6s ease backwards;
}
.hero-content > *:nth-child(1) { animation-delay: .1s; }
.hero-content > *:nth-child(2) { animation-delay: .2s; }
.hero-content > *:nth-child(3) { animation-delay: .3s; }
.hero-content > *:nth-child(4) { animation-delay: .4s; }
.btn-primary {
  position: relative;
  overflow: hidden;
}
.btn-primary::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60px;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent);
  animation: btnShimmer 2.5s ease infinite;
}
@keyframes btnShimmer {
  0% { left: -100%; }
  60%, 100% { left: 200%; }
}
.adv-card, .bonus-card, .winner-row, .faq-item {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.bonus-card:hover .btn-reg,
.bonus-card:hover .btn-bonus {
  transform: translateY(-1px);
}
