/* ============================================================
   AYURVIKA — MOTION
   Fluid & premium: gentle ease-out reveals, soft hover lifts,
   never bouncy/gimmicky. Honors reduced-motion.
   ============================================================ */
:root {
  --ease-out:   cubic-bezier(0.22, 1, 0.36, 1);   /* @kind other */
  --ease-soft:  cubic-bezier(0.4, 0, 0.2, 1);     /* @kind other */
  --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1);   /* @kind other */

  --dur-fast:   160ms;  /* @kind other */
  --dur-base:   280ms;  /* @kind other */
  --dur-slow:   520ms;  /* @kind other */
  --dur-reveal: 800ms;  /* @kind other */

  /* hover/press conventions */
  --hover-lift: translateY(-4px); /* @kind other */
  --press:      scale(0.98);      /* @kind other */
}

/* scroll-reveal default state (JS adds .is-in) */
.ayv-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--dur-reveal) var(--ease-out),
              transform var(--dur-reveal) var(--ease-out);
  will-change: opacity, transform;
}
.ayv-reveal.is-in { opacity: 1; transform: none; }

@keyframes ayv-float {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-16px) rotate(4deg); }
}
@keyframes ayv-float-slow {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(22px) rotate(-5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .ayv-reveal { opacity: 1; transform: none; transition: none; }
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; }
}
