/* ==========================================================================
   DRAGON BITES LTD — ANIMATIONS & SCROLL REVEALS
   GSAP ScrollTrigger hooks, keyframe shimmers, and micro-interactions
   ========================================================================== */

/* Smooth Scroll helper */
html.lenis {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

/* Base Reveal Classes for GSAP / Intersection Observer */
.reveal, .reveal-up, .reveal-left, .reveal-right {
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}

.reveal-up {
  transform: translateY(40px);
}

.reveal-left {
  transform: translateX(-40px);
}

.reveal-right {
  transform: translateX(40px);
}

.reveal.active, .reveal-up.active, .reveal-left.active, .reveal-right.active {
  opacity: 1;
  transform: translate(0, 0);
}

/* Flame & Neon Glow Keyframes */
@keyframes flameFlicker {
  0%, 100% {
    box-shadow: 0 0 15px rgba(255, 42, 77, 0.4), inset 0 0 15px rgba(255, 42, 77, 0.2);
  }
  50% {
    box-shadow: 0 0 25px rgba(255, 42, 77, 0.7), inset 0 0 20px rgba(255, 42, 77, 0.4);
  }
}

.glow-flame {
  animation: flameFlicker 3s infinite ease-in-out;
}

/* Gold Shimmer Text Animation */
@keyframes goldShimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.shimmer-gold {
  background: linear-gradient(90deg, #D4AF37 0%, #FFF4CC 50%, #D4AF37 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: goldShimmer 4s infinite linear;
}

/* Steam particles */
@keyframes steamDrift {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0.7;
  }
  50% {
    transform: translateY(-20px) scale(1.15) rotate(2deg);
    opacity: 0.35;
  }
  100% {
    transform: translateY(-40px) scale(1.3) rotate(-2deg);
    opacity: 0;
  }
}

.steam-anim {
  animation: steamDrift 3.5s infinite ease-out;
}

/* Magnetic Button Utility */
.magnetic-wrap {
  display: inline-block;
  transition: transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}
