/* =========================================================
   Nomad Casino — Animations | ver 1.2
   ========================================================= */

/* Fade in up */
@keyframes nm-fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.nm-anim-fadeInUp { animation: nm-fadeInUp 0.55s ease both; }

/* Fade in */
@keyframes nm-fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.nm-anim-fadeIn { animation: nm-fadeIn 0.4s ease both; }

/* Scale in */
@keyframes nm-scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}
.nm-anim-scaleIn { animation: nm-scaleIn 0.4s ease both; }

/* Stagger delay helpers */
.nm-delay-1 { animation-delay: 0.1s; }
.nm-delay-2 { animation-delay: 0.2s; }
.nm-delay-3 { animation-delay: 0.3s; }
.nm-delay-4 { animation-delay: 0.4s; }
.nm-delay-5 { animation-delay: 0.5s; }

/* Section transition reveal via IntersectionObserver */
.nm-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.nm-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Shimmer (jackpot) */
@keyframes nm-shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.nm-shimmer-text {
  background: linear-gradient(90deg, #eaae16 25%, #f5e87a 50%, #eaae16 75%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: nm-shimmer 2.5s linear infinite;
}

/* Spin animation for wheel */
@keyframes nm-wheel-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(var(--spin-deg, 1080deg)); }
}

/* Button ripple */
@keyframes nm-ripple {
  to { transform: scale(4); opacity: 0; }
}
.nm-ripple-effect {
  position: relative;
  overflow: hidden;
}
.nm-ripple-effect::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  width: 100px; height: 100px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(0);
  animation: nm-ripple 0.6s linear;
}

/* Loading spinner */
@keyframes nm-spinner {
  to { transform: rotate(360deg); }
}
.nm-spinner {
  width: 20px; height: 20px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: nm-spinner 0.7s linear infinite;
  display: inline-block;
}

/* Glow pulse on gold elements */
@keyframes nm-glow {
  0%, 100% { box-shadow: 0 0 8px rgba(234,174,22,0.3); }
  50% { box-shadow: 0 0 24px rgba(234,174,22,0.7); }
}
.nm-glow { animation: nm-glow 2s ease-in-out infinite; }
