/* animations.css - keyframes and animation classes (transform & opacity only) */

/* Button hover scale - also in critical; class for non-critical buttons */
.btn-cta-hover:hover {
  transform: scale(1.02);
  opacity: 0.95;
}

.btn-cta-hover:active {
  transform: scale(0.98);
}

/* Floating heart: subtle, slow, calming (CSS only; no layout impact) */
@keyframes floatHeart {
  0%, 100% {
    transform: translateY(0) scale(1);
    opacity: 0.5;
  }
  50% {
    transform: translateY(-8px) scale(1.02);
    opacity: 0.75;
  }
}

/* Hearts stay behind tool card; card has position:relative; z-index:1 */
.love-float-heart {
  position: absolute;
  pointer-events: none;
  font-size: 1.5rem;
  z-index: 0;
  animation: floatHeart 7s ease-in-out infinite;
}

/* Hearts moving bottom to top: smooth, soft, behind card (home hero) */
@keyframes floatHeartUp {
  0% {
    transform: translateY(0) scale(0.9);
    opacity: 0.35;
  }
  15% {
    opacity: 0.55;
  }
  85% {
    opacity: 0.5;
  }
  100% {
    transform: translateY(-120vh) scale(1);
    opacity: 0.25;
  }
}

.love-float-heart-up {
  position: absolute;
  bottom: -1rem;
  left: 0;
  pointer-events: none;
  font-size: 1.25rem;
  z-index: 0;
  animation: floatHeartUp 14s ease-in-out infinite;
}

/* Result section reveal */
@keyframes resultReveal {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.love-result-reveal {
  animation: resultReveal 0.4s ease-out forwards;
}

/* Progress circle does not need keyframes - JS updates --progress; number counter is in JS (requestAnimationFrame) */

/* Nav menu slide (mobile) - max-height/opacity handled in style.css */
