:root {
    --directory-bg: #080b09;
    --directory-panel: #0d1310;
    --directory-line: rgba(145, 166, 154, 0.14);
    --directory-line-strong: rgba(66, 221, 165, 0.34);
    --directory-text: #edf3ef;
    --directory-muted: #87958d;
    --directory-faint: #56635c;
    --directory-green: #42dda5;
    --directory-amber: #d8b663;
    --directory-font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
    --directory-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

html { background: var(--directory-bg); }

body {
    min-height: 100vh;
    color: var(--directory-text);
    background:
        linear-gradient(180deg, rgba(18, 40, 30, 0.34), transparent 260px),
        var(--directory-bg);
    font-family: var(--directory-font);
}

.directory-header {
    width: min(100%, 1040px);
    margin: 0 auto;
    padding: 22px 18px 16px;
    border-bottom: 1px solid var(--directory-line);
}

.directory-wordmark {
    display: inline-block;
    color: #f6faf7;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none;
}

.directory-wordmark span { color: var(--directory-green); }

.directory-header-note {
    margin: 8px 0 0;
    color: #607069;
    font: 700 9px/1.3 var(--directory-mono);
    letter-spacing: 0.16em;
}

.directory-mode-tabs {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    gap: 28px;
    margin: 0 0 28px;
    border-bottom: 1px solid var(--directory-line);
}

.directory-mode-tab {
    position: relative;
    min-height: 44px;
    padding: 0;
    border: 0;
    color: #69776f;
    background: transparent;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.directory-mode-tab::after {
    content: "";
    position: absolute;
    right: 58%;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: transparent;
}

.directory-mode-tab.is-active {
    color: #f3f7f4;
    font-weight: 800;
}

.directory-mode-tab.is-active::after {
    background: var(--directory-green);
    box-shadow: 0 0 9px rgba(66, 221, 165, 0.42);
}

.directory-letter-grid {
    display: grid;
    grid-template-columns: repeat(9, minmax(30px, 1fr));
    gap: 4px;
    margin: 2px 0 18px;
    padding: 10px 0 14px;
    border-bottom: 1px solid var(--directory-line);
}

.directory-letter-grid[hidden] { display: none; }

.directory-letter {
    min-width: 0;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    color: #728078;
    background: transparent;
    font: 700 12px/1 var(--directory-mono);
    cursor: pointer;
}

.directory-letter:disabled { color: #303a35; cursor: default; }
.directory-letter.is-active { color: #06100c; background: var(--directory-green); }

.touring-entry {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 92px;
    padding: 15px 0;
    border-top: 1px solid var(--directory-line);
}

.touring-avatar {
    width: 64px;
    height: 64px;
    overflow: hidden;
    border: 1px solid rgba(66, 221, 165, 0.23);
    border-radius: 50%;
    background: #07110d;
}

.touring-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.touring-avatar .band-fallback { border-radius: 50%; }

.touring-copy { min-width: 0; }
.touring-name { margin: 0; color: #edf3ef; font-size: 18px; line-height: 1.25; font-weight: 850; }
.touring-meta { margin: 6px 0 0; color: #718178; font-size: 11px; line-height: 1.5; }

.touring-follow {
    min-width: 66px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(66, 221, 165, 0.38);
    border-radius: 999px;
    color: #aef1d5;
    background: transparent;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.touring-follow.is-following {
    color: #07110d;
    background: var(--directory-green);
}

.venue-main {
    width: min(calc(100% - 32px), 750px);
    margin: 0 auto;
    padding: 28px 0 72px;
}

.venue-detail-main {
    width: 100%;
    margin: 0;
    padding: 0 0 calc(88px + env(safe-area-inset-bottom));
    overflow-x: hidden;
}

.venue-page-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: end;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--directory-line);
}

.venue-kicker,
.venue-section-kicker {
    margin: 0 0 8px;
    color: rgba(66, 221, 165, 0.62);
    font: 800 9px/1.4 var(--directory-mono);
    letter-spacing: 0;
}

.venue-page-title,
.venue-detail-title {
    margin: 0;
    color: #f1f5f2;
    font-size: clamp(27px, 5vw, 42px);
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: 0;
}

.venue-page-lead,
.venue-detail-lead {
    max-width: 38rem;
    margin: 10px 0 0;
    color: var(--directory-muted);
    font-size: 13px;
    line-height: 1.7;
}

.venue-mode-tabs { margin: 0; }
.venue-mode-tab[aria-disabled="true"] { color: #39443e; cursor: default; }

.venue-filters {
    display: flex;
    gap: 8px;
    padding: 18px 0 10px;
    overflow-x: auto;
    scrollbar-width: none;
}

.venue-filters::-webkit-scrollbar { display: none; }

.venue-filter {
    flex: 0 0 auto;
    height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(105, 130, 117, 0.24);
    border-radius: 999px;
    color: #7e8d85;
    background: transparent;
    font-size: 11px;
    cursor: pointer;
}

.venue-filter.is-active {
    color: #bcf4dc;
    border-color: rgba(66, 221, 165, 0.42);
    background: rgba(23, 89, 63, 0.18);
}

.venue-directory-meta {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    min-height: 34px;
    padding: 8px 0;
    color: #59665f;
    font: 700 9px/1.5 var(--directory-mono);
}

.venue-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.venue-card {
    position: relative;
    display: block;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(119, 147, 132, 0.16);
    border-radius: 16px;
    color: inherit;
    background: linear-gradient(145deg, #0e100e, #181c18);
    text-decoration: none;
}

.venue-card-ratio { display: block; padding-top: 100%; }

.venue-card-inner {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    border-radius: inherit;
}

.venue-card:focus-visible {
    outline: 2px solid rgba(66, 221, 165, 0.72);
    outline-offset: 3px;
}

.venue-card-photo {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 45% center;
}

.venue-card-logo-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 16%;
}

.venue-card-logo {
    display: block;
    max-width: 50%;
    max-height: 42%;
    border-radius: 16px;
    object-fit: contain;
}

.venue-card-watermark {
    position: absolute;
    top: 8%;
    right: 10%;
    color: #1e221e;
    font-size: 96px;
    line-height: 1;
    font-weight: 900;
}

.venue-card-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(5, 7, 5, 0.14) 0%, rgba(5, 7, 5, 0.14) 38%, rgba(8, 10, 8, 0.72) 68%, rgba(8, 10, 8, 0.88) 100%);
    pointer-events: none;
}

.venue-card-status {
    position: absolute;
    top: 16px;
    left: 16px;
    width: 8px;
    height: 8px;
    border: 1px solid #465149;
    border-radius: 50%;
    background: transparent;
}

.venue-card[data-activity="tonight"] .venue-card-status {
    width: 15px;
    height: 15px;
    border-color: var(--directory-green);
    background: var(--directory-green);
    box-shadow: 0 0 0 8px rgba(66, 221, 165, 0.08), 0 0 16px rgba(66, 221, 165, 0.42);
    animation: venue-breathe 1.8s ease-in-out infinite;
}

.venue-card[data-activity="this_week"] .venue-card-status {
    border-color: #2d8d67;
    background: #2d8d67;
}

.venue-card[data-activity="resident"] .venue-card-status {
    border-color: #56b88d;
    background: #173c2b;
}

.venue-card[data-activity="future"] .venue-card-status { border-color: rgba(66, 221, 165, 0.7); }
.venue-card[data-activity="quiet"] .venue-card-status { width: 6px; height: 6px; border-color: #3a423d; background: #3a423d; }

.venue-card-copy {
    position: absolute;
    right: 16px;
    bottom: 16px;
    left: 16px;
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.venue-card-name {
    display: -webkit-box;
    overflow: hidden;
    color: #f1f5f2;
    font-size: 22px;
    line-height: 1.12;
    font-weight: 900;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.venue-card-meta,
.venue-card-next {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.venue-card-meta { margin-top: 7px; color: #a2ada6; font-size: 13px; line-height: 1.35; }
.venue-card-next { margin-top: 7px; color: #7f8b84; font-size: 13px; line-height: 1.35; }
.venue-card[data-activity="tonight"] .venue-card-next { color: #7fd6a4; }

.venue-card:hover .venue-card-name,
.venue-card:focus-visible .venue-card-name { color: #c9f6e2; }

.venue-row {
    display: none;
}

.venue-row:hover .venue-row-name,
.venue-row:focus-visible .venue-row-name { color: #baf3db; }
.venue-row:focus-visible { outline: none; background: rgba(66, 221, 165, 0.025); }

.venue-activity-dot {
    width: 7px;
    height: 7px;
    border: 1px solid #47544d;
    border-radius: 50%;
}

.venue-row[data-activity="tonight"] .venue-activity-dot {
    border-color: var(--directory-green);
    background: var(--directory-green);
    box-shadow: 0 0 0 7px rgba(66, 221, 165, 0.08), 0 0 14px rgba(66, 221, 165, 0.42);
    animation: venue-breathe 1.8s ease-in-out infinite;
}

.venue-row[data-activity="this_week"] .venue-activity-dot { border-color: var(--directory-green); background: var(--directory-green); }
.venue-row[data-activity="future"] .venue-activity-dot { border-color: rgba(66, 221, 165, 0.66); }
.venue-row[data-activity="quiet"] { opacity: 0.72; }

.venue-row-copy { min-width: 0; }
.venue-row-top { display: flex; align-items: center; gap: 9px; min-width: 0; }
.venue-row-name { margin: 0; overflow-wrap: anywhere; color: #e8eeea; font-size: 18px; line-height: 1.25; font-weight: 850; }
.venue-claimed { flex: 0 0 auto; color: var(--directory-green); font: 700 8px/1 var(--directory-mono); }
.venue-row-summary { margin: 7px 0 0; color: #76847c; font-size: 11px; line-height: 1.5; }
.venue-row-next { margin: 4px 0 0; overflow: hidden; color: #9aa69f; font-size: 12px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.venue-row-arrow { color: rgba(66, 221, 165, 0.62); font-size: 19px; }

.venue-empty,
.venue-loading {
    padding: 58px 14px;
    border-top: 1px solid var(--directory-line);
    color: #68766e;
    text-align: center;
    font-size: 12px;
}

.venue-v2-hero {
    position: relative;
    width: min(100%, 1200px);
    height: clamp(300px, 58vw, 560px);
    margin: 0 auto;
    overflow: hidden;
    background: #101512;
}

.venue-hero-track {
    position: absolute;
    inset: 0;
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
}

.venue-hero-track::-webkit-scrollbar { display: none; }

.venue-hero-slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    margin: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.venue-hero-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.venue-hero-slide img.is-contain {
    object-fit: contain;
    background: #070a08;
}

.venue-v2-hero-shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(3, 7, 5, 0.03) 24%, rgba(3, 7, 5, 0.9) 100%);
    pointer-events: none;
}

.venue-v2-hero.is-text-only {
    height: 270px;
    border-bottom: 1px solid var(--directory-line);
    background: #101713;
}

.venue-v2-hero-copy {
    position: absolute;
    left: max(18px, calc((100% - 960px) / 2));
    right: 18px;
    bottom: 30px;
    z-index: 2;
}

.venue-v2-title {
    max-width: 820px;
    margin: 0;
    overflow-wrap: anywhere;
    color: #f7faf8;
    font-size: clamp(34px, 7vw, 72px);
    line-height: 1.02;
    font-weight: 900;
    text-wrap: balance;
}

.venue-v2-shell {
    width: min(calc(100% - 36px), 960px);
    min-width: 0;
    margin: 0 auto;
}

.venue-identity-strip {
    padding: 22px 0 20px;
    border-bottom: 1px solid var(--directory-line);
}

.venue-identity-tags,
.venue-sound-tags {
    display: flex;
    flex-wrap: wrap;
}

.venue-identity-tags span,
.venue-sound-tag {
    margin: 0 8px 8px 0;
    color: #8fd2b4;
    font: 750 10px/1.4 var(--directory-mono);
}

.venue-identity-tags span::before,
.venue-sound-tag::before {
    content: ">";
    margin-right: 5px;
    color: rgba(66, 221, 165, 0.62);
}

.venue-metro,
.venue-address {
    margin: 5px 0 0;
    color: #89958e;
    font-size: 12px;
    line-height: 1.65;
}

.venue-address { color: #647169; }

.venue-action-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 15px 0 22px;
}

.venue-rhythm-note {
    max-width: 70ch;
    margin: -8px 0 22px;
    color: #9cbcac;
    font-size: 13px;
    line-height: 1.65;
}

.venue-map-primary,
.venue-follow-quiet {
    min-height: 38px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
}

.venue-map-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    border: 1px solid rgba(66, 221, 165, 0.42);
    color: #bdf2d9;
    background: rgba(24, 73, 52, 0.18);
    text-decoration: none;
}

.venue-map-primary[aria-busy="true"] { opacity: 0.62; pointer-events: none; }

.venue-map-primary.is-disabled {
    color: #526159;
    background: #111713;
}

.venue-follow-quiet {
    padding: 0 14px;
    border: 1px solid rgba(66, 221, 165, 0.25);
    color: #9db8aa;
    background: transparent;
    cursor: pointer;
}

.venue-follow-quiet small {
    display: inline;
    margin-left: 6px;
    color: #506058;
    font-size: 8px;
    font-weight: 650;
}

.venue-follow-quiet.is-following {
    color: #bff2db;
    border-color: rgba(66, 221, 165, 0.42);
}

.venue-memory-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 116px;
    align-items: center;
    gap: 14px;
    margin: 0 -18px;
    padding: 23px 18px 25px;
    border-top: 1px solid rgba(66, 221, 165, 0.17);
    border-bottom: 1px solid rgba(66, 221, 165, 0.17);
    background: #0c130f;
}

.venue-memory-copy { min-width: 0; }

.venue-memory-band h2 {
    margin: 0;
    color: #e7eee9;
    font-size: 20px;
    line-height: 1.2;
}

.venue-memory-copy > p:not(.venue-section-kicker) {
    margin: 9px 0 0;
    color: #84ad99;
    font-size: 13px;
    line-height: 1.45;
}

.venue-memory-band.is-anonymous {
    display: block;
}

.venue-memory-band.is-anonymous .venue-memory-copy > p { max-width: 30rem; }

.venue-memory-posters {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 50px;
    gap: 7px;
    width: 116px;
    height: 70px;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.venue-memory-posters::-webkit-scrollbar { display: none; }

.venue-memory-poster {
    position: relative;
    display: block;
    width: 50px;
    height: 70px;
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid rgba(145, 181, 162, 0.2);
    border-radius: 5px;
    color: #dce7e0;
    background: #121b16;
    text-decoration: none;
}

.venue-memory-poster img,
.venue-memory-poster-fallback {
    display: block;
    width: 100%;
    height: 100%;
}

.venue-memory-poster img { object-fit: cover; }

.venue-memory-poster-fallback {
    display: grid;
    place-items: center;
    color: #6ec49b;
    background: linear-gradient(145deg, #15231b, #0b100d);
    font: 760 19px/1 var(--directory-sans);
}

.venue-memory-poster time {
    position: absolute;
    right: 3px;
    bottom: 3px;
    padding: 2px 3px;
    border-radius: 3px;
    color: #d9e7df;
    background: rgba(3, 7, 5, 0.78);
    font: 700 7px/1 var(--directory-mono);
}

.venue-memory-login {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    margin-top: 14px;
    padding: 0 14px;
    border: 1px solid rgba(66, 221, 165, 0.25);
    border-radius: 6px;
    color: #a7d9c1;
    text-decoration: none;
    font-size: 11px;
    font-weight: 760;
}

.venue-v2-section {
    padding: 34px 0;
    border-bottom: 1px solid var(--directory-line);
}

.venue-section-title {
    margin: 0 0 18px;
    color: #eef3f0;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 880;
}

.venue-story > p:last-child,
.venue-opening-note > p:last-child,
.venue-official-statement blockquote,
.venue-find-copy {
    max-width: 48rem;
    margin: 0;
    color: #a3ada7;
    font-size: 14px;
    line-height: 1.9;
}

.venue-opening-note > p:last-child,
.venue-official-statement blockquote {
    margin: 0;
    color: #a3ada7;
    font-size: 14px;
    line-height: 1.9;
}

.venue-official-statement blockquote {
    padding-left: 16px;
    border-left: 2px solid rgba(66, 221, 165, 0.42);
}

.venue-statement-source {
    margin: 12px 0 0;
    color: #5f6c65;
    font: 700 9px/1.5 var(--directory-mono);
}

.venue-official-accounts {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    padding: 18px 0;
    border-bottom: 1px solid var(--directory-line);
}

.venue-official-label { color: #718078; font: 750 10px/1.6 var(--directory-mono); }
.venue-official-accounts div { display: flex; flex-wrap: wrap; gap: 7px 14px; }
.venue-official-accounts div span { color: #9ba69f; font-size: 11px; line-height: 1.6; }
.venue-former-identity { margin: 5px 0 0; color: #718078; font-size: 11px; line-height: 1.5; }

.venue-door-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}

.venue-door-heading .venue-section-title { margin-bottom: 0; }

.venue-door-toggle {
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(66, 221, 165, 0.27);
    border-radius: 6px;
    color: #9fc9b5;
    background: transparent;
    font-size: 11px;
    font-weight: 760;
    cursor: pointer;
}

.venue-find-copy { margin-top: 14px; }
.venue-door-panel { margin-top: 18px; }
.venue-door-panel[hidden] { display: none; }

.venue-door-gallery {
    display: flex;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.venue-door-gallery::-webkit-scrollbar { display: none; }

.venue-door-gallery figure {
    position: relative;
    flex: 0 0 100%;
    min-width: 100%;
    margin: 0;
    overflow: hidden;
    scroll-snap-align: start;
    border: 1px solid rgba(133, 157, 144, 0.14);
    border-radius: 6px;
    background: #101512;
}

.venue-door-gallery img {
    display: block;
    width: 100%;
    height: clamp(180px, 38vw, 260px);
    object-fit: cover;
}

.venue-door-gallery img.is-contain {
    object-fit: contain;
    background: #030403;
}

.venue-door-gallery figcaption {
    position: absolute;
    right: 9px;
    bottom: 8px;
    padding: 3px 6px;
    border-radius: 4px;
    color: #d8e3dc;
    background: rgba(5, 8, 6, 0.78);
    font: 700 9px/1 var(--directory-mono);
}

.venue-door-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 10px;
}

.venue-door-controls button {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(126, 154, 139, 0.22);
    border-radius: 50%;
    color: #a8c9b9;
    background: #0d130f;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.venue-door-controls button:disabled {
    opacity: 0.28;
    cursor: default;
}

.venue-door-controls span { color: #66756d; font: 700 9px/1 var(--directory-mono); }

.venue-blackboard {
    overflow: hidden;
    border: 1px solid rgba(126, 154, 139, 0.16);
    border-radius: 6px;
    background: #090e0b;
}

.venue-schedule-group > h3 {
    margin: 0;
    padding: 12px 15px 10px;
    border-bottom: 1px solid rgba(145, 166, 154, 0.12);
    color: #8fa59a;
    font: 760 10px/1.4 var(--directory-mono);
}

.venue-schedule-group.is-ended {
    border-top: 1px solid rgba(145, 166, 154, 0.14);
    background: rgba(255, 255, 255, 0.006);
}

.venue-empty-schedule a {
    display: inline-flex;
    margin-top: 8px;
    color: #759989;
    text-decoration: none;
    font-size: 11px;
}

.venue-resident-schedule {
    padding: 18px 20px;
    border: 1px solid rgba(66, 221, 165, 0.18);
    border-radius: 6px;
    background: #0a110d;
}

.venue-resident-schedule strong {
    color: #7fd6a4;
    font: 780 10px/1.4 var(--directory-mono);
}

.venue-resident-schedule p {
    margin: 8px 0 0;
    color: #bac9c1;
    font-size: 14px;
    line-height: 1.65;
}

.venue-schedule-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    column-gap: 14px;
    align-items: center;
    min-height: 82px;
    padding: 13px 15px;
    border-bottom: 1px dashed rgba(145, 166, 154, 0.14);
    color: inherit;
    text-decoration: none;
}

.venue-schedule-row:last-child { border-bottom: 0; }
.venue-schedule-row.is-past { opacity: 0.43; }
.venue-schedule-row.is-tonight { background: rgba(66, 221, 165, 0.055); }
.venue-schedule-row time {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    color: var(--directory-green);
    font: 800 11px/1.45 var(--directory-mono);
    white-space: nowrap;
}
.venue-schedule-row time strong { display: block; }
.venue-schedule-row time span { display: block; color: #77867e; }
.venue-schedule-row p {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: #e0e7e2;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 760;
}
.venue-schedule-row small { display: block; margin-top: 5px; color: #647269; font-size: 10px; line-height: 1.4; }
.venue-schedule-row > span { color: rgba(66, 221, 165, 0.52); }
.venue-tonight-mark { color: var(--directory-amber); font: 800 10px/1 var(--directory-mono); }

.venue-history-summary {
    margin: 0 0 18px;
    color: #718078;
    font: 700 11px/1.65 var(--directory-mono);
}

.venue-history-summary strong { color: #c2d0c8; font-size: 15px; }

.venue-artist-wall {
    display: flex;
    flex-wrap: wrap;
    margin: -4px -4px 20px;
}

.venue-artist-pill,
.venue-artist-more {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    margin: 4px;
    padding: 0 12px;
    border: 1px solid rgba(66, 221, 165, 0.19);
    border-radius: 999px;
    background: rgba(10, 18, 13, 0.72);
    color: #a9b9b0;
    text-decoration: none;
    font-size: 11px;
    font-weight: 720;
    cursor: pointer;
}

button.venue-artist-pill { font-family: inherit; }
.venue-artist-pill.is-active {
    border-color: rgba(66, 221, 165, 0.64);
    color: #e4f7ed;
    background: rgba(35, 102, 72, 0.28);
}

.venue-artist-pill b {
    margin-left: 7px;
    color: rgba(66, 221, 165, 0.65);
    font: 800 9px/1 var(--directory-mono);
}

.venue-artist-more {
    color: var(--directory-green);
}

.venue-artist-history {
    margin: -4px 0 20px;
    padding: 14px 16px 2px;
    border-left: 2px solid rgba(66, 221, 165, 0.34);
    background: rgba(10, 18, 13, 0.42);
}
.venue-artist-history > p {
    margin: 0 0 8px;
    color: #8ca098;
    font: 700 11px/1.5 var(--directory-mono);
}
.venue-artist-history > p strong { color: #dce9e2; }

.venue-history-months { border-top: 1px solid rgba(145, 166, 154, 0.1); }
.venue-history-month { border-bottom: 1px solid rgba(145, 166, 154, 0.1); }
.venue-history-month summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    color: #aab8b0;
    cursor: pointer;
    list-style: none;
    font: 760 12px/1.4 var(--directory-mono);
}
.venue-history-month summary::-webkit-details-marker { display: none; }
.venue-history-month summary i {
    color: rgba(66, 221, 165, 0.55);
    font-style: normal;
    transition: transform 160ms ease;
}
.venue-history-month[open] summary i { transform: rotate(45deg); }
.venue-history-month .venue-show-list { border-bottom: 0; }
.venue-history-month .venue-show-row:first-child { border-top-color: rgba(145, 166, 154, 0.07); }

.venue-show-list { border-bottom: 1px solid rgba(145, 166, 154, 0.08); }
.venue-show-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    min-height: 80px;
    padding: 13px 0;
    border-top: 1px solid rgba(145, 166, 154, 0.1);
    color: inherit;
    text-decoration: none;
}
.venue-show-date {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    color: var(--directory-green);
    font: 800 11px/1.45 var(--directory-mono);
    white-space: nowrap;
}
.venue-show-date strong,
.venue-show-date span { display: block; }
.venue-show-copy { min-width: 0; }
.venue-show-name { margin: 0; color: #dfe7e2; font-size: 14px; line-height: 1.45; font-weight: 750; }
.venue-show-artist { margin: 5px 0 0; color: #68766e; font-size: 10px; line-height: 1.45; }
.venue-show-arrow { color: rgba(66, 221, 165, 0.5); font-size: 17px; }

.venue-map-link {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    margin-top: 14px;
    padding: 0 14px;
    border: 1px solid rgba(66, 221, 165, 0.28);
    border-radius: 6px;
    color: #a1d9c0;
    text-decoration: none;
    font-size: 11px;
    font-weight: 750;
}

.venue-research-note { margin: 12px 0 0; color: #5c6a62; font-size: 11px; line-height: 1.65; }

.site-page-footer {
    width: min(calc(100% - 36px), 1040px);
    margin: 0 auto;
    padding: 30px 0 42px;
    border-top: 1px solid var(--directory-line);
    text-align: center;
}

.site-filing {
    margin: 0;
    color: #46534c;
    font: 700 9px/1.5 var(--directory-mono);
    letter-spacing: 0.11em;
}

@keyframes venue-breathe {
    50% { box-shadow: 0 0 0 11px rgba(66, 221, 165, 0.035), 0 0 17px rgba(66, 221, 165, 0.48); }
}

@media (max-width: 560px) {
    .directory-letter-grid { grid-template-columns: repeat(7, minmax(30px, 1fr)); }
    .touring-entry { grid-template-columns: 54px minmax(0, 1fr) auto; gap: 11px; }
    .touring-avatar { width: 54px; height: 54px; }
    .touring-name { font-size: 16px; }
    .venue-page-heading { grid-template-columns: 1fr; align-items: start; }
    .venue-mode-tabs { width: 100%; }
    .venue-v2-hero { height: 318px; }
    .venue-v2-hero.is-text-only { height: 240px; }
    .venue-v2-hero-copy { bottom: 23px; }
    .venue-v2-title { font-size: 36px; }
    .venue-card-copy { right: 12px; bottom: 12px; left: 12px; }
    .venue-card-name { font-size: 18px; }
    .venue-card-meta,
    .venue-card-next { font-size: 11px; }
    .venue-card-status { top: 12px; left: 12px; }
    .venue-card-watermark { font-size: 64px; }
    .venue-action-row { justify-content: flex-start; }
    .venue-door-gallery img { height: 220px; }
    .venue-schedule-row { grid-template-columns: 54px minmax(0, 1fr) auto; column-gap: 10px; padding-right: 11px; padding-left: 11px; }
    .venue-show-row { grid-template-columns: 52px minmax(0, 1fr) auto; column-gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .venue-row[data-activity="tonight"] .venue-activity-dot { animation: none; }
    .venue-card[data-activity="tonight"] .venue-card-status { animation: none; }
    .venue-hero-track { scroll-behavior: auto; }
}
