@keyframes float{0%,to{transform:translateY(0) rotate(3deg)}50%{transform:translateY(-10px) rotate(3deg)}}@keyframes float-delayed{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-15px) rotate(-6deg)}}@keyframes float-slow{0%,to{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes data-pulse{0%,to{opacity:.3}50%{opacity:.8}}@keyframes circuit-glow{0%,to{box-shadow:0 0 5px rgba(34,211,238,.3)}50%{box-shadow:0 0 20px rgba(34,211,238,.6)}}@keyframes neural-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.2);opacity:1}}.animate-float{animation:float 6s ease-in-out infinite}.animate-float-delayed{animation:float-delayed 8s ease-in-out infinite}.animate-float-slow{animation:float-slow 10s ease-in-out infinite}.animate-data-pulse{animation:data-pulse 2s ease-in-out infinite}.animate-circuit-glow{animation:circuit-glow 3s ease-in-out infinite}.animate-neural-pulse{animation:neural-pulse 2s ease-in-out infinite}.tech-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.2);transition:all .3s ease}.code-block:hover{transform:scale(1.02);border-color:rgba(34,211,238,.6);transition:all .3s ease}.glitch{position:relative}.glitch:after,.glitch:before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch:before{animation:glitch-1 .5s infinite;color:red;z-index:-1}.glitch:after{animation:glitch-2 .5s infinite;color:#0ff;z-index:-2}@keyframes glitch-1{0%,to{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}}@keyframes glitch-2{0%,to{transform:translate(0)}20%{transform:translate(2px,-2px)}40%{transform:translate(2px,2px)}60%{transform:translate(-2px,-2px)}80%{transform:translate(-2px,2px)}}.matrix-bg{background:linear-gradient(45deg,transparent 30%,rgba(34,211,238,.1) 0,rgba(34,211,238,.1) 70%,transparent 0);background-size:20px 20px;animation:matrix-scroll 20s linear infinite}@keyframes matrix-scroll{0%{background-position:0 0}to{background-position:20px 20px}}.terminal-cursor:after{content:"_";animation:blink 1s step-start infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.progress-bar{background:linear-gradient(90deg,#22d3ee,#1e90ff,#9d4edd);background-size:200% 100%;animation:progress-gradient 2s ease-in-out infinite}@keyframes progress-gradient{0%,to{background-position:0 50%}50%{background-position:100% 50%}}