/* Motion for the activity rail (docs/SIDEBAR.md): a hard blink while AwaitingInput, a fast flash while Error. Active and Idle are solid and still — colour alone is the signal. Kept as real CSS rather than Tailwind utilities because both need @keyframes of their own. */ @keyframes maestro-rail-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } } @keyframes maestro-rail-flash { 0%, 100% { opacity: 1; } 15% { opacity: 0.25; } 30% { opacity: 1; } 45% { opacity: 0.25; } 60% { opacity: 1; } } .rail-blink { animation: maestro-rail-blink 1.2s steps(1) infinite; } .rail-flash { animation: maestro-rail-flash 1.4s ease-out infinite; } @media (prefers-reduced-motion: reduce) { .rail-blink, .rail-flash { animation: none; } }