.signal-stage{position:relative;width:min(100%,370px);aspect-ratio:1;margin-inline:auto;isolation:isolate}
.signal-stage>img{width:100%;height:100%;max-height:none;object-fit:contain}
.signal-base{display:block;width:100%;height:100%}
.signal-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.signal-spark,.signal-halo,.signal-wave,.signal-pixel,.signal-pixel-gold,.signal-trace,.signal-terminal{opacity:0}
.signal-wave{transform-origin:295px 496px}
.signal-trace{stroke-dasharray:.13 1;stroke-dashoffset:1}
.signal-controls{display:flex;justify-content:flex-end;margin-top:-10px;position:relative}
.signal-toggle{font:inherit;font-size:.75rem;color:#bdb3cc;border:0;border-bottom:1px solid #665c74;background:transparent;padding:3px 0;cursor:pointer;line-height:1.5}
.signal-toggle:hover{color:#ead19e;border-color:#d6b364}
.signal-toggle:focus-visible{outline:3px solid #9e75d6;outline-offset:5px}
.signal-toggle[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){
  .signal-ready .signal-spark{animation:signal-spark 7.2s ease-in-out .55s infinite}
  .signal-ready .signal-halo{animation:signal-halo 7.2s ease-out .55s infinite}
  .signal-ready .signal-wave{animation:signal-wave 7.2s cubic-bezier(.25,.5,.5,1) .75s infinite}
  .signal-ready .signal-pixel{animation:signal-pixel 14.4s ease-in-out var(--pixel-delay) infinite}
  .signal-ready .signal-pixel-gold{animation:signal-pixel-gold 14.4s ease-in-out var(--pixel-delay) infinite}
  .signal-ready .signal-trace{animation:signal-trace 14.4s linear var(--trace-delay) infinite}
  .signal-ready .signal-terminal{animation:signal-terminal 14.4s ease-in-out var(--terminal-delay) infinite}
  .signal-paused *{animation-play-state:paused!important}
}
@keyframes signal-spark{
  0%,14%,100%{opacity:0}
  3%,5%{opacity:1}
  8%{opacity:.45}
}
@keyframes signal-halo{
  0%,16%,100%{opacity:0}
  5%{opacity:.9}
}
@keyframes signal-wave{
  0%{opacity:0;transform:scale(.06)}
  4%{opacity:.75}
  22%{opacity:.5;transform:scale(.83)}
  26%,100%{opacity:0;transform:scale(.95)}
}
@keyframes signal-pixel{
  0%,8.5%,100%{opacity:0}
  2%{opacity:.85}
  4.5%{opacity:.4}
}
@keyframes signal-pixel-gold{
  0%,2.5%,10%,100%{opacity:0}
  5.5%{opacity:.6}
}
@keyframes signal-trace{
  0%{opacity:0;stroke-dashoffset:.13}
  1%{opacity:1}
  9.5%{opacity:1;stroke-dashoffset:-1}
  10%,100%{opacity:0;stroke-dashoffset:-1}
}
@keyframes signal-terminal{
  0%,9%,100%{opacity:0}
  2%{opacity:1}
  4.5%{opacity:.5}
}
@media(max-width:850px){.signal-stage{max-width:310px}}
@media(max-width:600px){.signal-stage{max-width:260px}.signal-controls{justify-content:center;margin-top:-8px}}
@media(prefers-reduced-motion:reduce),print{.signal-overlay,.signal-controls{display:none}}
