@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bodoni-400.woff2) format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/spectral-300.woff2) format("woff2")}
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/spectral-400.woff2) format("woff2")}
@font-face{font-family:"Spectral";font-style:italic;font-weight:300;font-display:swap;src:url(../fonts/spectral-300i.woff2) format("woff2")}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/spectral-400i.woff2) format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/archivo-500.woff2) format("woff2")}
:root{
  --stone:#E8E7E2; --band:#DCDCD1; --ink:#1F1E1A; --ink-soft:#5E5C53;
  --rule:#C4C2B8; --rule-soft:#CFCDC3; --oxblood:#6B2B33;
  --display:"Bodoni Moda","Didot","Bodoni MT",Georgia,serif;
  --utility:"Archivo","Helvetica Neue",Arial,sans-serif;
  --text:"Spectral",Georgia,"Times New Roman",serif;
  --gutter:clamp(1.375rem,4.4vw,5rem);
}
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; background:var(--stone); color:var(--ink); font-family:var(--text);
      font-weight:400; -webkit-font-smoothing:antialiased; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
a:focus-visible,button:focus-visible,input:focus-visible{ outline:1px solid var(--oxblood); outline-offset:4px; }
.page{ max-width:1760px; margin:0 auto; }
.measure{ max-width:1220px; margin:0 auto; padding:0 var(--gutter); }

.eyebrow{ font-family:var(--utility); font-weight:500; font-size:.66rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-soft); margin:0; }
.meta{ font-family:var(--utility); font-weight:500; font-size:.62rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); font-variant-numeric:tabular-nums; margin:0; }
.rulelink{ display:inline-block; padding-bottom:.5rem; border-bottom:1px solid var(--ink);
  font-family:var(--utility); font-weight:500; font-size:.635rem; letter-spacing:.21em;
  text-transform:uppercase; transition:color .35s ease,border-color .35s ease; }
.rulelink:hover{ color:var(--oxblood); border-color:var(--oxblood); }
.rulelink .arw{ letter-spacing:0; margin-left:.55em; }
.cap{ font-family:var(--text); font-style:italic; font-weight:300; font-size:.815rem;
  line-height:1.65; color:var(--ink-soft); max-width:40ch; margin:.85rem 0 0; }
.body{ font-family:var(--text); font-weight:300; font-size:.95rem; line-height:1.82;
  color:var(--ink-soft); max-width:42ch; margin:.85rem 0 0; }
.stand{ font-family:var(--text); font-weight:300; font-size:1.025rem; line-height:1.78;
  color:var(--ink-soft); max-width:44ch; margin:1.15rem 0 0; }

/* ---------- header ---------- */
.strip{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:.85rem var(--gutter) .8rem; font-family:var(--utility); font-size:.6rem;
  font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-soft); }
.strip span:last-child{ text-align:right; }
.masthead{ text-align:center; padding:clamp(1.3rem,3.4vw,2.4rem) var(--gutter) clamp(1.4rem,3vw,2.1rem); }
.wordmark{ font-family:var(--display); font-weight:400; font-size:clamp(2.6rem,7.4vw,5.75rem);
  line-height:.86; letter-spacing:-.012em; margin:0; }
.tagline{ font-family:var(--utility); font-weight:500; font-size:clamp(.58rem,.9vw,.72rem);
  letter-spacing:.42em; text-transform:uppercase; color:var(--ink-soft);
  margin:clamp(.95rem,1.8vw,1.4rem) 0 0; padding-left:.42em; }
.nav{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.nav ul{ list-style:none; margin:0; padding:.95rem var(--gutter); display:flex; flex-wrap:wrap;
  justify-content:center; align-items:center; gap:.6rem clamp(1.15rem,2.7vw,2.9rem); }
.nav a{ font-family:var(--utility); font-weight:500; font-size:.665rem; letter-spacing:.21em;
  text-transform:uppercase; color:var(--ink-soft); transition:color .35s ease; }
.nav a:hover{ color:var(--oxblood); }
.nav a.on{ color:var(--ink); }
.nav li:last-child a{ color:var(--ink-soft); }

/* ---------- department masthead ---------- */
.dept{ padding:clamp(2.75rem,6vw,5.25rem) 0 clamp(1.9rem,3.5vw,3rem); }
.dept h1{ font-family:var(--display); font-weight:400; font-size:clamp(2.05rem,3.5vw,3.5rem);
  line-height:1.05; letter-spacing:-.006em; margin:.75rem 0 0; }
.dept .def{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:clamp(1rem,1.35vw,1.125rem); line-height:1.6; color:var(--ink-soft);
  max-width:44ch; margin:1.05rem 0 0; }
.dept-rule{ height:1px; background:var(--rule); }

/* ---------- full bleed ---------- */
.bleed{ margin:0; }
.bleed img{ width:100%; height:auto; }
.bleed-cap{ padding-top:.9rem; }

/* ---------- KITCHEN ---------- */
.season{ border-bottom:1px solid var(--rule); }
.season .inner{ display:grid; grid-template-columns:13rem 1fr; gap:1rem clamp(1.5rem,3vw,2.75rem);
  padding:1.05rem 0 1.1rem; align-items:baseline; }
.season .list{ font-family:var(--text); font-weight:300; font-size:.98rem; line-height:1.75;
  margin:0; color:var(--ink); }
.season .list i{ font-style:normal; color:var(--rule); margin:0 .55em; }
.season .note{ font-family:var(--text); font-style:italic; font-weight:300; font-size:.8rem;
  color:var(--ink-soft); margin:.5rem 0 0; }

.k-lead{ padding-top:clamp(2.25rem,4.5vw,3.5rem); }
.k-lead-type{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(2rem,4.2vw,4.25rem);
  align-items:start; padding-top:clamp(1.5rem,2.8vw,2.25rem); }
.k-lead h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.6rem,2.6vw,2.5rem);
  line-height:1.14; margin:.6rem 0 0; max-width:18ch; text-wrap:balance; }
.k-lead .right{ padding-top:.35rem; }

.river{ padding:clamp(3rem,6vw,5rem) 0 0; }
.river article{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.75rem,4.2vw,4.25rem);
  align-items:center; padding:clamp(2.25rem,4.5vw,3.5rem) 0; border-top:1px solid var(--rule); }
.river article:first-child{ border-top:0; padding-top:0; }
.river article:nth-child(even) .fig{ order:2; }
.river img{ width:100%; aspect-ratio:3/2; object-fit:cover; transition:opacity .5s ease; }
.river a:hover img{ opacity:.92; }
.river h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.4rem,2.3vw,1.95rem);
  line-height:1.22; margin:.6rem 0 0; transition:color .35s ease; }
.river a:hover h3{ color:var(--oxblood); }
.river .meta{ margin-top:1.1rem; }

.index{ padding:clamp(3.25rem,6.5vw,5.5rem) 0 0; }
.index-head{ display:grid; grid-template-columns:1fr auto; gap:1.25rem clamp(2rem,4vw,4rem);
  align-items:end; padding-bottom:1.5rem; }
.index-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.5rem,2.4vw,2.25rem);
  line-height:1.14; margin:.55rem 0 0; }
.index-head .body{ max-width:46ch; }
.index ol{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.index li{ border-bottom:1px solid var(--rule); }
.index li a{ display:grid; grid-template-columns:3.25rem 1fr 1.5fr; gap:1rem clamp(1.25rem,2.5vw,2.5rem);
  padding:1.15rem 0; align-items:baseline; }
.index li a:hover .t{ color:var(--oxblood); }
.index .n{ font-family:var(--utility); font-weight:500; font-size:.62rem; letter-spacing:.2em;
  color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.index .t{ font-family:var(--text); font-weight:400; font-size:clamp(1.05rem,1.6vw,1.3rem);
  line-height:1.3; transition:color .35s ease; }
.index .d{ font-family:var(--text); font-weight:300; font-size:.875rem; line-height:1.7;
  color:var(--ink-soft); }

/* ---------- TABLE ---------- */
.trip{ display:grid; grid-template-columns:repeat(3,1fr); }
.trip img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.t-lead{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.75rem,4.2vw,4.25rem);
  align-items:start; padding:clamp(2rem,3.6vw,2.9rem) 0 0; }
.t-lead h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.6rem,2.6vw,2.5rem);
  line-height:1.14; margin:.6rem 0 0; max-width:20ch; text-wrap:balance; }

.gallery{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4.2vw,4.25rem);
  padding:clamp(3rem,6vw,5.25rem) 0 0; }
.gallery .col:nth-child(2){ padding-top:96px; }
.gallery figure{ margin:0 0 clamp(2.5rem,5vw,4.5rem); }
.gallery figure:last-child{ margin-bottom:0; }
.gallery img{ width:100%; aspect-ratio:4/5; object-fit:cover; transition:opacity .5s ease; }
.gallery a:hover img{ opacity:.92; }
.gallery h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.15rem,1.7vw,1.45rem);
  line-height:1.25; margin:1rem 0 0; transition:color .35s ease; }
.gallery a:hover h3{ color:var(--oxblood); }
.gallery .rulelink{ margin-top:1rem; }

.t-close{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4.2vw,4.25rem);
  align-items:center; padding:clamp(3.5rem,6.5vw,5.5rem) 0 0; }
.t-close img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.t-close h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.6rem,2.6vw,2.5rem);
  line-height:1.14; margin:.6rem 0 0; max-width:16ch; text-wrap:balance; }

/* ---------- GARDEN ---------- */
.seasons{ padding-top:clamp(2.5rem,5vw,4rem); }
.sband{ display:grid; grid-template-columns:12.5rem 1fr; gap:clamp(1.5rem,3.5vw,3.5rem);
  padding:clamp(2.5rem,5vw,4rem) 0; border-top:1px solid var(--rule); }
.sband:first-child{ border-top:0; padding-top:0; }
.sband .label{ align-self:start; }
.sband .label .sticky{ position:sticky; top:2.5rem; }
.sband .label h2{ font-family:var(--text); font-weight:300; font-size:clamp(1.35rem,2vw,1.7rem);
  line-height:1.2; letter-spacing:.04em; margin:.5rem 0 0; }
.sband .label .when{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin:.55rem 0 0; }
.sband .frames{ display:grid; grid-template-columns:1.55fr 1fr 1fr; gap:clamp(1.1rem,2.2vw,2rem);
  align-items:start; }
.sband figure{ margin:0; }
.sband .frames img{ width:100%; object-fit:cover; }
.sband .frames figure:first-child img{ aspect-ratio:3/2; }
.sband .frames figure:nth-child(n+2) img{ aspect-ratio:1/1; }
.sband .note{ font-family:var(--text); font-weight:300; font-size:.95rem; line-height:1.82;
  color:var(--ink); max-width:62ch; margin:clamp(1.5rem,2.6vw,2.1rem) 0 0;
  padding-top:1.15rem; border-top:1px solid var(--rule-soft); }

/* ---------- Quiet Ledger module ---------- */
.ledger{ background:var(--band); border-top:1px solid var(--rule);
  margin-top:clamp(3.5rem,7vw,6rem); padding:clamp(3.25rem,6.5vw,5.5rem) 0; }
.ledger .intro{ text-align:center; }
.markline{ display:flex; align-items:center; justify-content:center; gap:clamp(1rem,2.4vw,2rem);
  margin-top:clamp(1rem,1.8vw,1.4rem); }
.markline .r{ flex:1 1 auto; max-width:132px; height:1px; background:var(--rule); }
.ledger .mark{ font-family:var(--text); font-weight:300; font-size:clamp(1.6rem,3vw,2.55rem);
  line-height:1.1; letter-spacing:.045em; margin:0; white-space:nowrap; }
.ledger .unit{ display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(2rem,4.2vw,4.25rem);
  align-items:center; margin-top:clamp(2.5rem,5vw,4rem); }
.ledger.mirror .unit{ grid-template-columns:1.35fr 1fr; }
.ledger.mirror .unit .fig{ order:2; }
.ledger img{ width:100%; aspect-ratio:1/1; object-fit:cover; transition:opacity .5s ease; }
.ledger a:hover img{ opacity:.92; }
.ledger h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.5rem,2.5vw,2.05rem);
  line-height:1.22; margin:.6rem 0 0; transition:color .35s ease; }
.ledger a:hover h3{ color:var(--oxblood); }
.ledger .body{ max-width:46ch; }

/* ---------- footer ---------- */
.foot{ border-top:1px solid var(--rule); margin-top:clamp(3.5rem,7vw,6rem);
  padding:clamp(2.75rem,5vw,4.25rem) 0 clamp(2.25rem,4vw,3.5rem); }
.foot .cols{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:2rem clamp(1.5rem,3vw,3rem); align-items:start; }
.foot .fm{ font-family:var(--display); font-weight:400; font-size:1.75rem; line-height:1; margin:0; }
.foot .ft{ font-family:var(--utility); font-weight:500; font-size:.58rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--ink-soft); margin:.8rem 0 0; }
.foot h4{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 1rem; }
.foot ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; }
.foot ul a{ font-family:var(--utility); font-weight:500; font-size:.635rem; letter-spacing:.21em;
  text-transform:uppercase; transition:color .35s ease; }
.foot ul a:hover{ color:var(--oxblood); }
.signup{ display:flex; align-items:flex-end; gap:1.1rem; max-width:340px; margin-top:1.1rem;
  border-bottom:1px solid var(--rule); padding-bottom:.55rem; transition:border-color .35s ease; }
.signup:focus-within{ border-color:var(--ink); }
.signup input{ flex:1 1 auto; min-width:0; border:0; background:transparent; padding:0;
  font-family:var(--text); font-weight:300; font-size:.92rem; color:var(--ink); }
.signup input::placeholder{ color:var(--ink-soft); opacity:.75; }
.signup input:focus{ outline:none; }
.signup button{ flex:0 0 auto; border:0; background:transparent; padding:0 0 .06rem; cursor:pointer;
  font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.21em;
  text-transform:uppercase; color:var(--ink); transition:color .35s ease; }
.signup button:hover{ color:var(--oxblood); }
.foot .base{ display:flex; flex-wrap:wrap; gap:.75rem 2rem; justify-content:space-between;
  margin-top:clamp(2.25rem,4vw,3.25rem); padding-top:1.2rem; border-top:1px solid var(--rule-soft);
  font-family:var(--utility); font-weight:500; font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .k-lead-type,.t-lead,.t-close,.index-head{ grid-template-columns:1fr; }
  .k-lead .right{ padding-top:0; }
  .river article{ grid-template-columns:1fr; gap:1.25rem; }
  .river article:nth-child(even) .fig{ order:0; }
  .index li a{ grid-template-columns:2.5rem 1fr; }
  .index .d{ grid-column:2; }
  .gallery{ grid-template-columns:1fr; gap:0; }
  .gallery .col:nth-child(2){ padding-top:clamp(2.5rem,5vw,4.5rem); }
  .sband{ grid-template-columns:1fr; gap:1.5rem; }
  .sband .label .sticky{ position:static; }
  .sband .frames{ grid-template-columns:1fr 1fr; }
  .sband .frames figure:first-child{ grid-column:1 / -1; }
  .ledger .unit,.ledger.mirror .unit{ grid-template-columns:1fr; gap:1.5rem; }
  .ledger.mirror .unit .fig{ order:0; }
  .foot .cols{ grid-template-columns:1fr 1fr; }
  .season .inner{ grid-template-columns:1fr; }
}
@media (max-width:620px){
  .strip span:last-child{ display:none; }
  .tagline{ letter-spacing:.3em; }
  .trip{ grid-template-columns:1fr; }
  .trip img{ aspect-ratio:4/5; }
  .trip figure:nth-child(n+2){ display:none; }
  .sband .frames{ grid-template-columns:1fr; }
  .foot .cols{ grid-template-columns:1fr; }
}

/* ---------- THE EDIT ---------- */
.edit-head{ padding:clamp(2.75rem,6vw,5.25rem) 0 clamp(1.6rem,3vw,2.5rem); }
.edit-head h1{ font-family:var(--display); font-weight:400; font-size:clamp(2.05rem,3.5vw,3.5rem);
  line-height:1.05; letter-spacing:-.006em; margin:.75rem 0 0; }
.edit-head .stand{ margin-top:1.15rem; }
.edit-head .disclose{ font-family:var(--text); font-style:italic; font-weight:300; font-size:.815rem;
  line-height:1.65; color:var(--ink-soft); max-width:52ch; margin:1.6rem 0 0;
  padding-top:1rem; border-top:1px solid var(--rule-soft); }

.standard{ display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.standard > div{ padding:clamp(1.75rem,3.4vw,2.75rem) clamp(1.5rem,3vw,2.75rem)
  clamp(1.75rem,3.4vw,2.75rem) 0; }
.standard > div + div{ border-left:1px solid var(--rule); padding-left:clamp(1.5rem,3vw,2.75rem); }
.standard h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.05rem,1.5vw,1.25rem);
  line-height:1.28; margin:.7rem 0 0; }
.standard p{ font-family:var(--text); font-weight:300; font-size:.9rem; line-height:1.78;
  color:var(--ink-soft); margin:.7rem 0 0; }

.edits{ padding-top:clamp(2.5rem,5vw,4rem); }
.editcol{ display:grid; grid-template-columns:1fr 1.35fr; gap:clamp(2rem,4.2vw,4.25rem);
  align-items:start; padding:clamp(2.75rem,5.5vw,4.5rem) 0; border-top:1px solid var(--rule); }
.editcol:first-child{ border-top:0; padding-top:0; }
.editcol.flip{ grid-template-columns:1.35fr 1fr; }
.editcol.flip .fig{ order:2; }
.editcol .fig{ margin:0; }
.editcol .fig img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.editcol .fig .cap{ margin-top:.85rem; }
.editcol h2{ font-family:var(--text); font-weight:400; font-size:clamp(1.5rem,2.5vw,2.05rem);
  line-height:1.2; margin:.6rem 0 0; }
.editcol .body{ margin-top:.8rem; }

.items{ list-style:none; margin:clamp(1.4rem,2.4vw,1.9rem) 0 0; padding:0;
  border-top:1px solid var(--rule); }
.items li{ border-bottom:1px solid var(--rule-soft); }
.items li:last-child{ border-bottom:1px solid var(--rule); }
.items a{ display:grid; grid-template-columns:2.4rem 1fr 4.5rem; gap:.35rem 1.15rem;
  padding:.95rem 0; align-items:baseline; }
.items a:hover .nm{ color:var(--oxblood); }
.items .n{ font-family:var(--utility); font-weight:500; font-size:.58rem; letter-spacing:.18em;
  color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.items .nm{ font-family:var(--text); font-weight:400; font-size:1rem; line-height:1.35;
  transition:color .35s ease; }
.items .pr{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.14em;
  color:var(--ink-soft); font-variant-numeric:tabular-nums; text-align:right; }
.items .rs{ grid-column:2 / 4; font-family:var(--text); font-weight:300; font-size:.85rem;
  line-height:1.7; color:var(--ink-soft); max-width:48ch; }

/* text-only collection */
.editcol.textonly{ grid-template-columns:12.5rem 1fr; }
.editcol.textonly .items{ columns:2; column-gap:clamp(2rem,4.2vw,4.25rem); border-top:0; }
.editcol.textonly .items li{ break-inside:avoid; border-bottom:0; border-top:1px solid var(--rule-soft); }
.editcol.textonly .items li:first-child{ border-top:1px solid var(--rule); }
.editcol.textonly .items a{ grid-template-columns:2.4rem 1fr; padding:1rem 0; }
.editcol.textonly .items .rs{ grid-column:2 / 3; }

.allitems{ padding-top:clamp(3rem,6vw,5rem); }
.allitems .head{ display:grid; grid-template-columns:1fr auto; gap:1.25rem 2rem;
  align-items:end; padding-bottom:1.4rem; }
.allitems h2{ font-family:var(--display); font-weight:400; font-size:clamp(1.4rem,2.2vw,2rem);
  line-height:1.14; margin:.5rem 0 0; }
.allitems ul{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.allitems li{ border-bottom:1px solid var(--rule-soft); }
.allitems a{ display:grid; grid-template-columns:1.6fr 1fr 5rem; gap:.3rem 1.5rem;
  padding:.85rem 0; align-items:baseline; }
.allitems a:hover .nm{ color:var(--oxblood); }
.allitems .nm{ font-family:var(--text); font-weight:400; font-size:.98rem; transition:color .35s ease; }
.allitems .ct,.allitems .pr{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.allitems .pr{ text-align:right; }

@media (max-width:980px){
  .standard{ grid-template-columns:1fr; }
  .standard > div{ padding-right:0; border-top:1px solid var(--rule-soft); }
  .standard > div:first-child{ border-top:0; }
  .standard > div + div{ border-left:0; padding-left:0; }
  .editcol,.editcol.flip,.editcol.textonly{ grid-template-columns:1fr; gap:1.5rem; }
  .editcol.flip .fig{ order:0; }
  .editcol.textonly .items{ columns:1; }
}
@media (max-width:620px){
  .items a{ grid-template-columns:2.2rem 1fr; }
  .items .pr{ grid-column:2; text-align:left; }
  .items .rs{ grid-column:2 / 3; }
  .allitems a{ grid-template-columns:1fr auto; }
  .allitems .ct{ grid-column:1; }
}

/* ---------- RECIPES ---------- */
.rec-head{ padding:clamp(2.75rem,6vw,5.25rem) 0 clamp(1.6rem,3vw,2.5rem); }
.rec-head .ledger{ font-family:var(--utility); font-weight:500; font-size:.655rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); margin:0;
  transition:color .35s ease; }
a:hover > .ledger{ color:var(--oxblood); }
.rec-head h1{ font-family:var(--text); font-weight:300; font-size:clamp(2.15rem,3.5vw,3.5rem);
  line-height:1.05; letter-spacing:.03em; margin:.85rem 0 0; }
.rec-head .stand{ margin-top:1.15rem; }
.rec-head .count{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); margin:1.5rem 0 0; }

.rec-lead{ padding-top:clamp(2rem,4vw,3.25rem); }
.rec-lead figure{ margin:0; }
.rec-lead img{ width:100%; aspect-ratio:3/2; object-fit:cover; transition:opacity .5s ease; }
.rec-lead a:hover img{ opacity:.92; }
.rec-lead .type{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(1.75rem,4.2vw,4.25rem);
  align-items:start; padding-top:clamp(1.4rem,2.6vw,2rem); }
.rec-lead h2{ font-family:var(--text); font-weight:400; font-size:clamp(1.6rem,2.6vw,2.4rem);
  line-height:1.18; margin:.6rem 0 0; max-width:18ch; transition:color .35s ease; }
.rec-lead a:hover h2{ color:var(--oxblood); }
.rec-lead .meta{ margin-top:1.2rem; }

.coll{ padding:clamp(3rem,6vw,5rem) 0 0; border-top:1px solid var(--rule);
  margin-top:clamp(3rem,6vw,5rem); }
.coll-head{ display:grid; grid-template-columns:1fr auto; gap:1rem clamp(2rem,4vw,4rem);
  align-items:end; padding-bottom:clamp(1.5rem,3vw,2.25rem); }
.coll-head h2{ font-family:var(--text); font-weight:400; font-size:clamp(1.5rem,2.4vw,2.15rem);
  line-height:1.18; margin:.5rem 0 0; }
.coll-head .body{ margin-top:.6rem; max-width:48ch; }
.coll-head .n{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); font-variant-numeric:tabular-nums; }

.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.25rem,2.6vw,2.4rem); }
.rcard img{ width:100%; aspect-ratio:4/5; object-fit:cover; transition:opacity .5s ease; }
.rcard a:hover img{ opacity:.92; }
.rcard .eyebrow{ margin-top:.9rem; font-size:.6rem; }
.rcard h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.05rem,1.5vw,1.25rem);
  line-height:1.28; margin:.5rem 0 0; transition:color .35s ease; }
.rcard a:hover h3{ color:var(--oxblood); }
.rcard p{ font-family:var(--text); font-weight:300; font-size:.85rem; line-height:1.7;
  color:var(--ink-soft); margin:.5rem 0 0; }
.rcard .meta{ margin-top:.85rem; font-size:.58rem; }

.suppers{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4.2vw,4.25rem); }
.suppers img{ width:100%; aspect-ratio:3/2; object-fit:cover; transition:opacity .5s ease; }
.suppers a:hover img{ opacity:.92; }
.suppers h3{ font-family:var(--text); font-weight:400; font-size:clamp(1.4rem,2.1vw,1.8rem);
  line-height:1.22; margin:.55rem 0 0; transition:color .35s ease; }
.suppers a:hover h3{ color:var(--oxblood); }
.suppers .body{ max-width:46ch; }
.suppers .meta{ margin-top:1rem; }

.basic{ display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(2rem,4.2vw,4.25rem);
  align-items:start; }
.basic img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.basic .rail .cap{ margin-top:.85rem; }
.basic ol{ list-style:none; margin:0; padding:0; columns:2;
  column-gap:clamp(1.75rem,3.4vw,3rem); }
.basic li{ break-inside:avoid; border-top:1px solid var(--rule-soft); }
.basic li:first-child{ border-top:1px solid var(--rule); }
.basic a{ display:grid; grid-template-columns:2.4rem 1fr; gap:.25rem 1rem;
  padding:.95rem 0; align-items:baseline; }
.basic a:hover .t{ color:var(--oxblood); }
.basic .n{ font-family:var(--utility); font-weight:500; font-size:.58rem; letter-spacing:.18em;
  color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.basic .t{ font-family:var(--text); font-weight:400; font-size:1rem; line-height:1.3;
  transition:color .35s ease; }
.basic .d{ grid-column:2; font-family:var(--text); font-weight:300; font-size:.845rem;
  line-height:1.65; color:var(--ink-soft); }

.allrec{ padding:clamp(3rem,6vw,5rem) 0 0; border-top:1px solid var(--rule);
  margin-top:clamp(3rem,6vw,5rem); }
.allrec .head{ display:grid; grid-template-columns:1fr auto; gap:1rem 2rem; align-items:end;
  padding-bottom:1.3rem; }
.allrec h2{ font-family:var(--text); font-weight:400; font-size:clamp(1.4rem,2.2vw,1.95rem);
  line-height:1.18; margin:.5rem 0 0; }
.allrec ul{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.allrec li{ border-bottom:1px solid var(--rule-soft); }
.allrec a{ display:grid; grid-template-columns:1.7fr 1fr 4.5rem 5rem; gap:.3rem 1.5rem;
  padding:.85rem 0; align-items:baseline; }
.allrec a:hover .nm{ color:var(--oxblood); }
.allrec .nm{ font-family:var(--text); font-weight:400; font-size:.98rem; transition:color .35s ease; }
.allrec .ct,.allrec .tm,.allrec .sv{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
  font-variant-numeric:tabular-nums; }
.allrec .tm,.allrec .sv{ text-align:right; }

/* ---------- RECIPE DETAIL ---------- */
.r-open{ max-width:640px; margin:0 auto; padding:clamp(2rem,4vw,3.25rem) 0 0; }
.r-open h1{ font-family:var(--text); font-weight:400; font-size:clamp(1.9rem,3.4vw,2.6rem);
  line-height:1.16; letter-spacing:.006em; margin:.7rem 0 0; }
.r-open .dek{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:clamp(1.02rem,1.4vw,1.15rem); line-height:1.7; color:var(--ink-soft); margin:1rem 0 0; }
.r-open .meta{ margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid var(--rule-soft);
  display:flex; flex-wrap:wrap; gap:.5rem 1.6rem; }
.r-body{ max-width:640px; margin:0 auto; padding-top:clamp(1.75rem,3vw,2.4rem); }
.r-body p{ font-family:var(--text); font-weight:400; font-size:1.0625rem; line-height:1.85;
  color:var(--ink); margin:0; }
.r-body p + p{ text-indent:1.4em; }

.r-split{ display:grid; grid-template-columns:300px 1fr; gap:clamp(2rem,4.6vw,4.5rem);
  align-items:start; padding-top:clamp(2.5rem,5vw,4rem); margin-top:clamp(2.5rem,5vw,4rem);
  border-top:1px solid var(--rule); }
.r-ing h2,.r-method h2{ font-family:var(--utility); font-weight:500; font-size:.645rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 1.1rem; }
.r-ing .grp{ margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid var(--rule-soft); }
.r-ing .grp:first-of-type{ margin-top:0; padding-top:0; border-top:0; }
.r-ing .gl{ font-family:var(--text); font-style:italic; font-weight:300; font-size:.85rem;
  color:var(--ink-soft); margin:0 0 .7rem; }
.r-ing ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.r-ing li{ font-family:var(--text); font-weight:300; font-size:.94rem; line-height:1.5;
  font-variant-numeric:tabular-nums; }
.r-method{ max-width:640px; }
.r-method ol{ list-style:none; margin:0; padding:0; }
.r-method li{ display:grid; grid-template-columns:2.75rem 1fr; gap:1rem;
  padding:1.1rem 0; border-top:1px solid var(--rule-soft); }
.r-method li:first-child{ border-top:0; padding-top:0; }
.r-method .n{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.18em;
  color:var(--ink-soft); font-variant-numeric:tabular-nums; padding-top:.4rem; }
.r-method p{ font-family:var(--text); font-weight:400; font-size:1.0625rem; line-height:1.85;
  margin:0; }
.r-method figure{ margin:1.5rem 0 0; }
.r-method figure img{ width:100%; aspect-ratio:4/5; object-fit:cover; max-width:340px; }

.r-notes{ background:var(--band); margin-top:clamp(3rem,6vw,5rem);
  padding:clamp(2.5rem,5vw,4rem) 0; }
.r-notes .inner{ max-width:640px; margin:0 auto; padding:0 var(--gutter); }
.r-notes h2{ font-family:var(--utility); font-weight:500; font-size:.645rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 1.1rem; }
.r-notes p{ font-family:var(--text); font-weight:400; font-size:1rem; line-height:1.85; margin:0; }
.r-notes p + p{ margin-top:1.1rem; }

.r-nav{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,3rem);
  padding-top:1.4rem; margin-top:clamp(2.5rem,5vw,4rem); border-top:1px solid var(--rule); }
.r-nav .nx{ text-align:right; }
.r-nav h3{ font-family:var(--text); font-weight:400; font-size:1.1rem; line-height:1.3;
  margin:.5rem 0 0; transition:color .35s ease; }
.r-nav a:hover h3{ color:var(--oxblood); }

@media (max-width:980px){
  .rec-lead .type{ grid-template-columns:1fr; gap:1rem; }
  .cards{ grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,2.4rem) clamp(1.25rem,3vw,2rem); }
  .suppers{ grid-template-columns:1fr; gap:2rem; }
  .basic{ grid-template-columns:1fr; gap:1.75rem; }
  .basic ol{ columns:1; }
  .basic .rail img{ max-width:340px; }
  .r-split{ grid-template-columns:1fr; gap:2rem; }
  .allrec a{ grid-template-columns:1fr auto; }
  .allrec .ct{ grid-column:1; }
  .allrec .sv{ display:none; }
}
@media (max-width:620px){
  .cards{ grid-template-columns:1fr; }
  .r-nav{ grid-template-columns:1fr; }
  .r-nav .nx{ text-align:left; }
}

.rec-head .lockup{ font-family:var(--utility); font-weight:500; font-size:.655rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); margin:0;
  transition:color .35s ease; }
a:hover > .lockup{ color:var(--oxblood); }

.r-method figure{ grid-column:2; }
.r-open{ margin:0; }
.r-body{ margin:0; }

/* ---------- HOMEPAGE ---------- */
.hero-home{ display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1fr);
  min-height:clamp(620px,84vh,1000px); }
.hero-type{ display:flex; flex-direction:column;
  padding:clamp(2.6rem,4.6vw,4.6rem) var(--gutter); }
.hero-type-inner{ margin:auto 0; }
.hero-head{ font-family:var(--display); font-weight:400; font-size:clamp(2.05rem,3.5vw,3.5rem);
  line-height:1.09; letter-spacing:-.006em; text-wrap:balance; max-width:15ch;
  margin:clamp(1.3rem,2vw,1.9rem) 0 0; }
.hero-credit{ margin:2.4rem 0 0; padding-top:1.1rem; border-top:1px solid var(--rule-soft);
  max-width:38ch; font-family:var(--text); font-style:italic; font-weight:300;
  font-size:.815rem; line-height:1.65; color:var(--ink-soft); }
.hero-figure{ position:relative; margin:0; overflow:hidden; background:var(--band); }
.hero-figure img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:50% 43%; }
.hero-type .rulelink{ margin-top:clamp(1.8rem,2.6vw,2.4rem); }

.home-ledger{ background:var(--band); border-top:1px solid var(--rule);
  padding:clamp(3.75rem,7.2vw,7rem) 0 clamp(3.25rem,6vw,5.5rem); }
.home-ledger .intro{ text-align:center; }
.home-ledger .mark{ font-family:var(--text); font-weight:300;
  font-size:clamp(1.75rem,3.5vw,2.9rem); line-height:1.1; letter-spacing:.045em;
  margin:0; white-space:nowrap; }
.home-ledger .tagline-l{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:clamp(1rem,1.5vw,1.15rem); color:var(--ink-soft);
  margin:clamp(1rem,1.6vw,1.35rem) 0 0; }
.home-ledger .note{ font-family:var(--text); font-weight:400; font-size:.94rem;
  line-height:1.85; color:var(--ink-soft); max-width:56ch; margin:1.4rem auto 0; }
.home-letters{ display:grid; grid-template-columns:1.05fr 1fr;
  gap:clamp(2rem,4.2vw,4.25rem); align-items:start; margin-top:clamp(3rem,6vw,5.25rem); }
.home-letters .lead-l img{ width:100%; aspect-ratio:3/2; object-fit:cover;
  transition:opacity .5s ease; }
.home-letters a:hover img{ opacity:.92; }
.home-letters .lead-l .eyebrow{ margin-top:clamp(1.3rem,2vw,1.7rem); }
.lt-title{ font-family:var(--text); font-weight:400; font-size:clamp(1.4rem,2.3vw,1.95rem);
  line-height:1.22; margin:.7rem 0 0; transition:color .35s ease; }
a:hover .lt-title{ color:var(--oxblood); }
.lt-x{ font-family:var(--text); font-weight:300; font-size:.94rem; line-height:1.82;
  color:var(--ink-soft); max-width:42ch; margin:.85rem 0 0; }
.home-letters .stack-l{ border-left:1px solid var(--rule);
  padding-left:clamp(2rem,4.2vw,4.25rem); align-self:stretch; }
.home-letters .stack-l article{ border-bottom:1px solid var(--rule); }
.home-letters .stack-l article:last-child{ border-bottom:0; }
.home-letters .stack-l a{ display:grid;
  grid-template-columns:clamp(118px,14vw,186px) 1fr; gap:clamp(1.1rem,2vw,1.8rem);
  align-items:start; padding:clamp(1.5rem,2.6vw,2.2rem) 0; }
.home-letters .stack-l article:first-child a{ padding-top:0; }
.home-letters .stack-l img{ width:100%; aspect-ratio:1/1; object-fit:cover;
  transition:opacity .5s ease; }
.home-letters .stack-l .lt-title{ font-size:clamp(1.1rem,1.6vw,1.35rem); margin-top:.55rem; }
.home-letters .stack-l .lt-x{ font-size:.875rem; line-height:1.75; margin-top:.6rem; }
.home-ledger .foot-l{ display:flex; flex-wrap:wrap; gap:.9rem 2rem;
  justify-content:space-between; align-items:baseline;
  margin-top:clamp(2.75rem,5vw,4.25rem); padding-top:1.35rem;
  border-top:1px solid var(--rule); }

.home-depts{ padding:clamp(3.5rem,7vw,6rem) 0 0; }
.home-depts .row3{ display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:clamp(2rem,4.2vw,4.25rem); align-items:start; }
.home-depts img{ width:100%; object-fit:cover; transition:opacity .5s ease; }
.home-depts a:hover img{ opacity:.92; }
.home-depts .d-k img{ aspect-ratio:4/5; }
.home-depts .d-t img{ aspect-ratio:1/1; }
.home-depts .d-g img{ aspect-ratio:3/2; }
.home-depts h3{ font-family:var(--display); font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.14; margin:.6rem 0 0;
  transition:color .35s ease; }
.home-depts a:hover h3{ color:var(--oxblood); }
.home-depts .eyebrow{ margin-top:1.1rem; }
.home-depts p.b{ font-family:var(--text); font-weight:300; font-size:.875rem;
  line-height:1.75; color:var(--ink-soft); margin:.55rem 0 0; max-width:38ch; }

.breather{ padding:clamp(3.5rem,7vw,6rem) 0 0; }
.breather img{ width:100%; aspect-ratio:21/9; object-fit:cover; }
.breather .cap{ margin-top:.9rem; }

.home-recipes{ padding:clamp(3.5rem,7vw,6rem) 0 0; }
.home-recipes .grid{ display:grid; grid-template-columns:1.3fr 1fr;
  gap:clamp(2rem,4.2vw,4.25rem); align-items:start; }
.home-recipes .lead-r img{ width:100%; aspect-ratio:3/2; object-fit:cover;
  transition:opacity .5s ease; }
.home-recipes a:hover img{ opacity:.92; }
.home-recipes .idx{ border-top:1px solid var(--rule); }
.home-recipes .idx a{ display:grid; grid-template-columns:1fr auto; gap:1rem;
  padding:1.05rem 0; border-bottom:1px solid var(--rule); align-items:baseline; }
.home-recipes .idx .t{ font-family:var(--text); font-weight:400;
  font-size:clamp(1.05rem,1.5vw,1.3rem); transition:color .35s ease; }
.home-recipes .idx a:hover .t{ color:var(--oxblood); }
.home-recipes .idx .m{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft);
  font-variant-numeric:tabular-nums; }
.home-recipes .idx .rulelink{ margin-top:1.6rem; }

.home-edit{ padding:clamp(3.5rem,7vw,6rem) 0 0; }
.home-edit .head{ display:grid; grid-template-columns:1fr auto;
  gap:1.25rem clamp(2rem,4vw,4rem); align-items:end; padding-bottom:1.5rem; }
.home-edit h2{ font-family:var(--display); font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2.25rem); line-height:1.14; margin:.55rem 0 0; }
.home-edit .cats{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:0;
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.home-edit .cats a{ padding:clamp(1.6rem,3vw,2.4rem) clamp(1.5rem,3vw,2.75rem)
  clamp(1.6rem,3vw,2.4rem) 0; }
.home-edit .cats a + a{ border-left:1px solid var(--rule);
  padding-left:clamp(1.5rem,3vw,2.75rem); }
.home-edit .cats h3{ font-family:var(--text); font-weight:400;
  font-size:clamp(1.15rem,1.7vw,1.45rem); margin:.65rem 0 0; transition:color .35s ease; }
.home-edit .cats a:hover h3{ color:var(--oxblood); }
.home-edit .cats p{ font-family:var(--text); font-weight:300; font-size:.875rem;
  line-height:1.7; color:var(--ink-soft); margin:.55rem 0 0; }

.sunday{ background:var(--band); border-top:1px solid var(--rule);
  margin-top:clamp(3.5rem,7vw,6rem); padding:clamp(3rem,6vw,5rem) 0; }
.sunday .inner{ max-width:520px; margin:0 auto; padding:0 var(--gutter); text-align:center; }
.sunday h2{ font-family:var(--text); font-weight:300; font-size:clamp(1.5rem,2.6vw,2.1rem);
  letter-spacing:.02em; margin:.8rem 0 0; }
.sunday p.b{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:.98rem; line-height:1.75; color:var(--ink-soft); margin:.9rem 0 0; }
.sunday .signup{ margin:1.8rem auto 0; max-width:400px; }
.sunday .thanks{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:.95rem; color:var(--ink); margin:1.2rem 0 0; display:none; }
.sunday .thanks.show{ display:block; }
.bd-frame{ display:none; }

/* ---------- LETTERS ---------- */
.let-head{ padding:clamp(2.75rem,6vw,5.25rem) 0 clamp(1.6rem,3vw,2.5rem); text-align:center; }
.let-head .markline{ margin-top:clamp(1rem,1.8vw,1.4rem); }
.let-head h1{ font-family:var(--text); font-weight:300; font-size:clamp(2rem,3.4vw,3.25rem);
  line-height:1.08; letter-spacing:.04em; margin:0; white-space:nowrap; }
.let-head .tagline-l{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:clamp(1rem,1.5vw,1.15rem); color:var(--ink-soft); margin:1.1rem 0 0; }
.let-head .count{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin:1.4rem 0 0; }
.let-lead{ padding-top:clamp(1.5rem,3vw,2.5rem); }
.let-lead img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.season-block{ padding-top:clamp(2.75rem,5.5vw,4.5rem); }
.season-block .s-head{ display:flex; align-items:baseline; gap:1.25rem;
  padding-bottom:1.1rem; border-bottom:1px solid var(--rule); }
.season-block .s-head h2{ font-family:var(--text); font-weight:300;
  font-size:clamp(1.4rem,2.2vw,1.9rem); letter-spacing:.04em; margin:0; }
.season-block .s-head .n{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
.let-row{ border-bottom:1px solid var(--rule-soft); }
.let-row a{ display:grid; grid-template-columns:6.5rem 1fr auto;
  gap:.4rem clamp(1.25rem,2.5vw,2.5rem); padding:1.35rem 0; align-items:baseline; }
.let-row .no{ font-family:var(--utility); font-weight:500; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);
  font-variant-numeric:tabular-nums; }
.let-row .t{ font-family:var(--text); font-weight:400;
  font-size:clamp(1.15rem,1.7vw,1.45rem); line-height:1.3; transition:color .35s ease; }
.let-row a:hover .t{ color:var(--oxblood); }
.let-row .x{ grid-column:2; font-family:var(--text); font-weight:300; font-size:.9rem;
  line-height:1.7; color:var(--ink-soft); max-width:62ch; }
.let-row .arr{ font-family:var(--utility); font-weight:500; font-size:.62rem;
  color:var(--ink-soft); }

.letter-page{ background:var(--band); }
.letter-open{ max-width:640px; margin:0 auto;
  padding:clamp(2.75rem,6vw,5rem) var(--gutter) 0; text-align:center; }
.letter-open h1{ font-family:var(--text); font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.6rem); line-height:1.16; letter-spacing:.006em;
  margin:.8rem 0 0; text-wrap:balance; }
.letter-open .rule-c{ width:132px; height:1px; background:var(--rule);
  margin:clamp(1.4rem,2.4vw,2rem) auto 0; }
.epigraph{ max-width:640px; margin:0 auto;
  padding:clamp(1.6rem,3vw,2.4rem) var(--gutter) 0; text-align:center; }
.epigraph p{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:1.02rem; line-height:1.8; color:var(--ink-soft); margin:0; }
.epigraph .src{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);
  font-style:normal; margin-top:.9rem; display:block; }
.letter-body{ max-width:640px; margin:0 auto;
  padding:clamp(2rem,3.6vw,3rem) var(--gutter) 0; }
.letter-body p{ font-family:var(--text); font-weight:400; font-size:1.0625rem;
  line-height:1.85; color:var(--ink); margin:0; }
.letter-body p + p{ text-indent:1.4em; }
.letter-sig{ max-width:640px; margin:0 auto;
  padding:clamp(1.8rem,3vw,2.5rem) var(--gutter) 0; }
.letter-sig p{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:1rem; line-height:1.7; color:var(--ink-soft); margin:0; }
.letter-nav{ max-width:640px; margin:0 auto;
  padding:clamp(2.5rem,5vw,4rem) var(--gutter) 0; }
.letter-nav .grid{ display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,3vw,3rem); padding-top:1.4rem; border-top:1px solid var(--rule); }
.letter-nav .nx{ text-align:right; }
.letter-nav h3{ font-family:var(--text); font-weight:400; font-size:1.05rem;
  line-height:1.35; margin:.5rem 0 0; transition:color .35s ease; }
.letter-nav a:hover h3{ color:var(--oxblood); }
.letter-page .sunday{ margin-top:clamp(3rem,6vw,5rem); border-top:1px solid var(--rule);
  background:var(--band); }
.letter-page .foot{ background:var(--stone); padding-top:0; margin-top:0; }
.letter-page .foot-wrap{ background:var(--stone); margin-top:0; }

/* ---------- ABOUT ---------- */
.about-open{ display:grid; grid-template-columns:.85fr 1fr;
  gap:clamp(2rem,4.4vw,4.5rem); align-items:center;
  padding:clamp(2.75rem,6vw,5rem) 0 clamp(2.75rem,5.5vw,4.5rem); }
.about-open img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.about-open h1{ font-family:var(--display); font-weight:400;
  font-size:clamp(1.9rem,3.2vw,3.1rem); line-height:1.1; letter-spacing:-.006em;
  max-width:14ch; text-wrap:balance; margin:.8rem 0 0; }
.about-body{ max-width:640px; margin:0 auto;
  padding:clamp(2.5rem,5vw,4rem) var(--gutter) 0; }
.about-body p{ font-family:var(--text); font-weight:400; font-size:1.0625rem;
  line-height:1.85; margin:0; }
.about-body p + p{ text-indent:1.4em; }
.about-body .sig{ font-family:var(--text); font-style:italic; margin-top:1.6rem;
  text-indent:0; color:var(--ink-soft); }
.pullq{ max-width:640px; margin:0 auto;
  padding:clamp(2rem,4vw,3rem) var(--gutter) 0; }
.pullq p{ font-family:var(--text); font-style:italic; font-weight:300;
  font-size:clamp(1.25rem,2vw,1.5rem); line-height:1.7; color:var(--ink); margin:0; }
.two-names{ display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2rem,4.4vw,4.5rem); margin-top:clamp(3rem,6vw,5rem);
  padding-top:clamp(2.5rem,5vw,4rem); border-top:1px solid var(--rule); }
.two-names > div + div{ border-left:1px solid var(--rule);
  padding-left:clamp(2rem,4.4vw,4.5rem); }
.two-names .n1{ font-family:var(--display); font-weight:400;
  font-size:clamp(1.6rem,2.6vw,2.25rem); line-height:1.1; margin:.7rem 0 0; }
.two-names .n2{ font-family:var(--text); font-weight:300;
  font-size:clamp(1.6rem,2.6vw,2.25rem); line-height:1.1; letter-spacing:.03em;
  margin:.7rem 0 0; }
.two-names p.d{ font-family:var(--text); font-weight:300; font-size:.94rem;
  line-height:1.8; color:var(--ink-soft); max-width:38ch; margin:1rem 0 0; }

/* ---------- SEARCH ---------- */
.search-head{ padding:clamp(2.75rem,6vw,5.25rem) 0 0; }
.search-head h1{ font-family:var(--display); font-weight:400;
  font-size:clamp(1.9rem,3.2vw,3.1rem); margin:.75rem 0 0; }
.search-bar{ display:flex; align-items:flex-end; gap:1.25rem; max-width:640px;
  margin-top:clamp(1.6rem,3vw,2.4rem); border-bottom:1px solid var(--rule);
  padding-bottom:.7rem; transition:border-color .35s ease; }
.search-bar:focus-within{ border-color:var(--ink); }
.search-bar input{ flex:1 1 auto; min-width:0; border:0; background:transparent;
  padding:0; font-family:var(--text); font-weight:300;
  font-size:clamp(1.2rem,2vw,1.5rem); color:var(--ink); }
.search-bar input:focus{ outline:none; }
.search-bar input::placeholder{ color:var(--ink-soft); opacity:.7; }
.results{ margin-top:clamp(2rem,4vw,3rem); max-width:900px; }
.results .r-row{ border-bottom:1px solid var(--rule-soft); }
.results a{ display:grid; grid-template-columns:9rem 1fr; gap:.35rem 1.5rem;
  padding:1.15rem 0; align-items:baseline; }
.results .k{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); }
.results .t{ font-family:var(--text); font-weight:400; font-size:1.1rem;
  transition:color .35s ease; }
.results a:hover .t{ color:var(--oxblood); }
.results .x{ grid-column:2; font-family:var(--text); font-weight:300; font-size:.875rem;
  line-height:1.7; color:var(--ink-soft); max-width:62ch; }
.results .none{ font-family:var(--text); font-style:italic; font-weight:300;
  color:var(--ink-soft); padding:1.5rem 0; }

/* ---------- MOBILE NAV ---------- */
.nav-mobile{ display:none; }
.menu-overlay{ position:fixed; inset:0; background:var(--stone); z-index:400;
  padding:1.4rem clamp(1.375rem,5vw,2rem); overflow-y:auto; display:none; }
.menu-overlay.open{ display:block; }
.menu-overlay .m-top{ display:flex; justify-content:space-between; align-items:baseline; }
.menu-overlay .m-close{ border:0; background:transparent; padding:0 0 .35rem; cursor:pointer;
  font-family:var(--utility); font-weight:500; font-size:.665rem; letter-spacing:.21em;
  text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--ink); }
.menu-overlay .grp{ margin-top:2.2rem; }
.menu-overlay .grp .lbl{ font-family:var(--utility); font-weight:500; font-size:.6rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft);
  margin:0 0 1.1rem; }
.menu-overlay .grp a{ display:block; font-family:var(--display); font-weight:400;
  font-size:2rem; line-height:1.15; margin-top:1rem; }
.menu-overlay .grp a:first-of-type{ margin-top:0; }

@media (max-width:620px){
  .nav ul{ display:none; }
  .nav-mobile{ display:flex; justify-content:space-between; align-items:center;
    padding:.95rem var(--gutter); }
  .nav-mobile button, .nav-mobile a{ border:0; background:transparent; padding:0;
    cursor:pointer; font-family:var(--utility); font-weight:500; font-size:.665rem;
    letter-spacing:.21em; text-transform:uppercase; color:var(--ink); }
}

/* ---------- responsive extras ---------- */
@media (max-width:980px){
  .hero-home{ grid-template-columns:1fr; min-height:0; }
  .hero-figure{ order:-1; height:clamp(360px,58vh,620px); }
  .home-letters{ grid-template-columns:1fr; }
  .home-letters .stack-l{ border-left:0; border-top:1px solid var(--rule);
    padding-left:0; padding-top:clamp(1.6rem,4vw,2.2rem); }
  .home-depts .row3{ grid-template-columns:1fr; }
  .home-recipes .grid{ grid-template-columns:1fr; }
  .home-edit .cats{ grid-template-columns:1fr; }
  .home-edit .cats a{ padding-right:0; }
  .home-edit .cats a + a{ border-left:0; border-top:1px solid var(--rule); padding-left:0; }
  .about-open{ grid-template-columns:1fr; }
  .two-names{ grid-template-columns:1fr; }
  .two-names > div + div{ border-left:0; border-top:1px solid var(--rule);
    padding-left:0; padding-top:clamp(2rem,4vw,3rem); }
  .let-row a{ grid-template-columns:1fr; }
  .let-row .x{ grid-column:1; }
  .let-row .arr{ display:none; }
  .results a{ grid-template-columns:1fr; }
  .results .x{ grid-column:1; }
  .breather img{ aspect-ratio:4/5; }
}

/* ---------- print (recipes & letters) ---------- */
@media print{
  .strip,.nav,.foot,.sunday,.menu-overlay,.r-nav,.letter-nav,.bleed{ display:none !important; }
  body{ background:#fff; color:#000; }
  .masthead{ padding:0 0 1rem; }
  .wordmark{ font-size:22pt; }
  .tagline{ display:none; }
  .r-split{ grid-template-columns:220px 1fr; gap:2rem; }
  .r-notes{ background:#fff; border-top:1px solid #999; }
  a{ text-decoration:none; color:#000; }
}

/* ---------- refinement pass ---------- */
.hero-stand{ font-size:1.0925rem; line-height:1.8; max-width:46ch; }
.masthead a{ display:inline-block; }

/* condensed scroll bar */
.condensed{ position:fixed; top:0; left:0; right:0; z-index:350;
  transform:translateY(-101%); transition:transform .3s ease;
  background:var(--stone); border-bottom:1px solid var(--rule);
  display:flex; justify-content:space-between; align-items:center;
  height:56px; padding:0 var(--gutter); }
.condensed.show{ transform:none; }
.condensed .c-name{ font-family:var(--display); font-weight:400; font-size:1.3rem;
  letter-spacing:-.01em; }
.condensed .c-nav{ display:flex; gap:clamp(1rem,2.2vw,2.1rem); }
.condensed .c-nav a{ font-family:var(--utility); font-weight:500; font-size:.62rem;
  letter-spacing:.19em; text-transform:uppercase; color:var(--ink-soft);
  transition:color .35s ease; padding:.6rem 0; }
.condensed .c-nav a:hover{ color:var(--oxblood); }
.condensed .c-menu{ display:none; border:0; background:transparent; padding:.6rem 0;
  cursor:pointer; font-family:var(--utility); font-weight:500; font-size:.665rem;
  letter-spacing:.21em; text-transform:uppercase; color:var(--ink); }
@media (max-width:980px){
  .condensed .c-nav{ display:none; }
  .condensed .c-menu{ display:block; }
}

/* homepage entrance (approved concept) */
@keyframes sg-rise{ from{ opacity:0; transform:translateY(15px); } to{ opacity:1; transform:none; } }
@keyframes sg-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes sg-settle{ from{ transform:scale(1.075); } to{ transform:none; } }
body.home .strip, body.home .masthead, body.home .nav,
body.home .hero-type-inner > *, body.home .hero-credit{
  opacity:0; animation:sg-rise .95s cubic-bezier(.2,.75,.3,1) forwards; }
body.home .strip{ animation-delay:.05s; }
body.home .masthead{ animation-delay:.14s; }
body.home .nav{ animation-delay:.42s; }
body.home .hero-type-inner > *:nth-child(1){ animation-delay:.56s; }
body.home .hero-type-inner > *:nth-child(2){ animation-delay:.64s; }
body.home .hero-type-inner > *:nth-child(3){ animation-delay:.72s; }
body.home .hero-type-inner > *:nth-child(4){ animation-delay:.8s; }
body.home .hero-credit{ animation-delay:.92s; }
body.home .hero-figure{ opacity:0; animation:sg-fade 1.1s ease forwards .2s; }
body.home .hero-figure img{ animation:sg-settle 2.2s cubic-bezier(.16,.84,.3,1) forwards; }
@media (prefers-reduced-motion: reduce){
  body.home .strip, body.home .masthead, body.home .nav,
  body.home .hero-type-inner > *, body.home .hero-credit,
  body.home .hero-figure{ opacity:1; animation:none; }
  body.home .hero-figure img{ animation:none; }
  .condensed{ transition:none; }
}

/* touch targets */
.nav-mobile button, .nav-mobile a{ padding:.7rem .35rem; }
.foot ul a{ display:inline-block; padding:.15rem 0; }
.nav ul a{ display:inline-block; padding:.2rem 0; }

/* three-card recipe row keeps proportion */
.cards-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:980px){ .cards-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .cards-3{ grid-template-columns:1fr; } }

/* print: hide condensed bar too */
@media print{ .condensed, .nav-mobile{ display:none !important; } }
.r-method li > div{ min-width:0; }
.r-method li > div p{ font-family:var(--text); font-weight:400; font-size:1.0625rem; line-height:1.85; margin:0; }

/* ---------- v2: placeholders (the shot list) ---------- */
.ph{ background:var(--band); border:1px solid var(--rule); display:flex;
  flex-direction:column; align-items:center; justify-content:center; gap:.7rem;
  text-align:center; padding:1.5rem; width:100%; }
.ph .pl{ font-family:var(--utility); font-weight:500; font-size:.58rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); }
.ph .ps{ font-family:var(--text); font-style:italic; font-weight:300; font-size:.85rem;
  line-height:1.6; color:var(--ink-soft); max-width:26ch; }
.ph.r45{ aspect-ratio:4/5; } .ph.r32{ aspect-ratio:3/2; } .ph.r11{ aspect-ratio:1/1; }

/* back to top */
.toplink{ padding-top:clamp(2.5rem,5vw,4rem); text-align:center; }

/* three-way nav on detail pages */
.r-nav.three{ grid-template-columns:1fr auto 1fr; align-items:start; }
.r-nav .mid{ text-align:center; padding-top:.15rem; }
.letter-nav .grid.three{ grid-template-columns:1fr auto 1fr; align-items:start; }
.letter-nav .mid{ text-align:center; padding-top:.15rem; }

/* solo (text-only) ledger feature */
.ledger .unit.solo{ display:block; max-width:640px; margin-left:auto; margin-right:auto;
  text-align:center; }
.ledger .unit.solo .body{ margin-left:auto; margin-right:auto; }

/* v2 footer */
.foot2{ border-top:1px solid var(--rule); margin-top:clamp(3.5rem,7vw,6rem);
  padding:clamp(2.75rem,5vw,4.25rem) 0 clamp(2.25rem,4vw,3.5rem); }
.foot2 .top{ display:grid; grid-template-columns:1fr auto; gap:2rem clamp(2rem,5vw,5rem);
  align-items:start; }
.foot2 .fm{ font-family:var(--display); font-weight:400; font-size:1.75rem; line-height:1; margin:0; }
.foot2 .sg{ max-width:360px; }
.foot2 h4{ font-family:var(--utility); font-weight:500; font-size:.6rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--ink-soft); margin:0 0 .9rem; }
.foot2 .links{ display:flex; flex-wrap:wrap; gap:.7rem clamp(1.1rem,2.4vw,2.2rem);
  margin-top:clamp(2rem,4vw,3rem); padding-top:1.3rem; border-top:1px solid var(--rule-soft); }
.foot2 .links a{ font-family:var(--utility); font-weight:500; font-size:.635rem;
  letter-spacing:.21em; text-transform:uppercase; padding:.2rem 0; transition:color .35s ease; }
.foot2 .links a:hover{ color:var(--oxblood); }
.foot2 .base{ display:flex; flex-wrap:wrap; gap:.75rem 2rem; justify-content:space-between;
  margin-top:1.6rem; padding-top:1.2rem; border-top:1px solid var(--rule-soft);
  font-family:var(--utility); font-weight:500; font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); }
@media (max-width:760px){ .foot2 .top{ grid-template-columns:1fr; } }
@media print{ .foot2, .toplink{ display:none !important; } }
