/* ============================================================
   Cocoa — brand motion
   A handful of named keyframes the components share. Motion is
   sparse and gentle: a breathing bob, a recording pulse, a blink.
   No easing gymnastics, nothing decorative that loops forever in
   the user's face. Reduced-motion users get stillness.
   ============================================================ */

:root {
  --dur-blink: 1s; /* @kind other */
  --dur-pulse: 0.7s; /* @kind other */
  --dur-bob: 1.8s; /* @kind other */
}

/* recording indicator — a soft scale pump */
@keyframes cocoa-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.16); }
}

/* status blink — hard on/off, no fade curve (pixel feel) */
@keyframes cocoa-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0.4; }
}

/* mascot idle breathing — a 3px vertical bob */
@keyframes cocoa-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

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