@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes counter-spin{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes dash-in{0%{stroke-dashoffset:200px}to{stroke-dashoffset:0}}@keyframes pulse-ring{0%{opacity:.6;transform:scale(.92)}50%{opacity:.2;transform:scale(1.06)}to{opacity:.6;transform:scale(.92)}}.anim-float{animation:5s ease-in-out infinite float}.anim-spin{animation:18s linear infinite spin-slow}.anim-counter{animation:18s linear infinite counter-spin}.anim-fade-1{animation:.7s cubic-bezier(.22,1,.36,1) 50ms both fade-up}.anim-fade-2{animation:.7s cubic-bezier(.22,1,.36,1) .2s both fade-up}.anim-fade-3{animation:.7s cubic-bezier(.22,1,.36,1) .35s both fade-up}.anim-fade-4{animation:.7s cubic-bezier(.22,1,.36,1) .5s both fade-up}.anim-pulse-ring{animation:3s ease-in-out infinite pulse-ring}.anim-dash{animation:1.2s ease-out .2s both dash-in}.map-bg{background-color:hsl(var(--background));background-image:radial-gradient(circle at 20% 80%, hsl(var(--primary) / .06) 0%, transparent 50%), radial-gradient(circle at 80% 20%, hsl(var(--primary) / .04) 0%, transparent 50%), linear-gradient(hsl(var(--border) / .25) 1px, transparent 1px), linear-gradient(90deg, hsl(var(--border) / .25) 1px, transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px}.route-line{stroke-dasharray:8 6;stroke-dashoffset:200px}.btn-home{transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.btn-home:after{content:"";background:linear-gradient(120deg, transparent 30%, hsl(var(--background) / .15) 50%, transparent 70%);transition:transform .45s;position:absolute;inset:0;transform:translate(-100%)}.btn-home:hover{box-shadow:0 8px 24px hsl(var(--foreground) / .18);transform:translateY(-2px)}.btn-home:hover:after{transform:translate(100%)}.btn-home:active{transform:translateY(0)scale(.97)}
