@keyframes floatIn{0%{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 5px rgba(230,184,0,.4)}50%{box-shadow:0 0 25px rgba(230,184,0,.8),0 0 35px rgba(63,81,181,.6)}}.timeline-card{animation:floatIn .6s ease-out forwards;animation-delay:.2s;opacity:0}.timeline-card:nth-child(2n){animation:slideInFromLeft .8s ease-out forwards;animation-delay:.3s}.timeline-card:nth-child(odd){animation:slideInFromRight .8s ease-out forwards;animation-delay:.4s}.timeline-node{animation:pulseGlow 2s ease-in-out infinite}.timeline-node:hover{animation:pulseGlow 1s ease-in-out infinite}.gradient-border{position:relative;background:linear-gradient(45deg,#e6b800,#3f51b5,#004d40);background-size:200% 200%;animation:shimmer 3s ease-in-out infinite}.gradient-border:before{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;background:#fff;border-radius:inherit;z-index:-1}@media (prefers-reduced-motion:no-preference){.timeline-item{opacity:0;transform:translateY(30px);transition:all .6s ease-out}.timeline-item.animate-in{opacity:1;transform:translateY(0)}.timeline-item:nth-child(2n) .timeline-card{transform:translateX(-30px);transition:all .6s ease-out .2s}.timeline-item:nth-child(odd) .timeline-card{transform:translateX(30px);transition:all .6s ease-out .2s}.timeline-item.animate-in .timeline-card{transform:translateX(0)}}.timeline-card:hover{transform:scale(1.02) translateZ(0);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);background:linear-gradient(135deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.85))}.timeline-card:hover .gradient-dot{transform:scale(1.2);box-shadow:0 0 20px rgba(230,184,0,.6)}@media (max-width:768px){.timeline-card{animation:floatIn .5s ease-out forwards}.timeline-item:nth-child(2n) .timeline-card,.timeline-item:nth-child(odd) .timeline-card{transform:translateY(20px)}.timeline-item.animate-in .timeline-card{transform:translateY(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(100px)}50%{opacity:.5;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes menuBackgroundFade{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(20px)}}@keyframes floatingDot{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(-10px);opacity:1}}@keyframes glowPulse{0%,to{box-shadow:0 0 5px rgba(255,153,51,.5)}50%{box-shadow:0 0 20px rgba(255,153,51,.8),0 0 30px rgba(255,153,51,.3)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.mobile-menu-link{animation:slideInFromRight .6s ease-out forwards;opacity:0;transform:translateX(50px)}.mobile-menu-background{animation:menuBackgroundFade .5s ease-out forwards}.floating-particles{animation:floatingDot 2s ease-in-out infinite}.glow-effect{animation:glowPulse 2s ease-in-out infinite}.shimmer-text{background:linear-gradient(90deg,hsla(0,0%,100%,.8),#fff 50%,hsla(0,0%,100%,.8));background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s ease-in-out infinite}.mobile-menu-enter{opacity:0;transform:scale(.95)}.mobile-menu-enter-active{transition:all .3s ease-out}.mobile-menu-enter-active,.mobile-menu-exit{opacity:1;transform:scale(1)}.mobile-menu-exit-active{opacity:0;transform:scale(.95);transition:all .3s ease-in}@media (max-width:480px){.mobile-menu-link{font-size:2rem}}@media (prefers-color-scheme:dark){.mobile-menu-background{background-blend-mode:multiply}}@keyframes spinner-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse-glow{0%,to{opacity:.5;box-shadow:0 0 20px rgba(76,175,80,.5)}50%{opacity:1;box-shadow:0 0 40px rgba(76,175,80,.8)}}@keyframes float-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media (max-width:768px){.loading-spinner-mobile{width:48px;height:48px}}@media (max-width:480px){.loading-spinner-mobile{width:40px;height:40px}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.loading-fade-in{animation:fade-in .3s ease-in-out}.loading-fade-out{animation:fade-out .3s ease-in-out}