:root {
  --ink: #10252c;
  --ink-soft: #3f5358;
  --muted: #6d7a7c;
  --paper: #f4f1e9;
  --paper-deep: #e9e4d8;
  --panel: #fffdf8;
  --navy: #0e3340;
  --navy-deep: #08252f;
  --signal: #cf5c36;
  --signal-dark: #a94125;
  --signal-soft: #f3d7c9;
  --line: #d8d3c8;
  --success: #2f7257;
  --success-soft: #dbece2;
  --danger: #a94125;
  --danger-soft: #f7dfd4;
  --shadow: 0 24px 65px rgba(14, 51, 64, 0.13);
  --font-display: "Aptos Display", "Avenir Next", "Segoe UI Variable Display", sans-serif;
  --font-body: "Aptos", "Avenir Next", "Segoe UI Variable Text", "Segoe UI", sans-serif;
  --font-mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-body);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background:
    radial-gradient(circle at 18% 0%, rgba(207, 92, 54, .065), transparent 28rem),
    radial-gradient(circle at 82% 24%, rgba(14, 51, 64, .045), transparent 32rem),
    var(--paper);
  color: var(--ink);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .19;
  z-index: 20;
  background-image: radial-gradient(rgba(16, 37, 44, .15) .55px, transparent .55px);
  background-size: 5px 5px;
  mix-blend-mode: multiply;
}
a { color: var(--signal-dark); text-underline-offset: 3px; }
button, input, select { font: inherit; }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
button:active, .button:active, .intent-card:active, .event-tile:active { transform: translateY(1px) scale(.992); }
:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; box-shadow: 0 0 0 5px #fffdf8; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); text-wrap: balance; }
p { text-wrap: pretty; }
fieldset { margin: 0; padding: 0; border: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 18px; top: -80px; z-index: 30; padding: 11px 16px; background: var(--panel); color: var(--ink); font-weight: 700; border-radius: 8px; box-shadow: var(--shadow); }
.skip-link:focus { top: 14px; }

.site-header {
  min-height: 76px;
  padding: 11px clamp(18px, 5vw, 72px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(16, 37, 44, .1);
  background: rgba(244, 241, 233, .88);
  position: sticky;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(18px) saturate(1.1);
}
.brand { display: flex; align-items: center; gap: 11px; color: var(--ink); text-decoration: none; }
.brand-mark { position: relative; width: 34px; height: 34px; border: 2px solid var(--ink); border-radius: 50% 50% 50% 16%; transform: rotate(-16deg); }
.brand-mark::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: var(--signal); }
.brand-mark i { position: absolute; width: 11px; height: 2px; background: var(--ink); right: -7px; top: 15px; transform: rotate(16deg); }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-family: var(--font-display); font-size: 1rem; letter-spacing: -.035em; }
.brand-copy small { margin-top: 5px; font-family: var(--font-mono); font-size: .52rem; letter-spacing: .13em; color: var(--muted); }
nav { display: flex; align-items: center; gap: 4px; }
nav a { position: relative; padding: 10px 13px; color: var(--muted); text-decoration: none; border-radius: 8px; font-size: .83rem; font-weight: 650; transition: color .2s ease, background .2s ease; }
nav a:hover { color: var(--ink); background: rgba(255, 253, 248, .66); }
nav a[aria-current="page"] { color: var(--ink); }
nav a[aria-current="page"]::after { content: ""; position: absolute; height: 3px; left: 13px; right: 13px; bottom: 3px; background: var(--signal); border-radius: 2px; }

main { width: min(1480px, calc(100% - clamp(24px, 6vw, 92px))); margin: 0 auto; padding: 38px 0 94px; }
.eyebrow { margin-bottom: 13px; color: var(--signal-dark); font-family: var(--font-mono); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }

/* Consumer event discovery */
.city-hero {
  min-height: 340px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 205px;
  align-items: center;
  overflow: hidden;
  padding: clamp(42px, 5vw, 68px) clamp(28px, 5vw, 72px) 70px;
  color: #fffaf1;
  background: var(--navy);
  border-radius: 24px;
  box-shadow: 0 28px 70px rgba(8, 37, 47, .2);
}
.city-hero::before { content: ""; position: absolute; width: 42%; height: 150%; right: -12%; top: -26%; background: rgba(255, 255, 255, .035); transform: rotate(11deg); }
.city-grid {
  position: absolute;
  inset: 0;
  opacity: .15;
  background-image:
    linear-gradient(31deg, transparent 43%, rgba(255,255,255,.65) 43.2%, transparent 43.6%),
    linear-gradient(121deg, transparent 61%, rgba(255,255,255,.5) 61.2%, transparent 61.6%),
    linear-gradient(90deg, transparent 72%, rgba(255,255,255,.38) 72.2%, transparent 72.5%),
    linear-gradient(0deg, transparent 27%, rgba(255,255,255,.3) 27.2%, transparent 27.5%);
  background-size: 390px 280px, 430px 350px, 210px 100%, 100% 180px;
}
.hero-copy { position: relative; z-index: 2; max-width: 890px; }
.city-hero .eyebrow { color: #ef9b79; }
.city-hero h1 { max-width: 780px; margin: 0 0 22px; font-size: clamp(3.55rem, 6.6vw, 6.6rem); line-height: .88; letter-spacing: -.068em; font-weight: 760; }
.city-hero h1 em { color: #f0a17f; font-style: normal; font-weight: 470; }
.city-hero .lede { max-width: 610px; margin: 0; color: #c8d7d9; font-size: clamp(1rem, 1.5vw, 1.22rem); line-height: 1.6; }
.hero-pulse { position: relative; z-index: 2; width: 184px; height: 184px; display: grid; place-content: center; text-align: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.hero-pulse::before, .hero-pulse::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.hero-pulse::before { inset: -30px; }
.hero-pulse::after { inset: 32px; }
.pulse-ring { position: absolute; width: 9px; height: 9px; right: 22px; top: 41px; background: var(--signal); border-radius: 50%; box-shadow: 0 0 0 7px rgba(207,92,54,.22); }
.hero-pulse strong { display: block; font: 750 2.4rem/1 var(--font-display); letter-spacing: -.06em; }
.hero-pulse small { display: block; margin-top: 10px; color: #aac1c5; font: .58rem/1.55 var(--font-mono); letter-spacing: .1em; }
.discovery-panel {
  position: relative;
  z-index: 4;
  width: min(1120px, calc(100% - 36px));
  margin: -28px auto 56px;
  padding: clamp(22px, 2.4vw, 30px);
  background: rgba(255, 253, 248, .96);
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 20px;
  box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.9);
  backdrop-filter: blur(18px);
}
.dialogue-builder[hidden], .plan-bar[hidden] { display: none !important; }
.concierge-intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px; margin-bottom: 14px; }
.concierge-intro .eyebrow { margin-bottom: 10px; }
.concierge-intro h2 { max-width: 880px; margin: 0; font-size: clamp(1.5rem, 2.4vw, 2.25rem); line-height: 1; letter-spacing: -.045em; }
.typewriter-wrap { display: inline; margin: 0; padding: 0 2px; color: var(--signal-dark); background: transparent; border: 0; cursor: pointer; font: inherit; font-weight: 510; text-align: left; }
.typewriter-wrap > span { text-decoration: underline; text-decoration-color: rgba(207,92,54,.24); text-decoration-thickness: .08em; text-underline-offset: .12em; }
.typewriter-wrap > i { display: inline-block; width: .08em; height: .78em; margin-left: .06em; vertical-align: -.02em; background: currentColor; animation: typewriter-caret 1s steps(1,end) infinite; }
.typewriter-wrap:hover > span { text-decoration-color: currentColor; }
.typewriter-wrap:focus-visible { border-radius: 4px; }
.concierge-note { margin: 8px 0 0; color: var(--ink-soft); font-size: .78rem; }
.memory-controls { display: grid; justify-items: end; gap: 9px; padding-bottom: 4px; }
.memory-controls span { max-width: 220px; color: var(--ink-soft); text-align: right; font-size: .7rem; line-height: 1.35; }
.memory-controls button { min-height: 44px; padding: 7px 3px; color: var(--ink-soft); background: transparent; border: 0; border-bottom: 1px solid #778482; cursor: pointer; font-size: .75rem; font-weight: 760; }
.memory-controls button:hover { color: var(--signal-dark); border-color: currentColor; }
.search-command { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; min-height: 68px; padding: 5px 6px 5px 9px; background: #f8f6f0; border: 1px solid #aeb8b5; border-radius: 14px; box-shadow: inset 0 1px rgba(255,255,255,.9), 0 6px 18px rgba(14,51,64,.045); transition: border-color .2s ease, box-shadow .2s ease; }
.search-command:focus-within { border-color: var(--navy); box-shadow: 0 0 0 4px rgba(14,51,64,.09), 0 8px 22px rgba(14,51,64,.07); }
.search-glyph { position: relative; width: 38px; height: 38px; }
.search-glyph::before { content: ""; position: absolute; width: 12px; height: 12px; left: 7px; top: 7px; border: 2px solid var(--signal); border-radius: 50%; }
.search-glyph::after { content: ""; position: absolute; width: 9px; height: 2px; left: 19px; top: 21px; background: var(--signal); transform: rotate(45deg); transform-origin: left center; }
.search-command input { min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-family: var(--font-display); font-size: clamp(1.08rem, 2vw, 1.45rem); letter-spacing: -.02em; }
.search-command input::placeholder { color: #59696b; opacity: 1; }
.search-command button { border: 0; border-radius: 10px; padding: 13px 20px; background: var(--signal); color: white; font-weight: 750; cursor: pointer; box-shadow: 0 9px 22px rgba(169,65,37,.2); transition: background .2s ease, transform .2s ease; }
.search-command button:hover { background: var(--signal-dark); transform: translateY(-2px); }
.dialogue-search { grid-template-columns: auto minmax(0, 1fr); min-height: 58px; }
.dialogue-keyword { margin: 2px 0 0; }
.dialogue-keyword > summary { width: max-content; min-height: 44px; display: flex; align-items: center; gap: 8px; color: var(--signal-dark); cursor: pointer; list-style: none; font-size: .78rem; font-weight: 780; }
.dialogue-keyword > summary::-webkit-details-marker { display: none; }
.dialogue-keyword > summary::before { content: "+"; width: 22px; height: 22px; display: grid; place-items: center; color: white; background: var(--signal-dark); border-radius: 50%; }
.dialogue-keyword[open] > summary::before { content: "−"; }
.dialogue-keyword > summary span { color: var(--ink-soft); font-weight: 550; }
.dialogue-keyword .dialogue-search { margin-top: 7px; }
.dialogue-progress { display: grid; grid-template-columns: auto minmax(24px, 1fr) auto minmax(24px, 1fr) auto; align-items: center; max-width: 520px; margin: 18px auto 14px; }
.dialogue-progress > i { height: 1px; background: #c5cbc7; }
.dialogue-progress button { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 8px; color: var(--ink-soft); background: transparent; border: 0; cursor: pointer; font: 730 .68rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; }
.dialogue-progress button b { width: 23px; height: 23px; display: grid; place-items: center; color: var(--muted); background: #edeae2; border: 1px solid #c8cbc5; border-radius: 50%; font-size: .58rem; }
.dialogue-progress button[aria-current="step"] { color: var(--ink); }
.dialogue-progress button[aria-current="step"] b { color: #fffdf8; background: var(--navy); border-color: var(--navy); }
.dialogue-progress button.is-complete b { color: #fff; background: var(--success); border-color: var(--success); font-size: 0; }
.dialogue-progress button.is-complete b::after { content: "✓"; font-size: .7rem; }
.dialogue-pages { min-height: 122px; padding: 11px 0 5px; }
.dialogue-step[hidden] { display: none !important; }
.dialogue-step { margin: 0; padding: 0; border: 0; animation: dialogue-in .25s ease both; }
.dialogue-step > legend { width: 100%; margin-bottom: 14px; color: var(--ink); text-align: center; font: 740 clamp(1.2rem, 2vw, 1.42rem)/1.15 var(--font-display); letter-spacing: -.03em; }
.dialogue-step.intent-picker { margin-top: 0; }
.dialogue-when { max-width: 620px; margin: 0 auto; }
.dialogue-place-controls { display: grid; grid-template-columns: 1.2fr .72fr .82fr auto; align-items: end; gap: 11px; }
.dialogue-help { margin: 10px 0 0; color: var(--muted); text-align: center; font-size: .66rem; }
.dialogue-help strong { color: var(--ink-soft); }
.dialogue-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 10px; padding: 13px 0 0; border-top: 1px solid #e2ded5; }
.dialogue-footer > div:first-child { min-width: 0; display: grid; gap: 4px; }
.dialogue-footer small { color: var(--muted); font: 690 .55rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.selection-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.selection-chips button { min-height: 44px; padding: 6px 9px; color: var(--ink); background: var(--paper); border: 1px solid #c8c3b8; border-radius: 8px; cursor: pointer; font-size: .72rem; font-weight: 720; }
.selection-chips button::after { content: "↗"; margin-left: 6px; color: var(--signal-dark); }
.dialogue-footer .location-status { position: static; min-height: 0; color: var(--success); font-size: .62rem; }
.dialogue-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.dialogue-back { min-height: 44px; padding: 10px 11px; color: var(--ink-soft); background: transparent; border: 0; cursor: pointer; font-size: .75rem; font-weight: 720; }
.dialogue-submit { min-height: 48px; padding: 11px 18px; color: #fff; background: var(--signal-dark); border: 0; border-radius: 10px; box-shadow: 0 8px 18px rgba(169,65,37,.18); cursor: pointer; font-size: .88rem; font-weight: 820; }
.dialogue-submit:hover { background: var(--navy-deep); transform: translateY(-1px); }
.dialogue-submit:disabled { cursor: wait; opacity: .72; transform: none; }

.plan-bar { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.plan-bar-copy { min-width: 0; display: flex; align-items: center; gap: 13px; }
.plan-bar-mark { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; color: #4a2c22; background: #f4d58e; border: 1px solid #d2a846; border-radius: 10px 10px 10px 3px; box-shadow: 0 6px 14px rgba(14,51,64,.1); transform: rotate(-3deg); font-size: 1.2rem; }
.plan-bar small, .plan-bar strong { display: block; }
.plan-bar small { margin-bottom: 5px; color: var(--ink-soft); font: 700 .62rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.plan-bar strong { overflow: hidden; color: var(--ink); font-size: clamp(.92rem, 1.6vw, 1.16rem); text-overflow: ellipsis; white-space: nowrap; }
.plan-bar-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 9px; }
.plan-bar-actions button { min-height: 44px; padding: 9px 13px; color: white; background: var(--signal-dark); border: 0; border-radius: 9px; cursor: pointer; font-size: .78rem; font-weight: 780; }
.plan-bar-actions .plan-bar-reset { color: var(--ink-soft); background: transparent; border: 1px solid #aab2ae; }

.intent-picker { margin-top: 22px; }
.place-control > label { margin-bottom: 11px; color: var(--ink-soft); font: 700 .68rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.intent-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.intent-card { position: relative; min-width: 0; min-height: 78px; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 9px; padding: 10px; cursor: pointer; background: var(--paper); border: 1px solid #d1cbc0; border-radius: 12px 12px 12px 4px; transition: transform .22s cubic-bezier(.2,.8,.2,1), background .22s ease, border-color .22s ease, box-shadow .22s ease; }
.intent-card::before, .intent-card::after { content: ""; position: absolute; pointer-events: none; }
.intent-card::before { inset: 0; border-radius: inherit; opacity: .55; }
.intent-card::after { content: attr(data-art); right: 5px; bottom: -11px; color: var(--signal-dark); opacity: .1; transform: rotate(-8deg); font: 900 3.7rem/1 var(--font-display); }
.intent-card:nth-child(1)::before { background: radial-gradient(circle at 83% 24%, rgba(244,213,142,.7) 0 4px, transparent 5px), repeating-conic-gradient(from 20deg at 83% 24%, transparent 0 12deg, rgba(207,92,54,.08) 12deg 18deg); }
.intent-card:nth-child(2)::before { background: radial-gradient(circle at 82% 23%, rgba(207,92,54,.14) 0 5px, transparent 6px), radial-gradient(circle at 67% 70%, rgba(14,51,64,.12) 0 4px, transparent 5px), radial-gradient(circle at 94% 72%, rgba(244,213,142,.65) 0 6px, transparent 7px); }
.intent-card:nth-child(3)::before { background: radial-gradient(circle at 78% 55%, transparent 0 19px, rgba(14,51,64,.1) 20px 22px, transparent 23px), radial-gradient(circle at 92% 45%, transparent 0 15px, rgba(207,92,54,.12) 16px 18px, transparent 19px); }
.intent-card:nth-child(4)::after { content: "♥"; }
.intent-card:nth-child(5)::before { background: repeating-radial-gradient(ellipse at 87% 52%, transparent 0 8px, rgba(14,51,64,.09) 9px 10px, transparent 11px 17px); }
.intent-card:nth-child(6)::before { background: linear-gradient(75deg, rgba(117,46,42,.12) 0 16%, transparent 17% 83%, rgba(117,46,42,.12) 84%), radial-gradient(circle at 50% 22%, rgba(244,213,142,.48), transparent 34%); }
.intent-card:nth-child(7)::before { background: radial-gradient(circle at 84% 50%, rgba(244,213,142,.52) 0 18px, transparent 19px), repeating-linear-gradient(45deg, transparent 0 10px, rgba(47,114,87,.07) 11px 12px); }
.intent-card:hover { transform: translateY(-3px); border-color: #c9c1b3; box-shadow: 0 10px 26px rgba(14,51,64,.08); }
.intent-card input { position: absolute; opacity: 0; pointer-events: none; }
.intent-symbol, .intent-copy { position: relative; z-index: 1; }
.intent-symbol { width: 30px; height: 30px; display: grid; place-items: center; color: var(--signal-dark); background: #fffaf0; border: 1px solid #d9c9b6; border-radius: 9px 9px 9px 3px; transform: rotate(-3deg); font: 820 .78rem/1 var(--font-mono); }
.intent-copy { min-width: 0; }
.intent-copy strong, .intent-copy small { display: block; }
.intent-copy strong { font-size: .8rem; line-height: 1.15; }
.intent-copy small { margin-top: 3px; color: #4f6265; font-size: .61rem; line-height: 1.2; }
.intent-card:has(input:checked) { color: white; background: var(--navy); border-color: var(--navy); box-shadow: 0 14px 30px rgba(14,51,64,.17); }
.intent-card:has(input:checked)::before { opacity: .22; filter: brightness(1.8); }
.intent-card:has(input:checked)::after { color: #fff; opacity: .11; }
.intent-card:has(input:checked) small { color: #acc1c4; }
.intent-card:has(input:checked) .intent-symbol { color: #492719; background: #f4d58e; border-color: #f4d58e; transform: rotate(2deg); }
.intent-card:has(input:focus-visible), .segmented-control label:has(input:focus-visible) span, .selection-chips button:focus-visible, .dialogue-progress button:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; box-shadow: 0 0 0 5px #fffdf8; }

.quick-controls { position: relative; display: grid; grid-template-columns: minmax(320px, 1.4fr) repeat(3, minmax(135px, .62fr)) auto; align-items: end; gap: 16px; margin-top: 27px; }
.segmented-control { display: grid; grid-template-columns: repeat(4, 1fr); padding: 4px; background: var(--paper); border-radius: 9px; }
.segmented-control label { position: relative; cursor: pointer; }
.segmented-control input { position: absolute; opacity: 0; }
.segmented-control span { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 10px; color: var(--ink-soft); border-radius: 6px; font-size: .78rem; font-weight: 700; transition: background .2s ease, color .2s ease, box-shadow .2s ease; }
.segmented-control span i { color: var(--signal-dark); font-style: normal; font-size: 1rem; }
.segmented-control input:checked + span { background: var(--panel); color: var(--ink); box-shadow: 0 4px 13px rgba(14,51,64,.1); }
.select-shell { position: relative; }
.select-shell::after { content: "⌄"; position: absolute; right: 11px; top: 50%; transform: translateY(-56%); pointer-events: none; color: var(--muted); }
.place-control select, .sort-control select, .advanced-grid select, .advanced-grid input { width: 100%; min-height: 46px; appearance: none; padding: 10px 31px 10px 11px; color: var(--ink); background: transparent; border: 1px solid var(--line); border-radius: 10px; font-size: .78rem; font-weight: 650; }
.locate-button { min-height: 46px; padding: 9px 14px; display: flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; color: var(--navy); background: transparent; border: 1px solid var(--navy); border-radius: 10px; cursor: pointer; font-size: .75rem; font-weight: 750; transition: color .2s ease, background .2s ease, transform .2s ease; }
.locate-dot { position: relative; width: 13px; height: 13px; border: 1.5px solid currentColor; border-radius: 50%; }
.locate-dot::after { content: ""; position: absolute; width: 3px; height: 3px; inset: 0; margin: auto; background: currentColor; border-radius: 50%; }
.locate-button:hover { color: white; background: var(--navy); transform: translateY(-2px); }
.locate-button:disabled { cursor: wait; opacity: .55; }
.location-status { position: absolute; right: 0; top: calc(100% + 5px); margin: 0; color: var(--muted); font-size: .68rem; }

.smart-reach-note { display: grid; grid-template-columns: 155px 1fr; align-items: center; gap: 21px; margin-top: 24px; padding: 14px 18px; background: #e8efec; border-left: 3px solid var(--success); }
.smart-reach-note p { margin: 0; color: #465b5a; font-size: .75rem; line-height: 1.45; }
.smart-reach-note strong { color: var(--ink); }
.smart-line { display: flex; align-items: center; justify-content: space-between; height: 14px; background: linear-gradient(var(--success), var(--success)) center / 100% 1px no-repeat; }
.smart-line i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px #e8efec; }
.smart-line i:nth-child(2) { width: 9px; height: 9px; }
.smart-line i:nth-child(3) { width: 12px; height: 12px; }
.smart-line i:nth-child(4) { width: 15px; height: 15px; }

.advanced-filters { margin-top: 21px; border-top: 1px solid var(--line); }
.advanced-filters summary { display: flex; justify-content: space-between; gap: 18px; padding: 17px 2px 0; color: var(--ink); cursor: pointer; font-size: .78rem; font-weight: 750; list-style: none; }
.advanced-filters summary::-webkit-details-marker { display: none; }
.advanced-filters summary::before { content: "+"; color: var(--signal); margin-right: 8px; }
.advanced-filters[open] summary::before { content: "−"; }
.advanced-filters summary span { margin-left: auto; color: var(--muted); font-weight: 500; }
.advanced-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 22px; }
.advanced-grid > label { display: grid; gap: 7px; color: var(--muted); font: 700 .68rem/1 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.advanced-grid input { appearance: auto; padding-right: 10px; background: var(--panel); font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
.check-stack { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.check { display: flex; align-items: center; gap: 8px; color: var(--ink-soft); font-size: .75rem; }
.check input { width: 16px; height: 16px; accent-color: var(--signal); }
.advanced-actions { display: flex; align-items: center; gap: 18px; margin-top: 20px; }
.advanced-actions a { color: var(--muted); font-size: .75rem; }

.results-section { scroll-margin-top: 95px; }
.results-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 27px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.results-heading h2 { margin-bottom: 7px; font-size: clamp(2rem, 4vw, 3.8rem); line-height: .95; letter-spacing: -.055em; }
.results-heading p:last-child { margin-bottom: 0; color: var(--muted); font-size: .86rem; }
.results-heading .sponsor-policy { max-width: 740px; margin-top: 8px; color: #647173; font-size: .69rem; }
.sponsor-policy a { font-weight: 750; }
.sort-control { min-width: 170px; color: var(--muted); font: 700 .66rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.sort-control select { margin-top: 8px; background-color: var(--panel); font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
.event-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: clamp(14px, 2vw, 25px); align-items: stretch; }
.event-tile { position: relative; min-width: 0; min-height: 440px; height: 100%; overflow: hidden; display: flex; flex-direction: column; background: var(--panel); border: 1px solid rgba(16,37,44,.08); border-radius: 16px; box-shadow: 0 9px 30px rgba(14,51,64,.055); animation: card-arrive .48s cubic-bezier(.2,.75,.2,1) both; animation-delay: calc(var(--event-order, 0) * 32ms); transition: transform .26s cubic-bezier(.2,.8,.2,1), box-shadow .26s ease, border-color .26s ease; }
.event-tile:hover { transform: translateY(-5px); box-shadow: 0 22px 45px rgba(14,51,64,.13); }
.event-tile--standout { border-color: rgba(207,92,54,.38); box-shadow: 0 13px 36px rgba(169,65,37,.13), 0 0 0 3px rgba(240,161,127,.09); }
.event-tile--standout:hover { transform: translateY(-7px) rotate(-.15deg); box-shadow: 0 25px 52px rgba(169,65,37,.2), 0 0 0 4px rgba(240,161,127,.12); }
.event-tile--standout::before { content: ""; position: absolute; z-index: 5; top: 0; left: 17px; right: 17px; height: 3px; background: repeating-linear-gradient(90deg, #ef9b79 0 14px, #f4c95d 14px 23px, #86aa98 23px 35px); border-radius: 0 0 6px 6px; pointer-events: none; }
.event-tile--sold-out { background: #f2f0ea; border-color: rgba(92,88,82,.18); box-shadow: 0 7px 24px rgba(14,51,64,.045); }
.event-tile--sold-out .event-visual img,
.event-tile--sold-out .visual-fallback { filter: grayscale(.58) saturate(.32) brightness(.78); }
.event-tile--sold-out .event-visual::before { content: ""; position: absolute; z-index: 2; inset: 0; background: rgba(25,36,39,.2); pointer-events: none; }
.event-tile--sold-out .event-tile-body,
.event-tile--sold-out .event-tile-footer { filter: saturate(.42); opacity: .7; }
.event-tile--sold-out:hover .event-visual img { transform: scale(1.02); filter: grayscale(.48) saturate(.4) brightness(.82); }
.event-tile--sold-out:hover { box-shadow: 0 14px 32px rgba(14,51,64,.08); }
.sold-out-sash { position: absolute; z-index: 9; top: 35px; right: -57px; width: 245px; padding: 10px 0 9px; color: #fff; background: #c62828; border-top: 2px solid rgba(255,255,255,.7); border-bottom: 2px solid rgba(105,0,0,.28); box-shadow: 0 8px 22px rgba(90,0,0,.28); transform: rotate(35deg); text-align: center; font: 900 .82rem/1 var(--font-mono); letter-spacing: .18em; text-transform: uppercase; pointer-events: none; }
.event-visual { position: relative; height: 178px; display: block; overflow: hidden; background: var(--navy); text-decoration: none; }
.event-visual--fallback { height: 156px; }
.event-visual::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(8,37,47,.05) 38%, rgba(8,37,47,.5)); }
.event-visual img { position: absolute; z-index: 1; width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.8,.2,1); }
.event-tile:hover .event-visual img { transform: scale(1.035); }
.visual-fallback { position: absolute; z-index: 0; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 25px 24px; color: rgba(255,255,255,.92); overflow: hidden; isolation: isolate; }
.event-visual--fallback .visual-fallback, .event-visual.image-missing .visual-fallback { z-index: 2; }
.event-visual--fallback::after, .event-visual.image-missing::after { z-index: 1; pointer-events: none; }
.event-visual--fallback .visual-fallback > *, .event-visual.image-missing .visual-fallback > * { z-index: 4; }
.visual-fallback::before, .visual-fallback::after { content: ""; position: absolute; z-index: -1; pointer-events: none; }
.visual-fallback::before { width: 190px; height: 190px; right: -45px; top: -95px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 32px rgba(255,255,255,.035), 0 0 0 64px rgba(255,255,255,.025); }
.visual-fallback::after { left: 0; right: 0; bottom: 0; height: 42%; background: linear-gradient(135deg, transparent 18%, rgba(6,28,35,.44) 18% 22%, transparent 22% 28%, rgba(6,28,35,.42) 28% 36%, transparent 36% 41%, rgba(6,28,35,.4) 41% 58%, transparent 58% 64%, rgba(6,28,35,.42) 64% 72%, transparent 72%); clip-path: polygon(0 100%, 0 58%, 7% 58%, 7% 30%, 16% 30%, 16% 65%, 23% 65%, 23% 12%, 31% 12%, 31% 45%, 39% 45%, 39% 22%, 49% 22%, 49% 68%, 58% 68%, 58% 38%, 67% 38%, 67% 15%, 77% 15%, 77% 53%, 86% 53%, 86% 27%, 94% 27%, 94% 63%, 100% 63%, 100% 100%); }
.visual-fallback b { position: relative; z-index: 1; width: min(83%, 390px); display: -webkit-box; overflow: hidden; font: 720 clamp(1.55rem, 3vw, 2.45rem)/.93 var(--font-display); letter-spacing: -.055em; text-wrap: balance; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.visual-fallback i { position: absolute; z-index: -1; left: -8%; right: -8%; top: 48%; height: 1px; background: rgba(255,255,255,.2); transform: rotate(-8deg); box-shadow: 0 22px 0 rgba(255,255,255,.1), 0 -22px 0 rgba(255,255,255,.08); }
.visual-fallback--theatre { background: radial-gradient(circle at 50% 18%, rgba(255,219,137,.22), transparent 24%), linear-gradient(90deg, #742e2a 0 14%, #a44238 14% 22%, #6d2927 22% 28%, #173d47 28% 72%, #6d2927 72% 78%, #a44238 78% 86%, #742e2a 86%); }
.visual-fallback--theatre::after { height: 35%; background: repeating-linear-gradient(90deg, rgba(255,224,163,.88) 0 5px, transparent 5px 15px); clip-path: polygon(0 88%,100% 88%,100% 100%,0 100%); }
.visual-fallback--theatre .city-mark { width: max-content; padding: 5px 8px; color: #4a2c22; background: #f4d58e; border-radius: 4px; opacity: 1; }
.city-mark { position: relative; z-index: 1; margin-bottom: 9px; font: 720 .58rem/1 var(--font-mono); letter-spacing: .15em; text-transform: uppercase; opacity: .78; }
.visual-variant-1 { background: #244c56; }
.visual-variant-2 { background: #8f3f2f; }
.visual-variant-3 { background: #496357; }
.visual-variant-4 { background: #5b5268; }
.visual-variant-5 { background: #9b6a32; }
.visual-variant-6 { background: #315c70; }
.visual-variant-2 .visual-fallback::before, .visual-variant-5 .visual-fallback::before { right: auto; left: -55px; top: -70px; border-radius: 0; transform: rotate(34deg); }
.visual-variant-3 .visual-fallback::after, .visual-variant-6 .visual-fallback::after { transform: scaleX(-1); }
.visual-variant-4 .visual-fallback i { transform: rotate(8deg); }
.date-ticket { position: absolute; z-index: 3; left: 14px; top: 14px; width: 64px; min-height: 82px; display: flex; flex-direction: column; align-items: stretch; text-align: center; color: var(--ink); background: linear-gradient(145deg, #fffdf8 0 72%, #f4eee1 100%); border: 1px solid rgba(255,255,255,.8); border-radius: 9px 9px 12px 12px; box-shadow: 0 12px 25px rgba(8,37,47,.24), inset 0 -1px 0 rgba(169,65,37,.12); text-transform: uppercase; transform-origin: 50% 10%; animation: calendar-settle .62s cubic-bezier(.2,.85,.25,1) both; animation-delay: calc(90ms + var(--event-order, 0) * 32ms); transition: transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s ease; }
.date-ticket::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 9px; height: 9px; background: linear-gradient(135deg, transparent 49%, rgba(207,92,54,.13) 50%); border-radius: 0 0 5px; }
.date-ticket-rings { position: absolute; z-index: 2; left: 0; right: 0; top: -4px; display: flex; justify-content: space-around; padding-inline: 10px; }
.date-ticket-rings i { width: 4px; height: 10px; background: #f7dfd4; border: 1px solid rgba(8,37,47,.52); border-radius: 4px; box-shadow: 0 2px 0 rgba(8,37,47,.18); }
.date-ticket-month { min-height: 23px; display: grid; place-items: center; padding-top: 2px; color: #fffaf1; background: linear-gradient(135deg, var(--signal), #b74729); border-radius: 8px 8px 0 0; font: 820 .58rem/1 var(--font-mono); letter-spacing: .14em; }
.date-ticket strong { margin: 7px 0 4px; font: 790 1.72rem/.82 var(--font-display); font-variant-numeric: tabular-nums; letter-spacing: -.055em; }
.date-ticket-meta { display: flex; justify-content: center; align-items: baseline; gap: 4px; padding-bottom: 7px; color: var(--signal-dark); font: 760 .49rem/1 var(--font-mono); letter-spacing: .07em; }
.date-ticket-meta em { font-style: normal; }
.date-ticket-meta i { color: #7b8584; font-style: normal; font-size: .43rem; letter-spacing: .02em; }
.event-tile:hover .date-ticket { transform: translateY(-2px) rotate(-1.5deg); box-shadow: 0 17px 30px rgba(8,37,47,.3), inset 0 -1px 0 rgba(169,65,37,.12); }
.quality-badge { position: absolute; z-index: 3; right: 13px; bottom: 12px; display: flex; align-items: center; gap: 7px; padding: 7px 9px; color: #fff; background: rgba(8,37,47,.82); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.18); border-radius: 5px; font-size: .63rem; font-weight: 750; }
.quality-badge i { width: 6px; height: 6px; border-radius: 50%; background: #f0a17f; box-shadow: 0 0 0 3px rgba(240,161,127,.18); }
.quality-badge--standout { bottom: 14px; padding: 9px 12px 9px 10px; color: #492719; background: #f8d66d; border-color: rgba(255,255,255,.72); border-radius: 8px 8px 8px 3px; box-shadow: 0 8px 22px rgba(8,37,47,.25); transform: rotate(-2deg); font-weight: 850; letter-spacing: .02em; text-transform: uppercase; }
.quality-badge--standout i { width: 17px; height: 17px; background: #cf5c36; border-radius: 0; box-shadow: none; clip-path: polygon(50% 0,61% 34%,93% 17%,76% 47%,100% 61%,65% 66%,72% 100%,50% 76%,28% 100%,35% 66%,0 61%,24% 47%,7% 17%,39% 34%); }
.event-tile--standout:hover .quality-badge--standout { transform: rotate(1deg) scale(1.04); }
.event-tile-body { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 19px 21px 16px; }
.event-kickers { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-bottom: 11px; color: var(--signal-dark); font: 700 .64rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; }
.event-kickers > span + span::before { content: "/"; margin-right: 13px; color: #b9b1a4; }
.event-kickers .free-kicker { color: var(--success); }
.event-travel-row { align-items: center; margin: 11px 0 0; }
.event-travel-row > span + span::before { content: none; }
.event-kickers .travel-kicker { display: inline-flex; align-items: center; gap: 7px; padding: 5px 7px 5px 6px; color: var(--ink); background: #f7f5ef; border: 1px solid #aeb8b5; border-radius: 10px 10px 10px 3px; box-shadow: 0 3px 9px rgba(14,51,64,.055); }
.travel-kicker b { font: inherit; white-space: nowrap; }
.travel-kicker em { padding: 4px 6px; color: #fffdf8; background: #173d47; border-radius: 7px 7px 7px 2px; font: 850 .58rem/1 var(--font-mono); letter-spacing: .025em; text-transform: uppercase; }
.travel-kicker--road-trip { background: #f3f1eb !important; border-color: #929c99 !important; }
.travel-kicker--overnight { background: #ebe9e5 !important; border-color: #7d8986 !important; }
.travel-icon { width: 24px; height: 19px; overflow: visible; fill: #d9cda9; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .22s cubic-bezier(.2,.8,.2,1); }
.travel-icon-accent { fill: #c5b78f; stroke: currentColor; }
.travel-icon--car { width: 34px; height: 21px; fill: #c8c0b5; }
.travel-icon--car circle { fill: var(--panel); }
.travel-icon--hotel { width: 30px; height: 21px; fill: #b9bfbd; }
.travel-icon--pin { width: 19px; height: 20px; }
.event-tile:hover .travel-icon--car { transform: translateX(3px) rotate(-2deg); }
.event-tile:hover .travel-icon--hotel { transform: translateY(-2px) rotate(1deg); }
.event-tile:hover .travel-icon--pin { transform: translateY(-2px) scale(1.06); }
.event-time { --time-color: var(--signal-dark); display: inline-flex; align-items: center; gap: 5px; width: max-content; color: var(--time-color); background: rgba(207,92,54,.07); border: 1px solid rgba(207,92,54,.14); border-radius: 999px; box-shadow: 0 2px 7px rgba(14,51,64,.045); transition: transform .22s cubic-bezier(.2,.8,.2,1), background .22s ease, box-shadow .22s ease; }
.event-kickers > .event-time::before { content: none; }
.event-time--nearby { padding: 4px 7px; font-size: .57rem; }
.event-time--road-trip { padding: 6px 9px; font-size: .65rem; font-weight: 780; background: #fff0e8; border-color: #efb79e; box-shadow: 0 4px 10px rgba(169,65,37,.08); }
.event-time--overnight { --time-color: #554962; padding: 7px 10px; font-size: .72rem; font-weight: 820; background: #eeeaf3; border-color: #c8bfd4; box-shadow: 0 5px 12px rgba(91,82,104,.11); }
.event-time-icon { width: 15px; height: 15px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.event-time--road-trip .event-time-icon { width: 17px; height: 17px; }
.event-time--overnight .event-time-icon { width: 19px; height: 19px; }
.event-tile:hover .event-time { transform: translateY(-1px); background: rgba(207,92,54,.12); box-shadow: 0 6px 13px rgba(14,51,64,.09); }
.event-tile:hover .event-time--overnight { background: #e8e1ef; }
.drive-estimate { color: #566568; font-size: .67rem; font-weight: 720; letter-spacing: 0; text-transform: none; }
.event-tile h3 { margin: 8px 0 7px; display: -webkit-box; overflow: hidden; font-size: clamp(1.42rem, 2vw, 1.85rem); line-height: 1.08; letter-spacing: -.045em; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.event-tile h3 a { color: var(--ink); text-decoration: none; }
.event-tile h3 a:hover, .event-tile h3 a:focus-visible { color: var(--signal-dark); }
.event-tile h3 a:focus-visible { outline: 3px solid rgba(207,92,54,.42); outline-offset: 3px; border-radius: 3px; }
.event-schedule { margin: 0 0 6px; color: var(--signal-dark); font-size: .82rem; font-weight: 780; }
.showtime-list { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.showtime-list time { padding: 2px 6px; color: #173d47; background: #edf2ef; border: 1px solid #c9d4cf; border-radius: 999px; font-size: .72rem; white-space: nowrap; }
.showtime-list i { color: var(--muted); font: 600 .58rem/1 var(--font-mono); }
.event-place { margin: 0; display: -webkit-box; overflow: hidden; color: #344d53; font-size: .8rem; font-weight: 700; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.event-place span { color: #56686b; font-weight: 600; }
.event-summary { display: -webkit-box; margin: 11px 0 0; overflow: hidden; color: #59696b; font-size: .76rem; line-height: 1.5; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.event-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.event-tags--primary { margin: 0; }
.event-tags span { padding: 5px 7px; background: var(--paper); color: #3f565a; border-radius: 4px; font-size: .62rem; font-weight: 780; text-transform: uppercase; letter-spacing: .045em; }
.event-tags .tag-free { color: var(--success); background: var(--success-soft); }
.ticket-state { margin: auto 0 0; padding-top: 12px; color: #445b5f; font-size: .72rem; font-weight: 760; }
.event-tile-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: 0 21px; padding: 14px 0 17px; border-top: 1px solid var(--line); color: var(--muted); font-size: .64rem; }
.event-tile-footer span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.event-tile-footer a { flex: 0 0 auto; color: var(--ink); font-weight: 750; text-decoration: none; }
.event-card-cta { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; color: white !important; background: var(--signal-dark); border-radius: 9px; }
.event-card-cta:hover, .event-card-cta:focus-visible { background: var(--navy-deep); }
.event-card-cta:focus-visible { outline: 3px solid rgba(207,92,54,.35); outline-offset: 3px; }
.event-tile-footer b { color: var(--signal); }
.sponsor-tile { background: #f0ece2; border-color: rgba(169,65,37,.2); box-shadow: 0 11px 32px rgba(14,51,64,.075); }
.sponsor-visual { background: #173d47; }
.sponsor-visual::before { content: ""; position: absolute; z-index: 1; inset: 0; background-image: linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size: 46px 46px; transform: rotate(-5deg) scale(1.2); }
.sponsor-fallback { color: rgba(255,255,255,.08); }
.sponsor-label { position: absolute; z-index: 4; left: 14px; top: 14px; padding: 7px 9px; color: #4a2c22; background: #f5cdbb; border: 1px solid rgba(255,255,255,.45); border-radius: 5px; font: 750 .58rem/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; }
.sponsor-map-copy { position: absolute; z-index: 3; right: 18px; bottom: 15px; color: #e5edeb; text-align: right; font: 740 1.42rem/.82 var(--font-display); letter-spacing: -.045em; }
.sponsor-map-copy em { color: #ef9b79; font-style: normal; font-weight: 500; }
.sponsor-kickers { color: var(--signal-dark); }
.sponsor-footer { border-color: rgba(169,65,37,.16); }
.sponsor-footer a { color: var(--signal-dark); }
.adsense-tile { min-width: 250px; background: #ebe7dd; border-color: #b9b2a5; box-shadow: none; }
.adsense-tile:hover { transform: none; box-shadow: none; }
.adsense-header, .adsense-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; color: #596365; font: 680 .62rem/1.25 var(--font-mono); letter-spacing: .045em; }
.adsense-header { border-bottom: 1px solid #cfc8ba; text-transform: uppercase; }
.adsense-header span { color: var(--ink); font-weight: 800; letter-spacing: .11em; }
.adsense-header small { font: inherit; letter-spacing: 0; text-transform: none; }
.adsense-frame { flex: 1; min-width: 250px; min-height: 380px; display: grid; align-items: center; padding: 10px; overflow: hidden; background: rgba(255,255,255,.34); }
.adsense-frame .adsbygoogle { width: 100%; min-width: 250px; }
.adsense-footer { border-top: 1px solid #cfc8ba; }
.adsense-footer a { color: var(--ink); font-weight: 760; text-decoration: none; }
.adsense-footer a:hover { color: var(--signal-dark); }
.adjust-filters { display: none; }
.results-section { transition: opacity .18s ease, transform .18s ease; }
.is-loading .results-section { opacity: .48; transform: translateY(4px); }

@keyframes typewriter-caret {
  0%, 48% { opacity: 1; }
  49%, 100% { opacity: 0; }
}
@keyframes dialogue-in {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes card-arrive {
  from { opacity: 0; transform: translateY(12px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes calendar-settle {
  from { opacity: 0; transform: translateY(-7px) rotate(-4deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

.empty-state { padding: 66px 30px; text-align: center; border: 1px dashed #bcb3a4; border-radius: 16px; }
.empty-state p { max-width: 520px; margin: 0 auto 24px; color: var(--muted); line-height: 1.6; }
.city-empty > span { display: block; margin-bottom: 12px; color: var(--signal); font-size: 2.5rem; }
.city-empty h3 { font-size: 1.7rem; }

/* Consumer event detail */
.attendee-page { padding-top: clamp(28px, 5vw, 64px); }
.results-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 36px 0 8px; }
.results-pagination span { color: var(--muted); font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.attendee-hero { display: grid; grid-template-columns: minmax(300px, .88fr) minmax(0, 1.12fr); min-height: 570px; overflow: hidden; margin-bottom: 32px; background: var(--panel); border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 24px 65px rgba(14,51,64,.1); }
.attendee-art { position: relative; min-height: 500px; overflow: hidden; background: #123e49; }
.attendee-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(5,31,39,.36)); pointer-events: none; }
.attendee-art img { width: 100%; height: 100%; object-fit: cover; }
.attendee-art--fallback { display: grid; place-items: center; background: radial-gradient(circle at 27% 24%, rgba(239,139,100,.72) 0 3%, transparent 3.4%), repeating-radial-gradient(circle at 27% 24%, transparent 0 70px, rgba(255,255,255,.08) 71px 72px), linear-gradient(145deg, #0e3340, #185565); }
.attendee-art--fallback > span { color: rgba(255,255,255,.82); font: 760 clamp(2.3rem, 5vw, 5.8rem)/.82 var(--font-display); letter-spacing: -.055em; text-align: center; transform: rotate(-4deg); }
.attendee-alert { position: absolute; z-index: 2; top: 26px; left: -45px; width: 210px; padding: 11px; color: white; background: var(--danger); box-shadow: 0 8px 22px rgba(83,19,16,.3); font: 820 .72rem/1 var(--font-mono); text-align: center; text-transform: uppercase; letter-spacing: .12em; transform: rotate(-38deg); }
.attendee-intro { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 5vw, 70px); }
.attendee-intro h1 { max-width: 800px; margin: 12px 0 12px; font-size: clamp(3rem, 5.2vw, 6rem); line-height: .88; letter-spacing: -.067em; }
.attendee-byline { margin: 0 0 8px; color: var(--signal-dark); font-weight: 740; }
.attendee-lede { max-width: 720px; margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.65; }
.attendee-when { display: flex; gap: 16px; align-items: center; margin: 28px 0 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.attendee-date { width: 66px; min-width: 66px; overflow: hidden; color: var(--ink); background: #fffdf8; border: 1px solid var(--line); border-radius: 9px 9px 12px 12px; box-shadow: 0 9px 20px rgba(14,51,64,.1); text-align: center; text-transform: uppercase; }
.attendee-date small { display: block; padding: 6px; color: white; background: var(--signal); font: 800 .6rem/1 var(--font-mono); letter-spacing: .13em; }
.attendee-date strong { display: block; margin: 6px 0 3px; font: 790 1.7rem/.9 var(--font-display); }
.attendee-date em { display: block; padding-bottom: 6px; color: var(--signal-dark); font: 760 .5rem/1 var(--font-mono); font-style: normal; letter-spacing: .08em; }
.attendee-when > div { display: grid; gap: 4px; }
.attendee-when small, .attendance-facts span, .event-trust-strip span { color: var(--muted); font: 720 .6rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.attendee-when strong { font-size: 1rem; }
.attendee-when span { color: var(--muted); font-size: .72rem; }
.performance-picker { margin: -8px 0 22px; }
.performance-picker > small { display: block; margin-bottom: 9px; color: var(--muted); font: 720 .6rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.performance-picker > div { display: flex; flex-wrap: wrap; gap: 8px; }
.performance-time { min-width: 132px; display: grid; grid-template-columns: 1fr auto; gap: 13px; align-items: center; padding: 11px 12px; color: var(--ink); background: #edf2ef; border: 1px solid #bdccc6; border-radius: 10px; text-decoration: none; transition: transform .16s ease, border-color .16s ease, background .16s ease; }
.performance-time:hover { transform: translateY(-2px); background: #e4ede9; border-color: #7e9a90; }
.performance-time strong { font-size: .85rem; }
.performance-time span { color: var(--signal-dark); font: 750 .58rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .04em; }
.performance-time--sold-out { filter: saturate(.5); opacity: .68; }
.performance-time--sold-out span { color: var(--danger); }
.attendee-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.attendee-ticket { min-width: 145px; }
.referral-note { display: block; max-width: 560px; margin-top: 11px; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.attendance-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .55fr); gap: 22px; align-items: stretch; margin-bottom: 24px; }
.attendance-main { display: grid; gap: 22px; }
.consumer-panel, .venue-map { overflow: hidden; padding: clamp(24px, 4vw, 38px); background: var(--panel); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 30px rgba(14,51,64,.04); }
.consumer-panel h2, .venue-map h2 { margin: 5px 0 22px; font-size: clamp(1.45rem, 2.5vw, 2.2rem); letter-spacing: -.045em; }
.attendance-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.attendance-facts > div { min-width: 0; padding: 19px; background: #fffdf8; }
.attendance-facts strong, .attendance-facts small { display: block; }
.attendance-facts strong { margin: 7px 0 6px; font-size: .9rem; overflow-wrap: anywhere; }
.attendance-facts small { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.event-about > p:not(.eyebrow) { max-width: 860px; color: var(--ink-soft); line-height: 1.75; white-space: pre-line; }
.official-links { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 23px; }
.official-links a { color: var(--signal-dark); font-size: .76rem; font-weight: 760; }
.venue-map { display: flex; flex-direction: column; padding: 0; }
.venue-map-copy { padding: 26px 28px 18px; }
.venue-map-copy h2 { margin-bottom: 9px; }
.venue-map-copy p:last-child { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.venue-map iframe, .map-unavailable { width: 100%; min-height: 330px; border: 0; background: #dce5df; }
.map-unavailable { display: grid; place-items: center; color: var(--muted); font: 720 .68rem/1 var(--font-mono); text-transform: uppercase; }
.venue-map > .button { margin: 16px 20px 20px; }
.event-trust-strip { display: grid; grid-template-columns: auto auto minmax(240px, 1fr) auto; gap: 22px; align-items: center; margin-bottom: 24px; padding: 18px 22px; background: #ebe8df; border-radius: 12px; }
.event-trust-strip div { display: grid; gap: 5px; }
.event-trust-strip strong { font-size: .72rem; }
.event-trust-strip p { margin: 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.debug-dialog { width: min(1100px, calc(100vw - 36px)); max-height: min(860px, calc(100vh - 36px)); padding: 0; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 30px 90px rgba(4,25,32,.35); }
.debug-dialog::backdrop { background: rgba(5,29,36,.72); backdrop-filter: blur(4px); }
.debug-dialog-header { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; gap: 30px; align-items: center; padding: 22px 26px; background: var(--panel); border-bottom: 1px solid var(--line); }
.debug-dialog-header h2 { margin: 3px 0 0; font-size: 1.4rem; }
.debug-dialog-close { width: 38px; height: 38px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 50%; cursor: pointer; font-size: 1.4rem; }
.debug-dialog-body { padding: 12px 26px 30px; }
.debug-summary { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 0; }
.debug-summary span { padding: 6px 8px; color: var(--muted); background: var(--paper-deep); border-radius: 4px; font: 700 .61rem/1 var(--font-mono); text-transform: uppercase; }
.debug-review { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }

/* Shared administrative and evidence views */
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; margin: 36px 0 40px; }
.page-heading h1 { margin-bottom: 12px; font-size: clamp(2.7rem, 6vw, 6rem); line-height: .9; letter-spacing: -.065em; }
.page-heading p { max-width: 720px; margin-bottom: 0; color: var(--muted); line-height: 1.6; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 18px; }
.section-heading h2 { margin: 0; font-size: 1.15rem; letter-spacing: -.02em; }
.section-heading > span, .section-heading > a { color: var(--muted); font-size: .76rem; }
.button { display: inline-flex; align-items: center; justify-content: center; padding: 10px 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); color: var(--ink); text-decoration: none; cursor: pointer; font-weight: 720; font-size: .8rem; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); border-color: #a99f90; }
.button.primary { background: var(--signal); border-color: var(--signal); color: white; }
.button.primary:hover { background: var(--signal-dark); border-color: var(--signal-dark); }
.tag, .method, .flag-type, .status-dot { display: inline-flex; padding: 5px 7px; border-radius: 3px; background: var(--paper-deep); font: 750 .61rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; }
.tag.green, .status-dot.on { background: var(--success-soft); color: var(--success); }
.meta-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 11px; }
.provenance { display: flex; gap: 8px 15px; flex-wrap: wrap; color: var(--muted); font-size: .7rem; margin-top: 14px; }
.provenance span + span::before { content: "·"; margin-right: 15px; }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; margin-bottom: 32px; background: var(--line); border: 1px solid var(--line); border-radius: 16px; }
.metric-grid > div { padding: 25px; background: var(--panel); }
.metric-grid strong { display: block; font: 720 2rem/1 var(--font-mono); font-variant-numeric: tabular-nums; }
.metric-grid span { color: var(--muted); font-size: .76rem; }
.metric-grid .danger strong { color: var(--danger); }
.table-panel, .evidence-panel { margin-bottom: 26px; padding: 22px; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 30px rgba(14,51,64,.04); }
.table-scroll { overflow-x: auto; }
table { width: 100%; min-width: 1220px; border-collapse: collapse; font-size: .74rem; }
th { color: var(--muted); text-align: left; white-space: nowrap; font: 700 .61rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
th, td { padding: 13px 10px; border-bottom: 1px solid #e7e2d9; vertical-align: top; }
.table-title { display: block; min-width: 170px; color: var(--ink); font-weight: 800; text-decoration: none; }
.source-url { display: block; max-width: 240px; overflow: hidden; margin: 5px 0 7px; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: .67rem; }
.row-muted { opacity: .64; }
.row-error { background: var(--danger-soft); }
.status-dot.off { color: var(--muted); }
.status-dot.bad, .flag-type { background: var(--danger-soft); color: var(--danger); }
.missing-counts span, .diagnostic-cell span { display: block; white-space: nowrap; }
.error-cell, .diagnostic-cell { max-width: 360px; color: var(--danger); }

.split-heading, .event-heading { align-items: center; }
.detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; margin-bottom: 30px; background: var(--line); border: 1px solid var(--line); border-radius: 16px; }
.detail-grid > div { min-width: 0; padding: 20px; background: var(--panel); }
.detail-grid .wide { grid-column: span 2; }
.detail-grid span { display: block; margin-bottom: 7px; color: var(--muted); font: 700 .64rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; }
.detail-grid strong { display: block; overflow-wrap: anywhere; font-size: .86rem; }
.source-summary { grid-template-columns: repeat(3, 1fr); }
.event-heading .meta-row { margin-bottom: 18px; }
.event-heading > .button { flex: 0 0 auto; }
.heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.nav-form { display: inline-flex; }
.nav-form button, .text-button { padding: 0; color: var(--signal-dark); background: none; border: 0; cursor: pointer; font: inherit; font-weight: 720; text-decoration: underline; text-underline-offset: 3px; }
.site-header .nav-form button { padding: 10px 12px; color: var(--muted); text-decoration: none; }
.admin-notice { margin: 0 0 24px; padding: 15px 18px; color: #725523; background: #fff4cf; border: 1px solid #ead28a; border-radius: 10px; font-size: .78rem; line-height: 1.5; }
.admin-notice code { font-family: var(--font-mono); font-size: .86em; }
.source-editor form > .button { margin-top: 20px; }
.table-actions { display: grid; gap: 8px; justify-items: start; }
.table-actions form { margin: 0; }
.scan-feedback { display: block; min-width: 82px; color: var(--muted); font: 700 .61rem/1.35 var(--font-mono); text-transform: uppercase; letter-spacing: .04em; }
.scan-feedback:empty { display: none; }
.scan-feedback.running { color: #725523; }
.scan-feedback.complete { color: var(--success); }
.scan-feedback.failed { color: var(--danger); }
.scan-row-running { background: #fff8df; }
.scan-row-running td { transition: background .25s ease; }
[data-scan-button][disabled] { cursor: progress; opacity: .6; }
.account-table { min-width: 760px; }
.login-shell { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: clamp(45px, 9vw, 130px); align-items: center; min-height: calc(100vh - 230px); padding: 60px 0; }
.login-shell h1 { max-width: 720px; margin-bottom: 20px; font-size: clamp(3.5rem, 7vw, 7rem); line-height: .88; letter-spacing: -.07em; }
.login-shell > div > p:last-child { max-width: 560px; color: var(--muted); line-height: 1.65; }
.login-card { display: grid; gap: 18px; padding: clamp(26px, 4vw, 42px); background: var(--panel); border: 1px solid var(--line); border-top: 5px solid var(--signal); border-radius: 16px; box-shadow: 0 24px 60px rgba(14,51,64,.1); }
.login-card label { display: grid; gap: 8px; color: var(--ink-soft); font: 700 .66rem/1.2 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.login-card label span { color: var(--muted); font-weight: 500; }
.login-card input { min-height: 48px; padding: 11px 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 9px; font: .86rem/1.4 var(--font-body); }
.admin-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 70px; }
.admin-hub-grid a { min-height: 220px; display: flex; flex-direction: column; padding: 26px; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 30px rgba(14,51,64,.05); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.admin-hub-grid a:hover { transform: translateY(-4px); border-color: #b8ad9c; box-shadow: 0 20px 42px rgba(14,51,64,.1); }
.admin-hub-grid span { margin-bottom: auto; color: var(--signal); font: 760 2rem/1 var(--font-mono); }
.admin-hub-grid strong { margin: 30px 0 8px; font-size: 1.12rem; }
.admin-hub-grid small { color: var(--muted); line-height: 1.5; }
.quality-feedback { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; margin-bottom: 30px; padding: 24px 26px; background: #e7eee9; border-left: 4px solid var(--signal); border-radius: 5px 15px 15px 5px; }
.quality-feedback h2 { margin: 4px 0 7px; font-size: 1.35rem; letter-spacing: -.035em; }
.quality-feedback p:last-child { max-width: 720px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.quality-feedback-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; max-width: 460px; }
.quality-feedback-actions [data-feedback-status] { flex-basis: 100%; color: var(--success); text-align: right; font-size: .66rem; line-height: 1.4; }
.quality-feedback-actions button:disabled { opacity: .55; cursor: default; transform: none; }
.learning-table { min-width: 850px; }
.revenue-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: clamp(40px, 7vw, 110px); align-items: center; margin-bottom: 74px; padding: clamp(42px, 6vw, 86px); color: #fffaf1; background: var(--navy); border-radius: 24px; box-shadow: 0 28px 70px rgba(8,37,47,.18); }
.revenue-hero::after { content: ""; position: absolute; width: 440px; height: 440px; right: -160px; top: -210px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); }
.revenue-hero > * { position: relative; z-index: 1; }
.revenue-hero h1 { max-width: 820px; margin-bottom: 24px; font-size: clamp(3rem, 6vw, 6.4rem); line-height: .9; letter-spacing: -.065em; }
.revenue-hero h1 em { color: #f0a17f; font-style: normal; font-weight: 480; }
.revenue-hero > div > p:not(.eyebrow) { max-width: 680px; color: #c8d7d9; font-size: 1.03rem; line-height: 1.65; }
.revenue-hero .button { margin-top: 10px; }
.revenue-principles { display: grid; grid-template-columns: 38px 1fr; gap: 19px 15px; padding-left: 28px; border-left: 1px solid rgba(255,255,255,.2); }
.revenue-principles span { color: #ef9b79; font: 700 .64rem/1 var(--font-mono); }
.revenue-principles p { margin: 0; color: #bed0d2; font-size: .77rem; line-height: 1.5; }
.revenue-principles strong { display: block; margin-bottom: 3px; color: #fffaf1; }
.sponsor-products { margin-bottom: 78px; }
.product-grid { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 17px; }
.product-grid article { min-height: 250px; display: flex; flex-direction: column; padding: clamp(24px, 3vw, 38px); background: var(--panel); }
.product-grid article:first-child { background: #e8efec; }
.product-grid small { color: var(--signal-dark); font: 750 .61rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.product-grid h3 { margin: 34px 0 12px; font-size: clamp(1.35rem, 2vw, 2rem); letter-spacing: -.04em; }
.product-grid p { color: var(--muted); font-size: .82rem; line-height: 1.6; }
.product-grid strong { margin-top: auto; color: var(--ink-soft); font-size: .72rem; }
.inquiry-layout { display: grid; grid-template-columns: minmax(240px, .68fr) minmax(0, 1.32fr); gap: clamp(36px, 7vw, 100px); align-items: start; }
.inquiry-layout > div { position: sticky; top: 108px; }
.inquiry-layout h2 { font-size: clamp(2.1rem, 4vw, 4.2rem); line-height: .95; letter-spacing: -.055em; }
.inquiry-layout > div > p:last-child { color: var(--muted); line-height: 1.65; }
.inquiry-form { padding: clamp(24px, 4vw, 42px); background: var(--panel); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 45px rgba(14,51,64,.07); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid > label { display: grid; gap: 8px; color: var(--ink-soft); font: 700 .65rem/1.2 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-height: 46px; padding: 11px 12px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 9px; font: .82rem/1.4 var(--font-body); text-transform: none; letter-spacing: 0; }
.form-grid textarea { resize: vertical; }
.form-wide { grid-column: 1 / -1; }
.form-consent { grid-template-columns: auto 1fr !important; align-items: start; color: var(--muted) !important; font-family: var(--font-body) !important; font-weight: 500 !important; line-height: 1.45 !important; text-transform: none !important; letter-spacing: 0 !important; }
.form-consent input { width: 17px; min-height: 17px; margin: 1px 0 0; accent-color: var(--signal); }
.honeypot { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.inquiry-form > .button { margin-top: 22px; }
.form-note { margin: 14px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.form-success, .form-errors { margin-bottom: 20px; padding: 14px 16px; display: grid; gap: 4px; border-left: 3px solid var(--success); background: var(--success-soft); color: var(--success); font-size: .78rem; }
.form-errors { border-color: var(--danger); background: var(--danger-soft); color: var(--danger); }
.form-errors ul { margin: 5px 0 0; padding-left: 18px; }
.policy-heading { max-width: 1020px; }
.policy-copy { max-width: 820px; margin: 0 auto; padding: clamp(26px, 5vw, 60px); background: var(--panel); border-top: 4px solid var(--signal); box-shadow: 0 18px 45px rgba(14,51,64,.06); }
.policy-copy h2 { margin: 32px 0 9px; font-size: 1.2rem; }
.policy-copy h2:first-child { margin-top: 0; }
.policy-copy p { color: var(--ink-soft); line-height: 1.72; }
.policy-copy code { padding: 2px 4px; background: var(--paper-deep); font-family: var(--font-mono); font-size: .8em; }
.policy-note { margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--line); font-size: .72rem; }
.review-list { display: grid; gap: 10px; }
.review-card { display: grid; grid-template-columns: 150px 1fr auto; gap: 26px; align-items: start; padding: 22px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; }
.review-card small { display: block; margin-top: 10px; color: var(--muted); }
.review-card h2 { margin-bottom: 8px; font-size: 1.1rem; }
.review-card p { margin-bottom: 0; color: var(--muted); line-height: 1.55; }
.evidence-record { border-top: 1px solid var(--line); }
.evidence-record summary { display: flex; justify-content: space-between; gap: 20px; padding: 17px 4px; cursor: pointer; font-size: .8rem; font-weight: 750; }
.evidence-record summary span:last-child { color: var(--muted); font-weight: 500; }
.evidence-content { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; padding: 10px 4px 28px; }
.evidence-content h3 { font-size: .84rem; }
.evidence-content li, .evidence-content p { color: var(--muted); font-size: .76rem; line-height: 1.5; }
.evidence-field { margin-bottom: 15px; }
.evidence-field strong, .evidence-field span { display: block; margin-bottom: 5px; font-size: .74rem; }
pre { max-height: 180px; overflow: auto; padding: 11px; white-space: pre-wrap; color: #3e5053; background: #f0ece4; border: 1px solid var(--line); border-radius: 5px; font: .65rem/1.45 var(--font-mono); }

.import-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(270px, .75fr); gap: clamp(30px, 7vw, 110px); align-items: end; margin-bottom: 24px; padding: clamp(30px, 5vw, 64px); overflow: hidden; color: #f7f2e9; background: #0e3340; border-radius: 22px; }
.import-hero::after { content: ""; position: absolute; right: -90px; top: -140px; width: 360px; height: 360px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.025), 0 0 0 96px rgba(255,255,255,.018); pointer-events: none; }
.import-hero > * { position: relative; z-index: 1; }
.import-hero .eyebrow { color: #f2a27f; }
.import-hero h1 { max-width: 680px; margin: 7px 0 16px; font-size: clamp(3rem, 7vw, 6.8rem); line-height: .85; letter-spacing: -.07em; }
.import-hero > div:first-child > p:last-child { max-width: 700px; margin: 0; color: rgba(247,242,233,.72); line-height: 1.65; }
.share-howto { padding: 20px 22px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; backdrop-filter: blur(12px); }
.share-howto > span { color: #f2a27f; font: 750 .62rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.share-howto ol { margin: 15px 0 0; padding-left: 20px; color: rgba(247,242,233,.82); font-size: .76rem; line-height: 1.8; }
.import-success { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; padding: 17px 20px; color: var(--success); background: var(--success-soft); border: 1px solid color-mix(in srgb, var(--success) 28%, transparent); border-radius: 13px; }
.import-success div { display: grid; gap: 3px; }
.import-success span { font-size: .75rem; }
.import-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr); gap: 22px; align-items: start; margin-bottom: 70px; }
.import-form { padding: clamp(22px, 4vw, 40px); background: var(--panel); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 45px rgba(14,51,64,.06); }
.import-source-row { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: 9px; align-items: end; margin-bottom: 27px; padding-bottom: 27px; border-bottom: 1px solid var(--line); }
.import-source-row label { display: grid; gap: 8px; color: var(--ink-soft); font: 700 .65rem/1.2 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.import-source-row input { min-height: 54px; padding: 12px 14px; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: 10px; font: .9rem/1.4 var(--font-body); text-transform: none; letter-spacing: 0; }
.import-source-row > span { width: 48px; height: 54px; display: grid; place-items: center; color: #fff; background: var(--signal-dark); border-radius: 10px; font-size: 1.1rem; }
.form-grid label small { color: var(--muted); font: inherit; font-weight: 500; text-transform: lowercase; }
.import-submit-row { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-top: 28px; padding-top: 23px; border-top: 1px solid var(--line); }
.import-submit-row p { max-width: 440px; margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.import-submit-row .button { flex: 0 0 auto; }
.import-trust { display: grid; gap: 0; padding: 25px; color: #f7f2e9; background: #173d47; border-radius: 18px; box-shadow: 0 18px 45px rgba(14,51,64,.1); }
.import-trust .eyebrow { margin-bottom: 12px; color: #f2a27f; }
.import-trust > div { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); }
.import-trust b { color: #f2a27f; font: 700 .62rem/1.5 var(--font-mono); }
.import-trust span { display: grid; gap: 5px; color: rgba(247,242,233,.65); font-size: .7rem; line-height: 1.45; }
.import-trust strong { color: #fff; font-size: .82rem; }

.site-footer { width: min(1480px, calc(100% - clamp(24px, 6vw, 92px))); margin: 0 auto; padding: 27px 0 44px; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--muted); border-top: 1px solid var(--line); font-size: .7rem; }
.site-footer strong { color: var(--ink); }
.site-footer nav { flex-wrap: wrap; justify-content: center; }
.site-footer nav a { padding: 6px 8px; font-size: .68rem; }

@media (max-width: 1180px) {
  .intent-grid { grid-template-columns: repeat(4, 1fr); }
  .quick-controls { grid-template-columns: 1fr 1fr 1fr; }
  .when-picker { grid-column: span 2; }
  .locate-button { align-self: end; }
  .attendee-hero { grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); }
  .attendance-layout { grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); }
}

@media (max-width: 820px) {
  .site-header { align-items: center; overflow-x: auto; }
  nav { flex: 0 0 auto; }
  .city-hero { min-height: 350px; grid-template-columns: 1fr; padding-bottom: 72px; }
  .hero-pulse { display: none; }
  .discovery-panel { margin-inline: 12px; }
  .revenue-hero { grid-template-columns: 1fr; }
  .revenue-principles { padding: 25px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.2); }
  .product-grid { grid-template-columns: 1fr; }
  .product-grid article { min-height: 210px; }
  .inquiry-layout { grid-template-columns: 1fr; }
  .inquiry-layout > div { position: static; }
  .intent-grid { grid-template-columns: repeat(2, 1fr); }
  .quick-controls { grid-template-columns: 1fr 1fr; }
  .when-picker { grid-column: span 2; }
  .smart-reach-note { grid-template-columns: 1fr; }
  .advanced-grid { grid-template-columns: 1fr 1fr; }
  .results-heading { align-items: flex-start; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .detail-grid, .source-summary { grid-template-columns: 1fr 1fr; }
  .review-card { grid-template-columns: 1fr; gap: 14px; }
  .evidence-content { grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; min-height: 0; padding: 36px 0; }
  .admin-hub-grid { grid-template-columns: 1fr 1fr; }
  .import-hero, .import-layout { grid-template-columns: 1fr; }
  .import-hero { gap: 25px; }
  .import-trust { grid-template-columns: 1fr 1fr; column-gap: 22px; }
  .import-trust .eyebrow { grid-column: 1 / -1; }
  .attendee-hero { grid-template-columns: 1fr; }
  .attendee-art { min-height: min(58vw, 460px); }
  .attendee-intro { padding: 36px; }
  .attendance-layout { grid-template-columns: 1fr; }
  .venue-map iframe, .map-unavailable { min-height: 300px; }
  .event-trust-strip { grid-template-columns: 1fr 1fr; }
  .event-trust-strip p { grid-column: 1 / -1; }
}

@media (max-width: 580px) {
  body::before { opacity: .1; }
  .site-header { min-height: 62px; padding: 8px 12px; gap: 8px; }
  .site-header .admin-nav-link { display: none; }
  .brand { gap: 8px; }
  .brand-mark { width: 29px; height: 29px; }
  .brand-mark i { top: 13px; }
  .brand-copy strong { font-size: .9rem; }
  .brand-copy small { display: none; }
  nav { gap: 0; }
  nav a { padding: 8px 7px; font-size: .68rem; }
  main { width: calc(100% - 24px); padding: 12px 0 70px; }
  main:has(.city-hero) { width: 100%; padding-top: 0; }
  .city-hero { min-height: 225px; padding: 31px 18px 48px; border-radius: 0; box-shadow: none; }
  .city-hero::before { width: 60%; }
  .city-hero .eyebrow { margin-bottom: 10px; font-size: .6rem; }
  .city-hero h1 { max-width: 340px; margin-bottom: 14px; font-size: clamp(3rem, 14.5vw, 4rem); line-height: .91; }
  .city-hero .lede { display: none; }
  .discovery-panel { width: calc(100% - 20px); margin: -22px auto 42px; padding: 16px 14px 20px; border-radius: 16px; scroll-margin-top: 74px; }
  .concierge-intro { grid-template-columns: 1fr; gap: 7px; margin-bottom: 10px; }
  .concierge-intro h2 { font-size: clamp(1.45rem, 7vw, 1.9rem); line-height: 1; }
  .concierge-note { margin-top: 10px; font-size: .72rem; }
  .memory-controls { display: flex; align-items: center; justify-content: space-between; padding: 0; }
  .memory-controls span { max-width: 210px; text-align: left; font-size: .7rem; }
  .memory-controls button { flex: 0 0 auto; }
  .search-command { grid-template-columns: auto minmax(0, 1fr) auto; min-height: 56px; padding: 4px 5px 4px 7px; }
  .dialogue-search { grid-template-columns: auto minmax(0, 1fr); }
  .dialogue-progress { margin: 14px auto 10px; }
  .dialogue-progress button { gap: 4px; min-height: 44px; padding: 5px 4px; font-size: .68rem; }
  .dialogue-progress button b { width: 21px; height: 21px; }
  .dialogue-pages { min-height: 0; padding-top: 9px; }
  .dialogue-step > legend { margin-bottom: 11px; font-size: 1.15rem; }
  .dialogue-place-controls { grid-template-columns: 1fr 1fr; gap: 9px; }
  .dialogue-place-controls .place-control:first-child { grid-column: 1 / -1; }
  .dialogue-place-controls .locate-button { grid-column: 1 / -1; }
  .dialogue-help { font-size: .72rem; line-height: 1.4; }
  .dialogue-footer { align-items: end; gap: 10px; }
  .selection-chips { max-width: 205px; }
  .selection-chips button { font-size: .68rem; }
  .dialogue-actions { gap: 5px; }
  .dialogue-back { min-height: 44px; padding-inline: 6px; }
  .dialogue-submit { max-width: 145px; min-height: 48px; padding: 9px 11px; font-size: .78rem; line-height: 1.1; }
  .search-glyph { width: 28px; }
  .search-command input { font-size: 1rem; }
  .search-command button { width: auto; padding: 11px 13px; font-size: .72rem; }
  .intent-picker { margin-top: 20px; }
  .place-control > label { margin-bottom: 9px; font-size: .7rem; }
  .intent-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0; padding: 0; overflow: visible; }
  .intent-card { min-height: 62px; grid-template-columns: 27px minmax(0, 1fr); gap: 7px; padding: 8px; border: 1px solid var(--line); border-radius: 10px 10px 10px 3px; box-shadow: none; }
  .intent-symbol { width: 26px; height: 26px; }
  .intent-copy strong { font-size: .76rem; }
  .intent-copy small { display: block; font-size: .58rem; }
  .intent-card:has(input:checked) { box-shadow: none; }
  .quick-controls { grid-template-columns: 1fr 1fr; gap: 13px 9px; margin-top: 17px; }
  .when-picker { grid-column: 1 / -1; }
  .quick-controls .place-control:first-of-type { grid-column: 1 / -1; }
  .segmented-control { grid-template-columns: repeat(4, 1fr); gap: 2px; }
  .segmented-control span { min-height: 48px; gap: 3px; padding-inline: 4px; font-size: .7rem; }
  .segmented-control span i { font-size: .82rem; }
  .place-control select { min-height: 44px; }
  .locate-button { grid-column: 1 / -1; min-height: 44px; }
  .location-status { position: static; grid-column: 1 / -1; }
  .smart-reach-note { grid-template-columns: 1fr; gap: 0; margin-top: 17px; padding: 11px 12px; }
  .smart-line { display: none; }
  .smart-reach-note p { font-size: .7rem; }
  .advanced-filters summary span { display: none; }
  .advanced-grid { grid-template-columns: 1fr; }
  .plan-bar { min-height: 96px; align-items: flex-start; gap: 12px; }
  .plan-bar-mark { width: 34px; height: 34px; }
  .plan-bar strong { white-space: normal; line-height: 1.35; }
  .plan-bar-actions { display: grid; gap: 5px; }
  .plan-bar-actions button { min-height: 44px; padding: 8px 10px; }
  .results-section { padding-inline: 12px; }
  .results-heading { position: relative; display: grid; gap: 13px; margin-bottom: 15px; padding-bottom: 15px; }
  .results-heading .eyebrow { margin-bottom: 8px; }
  .results-heading h2 { margin-bottom: 6px; font-size: 1.9rem; line-height: 1; }
  .results-heading p:last-child { font-size: .74rem; line-height: 1.45; }
  .sort-control { width: 100%; }
  .sort-control select { min-height: 44px; }
  .adjust-filters { position: absolute; right: 0; top: 0; display: inline; color: var(--signal-dark); font-size: .7rem; font-weight: 700; }
  .event-grid { grid-template-columns: 1fr; grid-auto-rows: 1fr; }
  .event-tile { min-height: 245px; display: grid; grid-template-columns: 108px minmax(0, 1fr); border-radius: 14px; box-shadow: 0 5px 18px rgba(14,51,64,.055); }
  .event-tile:hover { transform: none; box-shadow: 0 5px 18px rgba(14,51,64,.055); }
  .event-visual { grid-row: 1 / 3; height: 100%; min-height: 164px; }
  .event-tile-body { padding: 12px 13px 7px; }
  .event-kickers { gap: 5px 9px; margin-bottom: 8px; font-size: .55rem; }
  .event-kickers span + span::before { margin-right: 9px; }
  .event-tile h3 { min-height: 2.36em; margin: 6px 0 5px; font-size: 1.03rem; line-height: 1.18; }
  .event-schedule { margin-bottom: 4px; font-size: .66rem; }
  .event-place { min-height: 2.8em; margin-bottom: 0; font-size: .7rem; }
  .visual-fallback { justify-content: flex-end; padding: 11px 8px; }
  .visual-fallback b { width: 100%; font-size: .9rem; line-height: 1; -webkit-line-clamp: 3; }
  .city-mark { margin-bottom: 5px; font-size: .43rem; letter-spacing: .08em; }
  .event-summary, .event-tags, .quality-badge, .drive-estimate, .ticket-state { display: none; }
  .event-tags--primary { display: flex; }
  .event-tags--primary span { padding: 4px 5px; font-size: .5rem; }
  .event-tags--primary span:nth-child(n+2) { display: none; }
  .event-travel-row { margin-top: 7px; }
  .event-travel-row .travel-kicker { gap: 4px; padding: 4px 5px; font-size: .52rem; }
  .event-travel-row .travel-kicker em { padding: 3px 4px; font-size: .46rem; }
  .quality-badge--standout { right: 7px; bottom: 7px; width: 30px; height: 30px; display: flex; justify-content: center; padding: 0; border-radius: 50%; font-size: 0; transform: rotate(-5deg); }
  .quality-badge--standout i { width: 18px; height: 18px; }
  .travel-kicker em { display: inline-flex; }
  .travel-icon { width: 18px; height: 16px; }
  .travel-icon--car { width: 27px; height: 17px; }
  .travel-icon--hotel { width: 24px; height: 17px; }
  .date-ticket { left: 8px; top: 8px; width: 50px; min-height: 65px; }
  .date-ticket-month { min-height: 19px; font-size: .46rem; }
  .date-ticket strong { margin: 5px 0 3px; font-size: 1.32rem; }
  .date-ticket-meta { gap: 3px; padding-bottom: 5px; font-size: .42rem; }
  .date-ticket-meta i { display: none; }
  .date-ticket-rings { top: -3px; padding-inline: 7px; }
  .date-ticket-rings i { width: 3px; height: 8px; }
  .event-time--nearby { padding: 3px 6px; font-size: .5rem; }
  .event-time--road-trip { padding: 4px 7px; font-size: .54rem; }
  .event-time--overnight { padding: 5px 8px; font-size: .58rem; }
  .event-time-icon { width: 12px; height: 12px; }
  .event-time--road-trip .event-time-icon { width: 14px; height: 14px; }
  .event-time--overnight .event-time-icon { width: 15px; height: 15px; }
  .event-tile-footer { grid-column: 2; margin: 0 13px; padding: 9px 0 11px; }
  .event-tile-footer span { max-width: 82%; font-size: .57rem; }
  .event-tile-footer .event-card-cta { min-height: 44px; padding: 7px 9px; font-size: .68rem; }
  .event-tile-footer .event-card-cta b { font-size: .75rem; }
  .sponsor-label { left: 8px; top: 8px; max-width: 91px; padding: 6px 7px; font-size: .48rem; line-height: 1.25; }
  .sponsor-map-copy { right: 9px; bottom: 11px; font-size: .78rem; }
  .sponsor-tile .event-tags { display: none; }
  .sponsor-tile .event-summary { display: none; }
  .adsense-header, .adsense-footer { padding: 10px 12px; font-size: .52rem; }
  .adsense-header small { display: none; }
  .adsense-frame { min-height: 118px; padding: 5px; }
  .page-heading, .event-heading { display: block; }
  .quality-feedback { grid-template-columns: 1fr; gap: 16px; }
  .quality-feedback-actions { justify-content: flex-start; }
  .quality-feedback-actions [data-feedback-status] { text-align: left; }
  .event-heading > .button { margin-top: 18px; }
  .metric-grid, .detail-grid, .source-summary { grid-template-columns: 1fr; }
  .detail-grid .wide { grid-column: auto; }
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .site-footer { width: calc(100% - 24px); display: grid; justify-items: start; }
  .site-footer nav { justify-content: flex-start; margin-inline: -8px; }
  .admin-hub-grid { grid-template-columns: 1fr; }
  .import-hero { padding: 28px 20px; border-radius: 16px; }
  .import-hero h1 { font-size: 3.6rem; }
  .share-howto { padding: 17px; }
  .import-success, .import-submit-row { align-items: stretch; flex-direction: column; }
  .import-success .button, .import-submit-row .button { width: 100%; text-align: center; }
  .import-form { padding: 20px 16px; }
  .import-trust { grid-template-columns: 1fr; }
  .import-trust .eyebrow { grid-column: auto; }
  .attendee-page { padding-top: 4px; }
  .attendee-hero { min-height: 0; margin-bottom: 16px; border-radius: 16px; }
  .attendee-art { min-height: 280px; }
  .attendee-intro { padding: 24px 18px 27px; }
  .attendee-intro h1 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .attendee-lede { font-size: .82rem; }
  .attendee-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .attendee-actions .button { padding-inline: 8px; }
  .attendee-ticket { grid-column: 1 / -1; }
  .attendance-layout, .attendance-main { gap: 14px; }
  .consumer-panel { padding: 23px 18px; border-radius: 14px; }
  .attendance-facts { grid-template-columns: 1fr; }
  .venue-map { border-radius: 14px; }
  .venue-map iframe, .map-unavailable { min-height: 260px; }
  .event-trust-strip { grid-template-columns: 1fr; gap: 13px; }
  .event-trust-strip p { grid-column: auto; }
  .quality-feedback { padding: 20px 18px; }
  .debug-dialog { width: calc(100vw - 18px); max-height: calc(100vh - 18px); }
  .debug-dialog-header, .debug-dialog-body { padding-inline: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .typewriter-wrap > i { animation: none !important; }
}

/* LocalPulse Signal Ticket system — public experience */
:root {
  --ink: #102a31;
  --ink-soft: #405960;
  --muted: #52686d;
  --paper: #f6f0e5;
  --paper-deep: #eae1d2;
  --panel: #fffdf7;
  --navy: #092e38;
  --navy-deep: #061f27;
  --signal: #e86f47;
  --signal-dark: #a83f27;
  --signal-soft: #f6d8cb;
  --line: #d8d0c1;
  --success: #286b50;
  --danger: #9e3027;
  --danger-soft: #f1d4cd;
  --sun: #f2c75c;
  --mint: #a9c8b5;
  --sky: #afcfd8;
  --plum: #75556f;
  --shadow: 0 28px 72px rgba(9,46,56,.16);
  --font-display: ui-rounded, "Arial Rounded MT Bold", "Avenir Next", "Segoe UI Variable Display", "Aptos Display", system-ui, sans-serif;
  --font-body: "Aptos", "Segoe UI Variable Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

body { background: radial-gradient(circle at 8% 6%, rgba(232,111,71,.08), transparent 28rem), radial-gradient(circle at 92% 28%, rgba(169,200,181,.13), transparent 32rem), var(--paper); }
body::before { z-index: 0; opacity: .08; mix-blend-mode: normal; }
body > * { position: relative; }
:focus-visible { outline: 3px solid var(--navy) !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px var(--panel) !important; }
.button.primary, .search-command button { color: #fff; background: var(--signal-dark); }

.site-header { min-height: 70px; padding-block: 9px; border-color: rgba(16,42,49,.1); background: rgba(246,240,229,.86); }
.brand { gap: 12px; }
.lp-mark { width: 42px; height: 42px; flex: 0 0 auto; overflow: visible; color: var(--navy); }
.lp-mark > path:first-child { fill: currentColor; }
.lp-mark .lp-wave { fill: none; stroke: var(--panel); stroke-width: 2.6; stroke-linecap: round; }
.lp-mark .lp-dot { fill: var(--signal); transform-box: fill-box; transform-origin: center; animation: lp-signal 4s ease-out infinite; }
.brand-copy strong { display: inline-flex; align-items: center; color: var(--ink); font-size: 1.12rem; font-weight: 520; letter-spacing: -.055em; }
.brand-copy strong b { font-weight: 800; }
.brand-copy strong i { width: 5px; height: 5px; margin: 3px 0 0 4px; background: var(--signal); border-radius: 50%; }
.brand-copy small { margin-top: 6px; color: var(--muted); font-size: .5rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.site-header nav { gap: 6px; }
.site-header nav a { min-height: 44px; display: inline-flex; align-items: center; padding-inline: 14px; color: var(--ink-soft); border-radius: 99px; font-size: .8rem; }
.site-header nav a[aria-current="page"] { color: #fff; background: var(--navy); }
.site-header nav a[aria-current="page"]::after { display: none; }
.site-header .header-location { color: var(--ink); background: rgba(255,253,247,.7); border: 1px solid var(--line); }
.site-header .header-location span { margin-right: 6px; color: var(--signal-dark); font-size: 1rem; }

main:has(.planning-stage) { width: min(1500px, calc(100% - clamp(24px, 5vw, 76px))); padding-top: 28px; }
.planning-stage { position: relative; display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(460px, .88fr); gap: clamp(22px, 3vw, 46px); align-items: center; min-height: 560px; margin-bottom: clamp(58px, 7vw, 92px); padding: clamp(28px, 4vw, 56px); overflow: hidden; color: #f6f0e5; background: var(--navy); border-radius: 34px 34px 34px 10px; box-shadow: 0 34px 90px rgba(6,31,39,.22); isolation: isolate; }
.planning-stage::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .15; background-image: linear-gradient(31deg, transparent 44%, rgba(175,207,216,.55) 44.2%, transparent 44.5%), linear-gradient(121deg, transparent 61%, rgba(175,207,216,.45) 61.2%, transparent 61.5%), radial-gradient(circle at 73% 25%, transparent 0 92px, rgba(175,207,216,.5) 93px 94px, transparent 95px 146px, rgba(175,207,216,.35) 147px 148px, transparent 149px); background-size: 430px 320px, 500px 390px, 100% 100%; }
.planning-stage::after { content: ""; position: absolute; z-index: -1; width: 420px; height: 420px; right: -175px; bottom: -220px; background: var(--signal); border-radius: 50%; opacity: .13; }
.planning-stage .city-hero { min-height: 470px; display: flex; align-items: center; overflow: visible; padding: 26px 0; color: #f6f0e5; background: transparent; border-radius: 0; box-shadow: none; }
.planning-stage .city-hero::before, .planning-stage .city-grid { display: none; }
.hero-copy { max-width: 720px; }
.hero-live { width: max-content; display: flex; align-items: center; gap: 9px; margin: 0 0 22px; color: #ffd6c7; font: 750 .7rem/1 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.hero-live i { width: 8px; height: 8px; background: var(--signal); border-radius: 50%; box-shadow: 0 0 0 5px rgba(232,111,71,.16); }
.planning-stage .city-hero h1 { max-width: 680px; margin-bottom: 24px; font-size: clamp(4rem, 6.4vw, 7.2rem); line-height: .84; letter-spacing: -.075em; }
.planning-stage .city-hero h1 em { color: #ff9a73; font-weight: 500; }
.planning-stage .city-hero .lede { max-width: 590px; color: #c4dadd; font-size: clamp(.98rem, 1.35vw, 1.16rem); }
.hero-proof { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 30px; }
.hero-proof span { min-height: 34px; display: inline-flex; align-items: center; padding: 7px 11px; color: #d9e8e7; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 8px 8px 8px 2px; font-size: .7rem; font-weight: 700; }
.planning-stage .hero-pulse { position: absolute; right: 2%; bottom: 2%; width: 148px; height: 148px; opacity: .74; transform: scale(.75); transform-origin: bottom right; }
.orbit-label { position: absolute; padding: 4px 6px; color: #d8e7e7; background: var(--navy); border: 1px solid rgba(255,255,255,.2); border-radius: 5px; font: normal .54rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.orbit-label--one { left: -46px; top: 15px; }
.orbit-label--two { right: -48px; top: 74px; }
.orbit-label--three { left: -30px; bottom: 7px; }

.planning-stage .discovery-panel { width: 100%; align-self: center; margin: 0; padding: clamp(20px, 2.2vw, 30px); color: var(--ink); background: rgba(255,253,247,.98); border: 1px solid rgba(255,255,255,.8); border-radius: 24px 24px 24px 7px; box-shadow: 0 30px 70px rgba(6,31,39,.28); backdrop-filter: blur(20px); }
.concierge-intro { align-items: start; gap: 16px; margin-bottom: 12px; }
.concierge-intro .eyebrow { margin-bottom: 7px; color: var(--signal-dark); }
.concierge-intro h2 { font-size: clamp(1.7rem, 2.3vw, 2.35rem); }
.concierge-note { max-width: 520px; color: var(--ink-soft); font-size: .76rem; }
.memory-controls { align-content: start; gap: 3px; }
.memory-controls span { color: var(--muted); }
.memory-controls button { min-height: 36px; border-bottom: 0; font-size: .67rem; }
.memory-controls .typewriter-toggle { color: var(--signal-dark); }
.typewriter-wrap { color: var(--signal-dark); }
.typewriter-wrap > span { text-decoration-color: rgba(168,63,39,.3); }

.scenario-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 14px 0 5px; }
.scenario-strip button { min-width: 0; min-height: 66px; display: grid; place-items: center; gap: 4px; padding: 8px 6px; color: var(--ink); background: #f8f2e7; border: 1px solid #ded3c3; border-radius: 10px 10px 10px 3px; cursor: pointer; text-align: center; transition: transform .2s cubic-bezier(.2,.8,.2,1), border-color .2s ease, box-shadow .2s ease; }
.scenario-strip button:hover { z-index: 1; transform: translateY(-3px) rotate(-.4deg); border-color: var(--signal); box-shadow: 0 9px 20px rgba(9,46,56,.09); }
.scenario-strip button > i { width: 25px; height: 25px; display: grid; place-items: center; color: #fff; background: var(--navy); border-radius: 8px 8px 8px 2px; font: normal 750 .7rem/1 var(--font-mono); }
.scenario-strip button:nth-child(2) > i { background: var(--plum); }
.scenario-strip button:nth-child(3) > i { color: var(--ink); background: var(--sun); }
.scenario-strip button:nth-child(4) > i { background: var(--signal-dark); }
.scenario-strip button:nth-child(5) > i { background: var(--success); }
.scenario-strip button span, .scenario-strip button strong { display: block; min-width: 0; }
.scenario-strip button strong { overflow: hidden; font-size: .64rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.scenario-strip button small { display: none; }
.dialogue-keyword > summary { color: var(--signal-dark); }
.dialogue-progress { max-width: 460px; margin-block: 13px 8px; }
.dialogue-pages { min-height: 112px; padding-block: 7px 3px; }
.dialogue-step > legend { margin-bottom: 11px; font-size: 1.24rem; }
.intent-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.intent-card { min-height: 66px; grid-template-columns: 29px minmax(0,1fr); gap: 7px; padding: 8px; }
.intent-copy strong { font-size: .72rem; }
.intent-copy small { display: none; }
.intent-card:has(input:checked)::after { content: "✓"; right: 5px; top: 4px; bottom: auto; color: var(--sun); opacity: 1; transform: none; font-size: .72rem; }
.dialogue-place-controls { grid-template-columns: 1fr 1fr; }
.dialogue-place-controls .place-control:first-child { grid-column: 1 / -1; }
.dialogue-place-controls .locate-button { grid-column: 1 / -1; }
.dialogue-footer { margin-top: 8px; padding-top: 11px; }
.selection-chips button::after { content: "›"; font-size: 1rem; }
.dialogue-submit { min-height: 50px; padding-inline: 20px; background: var(--signal-dark); border-radius: 12px 12px 12px 4px; }
.advanced-filters { margin-top: 12px; }

.results-section { max-width: 1440px; margin-inline: auto; }
.results-heading { align-items: end; margin-bottom: 24px; padding-bottom: 18px; }
.results-heading h2 { font-size: clamp(2.25rem, 4vw, 4.35rem); }
.event-grid { grid-template-columns: repeat(3, minmax(0,1fr)); grid-auto-rows: 1fr; gap: clamp(16px, 2vw, 24px); }
.event-tile { min-height: 455px; border-radius: 20px 20px 20px 7px; border-color: rgba(16,42,49,.1); box-shadow: 0 8px 24px rgba(9,46,56,.07); }
.event-tile:hover { transform: translateY(-5px); border-color: rgba(168,63,39,.3); box-shadow: 0 22px 48px rgba(9,46,56,.15); }
.event-visual { height: auto; aspect-ratio: 16 / 10; }
.event-visual img { transition: transform .42s cubic-bezier(.2,.8,.2,1), filter .25s ease; }
.event-tile:hover .event-visual img { transform: scale(1.025); }
.visual-fallback { background: radial-gradient(circle at 82% 23%, rgba(242,199,92,.8) 0 4px, transparent 5px), repeating-radial-gradient(circle at 82% 23%, transparent 0 34px, rgba(255,255,255,.08) 35px 36px), linear-gradient(145deg, var(--navy), #145565); }
.visual-variant-2 .visual-fallback { background: radial-gradient(circle at 20% 22%, rgba(232,111,71,.8) 0 5px, transparent 6px), repeating-linear-gradient(32deg, transparent 0 24px, rgba(255,255,255,.07) 25px 26px), linear-gradient(145deg, #67475f, var(--plum)); }
.visual-variant-3 .visual-fallback { background: radial-gradient(circle at 75% 20%, var(--sun) 0 28px, transparent 29px), linear-gradient(35deg, transparent 45%, rgba(255,255,255,.13) 46% 48%, transparent 49%), linear-gradient(145deg, #286b50, #74a389); }
.event-tile-body { padding: 18px 19px 12px; }
.event-tile h3 { min-height: 2.12em; margin-block: 7px 8px; font-size: clamp(1.3rem, 1.65vw, 1.62rem); line-height: 1.06; }
.event-primary-link::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.event-tile:has(.event-primary-link:focus-visible) { outline: 3px solid var(--navy); outline-offset: 4px; box-shadow: 0 0 0 7px var(--panel), 0 22px 48px rgba(9,46,56,.15); }
.event-primary-link:focus-visible { outline: 0 !important; box-shadow: none !important; }
.event-kickers, .event-tags { position: relative; z-index: 4; pointer-events: none; }
.event-summary { color: var(--ink-soft); }
.ticket-state { color: var(--ink); }
.event-tile-footer { position: relative; z-index: 2; }
.event-card-cta { pointer-events: none; background: var(--navy); border-radius: 9px 9px 9px 3px; }
.event-tile--sold-out .event-tile-body, .event-tile--sold-out .event-tile-footer { filter: none; opacity: 1; }
.event-tile--sold-out { background: #f2eee6; }
.quality-badge--standout { color: var(--ink); background: var(--sun); border-color: #d1a635; box-shadow: 0 8px 20px rgba(6,31,39,.2); }

.attendee-hero { grid-template-columns: minmax(360px, .95fr) minmax(0, 1.05fr); border-radius: 26px 26px 26px 8px; }
.attendee-intro h1 { font-size: clamp(2.8rem, 4.7vw, 5.25rem); }
.attendee-ticket { background: var(--signal-dark); }
.mobile-attendance-bar { display: none; }

.site-footer { min-height: 150px; padding-block: 38px 48px; color: var(--muted); }
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand .lp-mark { width: 38px; height: 38px; }
.footer-brand span, .footer-brand strong, .footer-brand small { display: block; }
.footer-brand strong { color: var(--ink); font-size: 1rem; }
.footer-brand small { margin-top: 4px; color: var(--muted); }
.footer-place { text-align: right; line-height: 1.5; }
.site-footer nav a { min-height: 44px; display: inline-flex; align-items: center; }

@keyframes lp-signal {
  0%, 82%, 100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(232,111,71,0)); }
  88% { transform: scale(1.28); filter: drop-shadow(0 0 5px rgba(232,111,71,.55)); }
  94% { transform: scale(1); }
}

@media (max-width: 1180px) {
  .planning-stage { grid-template-columns: minmax(0,.95fr) minmax(430px,1.05fr); }
  .planning-stage .city-hero h1 { font-size: clamp(3.7rem, 7vw, 5.7rem); }
  .hero-proof span:nth-child(3) { display: none; }
  .event-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 860px) {
  main:has(.planning-stage) { width: 100%; padding-top: 0; }
  .planning-stage { display: block; min-height: 0; margin-bottom: 56px; padding: 0 0 28px; overflow: hidden; border-radius: 0 0 28px 8px; }
  .planning-stage .city-hero { min-height: 320px; padding: 46px 28px 82px; }
  .planning-stage .city-hero h1 { max-width: 620px; font-size: clamp(3.45rem, 11vw, 5.8rem); }
  .planning-stage .city-hero .lede { display: block; max-width: 520px; }
  .planning-stage .hero-pulse { display: grid; right: 20px; bottom: 34px; opacity: .45; transform: scale(.56); }
  .planning-stage .discovery-panel { width: calc(100% - 32px); margin: -45px auto 0; }
  .attendee-hero { grid-template-columns: 1fr; min-height: 0; }
  .attendee-art { min-height: 0; aspect-ratio: 16 / 9; }
  .results-section { padding-inline: 16px; }
  .event-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .site-header { min-height: 62px; padding: 7px 12px; overflow: visible; }
  .lp-mark { width: 36px; height: 36px; }
  .brand-copy strong { font-size: .98rem; }
  .brand-copy small { display: none; }
  .site-header nav a { min-height: 44px; padding-inline: 9px; font-size: .78rem; }
  .site-header nav a[aria-current="page"] { display: none; }
  .site-header .header-location { max-width: 132px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .planning-stage { margin-bottom: 44px; }
  .planning-stage .city-hero { min-height: 260px; padding: 36px 20px 74px; }
  .hero-live { margin-bottom: 16px; font-size: .62rem; }
  .planning-stage .city-hero h1 { max-width: 350px; margin-bottom: 15px; font-size: clamp(3.1rem, 15vw, 4.15rem); line-height: .87; }
  .planning-stage .city-hero .lede, .hero-proof, .planning-stage .hero-pulse { display: none; }
  .planning-stage .discovery-panel { width: calc(100% - 20px); margin-top: -37px; padding: 17px 14px 19px; border-radius: 19px 19px 19px 6px; }
  .concierge-intro { grid-template-columns: 1fr; gap: 4px; }
  .concierge-intro h2 { font-size: 1.65rem; }
  .concierge-note { font-size: .74rem; }
  .memory-controls { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 0 12px; }
  .memory-controls span { flex: 1 0 100%; max-width: none; text-align: left; }
  .memory-controls button { min-height: 44px; padding-inline: 0; }
  .scenario-strip { grid-template-columns: repeat(5, minmax(118px, 1fr)); margin-inline: -14px; padding: 2px 14px 8px; overflow-x: auto; scrollbar-color: var(--signal-dark) var(--paper-deep); scrollbar-width: thin; scroll-snap-type: x proximity; }
  .scenario-strip button { min-height: 68px; grid-template-columns: 26px 1fr; place-items: center start; text-align: left; scroll-snap-align: start; }
  .scenario-strip button span { min-width: 0; }
  .scenario-strip button strong { font-size: .7rem; }
  .dialogue-keyword > summary { font-size: .75rem; }
  .dialogue-progress { margin-block: 10px 6px; }
  .dialogue-progress button { font-size: .66rem; }
  .dialogue-step > legend { font-size: 1.16rem; }
  .intent-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .intent-card { min-height: 72px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 6px 3px; text-align: center; }
  .intent-symbol { width: 28px; height: 28px; }
  .intent-copy strong { font-size: .72rem; line-height: 1.08; }
  .intent-card:has(input:checked)::after { right: 3px; top: 3px; }
  .segmented-control { grid-template-columns: 1fr 1fr; }
  .dialogue-place-controls { grid-template-columns: 1fr; }
  .dialogue-place-controls .place-control:first-child, .dialogue-place-controls .locate-button { grid-column: auto; }
  .dialogue-footer { align-items: stretch; flex-direction: column; }
  .dialogue-footer > div:first-child { width: 100%; }
  .selection-chips { max-width: none; }
  .selection-chips button { min-height: 44px; font-size: .72rem; }
  .dialogue-actions { width: 100%; justify-content: flex-end; }
  .dialogue-submit { max-width: none; min-height: 50px; flex: 1; font-size: .84rem; }
  .results-heading { gap: 12px; }
  .results-heading h2 { font-size: 2.15rem; }
  .results-heading p, .results-heading p:last-child { color: var(--ink-soft); font-size: .82rem; }
  .event-grid { grid-template-columns: 1fr; gap: 15px; }
  .event-tile { min-height: 0; display: flex; border-radius: 17px 17px 17px 6px; }
  .event-visual { width: 100%; aspect-ratio: 16 / 9; min-height: 0; }
  .event-tile-body { padding: 16px 16px 10px; }
  .event-tags--primary { display: flex; }
  .event-tags--primary span { font-size: .62rem; }
  .event-tags--primary span:nth-child(n+2) { display: inline-flex; }
  .event-tile h3 { min-height: 0; margin-block: 7px; font-size: 1.35rem; }
  .event-schedule, .event-place, .ticket-state { min-height: 0; color: var(--ink); font-size: .9rem; line-height: 1.4; }
  .event-summary { display: none; }
  .event-travel-row { margin-top: 10px; }
  .event-travel-row .travel-kicker { min-height: 40px; font-size: .82rem; }
  .event-travel-row .travel-kicker em { font-size: .72rem; }
  .quality-badge { display: inline-flex; font-size: .65rem; }
  .quality-badge--standout { width: auto; height: auto; padding: 7px 9px; border-radius: 7px 7px 7px 2px; transform: none; font-size: .65rem; }
  .quality-badge--standout i { width: 8px; height: 8px; }
  .event-tile-footer { grid-column: auto; margin-inline: 16px; }
  .event-tile-footer span { max-width: none; font-size: .68rem; }
  .event-tile-footer .event-card-cta { min-height: 44px; font-size: .82rem; }
  .date-ticket { width: 58px; min-height: 74px; }
  .date-ticket strong { font-size: 1.55rem; }
  .sold-out-sash { font-size: .65rem; }
  .attendee-page { padding-bottom: 84px; }
  .attendee-art { min-height: 0; aspect-ratio: 16 / 9; }
  .attendee-art--fallback > span { font-size: clamp(2.25rem, 12vw, 3.8rem); }
  .mobile-attendance-bar { position: fixed; z-index: 14; left: 10px; right: 10px; bottom: 10px; min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 16px; color: #fff; background: rgba(6,31,39,.96); border: 1px solid rgba(255,255,255,.16); border-radius: 16px 16px 16px 5px; box-shadow: 0 18px 50px rgba(6,31,39,.3); backdrop-filter: blur(16px); padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .mobile-attendance-bar div { display: grid; gap: 3px; }
  .mobile-attendance-bar small { color: #f4c8b7; font-size: .72rem; font-weight: 800; }
  .mobile-attendance-bar strong { font-size: .82rem; }
  .mobile-attendance-bar > a { min-height: 48px; display: inline-flex; align-items: center; padding: 10px 15px; color: #fff; background: var(--signal-dark); border-radius: 11px 11px 11px 4px; font-size: .82rem; font-weight: 820; text-decoration: none; }
  .site-footer { width: calc(100% - 28px); gap: 20px; }
  .footer-place { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Happens.city — one recognizable system, with a distinct atmosphere per city. */
html, body, .site-header, .signal-board, .event-tile, .filter-dialog { transition: background-color .35s ease, border-color .35s ease, color .25s ease; }
body {
  background:
    radial-gradient(circle at 8% 5%, color-mix(in srgb, var(--signal) 10%, transparent), transparent 29rem),
    radial-gradient(circle at 92% 22%, color-mix(in srgb, var(--sun) 13%, transparent), transparent 31rem),
    var(--paper);
}
.happens-mark { width: 42px; height: 42px; flex: 0 0 auto; overflow: visible; }
.happens-pillar { fill: var(--navy); }
.happens-bridge { fill: none; stroke: var(--panel); stroke-width: 3.1; stroke-linecap: round; }
.happens-dot { fill: var(--signal); transform-box: fill-box; transform-origin: center; animation: lp-signal 4s ease-out infinite; }
.brand-copy strong { gap: 0; font-size: 1.17rem; font-weight: 820; letter-spacing: -.06em; }
.brand-copy strong b { font-weight: 820; }
.brand-copy strong i { width: auto; height: auto; margin: .12em 0 0 .08em; color: var(--signal-dark); background: transparent; border-radius: 0; font: normal 720 .68em/1 var(--font-mono); letter-spacing: -.05em; }
.brand-copy small { display: block; }
.footer-brand .happens-mark { width: 38px; height: 38px; }

.signal-board::before, .signal-board::after { content: ""; position: absolute; z-index: -2; pointer-events: none; }
.signal-board::before { width: min(48vw, 620px); height: min(48vw, 620px); right: -16%; top: -55%; opacity: .16; border: 1px solid var(--navy); border-radius: 50%; box-shadow: 0 0 0 34px color-mix(in srgb, var(--navy) 15%, transparent), 0 0 0 92px color-mix(in srgb, var(--signal) 11%, transparent); }
.signal-board::after { width: 190px; height: 110px; right: 4%; bottom: 5%; opacity: .15; background: repeating-linear-gradient(100deg, var(--navy) 0 2px, transparent 2px 14px); transform: skewX(-14deg); }
.signal-board-intro > div { min-width: 0; }
.signal-board-intro .eyebrow { display: flex; align-items: center; gap: 9px; }
.signal-board-intro .eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--signal); border-radius: 2px; }
.signal-board-intro h1 { max-width: 860px; }
.signal-board-intro h1 em { text-decoration: underline; text-decoration-thickness: .07em; text-underline-offset: .1em; text-decoration-color: color-mix(in srgb, var(--signal) 36%, transparent); }

html[data-city-art="brass"] .signal-board::before { border-radius: 50% 50% 12% 50%; transform: rotate(18deg); box-shadow: 0 0 0 24px color-mix(in srgb, var(--sun) 20%, transparent), 0 0 0 78px color-mix(in srgb, var(--signal) 12%, transparent); }
html[data-city-art="brass"] .signal-board::after { background: repeating-radial-gradient(ellipse at 100% 50%, transparent 0 14px, var(--navy) 15px 17px, transparent 18px 29px); transform: rotate(-8deg); }
html[data-city-art="river"] .signal-board::before { width: 720px; height: 180px; top: auto; right: -8%; bottom: -52px; border: 0; border-radius: 50%; box-shadow: 0 -18px 0 color-mix(in srgb, var(--navy) 12%, transparent), 0 -48px 0 color-mix(in srgb, var(--signal) 10%, transparent), 0 -78px 0 color-mix(in srgb, var(--sun) 12%, transparent); transform: rotate(-4deg); }
html[data-city-art="river"] .signal-board::after { width: 260px; background: repeating-linear-gradient(90deg, var(--signal) 0 3px, transparent 3px 18px); transform: skewX(-24deg); }
html[data-city-art="iron"] .signal-board::before { border-radius: 8px; border-width: 2px; transform: rotate(42deg); box-shadow: 0 0 0 32px color-mix(in srgb, var(--navy) 10%, transparent), 0 0 0 72px color-mix(in srgb, var(--highlight-color, var(--sun)) 9%, transparent); }
html[data-city-art="iron"] .signal-board::after { background: repeating-linear-gradient(45deg, transparent 0 12px, var(--navy) 13px 15px); transform: none; }
html[data-city-art="campus"] .signal-board::before { border-radius: 50% 50% 8px 8px; border-width: 2px; transform: rotate(-6deg); }
html[data-city-art="campus"] .signal-board::after { height: 90px; background: repeating-linear-gradient(90deg, var(--navy) 0 8px, transparent 8px 22px); clip-path: polygon(0 100%,0 35%,8% 35%,8% 0,18% 0,18% 35%,82% 35%,82% 0,92% 0,92% 35%,100% 35%,100% 100%); transform: none; }
html[data-city-art="magnolia"] .signal-board::before { border-radius: 48% 52% 46% 54%; transform: rotate(24deg); box-shadow: 38px 12px 0 color-mix(in srgb, var(--sun) 12%, transparent), -34px 25px 0 color-mix(in srgb, var(--signal) 9%, transparent); }

/* City edition operations */
.city-admin-heading { margin-bottom: 28px; }
.admin-success { margin: 0 0 22px; padding: 13px 16px; color: #174b35; background: #e0f2e7; border: 1px solid #9dc8ad; border-radius: 10px; font-weight: 760; }
.city-create-panel { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: 30px; align-items: end; margin-bottom: 26px; padding: 24px; background: var(--navy); color: white; border-radius: 18px 18px 18px 5px; }
.city-create-panel .eyebrow { color: color-mix(in srgb, var(--signal) 60%, white); }
.city-create-panel h2 { margin-bottom: 8px; font-size: 2rem; }
.city-create-panel p { margin-bottom: 0; color: #d9e5e1; }
.city-create-panel form { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; align-items: end; }
.city-create-panel label, .city-editor-form label:not(.check) { display: grid; gap: 7px; color: var(--muted); font: 720 .66rem/1.2 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.city-create-panel label { color: #d9e5e1; }
.city-create-panel input, .city-editor-form input:not([type="checkbox"]), .city-editor-form select, .city-editor-form textarea { width: 100%; min-height: 45px; padding: 9px 11px; color: var(--ink); background: var(--panel); border: 1px solid #9ca7a5; border-radius: 7px; }
.city-create-panel button { min-height: 45px; }
.city-admin-list { display: grid; gap: 13px; }
.city-editor { overflow: hidden; background: var(--panel); border: 1px solid var(--line); border-radius: 15px 15px 15px 5px; box-shadow: 0 10px 28px rgba(9,46,56,.06); }
.city-editor > summary { min-height: 88px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px; padding: 14px 20px; cursor: pointer; list-style: none; }
.city-editor > summary::-webkit-details-marker { display: none; }
.city-editor > summary::after { content: "+"; grid-column: 4; color: var(--muted); font-size: 1.5rem; }
.city-editor[open] > summary::after { content: "−"; }
.city-editor > summary strong, .city-editor > summary small { display: block; }
.city-editor > summary strong { margin-bottom: 6px; font-size: 1.05rem; }
.city-editor > summary small { color: var(--muted); }
.city-swatch { position: relative; width: 52px; height: 52px; overflow: hidden; background: var(--swatch-primary); border-radius: 12px 12px 12px 3px; }
.city-swatch::before { content: ""; position: absolute; width: 30px; height: 30px; right: -8px; top: -8px; background: var(--swatch-highlight); border-radius: 50%; }
.city-swatch i { position: absolute; width: 28px; height: 7px; left: 10px; bottom: 10px; background: var(--swatch-accent); border-radius: 99px; transform: rotate(-12deg); }
.city-status { padding: 7px 9px; color: #174b35; background: #e0f2e7; border-radius: 99px; font: 760 .62rem/1 var(--font-mono); text-transform: uppercase; }
.city-status--off { color: #74433d; background: #f2dfda; }
.city-editor-form { display: grid; gap: 0; padding: 0 22px 22px; border-top: 1px solid var(--line); }
.city-editor-form fieldset { padding: 22px 0; border-bottom: 1px solid var(--line); }
.city-editor-form legend { margin-bottom: 12px; font: 780 1.15rem/1 var(--font-display); }
.field-help { margin: -3px 0 14px; color: var(--muted); font-size: .75rem; }
.admin-form-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }
.admin-form-grid--geo { grid-template-columns: repeat(3,minmax(0,1fr)); }
.admin-form-grid .form-wide, .city-editor-form .form-wide { grid-column: 1 / -1; }
.city-editor-form .check { min-height: 45px; display: flex; align-items: center; gap: 9px; padding: 9px 11px; color: var(--ink); background: #f8f4eb; border: 1px solid var(--line); border-radius: 7px; font-size: .77rem; font-weight: 720; }
.color-field-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.color-field-grid label { grid-template-columns: 38px minmax(0,1fr); align-items: center; min-height: 58px; padding: 8px; background: #f8f4eb; border: 1px solid var(--line); border-radius: 8px; }
.color-field-grid label span { grid-column: 2; color: var(--ink); font-family: var(--font-body); font-weight: 760; text-transform: none; }
.color-field-grid input[type="color"] { grid-row: 1 / 3; width: 38px !important; height: 38px; min-height: 38px !important; padding: 2px !important; cursor: pointer; }
.color-field-grid code { grid-column: 2; color: var(--muted); font-size: .65rem; text-transform: lowercase; }
.location-preset-editor { font: .75rem/1.65 var(--font-mono); text-transform: none; }
.city-editor-form footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; }
.city-theme-preview { min-height: 145px; display: flex; align-items: center; gap: 22px; margin-top: 22px; padding: 24px; color: white; background: var(--preview-primary); border-radius: 15px 15px 15px 4px; box-shadow: inset 0 -10px 0 color-mix(in srgb, var(--preview-accent) 55%, transparent); }
.city-theme-preview-mark { position: relative; width: 68px; height: 68px; display: grid; place-items: center; flex: 0 0 auto; color: var(--preview-primary); background: var(--preview-paper); border-radius: 18px 18px 18px 5px; }
.city-theme-preview-mark b { font-size: 2.1rem; }
.city-theme-preview-mark i { position: absolute; width: 14px; height: 14px; right: -4px; top: -4px; background: var(--preview-highlight); border-radius: 50%; }
.city-theme-preview small, .city-theme-preview strong, .city-theme-preview span { display: block; }
.city-theme-preview small { margin-bottom: 8px; color: #e6eeee; font: 700 .62rem/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase; }
.city-theme-preview strong { font-size: clamp(1.65rem,3vw,2.8rem); line-height: .9; letter-spacing: -.06em; }
.city-theme-preview strong em { color: var(--preview-highlight); font-style: normal; }
.city-theme-preview span { margin-top: 12px; color: #e6eeee; font-size: .72rem; }

@media (max-width: 900px) {
  .city-create-panel { grid-template-columns: 1fr; }
  .city-create-panel form { grid-template-columns: 1fr 1fr; }
  .admin-form-grid, .color-field-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .brand-copy small { max-width: 132px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .signal-board-intro { display: block; }
  .signal-board-intro > p:last-child { margin-top: 16px; text-align: left; }
  .city-create-panel form, .admin-form-grid, .admin-form-grid--geo, .color-field-grid { grid-template-columns: 1fr; }
  .city-editor > summary { grid-template-columns: auto minmax(0,1fr); gap: 12px; padding-inline: 14px; }
  .city-editor > summary .city-status { grid-column: 2; width: max-content; }
  .city-editor > summary::after { grid-column: 3; grid-row: 1 / 3; }
  .city-editor-form { padding-inline: 14px; }
  .city-theme-preview { align-items: flex-start; padding: 18px; }
  .city-theme-preview-mark { width: 50px; height: 50px; border-radius: 13px 13px 13px 4px; }
  .city-theme-preview-mark b { font-size: 1.55rem; }
  .city-editor-form footer { align-items: stretch; flex-direction: column; }
}

/* Signal Board — direct discovery, with one control for each choice */
main:has(.signal-board) { width: min(1360px, calc(100% - clamp(28px, 5vw, 72px))); padding-top: 0; }
.signal-board { position: relative; isolation: isolate; overflow: hidden; padding: clamp(28px, 4vw, 48px) 0 20px; border-bottom: 1px solid var(--line); }
.signal-ambient { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .72; }
.signal-board-intro, .signal-toolbar { position: relative; z-index: 1; }
.signal-board-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; margin-bottom: 24px; }
.signal-board-intro .eyebrow { margin-bottom: 9px; color: var(--signal-dark); }
.signal-board-intro h1 { margin: 0; font-size: clamp(3.3rem, 6.2vw, 6.6rem); line-height: .82; letter-spacing: -.075em; }
.signal-board-intro h1 em { color: var(--signal); font-weight: 520; }
.signal-board-intro > p:last-child { max-width: 390px; margin: 0 0 4px; color: var(--ink-soft); font-size: clamp(.92rem, 1.3vw, 1.08rem); line-height: 1.45; text-align: right; }
.signal-toolbar { display: grid; grid-template-columns: minmax(340px, 1fr) auto minmax(142px, auto) auto auto; align-items: end; gap: 9px; }
.signal-search, .signal-sort { min-width: 0; display: grid; gap: 6px; }
.signal-search > label, .signal-sort > span { color: var(--muted); font: 760 .62rem/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.signal-search > div { min-height: 54px; display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 9px; padding: 0 16px; background: var(--surface, #fffdf8); border: 1px solid #9da9a6; border-radius: 9px 9px 9px 3px; }
.signal-search input { width: 100%; min-height: 50px; padding: 0; color: var(--ink); background: transparent; border: 0; outline: 0; font-size: 1rem; }
.signal-search:focus-within > div { border-color: var(--navy); box-shadow: inset 4px 0 0 var(--signal); }
.signal-filter-trigger, .signal-update { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 17px; border-radius: 9px 9px 9px 3px; cursor: pointer; font-size: .86rem; font-weight: 820; }
.signal-filter-trigger { color: var(--ink); background: var(--panel); border: 1px solid #9da9a6; }
.signal-filter-trigger svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.signal-filter-trigger b { min-width: 21px; height: 21px; display: grid; place-items: center; color: white; background: var(--signal-dark); border-radius: 50%; font: 800 .62rem/1 var(--font-mono); }
.signal-filter-trigger b[hidden] { display: none; }
.signal-sort select { min-height: 54px; padding: 0 38px 0 13px; color: var(--ink); background: var(--panel); border-color: #9da9a6; border-radius: 9px 9px 9px 3px; font-weight: 720; }
.signal-update { color: white; background: var(--signal-dark); border: 1px solid var(--signal-dark); }
.signal-update:hover { background: var(--navy); border-color: var(--navy); }
.signal-update i { font-style: normal; font-size: 1.1rem; }
.signal-update i, .event-card-cta b { transition: transform .16s cubic-bezier(.2,.75,.2,1); }
.signal-update:hover i, .event-tile:hover .event-card-cta b { transform: translateX(3px); }
.signal-reset { min-height: 54px; display: inline-flex; align-items: center; padding: 0 7px; color: var(--signal-dark); font-size: .76rem; font-weight: 780; }

.filter-dialog { width: min(880px, calc(100% - 32px)); max-width: none; max-height: min(88dvh, 860px); margin: auto; padding: 0; overflow: hidden; color: var(--ink); background: var(--panel); border: 1px solid var(--navy); border-radius: 14px 14px 14px 5px; box-shadow: 0 30px 90px rgba(6,31,39,.28); }
.filter-dialog::backdrop { background: rgba(6,31,39,.58); backdrop-filter: blur(2px); }
.filter-sheet { max-height: min(88dvh, 860px); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.filter-sheet-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 26px 18px; border-bottom: 1px solid var(--line); }
.filter-sheet-header .eyebrow { margin-bottom: 5px; color: var(--signal-dark); }
.filter-sheet-header h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.6rem); letter-spacing: -.05em; }
.filter-sheet-close { width: 46px; height: 46px; display: grid; place-items: center; color: var(--ink); background: transparent; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; font-size: 1.65rem; }
.filter-sheet-body { min-height: 0; overflow-y: auto; padding: 4px 26px 26px; overscroll-behavior: contain; }
.filter-group { margin: 0; padding: 22px 0; border: 0; border-bottom: 1px solid var(--line); }
.filter-group legend { width: 100%; margin-bottom: 13px; color: var(--ink); font: 760 1.05rem/1.2 var(--font-display); }
.filter-choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.filter-choice-grid--vibe { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.filter-choice-grid label { position: relative; min-width: 0; cursor: pointer; }
.filter-choice-grid input { position: absolute; opacity: 0; }
.filter-choice-grid label > span { min-height: 52px; display: flex; align-items: center; gap: 9px; padding: 9px 11px; color: var(--ink); background: #f8f4eb; border: 1px solid var(--line); border-radius: 8px; }
.filter-choice-grid label > span i { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; color: var(--signal-dark); background: var(--panel); border: 1px solid #ddcdbd; border-radius: 7px; font: normal 800 .7rem/1 var(--font-mono); }
.filter-choice-grid label > span b { min-width: 0; overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.filter-choice-grid label:has(input:checked) > span { color: white; background: var(--navy); border-color: var(--navy); box-shadow: inset 4px 0 0 var(--signal); }
.filter-choice-grid label:has(input:checked) > span i { color: var(--navy); background: var(--sun); border-color: var(--sun); }
.filter-choice-grid label:has(input:focus-visible) > span { outline: 3px solid var(--navy); outline-offset: 3px; box-shadow: 0 0 0 6px var(--panel); }
.filter-place-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr auto; align-items: end; gap: 9px; }
.filter-place-grid label { display: grid; gap: 7px; color: var(--muted); font: 730 .67rem/1 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.filter-place-grid select { min-height: 48px; color: var(--ink); background: var(--panel); border-color: #9da9a6; }
.filter-place-grid .locate-button { min-height: 48px; }
.filter-group .location-status { min-height: 18px; margin: 8px 0 0; }
.filter-more { margin-top: 18px; }
.filter-more > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--ink); cursor: pointer; font-weight: 800; }
.filter-more > summary span { color: var(--muted); font-size: .72rem; font-weight: 600; }
.filter-more .advanced-grid { padding-top: 14px; }
.filter-sheet-footer { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 26px max(12px, env(safe-area-inset-bottom)); background: var(--panel); border-top: 1px solid var(--line); }
.filter-clear, .filter-apply { min-height: 48px; padding: 10px 17px; border-radius: 8px; cursor: pointer; font-weight: 820; }
.filter-clear { color: var(--signal-dark); background: transparent; border: 1px solid var(--line); }
.filter-apply { color: white; background: var(--signal-dark); border: 1px solid var(--signal-dark); }

main:has(.signal-board) .results-section { padding-top: 22px; }
main:has(.signal-board) .results-heading { min-height: 54px; margin: 0 0 14px; padding: 0; border-bottom: 0; }
main:has(.signal-board) .results-heading h2 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.5rem); letter-spacing: -.055em; }
main:has(.signal-board) .sponsor-policy { margin: 6px 0 0; font-size: .68rem; }
main:has(.signal-board) .event-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 18px; }
main:has(.signal-board) .event-tile { min-height: 0; animation: none; background: var(--panel); border: 1px solid #c9c3b7; border-radius: 11px 11px 11px 3px; box-shadow: none; transition: border-color .16s ease, box-shadow .16s ease; }
main:has(.signal-board) .event-tile:hover { transform: none; border-color: #8d9b98; box-shadow: 0 12px 28px rgba(9,46,56,.1); }
main:has(.signal-board) .event-visual { height: auto; aspect-ratio: 16 / 8.6; }
main:has(.signal-board) .event-visual--fallback { height: auto; }
main:has(.signal-board) .event-visual img { transition: none; }
main:has(.signal-board) .event-tile:hover .event-visual img { transform: none; }
main:has(.signal-board) .visual-fallback { padding: 18px 18px 14px 72px; }
main:has(.signal-board) .visual-fallback .city-mark { margin: auto 0 0; }
main:has(.signal-board) .date-ticket { inset: 0 auto 0 0; width: 56px; min-height: 0; justify-content: center; color: white; background: rgba(168,63,39,.96); border: 0; border-radius: 0; box-shadow: 8px 0 20px rgba(6,31,39,.14); animation: none; transform: none; }
main:has(.signal-board) .date-ticket::after, main:has(.signal-board) .date-ticket-rings { display: none; }
main:has(.signal-board) .date-ticket-month { min-height: 0; padding: 0; color: #ffd9c9; background: transparent; border-radius: 0; }
main:has(.signal-board) .date-ticket strong { margin: 8px 0 6px; color: white; font-size: 1.75rem; }
main:has(.signal-board) .date-ticket-meta { color: white; }
main:has(.signal-board) .date-ticket-meta i { display: none; }
main:has(.signal-board) .event-tile:hover .date-ticket { transform: none; box-shadow: 8px 0 20px rgba(6,31,39,.14); }
main:has(.signal-board) .quality-badge:not(.quality-badge--standout) { display: none; }
main:has(.signal-board) .quality-badge--standout { top: 0; right: 0; bottom: auto; color: var(--ink); background: #d9ee72; border: 0; border-radius: 0 0 0 9px; box-shadow: none; transform: none; }
main:has(.signal-board) .event-tile--standout:hover .quality-badge--standout { transform: none; }
main:has(.signal-board) .sold-out-sash { inset: auto 0 0; width: 100%; padding: 9px 0; border: 0; box-shadow: none; transform: none; }
main:has(.signal-board) .event-tile-body { padding: 15px 17px 10px; }
main:has(.signal-board) .event-tags--primary span { padding: 4px 6px; font-size: .57rem; }
main:has(.signal-board) .event-tile h3 { min-height: 2.12em; margin: 7px 0 6px; font-size: clamp(1.22rem, 1.6vw, 1.5rem); }
main:has(.signal-board) .event-schedule { font-size: .77rem; }
main:has(.signal-board) .event-place { font-size: .75rem; }
main:has(.signal-board) .event-summary { display: none; }
main:has(.signal-board) .ticket-state { font-size: .7rem; }
main:has(.signal-board) .event-travel-row { margin-top: 8px; }
main:has(.signal-board) .event-travel-row .travel-kicker { min-height: 34px; padding-block: 4px; }
main:has(.signal-board) .drive-estimate { display: none; }
main:has(.signal-board) .event-tile-footer { min-height: 52px; justify-content: flex-end; margin: 0 17px; padding: 7px 0 10px; }
main:has(.signal-board) .event-tile:not(.sponsor-tile) .event-tile-footer > span:first-child:not(.event-card-cta) { display: none; }
main:has(.signal-board) .event-card-cta { min-height: 40px; padding: 7px 11px; border-radius: 7px; font-size: .72rem; }
main:has(.signal-board) .sponsor-tile .event-summary { display: -webkit-box; }
.lp-dot, .date-ticket { animation: none !important; }
.is-loading .results-section { transform: none; }

@media (max-width: 980px) {
  .signal-toolbar { grid-template-columns: minmax(280px, 1fr) auto minmax(135px, auto) auto; }
  .signal-reset { grid-column: 1 / -1; min-height: 30px; justify-self: end; }
  main:has(.signal-board) .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-choice-grid--vibe { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-place-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  main:has(.signal-board) { width: 100%; }
  .site-header nav a[aria-current="page"] { display: none; }
  .signal-board { padding: 26px 15px 14px; }
  .signal-board-intro { display: block; margin-bottom: 18px; }
  .signal-board-intro h1 { max-width: 340px; font-size: clamp(3.35rem, 16vw, 4.25rem); }
  .signal-board-intro > p:last-child { max-width: 300px; margin-top: 12px; font-size: .88rem; text-align: left; }
  .signal-toolbar { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; }
  .signal-search { grid-column: 1 / -1; }
  .signal-search > div { min-height: 50px; padding-inline: 13px; }
  .signal-search input { min-height: 46px; font-size: .9rem; }
  .signal-filter-trigger, .signal-update { min-height: 46px; padding-inline: 12px; }
  .signal-sort { display: block; }
  .signal-sort > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .signal-sort select { width: 100%; min-height: 46px; padding-left: 11px; font-size: .78rem; }
  .signal-update span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .signal-update i { font-size: 1.25rem; }
  .signal-reset { grid-column: 1 / -1; min-height: 32px; justify-self: end; }
  .filter-dialog { width: 100%; height: min(92dvh, 820px); max-height: none; margin: auto 0 0; border-width: 1px 0 0; border-radius: 18px 18px 0 0; }
  .filter-sheet { height: 100%; max-height: none; }
  .filter-sheet-header { padding: 18px 16px 14px; }
  .filter-sheet-body { padding: 2px 16px 24px; }
  .filter-sheet-footer { padding-inline: 16px; }
  .filter-choice-grid, .filter-choice-grid--vibe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-choice-grid label > span { min-height: 50px; }
  .filter-choice-grid label > span b { font-size: .78rem; }
  .filter-place-grid { grid-template-columns: 1fr; }
  .filter-more > summary span { display: none; }
  main:has(.signal-board) .results-section { padding: 17px 15px 0; }
  main:has(.signal-board) .results-heading { min-height: 46px; margin-bottom: 10px; }
  main:has(.signal-board) .results-heading h2 { font-size: 1.75rem; }
  main:has(.signal-board) .sponsor-policy { display: none; }
  main:has(.signal-board) .event-grid { grid-template-columns: 1fr; grid-auto-rows: 1fr; gap: 11px; }
  main:has(.signal-board) .event-tile { min-height: 228px; display: grid; grid-template-columns: 118px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; border-radius: 10px 10px 10px 3px; }
  main:has(.signal-board) .event-visual { grid-column: 1; grid-row: 1 / 3; width: 118px; height: 100%; min-height: 0; aspect-ratio: auto; }
  main:has(.signal-board) .event-tile-body { grid-column: 2; grid-row: 1; padding: 14px 13px 7px; }
  main:has(.signal-board) .event-tile-footer { grid-column: 2; grid-row: 2; min-height: 49px; margin: 0 13px; padding: 5px 0 8px; }
  main:has(.signal-board) .date-ticket { width: 42px; height: 102px; bottom: auto; }
  main:has(.signal-board) .date-ticket strong { margin: 6px 0 4px; font-size: 1.42rem; }
  main:has(.signal-board) .visual-fallback { padding: 12px 8px 12px 49px; }
  main:has(.signal-board) .visual-fallback .city-mark { writing-mode: vertical-rl; font-size: .48rem; }
  main:has(.signal-board) .quality-badge--standout { width: 30px; height: 30px; display: grid; place-items: center; padding: 6px; font-size: 0; }
  main:has(.signal-board) .quality-badge--standout i { width: 16px; height: 16px; }
  main:has(.signal-board) .event-tags--primary span:nth-child(n+3) { display: none; }
  main:has(.signal-board) .event-tile h3 { min-height: 0; margin: 6px 0 5px; font-size: 1.18rem; }
  main:has(.signal-board) .event-schedule, main:has(.signal-board) .event-place { font-size: .78rem; line-height: 1.3; }
  main:has(.signal-board) .showtime-list time { font-size: .68rem; }
  main:has(.signal-board) .event-travel-row { margin-top: 7px; }
  main:has(.signal-board) .event-travel-row .travel-kicker { min-height: 35px; gap: 4px; padding: 4px 5px; font-size: .68rem; }
  main:has(.signal-board) .travel-kicker em { display: none; }
  main:has(.signal-board) .travel-icon { width: 17px; }
  main:has(.signal-board) .ticket-state { padding-top: 7px; font-size: .69rem; }
  main:has(.signal-board) .event-card-cta { min-height: 40px; font-size: .71rem; }
  main:has(.signal-board) .sponsor-map-copy { display: none; }
  main:has(.signal-board) .sponsor-label { left: 7px; top: 7px; max-width: 102px; font-size: .48rem; }
  main:has(.signal-board) .adsense-tile { min-height: 360px; display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
