/* KOIST v6.0 - Animations */

@keyframes spotlightIn {
  from { opacity: 0; transform: translate(-50%, -50%) translateX(-30px) scale(0.9); }
  to { opacity: 1; transform: translate(-50%, -50%) translateX(0) scale(1.0); }
}
@keyframes spotlightOut {
  from { opacity: 1; transform: translate(-50%, -50%) scale(1.0); }
  to { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
}
@keyframes phonePulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Scroll-triggered fade-in */
.scroll-fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 600ms ease, transform 600ms ease;
}
.scroll-fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .scroll-fade-in { opacity: 1; transform: none; }
  .contact-spotlight { animation: none !important; opacity: 1 !important; transform: translate(-50%,-50%) !important; }
  .hero-particles { display: none !important; }
}
