/* Leon — Animations & Transitions v1.2 */

@keyframes spin-wheel {
  from { transform: rotate(0deg); }
  to   { transform: rotate(var(--wheel-end-angle, 1440deg)); }
}

@keyframes slide-in-bottom {
  from { transform: translateY(40px); opacity: 0; }
  to   { transform: translateY(0); opacity: 1; }
}

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

@keyframes bounce-in {
  0%   { transform: scale(0.8); opacity: 0; }
  60%  { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); }
}

@keyframes shine {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

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

/* Scroll-triggered animations — applied by JS */
.anim-hidden {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.anim-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Shine effect on gold buttons */
.btn-hero--primary,
.btn-submit,
.btn-spin,
.bw-btn {
  background-size: 200% auto;
}

/* Hero shimmer text */
.hero-bonus-amount {
  background: linear-gradient(90deg, #F2C94C 0%, #f5d97a 40%, #F2C94C 60%, #d4a017 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shine 3s linear infinite;
}

/* Winner top row pulse */
.winner-top {
  animation: none;
}

/* Stagger children */
.reviews-grid .col-12 { transition-delay: calc(var(--col-index, 0) * 0.1s); }
