/* ════════════════════════════════════════════════════════════════════
   MOTION — Midnight Pop
   Subtle and purposeful only: gentle entrance fades, light parallax,
   tasteful hover rewards. Nothing heavy or distracting.
   ════════════════════════════════════════════════════════════════════ */
:root {
  /* ── Durations ─────────────────────────────────────────────────────── */
  --dur-fast:  140ms;  /* @kind other */ /* hover / press feedback */
  --dur-base:  280ms;  /* @kind other */ /* most transitions */
  --dur-slow:  560ms;  /* @kind other */ /* entrances */
  --dur-xslow: 900ms;  /* @kind other */ /* hero reveals, parallax settle */

  /* ── Easing ────────────────────────────────────────────────────────── */
  --ease-out:    cubic-bezier(0.22, 1, 0.36, 1);   /* @kind other */ /* gentle settle */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);    /* @kind other */
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1); /* @kind other */ /* tasteful overshoot */

  /* ── Semantic transitions ──────────────────────────────────────────── */
  --t-hover: var(--dur-fast) var(--ease-out);
  --t-lift:  var(--dur-base) var(--ease-out);
  --t-enter: var(--dur-slow) var(--ease-out);

  /* ── Hover/press deltas (consistent reward language) ───────────────── */
  --lift-card:  -6px;   /* @kind spacing */ /* translateY on card hover */
  --tilt-card:  4deg;   /* @kind other */ /* max 3D tilt */
  --press-scale: 0.97;  /* @kind other */ /* button press */
}

/* Shared entrance keyframe — fade + gentle rise. Gate with
   [data-enter] + prefers-reduced-motion so print/PDF show end-state. */
@keyframes mp-rise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes mp-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes mp-float {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50%     { transform: translateY(-14px) rotate(2deg); }
}
