@keyframes networkFlow{
  to{stroke-dashoffset:-30}
}
@keyframes signalPulse{
  0%{opacity:.38;transform:scale(.72)}
  75%,100%{opacity:0;transform:scale(1.15)}
}
@keyframes packetFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-5px)}
}
@keyframes sceneFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
@keyframes journeyFlow{
  0%{transform:translateX(-100%)}
  55%,100%{transform:translateX(240%)}
}
@keyframes journeyNode{
  0%,80%,100%{transform:translateY(0)}
  86%{transform:translateY(-5px)}
}
@keyframes livePulse{
  0%{box-shadow:0 0 0 0 rgba(22,148,71,.34)}
  75%,100%{box-shadow:0 0 0 8px rgba(22,148,71,0)}
}
@keyframes radarPulse{
  0%{opacity:.65;transform:translate(-50%,-50%) scale(.72)}
  80%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.05)}
}
@keyframes radarSweep{
  to{transform:rotate(360deg)}
}
@keyframes skeletonMove{
  to{background-position:-220% 0}
}
@keyframes speedGrow{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
@keyframes resultOrbit{
  0%{opacity:.32;transform:translate(-50%,-50%) scale(.72)}
  80%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}
}
@keyframes beaconPulse{
  0%{box-shadow:0 0 0 0 currentColor}
  70%,100%{box-shadow:0 0 0 10px transparent}
}
@keyframes deviceSignal{
  0%,100%{opacity:.55;transform:scaleY(.75)}
  50%{opacity:1;transform:scaleY(1.08)}
}
@keyframes spin{to{transform:rotate(360deg)}}

