/* ==========================================================================
   GREEN ENVIRONMENT SOLUTIONS (GES) - ANIMATIONS STYLESHEET
   Keyframes, GPU-accelerated transforms, and Ambient Motion Effects
   ========================================================================== */

@keyframes spinRing {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes pulseBreathe {
  0%, 100% {
    transform: scale(1);
    filter: drop-shadow(0 0 14px var(--primary));
  }
  50% {
    transform: scale(1.08);
    filter: drop-shadow(0 0 28px var(--accent));
  }
}

@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-12px) rotate(1deg);
  }
}

@keyframes borderRotate {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes scannerBeam {
  0% { top: 0%; opacity: 0; }
  15% { opacity: 0.8; }
  85% { opacity: 0.8; }
  100% { top: 100%; opacity: 0; }
}

@keyframes auroraWave {
  0% { transform: scale(1) translate(0%, 0%); opacity: 0.3; }
  50% { transform: scale(1.15) translate(3%, -2%); opacity: 0.5; }
  100% { transform: scale(1) translate(0%, 0%); opacity: 0.3; }
}

/* Reveal utility classes */
.reveal-on-scroll {
  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);
}

.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-left.revealed {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-right.revealed {
  opacity: 1;
  transform: translateX(0);
}

/* Stagger Delay Helpers */
.delay-1 { transition-delay: 0.1s !important; }
.delay-2 { transition-delay: 0.2s !important; }
.delay-3 { transition-delay: 0.3s !important; }
.delay-4 { transition-delay: 0.4s !important; }
.delay-5 { transition-delay: 0.5s !important; }
html[dir="rtl"] .slider-marquee-track,
html[dir="rtl"] #fire-horizontal-slider {
  animation-name: scrollMarqueeRTL !important;
}
@keyframes scrollMarqueeRTL {
  0% { transform: translateX(0); }
  100% { transform: translateX(50%); }
}
