:root{
--duration-instant:90ms; /* @kind other */
--duration-fast:160ms; /* @kind other */
--duration-base:240ms; /* @kind other */
--duration-slow:420ms; /* @kind other */
--duration-reveal:700ms; /* @kind other */
--duration-drift:14s; /* @kind other */

/* Easings — everything decelerates. Nothing bounces, nothing overshoots. */
--ease-out:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-in-out:cubic-bezier(.45,.05,.55,.95); /* @kind other */
--ease-entrance:cubic-bezier(.16,.84,.44,1); /* @kind other */
--ease-linear:linear; /* @kind other */

--transition-hover:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out); /* @kind other */
--transition-lift:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out); /* @kind other */
--reveal-shift:18px;
}

@keyframes mm-rise{from{opacity:0;transform:translateY(var(--reveal-shift))}to{opacity:1;transform:none}}
@keyframes mm-fade{from{opacity:0}to{opacity:1}}
@keyframes mm-draw{from{stroke-dashoffset:var(--draw-length,600)}to{stroke-dashoffset:0}}
@keyframes mm-drift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-10px,0)}100%{transform:translate3d(0,0,0)}}
@keyframes mm-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
