/* ============================================================
   TOOLS · ANIMATIONS
   Reusable @keyframes. Components opt in via `animation-name`.
   Respect prefers-reduced-motion at the consumer side.
   ============================================================ */

@keyframes pulse-glow {
  0%, 100% { filter: brightness(1); }
  50%      { filter: brightness(1.4); }
}

/* `@keyframes pulse-fade` was retired here (chunk 13 §A): its only consumer was the
   `.c-annunciator__tile--blink` alarm modifier, deleted in the same chunk. Do not
   re-add it — no calm user surface should fade-pulse indefinitely (Rule 4). */

@keyframes blink {
  0%, 49%   { opacity: 1; }
  50%, 100% { opacity: 0; }
}

@keyframes scanline-sweep {
  0%   { transform: translateY(-100%); }
  100% { transform: translateY(100%); }
}

@keyframes radar-sweep {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes flicker {
  0%, 100%        { opacity: 1; }
  41%, 43%, 47%   { opacity: 0.85; }
  42%             { opacity: 0.6; }
}

@keyframes boot-type {
  from { width: 0; }
  to   { width: 100%; }
}

/* The `warn` blink keyframe was retired here (chunk 00): no calm state should
   blink indefinitely at the user (Rule 4 / B4). The alarm-blink TOOL is gone,
   so the taskmaster pattern can no longer be expressed at the primitive layer.
   The remaining component-variant quarantine is chunk 13 §A. */
