/* Enhanced animation utilities with more dynamic effects */
:root { scroll-behavior: smooth; }

/* Reveal animations */
.reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1), transform 0.7s cubic-bezier(0.4, 0, 0.2, 1); }
.reveal.in { opacity: 1; transform: translateY(0); }

.fade-in { opacity: 0; transition: opacity 0.9s ease; }
.fade-in.in { opacity: 1; }

.slide-down { transform: translateY(-24px); opacity: 0; transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s ease; }
.slide-down.in { transform: translateY(0); opacity: 1; }

/* Floating animations */
.float { animation: floatY 4s ease-in-out infinite; }
@keyframes floatY { 
  0%, 100% { transform: translateY(0px); } 
  50% { transform: translateY(-10px); } 
}

.float-slow { animation: floatSlow 6s ease-in-out infinite; }
@keyframes floatSlow { 
  0%, 100% { transform: translateY(0px); } 
  50% { transform: translateY(-15px); } 
}

/* Pulse animations */
.pulse-soft { animation: pulseSoft 2.5s ease-in-out infinite; }
@keyframes pulseSoft { 
  0%, 100% { opacity: 0.7; transform: scale(1); } 
  50% { opacity: 1; transform: scale(1.02); } 
}

/* Scale animations */
.scale-in { opacity: 0; transform: scale(0.95); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.scale-in.in { opacity: 1; transform: scale(1); }

/* Slide animations */
.slide-left { opacity: 0; transform: translateX(-30px); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.slide-left.in { opacity: 1; transform: translateX(0); }

.slide-right { opacity: 0; transform: translateX(30px); transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.slide-right.in { opacity: 1; transform: translateX(0); }

/* Stagger delay utility classes */
.stagger-1 { transition-delay: 0.1s; }
.stagger-2 { transition-delay: 0.2s; }
.stagger-3 { transition-delay: 0.3s; }
.stagger-4 { transition-delay: 0.4s; }
.stagger-5 { transition-delay: 0.5s; }
.stagger-6 { transition-delay: 0.6s; }

/* Stagger delays for group animations */
.fade-in:nth-child(1) { transition-delay: 0.1s; }
.fade-in:nth-child(2) { transition-delay: 0.2s; }
.fade-in:nth-child(3) { transition-delay: 0.3s; }
.fade-in:nth-child(4) { transition-delay: 0.4s; }
.fade-in:nth-child(5) { transition-delay: 0.5s; }
.fade-in:nth-child(6) { transition-delay: 0.6s; }

/* Hover effects */
.hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.hover-lift:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15); }

/* Gradient animations */
.gradient-shift { 
  background-size: 200% 200%; 
  animation: gradientShift 3s ease infinite; 
}
@keyframes gradientShift { 
  0%, 100% { background-position: 0% 50%; } 
  50% { background-position: 100% 50%; } 
}

/* Decorative gradient orbs */
.orb { 
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99, 102, 241, 0.15), transparent);
  filter: blur(60px);
  opacity: 0.4;
  animation: orbFloat 8s ease-in-out infinite;
}
@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -30px) scale(1.1); }
  66% { transform: translate(-30px, 30px) scale(0.9); }
}

/* Sticky navbar shadow after scroll */
.nav-scrolled { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); backdrop-filter: blur(12px); }
