@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-30px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes shimmer {
  0% { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}

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

@keyframes borderPulse {
  0%, 100% { border-color: var(--c-prim); }
  50% { border-color: #ff7a2f; }
}

.animate-float { animation: floatUp 3s ease-in-out infinite; }
.animate-scale-in { animation: scaleIn 0.4s ease both; }
.animate-slide-left { animation: slideInLeft 0.5s ease both; }
.animate-slide-right { animation: slideInRight 0.5s ease both; }

.bonus-card { transition: transform 0.28s cubic-bezier(.4,0,.2,1), border-color 0.28s ease, box-shadow 0.28s ease; }
.winner-card { transition: border-color 0.2s ease, background 0.2s ease; }
.winner-card:hover { background: rgba(226,90,6,0.06); }

.btn { position: relative; overflow: hidden; }
.btn::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  transform: translate(-50%, -50%);
  transition: width 0.4s ease, height 0.4s ease, opacity 0.4s ease;
  opacity: 0;
  pointer-events: none;
}
.btn:active::after {
  width: 200px;
  height: 200px;
  opacity: 1;
}

.site-header { transition: box-shadow 0.3s ease; }
.site-header.scrolled { box-shadow: 0 4px 30px rgba(0,0,0,0.7); }

.promo-accent {
  animation: borderPulse 3s ease-in-out infinite;
}

.jackpot-amount {
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

.hero-slide.active h1 {
  animation: slideInLeft 0.6s ease both;
}

.hero-slide.active p {
  animation: slideInLeft 0.6s 0.1s ease both;
}

.hero-slide.active .btn {
  animation: slideInLeft 0.6s 0.2s ease both;
}

.slot-card img, .bonus-card img { transition: transform 0.35s ease; }
.slot-card:hover img { transform: scale(1.05); }

.sticky-widget { transition: transform 0.3s ease; }
.sticky-widget.hidden { transform: translateY(100%); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
