:root {
  --canvas:#fff8ee; --surface:#fffdf8; --ink:#173e32; --muted:#536055;
  --accent:#965037; --sage:#dce3d5; --paper:#f5eddf; --border:#c9cebf;
  --gutter:clamp(20px,6.15vw,24px); --radius:8px;
}
*,*::before,*::after { box-sizing:border-box; }
html { color-scheme:light; }
body { margin:0; background:var(--canvas); color:var(--ink); font:16px/1.6 Arial,sans-serif; }
img,svg { display:block; max-width:100%; }
img { height:auto; object-fit:contain; }
[hidden] { display:none!important; }
a { color:inherit; text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
button { font:inherit; color:inherit; }
a,button { touch-action:manipulation; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
h1,h2,h3,p,figure,dl { margin:0; }
h1,h2,h3 { font-family:Georgia,serif; font-weight:400; overflow-wrap:break-word; }
h1 { font-size:clamp(2.375rem,4.45vw,4rem); line-height:1.1; }
h2 { font-size:clamp(1.75rem,3vw,2.625rem); line-height:1.15; }
h3 { font-size:clamp(1.75rem,2.5vw,2.25rem); line-height:1.2; }
p,li,dd { overflow-wrap:break-word; }
.shell { width:min(1280px,calc(100% - var(--gutter)*2)); margin-inline:auto; }
.skip-link { position:absolute; top:8px; left:var(--gutter); z-index:2; padding:12px 18px; background:var(--surface); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.preview-banner { padding:6px var(--gutter); background:var(--paper); font-size:12px; text-align:center; }
.header-shell { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:16px 32px; padding-block:24px 20px; border-bottom:1px solid var(--border); }
.brand { display:block; width:202px; flex:none; }
.brand img { width:100%; }
.main-nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.main-nav a { display:flex; align-items:center; min-height:44px; text-decoration:none; }
.main-nav a[aria-current],.main-nav .section-current { border-bottom:3px solid var(--accent); font-weight:700; }
.main-nav a:hover { text-decoration:underline; }
.menu-toggle { display:none; align-items:center; gap:10px; min-width:44px; min-height:44px; padding:8px 10px; background:none; border:1px solid var(--border); border-radius:6px; cursor:pointer; }
.menu-icon { width:20px; height:16px; background:linear-gradient(var(--ink),var(--ink)) 0 0/100% 2px no-repeat,linear-gradient(var(--ink),var(--ink)) 0 7px/100% 2px no-repeat,linear-gradient(var(--ink),var(--ink)) 0 14px/100% 2px no-repeat; }
.eyebrow { font:700 12px/1.5 Arial,sans-serif; letter-spacing:.08em; color:var(--accent); text-transform:uppercase; }
.center-hero { padding-top:32px; }
.center-hero h1 { margin-top:24px; }
.hero-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px; margin-top:24px; }
.hero-bottom>p:first-child { font-size:20px; }
.month { font-size:12px; font-weight:700; }
.event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin-top:40px; }
.event-grid--single { grid-template-columns:minmax(0,1fr); max-width:980px; margin-inline:auto; }
.upcoming-section { margin-top:64px; }
.upcoming-section>.event-grid { margin-top:24px; }
.event-card>figure>img { width:100%; aspect-ratio:1085/725; object-fit:contain; border-radius:var(--radius) var(--radius) 0 0; }
.event-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); }
.media-frame { width:100%; aspect-ratio:1085/725; background:var(--paper); }
.event-art { width:100%; height:auto; aspect-ratio:1085/725; }
.event-art image { object-fit:contain; }
.card-caption { padding:10px 22px 0; font-size:12px; color:var(--muted); }
.card-body { display:flex; flex-direction:column; flex:1; gap:14px; min-height:248px; padding:16px 22px 24px; }
.event-meta { font-size:15px; font-weight:700; }
.card-kind,.card-audience { font-size:16px; }
.card-body h2 { font-size:clamp(1.75rem,2.5vw,2.25rem); line-height:1.2; }
.card-audience { color:var(--muted); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; padding:12px 16px; border:1px solid var(--ink); border-radius:6px; background:var(--ink); color:var(--canvas); font-size:15px; font-weight:700; line-height:1.45; text-decoration:none; }
.button:hover { background:var(--canvas); color:var(--ink); }
.button .arrow { flex:none; font-size:20px; line-height:1; }
.button-light { background:transparent; color:var(--ink); }
.button-light:hover { background:var(--ink); color:var(--canvas); }
.card-body>.button { align-self:flex-start; margin-top:auto; }
.host { display:grid; grid-template-columns:minmax(220px,350px) minmax(0,1fr); gap:48px; padding:36px; margin-top:56px; background:var(--sage); border-radius:var(--radius); }
.host h2 { margin-top:22px; }
.host-intro { margin-top:26px; font-weight:700; }
.host-bio { max-width:65ch; align-self:start; }
.archive-section { margin-top:48px; }
.archive-intro { margin-top:14px; max-width:65ch; color:var(--muted); }
.archive-row { display:grid; grid-template-columns:300px minmax(0,1fr) 230px; align-items:center; gap:36px; margin-top:28px; }
.archive-row .button { justify-self:end; }
.archive-copy h3 { font-size:30px; }
.archive-copy .event-meta { margin-top:12px; }
.archive-copy>p:last-child { margin-top:12px; color:var(--muted); }
.site-footer { border-top:1px solid var(--border); margin-top:48px; padding-block:20px 32px; font-size:12px; color:var(--muted); }
.site-footer>p:first-child { color:var(--ink); font-weight:700; }
.site-footer>p+p { margin-top:10px; }
.back-link { display:inline-flex; align-items:center; min-height:44px; gap:10px; margin-block:24px; }
.detail-intro { max-width:950px; }
.detail-intro h1 { margin-top:18px; font-size:clamp(2.375rem,5vw,4.5rem); }
.detail-intro .detail-meta { margin-top:24px; font-size:20px; }
.detail-intro .lead { margin-top:16px; max-width:65ch; font-size:18px; }
.detail-media { max-width:1085px; margin:32px auto 0; }
.detail-media figcaption { padding-top:12px; font-size:14px; color:var(--muted); }
.october-cover { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(360px,1fr); align-items:stretch; gap:0; margin-top:10px; }
.october-cover-copy { grid-column:2; grid-row:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; min-width:0; padding:clamp(24px,3vw,44px); background:var(--surface); border:1px solid var(--border); border-left:0; border-radius:0 var(--radius) var(--radius) 0; }
.october-cover-copy h1 { margin-top:12px; font-size:clamp(2.25rem,3.55vw,3.55rem); line-height:1.08; }
.cover-when { margin-top:24px; font-size:18px; font-weight:700; }
.cover-price { display:flex; flex-direction:column; margin-top:10px; }
.cover-price strong { font-size:24px; line-height:1.2; }
.cover-price span { margin-top:4px; color:var(--muted); }
.cover-lead { margin-top:20px; font-size:17px; }
.cover-cta { width:100%; margin-top:24px; }
.cover-note { margin-top:12px; color:var(--muted); font-size:14px; line-height:1.4; }
.october-cover-media { grid-column:1; grid-row:1; position:relative; min-width:0; background:var(--paper); }
.october-cover-media img { display:block; width:100%; height:100%; object-fit:contain; }
.october-cover-media figcaption { position:absolute; bottom:0; left:0; right:0; padding:8px 12px; background:rgb(255 253 248 / .94); color:var(--muted); font-size:12px; line-height:1.35; }
.october-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:20px; padding:20px 24px; background:var(--ink); color:var(--canvas); border-radius:var(--radius); }
.october-facts p { display:flex; flex-direction:column; gap:2px; min-width:0; padding:0 20px; border-left:1px solid rgb(255 248 238 / .3); }
.october-facts p:first-child { border-left:0; padding-left:0; }
.october-facts strong { font-size:18px; }
.october-facts span { font-size:14px; }
.october-story,.october-practical { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1fr); gap:48px; margin-top:56px; }
.october-story h2,.october-practical h2 { margin-top:12px; }
.october-story>p,.october-practical>div:nth-child(2) { max-width:65ch; font-size:18px; }
.october-host { margin-top:56px; padding:28px 34px; background:var(--sage); border-radius:var(--radius); }
.october-host h2 { margin-top:8px; }
.october-host p:last-child { margin-top:12px; }
.october-practical { padding-top:36px; border-top:1px solid var(--border); }
.october-practical>div:nth-child(2) { font-size:16px; }
.october-practical>div:nth-child(2) p+p { margin-top:16px; }
.october-practical .button { margin-top:24px; }
.detail-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; margin-top:56px; }
.section-copy h2 { margin-bottom:24px; }
.section-copy p+p { margin-top:20px; }
.proposal { margin-bottom:24px; padding:16px 20px; background:var(--paper); border-left:3px solid var(--accent); }
.program-list { margin:0; padding-left:24px; }
.program-list li+li { margin-top:22px; }
.program-list strong { display:block; margin-bottom:6px; }
.fact-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.fact-list>div { border-top:1px solid var(--border); padding-top:12px; min-width:0; }
.fact-list dt { font-weight:700; }
.fact-list dd { margin:6px 0 0; color:var(--muted); }
.signup-state { margin-top:32px; padding:24px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); }
.signup-state h3 { font-size:26px; }
.signup-state p { margin-top:16px; }
.related { margin-top:48px; padding-block:32px; border-top:1px solid var(--border); }
.related h2 { max-width:65ch; }
.related p { margin-top:18px; }
.related .button { margin-top:20px; }
.archive-banner { margin-top:20px; padding:20px 24px; background:var(--ink); color:var(--canvas); border-radius:6px; }
.archive-banner strong { font-size:20px; }
.archive-banner p { margin-top:8px; }
.archive-media { margin-top:32px; }
.archive-media img { width:100%; height:auto; object-fit:contain; }
.archive-media figcaption { margin-top:12px; font-size:14px; color:var(--muted); }
.event-gallery { margin-top:48px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.gallery-grid img { width:100%; height:auto; border-radius:var(--radius); }
.gallery-grid figcaption { margin-top:8px; color:var(--muted); }
.history-box { margin-top:48px; padding:32px; border:1px solid var(--border); border-radius:var(--radius); }
.history-box h2 { margin-bottom:24px; }
.history-box p+p { margin-top:18px; }
.history-box ol { padding-left:24px; margin-block:24px 0; }
.history-box li+li { margin-top:16px; }
@media(max-width:999px) {
  .brand { width:158px; }
  .menu-toggle:not([hidden]) { display:flex; }
  .main-nav { flex:1 0 100%; display:none; grid-template-columns:1fr; gap:4px; }
  .main-nav[data-open="true"] { display:grid; }
  .main-nav a { padding:8px 4px; }
  .event-grid { grid-template-columns:1fr; gap:24px; }
  .gallery-grid { grid-template-columns:1fr; }
  .hero-bottom>p:first-child { font-size:16px; }
  .month { width:100%; }
  .card-body { min-height:260px; }
  .card-body>.button { align-self:stretch; }
  .host { grid-template-columns:1fr; gap:24px; padding:24px; }
  .host h2 { margin-top:18px; }
  .host-intro { margin-top:18px; }
  .archive-row { grid-template-columns:1fr; gap:24px; }
  .archive-row img { width:100%; }
  .archive-row .button { justify-self:stretch; }
  .detail-columns { grid-template-columns:1fr; gap:40px; }
  .detail-intro .detail-meta { font-size:18px; }
  .october-cover { grid-template-columns:1fr; }
  .october-cover-copy { grid-column:1; grid-row:1; padding:24px; border:1px solid var(--border); border-radius:var(--radius) var(--radius) 0 0; }
  .october-cover-copy h1 { font-size:clamp(2.25rem,6vw,3.4rem); }
  .october-cover-media { grid-column:1; grid-row:2; }
  .october-cover-media img { height:auto; }
  .october-cover-media figcaption { position:static; }
  .october-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 0; }
  .october-facts p:nth-child(3) { border-left:0; padding-left:0; }
  .october-story,.october-practical { grid-template-columns:1fr; gap:16px; margin-top:40px; }
  .october-host { margin-top:40px; }
  .history-box { padding:24px; }
}
@media(max-width:479px) {
  .october-cover-copy { padding:20px; }
  .october-cover-copy h1 { margin-top:8px; font-size:clamp(2.125rem,9.2vw,2.6rem); }
  .cover-when { margin-top:16px; font-size:16px; }
  .cover-price { margin-top:8px; }
  .cover-price strong { font-size:22px; }
  .cover-price span { font-size:14px; }
  .cover-lead { margin-top:12px; font-size:16px; line-height:1.45; }
  .cover-cta { margin-top:16px; }
  .cover-note { margin-top:8px; font-size:12px; }
  .october-facts { padding:18px 16px; }
  .october-facts p { padding-left:12px; }
  .october-facts strong { font-size:16px; }
  .october-facts span { font-size:12px; }
  .october-host { padding:22px; }
  .fact-list { grid-template-columns:1fr; }
  .center-hero { padding-top:28px; }
  .center-hero h1 { max-width:330px; }
  .hero-bottom { margin-top:20px; }
  .event-grid { margin-top:32px; }
  .detail-meta span { display:block; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
