/* ==========================================================================
   LoveConnect - Animations & Keyframes
   ========================================================================== */

@keyframes pulseGlow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(45, 106, 79, 0.4);
  }
  50% {
    box-shadow: 0 0 25px 8px rgba(197, 168, 128, 0.25);
  }
}

@keyframes pulseGreen {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6);
  }
  50% {
    box-shadow: 0 0 25px 8px rgba(37, 211, 102, 0.3);
  }
}

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

@keyframes floatReverse {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(10px) rotate(-3deg);
  }
}

@keyframes heartBeat {
  0% {
    transform: scale(1);
  }
  14% {
    transform: scale(1.15);
  }
  28% {
    transform: scale(1);
  }
  42% {
    transform: scale(1.15);
  }
  70% {
    transform: scale(1);
  }
}

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

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

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(16px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Utility Animation Classes */
.anim-pulse-pink {
  animation: pulseGlow 3s infinite ease-in-out;
}

.anim-pulse-green {
  animation: pulseGreen 2.5s infinite ease-in-out;
}

.anim-float {
  animation: floatSlow 4s infinite ease-in-out;
}

.anim-float-rev {
  animation: floatReverse 5s infinite ease-in-out;
}

.anim-heartbeat {
  animation: heartBeat 2s infinite ease-in-out;
}

.fade-in-up {
  animation: fadeInUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
