/* Motion is calm and short. A signer under time pressure should never wait on a
   transition, and nothing legal should bounce. No spring easing, no overshoot,
   no scale-up-on-hover. The only long animation in the system is the
   verification progress state, because it is genuinely waiting on a server. */
:root {
  --dur-instant: 80ms; /* @kind other */
  --dur-fast: 120ms; /* @kind other */
  --dur-base: 180ms; /* @kind other */
  --dur-slow: 260ms; /* @kind other */
  --dur-slower: 420ms; /* @kind other */
  --dur-verify-sweep: 1600ms; /* @kind other */

  --ease-out: cubic-bezier(0.22, 0.72, 0.2, 1); /* @kind other */
  --ease-in: cubic-bezier(0.6, 0, 0.9, 0.4); /* @kind other */
  --ease-in-out: cubic-bezier(0.6, 0, 0.28, 1); /* @kind other */
  --ease-linear: linear; /* @kind other */

  --transition-color: color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out); /* @kind other */
  --transition-control: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); /* @kind other */
  --transition-surface: box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); /* @kind other */
  --transition-transform: transform var(--dur-base) var(--ease-out); /* @kind other */
  --transition-enter: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); /* @kind other */

  /* Press feedback is a 1px downward nudge, not a scale. */
  --press-translate: translateY(1px); /* @kind other */
  --enter-rise: translateY(6px); /* @kind other */
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0ms; /* @kind other */
    --dur-base: 0ms; /* @kind other */
    --dur-slow: 0ms; /* @kind other */
    --dur-slower: 0ms; /* @kind other */
    --press-translate: none; /* @kind other */
    --enter-rise: none; /* @kind other */
  }
}
