/* keyframes.css —— 动画定义唯一来源（design-spec §1.2 verbatim，7 个）
   动画的 class 绑定在组件 CSS 中；本文件只定义 @keyframes 与降级。 */

@keyframes blink     { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes ripple    { 0%{transform:scale(1);opacity:0.6} 100%{transform:scale(2.6);opacity:0} }
@keyframes marquee   { 0%{transform:translateX(0)} 100%{transform:translateX(-25%)} }
@keyframes fadeIn    { from{opacity:0} to{opacity:1} }
@keyframes slideUp   { from{opacity:0;transform:translateY(24px) scale(0.97)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes scanPulse { 0%,100%{opacity:0.3;transform:scale(1)} 50%{opacity:0.7;transform:scale(1.02)} }
@keyframes arcDash    { from{stroke-dashoffset:600} to{stroke-dashoffset:0} }

/* L3 兜底：动效敏感用户全降级（master §4 L3） */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
