/* ==== Animations ==== */

/* Scroll Reveal */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

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

/* Scroll Reveal Class */
.scroll-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.scroll-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Fade In for Hero */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
.hero {
  animation: fadeIn 1.2s ease forwards;
}

/* Card Hover Lift */
.card:hover {
  animation: slideUp 0.4s ease forwards;
}

/* Text Highlight */
.text-primary {
  color: var(--color-primary);
}

/* ==== Utility Animations ==== */
@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}
.pulse {
  animation: pulse 2s infinite;
}

/* ==== Responsive Animations ==== */
@media (prefers-reduced-motion: no-preference) {
  .scroll-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .scroll-reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }
}