@font-face{font-family:'DM Sans';src:url('assets/dm-sans.ttf') format('truetype');font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif';src:url('assets/dm-serif.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--paper:#f7f5ee;--ink:#244b3e;--muted:#646b5f;--accent:#b94c2f;--line:#d9dbcf;--wash:#e9ecdf;--white:#fffdf8;--serif:'DM Serif',Georgia,serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;scrollbar-color:#a8b19c var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
body.dialog-open{overflow:hidden}
::selection{background:#dfb393;color:#203e32}
button,input,select{font:inherit;color:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
button{border:0;background:none}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button:disabled{cursor:wait;opacity:.6}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
input{caret-color:var(--accent)}
img{display:block;max-width:100%}
h1,h2,h3,p,figure{margin:0}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.shell{width:calc(100% - 112px);max-width:1280px;margin-inline:auto}
.skip-link{position:fixed;top:-70px;left:20px;z-index:10;padding:12px 20px;background:var(--ink);color:var(--paper)}
.skip-link:focus{top:12px}
.site-header{height:88px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;font-size:35px;letter-spacing:-1.4px;font-weight:750;line-height:1}
.brand-mark{width:32px;height:32px;stroke:var(--accent);stroke-width:2.8;margin-right:10px}
.brand-period{color:var(--accent)}
.brand-note{font-size:13px;color:var(--muted);margin-left:2px;padding-left:28px;border-left:1px solid var(--line)}
.site-header nav{margin-left:auto;display:flex;align-items:center;gap:32px;font-size:14px;font-weight:600;height:100%}
.nav-explore{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;padding-top:2px}
.nav-explore.active{border-color:var(--ink)}
.nav-explore:hover{color:var(--accent)}
.saved-nav{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:5px;white-space:nowrap}
.saved-nav:hover{background:var(--wash)}
.saved-nav[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.saved-count{display:flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;border-radius:50%;background:var(--wash);color:var(--ink);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:52px;min-height:375px;padding-block:28px 36px}
.hero-copy{padding-bottom:5px}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,5.25vw,76px);line-height:1.03;letter-spacing:-2px}
.ordinary{position:relative;white-space:nowrap}
.ordinary svg{position:absolute;left:0;bottom:-7px;width:100%;height:14px;stroke:#ce7854;stroke-width:2.5;fill:none;pointer-events:none}
.hero-copy>p{font-size:16px;line-height:1.75;color:var(--muted);margin-top:25px;max-width:510px}
.weekend-date{display:flex;align-items:center;gap:10px;margin-top:26px;font-size:13px;font-weight:600;white-space:nowrap}
.weekend-date .icon{width:18px;height:18px}
.date-divider{height:16px;width:1px;background:#c9cebf;margin-inline:5px}
.two-days{color:var(--muted);font-weight:400}
.hero-art{position:relative;transform:rotate(-3deg);width:100%;max-width:435px;justify-self:center;margin-top:2px;padding:8px 7px 18px;background:#fffcf4;border:1px solid #e4e1d4;box-shadow:0 7px 20px #3447300c}
.hero-art>img{width:100%;height:auto;margin-bottom:-20px}
.hero-art figcaption{text-align:center;font-size:13px;letter-spacing:.2px;font-weight:500;padding-top:2px}
.weekend-stamp{position:absolute;right:-13px;bottom:-17px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:113px;height:113px;transform:rotate(10deg);background:#efdfb3;color:var(--ink);border:1px solid #b9ad89;outline:4px solid #efdfb3;outline-offset:1px;border-radius:50%}
.weekend-stamp span{font-size:9px;font-weight:700;letter-spacing:1.2px}
.weekend-stamp strong{font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.45}
.browse{border-top:1px solid var(--line);padding-top:29px;scroll-margin-top:20px}
.browse-heading-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}
h2{font-family:var(--serif);font-weight:400;font-size:32px;letter-spacing:-.6px;line-height:1.2}
.section-note{font-size:13px;color:var(--muted)}
.filter-bar{display:grid;grid-template-columns:minmax(0,1fr) 225px auto;gap:14px}
.search-wrap{position:relative;display:flex;align-items:center;min-width:0}
.search-wrap>svg{position:absolute;left:17px;pointer-events:none;color:var(--muted)}
.search-wrap input{width:100%;height:50px;border:1px solid #c9cec0;border-radius:5px;background:var(--white);padding:0 45px;font-size:14px;appearance:none}
.search-wrap input::placeholder{color:#687060;opacity:1}
.search-wrap input::-webkit-search-cancel-button{appearance:none}
.search-wrap>button{position:absolute;right:5px;width:40px;height:40px;display:grid;place-items:center;border-radius:4px}
.search-wrap>button:hover{background:var(--wash)}
.select-wrap{position:relative}
.select-wrap select{width:100%;height:50px;appearance:none;padding:0 45px 0 17px;border:1px solid #c9cec0;border-radius:5px;background:var(--white);cursor:pointer;font-size:14px}
.select-wrap>svg{position:absolute;right:15px;top:15px;pointer-events:none}
.day-filter{display:flex;align-items:center;gap:3px;margin:0;border:1px solid #d8dcce;border-radius:5px;padding:4px;background:#edefe5;min-width:0}
.day-filter button{height:40px;padding:0 17px;border-radius:3px;font-size:13px;font-weight:500;white-space:nowrap}
.day-filter button[aria-pressed=true]{background:var(--ink);color:var(--white)}
.day-filter button:hover:not([aria-pressed=true]){background:#dfe4d4}
.results-meta{min-height:65px;display:flex;align-items:center;gap:15px;font-size:12px;color:var(--muted)}
#results-count{font-weight:500}
#results-count strong{color:var(--ink);font-weight:700}
.save-tip{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:12px}
.save-tip .icon{width:15px;height:15px}
.text-button{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:8px 0;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.text-button .icon{width:14px;height:14px}
.text-button:hover{color:var(--ink)}
.events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}
.event-card{position:relative;min-width:0;display:flex;flex-direction:column;padding-bottom:17px;border-bottom:1px solid var(--line)}
.event-image-wrap{position:relative;overflow:hidden;border-radius:6px;background:var(--wash);aspect-ratio:1.86}
.event-image{width:100%;height:100%;object-fit:cover;filter:saturate(.76);transition:filter .25s ease}
.event-card:hover .event-image{filter:saturate(1)}
.category-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.1px;font-weight:650;border-radius:3px;background:var(--paper);padding:5px 10px;color:var(--ink)}
.category-label::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--category-color,#527655)}
.event-image-wrap .category-label{position:absolute;top:13px;left:13px}
.card-save{position:absolute;right:12px;top:12px;z-index:2;width:36px;height:36px;display:grid;place-items:center;background:var(--paper);border:1px solid #ffffff40;border-radius:50%;color:var(--ink)}
.card-save:hover{background:#e8ecd9}
.card-save[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.card-save[aria-pressed=true] .icon{fill:currentColor}
.event-date{font-size:11px;font-weight:650;letter-spacing:.5px;text-transform:uppercase;margin-top:18px;display:flex;align-items:center;gap:7px;color:var(--muted);font-variant-numeric:tabular-nums}
.event-date .date-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);margin-inline:1px}
.event-card h3{font-family:var(--serif);font-size:25px;line-height:1.2;letter-spacing:-.35px;font-weight:400;margin:8px 0 9px}
.event-open::after{content:'';position:absolute;inset:0;z-index:1;border-radius:6px}
.event-open:focus-visible{outline:none}
.event-open:focus-visible::after{outline:3px solid var(--accent);outline-offset:5px}
.event-open:hover{color:var(--accent)}
.event-location{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.event-location .icon{width:14px;height:14px}
.event-summary{font-size:13px;line-height:1.65;color:var(--muted);margin:13px 0 17px;flex:1}
.event-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:29px;font-size:12px}
.event-price{font-weight:650}
.event-format{font-weight:400;color:var(--muted);margin-left:8px;padding-left:9px;border-left:1px solid var(--line)}
.event-detail-link{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600}
.event-detail-link .icon{width:17px;height:17px}
.empty-state{text-align:center;padding:62px 20px 76px;border-block:1px dashed #c4cdb8}
.empty-icon{width:38px;height:38px;fill:none;stroke:var(--ink);stroke-width:1.25;margin-bottom:15px}
.empty-state h3{font-family:var(--serif);font-size:32px;font-weight:400}
.empty-state p{max-width:400px;margin:10px auto 23px;color:var(--muted);font-size:14px}
.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--white);border:1px solid var(--ink);padding:13px 20px;min-height:48px;border-radius:4px;font-size:14px;font-weight:550}
.primary-button:hover{background:#163a2c}
.primary-button[aria-pressed=true]{background:var(--wash);color:var(--ink);border-color:#b9c4ae}
.closing-note{margin-top:76px;padding-block:44px 49px;text-align:center;background:var(--wash);position:relative;border-radius:3px}
.closing-spark{width:31px;height:31px;stroke:var(--accent);stroke-width:2;fill:none;margin-bottom:12px}
.closing-note p{font-family:var(--serif);font-size:35px;line-height:1.2;letter-spacing:-.3px}
.closing-note a{display:inline-flex;align-items:center;gap:9px;margin-top:21px;font-size:13px;font-weight:600;border-bottom:1px solid #78907b;padding-bottom:3px}
.closing-note a:hover{color:var(--accent)}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:36px 32px;color:var(--muted);font-size:11px}
.site-footer>div{display:flex;align-items:center;gap:18px}
.footer-brand{font-size:24px;font-weight:700;letter-spacing:-1px;color:var(--ink)}
.site-footer p span{margin-inline:8px}
dialog{border:1px solid #d4d8c9;border-radius:9px;padding:0;background:var(--paper);color:var(--ink);width:min(660px,calc(100% - 40px));max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #122c2940}
dialog::backdrop{background:#172e28a6}
dialog[open]{animation:detail-enter .24s cubic-bezier(.16,1,.3,1)}
@keyframes detail-enter{from{transform:translateY(15px);clip-path:inset(0 0 5% 0 round 9px)}to{transform:translateY(0);clip-path:inset(0 round 9px)}}
.detail-image-wrap{height:222px;position:relative;background:var(--wash)}
.detail-image-wrap>img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.close-detail{position:absolute;top:16px;right:16px;background:var(--paper);width:42px;height:42px;border-radius:50%;display:grid;place-items:center}
.close-detail:hover{background:var(--wash)}
.photo-caption{position:absolute;bottom:10px;left:15px;font-size:10px;color:#fff;background:#172e28cc;padding:3px 7px;border-radius:2px}
.detail-content{padding:30px 36px 27px}
.detail-content>.category-label{background:var(--wash);margin-bottom:12px}
.detail-content h2{font-size:38px;line-height:1.12;letter-spacing:-.7px;margin-bottom:23px}
.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:19px 25px;margin:0 0 26px;padding-bottom:23px;border-bottom:1px solid var(--line)}
.detail-facts>div{display:grid;grid-template-columns:20px 1fr;gap:3px 9px;align-content:start}
.detail-facts .icon{grid-row:span 2;width:18px;height:18px;margin-top:1px}
.detail-facts dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.detail-facts dd{margin:0;font-size:13px;font-weight:550}
#detail-body{font-size:15px;line-height:1.7;color:#4a584b;white-space:pre-line}
.detail-save-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:27px;padding-top:22px;border-top:1px solid var(--line)}
#detail-price{font-size:24px;font-weight:650;white-space:nowrap}
#detail-price small{font-size:11px;font-weight:400;color:var(--muted);display:block}
.detail-footnote{font-size:11px;color:var(--muted);margin-top:15px;text-align:center}
.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:9;background:var(--ink);color:var(--paper);padding:13px 22px;border-radius:5px;box-shadow:0 7px 25px #244b3e26;font-size:13px;pointer-events:none;max-width:calc(100% - 32px);width:max-content;text-align:center;visibility:hidden}
.toast.show{visibility:visible}
@media(min-width:1500px){.hero{min-height:440px}}
@media(max-width:1100px){.shell{width:calc(100% - 72px)}.brand-note{display:none}.hero{gap:25px;min-height:390px}.hero-copy>p{font-size:14px}.weekend-date{font-size:12px}.two-days{display:none}.date-divider{display:none}.filter-bar{grid-template-columns:minmax(0,1fr) 180px auto;gap:10px}.day-filter button{padding-inline:12px}.hero-art{max-width:430px}.weekend-stamp{width:95px;height:95px;right:-5px}.weekend-stamp strong{font-size:25px}.weekend-stamp span{font-size:8px}.events-grid{gap:32px 22px}.event-card h3{font-size:23px}.event-date{font-size:10px;letter-spacing:.2px}}
@media(max-width:800px){.shell{width:calc(100% - 48px)}.site-header{height:80px}.brand{font-size:30px}.brand-mark{width:28px;height:28px}.site-header nav{gap:15px;font-size:13px}.saved-nav{padding:9px}.hero{gap:22px;min-height:343px;padding-block:33px 40px}h1{font-size:49px;letter-spacing:-1.5px}.hero-copy>p{font-size:13px;margin-top:21px}.hero-copy>p br{display:none}.weekend-date{margin-top:20px}.hero-art{padding:5px 4px 12px}.hero-art figcaption{font-size:10px}.weekend-stamp{width:78px;height:78px;bottom:-25px}.weekend-stamp strong{font-size:21px}.weekend-stamp span{font-size:6px}.filter-bar{grid-template-columns:minmax(0,1fr) 190px}.day-filter{grid-column:1/-1;justify-self:start;margin-top:2px}.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-note{display:none}h2{font-size:30px}.save-tip{font-size:11px}.site-footer{align-items:flex-start}.site-footer>div{flex-direction:column;align-items:flex-start;gap:3px}.site-footer p{text-align:right;max-width:220px}}
@media(max-width:540px){.shell{width:calc(100% - 40px)}.site-header{height:76px;gap:0}.brand{font-size:29px;letter-spacing:-1.15px}.brand-mark{width:25px;height:25px;margin-right:7px;stroke-width:2.4}.site-header nav{gap:0}.nav-explore{display:none}.saved-nav{gap:6px;padding:9px 0 9px 9px;font-size:12px}.saved-nav>.icon{display:none}.saved-count{height:21px;min-width:21px;font-size:10px}.saved-nav[aria-pressed=true]{padding-right:8px}.hero{display:block;min-height:0;padding-block:31px 32px}.hero-copy{padding:0}h1{font-size:52px;letter-spacing:-1.5px;line-height:1.02}.ordinary svg{bottom:-5px;height:11px}.hero-copy>p{font-size:14px;line-height:1.65;max-width:335px;margin-top:22px}.hero-copy>p br{display:block}.weekend-date{font-size:12px;margin-top:19px;gap:8px}.weekend-date .icon{height:16px;width:16px}.two-days{display:inline;font-size:11px}.date-divider{display:block;margin-inline:1px;height:13px}.hero-art{display:none}.browse{padding-top:24px}.browse-heading-row{margin-bottom:19px}h2{font-size:28px;letter-spacing:-.5px}.filter-bar{grid-template-columns:1fr;gap:10px}.search-wrap input,.select-wrap select{height:48px;font-size:14px}.select-wrap>svg{top:14px}.filter-bar .select-wrap{grid-row:2}.day-filter{grid-column:auto;grid-row:3;justify-self:stretch;justify-content:space-between;margin:0}.day-filter button{height:37px;flex:1;padding:0 10px;font-size:12px}.results-meta{min-height:56px;font-size:12px;justify-content:space-between}.save-tip{display:none}.events-grid{grid-template-columns:minmax(0,1fr);gap:29px}.event-image-wrap{aspect-ratio:1.8}.event-card h3{font-size:26px;line-height:1.15;margin-top:8px}.event-date{font-size:11px;letter-spacing:.3px;margin-top:16px}.event-location{font-size:12px}.event-summary{font-size:13px;line-height:1.65;margin-top:12px}.card-save{width:40px;height:40px}.category-label{font-size:11px}.event-bottom{font-size:13px}.event-detail-link{font-size:12px}.closing-note{margin-top:43px;padding:33px 15px 38px}.closing-note p{font-size:29px}.closing-spark{width:27px;height:27px}.site-footer{display:block;padding-block:27px}.site-footer>div{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.site-footer p{text-align:left;max-width:none;margin-top:15px;font-size:10px}.site-footer>div>span{font-size:11px}dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:7px}.detail-image-wrap{height:174px}.detail-content{padding:24px 22px 22px}.detail-content h2{font-size:31px;margin-bottom:22px}.detail-facts{grid-template-columns:1fr;gap:14px;padding-bottom:21px;margin-bottom:22px}.detail-facts>div{grid-template-columns:20px 1fr}.detail-facts .icon{grid-row:span 2}#detail-body{font-size:14px}.detail-save-row{gap:12px;align-items:center;margin-top:23px;padding-top:20px}.detail-save-row .primary-button{font-size:12px;padding:12px;gap:7px}.detail-save-row .primary-button .icon{width:17px}#detail-price{font-size:23px}.detail-footnote{font-size:10px;line-height:1.6}.empty-state{padding:42px 15px}.empty-state h3{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
