/* Fade in animation */
        .fade-in {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
        }
        .fade-in.visible {
            opacity: 1;
            transform: translateY(0);
        }

@keyframes pulse-border {
            0%, 100% { border-color: rgba(212, 175, 55, 0.3); }
            50% { border-color: rgba(212, 175, 55, 0.8); }
        }
        .map-pulse {
            animation: pulse-border 2s ease-in-out infinite;
        }

@keyframes yelp-pulse {
            0%, 100% { box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.4); }
            50% { box-shadow: 0 0 0 8px rgba(212, 175, 55, 0); }
        }
        .yelp-badge {
            animation: yelp-pulse 2.5s ease-in-out infinite;
        }

/* Legend dot pulse */
        @keyframes dot-pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }
        .legend-dot {
            animation: dot-pulse 2s ease-in-out infinite;
        }