.blink{animation:blink 1.1s steps(1) infinite}
.blink2{animation:blink 2.6s linear infinite}
@keyframes blink{0%,55%{opacity:1}56%,100%{opacity:.15}}
.dotR,.dotL{position:absolute;top:-4px;width:10px;height:10px;border-radius:50%}
.dotR{background:#9FD3F1;animation:flowR 2.2s linear infinite}
.dotL{background:#FFFFFF;animation:flowL 2.2s linear infinite;animation-delay:-1.1s}
@keyframes flowR{0%{left:-5px;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:calc(100% - 5px);opacity:0}}
@keyframes flowL{0%{left:calc(100% - 5px);opacity:0}12%{opacity:1}88%{opacity:1}100%{left:-5px;opacity:0}}
.ktile:hover{box-shadow:0 18px 40px rgba(11,21,32,.28)}
.krow + .krow{border-top:1px solid #1C2F41}
.track{background-image:linear-gradient(90deg,#2E4A63 50%,transparent 0);background-size:10px 2px}
.trackDot{position:absolute;top:-5px;left:0;width:12px;height:12px;border-radius:50%;background:#5BADDD;box-shadow:0 0 0 5px rgba(91,173,221,.22);animation:trackRun 7s linear infinite}
@keyframes trackRun{0%{left:0;opacity:0}5%{opacity:1}95%{opacity:1}100%{left:calc(100% - 12px);opacity:0}}
@media (max-width:640px){.track{display:none}}
@media (prefers-reduced-motion:reduce){.pulse,.blink,.blink2{animation:none}.packet,.trackDot,.dotR,.dotL{display:none}}
