/* ========================================
   ANIMATIONS — "PUB AMBIANCE"
   ======================================== */

/* ---- Glow Pulse ---- */
@keyframes glowPulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.8;
  }
}

/* ---- Scroll Line Pulse ---- */
@keyframes scrollPulse {
  0%, 100% {
    opacity: 0.3;
    transform: scaleY(1);
  }
  50% {
    opacity: 1;
    transform: scaleY(1.2);
  }
}

/* ---- Fade In Up ---- */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---- Fade In Right ---- */
.fade-in-right {
  opacity: 0;
  transform: translateX(40px);
  transition:
    opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
    transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

.fade-in-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* ---- Stagger Delays ---- */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }

/* ---- Warm Light Flicker (for decorative elements) ---- */
@keyframes warmFlicker {
  0%, 100% {
    opacity: 0.8;
  }
  25% {
    opacity: 0.9;
  }
  50% {
    opacity: 0.7;
  }
  75% {
    opacity: 1;
  }
}

/* ---- Subtle Gradient Shift ---- */
@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* ---- Card Hover Shimmer ---- */
@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

/* ---- Ambient Glow on Game Frame ---- */
@keyframes ambientGlow {
  0%, 100% {
    box-shadow:
      0 0 40px rgba(46, 163, 106, 0.05),
      0 0 40px rgba(200, 164, 93, 0.05);
  }
  50% {
    box-shadow:
      0 0 60px rgba(46, 163, 106, 0.1),
      0 0 60px rgba(200, 164, 93, 0.1);
  }
}

.game-frame {
  animation: ambientGlow 6s ease-in-out infinite;
}

/* ---- Button Ripple (on click feel) ---- */
.btn:active {
  transform: translateY(0) scale(0.98);
}

/* ---- Toast Entrance ---- */
@keyframes toastIn {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.gin-toast.active {
  animation: toastIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.gin-poured.active {
  animation: toastIn 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* ---- Soft Candlelight on Hero ---- */
.hero-warm-overlay {
  animation: warmFlicker 8s ease-in-out infinite;
}

/* ---- Link underline animation ---- */
.content-block a,
.legal-block a {
  text-decoration: underline;
  text-decoration-color: rgba(110, 231, 183, 0.3);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.3s ease;
}

.content-block a:hover,
.legal-block a:hover {
  text-decoration-color: var(--green-clover);
}

/* ---- Floating Badge Animation ---- */
.hero-badge {
  animation: warmFlicker 4s ease-in-out infinite;
}