@keyframes neonPulse{0%,100%{text-shadow:0 0 10px rgba(0,212,255,0.8),0 0 20px rgba(0,212,255,0.6),0 0 30px rgba(0,212,255,0.4),0 0 40px rgba(0,212,255,0.2)}50%{text-shadow:0 0 20px rgba(0,212,255,1),0 0 30px rgba(0,212,255,0.8),0 0 40px rgba(0,212,255,0.6),0 0 50px rgba(0,212,255,0.4)}}@keyframes dataStream{0%{background-position:0 0}100%{background-position:0 100vh}}@keyframes holographicShimmer{0%{background-position:-200% center}100%{background-position:200% center}}@keyframes circuitBoard{0%{opacity:0.1}50%{opacity:0.3}100%{opacity:0.1}}.loading-spinner{width:50px;height:50px;border:3px solid rgba(0,212,255,0.1);border-top-color:var(--electric-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-dots{display:inline-flex;gap:5px}.loading-dots span{width:10px;height:10px;background:var(--electric-blue);border-radius:50%;animation:dotPulse 1.4s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:0.2s}.loading-dots span:nth-child(3){animation-delay:0.4s}@keyframes dotPulse{0%,80%,100%{transform:scale(0.8);opacity:0.5}40%{transform:scale(1.2);opacity:1}}.glitch-text{position:relative;display:inline-block}.glitch-text::before,.glitch-text::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text::before{animation:glitch-1 0.3s infinite;color:var(--electric-blue);z-index:-1}.glitch-text::after{animation:glitch-2 0.3s infinite;color:var(--accent-cyan);z-index:-2}@keyframes glitch-1{0%,100%{clip-path:inset(0 0 0 0);transform:translate(0)}20%{clip-path:inset(33% 0 40% 0);transform:translate(-2px,2px)}40%{clip-path:inset(20% 0 60% 0);transform:translate(2px,-2px)}60%{clip-path:inset(70% 0 10% 0);transform:translate(-1px,1px)}80%{clip-path:inset(10% 0 80% 0);transform:translate(1px,-1px)}}@keyframes glitch-2{0%,100%{clip-path:inset(0 0 0 0);transform:translate(0)}20%{clip-path:inset(60% 0 20% 0);transform:translate(2px,1px)}40%{clip-path:inset(10% 0 70% 0);transform:translate(-2px,-1px)}60%{clip-path:inset(40% 0 40% 0);transform:translate(1px,2px)}80%{clip-path:inset(80% 0 10% 0);transform:translate(-1px,-2px)}}.typewriter{overflow:hidden;border-right:3px solid var(--electric-blue);white-space:nowrap;animation:typing 3.5s steps(40,end),blink-caret 0.75s step-end infinite}@keyframes typing{from{width:0}to{width:100%}}@keyframes blink-caret{from,to{border-color:transparent}50%{border-color:var(--electric-blue)}}.btn-cyber{position:relative;overflow:hidden;background:linear-gradient(45deg,transparent 30%,rgba(0,212,255,0.1) 50%,transparent 70%);background-size:200% 100%;animation:cyberSweep 3s linear infinite}@keyframes cyberSweep{0%{background-position:-200% center}100%{background-position:200% center}}.btn-pulse{animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,212,255,0.7)}70%{box-shadow:0 0 0 20px rgba(0,212,255,0)}100%{box-shadow:0 0 0 0 rgba(0,212,255,0)}}.card-3d{transform-style:preserve-3d;transition:transform 0.6s}.card-3d:hover{transform:rotateY(10deg) rotateX(-10deg) scale(1.05)}.card-hologram{position:relative;overflow:hidden}.card-hologram::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient( 45deg,transparent,rgba(0,212,255,0.1),transparent,rgba(0,212,255,0.1),transparent );animation:hologramScan 4s linear infinite}@keyframes hologramScan{0%{transform:translateX(-100%) translateY(-100%) rotate(45deg)}100%{transform:translateX(100%) translateY(100%) rotate(45deg)}}.matrix-rain{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0.1;z-index:-1}.matrix-column{position:absolute;top:-100%;font-family:monospace;font-size:20px;color:var(--electric-blue);animation:matrixFall linear infinite}@keyframes matrixFall{to{transform:translateY(calc(100vh + 100%))}}.energy-field{position:absolute;width:100%;height:100%;background:radial-gradient(circle at 20% 50%,rgba(0,212,255,0.1) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(107,70,193,0.1) 0%,transparent 50%),radial-gradient(circle at 50% 100%,rgba(0,255,255,0.1) 0%,transparent 50%);animation:energyPulse 8s ease-in-out infinite}@keyframes energyPulse{0%,100%{opacity:0.3;transform:scale(1)}50%{opacity:0.6;transform:scale(1.1)}}.fade-in-up{opacity:0;transform:translateY(50px);transition:all 0.8s ease}.fade-in-up.visible{opacity:1;transform:translateY(0)}.fade-in-left{opacity:0;transform:translateX(-50px);transition:all 0.8s ease}.fade-in-left.visible{opacity:1;transform:translateX(0)}.fade-in-right{opacity:0;transform:translateX(50px);transition:all 0.8s ease}.fade-in-right.visible{opacity:1;transform:translateX(0)}.scale-in{opacity:0;transform:scale(0.8);transition:all 0.8s ease}.scale-in.visible{opacity:1;transform:scale(1)}.rotate-in{opacity:0;transform:rotate(-180deg) scale(0.5);transition:all 1s ease}.rotate-in.visible{opacity:1;transform:rotate(0) scale(1)}.magnetic-button{transition:all 0.3s ease}.ripple{position:relative;overflow:hidden}.ripple::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,0.5);transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}.ripple:active::after{width:300px;height:300px}.particle-container{position:relative;overflow:hidden}.particle{position:absolute;pointer-events:none;opacity:0;animation:particleFloat 10s linear infinite}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh) rotate(0deg)}10%{opacity:1}90%{opacity:1}100%{opacity:0;transform:translateY(-100vh) rotate(720deg)}}.gradient-shift{background:linear-gradient( -45deg,var(--deep-blue),var(--primary-blue),var(--electric-blue),var(--accent-cyan) );background-size:400% 400%;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.icon-bounce{animation:bounce 1s ease infinite}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.icon-rotate{animation:rotate 2s linear infinite}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-pulse-grow{animation:pulseGrow 1.5s ease-in-out infinite}@keyframes pulseGrow{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}