/* Keyframe Animations & Micro-Interactions */

@keyframes pulseGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(20, 184, 166, 0.4);
  }
  70% {
    box-shadow: 0 0 0 12px rgba(20, 184, 166, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(20, 184, 166, 0);
  }
}

@keyframes floatSlow {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes heartbeatWave {
  0% { transform: scale(1); opacity: 0.8; }
  15% { transform: scale(1.15); opacity: 1; }
  28% { transform: scale(1); opacity: 0.8; }
  42% { transform: scale(1.2); opacity: 1; }
  70% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.8; }
}

.float-element {
  animation: floatSlow 5s ease-in-out infinite;
}

.pulse-glow-element {
  animation: pulseGlow 2.5s infinite;
}

.heartbeat-icon {
  animation: heartbeatWave 3s ease-in-out infinite;
}

/* Scroll Fade In Animation Classes */
.fade-in-up {
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}
