/* Transitions and animation definitions */

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.animate-fade-in { animation: fadeIn 0.5s ease both; }
.animate-fade-in-up { animation: fadeInUp 0.6s ease both; }
.animate-slide-left { animation: slideInLeft 0.5s ease both; }
.animate-slide-right { animation: slideInRight 0.5s ease both; }

.animate-delay-1 { animation-delay: 0.1s; }
.animate-delay-2 { animation-delay: 0.2s; }
.animate-delay-3 { animation-delay: 0.3s; }
.animate-delay-4 { animation-delay: 0.4s; }
.animate-delay-5 { animation-delay: 0.5s; }

.hero-left { animation: slideInLeft 0.7s ease both; }
.casino-info-card { animation: slideInRight 0.7s ease 0.15s both; }
.hero-eyebrow { animation: fadeInUp 0.5s ease both; }
.hero h1 { animation: fadeInUp 0.6s ease 0.1s both; }
.hero-desc { animation: fadeInUp 0.6s ease 0.2s both; }
.hero-cta { animation: fadeInUp 0.6s ease 0.3s both; }

.review-card { animation: fadeInUp 0.5s ease both; }
.review-card:nth-child(1) { animation-delay: 0.05s; }
.review-card:nth-child(2) { animation-delay: 0.10s; }
.review-card:nth-child(3) { animation-delay: 0.15s; }
.review-card:nth-child(4) { animation-delay: 0.20s; }
.review-card:nth-child(5) { animation-delay: 0.25s; }
.review-card:nth-child(6) { animation-delay: 0.30s; }

.game-tile { animation: fadeInUp 0.4s ease both; }
.game-tile:nth-child(n+1) { animation-delay: calc(0.04s * var(--nth, 1)); }

.float-widget { animation: fadeInUp 0.6s ease 1s both; }

.section-header { animation: fadeInUp 0.6s ease both; }

/* Skeleton loading shimmer effect */
.skeleton {
  background: linear-gradient(90deg, var(--clr-card) 25%, var(--clr-card2) 50%, var(--clr-card) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--radius-sm);
}

/* Smooth reveal on scroll (intersection observer class) */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Button ripple */
.btn { position: relative; overflow: hidden; }
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.1);
  opacity: 0;
  transition: opacity 0.2s;
  border-radius: inherit;
}
.btn:active::after { opacity: 1; }

/* Gradient animated hero badge */
.hero-eyebrow {
  background-size: 200% 200%;
  animation: gradientShift 4s ease infinite;
}

/* Notification dot pulse */
.notification-dot {
  width: 8px;
  height: 8px;
  background: var(--clr-primary);
  border-radius: 50%;
  display: inline-block;
  animation: pulse 1.5s ease-in-out infinite;
}

/* Unused animation hooks for fingerprinting */
@keyframes xb7k2rotate { from { rotate: 0deg; } to { rotate: 360deg; } }
@keyframes m4p7vrBounce { 0%, 100% { translate: 0; } 50% { translate: 0 -10px; } }
.qz9x1a-anim { animation: xb7k2rotate 2s linear infinite; display: none; }
.m4p7vr-anim { animation: m4p7vrBounce 1s ease infinite; display: none; }
