/* ═══════════════════════════════════════════════════════
   ANIMATIONS — The Saracen's Head Inn
   Keyframe animations and transition classes
   ═══════════════════════════════════════════════════════ */

/* ── Loader Spin ── */
@keyframes loaderSpin {
  to { transform: rotate(360deg); }
}

/* ── Scroll Indicator Pulse ── */
@keyframes scrollPulse {
  0%, 100% {
    opacity: 0.4;
    transform: scaleY(1);
  }
  50% {
    opacity: 1;
    transform: scaleY(1.3);
  }
}

/* ── Floating CTA Pulse ── */
@keyframes floatingPulse {
  0%, 100% {
    box-shadow: 0 8px 30px rgba(180, 122, 74, 0.3);
  }
  50% {
    box-shadow: 0 8px 40px rgba(180, 122, 74, 0.5),
                0 0 0 8px rgba(180, 122, 74, 0.08);
  }
}

/* ── Ambient Leaf Float 1 ── */
@keyframes ambientFloat1 {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  33% {
    transform: translateY(-8px) rotate(3deg);
  }
  66% {
    transform: translateY(4px) rotate(-2deg);
  }
}

/* ── Ambient Leaf Float 2 ── */
@keyframes ambientFloat2 {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  25% {
    transform: translateY(6px) rotate(-4deg);
  }
  50% {
    transform: translateY(-10px) rotate(2deg);
  }
  75% {
    transform: translateY(3px) rotate(-1deg);
  }
}

/* ── Ambient Leaf Float 3 ── */
@keyframes ambientFloat3 {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  40% {
    transform: translateY(-12px) rotate(5deg);
  }
  80% {
    transform: translateY(5px) rotate(-3deg);
  }
}

/* ── Ghost Text Pulse ── */
@keyframes ghostPulse {
  0%, 100% {
    opacity: 0.6;
  }
  50% {
    opacity: 0.85;
  }
}

/* ── Apply ambient animations ── */
.ambient-leaf--1 { animation: ambientFloat1 8s ease-in-out infinite; }
.ambient-leaf--2 { animation: ambientFloat2 10s ease-in-out infinite; }
.ambient-leaf--3 { animation: ambientFloat3 12s ease-in-out infinite; }
.ambient-leaf--4 { animation: ambientFloat1 9s ease-in-out infinite 2s; }
.ambient-leaf--5 { animation: ambientFloat2 11s ease-in-out infinite 1s; }
.ambient-leaf--6 { animation: ambientFloat3 7s ease-in-out infinite 3s; }

/* ── Ghost text animation ── */
.ghost-pulse {
  animation: ghostPulse 4s ease-in-out infinite;
}

/* ── GSAP reveal classes ── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  will-change: transform, opacity;
}

.reveal-scale {
  opacity: 0;
  transform: scale(0.95) rotate(-1deg);
  will-change: transform, opacity;
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  will-change: transform, opacity;
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  will-change: transform, opacity;
}
