@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.animate-float {
  animation: float 4s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(16, 185, 129, 0.4); }
  50% { box-shadow: 0 0 35px rgba(16, 185, 129, 0.7); }
}
.animate-pulse-glow {
  animation: pulse-glow 3s ease-in-out infinite;
}

/* Styles for scroll animations */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.animate-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Utility to lock body scroll when mobile menu is open */
body.overflow-hidden-body {
  overflow: hidden;
}