@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes slideInFromLeft{0%{transform:translateX(-100px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px rgba(139,92,246,.3)}50%{box-shadow:0 0 40px rgba(139,92,246,.6)}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes blinkCursor{0%,to{border-color:transparent}50%{border-color:#8b5cf6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1);opacity:1}}@keyframes rotateIn{0%{transform:rotate(-1turn) scale(0);opacity:0}to{transform:rotate(0deg) scale(1);opacity:1}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-float{animation:float 4s ease-in-out infinite}.animate-slide-in-left{animation:slideInFromLeft .6s ease-out}.animate-slide-in-right{animation:slideInFromRight .6s ease-out}.animate-glow-pulse{animation:glowPulse 2s ease-in-out infinite}.animate-scale-in{animation:scaleIn .5s ease-out}.animate-bounce-in{animation:bounceIn .8s cubic-bezier(.68,-.55,.265,1.55)}.animate-rotate-in{animation:rotateIn .6s ease-out}.animate-shimmer{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.4) 20%,rgba(255,255,255,.8) 60%,rgba(255,255,255,0));background-size:200% auto;animation:shimmer 2s linear infinite}.animate-gradient{background-size:400% 400%;animation:gradientShift 3s ease infinite}.timeline-card:hover{transform:translateY(-8px) scale(1.02);transition:all .3s cubic-bezier(.4,0,.2,1)}.timeline-card:hover .tech-icon{animation:bounce .6s ease infinite}.timeline-card:hover .commit-hash{animation:shimmer 1s linear infinite}.glass-card{background:rgba(255,255,255,.25);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18)}.neon-glow{filter:drop-shadow(0 0 10px rgba(139,92,246,.5))}.neon-glow:hover{filter:drop-shadow(0 0 20px rgba(139,92,246,.8));transition:filter .3s ease}.bg-element{position:absolute;border-radius:50%;opacity:.1;animation:float 6s ease-in-out infinite}.bg-element:first-child{animation-delay:0s;animation-duration:8s}.bg-element:nth-child(2){animation-delay:2s;animation-duration:10s}.bg-element:nth-child(3){animation-delay:4s;animation-duration:12s}.timeline-line{background:linear-gradient(180deg,#8b5cf6,#06b6d4,#10b981);background-size:100% 200%;animation:gradientShift 4s ease infinite}.timeline-item:first-child{animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.4s}.timeline-item:nth-child(5){animation-delay:.5s}.timeline-item:nth-child(6){animation-delay:.6s}.timeline-item:nth-child(7){animation-delay:.7s}.timeline-item:nth-child(8){animation-delay:.8s}.timeline-item:nth-child(9){animation-delay:.9s}@media (max-width:768px){.timeline-card{transform:none!important}.timeline-card:hover{transform:translateY(-4px)!important}}@media (prefers-color-scheme:dark){.glass-card{background:rgba(17,24,39,.25);border:1px solid rgba(255,255,255,.1)}}