/* ===========================================================================
   machado.group — Motion
   ---------------------------------------------------------------------------
   Restrained and quick. Mostly opacity + small translate, ease-out. No bounce,
   no spring, no decorative loops (the one exception: a slow status pulse).
   =========================================================================== */

:root {
  /* durations */
  --dur-instant: 80ms; /* @kind other */
  --dur-fast: 120ms; /* @kind other */
  --dur-base: 200ms; /* @kind other */
  --dur-slow: 320ms; /* @kind other */
  --dur-slower: 480ms; /* @kind other */

  /* easing */
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);     /* @kind other */
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);  /* @kind other */
  --ease-in:       cubic-bezier(0.4, 0, 1, 1);     /* @kind other */
  --ease-linear:   linear;                         /* @kind other */

  /* common composed transitions */
  --transition-colors: color var(--dur-fast) var(--ease-standard),
                       background-color var(--dur-fast) var(--ease-standard),
                       border-color var(--dur-fast) var(--ease-standard),
                       box-shadow var(--dur-fast) var(--ease-standard);
  --transition-transform: transform var(--dur-base) var(--ease-standard);
}

/* signature slow pulse for live status lights */
@keyframes mg-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.45; }
}

/* first-tick blink for empty tick-bars (TickBar .is-zero) */
@keyframes tick-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.15; }
}

@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-slower: 0ms; /* @kind other */
  }
}
