:root {
  --paper:#f5eddd; --paper-light:#fbf7ed; --green:#173d2a; --green-dark:#102e20;
  --red:#861911; --gold:#a98748; --ink:#241f18; --line:#d8c39e; --muted:#746752;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:92px; max-width:100%; overflow-x:hidden; }
body { margin:0; max-width:100%; overflow-x:hidden; color:var(--ink); font-family:Georgia,"Times New Roman",serif; background:#efe5d3; line-height:1.52; }
body:before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.21; z-index:100; mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
.page-shell { width:100%; max-width:1580px; min-height:100vh; margin:0 auto; background:rgba(251,247,237,.93); box-shadow:0 0 60px #6e573d29; }
.masthead>*,.hero>*,.feature-card>*,.info-rail>*,.editorial>* { min-width:0; }

.masthead { height:76px; padding:0 3.3%; display:grid; grid-template-columns:320px 1fr; align-items:center; position:sticky; top:0; z-index:50; background:rgba(250,246,236,.96); border-bottom:1px solid #e8ddc9; backdrop-filter:blur(9px); }
.wordmark { width:max-content; align-self:stretch; display:grid; grid-template-columns:42px 1fr; grid-template-rows:1fr 1fr; align-content:center; color:var(--green); }
.city-mark { grid-row:1/3; font-size:2rem; line-height:1; transform:translateY(-1px); opacity:.72; }
.wordmark strong { align-self:end; font-size:2.05rem; line-height:1; font-weight:500; letter-spacing:-.04em; }
.wordmark strong i { font-style:normal; }
.wordmark small { align-self:start; margin-top:3px; font-size:.65rem; text-transform:uppercase; letter-spacing:.18em; }
.main-nav { display:flex; justify-content:flex-end; align-items:center; gap:clamp(16px,2.2vw,36px); color:#243c2e; font-size:clamp(.66rem,.78vw,.78rem); text-transform:uppercase; }
.main-nav a { white-space:nowrap; padding:9px 0; border-bottom:1px solid transparent; }
.main-nav a:hover { color:var(--red); border-color:var(--gold); }
.mobile-menu { display:none; justify-self:end; position:relative; }
.mobile-menu summary { width:48px; height:48px; list-style:none; display:grid; place-content:center; gap:6px; cursor:pointer; touch-action:manipulation; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu summary span { width:24px; height:1px; background:var(--green); }
.mobile-menu nav { width:min(340px,92vw); padding:12px 22px; display:flex; flex-direction:column; position:absolute; right:-20px; top:51px; background:var(--paper-light); border:1px solid var(--line); box-shadow:0 16px 35px #4e3d2525; }
.mobile-menu a { min-height:46px; padding:13px 0; display:flex; align-items:center; border-bottom:1px solid #e2d5be; font-size:.8rem; text-transform:uppercase; }

.hero { min-height:468px; display:grid; grid-template-columns:34% 66%; background:var(--paper-light); border-bottom:1px solid #e7dbc4; }
.hero-copy { padding:45px 3.2% 24px 3.3%; position:relative; z-index:2; box-shadow:20px 0 38px rgba(247,240,226,.92); }
.eyebrow { margin-bottom:13px; color:var(--gold); font:600 .63rem/1.2 Arial,sans-serif; text-transform:uppercase; letter-spacing:.16em; }
.hero-copy h1 { margin-bottom:14px; color:var(--red); font-size:clamp(1.65rem,2.1vw,2.25rem); line-height:1.13; font-weight:500; letter-spacing:.005em; }
.hero-copy>p:not(.eyebrow) { max-width:500px; font-size:.9rem; line-height:1.55; }
.ornament { width:96px; height:15px; margin:0 0 13px; display:flex; align-items:center; color:#8f7541; }
.ornament:before,.ornament:after { content:""; height:1px; flex:1; background:#ad9666; }
.ornament span { padding:0 5px; font-size:.62rem; }
.notice { max-width:510px; margin-top:18px; padding:11px 13px; display:grid; grid-template-columns:24px 1fr; gap:10px; background:#f4e4c7; border:1px solid #cdb489; border-radius:4px; font-size:.72rem; line-height:1.45; }
.notice>span { width:17px; height:17px; margin-top:1px; display:grid; place-content:center; color:#6b5428; border:1px solid #846d3d; border-radius:50%; font:bold .69rem Georgia; }
.notice p { margin:0; }
.hero-image { min-height:468px; position:relative; overflow:hidden; background:#c7c3ad; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 48%; filter:saturate(.82) sepia(.08) contrast(.94); }
.hero-image:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(248,242,230,.22),transparent 22%),linear-gradient(180deg,rgba(255,250,239,.06),rgba(71,54,25,.08)); }
.hero-wish { position:absolute; right:6.5%; top:26px; z-index:2; color:#87612c; font:italic clamp(1.7rem,2.5vw,2.8rem)/.95 "Brush Script MT","Segoe Script",cursive; text-align:center; text-shadow:0 1px #fff8; transform:rotate(-3deg); }
.image-label { margin:0; padding:3px 7px; position:absolute; right:12px; bottom:7px; z-index:2; color:#524a3d; background:#f5eddddd; font:italic .55rem Georgia; }

.feature-grid { padding:20px 3.3%; display:grid; grid-template-columns:repeat(3,1fr); gap:3%; background:#fbf7ef; }
.feature-card { height:248px; display:grid; grid-template-columns:47% 53%; overflow:hidden; scroll-margin-top:95px; background:rgba(251,248,240,.95); border:1px solid #dbc6a2; border-radius:4px; box-shadow:0 4px 13px #6b503d0b; }
.feature-image { overflow:hidden; background:#ddd; }
.feature-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.75) sepia(.13) contrast(.94); transition:transform .6s ease; }
.feature-card:hover .feature-image img { transform:scale(1.025); }
.feature-copy { padding:13px 15px 12px; display:flex; flex-direction:column; align-items:center; text-align:center; }
.feature-copy h2 { margin:0; color:var(--green); font-size:clamp(1.3rem,1.65vw,1.75rem); line-height:1.05; font-weight:500; }
.small-ornament { margin:7px 0 8px; color:#8f7847; font-size:.55rem; }
.feature-copy p { margin-bottom:11px; font-size:.74rem; line-height:1.52; text-align:left; }
.button { min-width:155px; min-height:42px; margin-top:auto; padding:10px 14px; display:inline-flex; align-items:center; justify-content:center; gap:10px; color:#fff; border-radius:3px; box-shadow:0 5px 9px #4e351c18; font:600 .63rem/1 Arial,sans-serif; text-transform:uppercase; letter-spacing:.03em; touch-action:manipulation; }
.button.red { background:var(--red); }
.button.green { background:var(--green); }
.button:hover { filter:brightness(1.12); }
.button span { font-size:.95rem; }

.info-rail { margin:0 3.3% 17px; display:grid; grid-template-columns:1fr 1fr 1fr 1.55fr; background:#f4e7cf; border:1px solid #d6bf98; border-radius:4px; }
.info-rail>article { min-height:122px; padding:17px 20px; display:grid; grid-template-columns:40px 1fr; gap:10px; scroll-margin-top:95px; border-right:1px solid #d8c6a9; }
.info-rail>article:last-child { border-right:0; }
.rail-icon { color:#655b2d; font-size:2.05rem; line-height:1; }
.rail-icon.book { font-size:2.3rem; transform:rotate(90deg); }
.info-rail h3 { margin:0 0 6px; color:#203c2b; font-size:.83rem; }
.info-rail p { margin-bottom:8px; font-size:.66rem; line-height:1.48; }
.info-rail a { color:#24412f; font-size:.58rem; text-transform:uppercase; }
.continuation { grid-template-columns:.85fr 1.15fr!important; gap:16px!important; }
.continuation>div:first-child { display:flex; flex-direction:column; justify-content:center; text-align:center; }
.continuation small { font-size:.55rem; }
.continuation strong { margin-top:7px; color:#6c5f39; font-size:1.2rem; letter-spacing:.13em; }
.continuation span { color:#6c5f39; font-size:.58rem; letter-spacing:.15em; }

.editorial { margin:0 3.3% 24px; padding:38px 4%; display:grid; grid-template-columns:.8fr 1.2fr; gap:7%; scroll-margin-top:95px; background:linear-gradient(90deg,#f9f2e5,#f3e4cb); border-top:1px solid #d7c19b; border-bottom:1px solid #d7c19b; }
.editorial h2 { margin:0; color:var(--green); font-size:clamp(1.9rem,3vw,3.2rem); line-height:1.06; font-weight:500; }
.editorial .lead { color:#4b3622; font-size:1.1rem; }
.editorial>div:nth-child(2)>p:last-child { font-size:.82rem; }
.dates { grid-column:1/-1; margin:5px 0 0; padding:20px 0 0; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; border-top:1px solid #cfb88f; }
.dates li { padding:0 16px; display:flex; flex-direction:column; border-left:1px solid #d7c49f; }
.dates li:first-child { padding-left:0; border:0; }
.dates strong { color:var(--red); font-size:1.45rem; font-weight:500; }
.dates span { color:#544938; font-size:.7rem; }

footer { min-height:58px; padding:15px 3.3%; display:grid; grid-template-columns:1fr auto 1fr; gap:30px; align-items:center; color:#f2e9d9; background:linear-gradient(90deg,var(--green-dark),#214a32); font-size:.58rem; }
footer p { margin:0; }
footer p:last-child { text-align:right; }
footer nav { display:flex; gap:22px; text-transform:uppercase; letter-spacing:.03em; }
footer a:hover { color:#e7c889; }

@media (max-width:1180px) {
  html { scroll-padding-top:76px; }
  .masthead { height:76px; padding:0 24px; grid-template-columns:1fr auto; }
  .main-nav { display:none; }
  .mobile-menu { display:block; }
  .feature-grid { grid-template-columns:1fr; gap:14px; }
  .feature-card { height:230px; grid-template-columns:minmax(250px,40%) 1fr; }
  .feature-copy h2 { font-size:1.65rem; }
  .feature-copy p { font-size:.82rem; }
  .info-rail { grid-template-columns:1fr 1fr; }
  .info-rail>article:nth-child(2) { border-right:0; }
  .info-rail>article:nth-child(-n+2) { border-bottom:1px solid #d8c6a9; }
  .info-rail h3 { font-size:.95rem; }
  .info-rail p { font-size:.77rem; }
  .info-rail a { font-size:.66rem; }
}

@media (max-width:900px) {
  .hero { grid-template-columns:1fr; }
  .hero-copy { padding:42px 6vw 34px; box-shadow:none; }
  .hero-copy h1 { max-width:720px; font-size:clamp(2rem,5.5vw,3.2rem); }
  .hero-copy>p:not(.eyebrow) { max-width:760px; font-size:1rem; line-height:1.62; }
  .notice { max-width:760px; padding:13px 15px; font-size:.82rem; }
  .hero-image { min-height:0; aspect-ratio:16/9; }
  .hero-wish { top:6%; right:5%; font-size:clamp(1.7rem,5vw,2.8rem); }
  .editorial { grid-template-columns:1fr; gap:26px; }
  .editorial .lead { font-size:1.18rem; }
  .editorial>div:nth-child(2)>p:last-child { font-size:.92rem; }
  footer { grid-template-columns:1fr; gap:13px; padding:24px; text-align:center; font-size:.7rem; }
  footer p:last-child { text-align:center; }
  footer nav { justify-content:center; flex-wrap:wrap; gap:14px 24px; }
  footer a { min-height:40px; display:flex; align-items:center; }
}

@media (max-width:680px) {
  html { scroll-padding-top:70px; }
  .masthead { height:70px; padding:0 16px; }
  .wordmark { grid-template-columns:32px 1fr; }
  .city-mark { font-size:1.42rem; }
  .wordmark strong { font-size:clamp(1.32rem,6vw,1.6rem); }
  .wordmark small { font-size:.49rem; letter-spacing:.13em; }
  .mobile-menu nav { right:-16px; top:48px; width:min(340px,calc(100vw - 20px)); }
  .hero-copy { padding:32px 20px 28px; }
  .hero-copy h1 { font-size:clamp(1.75rem,8.5vw,2.45rem); line-height:1.12; }
  .hero-copy>p:not(.eyebrow) { font-size:1rem; }
  .notice { grid-template-columns:22px 1fr; font-size:.82rem; }
  .hero-image { aspect-ratio:4/3; }
  .hero-image img { object-position:61% 50%; }
  .hero-wish { top:5%; }
  .image-label { font-size:.58rem; }
  .feature-grid { padding:16px; gap:16px; }
  .feature-card { height:auto; min-height:0; grid-template-columns:1fr; grid-template-rows:auto auto; }
  .feature-image { aspect-ratio:16/10; }
  .feature-copy { padding:20px 18px 18px; }
  .feature-copy h2 { font-size:1.65rem; }
  .feature-copy p { font-size:.92rem; line-height:1.58; }
  .button { width:100%; max-width:300px; min-height:46px; font-size:.7rem; }
  .info-rail { margin:0 16px 18px; grid-template-columns:1fr; }
  .info-rail>article,.info-rail>article:nth-child(3) { min-height:0; padding:19px 17px; grid-template-columns:38px 1fr; border-right:0; border-bottom:1px solid #d8c6a9; }
  .info-rail h3 { font-size:1rem; }
  .info-rail p { font-size:.84rem; }
  .info-rail a { min-height:40px; display:inline-flex; align-items:center; font-size:.69rem; }
  .continuation { grid-template-columns:1fr!important; gap:18px!important; }
  .continuation>div:first-child { align-items:flex-start; text-align:left; }
  .editorial { margin:0 16px 18px; padding:32px 20px; gap:24px; }
  .editorial h2 { font-size:clamp(2rem,9vw,2.8rem); }
  .dates { grid-template-columns:1fr 1fr; gap:18px; }
  .dates li:nth-child(3) { padding-left:0; border-left:0; }
}

@media (max-width:430px) {
  .hero-image { aspect-ratio:1/1; }
  .hero-wish { font-size:1.6rem; }
  .feature-image { aspect-ratio:4/3; }
  .dates { grid-template-columns:1fr; }
  .dates li { padding:12px 0 0; border-top:1px solid #d7c49f; border-left:0; }
  .dates li:first-child { border-top:0; }
  .image-label { max-width:70%; text-align:right; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .feature-image img { transition:none; }
}
