@keyframes scanline{0%{transform:translateY(0)}to{transform:translateY(100vh)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.scanline{position:fixed;top:0;left:0;width:100%;height:2px;background:rgba(0,255,0,.2);opacity:.75;animation:scanline 8s linear infinite;pointer-events:none;z-index:999}.cursor-blink:after{content:"▋";margin-left:.2em;animation:blink 1s steps(1) infinite}.glitch-text{position:relative;animation:glitch .5s linear infinite}.terminal-bg{position:relative;overflow:hidden}.terminal-bg:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,rgba(0,20,0,.15),rgba(0,20,0,.15) 1px,transparent 0,transparent 2px);pointer-events:none}.terminal-bg::-webkit-scrollbar{width:8px}.terminal-bg::-webkit-scrollbar-track{background:rgba(0,20,0,.5)}.terminal-bg::-webkit-scrollbar-thumb{background:rgba(0,255,0,.3);border-radius:4px}.terminal-bg::-webkit-scrollbar-thumb:hover{background:rgba(0,255,0,.5)}.crt-effect{position:relative;overflow:hidden}.crt-effect:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,rgba(0,0,0,0) 0,rgba(0,0,0,.3) 90%,rgba(0,0,0,.5) 100%);pointer-events:none}.scan-line{animation:scan 8s linear infinite}@keyframes scan{0%{transform:translateY(-100vh)}to{transform:translateY(100vh)}}.glitch-text{animation:glitch .3s infinite}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.touch-manipulation{touch-action:manipulation}