@keyframes mapMarkerDrop{0%{opacity:0;transform:translateY(-30px)scale(.6)}60%{opacity:1;transform:translateY(4px)scale(1.05)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes mapMarkerPulse{0%{box-shadow:0 0 #b86b3a80}70%{box-shadow:0 0 0 14px #b86b3a00}to{box-shadow:0 0 #b86b3a00}}.lasso-active{cursor:crosshair!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 20px #0596694d}50%{box-shadow:0 0 30px #05966999}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{opacity:.2;transform:translateY(0)translate(0)}25%{opacity:.4;transform:translateY(-20px)translate(10px)}50%{opacity:.3;transform:translateY(-10px)translate(-5px)}75%{opacity:.5;transform:translateY(-30px)translate(5px)}}@keyframes glow{0%,to{opacity:.3;filter:blur(20px)}50%{opacity:.5;filter:blur(25px)}}.animate-fade-in{animation:.2s ease-out fadeIn}.animate-fade-in-up{animation:.6s cubic-bezier(0,0,.2,1) fadeInUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-in{animation:.4s cubic-bezier(0,0,.2,1) slideIn}.animate-pulse-glow{animation:2s infinite pulseGlow}.animate-scale-in{animation:.4s cubic-bezier(0,0,.2,1) scaleIn}.animate-float{animation:4s ease-in-out infinite float}.animate-glow{animation:3s ease-in-out infinite glow}.animate-shimmer{background:linear-gradient(90deg,#0000,#fff6,#0000) 0 0/200% 100%;animation:2s linear infinite shimmer}@keyframes shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shine{animation:1.5s ease-in-out infinite shine}@keyframes floatUp{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float-up{animation:3s ease-in-out infinite floatUp}.animate-slow-pulse{animation:4s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-slower-pulse{animation:6s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-slowest-pulse{animation:8s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-slow-bounce{animation:3s infinite bounce}.animate-slower-bounce{animation:10s infinite bounce}.animate-slowest-bounce{animation:12s infinite bounce}.animation-delay-1000{animation-delay:1s}.animation-delay-2000{animation-delay:2s}.glass-card{-webkit-backdrop-filter:blur(12px);background:#fff9;border:1px solid #0596691a}.glass-card-emerald{-webkit-backdrop-filter:blur(12px);background:#ecfdf599;border:1px solid #05966933}.glass-card-teal{-webkit-backdrop-filter:blur(12px);background:#f0fdfa99;border:1px solid #0d948833}.glass-card-purple{-webkit-backdrop-filter:blur(12px);background:#faf5ff99;border:1px solid #9333ea33}.gradient-text-primary{background:linear-gradient(90deg,#a15e33,#0d9488);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-accent{background:linear-gradient(90deg,#9333ea,#ec4899);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}@keyframes dialog-enter{0%{opacity:0;transform:scale(.97)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}.animate-dialog-enter{animation:.2s cubic-bezier(.22,1,.36,1) dialog-enter}.stagger-children>*{opacity:0;animation:.4s cubic-bezier(.22,1,.36,1) forwards fadeInUp}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:50ms}.stagger-children>:nth-child(3){animation-delay:.1s}.stagger-children>:nth-child(4){animation-delay:.15s}.stagger-children>:nth-child(5){animation-delay:.2s}@keyframes ai-message-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-message-enter{animation:.28s cubic-bezier(.22,1,.36,1) ai-message-enter}@keyframes ai-cursor-blink{0%,to{opacity:1}50%{opacity:.3}}.ai-cursor-blink{animation:1s ease-in-out infinite ai-cursor-blink}@keyframes ai-dot-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.ai-dot-bounce{animation:1.4s ease-in-out infinite ai-dot-bounce}@keyframes ai-ping{0%{opacity:.8;transform:scale(1)}75%,to{opacity:0;transform:scale(2)}}.ai-ping{animation:1.5s cubic-bezier(0,0,.2,1) infinite ai-ping}@keyframes ai-check-pop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.ai-check-pop{animation:.25s cubic-bezier(.34,1.56,.64,1) ai-check-pop}@keyframes ai-welcome-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.ai-welcome-float{animation:3s ease-in-out infinite ai-welcome-float}@keyframes ai-fab-enter{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.ai-fab-enter{animation:.3s cubic-bezier(.34,1.56,.64,1) ai-fab-enter}@keyframes ai-chat-open{0%{opacity:0;transform:scale(.95)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.ai-chat-open{animation:.25s cubic-bezier(.22,1,.36,1) ai-chat-open}@keyframes ai-feedback-ripple{0%{opacity:.4;transform:scale(.5)}to{opacity:0;transform:scale(2)}}.ai-feedback-ripple{animation:.4s ease-out forwards ai-feedback-ripple}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.stagger-children>*{opacity:1!important;animation:none!important}}
