/* ============================================================
   Tocker — Motion tokens
   Restrained, calm, futuristic. Short confirmations, gentle
   orb pulse. Always honor reduced-motion.
   ============================================================ */

:root {
  /* ---- Duration ---- */
  --dur-fast:   120ms; /* @kind other */ /* hover / press feedback */
  --dur-base:   200ms; /* @kind other */ /* default transitions */
  --dur-slow:   320ms; /* @kind other */ /* confirmation transitions */
  --dur-pulse:  2400ms;/* @kind other */ /* orb pulse cycle */

  /* ---- Easing ---- */
  --ease-out:   cubic-bezier(0.22, 1, 0.36, 1); /* @kind other */ /* calm settle */
  --ease-in-out:cubic-bezier(0.65, 0, 0.35, 1); /* @kind other */
  --ease-soft:  cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */
}

/* Gentle orb pulse — used by VoiceButton when listening */
@keyframes tocker-orb-pulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--signal-40), var(--shadow-orb-soft); }
  50%      { box-shadow: 0 0 0 10px rgba(182, 255, 46, 0); var(--shadow-orb); }
}

/* Soft waveform breathing for "listening" affordances */
@keyframes tocker-listen {
  0%, 100% { opacity: 0.55; transform: scaleY(0.6); }
  50%      { opacity: 1;    transform: scaleY(1); }
}

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