:root {
  --paper: #f3f0e8; --ink: #11100f; --muted: #6f6a61; --line: #cfc9bd; --panel: #fffdf8;
  --concert: #e02f3e; --film: #1565c0; --comedy: #ffd400; --club: #6a00f4;
  --performance: #00b8d9; --karaoke: #ff65b3; --trivia: #ff7a00; --spoken: #c2187a;
  --conversation: #9bd400; --workshop: #003f5c; --lecture: #4d4ed8; --storytelling: #7a451f;
  --art: #008c4a; --book: #800020; --games: #b983ff; --market: #c28a00; --other: #11100f; --category: var(--other); --category-ink: white;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.45 "DM Sans", system-ui, sans-serif; }
button, input { font: inherit; } button, a { -webkit-tap-highlight-color: transparent; } [hidden] { display: none !important; }
button { color: var(--ink); }
.site-header { min-height: 142px; padding: 10px 15px; display: grid; grid-template-columns: 118px minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: stretch; column-gap: 12px; row-gap: 6px; background: #050505; color: white; border-bottom: 5px solid var(--concert); }
.brand { display: block; grid-row: 1 / 3; align-self: center; line-height: 0; } .brand img { display: block; width: 118px; height: 118px; object-fit: contain; }
.main-nav { min-width: 0; grid-column: 2; grid-row: 2; display: flex; align-items: center; justify-content: space-between; gap: 0; align-self: end; }
.main-nav a { padding: 8px 2px; color: white; font-family: "Inter", sans-serif; font-size: .84rem; font-weight: 900; text-align: center; text-decoration: none; white-space: nowrap; }
.main-nav a[aria-current] { color: #ffeb3b; text-decoration: underline; text-underline-offset: 5px; }
.submit-link { grid-column: 2; grid-row: 1; align-self: start; justify-self: end; padding: 10px 11px; background: var(--concert); color: white; font-family: "Inter", sans-serif; font-size: .84rem; font-weight: 900; text-align: center; text-decoration: none; white-space: nowrap; line-height: 1.15; }
@media (max-width: 759px) {
  .main-nav a { flex: 0 0 auto; padding-inline: 0; }
}
main { max-width: 1240px; margin: 0 auto; padding: 0 15px 64px; }
.intro { padding: 24px 2px 19px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.eyebrow, .results-kicker { margin: 0 0 4px; color: var(--concert); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, h4, p { margin-top: 0; } h1, h2, h3, h4 { font-family: "Space Grotesk", sans-serif; }
h1 { margin-bottom: 0; font-size: clamp(2.25rem, 9vw, 4.8rem); line-height: .94; letter-spacing: -.065em; }
.hero-wordmark { font-family: "Archivo Black", sans-serif; font-size: clamp(3.35rem, 15vw, 7rem); font-weight: 400; line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.venue-page-title { font-family: "Inter", sans-serif; font-weight: 900; font-size: clamp(2.4rem, 9vw, 5.4rem); letter-spacing: -.055em; }
.intro-copy { max-width: 690px; margin: 20px 0 0; color: var(--muted); font-size: .94rem; }
.date-line { display: none; margin: 0; color: var(--muted); }
.quick-dates { position: sticky; top: 0; z-index: 30; display: flex; gap: 7px; overflow-x: auto; margin: 0 -15px; padding: 10px 15px; background: color-mix(in srgb, var(--paper) 94%, transparent); border-block: 1px solid var(--ink); backdrop-filter: blur(12px); scrollbar-width: none; }
.quick-dates, .categories, .range-days { -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
.quick-dates::-webkit-scrollbar, .categories::-webkit-scrollbar { display: none; }
.date-pill { flex: 0 0 auto; min-height: 36px; padding: 6px 12px; background: var(--panel); border: 1px solid var(--ink); border-radius: 0; cursor: pointer; font-weight: 700; font-size: .9rem; }
.date-pill:is(:hover, .is-active) { background: var(--ink); color: white; }
@media (max-width: 759px) {
  .date-pill { min-height: 29px; padding-block: 3px; line-height: 1.35; }
}
.date-picker-pill { position: relative; display: inline-flex; align-items: center; }
.date-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.event-notice { display: grid; gap: 3px; margin: 15px 0 0; padding: 11px 13px; background: #fff1a8; border-left: 6px solid var(--comedy); font-size: .8rem; }
.event-notice strong { font-family: "Space Grotesk", sans-serif; }
.workspace { padding-top: 18px; } .search-wrap { position: relative; }
.search-wrap svg { position: absolute; top: 50%; left: 14px; width: 20px; transform: translateY(-50%); fill: none; stroke: var(--muted); stroke-width: 1.8; }
.search-wrap input { width: 100%; min-height: 49px; padding: 11px 44px; color: var(--ink); background: var(--panel); border: 1px solid var(--ink); border-radius: 0; outline: 0; }
.search-wrap input:focus { box-shadow: 4px 4px 0 var(--concert); }
.clear-search { position: absolute; right: 7px; top: 50%; display: none; width: 35px; height: 35px; transform: translateY(-50%); background: transparent; border: 0; cursor: pointer; font-size: 1.45rem; }
.clear-search.is-visible { display: block; }
.category-section { margin: 16px 0 22px; } .filter-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.filter-heading h2 { margin: 0; font-size: .9rem; } .filter-heading button, .reset-button { padding: 3px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .8rem; text-decoration: underline; }
.categories { display: flex; gap: 6px; overflow-x: auto; margin-inline: -15px; padding: 0 15px 4px; scrollbar-width: none; }
.filter-scroll-hint { margin: 6px 0 0; color: var(--muted); font-size: .76rem; font-weight: 700; }
.category-chip { --category: var(--other); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 37px; padding: 6px 7px 6px 11px; background: var(--panel); border: 1px solid var(--category); border-left-width: 6px; border-radius: 0; cursor: pointer; font-size: .84rem; font-weight: 700; }
.category-chip.is-active { background: var(--category); color: var(--category-ink); }
.filter-count { min-width: 2rem; padding: 2px 6px; background: var(--ink); color: white; text-align: center; font-size: .72rem; line-height: 1.35; }
.category-chip.is-active .filter-count { background: white; color: var(--ink); }
.access-chip { --category: var(--ink); }
.access-chip.is-active { background: var(--ink); color: white; }
.scope-banner { margin-bottom: 17px; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: var(--ink); color: white; }
.scope-banner p { margin: 0; font-weight: 700; } .scope-banner button { flex: 0 0 auto; padding: 3px 0; background: transparent; color: white; border: 0; cursor: pointer; font-size: .78rem; text-decoration: underline; }
.results-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.results-heading h2 { margin: 0; font-family: "Inter", sans-serif; font-size: 1.45rem; font-weight: 900; letter-spacing: -.04em; }
.active-filters { position:sticky;top:var(--quick-bar-height,61px);z-index:28;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:0;padding:5px 0;background:var(--paper);border-bottom:1px solid var(--ink); }
.active-filters > strong { font-family: "Inter", sans-serif; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.active-filter-list { display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;min-width:0;touch-action:pan-x pan-y; }
.active-filter-list::-webkit-scrollbar{display:none}.active-filters>strong{flex:none;font-size:.66rem;letter-spacing:0}.active-filters>.scroll-edge-active{flex:1;min-width:0}.active-filter-list>.active-filter-chip{flex:none;min-height:28px;padding:3px 7px;font-size:.7rem;white-space:nowrap}.scroll-edge-active:has(>.scroll-edge-arrow:not([hidden])){padding-bottom:14px}.scroll-edge-active .scroll-edge-arrow{height:14px;font-size:16px}
.active-filter-chip { --category: var(--other); --category-ink: white; display: inline-flex; align-items: center; gap: 8px; min-height: 31px; padding: 4px 7px 4px 9px; background: var(--category); color: var(--category-ink); border: 1px solid var(--ink); cursor: pointer; font-size: .76rem; font-weight: 800; }
.active-filter-chip b { font-size: 1rem; line-height: 1; }
.active-filter-chip.access { background: var(--ink); color: white; }
.range-days { display: flex; gap: 7px; overflow-x: auto; margin: 12px -15px 16px; padding: 0 15px 5px; scrollbar-width: none; }
.range-days::-webkit-scrollbar { display: none; }
.range-scroll-hint { margin: -11px 0 14px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.filter-scroll-hint, .range-scroll-hint { display: none !important; }
.scroll-edge-wrap { position: relative; min-width: 0; }
.scroll-edge-wrap[hidden] { display: none; }
.scroll-edge-wrap:has(> .scroll-edge-arrow:not([hidden])) { padding-bottom: 22px; }
.scroll-edge-quick { position: sticky; top: 0; z-index: 30; margin-inline: -15px; background: var(--paper); border-block: 1px solid var(--ink); }
.scroll-edge-quick .quick-dates { position: static; margin: 0; border: 0; background: var(--paper); }
.scroll-edge-days { position: sticky; top: calc(var(--quick-bar-height,61px) + var(--active-bar-height,0px)); z-index: 25; margin: 12px 0 16px; padding-top: 8px; background: var(--paper); border-bottom: 1px solid var(--ink); }
.scroll-edge-days .range-days { margin-block: 0; padding-top: 0; }
.scroll-edge-quick:has(> .scroll-edge-arrow:not([hidden])), .scroll-edge-days:has(> .scroll-edge-arrow:not([hidden])) { padding-bottom: 16px; }
.scroll-edge-quick .quick-dates, .scroll-edge-days .range-days { padding-bottom: 2px; }
.scroll-edge-quick .scroll-edge-arrow, .scroll-edge-days .scroll-edge-arrow { height: 16px; font-size: 16px; }
.scroll-edge-wrap.scroll-edge-active:has(>.scroll-edge-arrow:not([hidden])){padding-bottom:14px}
.scroll-edge-days { margin-top: 0; padding-top: 5px; padding-bottom: 5px; }
.scroll-edge-days .range-days { padding-bottom: 0; gap: 6px; }
.scroll-edge-days .range-day-button { min-height: 28px; padding: 3px 7px; font-size: .7rem; gap: 6px; }
.scroll-edge-days .range-day-button strong { font-size: .65rem; padding: 1px 4px; }
.scroll-edge-wrap.scroll-edge-days:has(>.scroll-edge-arrow:not([hidden])) { padding-bottom: 19px; }
.scroll-edge-days .scroll-edge-arrow { height: 14px; font-size: 16px; }
@media (min-width: 1000px) { .active-filters { display: none; } }
.scroll-edge-arrow { position: absolute; bottom: 1px; width: 28px; height: 22px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); font: 700 20px/1 sans-serif; cursor: pointer; box-shadow: none; }
.scroll-edge-arrow[hidden] { display: none !important; }
.scroll-edge-left { left: 0; }
.scroll-edge-right { right: 0; }
.scroll-edge-quick .scroll-edge-left { left: 15px; }
.scroll-edge-quick .scroll-edge-right { right: 15px; }
.scroll-edge-arrow:hover { background: transparent; color: var(--ink); }
.scroll-edge-arrow:focus-visible { outline: 3px solid #246bd2; outline-offset: 3px; }
.scroll-edge-wrap:has(>.scroll-edge-arrow:not([hidden])) { padding-bottom: 10px; }
.scroll-edge-wrap.scroll-edge-quick:has(>.scroll-edge-arrow:not([hidden])),
.scroll-edge-wrap.scroll-edge-days:has(>.scroll-edge-arrow:not([hidden])),
.scroll-edge-wrap.scroll-edge-active:has(>.scroll-edge-arrow:not([hidden])) { padding-bottom: 10px; }
.scroll-edge-quick .quick-dates, .scroll-edge-days .range-days { padding-bottom: 0; }
.active-filters:has(.scroll-edge-arrow:not([hidden])) { padding-bottom: 0; }
.scroll-edge-wrap .scroll-edge-arrow { display: block; bottom: 1px; height: 8px; font: 700 14px/8px sans-serif; text-align: center; pointer-events: none; cursor: default; }
.scroll-edge-quick .scroll-edge-arrow { bottom: 2px; }
@media (min-width: 760px) { .scroll-edge-quick { margin-inline: 0; } }
.range-day-button { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; min-height: 41px; padding: 7px 8px 7px 12px; background: var(--panel); color: var(--ink); border: 1px solid var(--ink); cursor: pointer; font-weight: 800; }
.range-day-button strong { min-width: 1.9rem; padding: 2px 6px; background: var(--ink); color: white; font-size: .74rem; text-align: center; }
.range-day-button:is(:hover, :focus-visible, .is-active) { background: var(--ink); color: white; border-color: var(--ink); }
.range-day-button.is-active strong { background: white; color: var(--ink); }
.search-limit-note { margin: 0 0 12px; padding: 8px 10px; border-left: 4px solid var(--concert); background: #fff3c4; color: var(--ink); font-size: .86rem; font-weight: 700; }
.load-more-wrap { padding: 24px 0 4px; border-top: 3px solid var(--ink); text-align: center; }
.load-more-button { min-height: 49px; padding: 11px 20px; background: var(--ink); color: white; border: 2px solid var(--ink); border-radius: 0; cursor: pointer; font-family: "Inter", sans-serif; font-weight: 900; }
.load-more-button:is(:hover, :focus-visible) { background: var(--concert); border-color: var(--concert); outline: 3px solid var(--ink); outline-offset: 3px; }
.search-prompt { padding: 28px 16px; border-top: 3px solid var(--ink); color: var(--muted); text-align: center; }
.search-prompt p { margin: 0; }
.day-group { border-top: 3px solid var(--ink); }
.day-heading { position: sticky; top: calc(var(--quick-bar-height,61px) + var(--active-bar-height,0px) + var(--day-bar-height,0px)); z-index: 20; display: flex; align-items: baseline; justify-content: space-between; margin: 0; padding: 11px 1px 9px; background: var(--paper); }
.day-heading strong { font-family: "Inter", sans-serif; font-weight: 900; font-size: 1.04rem; text-transform: uppercase; letter-spacing: -.02em; } .day-heading span { font-family: "Inter", sans-serif; font-weight: 900; color: var(--muted); font-size: .78rem; }
.event-row { --category: var(--other); position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 11px; min-height: 108px; padding: 14px 1px; border-top: 1px solid var(--line); }
.event-row.has-image { grid-template-columns: 62px minmax(0, 1fr); }
.event-copy { display: flex; flex-direction: column; min-width: 0; }
.event-copy-text { min-width: 0; }
.event-copy > .event-image-link { float: none; display: block; width: 100%; max-height: none; margin: 0 0 13px; }
.event-copy > .event-image-link .event-image { width: 100%; max-height: none; }
.event-row.has-image .event-venue { display: block; white-space: normal; overflow: visible; text-overflow: clip; }
.event-copy::after { content: ""; display: block; clear: both; }
.event-time { align-self: start; min-height: 52px; padding: 8px 3px 6px; background: var(--category); color: var(--category-ink); text-align: center; font-family: "Space Grotesk", sans-serif; font-weight: 800; font-size: .87rem; line-height: 1.05; }
.event-time.is-all-day { display: grid; place-items: center; padding-inline: 5px; }
.event-time .meridiem { display: block; margin-top: 4px; font-family: "DM Sans", sans-serif; font-size: .64rem; font-weight: 700; letter-spacing: .08em; }
.event-title { margin: -3px 0 5px; font-family: "Inter", sans-serif; font-size: 1.06rem; font-weight: 900; line-height: 1.2; letter-spacing: -.025em; text-transform: none; }
.event-title a { color: var(--ink); text-decoration: none; } .event-title a:hover { color: var(--category); text-decoration: underline; text-decoration-thickness: 2px; }
.event-venue { display: inline-block; max-width: 100%; margin-bottom: 8px; color: var(--muted); font-size: .84rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: underline; text-underline-offset: 2px; }
.event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.meta-tag { padding: 3px 7px; background: #ded9cf; color: var(--ink); border: 0; border-radius: 0; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.meta-tag.category { background: var(--category); color: var(--category-ink); } .meta-tag.label { outline: 1px solid var(--ink); outline-offset: -1px; background: var(--panel); }
.meta-tag.promoter { background: #fff1a8; color: var(--ink); outline: 1px solid var(--ink); outline-offset: -1px; }
.meta-tag.label:is(:hover, :focus-visible), .meta-tag.promoter:is(:hover, :focus-visible) { background: var(--ink); color: white; }
.event-image { display: block; width: 100%; height: auto; max-width: 100%; max-height: none; object-fit: contain; background: var(--panel); box-shadow: 4px 4px 0 var(--category); }
.event-image-link { width: 100%; max-height: none; display: block; align-self: start; line-height: 0; }
.cat-concert { --category: var(--concert); } .cat-film { --category: var(--film); } .cat-comedy { --category: var(--comedy); --category-ink: var(--ink); }
.cat-club { --category: var(--club); } .cat-performance { --category: var(--performance); --category-ink: var(--ink); } .cat-karaoke { --category: var(--karaoke); --category-ink: var(--ink); } .cat-other { --category: var(--other); }
.cat-trivia { --category: var(--trivia); --category-ink: var(--ink); } .cat-spoken { --category: var(--spoken); } .cat-conversation { --category: var(--conversation); --category-ink: var(--ink); }
.cat-workshop { --category: var(--workshop); } .cat-lecture { --category: var(--lecture); } .cat-storytelling { --category: var(--storytelling); }
.cat-art { --category: var(--art); } .cat-book { --category: var(--book); } .cat-games { --category: var(--games); --category-ink: var(--ink); } .cat-market { --category: var(--market); --category-ink: var(--ink); }
.empty-state { padding: 62px 20px; text-align: center; border-top: 3px solid var(--ink); }
.empty-state h3 { margin-bottom: 5px; } .empty-state p { color: var(--muted); }
.empty-state button, .primary-action { display: inline-block; padding: 11px 16px; background: var(--ink); color: white; border: 0; border-radius: 0; cursor: pointer; font-weight: 800; text-decoration: none; }
.detail-view { padding-top: 18px; }
.back-link { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 7px 0; color: var(--ink); background: transparent; border: 0; cursor: pointer; font-weight: 700; }
.event-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.event-toolbar .back-link { margin: 0; }
.event-share { padding: 8px 12px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.event-share:is(:hover,:focus-visible) { background: var(--ink); color: white; }
.share-dialog { width: min(360px, calc(100vw - 32px)); padding: 22px; border: 2px solid var(--ink); background: var(--paper); color: var(--ink); font-family: "DM Sans", sans-serif; box-shadow: 6px 6px 0 var(--ink); }
.share-dialog::backdrop { background: rgb(0 0 0 / .45); }
.share-dialog h2 { margin: 0 0 16px; font-family: "Inter", sans-serif; font-weight: 900; font-size: 1.25rem; }
.share-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.share-options button, .share-options a { display: block; padding: 11px 12px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font: inherit; font-size: .9rem; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; }
.share-options [data-share-copy] { grid-column: 1 / -1; background: var(--ink); color: white; }
.share-options [data-share-native], .share-options [data-share-close] { grid-column: 1 / -1; }
.share-options [data-share-close] { border: 0; padding: 5px; text-decoration: underline; text-underline-offset: 3px; }
.share-options [hidden], .share-link-field[hidden] { display: none !important; }
.share-options :is(button,a):hover { background: var(--ink); color: white; }
.share-link-field { width: 100%; margin-top: 12px; padding: 8px; font: inherit; font-size: .8rem; }
.share-status { min-height: 1.4em; margin: 12px 0 0; font-size: .85rem; }
.share-status:empty { display: none; }
.share-status.is-success { padding: 9px 10px; background: #dff6d8; border-left: 5px solid var(--art); color: var(--ink); font-weight: 800; }
.share-options .share-social { display: flex; align-items: center; justify-content: center; gap: 8px; }
.share-social svg { flex: 0 0 auto; width: 22px; height: 22px; }
.share-help { margin: 12px 0 0; font-size: .8rem; color: var(--muted); }
.detail-shell { border-top: 8px solid var(--category); } .detail-heading { padding: 22px 0 20px; }
.detail-category { display: inline-block; margin-bottom: 11px; padding: 5px 8px; background: var(--category); color: var(--category-ink); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.detail-title { max-width: 900px; font-family: "Inter", sans-serif; font-size: clamp(2.25rem, 10vw, 5.4rem); font-weight: 900; line-height: .96; text-transform: none; overflow-wrap: break-word; }
.detail-title.is-long { font-size: clamp(2rem, 7vw, 4.4rem); line-height: 1.03; letter-spacing: -.025em; }
.detail-title.is-very-long { font-size: clamp(1.85rem, 6vw, 3.8rem); line-height: 1.07; letter-spacing: -.012em; }
.detail-layout { display: grid; gap: 26px; } .detail-poster { display: block; width: auto; height: auto; max-width: min(100%, 480px); max-height: 620px; object-fit: contain; object-position: left top; box-shadow: 8px 8px 0 var(--category); }
.detail-heading{padding-bottom:0}.detail-title-heading{padding:0 0 20px}.detail-title-heading .detail-title{margin-top:0}.detail-media.poster-first{display:flex;justify-content:center;margin:16px 0 26px;padding:0 8px 0 0;grid-column:auto;grid-row:auto}.poster-first .detail-poster{width:auto;height:auto;max-width:100%;max-height:520px;object-fit:contain;object-position:center}
.poster-first~.detail-layout{display:block}
@media (max-width: 759px) {
  .detail-layout { display: flex; flex-direction: column; gap: 18px; }
  .detail-info { display: contents; }
  .detail-facts { order: 1; }
  .detail-labels { order: 2; margin: 0; }
  .detail-labels:empty { display: none; }
  .detail-media { order: 3; padding-right: 8px; }
  .detail-description { order: 4; margin-top: 0; }
  .detail-actions { order: 5; margin: 0; }
}
.detail-facts { display: grid; grid-template-columns: 1fr; border-top: 2px solid var(--ink); }
.detail-fact { padding: 13px 0; border-bottom: 1px solid var(--line); } .detail-fact span { display: block; margin-bottom: 3px; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.detail-fact strong, .detail-fact a { color: var(--ink); font-size: 1.02rem; }
.detail-labels { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0; } .detail-description { margin-top: 24px; white-space: pre-line; overflow-wrap: anywhere; }
.detail-description a { color: var(--category); font-weight: 700; } .detail-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; margin: 28px 0; }
.main-action { display: grid; gap: 5px; } .main-action p { margin: 0; color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.primary-action { min-width: 190px; padding: 15px 19px; display: flex; justify-content: space-between; gap: 25px; background: #f4e72f; color: var(--ink); border: 2px solid var(--ink); box-shadow: 5px 5px 0 var(--ink); font-size: 1.02rem; }
.primary-action:hover { transform: translate(2px, 2px); box-shadow: 3px 3px 0 var(--ink); } .primary-action span { font-size: 1.2rem; }
.venue-more { border-top: 1px solid var(--ink); margin-top: 24px; padding-top: 24px; }
.venue-more-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; max-width: 100%; padding: 14px 18px; border: 2px solid var(--ink); color: var(--ink); background: var(--paper, #f3f0e7); font-weight: 700; text-decoration: none; line-height: 1.4; }
.venue-more-button:hover, .venue-more-button:focus-visible { background: var(--ink); color: white; }
.venue-more-button:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.venue-more-button span { flex-shrink: 0; }
.secondary-action { margin-top: 2px; padding: 13px 15px; color: var(--ink); border: 1px solid var(--ink); font-weight: 700; text-decoration: none; }
.related { margin-top: 38px; padding-top: 18px; border-top: 3px solid var(--ink); } .related h2 { margin-bottom: 12px; font-size: 1.35rem; }
.related-list { display: grid; gap: 8px; } .related-card { display: block; padding: 13px; color: var(--ink); background: var(--panel); border-left: 6px solid var(--category); text-decoration: none; }
.related-card strong { display: block; font-family: "Space Grotesk", sans-serif; } .related-card span { color: var(--muted); font-size: .8rem; }
.venues-view { padding-top: 38px; }
.directory-hero { max-width: 920px; padding-bottom: 28px; border-bottom: 8px solid var(--concert); }
.directory-hero h1 { font-family: "Archivo Black", sans-serif; font-size: clamp(2.8rem, 10vw, 5.6rem); font-weight: 400; letter-spacing: -.06em; }
.directory-hero > p:last-child { max-width: 680px; margin: 18px 0 0; color: var(--muted); }
.venue-directory { display: grid; gap: 34px; padding: 34px 0; }
.venue-letter-group { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 16px; align-items: start; }
.venue-letter { position: sticky; top: 15px; margin: 0; color: var(--concert); font-size: 2rem; line-height: 1; }
.venue-grid { display: grid; gap: 7px; }
.venue-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 50px; padding: 10px 12px; color: var(--ink); background: var(--panel); border-left: 5px solid var(--ink); text-decoration: none; }
.venue-card:is(:hover, :focus-visible) { border-left-color: var(--concert); transform: translateX(3px); }
.venue-card strong { font-family: "Inter", sans-serif; font-weight: 900; letter-spacing: -.02em; }
.venue-card span { flex: 0 0 auto; min-width: 2rem; padding: 2px 6px; background: var(--ink); color: white; text-align: center; font-size: .72rem; }
.about-view { padding-top: 38px; }
.about-hero { max-width: 930px; padding-bottom: 28px; border-bottom: 8px solid var(--concert); }
.about-hero h1 { max-width: 840px; font-family: "Archivo Black", sans-serif; font-weight: 400; letter-spacing: -.06em; }
.about-copy { max-width: 820px; padding: 34px 0 12px; font-size: 1rem; line-height: 1.7; }
.about-copy p { margin-bottom: 20px; }
.about-copy h2 { margin: 38px 0 12px; padding-bottom: 7px; border-bottom: 2px solid var(--line); font-family: "Inter", sans-serif; font-size: 1.55rem; font-weight: 900; letter-spacing: -.025em; }
.about-copy ul { margin: 0 0 24px; padding-left: 22px; } .about-copy li { margin-bottom: 8px; }
.inline-submit-link { color: var(--concert); font-weight: 800; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.about-contact { margin-top: 42px; padding: 20px; background: var(--panel); border-left: 7px solid var(--concert); }
.about-contact h2 { margin-top: 0; } .about-contact p { margin-bottom: 8px; } .about-contact a { color: var(--ink); font-weight: 700; }
footer { padding: 28px 17px 32px; display: grid; gap: 24px; background: var(--ink); color: #c9c5bc; font-size: .78rem; }
footer strong { display: block; margin-bottom: 6px; color: white; font-family: "Space Grotesk", sans-serif; font-size: .9rem; } footer p { margin-bottom: 4px; }
.footer-contact { display: grid; align-content: start; gap: 4px; } .footer-contact a { color: white; }
@media (min-width: 760px) {
  .site-header { min-height: 190px; padding-inline: max(28px, calc((100vw - 1240px) / 2)); grid-template-columns: 166px minmax(0, 1fr) auto; grid-template-rows: 1fr; align-items: stretch; column-gap: 28px; border-bottom-width: 7px; }
  .brand { grid-column: 1; grid-row: 1; }
  .brand img { width: 166px; height: 166px; }
  .main-nav { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: space-between; gap: 0; align-self: end; }
  .main-nav a { padding: 11px 8px; font-size: 1.28rem; }
  .submit-link { grid-column: 3; grid-row: 1; align-self: start; padding: 13px 17px; font-size: 1rem; }
  .date-picker-pill .date-input { width: 1px; height: 1px; pointer-events: none; }
  main { padding-inline: 28px; }
  .intro { padding-block: 46px 30px; } .date-line { display: block; } .quick-dates { margin-inline: 0; padding-inline: 0; }
  .range-days { margin-inline: 0; padding-inline: 0; }
  .workspace { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: clamp(38px, 6vw, 84px); padding-top: 34px; align-items: start; }
  .filters { position: sticky; top: calc(var(--quick-bar-height, 61px) + 15px); } .categories { flex-direction: column; align-items: stretch; overflow: visible; margin: 0; padding: 0; } .category-chip { text-align: left; }
  .event-row { grid-template-columns: 78px minmax(0, 1fr); min-height: 125px; padding-block: 18px; gap: 17px; }
  .event-row.has-image { grid-template-columns: 78px minmax(0, 1fr); } .event-time { min-height: 60px; padding-top: 10px; font-size: 1rem; }
  .event-title { font-size: 1.25rem; }
  .detail-view { padding-top: 28px; } .detail-layout { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); align-items: start; }
  .detail-media { grid-column: 2; grid-row: 1 / span 3; } .detail-info { grid-column: 1; grid-row: 1; }
  .detail-facts { grid-template-columns: repeat(2, 1fr); } .detail-fact { padding-right: 18px; } .related-list { grid-template-columns: repeat(3, 1fr); }
  .venue-directory { gap: 44px; } .venue-letter-group { grid-template-columns: 58px minmax(0, 1fr); gap: 24px; } .venue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  footer { display: flex; justify-content: space-between; padding-inline: max(28px, calc((100vw - 1240px) / 2)); }
}
@media (min-width: 760px) and (max-width: 999px) {
  .main-nav { grid-column: 2 / 4; }
  .workspace { display: block; padding-top: 28px; }
  .filters { position: static; }
  .categories { flex-direction: row; align-items: center; overflow-x: auto; margin-inline: -28px; padding: 0 28px 5px; }
  .category-chip { text-align: center; }
  .event-row.has-image[data-poster-shape="portrait"] .event-copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(285px, 42%); gap: 18px; align-items: start; }
  .event-row.has-image[data-poster-shape="portrait"] .event-copy-text { grid-column: 1; grid-row: 1; }
  .event-row.has-image[data-poster-shape="portrait"] .event-copy > .event-image-link { grid-column: 2; grid-row: 1; margin: 0; }
}
@media (min-width: 1000px) and (max-width: 1099px) {
  .main-nav { grid-column: 2 / 4; }
  .main-nav a { font-size: 1.45rem; }
}
@media (min-width: 1000px) {
  #browse-view .event-row.has-image { grid-template-columns: 78px minmax(0, 1fr) max-content; gap: 20px; }
  .event-copy { display: contents; }
  .event-copy-text { grid-column: 2; min-width: 0; }
  #browse-view .event-copy > .event-image-link { box-sizing: border-box; grid-column: 3; grid-row: 1; float: none; display: flex; justify-self: end; width: fit-content; height: fit-content; max-width: 248px; max-height: 330px; margin: 0; border: 2px solid var(--ink); background: transparent; box-shadow: 6px 6px 0 var(--category); }
  #browse-view .event-copy > .event-image-link .event-image { width: auto; height: auto; max-width: 244px; max-height: 326px; background: transparent; box-shadow: none; }
  #browse-view .event-row.has-image[data-poster-shape="landscape"] .event-image-link { max-width: 330px; }
  #browse-view .event-row.has-image[data-poster-shape="landscape"] .event-image { max-width: 326px; }
  .event-copy::after { display: none; }
  .event-row.has-image .event-venue { display: inline-block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .filters {
    max-height: calc(100dvh - var(--quick-bar-height, 61px) - 30px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
    padding-right: 6px;
    padding-bottom: 8px;
  }
  .filter-scroll-hint { display: none; }
}
@media (hover: hover) and (pointer: fine) {
  .quick-dates, .range-days { cursor: grab; }
  .quick-dates.is-dragging, .range-days.is-dragging { cursor: grabbing; user-select: none; }
}
@media (hover: hover) and (pointer: fine) and (max-width: 999px) {
  .categories { cursor: grab; }
  .categories.is-dragging { cursor: grabbing; user-select: none; }
}
@media (min-width: 1120px) {
  .workspace { grid-template-columns: 280px minmax(0, 1fr); } .event-row { grid-template-columns: 92px minmax(0, 1fr); }
  #browse-view .event-row.has-image { grid-template-columns: 92px minmax(0, 1fr) max-content; }
  #browse-view .event-copy > .event-image-link { max-width: 300px; max-height: 400px; }
  #browse-view .event-copy > .event-image-link .event-image { max-width: 296px; max-height: 396px; }
  #browse-view .event-row.has-image[data-poster-shape="landscape"] .event-image-link { max-width: 400px; }
  #browse-view .event-row.has-image[data-poster-shape="landscape"] .event-image { max-width: 396px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
