:root {
  color-scheme: light;
  --ink:#102f2a;
  --paper:#fff9f0;
  --paper-strong:#fffdf8;
  --black:#15130f;
  --black-soft:#242018;
  --gold:#9b7022;
  --antique-gold:#b88a37;
  --champagne:#d8bd79;
  --warm-white:#fff8e8;
  --coral:#f25576;
  --leaf:#247a61;
  --muted:#65736d;
  --line:#e7dbc8;
  --shadow:0 16px 42px rgba(16,47,42,.18);
  --music:#ef4f78;
  --food:#e79b38;
  --wellness:#2f9a75;
  --community:#7357bd;
  --sports:#2f6fc2;
  --arts:#268ca0;
  --other:#5f716c;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html,body { width:100%; height:100%; margin:0; }
body { overflow:hidden; background:#dce8df; color:var(--ink); font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,a { -webkit-tap-highlight-color:transparent; }
.map-shell { position:relative; width:100%; height:var(--map-viewport-height,100vh); min-height:100svh; }
#event-map {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  overflow:visible;
  background:#dfe9e2;
}
.leaflet-container { font:inherit; }
.leaflet-control-attribution { margin:0 0 calc(env(safe-area-inset-bottom) + var(--event-sheet-height,76px) + 16px) 10px!important; border-radius:5px; opacity:.72; font-size:10px!important; line-height:1.2!important; padding:2px 5px!important; }
.leaflet-control-zoom { margin-right:14px!important; margin-bottom:calc(env(safe-area-inset-bottom) + var(--event-sheet-height,76px) + 18px)!important; border:0!important; box-shadow:var(--shadow)!important; }
.leaflet-control-zoom a { color:var(--ink)!important; border-color:var(--line)!important; }

.map-header {
  position:absolute;
  z-index:500;
  top:calc(env(safe-area-inset-top) + 10px);
  left:12px;
  right:12px;
  max-width:660px;
  margin:auto;
  padding:10px 12px 9px;
  border:1px solid var(--gold);
  border-radius:20px;
  background:rgba(242,226,180,.97);
  color:var(--ink);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.brand-row { position:relative; display:flex; min-height:36px; align-items:center; justify-content:center; text-align:center; }
.brand-copy { min-width:0; padding:0 44px; }
.brand { margin:0; color:var(--gold); font-size:.58rem; font-weight:900; letter-spacing:.16em; }
h1 { margin:0; font-family:Georgia,serif; font-size:clamp(1.3rem,5vw,1.65rem); line-height:.96; }
.chuma-logo {
  position:absolute;
  top:50%;
  left:0;
  display:grid;
  width:36px;
  height:36px;
  transform:translateY(-50%);
  place-items:center;
  overflow:hidden;
  border:1px solid var(--gold);
  border-radius:50%;
  background:#080a08;
  text-decoration:none;
}
.chuma-logo img { display:block; width:100%; height:100%; object-fit:cover; transform:translate(.2px,.85px); }
.language-toggle { position:absolute; top:50%; right:0; width:36px; height:36px; transform:translateY(-50%); border:1px solid var(--gold); border-radius:50%; background:rgba(255,253,248,.62); color:var(--ink); font-weight:900; cursor:pointer; }
.calendar-panel {
  margin:7px 0 -2px;
  padding:5px 0 0;
  border-top:1px solid rgba(216,189,121,.52);
  background:transparent;
}
.category-legend {
  display:flex;
  width:100%;
  min-height:24px;
  align-items:center;
  gap:14px;
  margin-top:4px;
  overflow-x:auto;
  border-top:1px solid rgba(216,189,121,.36);
  color:var(--black);
  padding:5px 1px 0;
  scrollbar-width:none;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
.category-legend[hidden] { display:none; }
.category-legend::-webkit-scrollbar { display:none; }
.specials-toggle {
  display:inline-flex;
  min-height:28px;
  flex:0 0 auto;
  align-items:center;
  gap:6px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:var(--paper-strong);
  color:var(--black);
  font-size:.64rem;
  font-weight:900;
  padding:3px 8px 3px 4px;
  white-space:nowrap;
  cursor:pointer;
}
.specials-toggle-icon {
  display:grid;
  width:20px;
  height:20px;
  place-items:center;
  border-radius:50%;
  background:var(--black);
  color:var(--champagne);
  font-size:.66rem;
  line-height:1;
}
.specials-toggle-count {
  display:grid;
  min-width:16px;
  height:16px;
  place-items:center;
  border-radius:99px;
  background:var(--coral);
  color:#fff;
  font-size:.5rem;
  padding:0 3px;
}
.specials-toggle.active { background:var(--black); color:var(--warm-white); }
.specials-toggle.active .specials-toggle-icon { background:var(--champagne); color:var(--black); }
.specials-toggle:active { transform:translateY(1px); }
.category-legend-item {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  gap:5px;
  white-space:nowrap;
  font-size:.66rem;
  font-weight:850;
}
.category-legend-item::before {
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:var(--legend-color,var(--other));
}
.date-picker { margin-top:0; }
.date-picker-heading { display:grid; grid-template-columns:36px 1fr 36px; align-items:center; gap:5px; }
.date-arrow,.date-range-label { min-height:32px; border:0; background:transparent; color:var(--bronze,#76511f); cursor:pointer; }
.date-arrow { border-radius:50%; font-size:1.55rem; line-height:1; }
.date-arrow:active { background:rgba(155,112,34,.12); }
.date-range-label { font-size:.73rem; font-weight:900; letter-spacing:.03em; text-transform:uppercase; }
.date-strip { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin-top:2px; }
.date-chip { position:relative; display:flex; min-width:0; min-height:44px; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid transparent; border-radius:13px; background:transparent; color:var(--muted); cursor:pointer; }
.date-chip.today:not(.active) { border-color:rgba(155,112,34,.28); background:rgba(255,253,248,.44); }
.date-chip.active { border-color:var(--gold); background:var(--black); color:var(--warm-white); box-shadow:inset 0 0 0 1px var(--gold),0 5px 12px rgba(21,19,15,.2); }
.date-weekday { max-width:100%; overflow:hidden; font-size:.58rem; font-weight:900; text-overflow:ellipsis; text-transform:uppercase; }
.date-number { font-family:Georgia,serif; font-size:1.05rem; font-weight:800; line-height:1; }
.date-count { position:absolute; top:3px; right:4px; display:grid; min-width:14px; height:14px; place-items:center; border-radius:99px; background:var(--coral); color:white; font-size:.48rem; font-weight:900; padding:0 3px; }
.screen-reader-status {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}

.submit-event-link {
  position:absolute;
  z-index:550;
  top:calc(var(--map-header-bottom, 225px) + 8px);
  right:12px;
  display:flex;
  min-height:40px;
  align-items:center;
  gap:8px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:rgba(242,226,180,.97);
  box-shadow:0 8px 20px rgba(16,47,42,.18);
  color:var(--black);
  font-size:.73rem;
  font-weight:900;
  padding:6px 13px 6px 7px;
  text-decoration:none;
  backdrop-filter:blur(12px);
}
.submit-event-link[hidden] { display:none; }
.submit-event-icon,
.event-preview-expand,
.sheet-collapse {
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--black);
  color:white;
  font-family:inherit;
  font-size:1.15rem;
  font-weight:900;
  line-height:1;
}
.submit-event-icon {
  width:27px;
  height:27px;
}
.submit-event-link:active { transform:translateY(1px); }

.locate-me-button {
  position:absolute;
  z-index:550;
  top:calc(var(--map-header-bottom, 225px) + 8px);
  left:12px;
  display:grid;
  width:41px;
  height:41px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:rgba(242,226,180,.97);
  box-shadow:0 8px 20px rgba(16,47,42,.18);
  color:var(--black);
  cursor:pointer;
  backdrop-filter:blur(12px);
}
.locate-me-button:active { transform:translateY(1px); }
.locate-me-button:disabled { cursor:wait; opacity:.7; }
.locate-me-button.active { background:var(--black); color:var(--champagne); }
.locate-me-icon { width:23px; height:23px; overflow:visible; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:1.8; }
.locate-me-dot { fill:currentColor; stroke:none; }
.locate-me-button.locating .locate-me-icon { animation:locate-pulse 1s ease-in-out infinite; }
@keyframes locate-pulse { 50% { transform:scale(.82); opacity:.58; } }
@media (prefers-reduced-motion:reduce) { .locate-me-button.locating .locate-me-icon { animation:none; } }

.map-welcome {
  position:absolute;
  z-index:710;
  top:calc(var(--map-header-bottom, 225px) + 62px);
  left:50%;
  width:min(390px,calc(100% - 28px));
  transform:translateX(-50%);
  border:1px solid var(--gold);
  border-radius:18px;
  background:rgba(242,226,180,.98);
  box-shadow:0 14px 34px rgba(16,47,42,.24);
  color:var(--ink);
  padding:16px 46px 17px 18px;
  backdrop-filter:blur(14px);
}
.map-welcome[hidden] { display:none; }
.map-welcome-kicker { margin:0 0 4px; color:var(--gold); font-size:.56rem; font-weight:950; letter-spacing:.16em; }
.map-welcome h2 { margin:0; font-family:Georgia,serif; font-size:1.08rem; line-height:1.1; }
.map-welcome p:last-child { margin:7px 0 0; color:#304842; font-size:.73rem; line-height:1.4; }
.map-welcome-close {
  position:absolute;
  top:9px;
  right:9px;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--black);
  color:var(--warm-white);
  cursor:pointer;
  font-size:1.15rem;
  font-weight:900;
  line-height:1;
}
.map-welcome-close:focus-visible { outline:3px solid rgba(36,122,97,.5); outline-offset:2px; }

.community-spotlight {
  position:absolute;
  z-index:700;
  top:calc(var(--map-header-bottom, 225px) + 64px);
  left:50%;
  display:grid;
  width:min(326px,calc(100% - 28px));
  min-height:66px;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  transform:translateX(-50%);
  border:1px solid var(--gold);
  border-radius:999px;
  background:rgba(242,226,180,.97);
  box-shadow:0 12px 28px rgba(74,43,20,.22);
  color:#612f21;
  padding:9px 11px 9px 9px;
  backdrop-filter:blur(12px);
}
.community-spotlight[hidden] { display:none; }
.community-spotlight-logo {
  display:grid;
  width:44px;
  height:44px;
  place-items:center;
  overflow:hidden;
  border:2px solid #d77a2a;
  border-radius:50%;
  background:#fff;
}
.community-spotlight-logo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.08);
}
.community-spotlight-message { min-width:0; }
.community-spotlight-close {
  position:absolute;
  top:-8px;
  right:-6px;
  display:grid;
  width:29px;
  height:29px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:#fff4d8;
  box-shadow:0 5px 12px rgba(74,43,20,.15);
  color:#704232;
  font-size:1.05rem;
  line-height:1;
  cursor:pointer;
}
.community-spotlight-close:active { transform:translateY(1px); }
.community-spotlight h2 {
  margin:0;
  overflow:hidden;
  color:#5e2b1c;
  font-family:Arial,sans-serif;
  font-size:.78rem;
  font-weight:900;
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.community-spotlight-copy {
  margin:3px 0 0;
  color:#704c3a;
  font-size:.62rem;
  line-height:1.22;
}
.community-spotlight-donate {
  display:inline-flex;
  min-height:36px;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  background:#6b3525;
  color:#fff9e9;
  font-size:.66rem;
  font-weight:900;
  padding:8px 12px;
  text-decoration:none;
}
.community-spotlight-donate:active { transform:translateY(1px); }

.event-marker { border:0; background:transparent; }
.event-pin {
  position:relative;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  overflow:hidden;
  border:3px solid var(--pin-color,var(--other));
  border-radius:50% 50% 50% 10%;
  transform:rotate(-45deg);
  background:var(--pin-color,var(--other));
  box-shadow:0 6px 14px rgba(16,47,42,.35);
}
.event-pin.has-logo { background:#fff8e8; }
.event-pin-logo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:rotate(45deg) scale(1.42);
}
.event-pin span {
  position:relative;
  z-index:1;
  display:grid;
  min-width:17px;
  min-height:17px;
  place-items:center;
  border-radius:999px;
  transform:rotate(45deg);
  background:rgba(8,10,8,.82);
  color:white;
  font-size:.7rem;
  font-weight:900;
}
.event-pin span:empty { display:none; }
.event-marker.selected .event-pin { width:42px; height:42px; margin:-4px 0 0 -4px; box-shadow:0 0 0 5px color-mix(in srgb,var(--pin-color) 46%,transparent),0 8px 18px rgba(16,47,42,.4); }
.event-marker.special .event-pin { box-shadow:0 0 0 3px color-mix(in srgb,var(--pin-color) 42%,transparent),0 6px 14px rgba(16,47,42,.35); }
.event-marker.special.selected .event-pin { box-shadow:0 0 0 5px color-mix(in srgb,var(--pin-color) 46%,transparent),0 8px 18px rgba(16,47,42,.4); }

.event-sheet {
  position:absolute;
  z-index:600;
  left:10px;
  right:10px;
  bottom:calc(env(safe-area-inset-bottom) + 4px);
  max-width:620px;
  max-height:min(72dvh,680px);
  margin:auto;
  overflow:auto;
  border:1px solid var(--gold);
  border-radius:23px;
  background:rgba(242,226,180,.97);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.event-sheet.intro {
  left:50%;
  right:auto;
  width:max-content;
  max-width:calc(100% - 24px);
  transform:translateX(-50%);
  overflow:hidden;
  border-radius:999px;
  background:rgba(242,226,180,.97);
  box-shadow:0 8px 20px rgba(16,47,42,.18);
}
.event-sheet.intro #sheet-content {
  display:flex;
  min-height:40px;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 15px;
}
.event-sheet.intro h2 {
  display:flex;
  margin:0;
  min-width:0;
  max-width:100%;
  align-items:center;
  gap:6px;
  overflow:visible;
  font-family:inherit;
  font-size:.73rem;
  font-weight:900;
  line-height:1.25;
  white-space:nowrap;
}
.intro-pin {
  position:relative;
  display:inline-block;
  width:11px;
  height:11px;
  flex:0 0 11px;
  border-radius:50% 50% 50% 0;
  background:var(--black);
  transform:rotate(-45deg);
}
.intro-pin::after {
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--champagne);
}
.intro-prompt,.intro-separator { flex:0 0 auto; }
.event-sheet.intro .selected-date {
  order:initial;
  min-width:0;
  margin:0;
  overflow:hidden;
  color:var(--black-soft);
  font-size:inherit;
  text-overflow:ellipsis;
  text-transform:none;
  white-space:nowrap;
}
.intro-separator { color:var(--gold); }
.selected-date { order:2; margin:4px 0 0; color:var(--muted); font-size:.67rem; font-weight:850; text-transform:capitalize; }
.event-sheet.compact { width:calc(100% - 20px); max-width:460px; overflow:hidden; }
.venue-stack-nav {
  display:flex;
  min-height:42px;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:1px solid var(--line);
  background:rgba(242,226,180,.97);
  padding:5px 9px 5px 14px;
}
.venue-stack-summary { display:flex; min-width:0; flex-direction:column; }
.venue-stack-summary strong { overflow:hidden; font-size:.68rem; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }
.venue-stack-summary span { margin-top:2px; color:var(--muted); font-size:.55rem; font-weight:800; }
.venue-stack-controls { display:flex; flex:0 0 auto; align-items:center; gap:5px; }
.venue-stack-arrow {
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--black);
  color:var(--champagne);
  font-family:Arial,sans-serif;
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
}
.venue-stack-arrow:disabled { border-color:#d9d0c0; background:#e7e0d5; color:#9a9389; cursor:default; }
.venue-stack-position { min-width:42px; color:var(--ink); font-size:.59rem; font-weight:900; text-align:center; }
.event-preview-list { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.event-preview-list::-webkit-scrollbar { display:none; }
.event-preview {
  display:grid;
  flex:0 0 100%;
  min-width:100%;
  min-height:100px;
  grid-template-columns:72px minmax(0,1fr) 36px;
  align-items:center;
  gap:10px;
  scroll-snap-align:start;
  border:0;
  background:rgba(242,226,180,.97);
  color:var(--ink);
  padding:9px;
  text-align:left;
}
.event-artwork { position:relative; display:grid; overflow:hidden; place-items:center; border:0; border-radius:15px; background:var(--category-color,var(--other)); color:white; padding:0; }
.preview-artwork { width:72px; height:72px; }
.event-artwork-fallback { display:grid; width:100%; height:100%; place-items:center; line-height:1; }
.event-artwork-monogram { font-family:Georgia,serif; font-size:1.5rem; font-weight:900; letter-spacing:.03em; }
.event-artwork-image { position:absolute; inset:0; display:block; width:100%; height:100%; }
.event-artwork-flyer { object-fit:cover; }
.event-artwork-logo { background:rgba(242,226,180,.97); object-fit:contain; padding:8px; }
.event-artwork-button { cursor:zoom-in; }
.event-artwork-button::after {
  content:"↗";
  position:absolute;
  right:4px;
  bottom:4px;
  display:grid;
  width:19px;
  height:19px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:rgba(21,19,15,.92);
  color:white;
  font-size:.66rem;
  font-weight:900;
  line-height:1;
}
.event-artwork-button:focus-visible,.event-preview-copy:focus-visible,.event-preview-expand:focus-visible { outline:2px solid var(--black); outline-offset:2px; }
.event-preview-copy { display:flex; min-width:0; flex-direction:column; border:0; background:transparent; color:inherit; padding:0; text-align:left; cursor:pointer; }
.event-preview-kind { align-self:flex-start; margin-bottom:3px; border-radius:999px; background:#f1dfad; color:#604914; font-size:.52rem; font-weight:950; letter-spacing:.03em; padding:3px 6px; text-transform:uppercase; }
.event-preview-title { display:-webkit-box; overflow:hidden; font-family:Georgia,serif; font-size:1rem; line-height:1.05; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.event-preview-venue { margin-top:4px; overflow:hidden; color:#405650; font-size:.68rem; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.event-preview-time { margin-top:3px; color:#4d5f59; font-size:.65rem; font-weight:750; }
.event-preview-expand { width:36px; height:36px; border:0; box-shadow:0 5px 12px rgba(16,47,42,.18); cursor:pointer; }

.event-sheet.expanded { width:calc(100% - 20px); max-width:540px; overflow:auto; }
.event-sheet.expanded #sheet-content { padding:8px 12px 17px; }
.sheet-collapse { width:36px; height:36px; flex:0 0 36px; margin:0; border:0; box-shadow:0 5px 12px rgba(16,47,42,.18); cursor:pointer; }
.sheet-collapse:active { transform:translateY(1px); }
.expanded-details { padding:5px 5px 1px; }
.expanded-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.expanded-heading > div { min-width:0; }
.expanded-heading h2 { margin:0; font-family:Georgia,serif; font-size:clamp(1.3rem,5vw,1.65rem); line-height:1.04; }
.venue-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:10px; }
.event-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:6px; }
.category-label,.venue-label,.date-label,.special-label { font-size:.63rem; font-weight:900; }
.venue-label,.special-label { padding:5px 8px; border-radius:999px; }
.category-label { display:inline-flex; align-items:center; gap:5px; color:var(--black); font-size:.66rem; font-weight:850; }
.category-label::before { content:""; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:var(--category-color,var(--other)); }
.venue-label { border:1px solid var(--gold); background:rgba(242,226,180,.97); color:var(--ink); }
.date-label { color:var(--black); }
.special-label { background:#f1dfad; color:#604914; }
.expanded-description { margin:7px 0 0; color:#304842; font-size:.78rem; line-height:1.42; }
.event-ticket-summary { display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin:10px 0 0; color:#405650; font-size:.72rem; line-height:1.3; }
.event-ticket-summary strong { color:var(--ink); font-weight:900; }
.event-ticket-separator { color:var(--gold); font-weight:900; }
.event-ticket-link,.event-directions-link {
  display:inline-flex;
  min-height:36px;
  align-items:center;
  gap:8px;
  margin-top:12px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:var(--black);
  color:var(--warm-white);
  font-size:.69rem;
  font-weight:900;
  padding:8px 13px;
  text-decoration:none;
}
.event-ticket-link:active,.event-directions-link:active { transform:translateY(1px); }
.event-ticket-icon,.event-directions-icon { color:var(--champagne); font-size:.9rem; line-height:1; }
.event-directions-link { margin-right:7px; }
.event-social-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.event-social-link {
  display:inline-flex;
  min-height:34px;
  align-items:center;
  gap:7px;
  border:1px solid var(--gold);
  border-radius:999px;
  background:rgba(242,226,180,.97);
  color:var(--ink);
  font-size:.68rem;
  font-weight:850;
  padding:7px 11px;
  text-decoration:none;
}
.event-social-link:active { transform:translateY(1px); }
.event-social-icon { display:grid; width:18px; height:18px; place-items:center; border:1.5px solid currentColor; border-radius:5px; font-size:.62rem; line-height:1; }

.flyer-viewer {
  position:fixed;
  inset:0;
  display:none;
  width:100vw;
  max-width:100vw;
  height:100dvh;
  max-height:100dvh;
  margin:0;
  box-sizing:border-box;
  place-items:center;
  overflow:hidden;
  border:0;
  background:transparent;
  padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
}
.flyer-viewer[open] { display:grid; }
.flyer-viewer::backdrop { background:rgba(4,10,8,.82); backdrop-filter:blur(8px); }
.flyer-viewer-card {
  position:relative;
  display:flex;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  align-items:center;
  justify-content:center;
}
.flyer-viewer-image {
  display:block;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:100%;
  flex:0 1 auto;
  width:auto;
  height:auto;
  border:1px solid var(--gold);
  border-radius:16px;
  background:var(--black);
  box-shadow:0 24px 70px rgba(0,0,0,.46);
  object-fit:contain;
  object-position:center;
}
.flyer-viewer-close {
  position:absolute;
  z-index:1;
  top:8px;
  right:8px;
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--black);
  box-shadow:0 5px 14px rgba(0,0,0,.3);
  color:white;
  font-size:1.15rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}

@media (min-width:760px) {
  .map-header { left:24px; right:auto; width:420px; margin:0; }
  .submit-event-link { top:24px; left:468px; right:auto; }
  .locate-me-button { top:24px; left:auto; right:24px; }
  .event-sheet { left:auto; right:24px; bottom:24px; width:420px; margin:0; max-height:calc(100dvh - 48px); }
  .event-sheet.intro { left:auto; right:24px; width:max-content; transform:none; }
  .leaflet-control-zoom { margin-bottom:24px!important; margin-right:468px!important; }
  .leaflet-control-attribution { margin:0 0 8px 8px!important; }
  .community-spotlight { top:82px; left:468px; transform:none; }
  .map-welcome { top:82px; left:468px; transform:none; }
}

@media (max-width:430px) {
  .map-header { padding:9px 10px 8px; }
  .category-legend { gap:11px; }
  .category-legend-item { font-size:.62rem; }
  .event-sheet { max-height:72dvh; }
  .event-sheet.intro,.event-sheet.compact { max-height:34dvh; }
  .community-spotlight { width:min(318px,calc(100% - 28px)); }
  .map-welcome { width:calc(100% - 28px); }
}
