/* arts-culinaires.com — La Gestuelle */
:root{
  --paper:#131009; --panel:#1F1A11; --panel2:#26200f;
  --ink:#ECE4D4; --gold:#E3BD6D; --brass:#b57a17;
  --muted:#b3a487; --faint:#8a7c62; --hair:rgba(227,189,109,.16);
  --ff-display:'GFS Didot',Didot,'Times New Roman',serif;
  --ff-body:'Spectral',Georgia,serif;
  --ff-ui:'Archivo',system-ui,sans-serif;
  --ff-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ff-body);font-size:19px;line-height:1.7;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none}
a:hover{color:#f2d59a;text-decoration:underline;text-underline-offset:3px}
h1,h2,h3{font-family:var(--ff-display);font-weight:400;line-height:1.15;margin:0;text-wrap:pretty}
p{margin:0;text-wrap:pretty}

/* utilities */
.wrap{max-width:1200px;margin-inline:auto;padding-inline:24px}
.state-rule{height:2px;background:var(--brass);width:100%;border:0;margin:0}
.kicker{font-family:var(--ff-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin:0 0 14px}
.kicker a{color:var(--brass)}

/* ============ masthead ============ */
.masthead{text-align:center;padding:44px 24px 0}
.wordmark{font-family:var(--ff-display);font-size:clamp(21px,5.4vw,38px);letter-spacing:.34em;text-indent:.34em;color:var(--ink);text-transform:uppercase;display:inline-block;max-width:100%}
.wordmark:hover{color:var(--gold);text-decoration:none}
.standing{font-style:italic;color:var(--muted);font-size:16px;margin-top:8px}
.site-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;padding:22px 24px 20px;font-family:var(--ff-ui);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase}
.site-nav a{color:var(--ink)}
.site-nav a:hover,.site-nav a[aria-current]{color:var(--gold)}
.masthead.compact{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;text-align:left;padding:26px 0 0;max-width:1200px;margin-inline:auto;padding-inline:24px}
.masthead.compact .wordmark{font-size:20px}
.masthead.compact .site-nav{padding:6px 0 18px;justify-content:flex-end;gap:10px 22px}

/* ============ colophon / sponsors ============ */
.colophon{max-width:1200px;margin:6px auto 0;padding:18px 24px 30px;border-top:1px solid var(--hair)}
.colophon-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 26px;margin-bottom:16px}
.colophon-head p{font-family:var(--ff-body);font-style:italic;color:var(--faint);font-size:14.5px;max-width:64ch}
.sponsors{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-auto-flow:dense;gap:10px}
.sponsor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:var(--panel);border:1px solid var(--hair);min-height:74px;padding:12px 18px;text-align:center}
.sponsor:hover{border-color:rgba(227,189,109,.4);text-decoration:none}
.sponsor img{max-width:88%;max-height:34px;object-fit:contain;opacity:.9}
.sponsor.feat{grid-column:span 2;min-height:104px}
.sponsor.feat img{max-height:52px;max-width:82%}
.sponsor-blurb{font-family:var(--ff-ui);font-size:11.5px;line-height:1.45;color:var(--muted)}
.sponsor-blurb:empty{display:none}
@media (max-width:330px){.sponsor.feat{grid-column:span 1}}

/* ============ hero ============ */
.hero{position:relative;overflow:hidden}
.hero img{width:100%;height:clamp(440px,64vh,660px);object-fit:cover}
.hero-veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(19,16,9,.94) 0%,rgba(19,16,9,.45) 42%,rgba(19,16,9,.15) 100%)}
.hero-copy{position:absolute;left:0;right:0;bottom:0;padding:0 24px 46px;max-width:1200px;margin-inline:auto}
.hero-copy h1{font-size:clamp(34px,5.4vw,62px);max-width:18ch;color:var(--ink)}
.hero-copy p{margin-top:14px;font-size:clamp(16px,1.8vw,19px);font-style:italic;color:var(--muted);max-width:52ch}
.hero-copy .go{display:inline-block;margin-top:18px;font-family:var(--ff-ui);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}

/* ============ homepage bands ============ */
.band{padding:64px 24px;max-width:1200px;margin-inline:auto}
.statement{max-width:840px}
.statement p{font-size:clamp(21px,2.6vw,27px);line-height:1.55;font-weight:300}
.statement strong{font-weight:500;color:var(--gold)}

.houses{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:26px}
.house{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--hair);color:var(--ink)}
.house:hover{text-decoration:none;border-color:rgba(227,189,109,.45)}
.house img{aspect-ratio:4/3;object-fit:cover;width:100%}
.house-body{display:flex;flex-direction:column;flex:1;padding:16px 16px 18px;gap:8px}
.house-no{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.24em;color:var(--brass)}
.house h3{font-size:23px}
.house:hover h3{color:var(--gold)}
.house p{font-size:14.5px;line-height:1.55;color:var(--muted)}
.house-meta{margin-top:auto;padding-top:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.2em;color:var(--faint)}

.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:44px;align-items:center}
.feature img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--hair)}
.feature h2{font-size:clamp(30px,3.6vw,44px)}
.feature .dek{font-style:italic;font-size:19px;color:var(--muted);margin-top:14px}
.feature .byline{margin-top:16px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.feature .go{display:inline-block;margin-top:20px;font-family:var(--ff-ui);font-size:13px;letter-spacing:.18em;text-transform:uppercase}

.closing{position:relative;overflow:hidden}
.closing img{width:100%;height:300px;object-fit:cover;opacity:.55}
.closing-copy{position:absolute;inset:0;display:grid;place-items:center;background:rgba(19,16,9,.55)}
.closing-copy p{font-family:var(--ff-display);font-size:clamp(22px,3vw,32px);color:var(--ink);text-align:center;padding:0 24px}

/* ============ footer ============ */
.site-footer{border-top:1px solid var(--hair);margin-top:0;background:var(--panel)}
.footer-inner{max-width:1200px;margin-inline:auto;padding:44px 24px 30px;display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(auto-fit,minmax(150px,1fr));gap:30px}
.footer-desc .wordmark{font-size:17px}
.footer-desc p{margin-top:12px;font-size:14px;color:var(--muted);max-width:38ch}
.footer-col h4{font-family:var(--ff-mono);font-weight:500;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin:0 0 12px}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer-col a{color:var(--muted);font-family:var(--ff-body);font-size:15.5px}
.footer-col a:hover{color:var(--gold)}
.footer-base{border-top:1px solid var(--hair);padding:16px 24px;text-align:center;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.2em;color:var(--faint);text-transform:uppercase}

/* ============ category pages ============ */
.cat-hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:44px;align-items:center;padding:56px 24px;max-width:1200px;margin-inline:auto}
.cat-hero img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--hair)}
.cat-hero h1{font-size:clamp(34px,4.4vw,54px)}
.cat-hero .intro{margin-top:18px;font-size:19px;color:var(--muted);line-height:1.65}
.cat-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}
.cat-list li a{display:grid;grid-template-columns:280px 1fr;gap:24px;background:var(--panel);border:1px solid var(--hair);color:var(--ink);min-height:100%}
.cat-list li a:hover{text-decoration:none;border-color:rgba(227,189,109,.45)}
.cat-list img{width:100%;height:100%;min-height:176px;object-fit:cover;aspect-ratio:16/10}
.cl-body{display:flex;flex-direction:column;padding:20px 24px 18px;gap:8px}
.cl-body h3{font-size:26px}
.cat-list li a:hover h3{color:var(--gold)}
.cl-dek{font-size:15px;color:var(--muted);line-height:1.6;max-width:70ch}
.cl-meta{margin-top:auto;padding-top:12px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.other-houses{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline}
.other-houses a{font-family:var(--ff-ui);font-size:13px;letter-spacing:.16em;text-transform:uppercase}

/* ============ article pages ============ */
.article-head{max-width:860px;margin-inline:auto;padding:54px 24px 30px;text-align:center}
.article-head h1{font-size:clamp(34px,4.6vw,56px)}
.article-head .subtitle{margin-top:14px;font-family:var(--ff-display);font-size:clamp(18px,2vw,23px);color:var(--muted)}
.article-head .byline{margin-top:18px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.article-hero{margin:0 auto;max-width:1200px;padding:0 24px}
.article-hero img{width:100%;max-height:620px;object-fit:cover;border:1px solid var(--hair)}
.article-hero figcaption{margin-top:8px;text-align:right;font-family:var(--ff-ui);font-size:11.5px;color:var(--faint)}

.prose{max-width:1080px;margin-inline:auto;padding:40px 24px 8px}
.prose>p,.prose>h2,.prose>h3{max-width:70ch;margin-inline:auto}
.prose>p{font-size:20px;margin-bottom:26px}
.prose>h2{font-size:clamp(26px,3vw,34px);margin:44px auto 20px;padding-top:26px;border-top:1px solid var(--hair)}
.prose>p.lead{font-size:clamp(21px,2.4vw,25px);line-height:1.6;font-weight:300;color:var(--ink);margin-bottom:34px}
.prose strong{color:var(--gold);font-weight:600}
.prose em{color:inherit}

/* components (break wider than the measure) */
.pullquote{margin:44px auto;padding:26px 0;border-top:2px solid var(--brass);border-bottom:2px solid var(--brass);max-width:820px}
.pullquote p{font-family:var(--ff-display);font-size:clamp(22px,3vw,30px);line-height:1.35;color:var(--gold);text-align:center}
.blockquote{margin:36px auto;max-width:70ch;padding-left:22px;border-left:2px solid var(--brass)}
.blockquote p{font-size:20px;font-style:italic}
.blockquote cite{display:block;margin-top:10px;font-family:var(--ff-mono);font-style:normal;font-size:11px;letter-spacing:.16em;color:var(--faint);text-transform:uppercase}
.callout{margin:40px auto;max-width:920px;background:var(--panel);border:1px solid var(--hair);border-top:2px solid var(--brass);padding:24px 28px}
.callout h3{font-family:var(--ff-mono);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:14px}
.callout p{font-size:17px;color:var(--ink)}
.callout ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.callout li{font-size:16.5px;line-height:1.6;color:var(--muted);padding-left:18px;position:relative}
.callout li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--brass)}
.callout li strong{color:var(--ink);font-weight:600;display:block}
.note{margin:34px auto;max-width:70ch;font-size:16.5px;color:var(--muted);border:1px dashed rgba(227,189,109,.35);padding:16px 20px}
.note::before{content:"Note — ";font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}

table.versus,table.datatable{width:100%;max-width:960px;margin:40px auto;border-collapse:collapse;background:var(--panel);border:1px solid var(--hair)}
.versus caption,.datatable caption{caption-side:top;text-align:left;font-family:var(--ff-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);padding:0 2px 12px}
.versus th,.datatable th{font-family:var(--ff-ui);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);text-align:left;padding:14px 18px;border-bottom:1px solid var(--brass)}
.versus td,.datatable td{padding:14px 18px;font-size:16px;line-height:1.55;color:var(--muted);border-bottom:1px solid var(--hair);vertical-align:top}
.versus td:first-child,.datatable td:first-child{color:var(--ink);font-weight:500;font-family:var(--ff-body)}
.versus tr:last-child td,.datatable tr:last-child td{border-bottom:0}
.swatch{display:inline-block;width:13px;height:13px;border:1px solid var(--brass);margin-right:9px;vertical-align:baseline;transform:translateY(1px)}

.statrow{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:40px auto;max-width:920px}
.statblock{flex:1 1 160px;background:var(--panel);border:1px solid var(--hair);padding:22px 18px;text-align:center}
.stat-num{display:block;font-family:var(--ff-display);font-size:46px;color:var(--gold);line-height:1}
.stat-label{display:block;margin-top:10px;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:1.6}

ol.timeline{list-style:none;margin:40px auto;padding:0;max-width:820px;counter-reset:tl}
.timeline li{position:relative;padding:0 0 26px 34px;border-left:2px solid var(--brass);margin-left:8px}
.timeline li:last-child{padding-bottom:4px}
.timeline li::before{content:"";position:absolute;left:-6px;top:.5em;width:10px;height:10px;background:var(--paper);border:2px solid var(--gold)}
.t-when{display:block;font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.t-what{display:block;font-size:16.5px;line-height:1.6;color:var(--muted)}

figure.chart{margin:40px auto;max-width:920px;background:var(--panel);border:1px solid var(--hair);padding:24px}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{margin-top:12px;font-family:var(--ff-ui);font-size:12.5px;color:var(--faint)}

.article-figure{margin:44px auto;max-width:1000px}
.article-figure img{width:100%;object-fit:cover;border:1px solid var(--hair)}
.article-figure figcaption{margin-top:10px;font-size:14.5px;font-style:italic;color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:44px auto;max-width:1000px}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--hair)}
.gallery figcaption{margin-top:8px;font-size:13px;font-style:italic;color:var(--muted)}

.photo-well{min-height:340px;background:var(--panel);border:1px dashed rgba(227,189,109,.4);display:grid;place-items:center}
.photo-well::after{content:"PHOTOGRAPH — FILLED FROM THE LIBRARY";font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.24em;color:var(--faint)}

.map-figure{margin:44px auto;max-width:1000px}
.map-slot{min-height:360px;background:var(--panel);border:1px dashed rgba(227,189,109,.4);display:grid;place-items:center}
.map-slot::after{content:none;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.24em;color:var(--faint);text-align:center;padding:0 20px}
.map-slot.filled{min-height:0;border:0;background:none;display:block}
.map-slot.filled::after{content:none}
.map-pin{cursor:pointer}
.map-pin text{transition:fill .15s ease,letter-spacing .15s ease}
.map-pin circle{transition:r .18s ease,opacity .18s ease,stroke-width .18s ease}
a.map-pin:hover text,a.map-pin:focus text{fill:#E3BD6D}
a.map-pin:hover circle[fill="#E3BD6D"],a.map-pin:focus circle[fill="#E3BD6D"]{r:8}
a.map-pin:hover circle[fill="none"],a.map-pin:focus circle[fill="none"]{r:17;opacity:1;stroke-width:2}
a.map-pin:focus{outline:none}
g.map-pin.static:hover circle[fill="none"]{opacity:.85}
.map-figure figcaption{margin-top:10px;font-size:14.5px;font-style:italic;color:var(--muted)}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:40px auto;max-width:920px}
.profile-card{background:var(--panel);border:1px solid var(--hair);padding:24px 26px}
.profile-card .p-photo{width:76px;height:76px;object-fit:cover;border:1px solid var(--hair);margin-bottom:14px}
.profile-card h3{font-size:24px;margin-bottom:4px}
.p-role{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:12px}
.profile-card p{font-size:15px;line-height:1.6;color:var(--muted)}
.p-links{margin-top:12px}
.p-attr{margin-top:10px;font-size:12px;color:var(--faint)}

.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:36px auto;max-width:920px}
.org-card{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--hair);padding:14px 16px;color:var(--ink)}
.org-card:hover{text-decoration:none;border-color:rgba(227,189,109,.45)}
.org-logo{width:38px;height:38px;object-fit:contain;background:var(--panel2);flex:none}
.org-card.no-logo .org-logo{display:none}
.org-name{font-family:var(--ff-ui);font-size:14px;font-weight:600;display:block}
.org-host{font-family:var(--ff-mono);font-size:10.5px;color:var(--faint);display:block}
.entity-ref{border-bottom:1px solid rgba(227,189,109,.4)}

.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:36px auto;max-width:960px}
.further-grid a{background:var(--panel);border:1px solid var(--hair);padding:18px 20px;font-family:var(--ff-body);font-size:17px;color:var(--ink)}
.further-grid a:hover{border-color:rgba(227,189,109,.45);color:var(--gold);text-decoration:none}

/* related / prev-next */
.article-end{max-width:1080px;margin-inline:auto;padding:20px 24px 56px}
.related-links{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.related-links a{display:flex;flex-direction:column;gap:8px;height:100%;background:var(--panel);border:1px solid var(--hair);padding:20px 22px;color:var(--ink)}
.related-links a:hover{text-decoration:none;border-color:rgba(227,189,109,.45)}
.related-links .rl-title{font-family:var(--ff-display);font-size:21px;line-height:1.25}
.related-links a:hover .rl-title{color:var(--gold)}
.related-links .rl-meta{margin-top:auto;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.prevnext{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding-top:22px;border-top:1px solid var(--hair);font-size:16px}
.prevnext a{max-width:44ch}
.prevnext .pn-dir{display:block;font-family:var(--ff-mono);font-size:10px;letter-spacing:.2em;color:var(--faint);text-transform:uppercase;margin-bottom:6px}
.prevnext .next{text-align:right;margin-left:auto}

/* 404 */
.notfound{min-height:52vh;display:grid;place-items:center;text-align:center;padding:60px 24px}
.notfound h1{font-size:clamp(38px,6vw,64px)}
.notfound p{margin-top:16px;color:var(--muted);font-size:19px}

/* ============ responsive ============ */
@media (max-width:900px){
  .feature,.cat-hero{grid-template-columns:1fr;gap:24px}
  .footer-inner{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .footer-desc{grid-column:1/-1}
}
@media (max-width:720px){
  body{font-size:17.5px}
  .wordmark{letter-spacing:.2em;text-indent:.2em}
  .footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .prose>p{font-size:18.5px}
  .cat-list li a{grid-template-columns:1fr}
  .cat-list img{aspect-ratio:16/9;min-height:0}
  .band{padding:48px 20px}
  .masthead.compact{justify-content:center;text-align:center}
  .masthead.compact .site-nav{justify-content:center}
  .versus,.datatable{display:block;overflow-x:auto}
  .map-slot.filled svg text{font-size:34px}
  .prevnext{flex-direction:column}
  .prevnext .next{text-align:left;margin-left:0}
}


/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* sp-track: a 4.5:1 median wordmark needs ~200px at a readable height, so a 150px track cropped the
   marks and clipped the copy. Raising the track makes the grid reflow to fewer, wider columns —
   never force an ITEM wider than its track, which is what made them overlap. */
.sponsors{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))!important}
.sponsors .sponsor{min-width:0;max-width:100%;padding:20px 18px}
.sponsor-blurb{padding:10px 14px 2px}
/* sp-mobile: grid-auto-flow:dense with mixed spans collapses some tracks to ~102px on a phone, far
   under what a wordmark needs. One column below 720px — fewer, full-width marks beat more, unreadable
   ones. */
@media (max-width:720px){
  .sponsors{grid-template-columns:1fr!important;grid-auto-flow:row!important}
  .sponsors .sponsor{grid-column:auto!important;grid-row:auto!important}
}

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.sponsors .sponsor.sponsor img{height:38px!important;display:block!important;width:175px!important;max-width:100%!important;flex:none!important}


/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1545px at 390, 22% of the whole page. Two columns bring it to
   933px (40% shorter). Checked before writing: no new overflow, smallest mark still
   124px wide, longest blurb 4 lines, tile heights 134-151px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.sponsors), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .sponsors{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:10px!important}
    .sponsors > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsors > * *{min-width:0!important;max-width:100%}
    .sponsors img,.sponsors svg{max-width:100%;height:auto}
  .sponsors .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .sponsors (11 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsors:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-article-width: the article column was capped at 700px (80 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through max-width 70ch (declared in .prose > p, .prose > h2, .prose > h3) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.prose > :is(p:not([class])){max-width:min(894px, 100%)!important}
}
@media (min-width:1600px){
  div.prose > :is(p:not([class])){max-width:min(clamp(894px, 62.083vw, 1073px), 100%)!important}
  div.prose > :is(p:not([class])){font-size:clamp(20px,1.3889vw,24.0px)!important}
}
/* op-article-width:end */

/* op-article-head: the article header followed the text column (700px) and was left behind when the text went to 894px. Operator: "article header page with title + meta info that are super shrinked". Its containers now follow the text again by the text's own factor. */
@media (min-width:1024px){
  div.article-head{max-width:min(942px, 100%)!important}
}
@media (min-width:1600px){
  div.article-head{max-width:min(calc(clamp(894px, 62.083vw, 1073px) + 48px), 100%)!important}
}
/* op-article-head:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--ff-display); font-weight: 400; line-height: 1.15; margin: 0px; text-wrap: pretty;}
.house h2:where(.rt-h3){font-size: 23px;}
.house:hover h2:where(.rt-h3){color: var(--gold);}
.cl-body h2:where(.rt-h3){font-size: 26px;}
.cat-list li a:hover h2:where(.rt-h3){color: var(--gold);}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article > figure.article-hero > img,
  body > section.band.feature > img,
  body > section.cat-hero > img,
  body > section.closing > img,
  body > section.hero > img,
  div.houses > a.house > img,
  div.prose > figure.article-figure > img,
  li > a > img){height:auto}
/* op-img-dims:end */
