@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Space+Mono:wght@400;700&display=swap");:root{--cyber-blue:#00ffff;--cyber-pink:#ff00ff;--cyber-green:#00ff00;--cyber-yellow:#ffff00;--cyber-purple:#8a2be2;--cyber-orange:#ff8000;--bg-dark:#0a0a0a;--bg-darker:#050505;--bg-card:#1a1a1a;--font-primary:"Space Mono",monospace;--font-heading:"Orbitron",monospace;--animation-fast:150ms;--animation-normal:300ms;--animation-slow:500ms}@keyframes starShimmer{0%,to{opacity:var(--base-opacity,.6);filter:brightness(1)}33%{opacity:calc(var(--base-opacity, .6) * 1.5);filter:brightness(1.3)}66%{opacity:calc(var(--base-opacity, .6) * .7);filter:brightness(.8)}}@keyframes starFlicker{0%,90%,to{opacity:var(--base-opacity,.5)}15%,25%,35%,45%,5%,55%,65%,75%,85%{opacity:calc(var(--base-opacity, .5) * .3)}10%,20%,30%,40%,50%,60%,70%,80%{opacity:calc(var(--base-opacity, .5) * 1.8)}}@keyframes constellation{0%{opacity:0;transform:scale(.5) rotate(0deg)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}to{opacity:.8;transform:scale(1) rotate(1turn)}}@keyframes neonGlow{0%,to{text-shadow:0 0 10px var(--cyber-blue),0 0 20px var(--cyber-blue),0 0 30px var(--cyber-blue);filter:brightness(1)}50%{text-shadow:0 0 20px var(--cyber-blue),0 0 30px var(--cyber-blue),0 0 40px var(--cyber-blue),0 0 50px var(--cyber-blue);filter:brightness(1.2)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes gridMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}@keyframes float{0%{transform:translateY(100vh) translateX(0) rotate(0deg);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100px) translateX(100px) rotate(1turn);opacity:0}}@keyframes scanLine{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes glitch{0%,to{transform:translate(0);filter:hue-rotate(0deg)}10%{transform:translate(-2px,2px);filter:hue-rotate(90deg)}20%{transform:translate(-2px,-2px);filter:hue-rotate(180deg)}30%{transform:translate(2px,2px);filter:hue-rotate(270deg)}40%{transform:translate(2px,-2px);filter:hue-rotate(1turn)}50%{transform:translate(-2px,2px);filter:hue-rotate(45deg)}60%{transform:translate(-2px,-2px);filter:hue-rotate(135deg)}70%{transform:translate(2px,2px);filter:hue-rotate(225deg)}80%{transform:translate(2px,-2px);filter:hue-rotate(315deg)}90%{transform:translate(-2px,2px);filter:hue-rotate(45deg)}}@keyframes dataCorruption{0%,to{opacity:1;text-shadow:none}25%{opacity:.8;text-shadow:2px 0 #ff00ff,-2px 0 #00ffff}50%{opacity:.9;text-shadow:-2px 0 #00ff00,2px 0 #ffff00}75%{opacity:.7;text-shadow:0 2px #ff00ff,0 -2px #00ffff}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes slideInFromLeft{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromTop{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes zoomOut{0%{opacity:0;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.1)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}@keyframes wobble{0%{transform:rotate(0deg)}15%{transform:rotate(-5deg)}30%{transform:rotate(4deg)}45%{transform:rotate(-3deg)}60%{transform:rotate(2deg)}75%{transform:rotate(-1deg)}to{transform:rotate(0deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes typing{0%{width:0}to{width:100%}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) rotate(0deg)}50%{opacity:1;transform:scale(1) rotate(180deg)}}@keyframes matrixRain{0%{transform:translateY(-100vh);opacity:1}70%{opacity:1}to{transform:translateY(100vh);opacity:0}}@keyframes electricFlow{0%{background-position:0 0}to{background-position:100% 100%}}@keyframes dataStream{0%{transform:translateX(-100%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes textReveal{0%{width:0;opacity:0}50%{width:100%;opacity:.5}to{width:100%;opacity:1}}@keyframes progressFill{0%{width:0}to{width:var(--progress-width,0)}}@keyframes cardEntrance{0%{opacity:0;transform:translateY(30px) rotateX(10deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes patternShift{0%{background-position:0 0}50%{background-position:100% 100%}to{background-position:0 0}}@keyframes scrollIndicator{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes terminalCursor{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes hologram{0%,to{opacity:1;filter:brightness(1) contrast(1)}50%{opacity:.8;filter:brightness(1.2) contrast(1.1)}}@keyframes energyField{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes staticNoise{0%,to{opacity:0}50%{opacity:.1}}.animate-star-twinkle{animation:starTwinkle var(--twinkle-speed,2s) ease-in-out infinite var(--twinkle-delay,0s)}.animate-star-shimmer{animation:starShimmer var(--shimmer-speed,3s) ease-in-out infinite var(--shimmer-delay,0s)}.animate-star-pulse{animation:starPulse var(--pulse-speed,1.5s) ease-in-out infinite var(--pulse-delay,0s)}.animate-star-flicker{animation:starFlicker var(--flicker-speed,4s) linear infinite var(--flicker-delay,0s)}.animate-constellation{animation:constellation var(--constellation-speed,8s) ease-in-out infinite var(--constellation-delay,0s)}.animate-neon-glow{animation:neonGlow 2s ease-in-out infinite alternate}.animate-blink{animation:blink 1s infinite}.animate-grid-move{animation:gridMove 20s linear infinite}.animate-float{animation:float linear infinite}.animate-scan-line{animation:scanLine 2s linear infinite}.animate-glitch{animation:glitch .5s ease-in-out}.animate-pulse-cyber{animation:pulse 2s ease-in-out infinite}.animate-slide-in-left{animation:slideInFromLeft .6s ease-out}.animate-slide-in-right{animation:slideInFromRight .6s ease-out}.animate-slide-in-top{animation:slideInFromTop .6s ease-out}.animate-slide-in-bottom{animation:slideInFromBottom .6s ease-out}.animate-fade-in{animation:fadeIn .6s ease-in}.animate-fade-in-up{animation:fadeInUp .6s ease-out}.animate-fade-in-down{animation:fadeInDown .6s ease-out}.animate-zoom-in{animation:zoomIn .6s ease-out}.animate-zoom-out{animation:zoomOut .6s ease-out}.animate-bounce-in{animation:bounceIn .8s ease-out}.animate-rotate{animation:rotate 2s linear infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-wobble{animation:wobble 1s ease-in-out}.animate-heartbeat{animation:heartbeat 1.5s ease-in-out infinite}.animate-typing{animation:typing 2s steps(40)}.animate-sparkle{animation:sparkle 1.5s ease-in-out infinite}.animate-matrix-rain{animation:matrixRain 3s linear infinite}.animate-electric-flow{animation:electricFlow 2s linear infinite}.animate-data-stream{animation:dataStream 3s linear infinite}.animate-static-noise{animation:staticNoise .1s infinite}.star-field{position:fixed;inset:0;z-index:10}.star,.star-field{pointer-events:none}.star{position:absolute;border-radius:50%}.star-tiny{width:1px;height:1px}.star-small{width:2px;height:2px}.star-medium{width:3px;height:3px}.star-large{width:4px;height:4px}.star-cyan{background-color:var(--cyber-blue);--star-color:var(--cyber-blue)}.star-magenta{background-color:var(--cyber-pink);--star-color:var(--cyber-pink)}.star-lime{background-color:var(--cyber-green);--star-color:var(--cyber-green)}.star-yellow{background-color:var(--cyber-yellow);--star-color:var(--cyber-yellow)}.star-white{background-color:#ffffff;--star-color:#ffffff}.star-orange{background-color:var(--cyber-orange);--star-color:var(--cyber-orange)}.skill-card-glitch{position:relative;transition:all .3s ease}.skill-card-glitch:hover{animation:glitch .3s ease-in-out}.skill-card-glitch:hover .skill-title{animation:dataCorruption .5s ease-in-out}.skill-card-glitch:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 30%,rgba(0,255,255,.1) 50%,transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:1}.skill-card-glitch:hover:before{opacity:1;animation:scanLine .6s ease-in-out}.skill-card-glitch:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(255,0,255,.03) 0,rgba(255,0,255,.03) 4px);opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:2}.skill-card-glitch:hover:after{opacity:1}.glitch-intense:hover{animation:glitch .2s ease-in-out infinite}.glitch-subtle:hover{animation:glitch .5s ease-in-out}.text-glitch:hover{animation:dataCorruption .3s ease-in-out}.hover-glow:hover{box-shadow:0 0 20px var(--cyber-blue);transition:box-shadow var(--animation-normal) ease}.hover-lift:hover{transform:translateY(-4px)}.hover-lift:hover,.hover-scale:hover{transition:transform var(--animation-normal) ease}.hover-scale:hover{transform:scale(1.05)}.hover-rotate:hover{transform:rotate(5deg);transition:transform var(--animation-normal) ease}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.delay-1000{animation-delay:1s}.duration-fast{animation-duration:var(--animation-fast)}.duration-normal{animation-duration:var(--animation-normal)}.duration-slow{animation-duration:var(--animation-slow)}.stagger-children>*{animation-delay:calc(var(--stagger-delay, .1s) * var(--stagger-index, 0))}@keyframes slideInOnScroll{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.scroll-animate{opacity:0;transform:translateY(50px);transition:opacity .6s ease,transform .6s ease}.scroll-animate.in-view{opacity:1;transform:translateY(0)}.cyber-grid{background-image:linear-gradient(rgba(0,255,255,.1) 1px,transparent 0),linear-gradient(90deg,rgba(0,255,255,.1) 1px,transparent 0);background-size:50px 50px;animation:gridMove 20s linear infinite}.scan-line{animation:scanLine 2s linear infinite}.cursor-blink:after{content:"_";animation:blink 1s infinite;color:var(--cyber-green)}.particle{animation:float linear infinite}.cyber-btn{position:relative;overflow:hidden;transition:all var(--animation-normal) ease;cursor:pointer}.cyber-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,255,255,.3)}.cyber-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--cyber-blue),transparent);transition:left .5s;z-index:-1}.cyber-btn:hover:before{left:100%}.cyber-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--cyber-blue);z-index:-2;transform:scaleX(0);transform-origin:left;transition:transform var(--animation-normal) ease}.cyber-btn:hover:after{transform:scaleX(1)}.loading-spinner{animation:spin 1s linear infinite}.text-reveal{animation:textReveal 2s ease-in-out}.progress-fill{animation:progressFill 2s ease-out}.card-entrance{animation:cardEntrance .8s ease-out}.pattern-shift{animation:patternShift 10s ease-in-out infinite}.scroll-indicator{animation:scrollIndicator 2s ease-in-out infinite}.terminal-cursor{animation:terminalCursor 1s infinite}.hologram-effect{animation:hologram 3s ease-in-out infinite}.energy-field{background:linear-gradient(45deg,transparent,rgba(0,255,255,.1),transparent,rgba(255,0,255,.1),transparent);background-size:400% 400%;animation:energyField 4s ease infinite}.skill-card-entrance{opacity:0;transform:translateY(20px) scale(.95);transition:all .7s cubic-bezier(.4,0,.2,1);transition-delay:var(--entrance-delay,0s);will-change:transform,opacity}.skill-card-entrance.visible{opacity:1;transform:translateY(0) scale(1)}@keyframes skillEntrance{0%{opacity:0;transform:translateY(20px) scale(.95)}50%{opacity:.7;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}.skill-card-hardware-accelerated{opacity:0;transform:translate3d(0,20px,0) scale(.95);transition:all .7s cubic-bezier(.4,0,.2,1);transition-delay:var(--entrance-delay,0s);backface-visibility:hidden;perspective:1000px}.skill-card-hardware-accelerated.visible{opacity:1;transform:translateZ(0) scale(1)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-float,.animate-grid-move,.animate-scan-line,.animate-star-flicker,.animate-star-pulse,.animate-star-shimmer,.animate-star-twinkle,.particle{animation:none!important}}@media (prefers-contrast:high){:root{--cyber-blue:#00ffff;--cyber-pink:#ff00ff;--cyber-green:#00ff00;--cyber-yellow:#ffff00}}@media print{*{animation:none!important;transition:none!important}.cyber-grid,.particle,.scan-line,.star{display:none!important}}@keyframes starTwinkle{0%,to{opacity:.3;transform:scale(1)}25%{opacity:1;transform:scale(1.2)}50%{opacity:.1;transform:scale(.8)}75%{opacity:.8;transform:scale(1.1)}}@keyframes starPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}@keyframes neonGlowSubtle{0%,to{text-shadow:0 0 5px var(--cyber-blue),0 0 10px var(--cyber-blue);filter:brightness(1)}50%{text-shadow:0 0 8px var(--cyber-blue),0 0 15px var(--cyber-blue),0 0 20px var(--cyber-blue);filter:brightness(1.1)}}@keyframes neonGlowMinimal{0%,to{text-shadow:0 0 2px var(--cyber-blue),0 0 4px var(--cyber-blue);filter:brightness(1)}50%{text-shadow:0 0 4px var(--cyber-blue),0 0 8px var(--cyber-blue);filter:brightness(1.05)}}@keyframes colorPulse{0%,to{color:var(--cyber-blue);filter:brightness(1)}50%{color:var(--cyber-blue);filter:brightness(1.2)}}.animate-neon-glow-subtle{animation:neonGlowSubtle 2s ease-in-out infinite alternate}.animate-neon-glow-minimal{animation:neonGlowMinimal 2s ease-in-out infinite alternate}.animate-color-pulse{animation:colorPulse 2s ease-in-out infinite alternate}.animate-no-glow{animation:none}.text-glow-subtle{text-shadow:0 0 3px var(--cyber-blue),0 0 6px var(--cyber-blue)}.text-glow-minimal{text-shadow:0 0 1px var(--cyber-blue),0 0 3px var(--cyber-blue)}.text-no-glow{text-shadow:none}