@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce-horizontal{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-fade-in{animation:.6s ease-out fade-in}.animate-fade-in-up{animation:.6s ease-out both fade-in-up}.animate-bounce-horizontal{animation:2s infinite bounce-horizontal}.animate-gradient{background-size:200% 200%;animation:3s infinite gradient-shift}.route-card:first-child{animation-delay:0s}.route-card:nth-child(2){animation-delay:.1s}.route-card:nth-child(3){animation-delay:.2s}.route-card:nth-child(4){animation-delay:.3s}.route-card:nth-child(5){animation-delay:.4s}.hover-lift{transition:transform .3s,box-shadow .3s}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.2)}.animate-gradient-text{background:linear-gradient(-45deg,#667eea,#764ba2,#f093fb,#f5576c) 0 0/400% 400%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:4s infinite gradient-shift}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200px 100%;animation:1.5s infinite shimmer}
