
:root {
  color-scheme: dark;

  /* Color system */
  --bg: rgb(16 16 14);
  --surface: rgb(20 20 16);
  --surface-raised: rgb(28 27 23);
  --surface-warm: rgb(23 19 15);
  --surface-olive: rgb(19 21 15);
  --surface-footer: rgb(13 14 12);
  --text: rgb(238 233 223);
  --text-muted: rgb(200 193 182);
  --text-dim: rgb(154 150 142);
  --accent: rgb(198 162 105);
  --accent-dim: rgb(164 134 88);
  --accent-hover: rgb(214 187 137);
  --text-on-accent: rgb(23 22 16);
  --category-built: rgb(199 138 103);
  --category-both: rgb(169 181 161);
  --status-open: rgb(169 181 161);
  --status-closed: rgb(199 138 103);
  --status-seasonal: rgb(198 162 105);
  --status-permanent: rgb(184 180 170);
  --border: color-mix(in srgb, var(--text) 13%, transparent);
  --border-strong: color-mix(in srgb, var(--accent) 38%, transparent);
  --border-real: color-mix(in srgb, var(--accent) 45%, transparent);
  --border-built: color-mix(in srgb, var(--category-built) 52%, transparent);
  --border-both: color-mix(in srgb, var(--category-both) 50%, transparent);
  --surface-hover: color-mix(in srgb, var(--text) 1.5%, transparent);
  --header-bg: color-mix(in srgb, var(--bg) 96%, transparent);

  /* Type system */
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville, Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --type-3xs: 0.625rem;
  --type-2xs: 0.6875rem;
  --type-xs: 0.75rem;
  --type-sm: 0.8125rem;
  --type-md: 0.9375rem;
  --type-base: 1rem;
  --type-lg: 1.125rem;
  --type-xl: 1.25rem;
  --type-2xl: 1.375rem;
  --type-3xl: 1.625rem;
  --type-4xl: 1.8125rem;
  --type-5xl: 2.0625rem;
  --type-lede: clamp(1.05rem, 1.7vw, 1.25rem);
  --type-display: clamp(3.2rem, 6vw, 5.6rem);
  --type-section: clamp(2.15rem, 4vw, 3.5rem);
  --type-page-title: clamp(3rem, 5.5vw, 5.2rem);
  --type-detail-title: clamp(3rem, 6vw, 5.5rem);
  --type-story-title: clamp(2.3rem, 4vw, 3.6rem);
  --type-document-title: clamp(2.7rem, 5vw, 4.5rem);
  --type-mobile-title: clamp(2.8rem, 14vw, 4.35rem);
  --type-mobile-section: clamp(2rem, 9vw, 3rem);
  --leading-body: 1.65;
  --leading-copy: 1.7;
  --leading-lede: 1.62;
  --leading-lede-tight: 1.6;
  --leading-display: 0.98;
  --leading-detail-title: 0.96;
  --leading-section: 1.04;
  --leading-heading: 1.14;
  --leading-meta: 1.4;
  --leading-note: 1.55;
  --tracking-display: -0.04em;
  --tracking-section: -0.028em;
  --tracking-heading: -0.014em;
  --tracking-label: 0.1em;
  --tracking-label-wide: 0.16em;

  /* Spacing system — quarter-rem base with one eighth-rem micro-step */
  --space-0: 0;
  --space-0-5: 0.125rem;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-9: 2.25rem;
  --space-10: 2.5rem;
  --space-11: 2.75rem;
  --space-12: 3rem;
  --space-13: 3.25rem;
  --space-14: 3.5rem;
  --space-15: 3.75rem;
  --space-16: 4rem;
  --space-17: 4.25rem;
  --space-18: 4.5rem;
  --space-19: 4.75rem;
  --space-20: 5rem;
  --space-21: 5.25rem;
  --space-22: 5.5rem;
  --space-23: 5.75rem;
  --space-24: 6rem;
  --space-25: 6.25rem;

  /* Layout / component dimensions */
  --hairline: 0.0625rem;
  --container-max: 70rem;
  --container-gutter: var(--space-12);
  --container-gutter-mobile: var(--space-8);
  --measure-title: 56.25rem;
  --measure-document: 50rem;
  --measure-hero-copy: 48.75rem;
  --measure-wide: 47.5rem;
  --measure-story: 46.25rem;
  --measure-copy-lg: 45rem;
  --measure-copy: 43.75rem;
  --measure-narrow: 38.75rem;
  --track-meta-compact: 7.8125rem;
  --track-meta-tablet: 8.125rem;
  --track-meta: 9.0625rem;
  --track-portal-tablet: 10.9375rem;
  --track-portal: 11.875rem;
  --track-side: 13.75rem;
  --track-tour-side: 14.375rem;
  --track-date-panel: 15.625rem;
  --track-aside: 17.5rem;
  --track-aside-wide: 18.75rem;
  --min-related-card: 10.625rem;
  --min-kind-card: 20rem;
  --min-hero: 38.125rem;
  --nav-height: 4.625rem;
  --nav-height-mobile: 4.125rem;
  --mark-size: 2.125rem;
  --mark-size-mobile: 1.875rem;
  --control-height: 2.75rem;
  --field-height: 2.8125rem;
  --pill-height: 1.5625rem;
  --summary-height: 6.25rem;
  --summary-height-mobile: 5.625rem;
  --blur-header: 0.75rem;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--text); font:var(--type-base)/var(--leading-body) var(--sans); text-rendering:optimizeLegibility; }
a { color:inherit; }
img { max-width:100%; display:block; }
button,input,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.shell { width:min(var(--container-max), calc(100% - var(--space-12))); margin:0 auto; }

/* Header */
.site-header { position:sticky; top:0; z-index:50; background:var(--header-bg); border-bottom:var(--hairline) solid var(--border); backdrop-filter:blur(var(--blur-header)); }
.nav { min-height:var(--nav-height); display:flex; align-items:center; justify-content:space-between; gap:var(--space-7); }
.brand { display:inline-flex; align-items:center; gap:var(--space-3); text-decoration:none; color:var(--text); font-size:var(--type-xs); font-weight:760; letter-spacing:.15em; text-transform:uppercase; white-space:nowrap; }
.mark { width:var(--mark-size); height:var(--mark-size); display:grid; place-items:center; border:var(--hairline) solid var(--accent); color:var(--accent); font:500 var(--type-base)/1 var(--serif); }
.nav-links { display:flex; align-items:center; gap:var(--space-6); }
.nav-links a { position:relative; padding:var(--space-7) 0 var(--space-6); color:var(--text-muted); text-decoration:none; font-size:var(--type-xs); font-weight:650; white-space:nowrap; }
.nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current="page"] { color:var(--text); }
.nav-links a[aria-current="page"]::after { content:""; position:absolute; left:0; right:0; bottom:-var(--hairline); height:var(--hairline); background:var(--accent); }
.menu-button { display:none; padding:var(--space-2) 0; color:var(--text-muted); background:transparent; border:0; border-bottom:var(--hairline) solid var(--accent); font-size:var(--type-xs); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

/* Type */
.eyebrow { margin:0 0 var(--space-3); color:var(--accent); font-size:var(--type-3xs); font-weight:780; letter-spacing:var(--tracking-label-wide); text-transform:uppercase; }
h1,h2,h3 { margin-top:0; color:var(--text); font-family:var(--serif); font-weight:400; }
h1 { margin-bottom:0; font-size:var(--type-display); line-height:var(--leading-display); letter-spacing:var(--tracking-display); }
h2 { margin-bottom:0; font-size:var(--type-section); line-height:var(--leading-section); letter-spacing:var(--tracking-section); }
h3 { margin-bottom:0; font-size:var(--type-3xl); line-height:var(--leading-heading); letter-spacing:var(--tracking-heading); }
.lede { max-width:var(--measure-wide); margin:var(--space-6) 0 0; color:var(--text-muted); font:400 var(--type-lede)/var(--leading-lede) var(--serif); }
.large-copy { max-width:var(--measure-copy-lg); color:var(--text-muted); font:400 var(--type-lg)/var(--leading-copy) var(--serif); }
.text-link { width:fit-content; color:var(--text-muted); text-decoration:none; border-bottom:var(--hairline) solid var(--accent); padding-bottom:var(--space-0-5); font-size:var(--type-sm); font-weight:700; }
.text-link:hover,.text-link:focus-visible { color:var(--accent); }
.button { display:inline-flex; min-height:var(--control-height); width:fit-content; align-items:center; justify-content:center; padding:0 var(--space-4); border:var(--hairline) solid var(--border-strong); color:var(--accent); background:transparent; text-decoration:none; cursor:pointer; font-size:var(--type-sm); font-weight:700; letter-spacing:.02em; }
.button:hover,.button:focus-visible { border-color:var(--accent); background:var(--accent); color:var(--text-on-accent); }
.button-solid { color:var(--text-on-accent); background:var(--accent); border-color:var(--accent); }
.button-solid:hover,.button-solid:focus-visible { background:var(--accent-hover); border-color:var(--accent-hover); }
.hero-actions,.inline-actions,.button-row { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-5); margin-top:var(--space-7); }
.editorial-rule { width:var(--space-16); height:var(--hairline); margin:var(--space-9) 0; background:var(--accent); opacity:.7; }
.status-pill,.type-badge,.date-chip,.verified-chip { display:inline-flex; align-items:center; min-height:var(--pill-height); padding:var(--space-1) var(--space-2); border:var(--hairline) solid var(--border); color:var(--text-muted); font-size:var(--type-3xs); font-weight:760; letter-spacing:.08em; text-transform:uppercase; }
.type-real { color:var(--accent); border-color:var(--border-real); }
.type-built { color:var(--category-built); border-color:var(--border-built); }
.type-both { color:var(--category-both); border-color:var(--border-both); }

.status-open { color:var(--status-open); border-color:color-mix(in srgb, var(--status-open) 50%, transparent); }
.status-closed { color:var(--status-closed); border-color:color-mix(in srgb, var(--status-closed) 50%, transparent); }
.status-seasonal { color:var(--status-seasonal); border-color:color-mix(in srgb, var(--status-seasonal) 50%, transparent); }
.status-permanent { color:var(--status-permanent); border-color:color-mix(in srgb, var(--status-permanent) 50%, transparent); }

/* Home */
.hero-seasonal { min-height:var(--min-hero); display:grid; align-items:center; border-bottom:var(--hairline) solid var(--border); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(var(--track-aside),.55fr); gap:clamp(var(--space-14),8vw,var(--space-25)); align-items:end; padding:var(--space-24) 0 var(--space-22); }
.hero-seasonal h1 { max-width:var(--measure-hero-copy); }
.season-card { padding:var(--space-0-5) 0 var(--space-0-5) var(--space-7); border-left:var(--hairline) solid var(--border-strong); }
.season-number { display:block; margin:0 0 var(--space-5); color:var(--text-dim); font-size:var(--type-xs); letter-spacing:.12em; }
.season-card h2 { font-size:var(--type-5xl); }
.season-card p:not(.eyebrow) { margin:var(--space-4) 0 var(--space-5); color:var(--text-muted); font-size:var(--type-md); }
.season-card a { color:var(--accent); text-decoration:none; border-bottom:var(--hairline) solid var(--accent); padding-bottom:var(--space-0-5); font-size:var(--type-xs); font-weight:720; }
.section { padding:var(--space-22) 0; }
.compact-section { padding:var(--space-17) 0; }
.section-heading,.directory-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(var(--track-aside),.65fr); gap:var(--space-14); align-items:end; margin-bottom:var(--space-10); }
.section-heading > p,.directory-heading > p { margin:0; color:var(--text-muted); font-size:var(--type-md); }
.portal-grid { border-top:var(--hairline) solid var(--border); }
.portal-card { display:grid; grid-template-columns:minmax(var(--track-portal),.55fr) minmax(0,1.2fr) auto; gap:var(--space-8); align-items:center; padding:var(--space-7) 0; border-bottom:var(--hairline) solid var(--border); text-decoration:none; }
.portal-card:hover { border-color:var(--border-strong); }
.portal-card > span { display:none; }
.portal-card .eyebrow { margin:0 0 var(--space-1); }
.portal-card h3 { font-size:var(--type-3xl); }
.portal-card p:not(.eyebrow) { margin:0; color:var(--text-muted); font-size:var(--type-md); }
.portal-card b { color:var(--accent); font-size:var(--type-xs); font-weight:720; white-space:nowrap; }
.home-statement,.season-explainer { padding:var(--space-19) 0; border-top:var(--hairline) solid var(--border); border-bottom:var(--hairline) solid var(--border); background:var(--surface); }
.statement-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-18); align-items:start; }
.statement-grid p { margin-top:0; color:var(--text-muted); }

/* Page heroes */
.page-hero { border-bottom:var(--hairline) solid var(--border); background:var(--surface); }
.page-hero-inner { padding:var(--space-21) 0 var(--space-17); }
.page-hero h1 { max-width:var(--measure-title); font-size:var(--type-page-title); }
.halloween-page-hero,.haunted-houses-hero { background:var(--surface-warm); }
.locations-hero { background:var(--surface-olive); }

/* Halloween categories */
.kind-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--hairline) solid var(--border); border-bottom:var(--hairline) solid var(--border); }
.kind-card { position:relative; min-height:var(--min-kind-card); padding:var(--space-7) var(--space-7) var(--space-7); border-right:var(--hairline) solid var(--border); text-decoration:none; }
.kind-card:last-child { border-right:0; }
.kind-card:hover { background:var(--surface-hover); }
.kind-icon { display:block; margin-bottom:var(--space-16); color:var(--text-dim); font-size:var(--type-2xs); letter-spacing:var(--tracking-label); }
.kind-card h3 { margin-bottom:var(--space-3); font-size:var(--type-4xl); }
.kind-card p:not(.eyebrow) { margin:0 0 var(--space-10); color:var(--text-muted); font-size:var(--type-md); }
.card-link { position:absolute; left:var(--space-7); bottom:var(--space-7); color:var(--accent); font-size:var(--type-xs); font-weight:720; }
.kind-built .eyebrow { color:var(--category-built); }
.kind-both .eyebrow { color:var(--category-both); }
.simple-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--hairline) solid var(--border); }
.simple-grid article { min-height:var(--min-related-card); padding:var(--space-7) var(--space-7) var(--space-6) 0; border-bottom:var(--hairline) solid var(--border); }
.simple-grid article + article { padding-left:var(--space-7); border-left:var(--hairline) solid var(--border); }
.simple-grid h3 { margin-bottom:var(--space-3); font-size:var(--type-2xl); }
.simple-grid p { margin:0; color:var(--text-muted); font-size:var(--type-md); }

/* Filters / list pages */
.finder-wrap { background:var(--bg); }
.finder-heading { margin-bottom:var(--space-7); }
.filters,.location-filters { display:grid; grid-template-columns:1.35fr .75fr .82fr 1fr auto; gap:var(--space-3); align-items:end; padding:var(--space-4) 0 var(--space-6); border-top:var(--hairline) solid var(--border); border-bottom:var(--hairline) solid var(--border); }
.location-filters { grid-template-columns:1.35fr .9fr .9fr auto; }
.filters label,.location-filters label { display:grid; gap:var(--space-2); }
.filters label > span,.location-filters label > span { color:var(--text-muted); font-size:var(--type-3xs); font-weight:760; letter-spacing:var(--tracking-label); text-transform:uppercase; }
.filters input,.filters select,.location-filters input,.location-filters select { width:100%; min-height:var(--field-height); padding:0 var(--space-3); color:var(--text); background:var(--surface); border:var(--hairline) solid var(--border); border-radius:0; outline:none; }
.filters input:focus,.filters select:focus,.location-filters input:focus,.location-filters select:focus { border-color:var(--accent); }
.filters select,.location-filters select { appearance:none; }
.result-bar { margin:var(--space-6) 0 var(--space-3); padding-bottom:var(--space-3); color:var(--text-muted); font-size:var(--type-sm); border-bottom:var(--hairline) solid var(--border); }
.result-bar strong { color:var(--text); font:400 var(--type-lg)/1 var(--serif); }
.updated-note { display:none; }
.event-grid,.location-list,.tour-list,.haunt-list { border-top:var(--hairline) solid var(--border); }
.event-card { display:grid; grid-template-columns:var(--track-meta) minmax(0,1fr) var(--track-side); gap:var(--space-1) var(--space-7); padding:var(--space-7) 0; border-bottom:var(--hairline) solid var(--border); }
.event-card[hidden] { display:none; }
.event-topline { grid-column:1; grid-row:1 / span 4; display:flex; flex-direction:column; align-items:flex-start; gap:var(--space-2); }
.event-location { grid-column:2; margin:0 0 var(--space-1); color:var(--text-muted); font-size:var(--type-2xs); font-weight:720; letter-spacing:.08em; text-transform:uppercase; }
.event-card h3 { grid-column:2; margin:0 0 var(--space-2); font-size:var(--type-3xl); }
.event-copy { grid-column:2; margin:0; color:var(--text-muted); font-size:var(--type-md); }
.event-facts { grid-column:3; grid-row:1 / span 3; margin:0; }
.event-facts div { padding:var(--space-2) 0; border-top:var(--hairline) solid var(--border); }
.event-facts div:first-child { border-top:0; padding-top:0; }
.event-facts dt { color:var(--text-dim); font-size:var(--type-3xs); letter-spacing:.08em; text-transform:uppercase; }
.event-facts dd { margin:var(--space-0-5) 0 0; color:var(--text-muted); font-size:var(--type-xs); font-weight:620; }
.event-card-button { grid-column:3; grid-row:4; align-self:end; margin-top:var(--space-4); }
.empty-state { padding:var(--space-13) 0; color:var(--text-muted); border-bottom:var(--hairline) solid var(--border); }

.location-row { display:grid; grid-template-columns:var(--track-meta) minmax(0,1fr) var(--track-side); gap:var(--space-7); align-items:start; padding:var(--space-7) 0; border-bottom:var(--hairline) solid var(--border); }
.location-row[hidden] { display:none; }
.location-row-meta { display:grid; gap:var(--space-2); justify-items:start; }
.location-category { color:var(--accent); font-size:var(--type-3xs); font-weight:760; letter-spacing:.09em; text-transform:uppercase; }
.location-access { color:var(--text-dim); font-size:var(--type-2xs); line-height:var(--leading-meta); }
.location-row-main > p:first-child,.haunt-row-main > p:first-child { margin:0 0 var(--space-2); color:var(--text-muted); font-size:var(--type-3xs); font-weight:720; letter-spacing:.07em; text-transform:uppercase; }
.location-row-main h3,.haunt-row-main h3 { margin:0 0 var(--space-2); font-size:var(--type-3xl); }
.location-row-copy,.haunt-row-main p:last-child { margin:0; max-width:var(--measure-copy); color:var(--text-muted); font-size:var(--type-md); }
.location-row-side,.haunt-row-side { display:grid; gap:var(--space-4); justify-items:start; }
.location-row-side > span,.haunt-row-side > span { color:var(--text-muted); font:400 var(--type-md)/1.4 var(--serif); }
.locations-intro { padding-top:var(--space-18); }

/* Haunted house directory */
.directory-section { padding:var(--space-18) 0 var(--space-3); }
.directory-section-divided { margin-top:var(--space-13); padding-top:var(--space-16); border-top:var(--hairline) solid var(--border); }
.directory-heading { margin-bottom:var(--space-7); }
.haunt-row { display:grid; grid-template-columns:minmax(0,1fr) var(--track-side); gap:var(--space-10); align-items:start; padding:var(--space-7) 0 var(--space-7); border-bottom:var(--hairline) solid var(--border); }
.haunt-row-side { justify-self:stretch; }
.haunt-row-side .text-link { margin-top:var(--space-0-5); }
.source-note { margin-top:var(--space-7); color:var(--text-dim); font-size:var(--type-xs); line-height:var(--leading-note); }

/* Trails */
.tour-row { display:grid; grid-template-columns:minmax(0,1fr) var(--track-tour-side); gap:var(--space-14); align-items:start; padding:var(--space-7) 0; border-bottom:var(--hairline) solid var(--border); }
.tour-row h3 { margin:0 0 var(--space-2); font-size:var(--type-3xl); }
.tour-row p:not(.eyebrow) { margin:0; color:var(--text-muted); }
.tour-row-side { display:grid; gap:var(--space-4); }
.tour-row-side > span { color:var(--text-muted); font:400 var(--type-md)/1.4 var(--serif); }

/* Split / cards */
.split-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(var(--track-aside-wide),.7fr); gap:var(--space-20); align-items:start; }
.submission-card,.hauntlog-card,.detail-card,.source-card { padding:var(--space-7); border:var(--hairline) solid var(--border); background:var(--surface-raised); }
.submission-card h3 { margin-bottom:var(--space-3); font-size:var(--type-4xl); }
.submission-card p,.source-card p { color:var(--text-muted); }
.submission-card small,.source-card small { display:block; margin-top:var(--space-4); color:var(--text-dim); line-height:1.5; }
.check-list,.plain-list { display:grid; gap:var(--space-3); max-width:var(--measure-wide); margin:0; padding:0; list-style:none; color:var(--text-muted); }
.check-list li,.plain-list li { position:relative; padding-left:var(--space-6); }
.check-list li::before,.plain-list li::before { content:'—'; position:absolute; left:0; color:var(--accent); }

/* Detail pages */
.event-page-body { background:var(--bg); }
.breadcrumb { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-10); color:var(--text-dim); font-size:var(--type-2xs); }
.breadcrumb a { color:var(--text-muted); text-decoration:none; }
.breadcrumb a:hover { color:var(--text); }
.event-hero,.location-hero { padding:var(--space-10) 0 var(--space-14); border-bottom:var(--hairline) solid var(--border); background:var(--surface); }
.event-hero-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(var(--track-date-panel),.55fr); gap:var(--space-16); align-items:end; }
.event-hero-badges { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-6); }
.event-page-location { margin:0 0 var(--space-3); color:var(--accent); font-size:var(--type-2xs); font-weight:760; letter-spacing:var(--tracking-label); text-transform:uppercase; }
.event-hero h1,.location-hero h1 { max-width:var(--measure-title); margin:0 0 var(--space-4); font-size:var(--type-detail-title); line-height:var(--leading-detail-title); letter-spacing:var(--tracking-display); }
.event-page-lede { max-width:var(--measure-hero-copy); margin:0; color:var(--text-muted); font:400 var(--type-lede)/var(--leading-lede-tight) var(--serif); }
.event-page-actions { display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center; margin-top:var(--space-7); }
.event-date-panel { padding:0 0 var(--space-1) var(--space-6); border-left:var(--hairline) solid var(--border-strong); }
.event-date-panel strong { display:block; color:var(--text); font:400 var(--type-2xl)/1.28 var(--serif); }
.event-date-panel p { margin:var(--space-2) 0 0; color:var(--text-muted); }
.panel-label { display:block; margin-bottom:var(--space-2); color:var(--text-dim); font-size:var(--type-3xs); font-weight:760; letter-spacing:.11em; text-transform:uppercase; }
.panel-rule { height:var(--hairline); margin:var(--space-4) 0; background:var(--border); }
.event-summary-strip { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:var(--hairline) solid var(--border); }
.event-summary-strip > div { min-height:var(--summary-height); padding:var(--space-5) var(--space-6); border-right:var(--hairline) solid var(--border); }
.event-summary-strip > div:first-child { border-left:var(--hairline) solid var(--border); }
.event-summary-strip span { display:block; margin-bottom:var(--space-2); color:var(--text-dim); font-size:var(--type-3xs); font-weight:760; letter-spacing:.09em; text-transform:uppercase; }
.event-summary-strip strong { color:var(--text); font:400 var(--type-base)/var(--leading-meta) var(--serif); }
.event-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(var(--track-aside),.55fr); gap:var(--space-19); padding-top:var(--space-18); padding-bottom:var(--space-22); }
.event-story h2 { max-width:var(--measure-story); margin-bottom:var(--space-6); font-size:var(--type-story-title); }
.event-story h3 { margin:var(--space-9) 0 var(--space-3); font-size:var(--type-3xl); }
.intro-copy { max-width:var(--measure-wide); color:var(--text-muted); font:400 var(--type-lg)/var(--leading-copy) var(--serif); }
.story-block { max-width:var(--measure-hero-copy); margin-top:var(--space-13); padding-top:var(--space-7); border-top:var(--hairline) solid var(--border); }
.story-block h3 { margin-top:0; }
.story-block p:last-child { color:var(--text-muted); }
.event-sidebar { display:grid; align-content:start; gap:var(--space-4); }
.detail-list { display:grid; gap:0; margin:var(--space-4) 0 var(--space-6); }
.detail-list div { display:grid; grid-template-columns:var(--space-21) 1fr; gap:var(--space-4); padding:var(--space-3) 0; border-top:var(--hairline) solid var(--border); }
.detail-list dt { color:var(--text-dim); font-size:var(--type-2xs); }
.detail-list dd { margin:0; color:var(--text-muted); font-size:var(--type-xs); font-weight:620; text-align:right; }
.full-button { width:100%; }
.detail-card > .button + .button { width:100%; margin-top:var(--space-2); }
.source-card a { display:inline-block; margin:var(--space-1) 0 var(--space-2); color:var(--accent); font-size:var(--type-xs); font-weight:720; text-decoration:none; border-bottom:var(--hairline) solid var(--accent); }
.related-section { padding:var(--space-16) 0 var(--space-18); border-top:var(--hairline) solid var(--border); background:var(--surface); }
.compact-heading { margin-bottom:var(--space-6); }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:var(--hairline) solid var(--border); }
.related-card { display:grid; grid-template-columns:1fr auto; gap:var(--space-2) var(--space-3); min-height:var(--min-related-card); padding:var(--space-6) var(--space-6) var(--space-5) 0; border-bottom:var(--hairline) solid var(--border); text-decoration:none; }
.related-card + .related-card { padding-left:var(--space-6); border-left:var(--hairline) solid var(--border); }
.related-card strong { grid-column:1/-1; align-self:end; color:var(--text); font:400 var(--type-xl)/1.15 var(--serif); }
.related-card small { grid-column:1/-1; color:var(--text-muted); }
.related-date { color:var(--text-dim); font-size:var(--type-3xs); font-weight:720; }
.location-events { display:grid; gap:0; max-width:var(--measure-document); margin-top:var(--space-12); border-top:var(--hairline) solid var(--border); }
.location-events .eyebrow { margin:var(--space-6) 0 var(--space-2); }
.location-events a { display:flex; justify-content:space-between; gap:var(--space-5); padding:var(--space-3) 0; border-bottom:var(--hairline) solid var(--border); color:var(--text-muted); text-decoration:none; font:400 var(--type-base)/var(--leading-meta) var(--serif); }
.location-events a:hover { color:var(--accent); }

/* Footer / docs */
.site-footer { padding:var(--space-14) 0 var(--space-7); border-top:var(--hairline) solid var(--border); background:var(--surface-footer); }
.footer-grid { display:grid; grid-template-columns:1.45fr .6fr .6fr; gap:var(--space-14); }
.footer-brand { margin-bottom:var(--space-3); }
.footer-grid p { margin:0; color:var(--text-dim); font-size:var(--type-sm); }
.footer-links { display:grid; align-content:start; gap:var(--space-2); }
.footer-links strong { margin-bottom:var(--space-1); color:var(--text-muted); font-size:var(--type-2xs); letter-spacing:var(--tracking-label); text-transform:uppercase; }
.footer-links a { color:var(--text-muted); text-decoration:none; font-size:var(--type-sm); }
.footer-links a:hover { color:var(--text); }
.footer-bottom { display:flex; justify-content:space-between; gap:var(--space-5); margin-top:var(--space-10); padding-top:var(--space-4); border-top:var(--hairline) solid var(--border); color:var(--text-dim); font-size:var(--type-2xs); }
.document { width:min(var(--measure-document),calc(100% - var(--space-12))); margin:var(--space-13) auto var(--space-21); }
.document h1 { font-size:var(--type-document-title); }
.document h2 { margin-top:var(--space-10); font-size:var(--type-4xl); }
.document p,.document li { color:var(--text-muted); }
.document a { color:var(--accent); }
.not-found { min-height:68vh; display:grid; align-content:center; }

@media (max-width:67.5rem) {
  .nav-links { gap:var(--space-4); }
  .nav-links a { font-size:var(--type-xs); }
  .hero-grid,.section-heading,.directory-heading,.statement-grid,.split-grid,.event-hero-grid,.event-layout { grid-template-columns:1fr; }
  .hero-grid { gap:var(--space-11); }
  .season-card { max-width:var(--measure-narrow); }
  .section-heading,.directory-heading { gap:var(--space-4); }
  .portal-card { grid-template-columns:minmax(var(--track-portal-tablet),.7fr) minmax(0,1fr) auto; gap:var(--space-7); }
  .event-card { grid-template-columns:var(--track-meta-tablet) minmax(0,1fr); }
  .event-facts { grid-column:2; grid-row:4; display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); margin-top:var(--space-4); }
  .event-card-button { grid-column:2; grid-row:5; }
  .location-row { grid-template-columns:var(--track-meta-compact) minmax(0,1fr); }
  .location-row-side { grid-column:2; }
  .event-date-panel { max-width:var(--measure-narrow); padding:var(--space-5) 0 0; border-left:0; border-top:var(--hairline) solid var(--border-strong); }
  .event-layout { gap:var(--space-12); }
  .event-sidebar { grid-template-columns:1fr 1fr; }
  .related-grid { grid-template-columns:1fr; }
  .related-card,.related-card + .related-card { min-height:0; padding:var(--space-6) 0; border-left:0; }
  .tour-row { grid-template-columns:1fr; gap:var(--space-4); }
}
@media (max-width:51.25rem) {
  .site-header { position:relative; }
  .menu-button { display:inline-block; }
  .nav-links { display:none; position:absolute; top:var(--nav-height); left:0; right:0; padding:var(--space-4) var(--space-6) var(--space-6); background:var(--bg); border-bottom:var(--hairline) solid var(--border); flex-direction:column; align-items:flex-start; gap:0; }
  .nav-links.open { display:flex; }
  .nav-links a { width:100%; padding:var(--space-3) 0; font-size:var(--type-sm); }
  .nav-links a[aria-current="page"]::after { display:none; }
  .kind-grid,.simple-grid { grid-template-columns:1fr; }
  .kind-card { min-height:0; padding:var(--space-7) 0 var(--space-7); border-right:0; border-bottom:var(--hairline) solid var(--border); }
  .kind-card:last-child { border-bottom:0; }
  .kind-icon { margin-bottom:var(--space-7); }
  .card-link { position:static; display:inline-block; margin-top:var(--space-1); }
  .simple-grid article,.simple-grid article + article { min-height:0; padding:var(--space-6) 0; border-left:0; }
  .filters { grid-template-columns:1fr 1fr; }
  .filters label:first-child { grid-column:1/-1; }
  .location-filters { grid-template-columns:1fr 1fr; }
  .location-filters label:first-child { grid-column:1/-1; }
  .event-summary-strip { grid-template-columns:1fr 1fr; }
  .event-sidebar { grid-template-columns:1fr; }
}
@media (max-width:40rem) {
  .shell { width:min(100% - var(--space-8),var(--container-max)); }
  .nav { min-height:var(--nav-height-mobile); }
  .nav-links { top:var(--nav-height-mobile); }
  .brand { font-size:var(--type-3xs); letter-spacing:.12em; }
  .mark { width:var(--mark-size-mobile); height:var(--mark-size-mobile); }
  h1 { font-size:var(--type-mobile-title); }
  h2 { font-size:var(--type-mobile-section); }
  .hero-seasonal { min-height:auto; }
  .hero-grid { padding:var(--space-17) 0 var(--space-15); gap:var(--space-10); }
  .hero-actions,.inline-actions,.event-page-actions { align-items:stretch; gap:var(--space-4); }
  .hero-actions .button,.inline-actions .button,.event-page-actions .button { width:100%; }
  .season-card { padding-left:var(--space-4); }
  .section { padding:var(--space-16) 0; }
  .compact-section { padding:var(--space-14) 0; }
  .page-hero-inner { padding:var(--space-16) 0 var(--space-13); }
  .page-hero h1 { font-size:var(--type-mobile-title); }
  .portal-card { grid-template-columns:1fr; gap:var(--space-2); padding:var(--space-6) 0; }
  .portal-card p:not(.eyebrow) { margin-top:var(--space-1); }
  .portal-card b { margin-top:var(--space-2); white-space:normal; }
  .home-statement,.season-explainer { padding:var(--space-15) 0; }
  .filters,.location-filters { grid-template-columns:1fr; padding-top:var(--space-4); }
  .filters label:first-child,.location-filters label:first-child { grid-column:auto; }
  .filters .button,.location-filters .button { width:100%; }
  .event-card,.location-row,.haunt-row { display:block; padding:var(--space-6) 0 var(--space-7); }
  .event-topline { display:flex; flex-direction:row; margin-bottom:var(--space-4); }
  .event-location { margin-bottom:var(--space-2); }
  .event-card h3,.location-row-main h3,.haunt-row-main h3 { font-size:var(--type-3xl); }
  .event-copy { margin-bottom:var(--space-4); }
  .event-facts { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin:0 0 var(--space-4); }
  .event-card-button { width:100%; margin-top:0; }
  .location-row-meta { display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4); margin-bottom:var(--space-3); }
  .location-row-side,.haunt-row-side { margin-top:var(--space-4); gap:var(--space-3); }
  .directory-section { padding-top:var(--space-15); }
  .directory-section-divided { margin-top:var(--space-10); padding-top:var(--space-13); }
  .event-hero,.location-hero { padding:var(--space-7) 0 var(--space-12); }
  .breadcrumb { margin-bottom:var(--space-8); }
  .event-hero h1,.location-hero h1 { font-size:var(--type-mobile-title); }
  .event-summary-strip { grid-template-columns:1fr 1fr; }
  .event-summary-strip > div { min-height:var(--summary-height-mobile); padding:var(--space-4) var(--space-4); }
  .event-layout { padding-top:var(--space-14); padding-bottom:var(--space-16); }
  .detail-list div { grid-template-columns:var(--space-18) 1fr; }
  .footer-grid { grid-template-columns:1fr; gap:var(--space-7); }
  .footer-bottom { flex-direction:column; gap:var(--space-1); }
  .document { width:min(100% - var(--space-8),var(--measure-document)); margin-top:var(--space-8); }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior:auto !important; transition:none !important; } }
