/* ==========================================================================
   WINTER VILLAGE — Animations & Visual Effects
   ========================================================================== */

/* Shimmer on Gold Elements */
@keyframes goldGlowPulse {
  0%, 100% {
    box-shadow: 0 0 12px rgba(217, 175, 115, 0.2);
  }
  50% {
    box-shadow: 0 0 24px rgba(217, 175, 115, 0.45);
  }
}

.glow-subtle {
  animation: goldGlowPulse 4s infinite ease-in-out;
}

/* Floating Golden Particles in Hero */
@keyframes floatGentle {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-10px) rotate(3deg);
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}

.float-slow {
  animation: floatGentle 6s infinite ease-in-out;
}

/* Fade In Up Reveal classes for IntersectionObserver */
.reveal-fade-up {
  opacity: 0;
  transform: translateY(30px);
  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: opacity, transform;
}

.reveal-fade-up.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delay helpers */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }

/* Subtle Window Flicker / Lantern flicker */
@keyframes windowWarmth {
  0%, 100% { opacity: 0.95; filter: drop-shadow(0 0 10px rgba(217, 175, 115, 0.6)); }
  50% { opacity: 1; filter: drop-shadow(0 0 16px rgba(217, 175, 115, 0.8)); }
}

.warm-flicker {
  animation: windowWarmth 5s infinite ease-in-out;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-fade-up {
    opacity: 1 !important;
    transform: none !important;
  }
  #snow-canvas {
    display: none !important;
  }
}
