
:root{--sand:#F6EFE4;--cream:#FBF7F0;--line:#E6DCCB;--ink:#2B2622;--mute:#75695E;--teal:#0E6E73;--coral:#E4685A;--terra:#B5583A;--citrus:#E9A23B;--palm:#7C8B5A;
--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Charter,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sand);color:var(--ink);font:16px/1.6 var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;text-wrap:balance;margin:0}p,li,dd{text-wrap:pretty}a{color:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 18px}
header.top{background:var(--cream);border-bottom:1px solid var(--line)}header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{font-family:var(--serif);font-size:1.4rem;text-decoration:none}.logo b{color:var(--coral);font-weight:400}
.tagline{color:var(--mute);font-size:.82rem}
.sunbar{height:4px;background:linear-gradient(90deg,var(--citrus),var(--coral) 45%,var(--terra) 70%,var(--teal))}
h2.sec{font-size:1.3rem;margin:0 0 10px}.sec-row{display:flex;justify-content:space-between;align-items:baseline}
.eyebrow{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);margin:0}
.intro{padding:18px 0 12px}.intro h1{font-size:clamp(1.6rem,5vw,2.3rem)}.intro p{color:var(--mute);margin:4px 0 0;font-size:.92rem}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:22px}
.tile{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;min-height:76px;padding:11px 12px;border-radius:3px;color:#fff}
.tile b{font:400 1.12rem/1.15 var(--serif)}.tile span{font-size:.72rem;opacity:.85}
.tile:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.tile[aria-pressed=true]{box-shadow:inset 0 0 0 3px var(--ink)}
.tile.soon{background:var(--cream)!important;color:var(--mute);border:1px dashed #D4C6B0;cursor:default}
.c-museum{background:var(--teal)}.c-gallery{background:var(--coral)}.c-theater{background:var(--terra)}.c-music{background:var(--citrus);color:var(--ink)}
.c-food{background:var(--palm)}.c-studio{background:#C98B5E}.c-publicart{background:#3E7F86}.c-events{background:var(--ink)}
.feat{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:24px}
.fcard{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;background:var(--cream);padding:9px;border:1px solid var(--line);text-decoration:none;border-radius:3px}
.fcard .ph{width:64px;height:64px;display:grid;place-items:center;font:2rem/1 var(--serif);color:#fff;border-radius:2px}
.fcard h3{font-size:1.05rem}.fcard:hover h3{color:var(--teal)}
.badge{font:600 .6rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--coral)}.badge.s{color:var(--mute)}
.meta{color:var(--mute);font-size:.82rem;margin:0}
.filters{display:flex;gap:8px;align-items:center;margin:0 0 12px;flex-wrap:wrap}
select{font:inherit;font-size:.9rem;padding:8px 10px;border:1px solid var(--line);background:var(--cream);color:var(--ink);border-radius:3px}
.count{color:var(--mute);font-size:.85rem;margin-left:auto}
.grid{list-style:none;margin:0 0 40px;padding:0;display:grid;grid-template-columns:1fr;gap:10px}
.card a{display:grid;grid-template-columns:6px 1fr;gap:12px;background:var(--cream);border:1px solid var(--line);border-radius:3px;padding:12px 14px 12px 0;text-decoration:none;height:100%}
.card .bar{border-radius:0 2px 2px 0}.card h3{font-size:1.08rem;margin-bottom:2px}.card a:hover h3{color:var(--teal)}
.card p.d{font-size:.84rem;margin:6px 0 0;color:#4A423B;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.empty{color:var(--mute);padding:24px;background:var(--cream);border:1px dashed #D4C6B0;text-align:center}
.signup{background:var(--cream);border-top:1px solid var(--line);padding:22px 0}.signup form{display:flex;gap:8px;max-width:480px;margin-top:10px}
input{font:inherit;padding:9px 12px;border:1px solid var(--line);background:#fff;flex:1;border-radius:3px;min-width:0}
.btn{background:var(--ink);color:var(--cream);border:0;padding:9px 16px;font:inherit;border-radius:3px;cursor:pointer;text-decoration:none}.btn:hover{background:var(--terra)}
.note{color:var(--mute);font-size:.8rem;margin:6px 0 0;min-height:1.2em}.link{color:var(--teal);text-underline-offset:3px;font-size:.85rem}
footer{padding:18px 0 28px;color:var(--mute);font-size:.78rem}
.detail{padding-top:20px;padding-bottom:48px;max-width:820px}.detail .ph{aspect-ratio:21/9;display:flex;align-items:flex-end;padding:16px;font:clamp(3.5rem,13vw,7rem)/1 var(--serif);color:#fff;margin:12px 0 22px;border-radius:3px}
.detail h1{font-size:clamp(1.9rem,6vw,3rem);margin:6px 0 12px}.lede{font-size:1.05rem;max-width:38em;margin:0}
dl{display:grid;grid-template-columns:1fr;gap:2px 24px;margin:24px 0;border-top:1px solid var(--line);padding-top:16px}
dt{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:10px}dd{margin:0}.src{font-size:.78rem;color:var(--mute);word-break:break-word}
@media(min-width:720px){.wrap{padding:0 28px}.tiles{grid-template-columns:repeat(4,1fr)}.feat{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:repeat(3,1fr)}dl{grid-template-columns:150px 1fr}dt{margin-top:0}}
@media(min-width:1100px){.tiles{grid-template-columns:repeat(8,1fr)}.tile{min-height:84px}.grid{grid-template-columns:repeat(4,1fr)}}

.vt{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden}.vt button{font:inherit;font-size:.85rem;padding:8px 14px;border:0;background:var(--cream);color:var(--mute);cursor:pointer}
.vt button[aria-pressed=true]{background:var(--ink);color:var(--cream)}
#map{display:none;height:70vh;min-height:380px;border:1px solid var(--line);border-radius:3px;margin-bottom:32px;background:#EDE5D6}
body[data-view=map] #map{display:block}body[data-view=map] .grid,body[data-view=map] .empty{display:none}
.leaflet-container{font-family:var(--sans)}.leaflet-tile-pane{filter:sepia(.22) saturate(.7) brightness(1.03)}
.locate{width:34px;height:34px;font-size:1.2rem;background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:4px;cursor:pointer;color:var(--ink)}
.pop .eyebrow{font-size:.62rem;margin:0 0 2px}.pop .pt{font:1.05rem/1.2 var(--serif);color:var(--ink);text-decoration:none}.pop .meta{margin:4px 0 8px!important}
.acts{display:flex;flex-wrap:wrap;gap:6px}.acts a{font-size:.75rem;padding:6px 9px;border:1px solid var(--line);border-radius:3px;text-decoration:none;color:var(--teal)!important;background:var(--cream)}
.leaflet-popup-content-wrapper{border-radius:4px;background:var(--cream)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.actions a{font-size:.88rem;padding:10px 14px;border:1px solid var(--line);background:var(--cream);border-radius:3px;text-decoration:none;color:var(--teal)}
.morewrap{text-align:center;margin:-24px 0 40px}.more{background:transparent;color:var(--teal);border:1px solid var(--line)}.more[hidden]{display:none}
.areas{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;align-items:center}
.areas .alab{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-right:2px}
.achip{font:inherit;font-size:.82rem;padding:7px 11px;border:1px solid var(--line);background:var(--cream);color:var(--ink);border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.achip .ac{font-size:.7rem;color:var(--mute)}
.achip[aria-pressed=true]{background:var(--ink);color:var(--cream);border-color:var(--ink)}.achip[aria-pressed=true] .ac{color:rgba(251,247,240,.7)}
.achip:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.area-sel{display:none}@media(max-width:419px){.areas .achip{display:none}.areas .alab{display:none}.area-sel{display:block;width:100%;margin-bottom:4px}}
.actions a.pri{background:var(--teal);color:#fff;border-color:var(--teal)}.actions a:hover{border-color:var(--teal)}

.az{list-style:none;padding:0;margin:0;columns:1}.az li{padding:3px 0;break-inside:avoid}.az a{color:var(--teal);text-underline-offset:3px}@media(min-width:720px){.az{columns:2}}
