/* ==============================================================================
   FESTIVAL ANIMATION STYLES — ELITE CRACKERS SIVAKASI
   Authentic Diwali Festival Motion, Glowing Diyas, Fireworks & Sparklers
   ============================================================================== */

/* Shimmer animation for festive call-to-action buttons */
.festival-btn-shimmer {
  position: relative;
  overflow: hidden;
}

.festival-btn-shimmer::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -60%;
  width: 50%;
  height: 200%;
  background: linear-gradient(
    60deg,
    rgba(255, 255, 255, 0) 20%,
    rgba(255, 255, 255, 0.45) 50%,
    rgba(255, 255, 255, 0) 80%
  );
  transform: rotate(25deg);
  animation: festivalShimmerSweep 3.2s infinite ease-in-out;
  pointer-events: none;
}

@keyframes festivalShimmerSweep {
  0% { left: -70%; }
  35% { left: 140%; }
  100% { left: 140%; }
}

/* Pulsing festive glow for festival badges */
.festival-glow-pulse {
  animation: festivalBadgeGlow 2.4s infinite alternate ease-in-out;
}

@keyframes festivalBadgeGlow {
  0% {
    box-shadow: 0 0 10px rgba(246, 132, 3, 0.35), 0 0 20px rgba(255, 209, 102, 0.2);
  }
  100% {
    box-shadow: 0 0 20px rgba(246, 132, 3, 0.75), 0 0 35px rgba(255, 209, 102, 0.5);
  }
}

/* Hanging Festive Lanterns / Diyas (Deepam) Sway Animation */
.festive-hanging-lamp {
  transform-origin: top center;
  animation: lampSway 4s ease-in-out infinite alternate;
}

.festive-hanging-lamp:nth-child(2n) {
  animation-duration: 4.8s;
  animation-delay: -1.2s;
}

.festive-hanging-lamp:nth-child(3n) {
  animation-duration: 3.6s;
  animation-delay: -0.7s;
}

@keyframes lampSway {
  0% { transform: rotate(-4deg); }
  100% { transform: rotate(4deg); }
}

/* Diya Flame Flicker */
.diya-flame {
  transform-origin: bottom center;
  animation: flameFlicker 1.6s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 8px #FFD166) drop-shadow(0 0 16px #F68403);
}

@keyframes flameFlicker {
  0% {
    transform: scale(0.95, 0.95) rotate(-2deg);
    opacity: 0.9;
  }
  50% {
    transform: scale(1.08, 1.15) rotate(2deg);
    opacity: 1;
  }
  100% {
    transform: scale(0.98, 1.05) rotate(-1deg);
    opacity: 0.92;
  }
}

/* Click Sparkler Burst Container */
.click-sparkler-particle {
  position: fixed;
  pointer-events: none;
  border-radius: 50%;
  z-index: 999999;
  mix-blend-mode: screen;
  box-shadow: 0 0 6px currentColor;
  animation: sparkFadeOut 0.75s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

@keyframes sparkFadeOut {
  0% {
    opacity: 1;
    transform: translate(0, 0) scale(1.2);
  }
  100% {
    opacity: 0;
    transform: translate(var(--tx), var(--ty)) scale(0.1);
  }
}

/* Floating festive sparkles drifting in hero */
.floating-sparkle {
  position: absolute;
  pointer-events: none;
  animation: floatSparkle 6s linear infinite;
}

@keyframes floatSparkle {
  0% {
    transform: translateY(100%) scale(0.5) rotate(0deg);
    opacity: 0;
  }
  20% {
    opacity: 0.8;
  }
  80% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(-120%) scale(1.1) rotate(360deg);
    opacity: 0;
  }
}
