/* ==========================================================================
   Animations — keyframes & ambient motion
   (GSAP handles scroll-reveal timelines from JS; this file covers
   continuous ambient effects and lightweight CSS-only motion)
   ========================================================================== */

@keyframes blobFloat{
  0%{transform:translate(0,0) scale(1);}
  33%{transform:translate(30px,-40px) scale(1.08);}
  66%{transform:translate(-24px,26px) scale(.96);}
  100%{transform:translate(0,0) scale(1);}
}
.bg-blob{animation:blobFloat 18s ease-in-out infinite;}
.bg-blob.b2{animation-duration:22s;animation-delay:-4s;}
.bg-blob.b3{animation-duration:26s;animation-delay:-9s;}

@keyframes particleDrift{
  0%{transform:translateY(0) translateX(0);opacity:0;}
  10%{opacity:.6;}
  90%{opacity:.4;}
  100%{transform:translateY(-160px) translateX(20px);opacity:0;}
}
.particle{animation:particleDrift 9s linear infinite;}

@keyframes beamPulse{
  0%,100%{opacity:.12;}
  50%{opacity:.32;}
}
.light-beam{animation:beamPulse 5s ease-in-out infinite;}

@keyframes glowPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(228,58,41,.35);}
  50%{box-shadow:0 0 0 14px rgba(228,58,41,0);}
}
.glow-pulse{animation:glowPulse 2.6s ease-in-out infinite;}

@keyframes floatY{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
.float-card{animation:floatY 6s ease-in-out infinite;}
.float-card.fc-2{animation-duration:7s;animation-delay:-2s;}
.float-card.fc-3{animation-duration:5.5s;animation-delay:-1s;}
.float-card.fc-4{animation-duration:6.5s;animation-delay:-3s;}

@keyframes marquee{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
.testi-track.auto{animation:marquee 42s linear infinite;}
.testi-track-wrap:hover .testi-track.auto{animation-play-state:paused;}

@keyframes spin-slow{
  to{transform:rotate(360deg);}
}
.spin-slow{animation:spin-slow 20s linear infinite;}

/* Cursor glow (desktop only, added via JS) */
.cursor-glow{
  position:fixed;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle, rgba(228,58,41,.10), transparent 70%);
  pointer-events:none;z-index:2;
  transform:translate(-50%,-50%);
  will-change:transform;
}

/* Fade classes toggled by JS/ScrollTrigger fallback (no-js safe: content visible) */
.js .reveal-up,.js .reveal-left,.js .reveal-right,.js .reveal-scale{visibility:visible;}
.no-js .reveal-up,.no-js .reveal-left,.no-js .reveal-right,.no-js .reveal-scale{opacity:1!important;transform:none!important;}
