/* ============================================================
   MOTION — shipped durations and easings. Mechanical, not
   playful: fast start, firm stop, no overshoot, no bounce.
   ============================================================ */
:root{
  --dur-instant:80ms; /* @kind other */
  --dur-fast:  120ms; /* @kind other */
  --dur-base:  180ms; /* @kind other */
  --dur-slow:  280ms; /* @kind other */
  --dur-live: 1600ms; /* @kind other */

  --ease-out:  cubic-bezier(0.2,0.7,0.2,1); /* @kind other */
  --ease-inout:cubic-bezier(0.4,0,0.2,1); /* @kind other */
  --ease-snap: cubic-bezier(0.1,0.9,0.2,1); /* @kind other */

  --transition-control:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out); /* @kind other */
}
@media (prefers-reduced-motion:reduce){
  :root{
    --dur-instant:0ms; /* @kind other */
    --dur-fast:0ms; /* @kind other */
    --dur-base:0ms; /* @kind other */
    --dur-slow:0ms; /* @kind other */
    --dur-live:0ms; /* @kind other */
  }
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@keyframes mv-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes mv-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes mv-spin{to{transform:rotate(360deg)}}
