/* ==========================================================================
   EV PAYANAM - ANIMATIONS & MOTION
   Lightweight, resilient transitions & reduced-motion accessibility
   ========================================================================== */

/* Resilient Scroll Reveal: Elements are visible by default and smoothly transition */
.reveal-init {
  opacity: 1;
  transform: none;
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

/* Stagger Delays */
.delay-1 { transition-delay: 0.08s; }
.delay-2 { transition-delay: 0.16s; }
.delay-3 { transition-delay: 0.24s; }
.delay-4 { transition-delay: 0.32s; }

/* Subtle Gentle Float */
@keyframes gentleFloat {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

.floating-element {
  animation: gentleFloat 5s ease-in-out infinite;
}

/* Subtle Pulse Indicator */
@keyframes dotPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 194, 106, 0.7);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(0, 194, 106, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(0, 194, 106, 0);
  }
}

.pulse-dot {
  animation: dotPulse 2s infinite cubic-bezier(0.4, 0, 0.6, 1);
}

/* Glow Shimmer Animation */
@keyframes cardShimmer {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.glow-shimmer {
  background: linear-gradient(90deg, rgba(0, 194, 106, 0.1), rgba(0, 229, 255, 0.25), rgba(0, 194, 106, 0.1));
  background-size: 200% 200%;
  animation: cardShimmer 4s ease infinite;
}

/* Reduced Motion Compliance */
@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;
  }

  .floating-element,
  .pulse-dot,
  .journey-divider-pulse,
  .pulse-indicator::after,
  .glow-shimmer {
    animation: none !important;
  }
}
