@font-face{font-family:DM Sans;src:url('/fonts/dm-sans-normal-d4c68940b772538be3593f0c646de4a0.woff2?vsn=d') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Fraunces;src:url('/fonts/fraunces-normal-1e6b6cdca8d31530d3519768cbd4825a.woff2?vsn=d') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Fraunces;src:url('/fonts/fraunces-italic-42e704fdcb66f030aaf4385749f0bdcb.woff2?vsn=d') format('woff2');font-style:italic;font-weight:400 700;font-display:swap}

:root{--paper:#f8f6ef;--card:#fffdf8;--ink:#233b2f;--forest:#294638;--sub:#536058;--line:#e2e0d5;--moss:#496b53;--gold:#d59b52;--display:Fraunces,Georgia,serif;--body:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper);font:16px/1.5 var(--body);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
body:has(.phoenix-liveview-error){overflow:auto}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #835529;outline-offset:4px}
button:disabled{cursor:wait}
svg{flex-shrink:0;vertical-align:middle}
figure,p,h1,h2,h3,h4{margin:0}
.shell{width:min(100% - 100px, 1260px);margin-inline:auto}
.skip-link{position:absolute;top:-60px;left:16px;z-index:10;padding:12px 18px;background:var(--card)}
.skip-link:focus{top:12px}
.site-header{border-bottom:1px solid var(--line)}
.header-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:82px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:650 25px/1 var(--display);letter-spacing:-.045em;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:11px;color:var(--paper);background:var(--forest)}
.brand-mark svg{width:27px;height:27px}
.brand-question{color:#8a623e}
.brand small{display:block;margin-top:6px;font:700 8px/1 var(--body);letter-spacing:.17em;color:var(--sub)}
.site-header nav{display:flex;align-items:center;gap:31px}
.nav-link,.my-votes{font-weight:650;font-size:14px;text-decoration:none;white-space:nowrap}
.nav-link:hover,.nav-link:focus-visible{text-decoration:underline;text-underline-offset:5px}
.my-votes{display:flex;align-items:center;gap:8px;border:1px solid #d9ded2;border-radius:99px;padding:9px 14px;background:#eef0e7}
.my-votes:hover,.my-votes.is-current{background:#dde6d8}
.my-votes svg{width:18px;height:18px}
.nav-count{display:grid;place-items:center;min-width:19px;height:19px;padding-inline:4px;border-radius:99px;background:var(--forest);color:white;font-size:10px}

.hero{display:grid;grid-template-columns:.96fr 1.04fr;align-items:center;gap:36px;padding-block:42px 47px}
.hero-copy{padding:4px 0 8px}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;display:flex;align-items:center;gap:9px;color:#405b4b}
.signal{width:8px;height:8px;background:#b57741;border-radius:50%;box-shadow:0 0 0 4px #eee4d3;margin-left:4px}
.hero h1{font:600 clamp(57px, 6.3vw, 104px)/.99 var(--display);letter-spacing:-.078em;margin:23px 0 19px}
.hero h1 em{font-weight:500;color:var(--moss);letter-spacing:-.082em}
.hero-intro{max-width:400px;color:var(--sub);font-size:17px;line-height:1.6;margin-bottom:23px}
.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:11px 16px 11px 18px;min-height:46px;border-radius:9px;border:1px solid var(--forest);background:var(--forest);color:#fffdf8;text-decoration:none;font-weight:650;font-size:14px}
.primary-button:hover{background:#3c5b47}
.primary-button svg{width:18px;height:18px}
.hero-stats{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--sub);font-size:12px;margin-top:23px}
.hero-stats span:not(.stat-dot){display:flex;align-items:center;gap:4px}
.hero-stats svg{width:16px;height:16px;color:var(--moss);margin-right:2px}
.hero-stats strong{color:var(--ink)}
.stat-dot{width:3px;height:3px;background:#a1a396;border-radius:50%;margin-inline:3px}
.hero-photo{position:relative;height:clamp(335px, 31vw, 443px);min-width:0;isolation:isolate;overflow:hidden;border-radius:23px 23px 23px 6px;background:#bcc2a7;box-shadow:0 14px 35px #293b2820}
.hero-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,#12231e43);z-index:0}
.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:48% 48%}
.hero-photo figcaption{display:flex;align-items:center;gap:6px;position:absolute;bottom:15px;left:15px;max-width:calc(100% - 30px);z-index:1;border-radius:7px;padding:8px 10px;color:#294638;background:#fffdf4f5;font-size:11px;font-weight:700}
.hero-photo figcaption svg{width:15px;height:15px}
.hero-photo figcaption span{color:#967b55}
.photo-index{display:grid;place-content:center;position:absolute;top:16px;right:16px;z-index:1;width:46px;height:46px;border-radius:50%;background:#f9f3e0;color:var(--forest);font:600 23px/1 var(--display);transform:rotate(7deg);box-shadow:0 1px 10px #20231b30;text-align:center}
.photo-index span{width:15px;height:1px;background:#a98b62;margin:3px auto 0}

.agenda{padding-block:26px 65px;border-top:1px solid var(--line);scroll-margin-top:15px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:20px}
.section-kicker{font-size:10px}
.section-kicker span{width:20px;height:1px;background:#a8784c}
.section-head h2{margin-top:6px;font:600 clamp(39px,4vw,60px)/1.05 var(--display);letter-spacing:-.06em}
.section-head>p{display:flex;align-items:center;gap:7px;color:var(--sub);font-size:13px;padding-bottom:5px}
.section-head>p svg{color:#9a5b48;width:18px;height:18px}
.filter-panel{border:1px solid #dfdfd3;border-radius:15px;background:var(--card);padding:17px 17px 15px;box-shadow:0 2px 6px #2c422405}
#agenda-filters{display:grid;grid-template-columns:1.3fr 1.18fr 1fr .8fr;align-items:start;gap:11px}
.field{display:grid;gap:5px;min-width:0}
.field-label{color:var(--sub);font-size:9px;font-weight:700;letter-spacing:.12em;padding-inline:2px}
.control{position:relative;display:flex;align-items:center;border:1px solid #dedfd4;border-radius:8px;background:#f8f8f1;min-width:0}
.control:focus-within{border-color:#76917c}
.control>svg{position:absolute;left:9px;width:17px;height:17px;color:var(--moss);pointer-events:none}
.control .chevron{right:8px;left:auto;width:15px}
.control input,.control select{border:0;border-radius:8px;background:transparent;width:100%;min-width:0;min-height:42px;padding:8px 11px 8px 33px;font-size:13px}
.control input::placeholder{color:#626f65;opacity:1}
.control select{appearance:none;padding-right:27px;cursor:pointer;text-overflow:ellipsis}
.sort-field .control select{padding-left:11px}
.exact-date-field{margin-top:8px}
.exact-date-field .control input{padding-inline:11px}
.category-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid #eeeee5}
.category-button{display:inline-flex;align-items:center;gap:5px;border:1px solid #e1e3d8;border-radius:99px;background:#fffdf8;min-height:34px;padding:5px 10px;font-size:12px;font-weight:650;white-space:nowrap}
.category-button svg{width:15px;height:15px}
.category-button:hover{background:#f0f2e8}
.category-button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fffdf8}
.result-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;font-size:13px;color:var(--sub)}
.result-bar strong{color:var(--ink)}
.text-button{border:0;background:none;padding:4px 1px;color:var(--forest);font-weight:700;text-decoration:underline;text-underline-offset:3px}

.event-grid{display:grid;gap:11px}
.event-card{display:flex;flex-direction:column;min-width:0;border:1px solid #dfdfd3;border-radius:13px;padding:15px;background:var(--card);--tint:#e9eee2;--tone:#385b45;transition:border-color .2s,box-shadow .2s}
.event-card:hover{border-color:#b7c3b0;box-shadow:0 5px 15px #293b2810}
.theme-music{--tint:#eee8f3;--tone:#5c4673}
.theme-markets{--tint:#f4e8dc;--tone:#844926}
.theme-culture{--tint:#e9eef3;--tone:#3d526c}
.theme-family{--tint:#f6e9ef;--tone:#7c4460}
.theme-food{--tint:#f7eed7;--tone:#6b521e}
.theme-local{--tint:#eeebe1;--tone:#5e5540}
.card-top{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:6px;margin-bottom:13px}
.event-date,.event-category{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 7px;border-radius:5px;font-size:10px;line-height:1.2;font-weight:700}
.event-date{color:var(--tone);background:var(--tint)}
.event-category{color:var(--sub);padding-inline:2px}
.event-date svg,.event-category svg{width:14px;height:14px}
.event-card h4{font:620 24px/1.12 var(--display);letter-spacing:-.033em;margin-bottom:9px;overflow-wrap:anywhere}
.event-card h4 a{text-decoration:none}
.event-card h4 a:hover{text-decoration:underline;text-underline-offset:3px}
.event-place{display:flex;align-items:start;gap:4px;color:var(--moss);font-size:12px;font-weight:700;margin-bottom:7px}
.event-place svg{width:16px;height:16px}
.event-place>span{overflow-wrap:anywhere}
.venue{color:var(--sub);font-weight:500}
.event-description,.event-note{font-size:12px;line-height:1.45;color:var(--sub);margin:0 0 11px;overflow-wrap:anywhere}
.event-note{color:#795332;font-weight:600;margin-bottom:5px}
.card-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid #eeeee5}
.vote-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 9px;min-width:54px;min-height:35px;border:1px solid #deded1;border-radius:99px;background:var(--card);font-size:13px;font-weight:700}
.vote-button svg{width:17px;height:17px}
.vote-button:hover,.vote-button[aria-pressed=true]{color:#903e35;background:#f6e5df;border-color:#e7bfb6}
.vote-button.phx-click-loading{opacity:.65}
.event-link,.discovery-link{display:inline-flex;align-items:center;gap:3px;text-decoration:none;font-size:12px;font-weight:700}
.event-link{margin-left:auto}
.discovery-link{color:var(--sub);margin-left:auto}
.event-link:hover,.discovery-link:hover{text-decoration:underline;text-underline-offset:3px}
.event-link svg,.discovery-link svg{width:15px;height:15px}
.event-credit{color:var(--sub);font-size:10px;margin-top:6px;text-align:right}
.show-more{display:grid;justify-items:center;gap:8px;margin-top:24px;color:var(--sub);font-size:12px}
.show-more button{display:inline-flex;gap:9px;align-items:center;border:1px solid #d6ddcf;border-radius:8px;background:#edf0e6;color:var(--ink);padding:10px 13px;font-size:13px;font-weight:700}
.show-more button:hover{background:#e1e9da}
.show-more button svg{width:16px;height:16px}
.empty-state{display:grid;justify-items:center;gap:9px;text-align:center;padding:42px 15px;border:1px dashed #ced6c8;border-radius:13px;background:#f5f5eb;color:var(--sub)}
.empty-icon{display:grid;place-items:center;background:#e7ebdf;color:var(--moss);width:42px;height:42px;border-radius:50%}
.empty-state h3{color:var(--ink);font:600 27px/1.12 var(--display)}
.empty-state .primary-button{margin-top:8px}

.site-footer{border-top:1px solid var(--line);background:#eef0e6;padding-block:33px}
.footer-inner{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.footer-inner h2{font:600 21px/1.1 var(--display);margin-bottom:7px}
.footer-inner p{color:var(--sub);max-width:530px;font-size:13px;margin-top:8px}
.footer-inner .credit{font-size:11px}
.footer-inner p a{text-underline-offset:2px}

@media(max-width:1050px){.shell{width:calc(100% - 60px)}.hero{gap:25px}.hero h1{font-size:clamp(50px,7.5vw,83px)}.event-card h4{font-size:21px}}
@media(max-width:760px){.shell{width:calc(100% - 38px)}.site-header nav{gap:15px}.header-inner{min-height:66px}.hero{grid-template-columns:1fr;gap:19px;padding-block:28px}.hero h1{font-size:clamp(55px,11vw,78px);margin-block:17px 13px}.hero-intro{font-size:15px;margin-bottom:17px}.hero-stats{margin-top:16px}.hero-photo{height:clamp(225px,57vw,380px);border-radius:16px 16px 16px 5px}.section-head h2{font-size:43px}.section-head>p{font-size:12px}.agenda{padding-block:20px 40px}#agenda-filters{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.source-nav,.site-header .nav-link{display:none}.brand{font-size:21px;gap:8px}.brand-mark{width:37px;height:37px}.brand-mark svg{width:24px;height:24px}.my-votes{font-size:12px;padding:7px 9px}.hero h1{font-size:clamp(48px,12vw,62px)}.eyebrow{font-size:9px}.section-head{align-items:start;flex-direction:column;gap:5px;margin-bottom:11px}.section-head h2{font-size:38px}.filter-panel{padding:11px}.search-field,.period-field{grid-column:1/-1}.control input,.control select{font-size:16px}.category-list{gap:6px}.category-button{font-size:11px;min-height:34px;padding:4px 7px}.footer-inner{grid-template-columns:1fr}.event-card{min-height:0}.event-card h4{font-size:24px}.site-footer{padding-block:23px}}

.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.hero-map-link{display:inline-flex;align-items:center;gap:5px;padding:9px 3px;color:var(--forest);font-weight:650;font-size:14px;text-underline-offset:4px}
.hero-map-link svg{width:18px;height:18px}
.site-maker{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--sub);font-size:12px;text-decoration:none}
.site-maker img{width:38px;height:30px;padding:3px;border-radius:6px;background:#263c32;object-fit:contain}
.site-maker strong{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.site-maker:hover strong{color:#81522d}

.partner-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,24%);overflow:hidden;border:1px solid #d8decd;border-radius:14px;margin-bottom:24px;background:#e9eddf}
.partner-feature{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(155px,34%);align-items:center;gap:13px;min-height:151px}
.partner-mark{margin-left:18px;padding:4px;border:1px solid #d6ddca;border-radius:12px;background:#f8f8ef}
.partner-copy{padding:14px 0}
.partner-copy .eyebrow{font-size:9px;letter-spacing:.14em}
.partner-copy h2{font:600 31px/1.06 var(--display);letter-spacing:-.04em;margin:4px 0}
.partner-copy p:not(.eyebrow){max-width:360px;color:var(--sub);font-size:13px;line-height:1.35}
.partner-link,.partner-invite a{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;text-underline-offset:3px}
.partner-link{margin-top:7px}
.partner-link svg,.partner-invite a svg{width:15px;height:15px}
.partner-visual{position:relative;align-self:stretch;min-width:0;min-height:125px}
.partner-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 45%}
.partner-visual figcaption{position:absolute;bottom:8px;right:8px;padding:3px 6px;border-radius:4px;background:#f8f6eff0;color:var(--ink);font-size:9px;font-weight:700}
.partner-invite{display:grid;justify-items:start;align-content:center;gap:6px;padding:16px 20px;background:var(--forest);color:var(--card)}
.partner-invite p{font:500 19px/1.15 var(--display);letter-spacing:-.025em}
.partner-invite a{color:#f4e6cb}

.result-bar {
  min-height: 48px;
  flex-wrap: wrap;
  padding-block: 7px;
}
.result-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.agenda-results {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}
.results-title {
  color: var(--ink);
  font: 600 26px/1.12 var(--display);
  letter-spacing: -.04em;
}
.list-panel > .results-title {
  margin: 0 0 10px;
}
.event-card {
  scroll-margin-top: 18px;
}
.event-card:target {
  border-color: var(--moss);
  box-shadow: 0 0 0 2px #496b5335;
}
.map-panel {
  position: sticky;
  top: 16px;
  overflow: hidden;
  border: 1px solid #d5dfd0;
  border-radius: 14px;
  background: var(--card);
}
#agenda-map, #agenda-list {
  scroll-margin-top: 16px;
}
.map-caption, .map-key {
  display: grid;
  gap: 6px;
  padding: 12px 13px;
  color: var(--sub);
  font-size: 12px;
}
.map-caption .results-title {
  font-size: 22px;
}
.map-key {
  border-top: 1px solid #e1e6d9;
}
.map-key strong {
  color: var(--ink);
}
.map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
}
.map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.map-legend i {
  width: 10px;
  height: 10px;
  border: 1px solid var(--forest);
  border-radius: 50%;
  background: var(--forest);
}
.map-legend i.approximate {
  border-color: #855730;
  background: #f3dfbc;
}
.map-jump {
  display: none;
  color: var(--forest);
  font-weight: 700;
  font-size: 13px;
  text-underline-offset: 3px;
}
.map-jump svg {
  width: 16px;
  height: 16px;
}
.event-map {
  height: clamp(295px, 31vw, 385px);
  isolation: isolate;
  background: #e6ebdd;
}
.event-map.leaflet-container{font-family:var(--body);color:var(--ink)}
.map-loading{padding:14px}
.event-map .leaflet-control-attribution{max-width:100%;color:#293a2e}
.event-map .leaflet-control-attribution a{color:#244f42}
.map-pin,.map-cluster{display:grid;place-items:center;background:var(--forest);color:#fffdf8;border:2px solid #fffdf8;border-radius:50%;box-shadow:0 1px 5px #26372765;font-size:11px;font-weight:700;line-height:1}
.map-pin-approximate{border-color:#855730;background:#f3dfbc;color:#593615}
.map-cluster{border:3px solid #e5edde;font-size:12px;outline:2px solid #496b536b}
.event-map .leaflet-popup-content{margin:12px 16px;line-height:1.4}
.map-popup h3{font:600 20px/1.15 var(--display);margin:0 0 6px}
.map-popup .map-popup-note{margin:0 0 5px;color:var(--sub);font-size:11px}
.map-popup ul{list-style:none;margin:0;padding:0}
.map-popup li+li{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.map-popup li a{display:block;color:#294638;text-decoration:underline;font-weight:700;text-underline-offset:2px}
.map-popup li span{display:block;color:var(--sub);font-size:11px;margin-top:2px}
.map-popup .map-popup-source{display:inline-block;margin-top:2px;font-size:11px}

@media(max-width:820px){.partner-feature{grid-template-columns:auto minmax(0,1fr) minmax(110px,30%)}.partner-invite{padding-inline:13px}}
@media(max-width:760px) {
  .agenda-results {
    grid-template-columns: 1fr;
  }
  .map-panel {
    position: static;
  }
  .map-jump {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .map-back {
    margin: 0 13px 12px;
  }
  .event-map {
    height: 330px;
  }
}
@media(max-width:630px){.partner-banner{grid-template-columns:1fr}.partner-feature{min-height:125px}.partner-invite{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:11px 15px}.partner-invite p{font-size:16px}}
@media(max-width:420px){.partner-feature{grid-template-columns:auto minmax(0,1fr);gap:9px;padding-right:10px}.partner-visual{display:none}.partner-mark{margin-left:12px;width:46px;height:46px}.partner-copy h2{font-size:27px}.map-caption{padding:8px}.result-actions{gap:6px}}

.market-nav[aria-current="page"] {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.market-guide {
  padding-block: 36px 28px;
}
.market-intro {
  padding: clamp(20px, 4vw, 36px);
  margin-bottom: 24px;
  border: 1px solid #d8decd;
  border-radius: 17px;
  background: #e9eddf;
}
.market-intro .eyebrow svg {
  width: 17px;
  height: 17px;
}
.market-intro h1 {
  margin-block: 7px 8px;
  font: 600 clamp(36px, 6vw, 67px)/1.04 var(--display);
  letter-spacing: -.06em;
}
.market-intro > p:not(.eyebrow) {
  max-width: 610px;
  margin-bottom: 16px;
  color: var(--sub);
}
.market-directory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
.market-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #dfe3d6;
  border-radius: 12px;
  background: var(--card);
}
.market-card h3 {
  font: 600 23px/1.1 var(--display);
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
}
.market-city, .market-hours {
  display: flex;
  align-items: start;
  gap: 5px;
  color: var(--moss);
  font-size: 12px;
  font-weight: 700;
}
.market-city svg, .market-hours svg {
  width: 15px;
  height: 15px;
}
.market-venue, .market-stalls-note, .market-stalls {
  color: var(--sub);
  font-size: 13px;
}
.market-stalls {
  padding: 7px 10px;
  margin-top: 4px;
  border-radius: 6px;
  background: #eef0e5;
}
.market-stalls p {
  color: var(--ink);
  font-weight: 700;
}
.market-stalls ul {
  margin: 3px 0 0;
  padding-left: 17px;
}
.market-card .event-link {
  align-self: start;
  margin: auto 0 0;
  padding-top: 5px;
}
@media(max-width: 760px) {
  .market-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width: 480px) {
  .market-directory { grid-template-columns: 1fr; }
  .site-header .market-nav { display: inline-flex; font-size: 12px; }
  .site-header nav { gap: 9px; }
  .header-inner { gap: 8px; }
}
@media(max-width: 350px) {
  .header-inner { flex-wrap: wrap; padding-block: 8px; }
}

/* Agenda actions and account pages */
.site-header nav{gap:clamp(9px,1.6vw,26px);flex-wrap:wrap;justify-content:flex-end}
.event-title{display:inline;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-align:left}
.event-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.event-locate{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:4px 0;border:0;background:none;font-size:12px;font-weight:700;color:var(--moss);margin:1px 0 7px}
.event-locate:hover{text-decoration:underline;text-underline-offset:3px}
.event-locate svg{width:15px;height:15px}
.event-cover{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:9px;margin-bottom:10px}
.favorites-note{margin:0 0 12px;padding:10px 14px;border-radius:8px;background:#eef0e7;color:var(--sub);font-size:14px}
.favorites-note a{color:var(--forest);font-weight:700;text-underline-offset:3px}
.map-panel:focus-visible{outline:2px solid var(--moss);outline-offset:4px}
.map-popup .map-popup-selected{background:#eef0e7;border-radius:6px;padding:5px 7px;margin-inline:-5px}

.workspace-shell{width:min(100% - 36px,960px);margin:clamp(24px,6vw,68px) auto 64px;display:grid;gap:24px}
.workspace-heading{display:grid;gap:9px}
.workspace-heading h1{font:620 clamp(40px,6vw,72px)/1.02 var(--display);letter-spacing:-.055em}
.workspace-heading h2,.workspace-panel h2{font:620 clamp(25px,3vw,36px)/1.12 var(--display);letter-spacing:-.035em}
.workspace-heading p:not(.eyebrow),.workspace-panel p:not(.eyebrow){color:var(--sub)}
.workspace-heading p:not(.eyebrow){max-width:65ch}
.workspace-back{justify-self:start;margin-bottom:8px;color:var(--moss);font-weight:700;font-size:14px;text-underline-offset:3px}
.workspace-panel{min-width:0;padding:clamp(16px,4vw,30px);border:1px solid var(--line);border-radius:16px;background:var(--card);display:grid;align-content:start;gap:14px}
.workspace-panel h3{font:620 22px/1.15 var(--display);letter-spacing:-.02em}
.workspace-panel h2:not(:first-child){margin-top:14px}
.workspace-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;margin-top:14px}
.workspace-list,.submission-history,.submission-photo-list{padding:0;margin:0;list-style:none}
.workspace-list > .workspace-empty:not(:only-child){display:none}
.workspace-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding-block:12px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.workspace-actions,.event-detail-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.workspace-form{display:grid;gap:16px}
.workspace-form label{font-size:14px;font-weight:650;display:grid;gap:5px}
.workspace-form :is(input:not([type=hidden],[type=checkbox],[type=radio]),select,textarea){width:100%;min-width:0;border:1px solid #d6d8cc;border-radius:8px;padding:10px 12px;background:white;color:var(--ink);font:inherit}
.workspace-form textarea{resize:vertical}
.workspace-form :is(input,select,textarea):focus-visible{outline:2px solid var(--moss);outline-offset:2px}
.workspace-form :is(.text-error,.submission-error){color:#943f29}
.workspace-button{width:max-content;max-width:100%;justify-self:start}
.workspace-eyebrow{color:#405b4b;font-size:11px;font-weight:700;letter-spacing:.16em}
.submission-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.submission-extra{border:1px solid var(--line);border-radius:12px;padding:14px}
.submission-extra summary{cursor:pointer;font-weight:700}
.submission-extra[open] summary{margin-bottom:14px}
.submission-history li{padding:9px 0;border-top:1px solid var(--line)}
.submission-photo-list,.event-gallery,.event-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px}
.submission-photo-list img,.event-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px}
.event-gallery img{object-fit:contain;background:#eef0e7}
.event-facts{margin:0}
.event-facts dt{font-weight:700}
.event-facts dd{margin:3px 0 0;color:var(--sub);overflow-wrap:anywhere}
.workspace-panel .event-description{white-space:pre-wrap;overflow-wrap:anywhere}
.submission-confirmation{padding:10px 12px;border-radius:8px;background:#eef0e7}
.toast{position:fixed;right:18px;bottom:18px;z-index:1500;max-width:min(420px,calc(100% - 36px))}
.toast .alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 8px 30px #233b2f24}
.toast .alert-error{border-color:#be765d}
.toast button{border:0;background:none;padding:4px}
@media(max-width:650px){
  .header-inner{align-items:flex-start;flex-direction:column;gap:11px;padding-block:12px}
  .site-header nav{justify-content:flex-start;gap:8px 13px}
  .site-header .nav-link{display:inline-flex;font-size:12px}
  .site-header .my-votes{font-size:12px;padding:6px 8px}
  .workspace-form :is(input,select,textarea){font-size:16px}
}

body:has(.site-preview[open]) {
  overflow: hidden;
}
.site-preview {
  width: min(1160px, calc(100% - 32px));
  height: min(880px, calc(100dvh - 32px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  color: var(--ink);
  box-shadow: 0 22px 80px #182b2280;
  overflow: hidden;
}
.site-preview[open] {
  display: flex;
  flex-direction: column;
}
.site-preview:not([open]), .site-preview [hidden] {
  display: none;
}
.site-preview::backdrop {
  background: #14271ed0;
}
.site-preview.is-unavailable {
  height: auto;
  width: min(660px, calc(100% - 32px));
}
.site-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
}
.site-preview-heading {
  min-width: 0;
}
.site-preview-heading h2 {
  font: 620 23px/1.18 var(--display);
  overflow-wrap: anywhere;
}
.site-preview-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.site-preview-close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper);
}
.site-preview-close:hover {
  background: #eef0e7;
}
.site-preview-hint, .site-preview-unavailable {
  padding: 8px 18px;
  border-block: 1px solid var(--line);
  background: var(--paper);
  color: var(--sub);
  font-size: 13px;
}
.site-preview-unavailable {
  padding-block: 20px;
  border-bottom: 0;
  font-size: 15px;
}
.site-preview-frame {
  flex: 1;
  min-height: 0;
  width: 100%;
  border: 0;
  background: white;
}
@media (max-width: 600px) {
  .site-preview-toolbar {
    flex-wrap: wrap;
    gap: 9px;
    padding: 12px 14px;
  }
  .site-preview-heading h2 {
    font-size: 19px;
  }
  .site-preview-actions {
    justify-content: space-between;
    width: 100%;
  }
}
