.marker-hover-popup .mapboxgl-popup-content{padding:0;border-radius:1rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04),0 0 0 1px rgba(0,0,0,.05);overflow:hidden;animation:popupFadeIn .3s cubic-bezier(.68,-.55,.265,1.55);backdrop-filter:blur(10px);background:rgba(255,255,255,.98)}.marker-hover-popup .mapboxgl-popup-tip{border-top-color:white}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.marker-hover-popup img{transition:transform .3s ease}.marker-hover-popup:hover img{transform:scale(1.05)}.marker-click-popup .mapboxgl-popup-content{padding:0;border-radius:1.2rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.05);max-width:420px;animation:expandIn .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.marker-click-popup .mapboxgl-popup-tip{border-top-color:white}@keyframes expandIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.marker-click-popup button{transition:all .2s ease}.marker-click-popup button:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.marker-click-popup img,.marker-hover-popup img{transition:all .3s ease}@media (max-width:640px){.marker-hover-popup .mapboxgl-popup-content{max-width:280px;border-radius:.75rem}.marker-click-popup .mapboxgl-popup-content{max-width:90vw;border-radius:1rem}}@media (prefers-color-scheme:dark){.marker-click-popup .mapboxgl-popup-content,.marker-hover-popup .mapboxgl-popup-content{background:rgba(30,30,30,.98);color:#e5e5e5}.marker-click-popup .mapboxgl-popup-tip,.marker-hover-popup .mapboxgl-popup-tip{border-top-color:rgb(30,30,30)}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.marker-hover-popup .text-primary{text-shadow:0 0 20px rgba(59,130,246,.5)}.marker-click-popup .mapboxgl-popup-content{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.marker-click-popup .mapboxgl-popup-content::-webkit-scrollbar{width:6px}.marker-click-popup .mapboxgl-popup-content::-webkit-scrollbar-track{background:transparent}.marker-click-popup .mapboxgl-popup-content::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:3px}.marker-hover-popup [class*=backdrop-blur]{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.cluster-hover-popup .mapboxgl-popup-content{padding:0;border-radius:1rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04),0 0 0 1px rgba(0,0,0,.05);overflow:hidden;animation:popupFadeIn .3s cubic-bezier(.68,-.55,.265,1.55);background:rgba(255,255,255,.98);z-index:9999!important}.cluster-hover-popup .mapboxgl-popup-tip{border-top-color:white}.mapboxgl-popup.cluster-hover-popup{z-index:9999!important}.mapboxgl-popup.cluster-hover-popup~.mapboxgl-popup.marker-click-popup{display:none!important}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-fadeOut{animation:fadeOut .3s ease-out forwards}.map-marker-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.cluster-appear{animation:clusterPop .4s cubic-bezier(.68,-.55,.265,1.55)}@keyframes clusterPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-slow{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideInFromTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInFromLeft{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slideInFromRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}.animate-slideInFromTop{animation:slideInFromTop .3s cubic-bezier(.25,.46,.45,.94)}.animate-slideInFromBottom{animation:slideInFromBottom .3s cubic-bezier(.25,.46,.45,.94)}.animate-slideInFromLeft{animation:slideInFromLeft .3s cubic-bezier(.25,.46,.45,.94)}.animate-slideInFromRight{animation:slideInFromRight .3s cubic-bezier(.25,.46,.45,.94)}.mobile-transition{transition:all .3s cubic-bezier(.25,.46,.45,.94)}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-bounceIn{animation:bounceIn .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes slideUpAndGrow{0%{transform:translateY(100%) scale(.95);opacity:.8}to{transform:translateY(0) scale(1);opacity:1}}.animate-slideUpAndGrow{animation:slideUpAndGrow .4s cubic-bezier(.25,.46,.45,.94)}@keyframes tapFeedback{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.animate-tapFeedback{animation:tapFeedback .15s ease-out}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.animate-backdropFadeIn{animation:backdropFadeIn .3s ease-out}@keyframes swipeIndicator{0%,to{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.animate-swipeIndicator{animation:swipeIndicator 2s ease-in-out infinite}