:root {
  --paper: #f4efe4;
  --panel: #fffaf1;
  --panel-2: rgba(255, 250, 241, .86);
  --ink: #171410;
  --text: #342e27;
  --muted: #786f63;
  --line: rgba(23, 20, 16, .14);
  --line-strong: rgba(23, 20, 16, .28);
  --green: #0e6a52;
  --gold: #a87123;
  --coral: #bb4d37;
  --blue: #2448d8;
  --shadow: 0 16px 44px rgba(23, 20, 16, .08);
  --max: 1180px;
  --r: 22px;
  --font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fs-small: 12px;
  --fs-base: 15px;
  --fs-large: clamp(30px, 5.2vw, 54px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font);
  font-size: var(--fs-base);
  line-height: 1.36;
  font-weight: 500;
  color: var(--text);
  background:
    radial-gradient(780px 520px at -8% -8%, rgba(14, 106, 82, .12), transparent 62%),
    radial-gradient(680px 460px at 102% 0%, rgba(187, 77, 55, .1), transparent 64%),
    linear-gradient(135deg, #fff9ee 0%, var(--paper) 54%, #eee5d6 100%);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .52;
  background:
    radial-gradient(ellipse 50% 85% at -7% 27%, transparent 56%, rgba(168, 113, 35, .32) 56.4% 57%, transparent 57.6%),
    radial-gradient(ellipse 58% 92% at 105% 18%, transparent 57%, rgba(14, 106, 82, .24) 57.4% 58%, transparent 58.7%),
    linear-gradient(90deg, rgba(23, 20, 16, .035) 1px, transparent 1px),
    linear-gradient(rgba(23, 20, 16, .035) 1px, transparent 1px);
  background-size: auto, auto, 56px 56px, 56px 56px;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { opacity: .5; cursor: not-allowed; }
p, h1, h2, h3, figure { margin: 0; }
strong, h1, h2, h3 { color: var(--ink); font-weight: 700; }
em { font-style: normal; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.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; }

body :where(p, li, a, button, input, select, summary, label, span, div, strong, em, code, small) { font-size: var(--fs-base); }
:where(.section-label, .field span, .radius-field span, .brand em, .desktop-nav a, .quick-row button, .stats-strip span, .badge, .source-details summary, .shelf-label, .star-slot span, .master-index span, .meta-box span, .map-caption, .rank, .top-star, .ai-rank, .ai-pick span, .artist-mini span, figcaption, small, .kicker-line, .results-note) {
  font-size: var(--fs-small) !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}
:where(h1) { font-size: var(--fs-large) !important; line-height: .94; letter-spacing: -.055em; }
:where(h2, .stats-strip strong) { font-size: var(--fs-large) !important; line-height: .98; letter-spacing: -.05em; }
:where(h3, .brand strong, .top-card h3, .ai-brief strong, .ai-pick strong, .artist-mini strong, .master-index strong, .meta-box strong, .star-slot strong, .work-tile strong, .mini-work b, .scale-card strong, .footer-grid strong) { font-size: var(--fs-base) !important; line-height: 1.16; }

.topbar {
  position: sticky;
  top: 10px;
  z-index: 80;
  width: min(var(--max), calc(100% - 20px));
  margin: 0 auto;
  min-height: 52px;
  padding: 6px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 250, 241, .86);
  box-shadow: 0 12px 34px rgba(23, 20, 16, .08);
  backdrop-filter: blur(18px) saturate(1.05);
}
.brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; padding-left: 2px; }
.brand-mark {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  background:
    radial-gradient(circle at 50% 50%, var(--gold) 0 12%, transparent 13%),
    conic-gradient(from 14deg, var(--ink) 0 18%, transparent 18% 30%, var(--green) 30% 50%, transparent 50% 62%, var(--coral) 62% 80%, transparent 80% 100%),
    var(--panel);
}
.brand span:last-child { display: grid; line-height: 1; min-width: 0; }
.brand strong { letter-spacing: -.035em; white-space: nowrap; }
.brand em { color: var(--muted); margin-top: 2px; }
.desktop-nav { display: none; align-items: center; gap: 4px; }
.desktop-nav a { color: var(--muted); border-radius: 999px; padding: 8px 10px; }
.desktop-nav a:hover { background: var(--ink); color: var(--panel); }

.app-shell {
  width: min(var(--max), calc(100% - 20px));
  margin: 0 auto;
  padding: 14px 0 88px;
  display: grid;
  gap: 10px;
}
.hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(340px, .96fr); gap: 10px; align-items: stretch; }
.hero-copy,
.hero-map,
.control-panel,
.stats-strip,
.curator-card,
.artist-panel,
.top-panel,
.scale-card,
.footer,
.venue-card,
.legal-panel {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--panel-2);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.hero-copy { min-height: 310px; padding: 24px; display: grid; align-content: end; }
.hero-copy::after,
.control-panel::after,
.venue-card::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border: 1px solid rgba(168, 113, 35, .34);
  border-left-color: transparent;
  border-bottom-color: transparent;
  border-radius: 50%;
}
.hero-copy::after { width: 168px; height: 168px; right: -64px; top: -78px; }
.control-panel::after { width: 114px; height: 114px; left: -68px; bottom: -68px; }
.venue-card::after { width: 62px; height: 62px; right: -34px; top: -38px; border-color: color-mix(in srgb, var(--accent, var(--green)) 34%, transparent); border-left-color: transparent; border-bottom-color: transparent; }
.section-label { color: var(--green); margin-bottom: 8px; }
.hero-text { max-width: 700px; color: var(--muted); margin-top: 12px; }
.hero-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 20px; max-width: 780px; }
.hero-search input { min-height: 52px; border-radius: 999px; background: rgba(255, 250, 241, .94); }
.quick-row,
.nearby-line,
.scale-actions,
.card-actions,
.ai-pick-actions,
.curator-actions,
.chip-row,
.toggle-row,
.artist-chips,
.gate-actions,
.footer-links { display: flex; flex-wrap: wrap; gap: 7px; }
.quick-row { margin-top: 10px; }
.quick-row button { min-height: 30px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,250,241,.7); color: var(--muted); padding: 0 10px; }
.quick-row button:hover { border-color: var(--ink); color: var(--ink); }
.hero-map { padding: 8px; min-height: 310px; display: grid; grid-template-rows: 1fr auto; gap: 7px; }
.map-frame { min-height: 280px; border-radius: 19px; overflow: hidden; border: 1px solid var(--line); background: #e2dacb; }
.map-canvas { width: 100%; height: 100%; min-height: 280px; background: #e2dacb; }
.map-caption { color: var(--muted); padding: 0 8px 4px; }

button,
.primary-button,
.ghost-button,
.small-button,
.card-actions a,
.ai-pick-actions a,
.footer-links a {
  min-height: 39px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(255, 250, 241, .74);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 14px;
  font-weight: 700;
  transition: transform .14s ease, border-color .14s ease, background .14s ease;
}
.primary-button { background: var(--ink); border-color: var(--ink); color: var(--panel); }
.ghost-button, .small-button { color: var(--ink); }
button:hover, .card-actions a:hover, .ai-pick-actions a:hover, .footer-links a:hover { transform: translateY(-1px); border-color: var(--ink); }
.transit-link { border-color: rgba(14, 106, 82, .44) !important; background: rgba(14, 106, 82, .08) !important; color: var(--green) !important; }

input,
select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 250, 241, .92);
  padding: 0 12px;
  outline: none;
}
input:focus,
select:focus { border-color: var(--ink); }
.control-panel,
.curator-card,
.artist-panel,
.top-panel,
.scale-card,
.footer,
.legal-panel { padding: 14px; }
.control-grid { display: grid; grid-template-columns: 1.3fr repeat(4, 1fr); gap: 8px; }
.field, .radius-field { display: grid; gap: 5px; min-width: 0; }
.field span, .radius-field span { color: var(--muted); }
.nearby-line { margin-top: 10px; align-items: end; }
.radius-field { width: 132px; }
.filters { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 10px; }
.filters summary { color: var(--muted); cursor: pointer; }
.toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; border: 1px solid var(--line); border-radius: 999px; padding: 0 10px; background: rgba(255,250,241,.62); }
.filter-block { margin-top: 10px; display: grid; gap: 7px; }
.filter-block p { color: var(--muted); }
.chip { min-height: 32px; padding: 0 11px; border-color: color-mix(in srgb, var(--chip-color, var(--green)) 46%, var(--line)); color: var(--muted); }
.chip.active { background: color-mix(in srgb, var(--chip-color, var(--green)) 13%, var(--panel)); color: var(--ink); border-color: color-mix(in srgb, var(--chip-color, var(--green)) 62%, var(--line)); }

.stats-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
.stats-strip div { min-height: 70px; padding: 12px; display: grid; align-content: center; border-right: 1px solid var(--line); }
.stats-strip div:last-child { border-right: 0; }
.stats-strip span { color: var(--muted); }

.section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.curator-actions { justify-content: flex-end; align-items: end; }
.curator-prompt { min-width: min(360px, 100%); }
.curator-output,
.artist-list,
.top-spots { display: grid; gap: 8px; }
.ai-brief,
.ai-pick,
.artist-mini,
.top-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,250,241,.62);
  padding: 10px;
}
.ai-brief p,
.artist-summary,
.artist-mini p,
.top-card p { color: var(--muted); }
.ai-route { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ai-pick { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; }
.ai-rank { width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: var(--panel); display: grid; place-items: center; }
.ai-pick ul { margin: 8px 0 0 18px; padding: 0; color: var(--muted); }
.ai-pick-actions { margin-top: 10px; }
.artist-panel { display: grid; gap: 10px; }
.artist-chips { margin-top: 2px; }
.artist-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.artist-mini .badges { margin-top: 8px; }
.top-spots { grid-template-columns: repeat(5, minmax(190px, 1fr)); overflow-x: auto; padding-bottom: 2px; }
.top-card { display: grid; grid-template-rows: 118px auto; padding: 0; border-color: color-mix(in srgb, var(--accent, var(--green)) 36%, var(--line)); }
.top-card-body { padding: 10px; display: grid; gap: 5px; }
.top-media { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); background: #e2dacb; border-radius: 17px 17px 0 0; }
.top-media img { width: 100%; height: 100%; object-fit: cover; }
.top-media span { width: 100%; height: 100%; display: grid; place-items: center; color: var(--muted); background: linear-gradient(135deg, color-mix(in srgb, var(--accent, var(--green)) 14%, #e2dacb), #efe4d1); }
.rank, .top-star { color: var(--green); }
.top-card h3 { margin: 1px 0; }
.top-card .card-actions { margin-top: 4px; }

.results-head { margin: 0; display: flex; justify-content: space-between; gap: 12px; align-items: end; }
.results-note { color: var(--muted); max-width: 360px; }
.results { display: grid; grid-template-columns: 1fr; gap: 10px; align-items: start; }
.venue-card { display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: 0; border-color: color-mix(in srgb, var(--accent, var(--green)) 22%, var(--line)); }
.venue-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--accent, var(--green)); z-index: 1; }
.venue-card.free-card { border-color: rgba(14, 106, 82, .48); box-shadow: 0 18px 44px rgba(14,106,82,.09); }
.venue-card.closed { opacity: .78; }
.venue-card.discovery .master-index { border-color: var(--gold); }
.card-media { height: 164px; border-bottom: 1px solid var(--line); background: #e2dacb; position: relative; overflow: hidden; }
.card-media img { width: 100%; height: 100%; object-fit: cover; }
.card-media figcaption { position: absolute; left: 8px; right: 8px; bottom: 8px; border-radius: 999px; background: rgba(255,250,241,.82); color: var(--muted); padding: 4px 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fallback-art { height: 100%; display: grid; place-items: center; align-content: center; gap: 4px; color: var(--ink); background: linear-gradient(140deg, color-mix(in srgb, var(--accent, var(--green)) 14%, #efe4d1), #e3d8c6); }
.fallback-art strong { font-size: var(--fs-large) !important; line-height: .9; letter-spacing: -.08em; }
.fallback-art em { color: var(--muted); font-size: var(--fs-small) !important; letter-spacing: .075em; text-transform: uppercase; }
.card-body { min-width: 0; display: grid; gap: 7px; align-content: start; padding: 11px; }
.kicker-line { color: var(--muted); display: flex; align-items: center; gap: 7px; min-width: 0; }
.kicker-line > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.category-pill { flex: 0 0 auto; border: 1px solid color-mix(in srgb, var(--accent, var(--green)) 52%, var(--line)); background: color-mix(in srgb, var(--accent, var(--green)) 13%, var(--panel)); color: var(--ink); border-radius: 999px; padding: 3px 7px; }
.card-body > p { color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.star-slot { border: 1px solid color-mix(in srgb, var(--accent, var(--gold)) 44%, var(--line)); border-radius: 15px; background: linear-gradient(135deg, color-mix(in srgb, var(--accent, var(--gold)) 10%, transparent), rgba(255,250,241,.68)); padding: 9px; }
.star-slot span { color: var(--gold); display: block; margin-bottom: 3px; }
.star-slot p { color: var(--muted); margin-top: 3px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.master-index { border-left: 3px solid var(--accent, var(--green)); padding-left: 9px; display: grid; gap: 2px; }
.master-index span { color: var(--muted); }
.master-index strong { overflow-wrap: anywhere; }
.master-index em { color: var(--muted); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.badges { display: flex; flex-wrap: wrap; gap: 5px; }
.badge { border: 1px solid var(--line); border-radius: 999px; background: rgba(255,250,241,.72); color: var(--muted); padding: 4px 7px; }
.badge.free { color: var(--green); border-color: rgba(14,106,82,.44); background: rgba(14,106,82,.09); }
.badge.budget { color: var(--gold); border-color: rgba(168,113,35,.44); }
.badge.closed { color: var(--coral); border-color: rgba(187,77,55,.4); }
.meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.meta-box { border: 1px solid var(--line); border-radius: 14px; padding: 8px; min-width: 0; background: rgba(255,250,241,.52); }
.meta-box span { color: var(--muted); display: block; margin-bottom: 3px; }
.meta-box strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-exhibits { border: 1px solid var(--line); border-radius: 14px; padding: 8px; background: rgba(255,250,241,.5); }
.mini-exhibits summary { color: var(--muted); cursor: pointer; }
.mini-exhibits p { color: var(--muted); margin-top: 6px; }
.work-shelf { display: grid; gap: 6px; }
.work-master { border: 1px solid var(--line); border-radius: 14px; padding: 8px; background: rgba(255,250,241,.48); }
.shelf-label { color: var(--green); margin-bottom: 6px; }
.work-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.work-tile, .mini-work { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 8px; min-width: 0; }
.work-tile img, .mini-work img, .work-placeholder, .work-thumb-missing { width: 46px; height: 46px; object-fit: cover; border-radius: 12px; background: #e3d8c4; }
.work-placeholder, .work-thumb-missing { display: grid; place-items: center; color: var(--muted); font-size: var(--fs-small) !important; text-align: center; padding: 3px; }
.work-tile span, .work-tile em, .work-tile a, .mini-work span, .mini-work em, .mini-work small { display: block; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-actions { margin-top: 1px; }
.card-actions button, .card-actions a, .ai-pick-actions button, .ai-pick-actions a { min-height: 33px; padding-inline: 10px; }
.source-details { border-top: 1px solid var(--line); padding-top: 6px; }
.source-details summary { color: var(--muted); cursor: pointer; }
.source-details ol { margin: 8px 0 0 18px; padding: 0; color: var(--muted); }
.source-details a { overflow-wrap: anywhere; color: var(--green); }

.map-loading { height: 100%; min-height: 280px; display: grid; place-items: center; color: var(--muted); }
.map-fallback { display: grid; gap: 8px; padding: 10px; height: 100%; overflow: auto; }
.map-fallback-item { border: 1px solid var(--line); border-radius: 14px; padding: 9px; background: rgba(255,250,241,.72); }
.marker-pin { width: 22px; height: 22px; border-radius: 50% 50% 50% 2px; background: var(--marker-color, var(--green)); border: 2px solid var(--panel); box-shadow: 0 8px 18px rgba(23,20,16,.28); transform: rotate(-45deg); }
.marker-pin::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--panel); position: absolute; left: 6px; top: 6px; }
.marker-user { width: 22px; height: 22px; border-radius: 50%; background: var(--blue); border: 3px solid var(--panel); box-shadow: 0 0 0 7px rgba(36,72,216,.18), 0 10px 24px rgba(23,20,16,.25); }

.scale-card { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.scale-card span { color: var(--muted); display: block; margin-top: 4px; }
.footer h2 { margin-bottom: 12px; }
.footer-grid, .legal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.footer-grid div, .legal-grid div { border: 1px solid var(--line); border-radius: 16px; padding: 10px; background: rgba(255,250,241,.5); }
.footer p, .legal-panel p { color: var(--muted); }
.footer a { color: var(--green); }
.footer-top { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.empty-state { color: var(--muted); border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: rgba(255,250,241,.58); }
.empty-state.compact { grid-column: 1 / -1; }

.location-gate[hidden] { display: none; }
.location-gate { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 18px; background: rgba(23,20,16,.22); backdrop-filter: blur(10px); opacity: 0; transition: opacity .16s ease; }
.location-gate.show { opacity: 1; }
.gate-card { width: min(480px, 100%); border: 1px solid var(--line); border-radius: 26px; background: rgba(255,250,241,.96); box-shadow: 0 30px 80px rgba(23,20,16,.18); padding: 18px; display: grid; gap: 10px; }
.gate-card p, .gate-card small { color: var(--muted); }
.gate-actions button { flex: 1 1 180px; }

.mobile-tabbar { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 80; display: none; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 6px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,250,241,.9); box-shadow: 0 16px 34px rgba(23,20,16,.14); backdrop-filter: blur(18px); }
.mobile-tabbar a, .mobile-tabbar button { min-height: 38px; border: 0; background: transparent; border-radius: 999px; display: grid; place-items: center; padding: 0; font-weight: 700; }
.mobile-tabbar a:hover, .mobile-tabbar button:hover { background: var(--ink); color: var(--panel); transform: none; }

@media (min-width: 900px) {
  .desktop-nav { display: flex; }
}
@media (min-width: 860px) {
  .results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .hero, .control-grid, .ai-route, .artist-list, .footer-grid, .legal-grid { grid-template-columns: 1fr; }
  .hero-copy, .hero-map { min-height: 0; }
  .scale-card, .section-head, .footer-top { align-items: stretch; flex-direction: column; }
  .curator-actions { justify-content: flex-start; }
  .top-spots { grid-template-columns: repeat(3, minmax(190px, 1fr)); }
}
@media (max-width: 700px) {
  .app-shell { width: min(100% - 12px, var(--max)); padding-top: 12px; gap: 8px; }
  .topbar { width: min(100% - 12px, var(--max)); top: 6px; min-height: 48px; }
  .hero-copy, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel { padding: 12px; }
  .hero-copy { min-height: 248px; }
  .hero-search { grid-template-columns: 1fr; }
  .hero-search input, .hero-search button { min-height: 48px; }
  .quick-row button { flex: 1 1 auto; }
  .hero-map { min-height: 276px; }
  .map-frame, .map-canvas { min-height: 236px; }
  .stats-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .stats-strip div { min-height: 64px; padding: 8px 6px; }
  .results-head { align-items: start; flex-direction: column; }
  .card-media { height: 132px; }
  .card-body { padding: 10px; gap: 7px; }
  .card-body > p, .star-slot p { -webkit-line-clamp: 1; }
  .meta-grid, .work-strip { grid-template-columns: 1fr; }
  .top-spots { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .source-details { display: none; }
  .mobile-tabbar { display: grid; }
  .nearby-line button, .scale-actions button, .card-actions button, .card-actions a { flex: 1 1 auto; }
}
@media (max-width: 420px) {
  .badges .badge:nth-child(n+4) { display: none; }
  .card-actions button, .card-actions a { flex: 1 1 68px; }
  .top-spots { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
}

/* openARTlas V19 champion layer. Logo-led, ad-ready, two-column max. */
:root {
  --paper: #f6f0e4;
  --panel: #fffaf2;
  --panel-2: rgba(255, 250, 242, .92);
  --ink: #10110f;
  --text: #302b23;
  --muted: #6d665a;
  --line: rgba(16, 17, 15, .13);
  --line-strong: rgba(16, 17, 15, .28);
  --green: #5f9412;
  --gold: #a97925;
  --coral: #b94e36;
  --blue: #2454ff;
  --r: 18px;
  --shadow: 0 18px 46px rgba(16, 17, 15, .07);
}
body {
  background:
    radial-gradient(760px 520px at 48% -18%, rgba(95,148,18,.15), transparent 62%),
    radial-gradient(620px 480px at 110% 18%, rgba(169,121,37,.12), transparent 68%),
    linear-gradient(135deg, #fffaf2 0%, #f6f0e4 56%, #eee4d3 100%);
}
body::before {
  opacity: .34;
  background:
    radial-gradient(ellipse 64% 116% at -22% 22%, transparent 58%, rgba(169,121,37,.26) 58.4% 58.9%, transparent 59.4%),
    radial-gradient(ellipse 60% 106% at 116% 8%, transparent 58%, rgba(95,148,18,.2) 58.4% 59%, transparent 59.6%),
    linear-gradient(90deg, rgba(16,17,15,.03) 1px, transparent 1px),
    linear-gradient(rgba(16,17,15,.03) 1px, transparent 1px);
  background-size: auto, auto, 64px 64px, 64px 64px;
}
.topbar {
  top: 8px;
  min-height: 68px;
  border-radius: 24px;
  padding: 7px 10px 7px 12px;
  background: rgba(255,250,242,.9);
  backdrop-filter: blur(18px) saturate(1.05);
}
.logo-brand { padding-left: 0; }
.logo-brand img { width: clamp(176px, 22vw, 286px); max-height: 62px; object-fit: contain; }
.desktop-nav a { padding: 9px 10px; }
.app-shell { padding-top: 10px; gap: 10px; }
.ad-rail {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(330px,1.18fr);
  gap: 10px;
  align-items: stretch;
}
.ad-copy,
.ad-slot {
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: rgba(255,250,242,.84);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.ad-copy { padding: 14px; display: grid; align-content: center; gap: 4px; }
.ad-copy span,
.ad-slot span { font-size: var(--fs-small) !important; letter-spacing: .075em; text-transform: uppercase; color: var(--green); }
.ad-copy p,
.ad-slot p { color: var(--muted); }
.ad-slot {
  position: relative;
  min-height: 112px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px 14px;
  align-content: center;
  padding: 15px 16px;
  border-color: rgba(95,148,18,.24);
  background:
    linear-gradient(135deg, rgba(95,148,18,.09), rgba(169,121,37,.1)),
    rgba(255,250,242,.92);
}
.ad-slot::after {
  content: "";
  position: absolute;
  right: -44px;
  top: -70px;
  width: 170px;
  height: 170px;
  border: 1px solid rgba(169,121,37,.42);
  border-radius: 50%;
  pointer-events: none;
}
.ad-slot > span,
.ad-slot > strong,
.ad-slot > p { grid-column: 1; position: relative; z-index: 1; }
.ad-actions { grid-column: 2; grid-row: 1 / span 3; align-self: center; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; position: relative; z-index: 1; }
.ad-actions a,
.ad-actions button { min-height: 34px; border: 1px solid rgba(16,17,15,.22); border-radius: 999px; background: rgba(255,250,242,.78); padding: 0 11px; display: inline-flex; align-items: center; font-weight: 700; }
.ad-slot.ad-live { border-color: rgba(95,148,18,.44); }
.ad-slot.ad-consent-needed { border-color: rgba(169,121,37,.34); }
.hero { grid-template-columns: minmax(0,.95fr) minmax(360px,1.05fr); }
.hero-copy { min-height: 268px; padding: 20px; isolation: isolate; }
.hero-watermark { position: absolute; right: 12px; top: 8px; width: min(45%, 320px); opacity: .055; pointer-events: none; z-index: 0; }
.hero-copy > *:not(.hero-watermark) { position: relative; z-index: 1; }
.hero-search { margin-top: 16px; }
.hero-search input { min-height: 50px; }
.hero-map { min-height: 268px; }
.map-frame,
.map-canvas { min-height: 244px; }
.control-panel,
.curator-card,
.artist-panel,
.top-panel,
.scale-card,
.footer,
.legal-panel { padding: 12px; }
.results { gap: 10px; }
.venue-card { border-radius: 18px; }
.card-media { height: 136px; background: #e8dfcf; }
.card-media img { width: 100%; height: 100%; object-fit: cover; }
.media-stack { height: 100%; display: grid; grid-template-columns: minmax(0,1fr) 54px; gap: 1px; }
.media-stack .main-photo { min-width: 0; }
.photo-thumbs { display: grid; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 1px; height: 100%; }
.photo-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.fallback-art { min-height: 100%; background: linear-gradient(135deg, color-mix(in srgb, var(--accent,var(--green)) 16%, #fffaf2), #e8dfcf); display: grid; place-items: center; text-align: center; padding: 12px; }
.fallback-art strong { font-size: var(--fs-large) !important; color: color-mix(in srgb, var(--accent,var(--green)) 70%, var(--ink)); }
.fallback-art em { font-size: var(--fs-small) !important; color: var(--muted); letter-spacing: .075em; text-transform: uppercase; }
.card-body { padding: 10px; gap: 6px; }
.card-body > p,
.star-slot p { -webkit-line-clamp: 1; }
.master-index strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.star-slot { padding: 8px 9px; border-radius: 13px; }
.meta-grid { gap: 5px; }
.meta-box { padding: 7px; border-radius: 12px; }
.work-master { padding: 7px; }
.work-tile,
.mini-work { grid-template-columns: 42px minmax(0,1fr); gap: 7px; }
.work-tile img,
.mini-work img,
.work-placeholder,
.work-thumb-missing { width: 42px; height: 42px; border-radius: 10px; }
.top-spots { grid-template-columns: repeat(2, minmax(240px,1fr)); }
.top-card { grid-template-rows: 114px auto; }
.category-legend { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.category-legend .legend-pill,
.category-legend .legend-item { min-height: 27px; border: 1px solid color-mix(in srgb, var(--cat,var(--chip-color,var(--green))) 42%, var(--line)); border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; background: color-mix(in srgb, var(--cat,var(--chip-color,var(--green))) 9%, rgba(255,250,242,.72)); color: var(--muted); font-size: var(--fs-small) !important; letter-spacing: .075em; text-transform: uppercase; }
.category-legend .legend-pill i,
.category-legend .legend-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--cat,var(--chip-color,var(--green))); display: inline-block; }
.privacy-dock[hidden] { display: none; }
.privacy-dock {
  position: fixed;
  left: 50%;
  bottom: 16px;
  z-index: 140;
  width: min(760px, calc(100% - 24px));
  transform: translateX(-50%);
  border: 1px solid rgba(16,17,15,.2);
  border-radius: 22px;
  background: rgba(255,250,242,.95);
  box-shadow: 0 28px 80px rgba(16,17,15,.18);
  backdrop-filter: blur(18px) saturate(1.04);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
}
.privacy-dock p { color: var(--muted); }
.privacy-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.privacy-actions button { min-height: 34px; padding: 0 11px; }
@media (min-width: 860px) { .results { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 1180px) {
  .venue-card { grid-template-columns: 210px minmax(0,1fr); }
  .card-media { height: auto; min-height: 100%; border-bottom: 0; border-right: 1px solid var(--line); }
  .media-stack { grid-template-columns: 1fr; grid-template-rows: 1fr 72px; }
  .photo-thumbs { grid-template-columns: repeat(2,1fr); grid-template-rows: 1fr; height: 72px; }
}
@media (max-width: 1080px) {
  .ad-rail,
  .hero,
  .control-grid { grid-template-columns: 1fr; }
  .ad-slot { grid-template-columns: 1fr; }
  .ad-actions { grid-column: 1; grid-row: auto; justify-content: flex-start; }
  .top-spots { grid-template-columns: repeat(2,minmax(180px,1fr)); }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 74px; }
  .topbar { min-height: 58px; border-radius: 21px; }
  .logo-brand img { width: 186px; max-height: 54px; }
  .app-shell { width: min(100% - 12px, var(--max)); padding-top: 8px; gap: 8px; }
  .ad-copy { display: none; }
  .ad-slot { min-height: 104px; padding: 12px; }
  .ad-actions a,
  .ad-actions button { flex: 1 1 auto; justify-content: center; }
  .hero-copy { min-height: 224px; padding: 14px; }
  .hero-watermark { width: 76%; right: -72px; top: -4px; opacity: .045; }
  .hero-map { min-height: 246px; padding: 7px; }
  .map-frame,
  .map-canvas { min-height: 210px; }
  .card-media { height: 118px; }
  .media-stack { grid-template-columns: minmax(0,1fr) 44px; }
  .top-spots { grid-template-columns: repeat(2,minmax(150px,1fr)); }
  .top-card { grid-template-rows: 92px auto; }
  .privacy-dock { grid-template-columns: 1fr; bottom: 76px; border-radius: 18px; }
  .privacy-actions { justify-content: stretch; }
  .privacy-actions button { flex: 1 1 132px; }
}
@media (max-width: 430px) {
  .ad-slot p { display: none; }
  .ad-actions a:nth-child(2) { display: none; }
  .logo-brand img { width: 168px; }
  .card-media { height: 106px; }
  .meta-grid { display: none; }
  .work-shelf { display: none; }
}

/* openARTlas V22 reduced champion layer */
:root {
  --max: 1160px;
  --r: 16px;
  --fs-small: 12px;
  --fs-base: 15px;
  --fs-large: clamp(31px, 5vw, 52px);
}
.site-watermark {
  position: fixed;
  right: clamp(-120px, -6vw, -40px);
  bottom: clamp(24px, 8vw, 90px);
  width: min(52vw, 560px);
  opacity: .035;
  pointer-events: none;
  z-index: 0;
  filter: saturate(.85);
}
.topbar {
  width: min(var(--max), calc(100% - 18px));
  min-height: 92px;
  padding: 10px 14px;
  border-radius: 28px;
  align-items: center;
  background: rgba(255,250,242,.93);
}
.logo-brand img {
  width: clamp(290px, 34vw, 470px);
  max-height: 86px;
  object-fit: contain;
}
.desktop-nav { gap: 2px; }
.desktop-nav a { padding: 8px 9px; }
.app-shell { position: relative; z-index: 1; gap: 8px; padding-top: 8px; }
.ad-rail { grid-template-columns: 1fr; }
.ad-copy { display: none; }
.ad-slot {
  min-height: 88px;
  border-radius: 18px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 14px;
}
.ad-slot strong { font-size: var(--fs-base) !important; }
.ad-slot p { max-width: 620px; }
.hero { grid-template-columns: minmax(0, .9fr) minmax(340px, 1.1fr); gap: 8px; }
.hero-copy { min-height: 246px; padding: 18px; }
.hero-map { min-height: 246px; }
.map-frame, .map-canvas { min-height: 226px; }
.hero-watermark {
  width: min(50%, 340px);
  opacity: .075;
  right: 4px;
  top: 2px;
}
.hero-search { max-width: none; margin-top: 14px; }
.quick-row { display: none; }
.control-panel,
.curator-card,
.artist-panel,
.top-panel,
.scale-card,
.footer,
.legal-panel { padding: 10px; }
.control-grid { grid-template-columns: 1.15fr repeat(4, minmax(112px, 1fr)); }
.filters { padding-top: 8px; margin-top: 8px; }
.category-legend { margin-top: 8px; }
.stats-strip div { min-height: 58px; padding: 9px; }
.section-head { margin-bottom: 8px; }
.curator-card .section-head,
.artist-panel .section-head { align-items: center; }
.curator-output,
.artist-list,
.top-spots { gap: 7px; }
.artist-panel { gap: 8px; }
.trail-picker {
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255,250,242,.58);
  padding: 8px 10px;
}
.trail-picker > summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 700;
}
.artist-chips.grouped {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.trail-quick,
.trail-group > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.trail-quick {
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
}
.trail-quick > span,
.trail-group > summary span {
  color: var(--muted);
  font-size: var(--fs-small) !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.trail-group {
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,250,242,.48);
  padding: 7px;
}
.trail-group > summary {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--ink);
  font-weight: 700;
}
.trail-group > div { padding-top: 7px; }
.artist-chips button {
  min-height: 30px;
  padding: 0 10px;
  color: var(--muted);
  background: rgba(255,250,242,.66);
  border-color: var(--line);
}
.artist-chips button:hover { color: var(--ink); border-color: var(--ink); }
.artist-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.results-head { margin-top: 2px; }
.results-note { max-width: 300px; }
.results { gap: 8px; }
.venue-card {
  border-radius: 16px;
  box-shadow: 0 12px 32px rgba(16,17,15,.06);
}
.venue-card::before { height: 4px; }
.card-media { height: 124px; }
.card-body { padding: 9px; gap: 5px; }
.star-slot,
.master-index,
.meta-box,
.work-master,
.mini-exhibits { border-radius: 12px; padding: 7px; }
.badges { gap: 4px; }
.badge { padding: 3px 6px; }
.work-shelf { gap: 5px; }
.work-strip { gap: 5px; }
.card-actions { gap: 5px; }
.source-details { display: none; }
.footer {
  background-image: linear-gradient(rgba(255,250,242,.88), rgba(255,250,242,.88)), url('./public/assets/openartlas-logo-watermark.png');
  background-repeat: no-repeat;
  background-position: right 12px top 8px;
  background-size: min(260px, 48%);
}
.legal-page .logo-brand img { width: 260px; }
@media (min-width: 1180px) {
  .venue-card { grid-template-columns: 188px minmax(0, 1fr); }
  .card-media { min-height: 100%; }
}
@media (max-width: 1080px) {
  .topbar { min-height: 82px; }
  .logo-brand img { width: clamp(250px, 52vw, 390px); max-height: 76px; }
  .ad-slot { grid-template-columns: 1fr; }
  .ad-actions { grid-column: auto; grid-row: auto; justify-content: flex-start; }
  .hero, .control-grid, .artist-list { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 92px; }
  .site-watermark { width: 82vw; right: -36vw; bottom: 110px; opacity: .04; }
  .topbar { min-height: 78px; border-radius: 23px; padding: 8px 10px; }
  .logo-brand img { width: min(74vw, 300px); max-height: 70px; }
  .app-shell { gap: 7px; }
  .ad-slot { min-height: 82px; padding: 10px; }
  .ad-slot p { display: none; }
  .hero-copy { min-height: 202px; padding: 12px; }
  .hero-map { min-height: 224px; }
  .map-frame, .map-canvas { min-height: 188px; }
  .hero-search input, .hero-search button { min-height: 46px; }
  .stats-strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .stats-strip div { min-height: 54px; padding: 6px 3px; }
  .stats-strip strong { font-size: 20px !important; }
  .top-spots { grid-template-columns: repeat(2, minmax(148px, 1fr)); }
  .card-media { height: 104px; }
  .media-stack { grid-template-columns: minmax(0,1fr) 40px; }
  .hero-watermark { width: 82%; right: -78px; opacity: .055; }
  .trail-picker { padding: 7px; }
  .trail-quick button:nth-of-type(n+7) { display: none; }
}
@media (max-width: 430px) {
  .logo-brand img { width: min(78vw, 260px); }
  .ad-actions button { display: none; }
  .card-media { height: 98px; }
}

/* openARTlas V22 launch quality layer. Named venues only, exact images, equal card rhythm. */
.results { align-items: stretch; grid-auto-rows: 1fr; }
.venue-card { height: 100%; display: grid; min-height: 0; }
.venue-card.discovery { display: none; }
.card-body { min-height: 0; }
.relevance-copy,
.star-slot p,
.work-tile em { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.relevance-copy { -webkit-line-clamp: 2; }
.star-slot p { -webkit-line-clamp: 2; }
.work-tile em { -webkit-line-clamp: 1; }
.visit-meta { grid-template-columns: 1fr; }
.work-shelf { border: 1px solid var(--line); border-radius: 12px; padding: 7px; background: rgba(255,250,242,.48); }
.work-strip { grid-template-columns: 1fr; }
.work-tile { min-height: 46px; }
.work-tile.text-only { grid-template-columns: 1fr; }
.work-tile.text-only div { min-width: 0; }
.exact-fallback { background: linear-gradient(135deg, color-mix(in srgb, var(--accent,var(--green)) 12%, #fffaf2), #e8dfcf); }
.exact-fallback img { width: 34px; height: 34px; opacity: .9; margin-bottom: 2px; }
.card-media.image-missing figcaption { display: none; }
.source-details ol { max-height: 142px; overflow: auto; }
@media (min-width: 860px) {
  .results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .venue-card { grid-template-columns: 180px minmax(0, 1fr); }
  .card-media { height: auto; min-height: 100%; border-right: 1px solid var(--line); border-bottom: 0; }
  .card-body { display: grid; grid-template-rows: auto auto auto auto auto auto auto 1fr auto auto; }
  .visit-meta { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1180px) {
  .venue-card { grid-template-columns: 196px minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .results { grid-auto-rows: auto; }
  .venue-card { height: auto; }
  .visit-meta { grid-template-columns: 1fr; }
  .work-shelf { display: none; }
}

/* openARTlas V24 base commercial layer. One family, three sizes, one brief card rhythm. */
:root {
  --paper: #f7f1e6;
  --panel: #fffaf1;
  --panel-2: rgba(255,250,241,.94);
  --ink: #11120f;
  --text: #2c281f;
  --muted: #6c6558;
  --line: rgba(17,18,15,.12);
  --line-strong: rgba(17,18,15,.28);
  --green: #5f9412;
  --gold: #b17b25;
  --coral: #b94e36;
  --blue: #1937d4;
  --shadow: 0 18px 46px rgba(17,18,15,.07);
  --r: 18px;
  --max: 1200px;
  --font: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fs-small: 12px;
  --fs-base: 15px;
  --fs-large: clamp(34px, 5.7vw, 66px);
}
html { scroll-padding-top: 166px; }
body {
  font-family: var(--font) !important;
  font-size: var(--fs-base) !important;
  line-height: 1.34;
  background:
    radial-gradient(920px 560px at 48% -18%, rgba(95,148,18,.18), transparent 64%),
    radial-gradient(760px 520px at 112% 2%, rgba(177,123,37,.14), transparent 66%),
    linear-gradient(135deg, #fffaf1 0%, #f7f1e6 56%, #eee3d0 100%) !important;
}
body::before {
  opacity: .26 !important;
  background:
    radial-gradient(ellipse 62% 118% at -22% 16%, transparent 58%, rgba(177,123,37,.32) 58.25% 58.7%, transparent 59.2%),
    radial-gradient(ellipse 62% 112% at 120% 8%, transparent 58%, rgba(95,148,18,.25) 58.2% 58.72%, transparent 59.2%),
    linear-gradient(90deg, rgba(17,18,15,.024) 1px, transparent 1px),
    linear-gradient(rgba(17,18,15,.024) 1px, transparent 1px) !important;
  background-size: auto, auto, 72px 72px, 72px 72px !important;
}
body :where(p, li, a, button, input, select, summary, label, span, div, strong, em, code, small) {
  font-family: var(--font) !important;
  font-size: var(--fs-base) !important;
}
body :where(.section-label, .field span, .radius-field span, .desktop-nav a, .stats-strip span, .badge, .source-details summary, .shelf-label, .star-slot span, .master-index span, .meta-box span, .map-caption, .rank, .top-star, .ai-rank, .ai-pick span, .artist-mini span, figcaption, small, .kicker-line, .results-note, .detail-section > span, .detail-grid span, .legal-small, .category-legend .legend-pill) {
  font-size: var(--fs-small) !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}
body :where(h1, h2, .stats-strip strong) {
  font-family: var(--font) !important;
  font-size: var(--fs-large) !important;
  line-height: .94 !important;
  letter-spacing: -.06em !important;
}
body :where(h3, .top-card h3, .ai-brief strong, .ai-pick strong, .artist-mini strong, .master-index strong, .meta-box strong, .star-slot strong, .work-tile strong, .detail-work strong, .detail-row strong, .essential-list strong, .footer-grid strong) {
  font-family: var(--font) !important;
  font-size: var(--fs-base) !important;
  line-height: 1.16 !important;
  letter-spacing: -.02em !important;
}
.topbar {
  top: 8px !important;
  width: min(var(--max), calc(100% - 18px)) !important;
  min-height: 150px !important;
  border-radius: 34px !important;
  padding: 14px 16px !important;
  background: rgba(255,250,241,.95) !important;
  box-shadow: 0 24px 80px rgba(17,18,15,.11) !important;
}
.logo-brand { flex: 1 1 auto; }
.logo-brand img {
  width: clamp(520px, 58vw, 860px) !important;
  max-height: 132px !important;
  object-fit: contain !important;
  object-position: left center !important;
}
.desktop-nav { flex: 0 0 auto; }
.desktop-nav a { padding: 8px 9px !important; }
.site-watermark {
  position: fixed !important;
  right: -18vw !important;
  bottom: 6vh !important;
  width: min(78vw, 860px) !important;
  opacity: .045 !important;
  pointer-events: none !important;
  z-index: 0 !important;
  filter: saturate(.9) grayscale(.05) !important;
}
.app-shell { width: min(var(--max), calc(100% - 18px)) !important; gap: 8px !important; padding-top: 8px !important; }
.hero,
.ad-rail { gap: 8px !important; }
.ad-slot { min-height: 78px !important; border-radius: var(--r) !important; }
.hero { grid-template-columns: minmax(0, .82fr) minmax(360px, 1.18fr) !important; }
.hero-copy { min-height: 220px !important; padding: 18px !important; align-content: end !important; }
.hero-map { min-height: 220px !important; padding: 7px !important; }
.map-frame, .map-canvas { min-height: 204px !important; }
.hero-watermark {
  width: min(56%, 440px) !important;
  opacity: .09 !important;
  right: -22px !important;
  top: -18px !important;
}
.hero-text { max-width: 720px !important; margin-top: 10px !important; }
.hero-search { margin-top: 14px !important; grid-template-columns: minmax(0,1fr) auto !important; }
.hero-search input, .hero-search button { min-height: 48px !important; }
.quick-row { display: none !important; }
.control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel { padding: 10px !important; }
.control-grid { grid-template-columns: 1.2fr repeat(4, minmax(106px, 1fr)) !important; gap: 7px !important; }
.nearby-line { margin-top: 8px !important; }
.category-legend { margin-top: 7px !important; gap: 5px !important; }
.stats-strip { gap: 7px !important; }
.stats-strip div { min-height: 54px !important; padding: 7px !important; }
.stats-strip strong { font-size: clamp(22px, 3.2vw, 34px) !important; }
.results-head { margin-top: 0 !important; padding: 2px 4px !important; }
.results { gap: 8px !important; align-items: stretch !important; }
@media (min-width: 860px) {
  .results { grid-template-columns: repeat(2, minmax(0,1fr)) !important; grid-auto-rows: 1fr !important; }
  .results > .venue-card { height: 100% !important; min-height: 238px !important; }
}
.venue-card {
  border-radius: 18px !important;
  box-shadow: 0 14px 36px rgba(17,18,15,.065) !important;
  overflow: hidden !important;
  background: rgba(255,250,241,.94) !important;
  cursor: pointer;
}
.venue-card::before { height: 4px !important; }
.venue-card:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--accent, var(--green)) 48%, var(--line)) !important; }
@media (min-width: 760px) {
  .venue-card { display: grid !important; grid-template-columns: 168px minmax(0,1fr) !important; }
}
@media (min-width: 1180px) {
  .venue-card { grid-template-columns: 186px minmax(0,1fr) !important; min-height: 238px !important; }
}
.card-media {
  height: 150px !important;
  min-height: 100% !important;
  border-right: 1px solid var(--line) !important;
  border-bottom: 0 !important;
  background: #ebe2d2 !important;
}
.card-media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.media-stack { height: 100% !important; grid-template-columns: 1fr !important; grid-template-rows: 1fr !important; }
.photo-thumbs { display: none !important; }
.card-media figcaption {
  left: 8px !important;
  right: 8px !important;
  bottom: 8px !important;
  max-width: calc(100% - 16px) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.fallback-art.logo-fallback img { width: min(70%, 180px) !important; opacity: .26 !important; }
.card-body { padding: 10px !important; gap: 6px !important; min-width: 0 !important; }
.card-body > p,
.relevance-copy,
.star-slot p,
.names-line {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
.relevance-copy { -webkit-line-clamp: 2 !important; color: var(--muted) !important; }
.star-slot { padding: 8px 9px !important; border-radius: 13px !important; background: linear-gradient(135deg, rgba(255,255,255,.38), color-mix(in srgb, var(--accent, var(--green)) 8%, transparent)) !important; }
.star-slot p { -webkit-line-clamp: 2 !important; }
.names-line { -webkit-line-clamp: 1 !important; color: var(--muted) !important; }
.badges { gap: 4px !important; }
.badge { padding: 3px 7px !important; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-actions { gap: 5px !important; margin-top: auto !important; }
.card-actions button, .card-actions a { min-height: 34px !important; padding: 0 11px !important; }
.card-actions [data-detail] { background: var(--ink) !important; color: var(--panel) !important; border-color: var(--ink) !important; }
.master-index, .visit-meta, .work-shelf, .source-details, .mini-exhibits { display: none !important; }
.top-spots { gap: 7px !important; grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.top-card { border-radius: 16px !important; grid-template-rows: 104px auto !important; min-height: 262px !important; cursor: pointer; }
.top-card .card-actions { margin-top: 8px !important; }
.detail-backdrop[hidden], .detail-drawer[hidden] { display: none !important; }
.detail-backdrop {
  position: fixed;
  inset: 0;
  z-index: 180;
  background: rgba(17,18,15,.22);
  opacity: 0;
  transition: opacity .18s ease;
  backdrop-filter: blur(5px);
}
.detail-backdrop.open { opacity: 1; }
.detail-drawer {
  position: fixed;
  z-index: 190;
  top: 10px;
  right: 10px;
  bottom: 10px;
  width: min(560px, calc(100vw - 20px));
  border: 1px solid var(--line-strong);
  border-radius: 26px;
  background: rgba(255,250,241,.97);
  box-shadow: 0 34px 100px rgba(17,18,15,.28);
  overflow: hidden;
  transform: translateX(calc(100% + 30px));
  transition: transform .22s ease;
}
.detail-drawer.open { transform: translateX(0); }
.detail-close {
  position: absolute;
  z-index: 3;
  top: 12px;
  right: 12px;
  min-height: 34px !important;
  background: rgba(255,250,241,.92) !important;
}
.detail-content { height: 100%; overflow: auto; overscroll-behavior: contain; }
.detail-media { height: 254px; margin: 0; position: relative; background: #e8dfcf; }
.detail-media img { width: 100%; height: 100%; object-fit: cover; }
.detail-media.logo-only { display: grid; place-items: center; }
.detail-media.logo-only img { width: min(62%, 300px); height: auto; opacity: .32; object-fit: contain; }
.detail-media figcaption {
  position: absolute;
  left: 12px;
  bottom: 12px;
  max-width: calc(100% - 24px);
  border-radius: 999px;
  background: rgba(255,250,241,.86);
  padding: 5px 9px;
  color: var(--muted);
}
.detail-main { padding: 14px; display: grid; gap: 10px; }
.detail-main h2 { font-size: clamp(28px, 4.2vw, 46px) !important; }
.detail-summary { color: var(--text); }
.detail-section, .detail-grid > div {
  border: 1px solid color-mix(in srgb, var(--accent, var(--green)) 20%, var(--line));
  border-radius: 16px;
  background: rgba(255,250,241,.58);
  padding: 10px;
}
.detail-section > span, .detail-grid span { display: block; color: var(--gold); margin-bottom: 5px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.detail-grid p, .detail-section p { color: var(--muted); margin-top: 4px; }
.essential-list { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
.essential-list a, .detail-section a { color: var(--green); font-weight: 700; }
.detail-row + .detail-row { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.detail-works { display: grid; gap: 8px; }
.detail-work { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 9px; align-items: start; }
.detail-work img, .detail-work .work-placeholder { width: 74px; height: 74px; border-radius: 12px; object-fit: cover; background: #e3d8c2; display: grid; place-items: center; color: var(--muted); }
.detail-work em { display: block; color: var(--muted); margin-top: 3px; }
.sources ol { margin: 0; padding-left: 18px; }
.location-gate .gate-card::after,
.curator-card::after,
.artist-panel::after,
.top-panel::after,
.scale-card::after {
  content: "";
  position: absolute;
  right: -72px;
  bottom: -72px;
  width: 180px;
  height: 180px;
  background: url('./public/assets/openartlas-logo-watermark.png') center / contain no-repeat;
  opacity: .035;
  pointer-events: none;
}
.mobile-tabbar { border-top-color: var(--line-strong) !important; }
@media (max-width: 1080px) {
  html { scroll-padding-top: 132px; }
  .topbar { min-height: 116px !important; border-radius: 28px !important; }
  .logo-brand img { width: min(78vw, 620px) !important; max-height: 102px !important; }
  .desktop-nav { display: none !important; }
  .hero, .control-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 112px; }
  :root { --fs-large: clamp(32px, 10vw, 48px); }
  .site-watermark { width: 108vw !important; right: -48vw !important; bottom: 74px !important; opacity: .05 !important; }
  .topbar { min-height: 104px !important; border-radius: 24px !important; padding: 9px 10px !important; }
  .logo-brand img { width: min(92vw, 430px) !important; max-height: 92px !important; }
  .app-shell { width: min(100% - 12px, var(--max)) !important; gap: 7px !important; padding-bottom: 86px !important; }
  .ad-slot { min-height: 72px !important; padding: 9px !important; }
  .hero-copy { min-height: 196px !important; padding: 12px !important; }
  .hero-search { grid-template-columns: 1fr !important; }
  .hero-search input, .hero-search button { min-height: 46px !important; }
  .hero-map { min-height: 218px !important; }
  .map-frame, .map-canvas { min-height: 186px !important; }
  .stats-strip { grid-template-columns: repeat(5, minmax(0,1fr)) !important; }
  .stats-strip strong { font-size: 19px !important; letter-spacing: -.04em !important; }
  .stats-strip div { min-height: 50px !important; }
  .top-spots { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .top-card { min-height: 244px !important; }
  .venue-card { display: grid !important; grid-template-columns: 120px minmax(0,1fr) !important; min-height: 214px !important; }
  .card-media { height: auto !important; min-height: 100% !important; }
  .card-body { padding: 8px !important; gap: 5px !important; }
  .relevance-copy { -webkit-line-clamp: 2 !important; }
  .star-slot p { -webkit-line-clamp: 1 !important; }
  .card-actions a, .card-actions button { min-height: 32px !important; padding: 0 9px !important; }
  .card-actions a:nth-last-child(n+5) { display: none !important; }
  .detail-drawer { inset: 0; width: 100%; border-radius: 0; border: 0; }
  .detail-media { height: 230px; }
  .detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .logo-brand img { width: min(94vw, 360px) !important; max-height: 84px !important; }
  .topbar { min-height: 96px !important; }
  .venue-card { grid-template-columns: 104px minmax(0,1fr) !important; }
  .card-actions { gap: 4px !important; }
  .card-actions a, .card-actions button { padding: 0 8px !important; }
  .card-actions .transit-link { display: none !important; }
  .ad-actions a:nth-child(2), .ad-actions button { display: none !important; }
}


/* openARTlas V24 polish. Large brand mark, quieter cards, selective icons, clear top control. */
:root {
  --fs-small: 12px;
  --fs-base: 15px;
  --fs-large: clamp(36px, 5.8vw, 68px);
  --logo-green: #5f9412;
}
html { scroll-padding-top: 196px !important; }
body { overflow-x: hidden; }
.topbar {
  min-height: 172px !important;
  padding: 12px 18px !important;
  border-radius: 34px !important;
  justify-content: center !important;
  overflow: hidden;
}
.logo-brand {
  justify-content: center !important;
  flex: 1 1 auto !important;
  padding: 0 !important;
}
.logo-brand img {
  width: min(86vw, 880px) !important;
  max-height: 158px !important;
  object-fit: contain !important;
  filter: drop-shadow(0 14px 26px rgba(17,18,15,.09));
}
.desktop-nav {
  position: absolute;
  right: 14px;
  bottom: 12px;
  background: rgba(255,250,241,.74);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px;
}
.site-watermark {
  width: min(58vw, 650px) !important;
  right: -11vw !important;
  bottom: 74px !important;
  opacity: .038 !important;
  z-index: 0 !important;
}
.floating-logo {
  position: fixed;
  pointer-events: none;
  z-index: 0;
  opacity: .026;
  filter: saturate(.82);
}
.floating-logo-a { width: 188px; left: -54px; top: 36vh; transform: rotate(-10deg); }
.floating-logo-b { width: 136px; right: 9vw; top: 58vh; transform: rotate(8deg); }
.floating-logo-c { width: 112px; left: 18vw; bottom: 118px; transform: rotate(4deg); opacity: .022; }
.app-shell { position: relative; z-index: 1; gap: 12px !important; }
.hero, .ad-rail { gap: 10px !important; }
.hero-copy, .hero-map, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .venue-card, .ad-slot {
  backdrop-filter: blur(12px) saturate(1.03);
}
.hero-copy { padding: 22px !important; min-height: 268px !important; }
.hero-watermark { width: min(54%, 380px) !important; opacity: .07 !important; }
.ad-slot {
  min-height: 96px !important;
  border-color: rgba(95,148,18,.24) !important;
  background: linear-gradient(135deg, rgba(255,250,241,.94), rgba(244,239,228,.82)) !important;
}
.category-legend { display: flex !important; flex-wrap: wrap; gap: 7px !important; }
.legend-pill, .category-pill, .chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.legend-pill svg, .category-pill svg, .chip svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: var(--cat, var(--chip-color, var(--accent, var(--green))));
}
.category-pill svg { color: var(--accent, var(--green)); }
.kicker-line { align-items: center !important; gap: 8px !important; }
.country-flag {
  font-size: var(--fs-base) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin-right: 2px;
}
.results { gap: 12px !important; }
.venue-card {
  min-height: 260px !important;
  border-radius: 22px !important;
  box-shadow: 0 16px 42px rgba(17,18,15,.06) !important;
}
.venue-card::after { opacity: .55; }
.card-media { background: #ece4d5 !important; }
.card-media.image-missing { background: linear-gradient(135deg, #f6f0e4, color-mix(in srgb, var(--accent,var(--green)) 9%, #e9dfcf)) !important; }
.card-body { padding: 13px !important; gap: 8px !important; }
.relevance-copy { -webkit-line-clamp: 2 !important; }
.star-slot { padding: 10px 11px !important; border-radius: 16px !important; }
.star-slot p { -webkit-line-clamp: 2 !important; }
.names-line { -webkit-line-clamp: 1 !important; }
.badges { gap: 5px !important; margin-top: 1px !important; }
.badges .distance:nth-child(n+4), .badges .badge:nth-child(n+4) { display: none; }
.card-actions { padding-top: 2px !important; }
.card-actions button, .card-actions a { min-height: 35px !important; }
.top-card { border-radius: 20px !important; min-height: 278px !important; }
.top-media { height: 112px !important; }
.detail-drawer { width: min(620px, calc(100vw - 20px)) !important; border-radius: 30px !important; }
.detail-media { height: 300px !important; }
.detail-main { padding: 18px !important; gap: 12px !important; }
.detail-main h2 { font-size: var(--fs-large) !important; line-height: .96 !important; letter-spacing: -.055em !important; }
.detail-summary { max-width: 60ch; }
.detail-section, .detail-grid > div { padding: 12px !important; border-radius: 18px !important; }
.detail-grid { gap: 10px !important; }
.detail-works { gap: 10px !important; }
.detail-work { grid-template-columns: 86px minmax(0,1fr) !important; gap: 11px !important; }
.detail-work img, .detail-work .work-placeholder { width: 86px !important; height: 86px !important; border-radius: 14px !important; }
.back-top {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 120;
  min-height: 44px !important;
  padding: 0 16px !important;
  border: 1px solid rgba(17,18,15,.22) !important;
  border-radius: 999px !important;
  background: rgba(255,250,241,.91) !important;
  box-shadow: 0 14px 36px rgba(17,18,15,.14) !important;
  backdrop-filter: blur(14px);
}
.back-top::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url('./public/assets/openartlas-logo-watermark.png') center / contain no-repeat;
  opacity: .75;
}
.location-status-expanded {
  color: var(--green);
  font-weight: 700;
}
@media (min-width: 760px) {
  .venue-card { grid-template-columns: 210px minmax(0,1fr) !important; }
}
@media (min-width: 1180px) {
  .venue-card { grid-template-columns: 236px minmax(0,1fr) !important; min-height: 268px !important; }
  .card-media { min-height: 100% !important; }
}
@media (max-width: 1080px) {
  html { scroll-padding-top: 176px !important; }
  .topbar { min-height: 158px !important; }
  .logo-brand img { width: min(92vw, 720px) !important; max-height: 144px !important; }
  .desktop-nav { display: none !important; }
  .floating-logo-a { width: 150px; left: -64px; }
  .floating-logo-b { display: none; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 144px !important; }
  .topbar { min-height: 132px !important; border-radius: 28px !important; padding: 8px 10px !important; }
  .logo-brand img { width: min(96vw, 520px) !important; max-height: 122px !important; }
  .site-watermark { width: 118vw !important; right: -55vw !important; bottom: 86px !important; opacity: .045 !important; }
  .floating-logo { display: none; }
  .app-shell { width: min(100% - 12px, var(--max)) !important; gap: 9px !important; }
  .hero-copy { min-height: 214px !important; padding: 14px !important; }
  .ad-slot { min-height: 78px !important; }
  .venue-card { grid-template-columns: 128px minmax(0,1fr) !important; min-height: 226px !important; border-radius: 18px !important; }
  .card-body { padding: 10px !important; gap: 6px !important; }
  .star-slot { padding: 8px 9px !important; }
  .badges .badge:nth-child(n+3) { display: none; }
  .top-spots { grid-template-columns: 1fr !important; }
  .detail-drawer { inset: 0 !important; width: 100% !important; border-radius: 0 !important; }
  .detail-media { height: 248px !important; }
  .detail-main { padding: 14px !important; }
  .back-top { right: 12px; bottom: 72px; min-height: 40px !important; }
}
@media (max-width: 430px) {
  .topbar { min-height: 118px !important; }
  .logo-brand img { max-height: 110px !important; }
  .venue-card { grid-template-columns: 112px minmax(0,1fr) !important; }
  .category-pill svg { display: none; }
}


/* openARTlas V25 location prompt. Explicit mobile permission entry, more breathing room. */
.location-prompt {
  display: grid;
  grid-template-columns: 76px minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(95,148,18,.32);
  border-radius: 24px;
  background: linear-gradient(120deg, rgba(255,250,241,.97), rgba(238,247,225,.84));
  box-shadow: 0 18px 46px rgba(17,18,15,.07);
}
.location-prompt[hidden] { display: none !important; }
.location-prompt-logo {
  width: 76px;
  height: 76px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(17,18,15,.08);
}
.location-prompt-logo img { width: 118%; height: 118%; object-fit: contain; opacity: .88; }
.location-prompt-copy { min-width: 0; }
.location-prompt-copy span,
.gate-diagnostic {
  display: block;
  font-size: var(--fs-small);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 3px;
}
.location-prompt-copy strong { display: block; font-size: var(--fs-base); }
.location-prompt-copy p { margin: 3px 0 0; color: var(--muted); max-width: 62ch; }
.location-prompt-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.location-prompt-ready {
  border-color: rgba(95,148,18,.52) !important;
  background: linear-gradient(120deg, rgba(255,250,241,.98), rgba(236,248,216,.9)) !important;
}
.location-prompt-error {
  border-color: rgba(184,81,42,.48) !important;
  background: linear-gradient(120deg, rgba(255,250,241,.98), rgba(255,236,224,.82)) !important;
}
.card-body { gap: 9px !important; }
.star-slot { margin-top: 2px !important; }
.detail-main { line-height: 1.36 !important; }
.detail-section p, .detail-grid p { line-height: 1.38 !important; }
@media (max-width: 700px) {
  .location-prompt {
    grid-template-columns: 54px minmax(0,1fr);
    gap: 10px;
    padding: 10px;
    border-radius: 20px;
  }
  .location-prompt-logo { width: 54px; height: 54px; border-radius: 16px; }
  .location-prompt-actions { grid-column: 1 / -1; justify-content: stretch; }
  .location-prompt-actions button { flex: 1 1 0; }
  .hero-copy { min-height: 226px !important; }
  .topbar { min-height: 138px !important; }
  .logo-brand img { max-height: 128px !important; }
}


/* openARTlas V26 launch refinement. Exact logo, breathing cards, ratings, and granular footer. */
:root { --fs-small: 12px; --fs-base: 15px; --fs-large: clamp(34px, 5.4vw, 62px); }
html { scroll-padding-top: 156px; }
.topbar { min-height: 176px !important; padding: 10px 14px !important; align-items: center !important; }
.logo-brand { flex: 0 0 auto !important; min-width: min(92vw, 760px); }
.logo-brand img { width: min(94vw, 760px) !important; max-height: 158px !important; object-fit: contain !important; object-position: left center !important; }
.desktop-nav { margin-left: auto; }
.site-watermark { opacity: .035 !important; width: min(980px, 92vw) !important; right: -300px !important; bottom: 118px !important; filter: saturate(.9); }
.floating-logo { opacity: .026 !important; pointer-events: none; mix-blend-mode: multiply; }
.floating-logo-a { width: 230px !important; left: -66px !important; top: 30vh !important; }
.floating-logo-b { width: 170px !important; right: 7vw !important; top: 54vh !important; }
.floating-logo-c { width: 132px !important; left: 26vw !important; bottom: 136px !important; }
.app-shell { padding-top: 16px !important; gap: 14px !important; }
.hero-copy, .hero-map, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel, .ad-slot, .ad-copy { border-radius: 24px !important; }
.hero-copy, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel { padding: 16px !important; }
.hero { gap: 14px !important; }
.hero-copy { min-height: 300px !important; }
.hero-watermark { width: min(52%, 380px) !important; opacity: .045 !important; }
.results { gap: 14px !important; align-items: stretch !important; }
.results > .venue-card { min-height: 286px !important; height: 100% !important; }
.venue-card { border-radius: 24px !important; overflow: hidden; background: rgba(255,250,242,.94) !important; }
.venue-card .card-media { min-height: 100% !important; height: auto !important; }
.card-body { padding: 14px !important; gap: 9px !important; }
.relevance-copy { -webkit-line-clamp: 2 !important; }
.star-slot { padding: 10px !important; border-radius: 16px !important; }
.badges { gap: 5px !important; }
.category-pill { gap: 5px !important; }
.cat-icon { width: 17px !important; height: 17px !important; padding: 2px; border-radius: 999px; background: color-mix(in srgb, currentColor 11%, transparent); }
.rating-row { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 3px 8px; align-items: center; border-top: 1px solid var(--line); padding-top: 8px; }
.rating-row > span:first-child { font-size: var(--fs-small) !important; text-transform: uppercase; letter-spacing: .075em; color: var(--muted); }
.star-rating { display: inline-flex; align-items: center; gap: 1px; }
.star-button { min-height: 26px !important; min-width: 24px !important; border: 0 !important; border-radius: 999px !important; padding: 0 !important; background: transparent !important; color: rgba(16,17,15,.24) !important; font-size: 19px !important; line-height: 1 !important; box-shadow: none !important; }
.star-button.on, .star-button:hover, .star-button:focus-visible { color: var(--gold) !important; transform: none !important; }
.external-rating { grid-column: 1 / -1; color: var(--muted); font-size: var(--fs-small) !important; }
.external-rating a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.rating-detail { border: 1px solid var(--line); border-radius: 16px; padding: 10px; background: rgba(255,250,242,.7); }
.detail-drawer { width: min(660px, calc(100vw - 20px)) !important; }
.detail-main { gap: 12px !important; }
.detail-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 8px !important; }
.detail-section { padding: 12px !important; border-radius: 18px !important; }
.detail-work { grid-template-columns: 82px minmax(0,1fr) !important; }
.detail-work img, .work-placeholder { width: 82px !important; height: 82px !important; }
.footer-grid { grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 10px !important; }
.footer-grid div, .legal-grid div { padding: 12px !important; border-radius: 18px !important; }
#refreshStats { font-size: var(--fs-small) !important; line-height: 1.4; }
.back-top { z-index: 95 !important; }
@media (min-width: 860px) { .venue-card { grid-template-columns: 238px minmax(0,1fr) !important; } .card-media { min-height: 100% !important; } }
@media (min-width: 1120px) { .venue-card { grid-template-columns: 260px minmax(0,1fr) !important; } }
@media (max-width: 900px) { .topbar { min-height: 154px !important; } .logo-brand { min-width: 0 !important; } .logo-brand img { width: min(96vw, 590px) !important; max-height: 136px !important; } .desktop-nav { display: none !important; } .footer-grid { grid-template-columns: 1fr !important; } }
@media (max-width: 700px) { html { scroll-padding-top: 138px; } .topbar { min-height: 136px !important; border-radius: 26px !important; } .logo-brand img { width: min(96vw, 520px) !important; max-height: 120px !important; } .app-shell { width: min(100% - 12px, var(--max)) !important; gap: 10px !important; } .hero-copy, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel { padding: 14px !important; } .results > .venue-card { min-height: 238px !important; } .venue-card { grid-template-columns: 126px minmax(0,1fr) !important; } .card-body { padding: 11px !important; gap: 7px !important; } .relevance-copy, .star-slot p, .names-line { -webkit-line-clamp: 2 !important; } .rating-row { grid-template-columns: 1fr; gap: 2px; } .external-rating { display: none; } .floating-logo { display: none !important; } .site-watermark { width: 120vw !important; right: -62vw !important; bottom: 92px !important; opacity: .035 !important; } }
@media (max-width: 430px) { .topbar { min-height: 122px !important; } .logo-brand img { width: min(97vw, 440px) !important; max-height: 108px !important; } .venue-card { grid-template-columns: 110px minmax(0,1fr) !important; } .star-button { min-width: 21px !important; font-size: 17px !important; } .card-actions button, .card-actions a { min-height: 32px !important; } }


/* openARTlas V26 launch polish. Bigger supplied logo, mobile location prompt hardening, compact rating and refresh stats. */
:root { --launch-green: #5f9412; }
.topbar {
  min-height: 258px !important;
  padding: 18px 22px !important;
  border-radius: 40px !important;
}
.logo-brand img {
  width: min(94vw, 1120px) !important;
  max-height: 236px !important;
}
.site-watermark { opacity: .05 !important; }
.floating-logo { opacity: .03 !important; }
.floating-logo-d { width: 92px; right: 22vw; top: 22vh; transform: rotate(-5deg); opacity: .021 !important; }
.location-prompt {
  margin-top: -2px;
  border-width: 1px;
  grid-template-columns: 88px minmax(0,1fr) auto;
}
.location-prompt-logo { width: 88px; height: 88px; }
.location-prompt-actions .primary-button,
.gate-actions .primary-button,
#locateMe.primary-button { background: var(--ink) !important; color: var(--paper) !important; border-color: var(--ink) !important; }
.hero-copy, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .ad-slot { border-radius: 28px !important; }
.venue-card { min-height: 286px !important; }
.card-body { gap: 10px !important; }
.star-slot { margin-top: 2px !important; }
.detail-main { gap: 14px !important; }
.detail-section, .detail-grid > div { padding: 14px !important; }
.detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-media.logo-only img { width: min(78%, 360px); object-fit: contain; opacity: .18; }
.rating-section { background: linear-gradient(135deg, rgba(255,250,241,.98), rgba(238,247,225,.72)); }
.rating-row { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.rating-star {
  appearance: none;
  min-height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  border: 1px solid rgba(17,18,15,.14) !important;
  background: rgba(255,255,255,.62) !important;
  color: rgba(17,18,15,.36) !important;
  font-size: 18px !important;
  line-height: 1 !important;
}
.rating-star.active,
.rating-star:hover { color: #b98300 !important; border-color: rgba(185,131,0,.42) !important; background: rgba(255,245,205,.72) !important; }
.rating-row strong { margin-left: 6px; font-size: var(--fs-base); }
.rating-external { margin: 7px 0 0; color: var(--muted); }
.refresh-stats { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.refresh-stats span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(17,18,15,.09);
  border-radius: 999px;
  background: rgba(255,255,255,.44);
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .01em;
}
.back-top { scroll-margin-top: 0; }
@media (min-width: 860px) {
  .results { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 1fr !important; }
  .results > .venue-card { height: 100% !important; }
  .venue-card { grid-template-columns: 230px minmax(0,1fr) !important; }
}
@media (max-width: 1080px) {
  .topbar { min-height: 214px !important; padding: 12px !important; }
  .logo-brand img { width: min(96vw, 820px) !important; max-height: 198px !important; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 190px !important; }
  .topbar { min-height: 174px !important; border-radius: 30px !important; }
  .logo-brand img { width: min(98vw, 620px) !important; max-height: 162px !important; }
  .location-prompt { grid-template-columns: 64px minmax(0,1fr); margin-top: 0; }
  .location-prompt-logo { width: 64px; height: 64px; }
  .venue-card { grid-template-columns: 124px minmax(0,1fr) !important; min-height: 242px !important; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-section, .detail-grid > div { padding: 12px !important; }
  .refresh-stats span { font-size: 11px; min-height: 23px; }
}
@media (max-width: 430px) {
  .topbar { min-height: 156px !important; }
  .logo-brand img { max-height: 148px !important; }
  .venue-card { grid-template-columns: 108px minmax(0,1fr) !important; }
}
.rating-panel {
  padding: 12px !important;
  border: 1px solid color-mix(in srgb, var(--accent, var(--green)) 24%, var(--line));
  border-radius: 18px !important;
  background: linear-gradient(135deg, rgba(255,250,241,.98), rgba(238,247,225,.72));
}
.rating-panel > span {
  display: block;
  font-size: var(--fs-small) !important;
  text-transform: uppercase;
  letter-spacing: .075em;
  color: var(--muted);
  margin-bottom: 6px;
}
.rating-panel p {
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.35;
}


/* openARTlas V30 final commercial polish. Less clutter, stronger logo, better mobile location prompt. */
:root { --fs-small: 12px; --fs-base: 15px; --fs-large: clamp(34px, 5vw, 64px); }
body { font-family: var(--font) !important; }
html { scroll-padding-top: 230px !important; }
.topbar { min-height: 330px !important; padding: 18px 22px !important; border-radius: 42px !important; background: rgba(255,250,241,.88) !important; }
.logo-brand { min-width: min(96vw, 1300px) !important; }
.logo-brand img { width: min(96vw, 1300px) !important; max-height: 310px !important; object-position: left center !important; }
.desktop-nav { display: none !important; }
.site-watermark { width: min(1050px, 96vw) !important; right: -320px !important; bottom: 120px !important; opacity: .045 !important; filter: saturate(.9) contrast(.96); }
.floating-logo { border-radius: 24px; filter: saturate(.9) contrast(.94); opacity: .028 !important; }
.floating-logo-a { width: 260px !important; top: 24vh !important; left: -86px !important; }
.floating-logo-b { width: 180px !important; top: 54vh !important; right: 6vw !important; }
.floating-logo-c { width: 132px !important; bottom: 170px !important; }
.hero, .results { gap: 16px !important; }
.hero-copy, .hero-map, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .legal-panel, .ad-rail, .ad-slot { border-radius: 28px !important; }
.hero-copy { min-height: 286px !important; padding: 22px !important; }
.control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer { padding: 18px !important; }
.results { grid-template-columns: repeat(2, minmax(0,1fr)) !important; grid-auto-rows: minmax(292px, auto) !important; align-items: stretch !important; }
.venue-card { min-height: 292px !important; height: 100% !important; grid-template-columns: 240px minmax(0,1fr) !important; border-radius: 28px !important; }
.card-body { padding: 15px !important; gap: 10px !important; }
.relevance-copy { -webkit-line-clamp: 2 !important; line-height: 1.38 !important; }
.star-slot { border-radius: 18px !important; padding: 11px !important; background: linear-gradient(135deg, rgba(255,250,241,.96), color-mix(in srgb, var(--accent, var(--green)) 8%, #fffaf1)) !important; }
.detail-drawer { width: min(720px, calc(100vw - 18px)) !important; }
.detail-content { padding-bottom: 28px; }
.detail-main { padding: 18px !important; gap: 14px !important; }
.detail-section, .detail-grid > div, .rating-panel { border-radius: 20px !important; }
.detail-section.free-events { border-color: rgba(95,148,18,.42); background: linear-gradient(135deg, rgba(255,250,241,.98), rgba(237,248,224,.78)); }
.location-prompt { border-radius: 28px !important; padding: 14px 16px !important; }
.location-prompt-actions a { min-height: 39px; }
.location-gate .gate-card { max-width: 620px !important; }
.back-top { z-index: 140 !important; right: 18px !important; bottom: 18px !important; }
.mobile-tabbar { z-index: 120 !important; }
@media (max-width: 980px) {
  html { scroll-padding-top: 220px !important; }
  .topbar { min-height: 258px !important; padding: 12px !important; }
  .logo-brand img { width: min(98vw, 820px) !important; max-height: 232px !important; }
  .hero { grid-template-columns: 1fr !important; }
  .results { grid-template-columns: 1fr !important; grid-auto-rows: auto !important; }
  .venue-card { grid-template-columns: 168px minmax(0,1fr) !important; min-height: 262px !important; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 176px !important; }
  .topbar { min-height: 178px !important; width: calc(100% - 12px) !important; top: 6px !important; border-radius: 30px !important; padding: 8px !important; }
  .logo-brand img { width: min(99vw, 610px) !important; max-height: 160px !important; object-position: center center !important; }
  .app-shell { width: calc(100% - 12px) !important; }
  .hero-copy { min-height: 238px !important; padding: 16px !important; }
  .hero-search { grid-template-columns: 1fr !important; }
  .venue-card { grid-template-columns: 132px minmax(0,1fr) !important; min-height: 248px !important; }
  .card-body { padding: 12px !important; gap: 8px !important; }
  .card-actions { gap: 5px !important; }
  .card-actions button, .card-actions a { min-height: 32px !important; padding: 0 10px !important; }
  .location-prompt { grid-template-columns: 60px minmax(0,1fr) !important; }
  .location-prompt-actions { grid-column: 1 / -1; }
  .site-watermark { width: 122vw !important; right: -62vw !important; bottom: 92px !important; opacity: .04 !important; }
  .floating-logo { display: none !important; }
}
@media (max-width: 420px) { .venue-card { grid-template-columns: 112px minmax(0,1fr) !important; } .topbar { min-height: 160px !important; } .logo-brand img { max-height: 146px !important; } }


/* openARTlas V30. Transparent supplied logo and corrected header stage. */
html { scroll-padding-top: 18px !important; }
.topbar {
  position: relative !important;
  top: auto !important;
  z-index: 70 !important;
  width: min(1180px, calc(100% - 20px)) !important;
  min-height: 0 !important;
  margin: 10px auto 4px !important;
  padding: 4px 0 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  overflow: visible !important;
}
.logo-brand {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}
.logo-brand img {
  display: block !important;
  height: clamp(172px, 18vw, 252px) !important;
  width: auto !important;
  max-width: min(96vw, 620px) !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.desktop-nav { display: none !important; }
.app-shell { margin-top: 4px !important; }
.site-watermark {
  width: min(820px, 76vw) !important;
  right: -250px !important;
  bottom: 96px !important;
  opacity: .038 !important;
  mix-blend-mode: multiply !important;
  pointer-events: none !important;
}
.floating-logo {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  opacity: .022 !important;
  mix-blend-mode: multiply !important;
}
.floating-logo-a { width: 180px !important; left: -58px !important; top: 30vh !important; }
.floating-logo-b { width: 126px !important; right: 7vw !important; top: 58vh !important; }
.floating-logo-c { width: 96px !important; left: 24vw !important; bottom: 138px !important; }
.floating-logo-d { width: 76px !important; right: 24vw !important; top: 24vh !important; }
.ad-rail { margin-top: 2px !important; }
.location-prompt { margin-top: 4px !important; }
.hero { margin-top: 8px !important; }
.hero-watermark, .location-prompt-logo img, .detail-media.logo-only img, .fallback-art.logo-fallback img {
  background: transparent !important;
}
@media (max-width: 980px) {
  html { scroll-padding-top: 14px !important; }
  .topbar { width: calc(100% - 14px) !important; margin-top: 6px !important; }
  .logo-brand img { height: clamp(142px, 26vw, 210px) !important; max-width: min(96vw, 520px) !important; }
}
@media (max-width: 640px) {
  .topbar { width: calc(100% - 10px) !important; margin-top: 4px !important; padding-top: 2px !important; }
  .logo-brand img { height: clamp(120px, 36vw, 164px) !important; max-width: min(96vw, 420px) !important; }
  .app-shell { width: calc(100% - 10px) !important; margin-top: 2px !important; }
  .site-watermark { width: 112vw !important; right: -62vw !important; bottom: 84px !important; opacity: .035 !important; }
  .floating-logo { display: none !important; }
}
@media (max-width: 420px) {
  .logo-brand img { height: clamp(112px, 38vw, 146px) !important; max-width: 96vw !important; }
}


/* openARTlas V30. Server ratings, segmented AI cards, and uniform legal text. */
.rating-row { align-items: center !important; }
.rating-row .external-rating { color: var(--muted) !important; }
.rating-row .external-rating.empty { opacity: .72 !important; }
.rating-status { display: block; color: var(--green); font-style: normal; font-size: var(--fs-small) !important; }
.star-rating.is-saving { opacity: .65; pointer-events: none; }
.star-button[disabled] { opacity: .55; cursor: wait; }
.ai-brief { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; gap: 10px 16px !important; align-items: start !important; padding: 14px !important; }
.ai-brief .ai-eyebrow { grid-column: 1 / -1 !important; color: var(--green) !important; }
.ai-brief-body { min-width: 0 !important; display: grid !important; gap: 4px !important; }
.ai-brief small { justify-self: end !important; align-self: end !important; color: var(--muted) !important; max-width: 280px !important; text-align: right !important; }
.ai-route { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; align-items: stretch !important; }
.ai-pick { display: grid !important; grid-template-columns: 1fr !important; gap: 9px !important; padding: 12px !important; border-radius: 20px !important; border-color: color-mix(in srgb, var(--accent, var(--green)) 34%, var(--line)) !important; background: linear-gradient(135deg, rgba(255,250,242,.84), color-mix(in srgb, var(--accent, var(--green)) 7%, rgba(255,250,242,.72))) !important; }
.ai-pick-head { display: grid !important; grid-template-columns: 30px minmax(0, 1fr) !important; gap: 10px !important; align-items: start !important; }
.ai-pick-head > div:last-child { min-width: 0 !important; display: grid !important; gap: 3px !important; }
.ai-rank { width: 30px !important; height: 30px !important; }
.ai-slot, .ai-time, .ai-names, .ai-feature span { display: block !important; color: var(--muted) !important; font-size: var(--fs-small) !important; letter-spacing: .075em !important; text-transform: uppercase !important; }
.ai-time { color: var(--green) !important; }
.ai-feature { border: 1px solid color-mix(in srgb, var(--accent, var(--green)) 32%, var(--line)) !important; border-radius: 14px !important; padding: 8px !important; background: rgba(255,250,242,.62) !important; }
.ai-feature span { color: var(--green) !important; margin-bottom: 2px !important; }
.ai-pick ul { margin: 0 !important; padding-left: 18px !important; display: grid !important; gap: 2px !important; }
.ai-pick-actions { margin-top: 0 !important; gap: 6px !important; }
.ai-pick-actions button, .ai-pick-actions a { min-height: 34px !important; padding-inline: 11px !important; }
.ai-mini { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 8px !important; }
.ai-mini span { display: inline-flex !important; align-items: center !important; gap: 4px !important; min-height: 30px !important; border: 1px solid var(--line) !important; border-radius: 999px !important; padding: 0 10px !important; background: rgba(255,250,242,.66) !important; color: var(--muted) !important; }
.ai-mini b { color: var(--ink) !important; }
.trail-group > div { max-height: 280px !important; overflow: auto !important; padding-right: 2px !important; }
.footer, .footer p, .footer li, .footer a, .footer strong, .footer span, .legal-panel, .legal-panel p, .legal-panel span, .legal-panel strong, .legal-page p, .legal-page li, .legal-page a, .legal-page code, .legal-small { font-size: var(--fs-base) !important; line-height: 1.45 !important; }
.legal-page h2 { font-size: var(--fs-base) !important; line-height: 1.35 !important; }
.legal-grid div, .footer-grid div { min-height: 0 !important; }
@media (max-width: 980px) { .ai-route { grid-template-columns: 1fr !important; } .ai-brief { grid-template-columns: 1fr !important; } .ai-brief small { justify-self: start !important; text-align: left !important; max-width: none !important; } }

/* openARTlas V31. Commercial launch refinement: clean spacing, no horizontal text clipping, richer tags, and clearer scoring signals. */
:root {
  --fs-small: 12px;
  --fs-base: 15px;
  --fs-large: clamp(32px, 5.6vw, 58px);
}
body { overflow-x: hidden; }
.app-shell { gap: 12px !important; }
.logo-brand img { filter: drop-shadow(0 14px 28px rgba(23,20,16,.08)); }
.site-watermark { opacity: .045 !important; }
.hero-copy, .hero-map, .control-panel, .curator-card, .artist-panel, .top-panel, .scale-card, .footer, .ad-rail { border-radius: 28px !important; }
.hero-copy { background: linear-gradient(135deg, rgba(255,250,241,.96), rgba(241,234,218,.82)) !important; }
.hero-copy::before, .curator-card::before, .top-panel::before {
  content: "";
  position: absolute;
  width: 170px;
  height: 170px;
  right: -88px;
  bottom: -92px;
  border: 1px solid rgba(14,106,82,.18);
  border-radius: 48% 52% 42% 58%;
  transform: rotate(-18deg);
  pointer-events: none;
}
.results { align-items: stretch !important; }
.results > .venue-card { min-width: 0 !important; }
.venue-card {
  overflow: hidden !important;
  contain: layout paint;
  min-width: 0 !important;
  background: linear-gradient(135deg, rgba(255,250,242,.96), rgba(255,250,242,.88)) !important;
}
.venue-card, .venue-card * { min-width: 0; }
.card-body { min-width: 0 !important; overflow: hidden !important; }
.card-body h3,
.card-body p,
.star-slot strong,
.star-slot p,
.kicker-line,
.badges,
.person-tags,
.cluster-tags,
.ai-pick,
.ai-pick * {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
.kicker-line { display: flex !important; gap: 8px !important; align-items: center !important; justify-content: space-between !important; }
.kicker-line > span:last-child { min-width: 0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.category-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  border: 1px solid color-mix(in srgb, var(--accent, var(--green)) 44%, var(--line)) !important;
  background: color-mix(in srgb, var(--accent, var(--green)) 10%, rgba(255,250,242,.9)) !important;
  color: color-mix(in srgb, var(--accent, var(--green)) 78%, var(--ink)) !important;
  border-radius: 999px !important;
  padding: 4px 8px !important;
}
.category-pill .cat-icon { width: 15px !important; height: 15px !important; flex: 0 0 auto !important; }
.relevance-copy { -webkit-line-clamp: 3 !important; line-height: 1.34 !important; color: var(--text) !important; }
.star-slot { border-radius: 16px !important; padding: 9px 10px !important; }
.star-slot strong { display: block !important; margin-top: 3px !important; }
.star-slot p { -webkit-line-clamp: 2 !important; line-height: 1.32 !important; }
.person-tags,
.cluster-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}
.person-tags span,
.cluster-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,250,242,.7);
  color: var(--text);
  font-size: var(--fs-small) !important;
  line-height: 1.1;
}
.person-tags span { border-color: rgba(36,72,216,.25); background: rgba(36,72,216,.055); }
.cluster-tags span { border-color: rgba(168,113,35,.28); background: rgba(168,113,35,.07); color: var(--gold); }
.detail-tags span { min-height: 28px; padding-inline: 9px; }
.signal-strip { display: flex !important; gap: 5px !important; flex-wrap: wrap !important; align-items: center !important; }
.badge.signal {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-height: 27px !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  padding: 4px 8px !important;
}
.badge.signal b { display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center; border-radius: 50%; font-size: 11px !important; line-height: 1; flex: 0 0 auto; }
.signal-free { color: var(--green) !important; border-color: rgba(14,106,82,.48) !important; background: rgba(14,106,82,.09) !important; }
.signal-free b { background: var(--green); color: var(--panel); }
.signal-open { color: #0e6a52 !important; border-color: rgba(14,106,82,.34) !important; }
.signal-open b { background: rgba(14,106,82,.14); color: var(--green); }
.signal-close { color: #2448d8 !important; border-color: rgba(36,72,216,.32) !important; background: rgba(36,72,216,.06) !important; }
.signal-distance b, .signal-close b { background: rgba(36,72,216,.12); color: #2448d8; }
.signal-rating { color: #8a6100 !important; border-color: rgba(168,113,35,.36) !important; background: rgba(168,113,35,.08) !important; }
.signal-rating b, .signal-rate b { background: rgba(168,113,35,.14); color: var(--gold); }
.signal-closed { color: var(--coral) !important; border-color: rgba(187,77,55,.38) !important; }
.signal-closed b { background: rgba(187,77,55,.14); color: var(--coral); }
.card-actions { margin-top: auto !important; }
.card-actions button, .card-actions a { white-space: nowrap !important; }
.ai-brief {
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg, rgba(255,250,242,.96), rgba(237,248,224,.52)) !important;
}
.ai-brief .ai-eyebrow { display: block !important; margin: 0 !important; }
.ai-brief-body { display: grid !important; gap: 6px !important; }
.ai-brief-body strong { display: block !important; line-height: 1.18 !important; }
.ai-brief small { justify-self: start !important; text-align: left !important; max-width: none !important; border-top: 1px solid var(--line); padding-top: 6px; width: 100%; }
.ai-route { gap: 12px !important; }
.ai-pick { min-width: 0 !important; }
.ai-pick-head strong { display: block !important; line-height: 1.18 !important; margin-top: 2px !important; }
.ai-slot, .ai-time, .ai-names { line-height: 1.2 !important; }
.ai-feature { display: grid !important; gap: 3px !important; }
.ai-feature strong { display: block !important; }
.ai-mini {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 8px !important;
}
.ai-mini span {
  display: grid !important;
  gap: 2px !important;
  min-height: 46px !important;
  align-content: center !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  padding: 8px 10px !important;
  background: rgba(255,250,242,.68) !important;
}
.ai-mini b { font-size: var(--fs-small) !important; letter-spacing: .075em; text-transform: uppercase; color: var(--green) !important; }
.ai-mini em { font-size: var(--fs-base) !important; color: var(--ink) !important; overflow-wrap: anywhere; }
.rating-panel p { display: none !important; }
.footer-grid > div { display: grid; gap: 4px; }
.footer-grid p, .legal-panel p, .legal-panel strong, .legal-panel span { font-size: var(--fs-base) !important; }
.legal-panel { gap: 8px !important; }
.trail-picker summary { min-height: 42px; display: flex; align-items: center; }
.trail-group summary { position: sticky; top: 0; background: rgba(255,250,242,.96); z-index: 1; }
.trail-group > div { max-height: 236px !important; }
@media (min-width: 860px) {
  .results { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  .results > .venue-card { height: 100% !important; min-height: 314px !important; }
  .venue-card { grid-template-columns: 236px minmax(0,1fr) !important; }
}
@media (max-width: 980px) {
  .ai-mini { grid-template-columns: 1fr !important; }
  .kicker-line { align-items: flex-start !important; }
}
@media (max-width: 700px) {
  .venue-card { grid-template-columns: 122px minmax(0,1fr) !important; min-height: 260px !important; }
  .relevance-copy { -webkit-line-clamp: 2 !important; }
  .person-tags span:nth-child(n+4), .cluster-tags span:nth-child(n+3) { display: none; }
  .badges .badge:nth-child(n+4) { display: none !important; }
  .card-actions { gap: 4px !important; }
  .card-actions button, .card-actions a { min-height: 31px !important; padding-inline: 8px !important; }
}
@media (max-width: 430px) {
  .venue-card { grid-template-columns: 106px minmax(0,1fr) !important; min-height: 252px !important; }
  .category-pill { padding-inline: 6px !important; }
  .kicker-line > span:last-child { max-width: 120px !important; }
}

/* openARTlas V33. Heritage layer, popular tags, legal review links, and cleaner signal rows. */
:root { --fs-small: 12px; --fs-base: 15px; --fs-large: clamp(34px, 5.2vw, 62px); }
.venue-card,
.venue-card *,
.ai-pick,
.ai-pick *,
.detail-drawer,
.detail-drawer * { box-sizing: border-box; min-width: 0; }
.venue-card { overflow: hidden !important; }
.card-body { overflow: visible !important; }
.card-body h3,
.relevance-copy,
.star-slot strong,
.star-slot p,
.detail-summary,
.detail-row p,
.detail-section p,
.meta-box strong { overflow-wrap: anywhere !important; word-break: normal !important; hyphens: auto; }
.relevance-copy { -webkit-line-clamp: 5 !important; line-height: 1.32 !important; color: var(--text) !important; }
.star-slot p { -webkit-line-clamp: 3 !important; }
.person-tags, .cluster-tags { margin-top: 1px; }
.signal-strip { margin-top: 1px; }
.badge.signal { text-transform: none !important; letter-spacing: .02em !important; }
.contact-card { background: linear-gradient(135deg, rgba(255,250,242,.9), rgba(237,247,225,.58)); }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.contact-grid a { display: grid; gap: 2px; min-height: 54px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,250,242,.72); color: var(--ink); text-decoration: none; }
.contact-grid a span { color: var(--green); font-size: var(--fs-small) !important; letter-spacing: .075em; text-transform: uppercase; }
.contact-grid a strong { color: var(--ink); font-size: var(--fs-base) !important; overflow-wrap: anywhere; }
.social-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.social-row a { display: inline-flex; align-items: center; min-height: 30px; border: 1px solid rgba(14,106,82,.22); border-radius: 999px; padding: 0 10px; background: rgba(14,106,82,.06); color: var(--green); text-decoration: none; }
.rating-panel p { display: none !important; }
.external-rating { overflow-wrap: anywhere; }
@media (min-width: 860px) {
  .results > .venue-card { min-height: 352px !important; }
  .venue-card { grid-template-columns: 246px minmax(0,1fr) !important; }
}
@media (min-width: 1120px) {
  .results > .venue-card { min-height: 372px !important; }
  .venue-card { grid-template-columns: 258px minmax(0,1fr) !important; }
}
@media (max-width: 700px) {
  .relevance-copy { -webkit-line-clamp: 4 !important; }
  .star-slot p { -webkit-line-clamp: 2 !important; }
  .contact-grid { grid-template-columns: 1fr; }
  .venue-card { min-height: 284px !important; }
}
@media (max-width: 430px) {
  .relevance-copy { -webkit-line-clamp: 3 !important; }
  .venue-card { min-height: 268px !important; }
}

/* openARTlas V33. World heritage, popular signals, clearer route facts, and safer review links. */
.signal-unesco {
  color: var(--green) !important;
  border-color: rgba(14, 106, 82, .42) !important;
  background: rgba(14, 106, 82, .095) !important;
}
.signal-unesco b {
  background: var(--green) !important;
  color: var(--panel) !important;
}
.signal-popular {
  color: #8a6100 !important;
  border-color: rgba(168, 113, 35, .42) !important;
  background: rgba(168, 113, 35, .095) !important;
}
.signal-popular b {
  background: rgba(168, 113, 35, .18) !important;
  color: var(--gold) !important;
}
.ai-mini {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 12px !important;
}
.ai-mini span {
  border-radius: 18px !important;
  padding: 9px 11px !important;
  min-height: 54px !important;
  display: grid !important;
  gap: 3px !important;
  align-content: center !important;
  overflow: hidden !important;
}
.ai-mini em {
  display: block !important;
  white-space: normal !important;
  line-height: 1.22 !important;
}
.stats-strip {
  overflow: hidden !important;
}
.stats-strip div {
  min-width: 0 !important;
  gap: 2px !important;
}
.stats-strip strong,
.stats-strip span {
  display: block !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
.review-link-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.review-link-row a {
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 11px;
  background: rgba(255,250,242,.7);
  color: var(--ink);
  font-weight: 700;
}
.review-link-row a:hover {
  border-color: var(--ink);
}
@media (max-width: 760px) {
  .ai-mini { grid-template-columns: 1fr !important; }
  .stats-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .stats-strip div:last-child { grid-column: span 2; }
}
