/* Advanced Animation System with Accessibility Support */

/* Reduced Motion Media Query - For users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001s !important;
    transition-duration: 0.001s !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
  
  /* Disable parallax effects */
  .parallax-element {
    transform: none !important;
  }
  
  /* Disable scroll reveal animations */
  .scroll-reveal, 
  .scroll-reveal-left, 
  .scroll-reveal-right, 
  .scroll-reveal-scale {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Optimized Animation Keyframes */
@keyframes enhanced-fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes enhanced-pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.9;
  }
  50% {
    transform: scale(1.2);
    opacity: 1;
  }
}

@keyframes enhanced-shimmer {
  0% {
    background-position: -200% 50%;
  }
  100% {
    background-position: 200% 50%;
  }
}

/* Performant animation classes */
.animate-enhanced-fadeIn {
  animation: enhanced-fadeIn 0.6s ease-out forwards;
  will-change: transform, opacity;
}

.animate-enhanced-pulse {
  animation: enhanced-pulse 2s ease-in-out infinite;
  will-change: transform, opacity;
}

.animate-enhanced-shimmer {
  background-size: 200% auto;
  animation: enhanced-shimmer 3s linear infinite;
  will-change: background-position;
}

/* Staggered animation timing utility classes */
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }
.delay-800 { animation-delay: 0.8s; }
.delay-900 { animation-delay: 0.9s; }
.delay-1000 { animation-delay: 1s; }

/* Hardware accelerated transform classes */
.hw-accelerated {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}
