    /* ============ DESIGN TOKENS ============ */
    :root,
    [data-theme='light'] {
      --color-bg: #f6f4ef;
      --color-surface: #faf8f4;
      --color-surface-2: #fefcf9;
      --color-surface-offset: #efece5;
      --color-surface-offset-2: #e8e4db;
      --color-surface-dynamic: #ddd9d0;
      --color-divider: #d9d5cc;
      --color-border: #cfc8bd;
      --color-text: #2a2722;
      --color-text-muted: #6b665e;
      --color-text-faint: #a8a399;
      --color-text-inverse: #f6f4ef;
      --color-primary: #3d5a3a;
      --color-primary-hover: #2f472c;
      --color-primary-active: #233718;
      --color-primary-highlight: #c8d6c2;
      --color-accent: #b8860b;
      --color-accent-hover: #9c7407;
      --color-accent-highlight: #efe2c4;
      --color-warning: #964219;
      --color-error: #a12c7b;
      --color-success: #437a22;
      --radius-sm: 0.375rem;
      --radius-md: 0.5rem;
      --radius-lg: 0.75rem;
      --radius-xl: 1.25rem;
      --radius-full: 9999px;
      --transition-interactive: 200ms cubic-bezier(0.16, 1, 0.3, 1);
      --shadow-sm: 0 1px 3px oklch(0.2 0.01 80 / 0.06);
      --shadow-md: 0 4px 16px oklch(0.2 0.01 80 / 0.08);
      --shadow-lg: 0 16px 48px oklch(0.2 0.01 80 / 0.12);
      --header-h: 65px;
      --content-narrow: 640px;
      --content-default: 960px;
      --content-wide: 1200px;
      --content-full: 100%;
      --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
      --font-body: 'Work Sans', 'Helvetica Neue', sans-serif;
      --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
      --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
      --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
      --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
      --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
      --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
      --text-3xl: clamp(2.5rem, 1rem + 4vw, 5rem);
      --text-hero: clamp(3rem, 0.5rem + 7vw, 7rem);
      --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem;
      --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
      --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
    }
    [data-theme='dark'] {
      --color-bg: #141312; --color-surface: #1a1918; --color-surface-2: #1f1e1d;
      --color-surface-offset: #1d1c1b; --color-surface-offset-2: #242321; --color-surface-dynamic: #2b2a28;
      --color-divider: #262523; --color-border: #383634;
      --color-text: #d4d2ce; --color-text-muted: #807c75; --color-text-faint: #5a5752; --color-text-inverse: #1a1918;
      --color-primary: #7ba576; --color-primary-hover: #6a9166; --color-primary-active: #547a50; --color-primary-highlight: #2a3a28;
      --color-accent: #e0b53f; --color-accent-hover: #f0c55a; --color-accent-highlight: #3d3624;
      --color-warning: #bb653b; --color-error: #d163a7; --color-success: #6daa45;
      --shadow-sm: 0 1px 3px oklch(0 0 0 / 0.2); --shadow-md: 0 4px 16px oklch(0 0 0 / 0.3); --shadow-lg: 0 16px 48px oklch(0 0 0 / 0.4);
    }
    @media (prefers-color-scheme: dark) {
      :root:not([data-theme]) {
        --color-bg: #141312; --color-surface: #1a1918; --color-surface-2: #1f1e1d;
        --color-surface-offset: #1d1c1b; --color-surface-offset-2: #242321; --color-surface-dynamic: #2b2a28;
        --color-divider: #262523; --color-border: #383634;
        --color-text: #d4d2ce; --color-text-muted: #807c75; --color-text-faint: #5a5752; --color-text-inverse: #1a1918;
        --color-primary: #7ba576; --color-primary-hover: #6a9166; --color-primary-active: #547a50; --color-primary-highlight: #2a3a28;
        --color-accent: #e0b53f; --color-accent-hover: #f0c55a; --color-accent-highlight: #3d3624;
        --shadow-sm: 0 1px 3px oklch(0 0 0 / 0.2); --shadow-md: 0 4px 16px oklch(0 0 0 / 0.3); --shadow-lg: 0 16px 48px oklch(0 0 0 / 0.4);
      }
    }
    /* ============ BASE ============ */
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:var(--space-16)}
    body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);transition:background-color .4s ease,color .4s ease}
    img{display:block;max-width:100%;height:auto}
    ul[role='list'],ol[role='list']{list-style:none}
    input,button,textarea,select{font:inherit;color:inherit}
    h1,h2,h3,h4,h5,h6{text-wrap:balance;line-height:1.15;font-family:var(--font-display)}
    p,li,figcaption{text-wrap:pretty;max-width:72ch}
    ::selection{background:oklch(from var(--color-primary) l c h / 0.25);color:var(--color-text)}
    :focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
    @media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
    button{cursor:pointer;background:none;border:none}
    a,button,[role='button'],input,textarea,select{transition:color var(--transition-interactive),background var(--transition-interactive),border-color var(--transition-interactive),box-shadow var(--transition-interactive)}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
    .container{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6)}

    /* ============ HEADER ============ */
    .header{position:sticky;top:0;z-index:100;background:oklch(from var(--color-bg) l c h / 0.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-divider);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
    .header--hidden{transform:translateY(-100%)}
    .header--scrolled{box-shadow:var(--shadow-sm)}
    .header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-4)}
    .logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text)}
    .logo__text{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;line-height:1}
    .logo__text small{display:block;font-family:var(--font-body);font-size:var(--text-xs);font-weight:400;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
    .header__nav{display:none;gap:var(--space-8);align-items:center}
    @media(min-width:768px){.header__nav{display:flex}}
    .header__nav a{font-size:var(--text-sm);font-weight:500;text-decoration:none;color:var(--color-text-muted)}
    .header__nav a:hover{color:var(--color-text)}
    .header__actions{display:flex;align-items:center;gap:var(--space-3)}
    .theme-toggle,.share-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface)}
    .theme-toggle:hover,.share-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}

    /* ============ HERO ============ */
    .hero{position:relative;text-align:center;padding-block:clamp(var(--space-20),10vw,var(--space-32));overflow:hidden}
    .hero__bg{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 0%,var(--color-primary-highlight) 0%,transparent 60%),radial-gradient(ellipse at 80% 100%,var(--color-accent-highlight) 0%,transparent 50%),var(--color-bg);opacity:.5}
    .hero__decor{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1;width:600px;max-width:90vw;opacity:.08;pointer-events:none}
    .hero__eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-5)}
    .hero__title{font-size:var(--text-hero);font-weight:500;letter-spacing:-.02em;line-height:1.05;max-width:14ch;margin-inline:auto;margin-bottom:var(--space-6)}
    .hero__title em{font-style:italic;color:var(--color-primary);font-weight:400}
    .hero__subtitle{font-size:var(--text-lg);color:var(--color-text-muted);max-width:52ch;margin-inline:auto;margin-bottom:var(--space-12);line-height:1.5}
    .hero__stats{display:flex;gap:var(--space-12);justify-content:center;flex-wrap:wrap}
    .hero__stat{text-align:center}
    .hero__stat-num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-primary);line-height:1}
    .hero__stat-label{font-size:var(--text-xs);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-top:var(--space-2)}

    /* ============ CONTROLS BAR ============ */
    /* Mobile-first: controls scroll with the page. On mobile the bar stacks into
       several rows (search, toggles, category chips, count) and is far too tall to
       pin without covering half the viewport. */
    .controls{padding-block:var(--space-4) var(--space-5);border-top:1px solid var(--color-divider);background:var(--color-surface);position:static;z-index:50}
    /* Pin only where the bar collapses to one compact row and there is height to spare. */
    @media(min-width:768px) and (min-height:640px){
      .controls{position:sticky;top:var(--header-h);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:top .3s cubic-bezier(.16,1,.3,1)}
      /* When the header retracts on scroll-down, close the gap it leaves behind. */
      .nav-hidden .controls{top:0}
    }
    .controls__row{display:flex;flex-direction:column;gap:var(--space-4)}
    .controls__main{display:flex;flex-direction:column;gap:var(--space-4);align-items:stretch}
    @media(min-width:768px){.controls__main{flex-direction:row;justify-content:space-between;align-items:center}}
    .search-box{position:relative;flex:1;max-width:420px;width:100%}
    .search-box svg{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--color-text-faint);pointer-events:none}
    .search-box input{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface-2);font-size:var(--text-sm);color:var(--color-text)}
    .search-box input::placeholder{color:var(--color-text-faint)}
    .search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-highlight)}
    .controls__right{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
    .view-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-full);overflow:hidden;flex-shrink:0}
    .view-toggle button{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-1)}
    .view-toggle button.active{background:var(--color-primary);color:var(--color-text-inverse)}
    .filter-toggle{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}
    .filter-toggle:hover{border-color:var(--color-text-muted);color:var(--color-text)}
    .filter-toggle--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}
    .filter-badge{background:var(--color-accent);color:#fff;border-radius:var(--radius-full);padding:1px 6px;font-size:10px;font-weight:700;min-width:18px;text-align:center}
    .filter-toggle--active .filter-badge{background:rgba(255,255,255,.3)}

    /* ============ FILTER PANEL ============ */
    .filter-panel{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.16,1,.3,1)}
    .filter-panel--open{max-height:600px}
    .filter-panel__inner{padding-top:var(--space-5);display:grid;grid-template-columns:1fr;gap:var(--space-6)}
    @media(min-width:640px){.filter-panel__inner{grid-template-columns:repeat(2,1fr)}}
    @media(min-width:1024px){.filter-panel__inner{grid-template-columns:repeat(4,1fr)}}
    .filter-group h4{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:var(--space-3)}
    .filter-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;cursor:pointer;font-size:var(--text-sm);color:var(--color-text)}
    .filter-option input{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}
    .filter-option:hover{color:var(--color-primary)}
    .filter-clear{font-size:var(--text-xs);font-weight:600;color:var(--color-accent);text-decoration:none;margin-top:var(--space-3);display:inline-block}
    .filter-clear:hover{color:var(--color-accent-hover)}
    .capacity-chips{display:flex;gap:var(--space-2);flex-wrap:wrap}
    .capacity-chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);cursor:pointer}
    .capacity-chip:hover{border-color:var(--color-text-muted);color:var(--color-text)}
    .capacity-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}

    .filter-chips{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin-top:var(--space-4)}
    .chip{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);letter-spacing:.02em;white-space:nowrap}
    .chip:hover{border-color:var(--color-text-muted);color:var(--color-text)}
    .chip--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}

    .results-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;text-align:center;margin-top:var(--space-3)}
    .results-count strong{color:var(--color-text)}

    /* ============ VENUE GRID ============ */
    .venues{padding-block:var(--space-8) var(--space-24)}
    .venue-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
    @media(min-width:640px){.venue-grid{grid-template-columns:repeat(2,1fr)}}
    @media(min-width:1024px){.venue-grid{grid-template-columns:repeat(3,1fr)}}

    /* ============ VENUE CARD ============ */
    .venue-card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive)}
    .venue-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-text-faint)}
    .venue-card__image{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-surface-offset)}
    .venue-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}
    .venue-card:hover .venue-card__image img{transform:scale(1.05)}
    .venue-card__badge{position:absolute;top:var(--space-3);left:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:oklch(from var(--color-bg) l c h / .85);backdrop-filter:blur(8px);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;color:var(--color-text);text-transform:capitalize}
    .venue-card__share{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;gap:var(--space-1)}
    .share-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:oklch(from var(--color-bg) l c h / .85);backdrop-filter:blur(8px);color:var(--color-text-muted);border:none}
    .share-icon-btn:hover{color:var(--color-primary);background:oklch(from var(--color-bg) l c h / .95)}
    .venue-card__body{padding:var(--space-5);display:flex;flex-direction:column;flex:1;gap:var(--space-3)}
    .venue-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}
    .venue-card__name{font-size:var(--text-lg);font-weight:600;line-height:1.2}
    .venue-card__capacity{flex-shrink:0;font-size:var(--text-xs);font-weight:600;color:var(--color-accent);white-space:nowrap;padding-top:4px}
    .venue-card__location{font-size:var(--text-sm);color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-1)}
    .venue-card__location svg{flex-shrink:0;color:var(--color-text-faint)}
    .venue-card__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.55}
    .venue-card__features{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}
    .venue-card__feature{display:flex;align-items:center;gap:3px;font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-offset)}
    .venue-card__feature svg{color:var(--color-primary);flex-shrink:0}
    .venue-card__footer{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--color-divider);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
    .venue-card__tags{display:flex;gap:var(--space-2);flex-wrap:wrap}
    .venue-card__tag{font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-offset)}

    /* ============ CONTACT SECTION ============ */
    .venue-card__contact{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-divider);display:flex;flex-direction:column;gap:var(--space-2)}
    .venue-card__contact-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}
    .venue-card__contact-row svg{flex-shrink:0;color:var(--color-text-faint)}
    .venue-card__contact-link{color:var(--color-primary);text-decoration:none;font-weight:500;transition:color var(--transition-interactive)}
    .venue-card__contact-link:hover{color:var(--color-primary-hover)}
    .venue-card__contact-text{color:var(--color-text-muted)}
    .venue-card__website-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:600;text-decoration:none;transition:all var(--transition-interactive);cursor:pointer;border:none}
    .venue-card__website-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px)}

    /* ============ MAP VIEW ============ */
    .map-container{display:none;position:relative;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--color-divider);box-shadow:var(--shadow-md)}
    .map-container--active{display:block}
    #map{height:600px;width:100%;background:var(--color-surface-offset)}
    .venues--hidden{display:none}
    .leaflet-popup-content .popup-contact{margin-top:4px;font-size:12px;line-height:1.6}
    .leaflet-popup-content .popup-contact a{color:#3d5a3a;text-decoration:none;font-weight:600}

    /* ============ SHARE MENU ============ */
    .share-menu{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:oklch(0 0 0 / .5);backdrop-filter:blur(4px)}
    .share-menu--open{display:flex}
    .share-menu__panel{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8);max-width:400px;width:90%;box-shadow:var(--shadow-lg);text-align:center}
    .share-menu__title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-5)}
    .share-menu__buttons{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-5)}
    .share-menu__btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted);transition:all var(--transition-interactive)}
    .share-menu__btn:hover{color:var(--color-text);border-color:var(--color-primary);transform:translateY(-2px)}
    .share-menu__link-box{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}
    .share-menu__link-box input{flex:1;border:none;background:none;font-size:var(--text-xs);color:var(--color-text-muted)}
    .share-menu__link-box input:focus{outline:none}
    .share-menu__copy{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:600}
    .share-menu__copy:hover{background:var(--color-primary-hover)}
    .share-menu__close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-muted);background:var(--color-surface-offset)}
    .share-menu__close:hover{color:var(--color-text)}

    /* ============ NO RESULTS ============ */
    .no-results{text-align:center;padding:var(--space-24) var(--space-6);color:var(--color-text-muted)}
    .no-results h3{font-size:var(--text-xl);margin-bottom:var(--space-3);color:var(--color-text)}

    /* ============ FOOTER ============ */
    .footer{border-top:1px solid var(--color-divider);background:var(--color-surface);padding-block:var(--space-16) var(--space-8)}
    .footer__inner{display:flex;flex-direction:column;gap:var(--space-8);align-items:center;text-align:center}
    @media(min-width:768px){.footer__inner{flex-direction:row;justify-content:space-between;text-align:left}}
    .footer__brand{display:flex;align-items:center;gap:var(--space-3)}
    .footer__brand-text{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}
    .footer__tagline{font-size:var(--text-sm);color:var(--color-text-muted)}
    .footer__links{display:flex;gap:var(--space-6);flex-wrap:wrap}
    .footer__links a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none}
    .footer__links a:hover{color:var(--color-text)}
    .footer__copyright{font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;padding-top:var(--space-8);border-top:1px solid var(--color-divider);margin-top:var(--space-8)}

    @keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
    .venue-card{animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) backwards}
    .ornament{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-block:var(--space-4);color:var(--color-text-faint)}
    .ornament::before,.ornament::after{content:'';height:1px;width:60px;background:var(--color-divider)}

    /* Leaflet dark mode tweaks */
    [data-theme='dark'] .leaflet-tile{filter:brightness(.7) invert(1) contrast(1) hue-rotate(180deg) saturate(.3)}
    .leaflet-popup-content-wrapper{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-divider)}
    .leaflet-popup-tip{background:var(--color-surface)}
    .leaflet-popup-content{margin:var(--space-3);font-family:var(--font-body)}
    .leaflet-popup-content strong{font-family:var(--font-display);font-size:var(--text-lg);display:block;margin-bottom:2px}
    .leaflet-popup-content .popup-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:4px}
    .leaflet-popup-content .popup-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
    .leaflet-popup-content .popup-tag{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);background:var(--color-surface-offset);color:var(--color-text-muted)}
    .leaflet-container a.leaflet-popup-close-button{color:var(--color-text-faint)}