/**
 * Scalable Scroll & Entrance Animations Framework
 * Hashbie Digital Solutions
 *
 * Provides GPU-accelerated scroll-triggered animation primitives,
 * staggered delays, physics curves, and entrance utility classes.
 */

/* ----------------------------------------------------
   1. CORE REVEAL BASE STYLES (FLICKER-FREE STABLE GPU LAYER)
   ---------------------------------------------------- */
[data-scroll] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), 
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-font-smoothing: antialiased;
}

/* Above fold protection - never hide hero or header */
.hero-section [data-scroll],
.site-header [data-scroll] {
  opacity: 1 !important;
  transform: none !important;
}

/* ----------------------------------------------------
   2. ANIMATION DIRECTION VARIANTS
   ---------------------------------------------------- */
/* Fade Up (Default) */
[data-scroll="fade-up"],
.reveal-fade-up,
.reveal-item {
  transform: translateY(35px);
}

/* Fade Down */
[data-scroll="fade-down"],
.reveal-fade-down {
  transform: translateY(-35px);
}

/* Fade Left (Slides in from left) */
[data-scroll="fade-left"],
.reveal-fade-left {
  transform: translateX(-35px);
}

/* Fade Right (Slides in from right) */
[data-scroll="fade-right"],
.reveal-fade-right {
  transform: translateX(35px);
}

/* Scale Up Zoom */
[data-scroll="scale-up"],
[data-scroll="zoom-in"],
.reveal-scale-up,
.reveal-zoom-in {
  transform: scale(0.95) translateY(25px);
}

/* Flip Up */
[data-scroll="flip-up"],
.reveal-flip-up {
  transform: translateY(35px);
}

/* ----------------------------------------------------
   3. REVEALED ACTIVE STATE (ZERO POP / ZERO FLICKER)
   ---------------------------------------------------- */
[data-scroll].is-revealed,
.reveal-item.is-revealed,
.reveal-fade-up.is-revealed,
.reveal-fade-down.is-revealed,
.reveal-fade-left.is-revealed,
.reveal-fade-right.is-revealed,
.reveal-scale-up.is-revealed,
.reveal-zoom-in.is-revealed,
.reveal-flip-up.is-revealed {
  opacity: 1 !important;
  transform: translateY(0) translateX(0) scale(1) !important;
}

/* ----------------------------------------------------
   4. STAGGERED TRANSITION DELAYS
   ---------------------------------------------------- */
.delay-50,  [data-delay="50"]   { transition-delay: 0.05s; }
.delay-100, [data-delay="100"]  { transition-delay: 0.10s; }
.delay-150, [data-delay="150"]  { transition-delay: 0.15s; }
.delay-200, [data-delay="200"]  { transition-delay: 0.20s; }
.delay-250, [data-delay="250"]  { transition-delay: 0.25s; }
.delay-300, [data-delay="300"]  { transition-delay: 0.30s; }
.delay-350, [data-delay="350"]  { transition-delay: 0.35s; }
.delay-400, [data-delay="400"]  { transition-delay: 0.40s; }
.delay-450, [data-delay="450"]  { transition-delay: 0.45s; }
.delay-500, [data-delay="500"]  { transition-delay: 0.50s; }
.delay-600, [data-delay="600"]  { transition-delay: 0.60s; }
.delay-700, [data-delay="700"]  { transition-delay: 0.70s; }
.delay-800, [data-delay="800"]  { transition-delay: 0.80s; }
.delay-1000,[data-delay="1000"] { transition-delay: 1.00s; }

/* ----------------------------------------------------
   5. INTERACTIVE SCALABLE HOVER EFFECTS
   ---------------------------------------------------- */
.hover-lift {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.hover-lift:hover {
  transform: translate3d(0, -6px, 0) scale3d(1.015, 1.015, 1);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12), 0 0 20px rgba(245, 158, 11, 0.15);
}

.hover-glow {
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

.hover-glow:hover {
  border-color: var(--gold-primary);
  box-shadow: 0 0 25px rgba(245, 158, 11, 0.25);
}

/* Pulse Keyframes for CTA Buttons */
@keyframes ctaGlowPulse {
  0% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.4); }
  70% { box-shadow: 0 0 0 14px rgba(245, 158, 11, 0); }
  100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}

.pulse-glow {
  animation: ctaGlowPulse 2.5s infinite;
}

/* ----------------------------------------------------
   6. ACCESSIBILITY & PREFERS-REDUCED-MOTION
   ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  [data-scroll],
  .reveal-item,
  .reveal-fade-up,
  .reveal-fade-down,
  .reveal-fade-left,
  .reveal-fade-right,
  .reveal-scale-up,
  .reveal-zoom-in,
  .reveal-flip-up {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Mobile Animation Optimization (Gentle vertical offsets, no horizontal displacement) */
@media (max-width: 768px) {
  [data-scroll="fade-left"],
  [data-scroll="fade-right"],
  .reveal-fade-left,
  .reveal-fade-right {
    transform: translate3d(0, 15px, 0);
  }

  [data-scroll="fade-up"],
  .reveal-fade-up,
  .reveal-item {
    transform: translate3d(0, 15px, 0);
  }
}

