/* =========================================================
   ANIMATIONS — keyframes + prefers-reduced-motion handling
   ========================================================= */

@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-36px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(36px); } to { opacity: 1; transform: translateX(0); } }
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.float { animation: floatY 4.5s ease-in-out infinite; }

/* Card hover micro-interaction helper class */
.hover-lift { transition: transform .4s cubic-bezier(.22,.9,.3,1), box-shadow .4s ease; }
.hover-lift:hover { transform: translateY(-6px); }

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .hero-slide-bg { transform: none !important; }
  .page-loader { display: none !important; }
  .reveal, .reveal-scale, .reveal-left, .reveal-right {
    opacity: 1 !important; transform: none !important;
  }
  .custom-cursor { display: none !important; }
}
