.signal-stage { width:190px; height:180px; max-width:100%; margin:0 auto; }
.signal-drift { width:100%; height:100%; }
#signal-mark { display:block; width:100%; height:100%; overflow:visible; }
.signal-flow { animation:signal-flow var(--signal-flow-duration,10s) linear infinite; }
.signal-breathe { animation:signal-breathe var(--signal-breathe-duration,7s) ease-in-out infinite; }
@keyframes signal-flow { to { stroke-dashoffset:-108; } }
@keyframes signal-breathe { 0%,100% { opacity:.12; } 50% { opacity:.34; } }
.signal-still .signal-flow,.signal-still .signal-breathe { animation-play-state:paused; }
@media(prefers-reduced-motion:reduce) { .signal-flow,.signal-breathe { animation:none; } }
