@keyframes jitter{0%{transform:translate(0)}25%{transform:translate(2px,1px)}50%{transform:translate(-1px,-2px)}75%{transform:translate(1px,2px)}to{transform:translate(0)}}@keyframes flash-up{0%{background-color:#fff3}to{background-color:transparent}}@keyframes flash-down{0%{background-color:#ff44444d}to{background-color:transparent}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.up{animation:jitter .3s ease-in-out,flash-up .5s ease-out}.down{animation:jitter .3s ease-in-out,flash-down .5s ease-out}.jitter:not(.up):not(.down){animation:jitter .3s ease-in-out}.scanline{position:fixed;top:0;left:0;width:100%;height:2px;background:linear-gradient(transparent,rgba(255,255,255,.2),transparent);animation:scanline 8s linear infinite;pointer-events:none;z-index:1000}.status-pulse{animation:pulse 2s ease-in-out infinite}
