.fade-in { animation: fadeInUp 0.6s ease both; }
.fade-in-delay-1 { animation-delay: 0.1s; }
.fade-in-delay-2 { animation-delay: 0.2s; }
.fade-in-delay-3 { animation-delay: 0.3s; }

@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.btn--primary.shimmer-effect {
  background-image: linear-gradient(90deg, #500202 40%, #7a0303 50%, #500202 60%);
  background-size: 200% auto;
  animation: shimmer 2.5s linear infinite;
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
}
.float-anim { animation: float 3s ease-in-out infinite; }

@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.hero-section .hero-deco {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

@keyframes wipe-in {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0 0% 0 0); }
}

.section-enter { animation: fadeInUp 0.55s ease both; }

.slot-card-img::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
  pointer-events: none;
}

.winners-table tr {
  transition: background 0.2s ease;
}

.btn--primary {
  position: relative;
  overflow: hidden;
}
.btn--primary::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -60%;
  width: 40%;
  height: 200%;
  background: rgba(255,255,255,0.08);
  transform: skewX(-20deg);
  transition: left 0.5s ease;
  pointer-events: none;
}
.btn--primary:hover::before { left: 120%; }

.feature-card { animation: none; }
.feature-card.scroll-reveal.visible { animation: fadeInUp 0.5s ease both; }

@keyframes counter-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
