/* ICAP — The Field · icap2014.com */
:root{
  --ink:#1B1E38; --ink-70:rgba(27,30,56,.72); --ink-50:rgba(27,30,56,.55); --ink-35:rgba(27,30,56,.38);
  --paper:#F5F3EE; --card:#FFFFFF; --deep:#14162B; --paper-on-deep:rgba(245,243,238,.75);
  --line:rgba(27,30,56,.16); --line-soft:rgba(27,30,56,.1);
  --coral:#C25A3A; --green:#4F8A6B; --blue:#4A72A8; --gold:#C08A2E; --violet:#7A5EA6;
  --acc:var(--coral);
  --serif:'Source Serif 4',Georgia,serif; --sans:'IBM Plex Sans',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 19px/1.65 var(--sans);text-rendering:optimizeLegibility}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--coral)}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0;text-wrap:pretty}
.wrap{max-width:1360px;margin-inline:auto;padding-inline:clamp(20px,4vw,52px)}
.kicker{font:600 13px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--coral);margin:0 0 14px}
.mono{font-family:var(--mono)}
.tag{display:inline-block;font:600 12px/1 var(--mono);letter-spacing:.1em;padding:6px 10px;border-radius:4px;color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,transparent)}
.ev{font:500 12.5px/1.4 var(--mono);color:var(--ink-70);white-space:nowrap}
.ev b{font-weight:600;letter-spacing:.06em}
.ev-strong b{color:var(--green)} .ev-moderate b{color:var(--gold)} .ev-mixed b{color:var(--coral)}

/* ---------- header / footer ---------- */
.site-head{border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:5}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px 28px;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:14px;white-space:nowrap}
.brand .logo{font:700 26px/1 var(--serif);letter-spacing:-.01em}
.brand .strap{font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}
.site-nav{display:flex;gap:6px 22px;flex-wrap:wrap;font:500 15.5px/1.4 var(--sans)}
.site-nav a{padding:4px 0;border-bottom:2px solid transparent}
.site-nav a[aria-current]{border-bottom-color:var(--acc,var(--coral));color:var(--acc,var(--coral))}
.nav-index{font:500 12.5px var(--mono);letter-spacing:.06em;border:1px solid var(--line);border-radius:99px;padding:8px 15px;white-space:nowrap}
.site-foot{background:var(--deep);color:var(--paper-on-deep);margin-top:0}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-block:48px 36px}
.foot-grid .logo{font:700 24px/1 var(--serif);color:#F5F3EE;margin:0 0 10px}
.foot-grid p{margin:0;font-size:15px;line-height:1.6}
.foot-col{display:flex;flex-direction:column;gap:10px;font-size:15px}
.foot-col a{color:rgba(245,243,238,.85)}
.foot-col a:hover{color:#E5785B}
.foot-col .fh{font:600 11.5px var(--mono);letter-spacing:.14em;color:rgba(245,243,238,.45);text-transform:uppercase;margin-bottom:4px}
.foot-line{border-top:1px solid rgba(245,243,238,.16);padding-block:20px;display:flex;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;font-size:14.5px}
.foot-line .domain{font-family:var(--mono);color:rgba(245,243,238,.6)}

/* ---------- buttons ---------- */
.btn{display:inline-block;font:600 16px/1.2 var(--sans);padding:15px 26px;border-radius:6px;background:var(--ink);color:var(--paper)}
.btn:hover{background:var(--coral);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink-35)}
.btn.ghost:hover{border-color:var(--coral);color:var(--coral)}

/* ---------- text / structure components ---------- */
.lead{font:400 clamp(21px,2vw,24px)/1.55 var(--sans);color:var(--ink-70);text-wrap:pretty;margin:0 0 1.4em}
.pullquote{border-block:2.5px solid var(--ink);margin:2.2em 0;padding:1.2em .2em}
.pullquote p{font:600 italic clamp(24px,2.4vw,30px)/1.35 var(--serif);margin:0;text-wrap:pretty}
.blockquote{margin:2em 0;padding:.4em 0 .4em 1.4em;border-left:3px solid var(--acc)}
.blockquote p{font:400 italic 21px/1.55 var(--serif);margin:0 0 .5em}
.blockquote cite{font:500 14px var(--mono);font-style:normal;color:var(--ink-50)}
.callout{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px 26px;margin:2em 0}
.callout::before{content:"KEY TAKEAWAY";display:block;font:600 11px var(--mono);letter-spacing:.16em;color:var(--acc);margin-bottom:8px}
.callout p{margin:0;font-size:17.5px;line-height:1.6}
.note{background:color-mix(in srgb,var(--gold) 10%,transparent);border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:8px;padding:16px 20px;font-size:16.5px;line-height:1.6;color:var(--ink-70)}
.note::before{content:"NOTE — ";font:600 12px var(--mono);letter-spacing:.1em;color:var(--gold)}

/* ---------- data / comparison ---------- */
table{border-collapse:collapse;width:100%;font-size:16.5px}
.versus,.datatable{margin:2em 0;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.versus caption,.datatable caption{caption-side:top;text-align:left;font:600 12px var(--mono);letter-spacing:.14em;color:var(--ink-50);padding:16px 20px 0;background:var(--card)}
.versus th,.datatable th{font:600 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:14px 20px;border-bottom:2px solid var(--ink);background:var(--card)}
.versus td,.datatable td{padding:13px 20px;border-bottom:1px solid var(--line-soft);vertical-align:top}
.versus tr:last-child td,.datatable tr:last-child td{border-bottom:0}
.versus td:first-child{font-weight:600;font-family:var(--serif);font-size:17px}
.datatable tbody tr:nth-child(even){background:rgba(27,30,56,.03)}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:2em 0}
.statblock{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--acc);border-radius:8px;padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.stat-num{font:700 clamp(30px,3vw,40px)/1 var(--serif);color:var(--acc);letter-spacing:-.01em}
.stat-label{font-size:15px;line-height:1.5;color:var(--ink-70)}
.timeline{list-style:none;margin:2em 0;padding:0;border-left:2.5px solid var(--acc)}
.timeline li{position:relative;padding:0 0 22px 28px}
.timeline li:last-child{padding-bottom:4px}
.timeline li::before{content:"";position:absolute;left:-7.25px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:3px solid var(--acc)}
.t-when{display:block;font:600 13.5px var(--mono);letter-spacing:.06em;color:var(--acc);margin-bottom:2px}
.t-what{font-size:17px;line-height:1.55}
.chart{margin:2.2em 0;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:24px 24px 16px}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{font:400 14.5px/1.55 var(--sans);color:var(--ink-50);padding-top:12px;border-top:1px solid var(--line-soft);margin-top:14px}
.chart .bar-label{font:500 13px var(--mono);fill:var(--ink)}
.chart .bar-val{font:600 13px var(--mono);fill:var(--ink)}
.chart .bar-rect{fill:var(--acc)}
.chart .axis{stroke:var(--line);stroke-width:1}

/* ---------- media / figures ---------- */
.article-figure,.map-figure{margin:2.2em 0}
.article-figure img{width:100%;border-radius:8px}
.article-figure figcaption,.map-figure figcaption,.gallery figcaption{font:400 14.5px/1.55 var(--sans);color:var(--ink-50);margin-top:10px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:2.2em 0}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:8px}
.map-figure .map-slot{aspect-ratio:16/7;border:1.5px dashed var(--ink-35);border-radius:8px;background:color-mix(in srgb,var(--blue) 7%,transparent)}

/* ---------- cards / references ---------- */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:2em 0}
.profile-card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px;display:flex;flex-direction:column;gap:8px}
.profile-card h3{font-size:20px}
.profile-card .p-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:6px}
.profile-card.no-photo::before{content:"";width:44px;height:5px;background:var(--acc);border-radius:3px;margin-bottom:8px}
.p-role{font:600 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:0}
.profile-card p{margin:0;font-size:15.5px;line-height:1.55;color:var(--ink-70)}
.p-links{margin-top:auto;padding-top:8px}
.p-links a{font:600 14px var(--sans);color:var(--coral)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:2em 0}
.org-card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px 20px;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center}
.org-card:hover{border-color:var(--coral)}
.org-logo{grid-row:span 2;width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--deep)}
.org-card.no-logo{grid-template-columns:1fr}
.org-card.no-logo .org-logo{display:none}
.org-name{font:600 16.5px var(--sans)}
.org-host{font:400 13px var(--mono);color:var(--ink-50)}
.entity-ref{font-weight:600;border-bottom:2px solid color-mix(in srgb,var(--coral) 45%,transparent)}
.entity-ref:hover{border-bottom-color:var(--coral)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:2em 0}
.further-grid a{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px 20px;font:600 16.5px/1.4 var(--serif);display:flex;flex-direction:column;gap:6px}
.further-grid a:hover{border-color:var(--coral)}
.further-grid .fg-tag{font:600 11px var(--mono);letter-spacing:.1em;color:var(--acc)}

/* ---------- sponsors (dark boxes) ---------- */
.sponsor{background:var(--deep);border-radius:8px;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:22px 24px;min-height:104px;border:1px solid rgba(245,243,238,.1)}
.sponsor:hover{border-color:#E5785B}
.sponsor img{max-height:44px;width:auto;max-width:82%;object-fit:contain;object-position:left center}
.sponsor-blurb{font:400 14.5px/1.5 var(--sans);color:rgba(245,243,238,.72);min-height:1em}
.sponsor-blurb:empty{display:none}
.ack-featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.ack-quiet{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.ack-quiet .sponsor{min-height:74px;padding:16px 18px}
.ack-quiet .sponsor img{max-height:30px}

/* ---------- homepage rooms ---------- */
.hero{padding-block:clamp(44px,6vw,84px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,60px);align-items:center}
.hero h1{font-size:clamp(42px,4.6vw,64px);letter-spacing:-.015em;margin-bottom:20px}
.hero .lead{max-width:36em}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.hero-photo figcaption{font:400 13.5px var(--mono);color:var(--ink-50);margin-top:10px}
.how{background:var(--deep);color:var(--paper-on-deep);padding-block:clamp(44px,5vw,64px)}
.how h2,.how h3{color:#F5F3EE}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:26px}
.how-step .n{font:500 14px var(--mono);color:rgba(245,243,238,.45);display:block;margin-bottom:10px}
.how-step h3{font-size:26px;margin-bottom:10px}
.how-step p{margin:0;font-size:16.5px;line-height:1.6}
.ev-legend{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px;padding-top:28px;border-top:1px solid rgba(245,243,238,.15)}
.ev-legend .cell{font-size:15px;line-height:1.55}
.ev-legend b{display:block;font:600 13px var(--mono);letter-spacing:.1em;margin-bottom:4px}
.section-band{padding-block:clamp(44px,5vw,64px)}
.band-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.band-head h2{font-size:clamp(30px,3vw,38px)}
.band-head .more{font:600 13px var(--mono);letter-spacing:.08em;color:var(--coral)}
.field-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.field-card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.field-card .bar{height:5px;background:var(--acc)}
.field-card .in{padding:20px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.field-card .no{font:500 12px var(--mono);color:var(--ink-35)}
.field-card h3{font-family:var(--sans);font-weight:600;font-size:18px}
.field-card p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-70);flex:1}
.field-card .ct{font:500 12px var(--mono);color:var(--ink-50)}
.entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.entry-card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.entry-card:hover{border-color:var(--acc)}
.entry-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.entry-card .in{padding:20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.entry-card h3{font-size:21.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.entry-card .brief{margin:0;font-size:15.5px;line-height:1.55;color:var(--ink-70);flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.entry-card .meta{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line-soft);padding-top:12px}
.origin-strip{background:var(--card);border-block:1px solid var(--line)}
.origin-strip .wrap{display:flex;align-items:center;gap:28px;padding-block:30px;flex-wrap:wrap}
.origin-strip .os-lede{font:600 italic 21px var(--serif);white-space:nowrap}
.origin-strip p{margin:0;flex:1 1 340px;font-size:16px;line-height:1.6;color:var(--ink-70)}
.origin-strip .more{font:600 15px var(--sans);color:var(--coral);white-space:nowrap}
.index-teaser{border-block:1px solid var(--line);background:color-mix(in srgb,var(--ink) 4%,var(--paper))}
.index-teaser .wrap{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-block:22px;flex-wrap:wrap}
.index-teaser p{margin:0;font:600 18px var(--serif)}

/* ---------- category pages ---------- */
.cat-head{border-bottom:1px solid var(--line);padding-block:clamp(40px,5vw,60px) clamp(28px,3vw,40px)}
.cat-head h1{font-size:clamp(38px,4vw,52px);margin:14px 0}
.cat-head .lead{max-width:42em;margin:0}
.cat-chip{display:inline-flex;align-items:center;gap:10px;font:600 12.5px var(--mono);letter-spacing:.12em;color:var(--acc)}
.cat-chip::before{content:"";width:13px;height:13px;border-radius:3px;background:var(--acc)}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-bottom:1px solid var(--line)}
.cat-list a{display:grid;grid-template-columns:56px minmax(0,1fr) 300px;gap:12px 24px;padding-block:26px;align-items:baseline}
.cat-list .idx{font:500 14px var(--mono);color:var(--ink-35)}
.cat-list h2{font-size:clamp(21px,2.2vw,25px);line-height:1.3;margin-bottom:6px}
.cat-list a:hover h2{color:var(--coral)}
.cat-list p{margin:0;font-size:16px;line-height:1.55;color:var(--ink-70)}
.cat-list .cl-meta{display:flex;flex-direction:column;gap:6px;align-items:flex-end;text-align:right}
.az-list .cat-list a{grid-template-columns:minmax(0,1fr) 300px}

/* ---------- article pages ---------- */
.art-head{padding-block:clamp(36px,4vw,56px) 0}
.art-head .crumbs{font:600 12.5px var(--mono);letter-spacing:.12em;color:var(--ink-50);margin-bottom:18px;text-transform:uppercase}
.art-head .crumbs a{color:var(--ink-50)} .art-head .crumbs a:hover{color:var(--coral)}
.art-head h1{font-size:clamp(36px,4.2vw,56px);letter-spacing:-.012em;max-width:22em;margin-bottom:18px}
.art-head .lead{max-width:40em}
.art-meta{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 34px}
.art-meta span{font:500 12px var(--mono);letter-spacing:.06em;border:1px solid var(--line);padding:7px 13px;border-radius:99px;color:var(--ink-70)}
.art-hero{margin:0}
.art-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:10px}
.art-hero figcaption{font:400 14.5px var(--mono);color:var(--ink-50);margin-top:10px}
.article-body{max-width:none;padding-block:clamp(32px,4vw,52px);display:grid;grid-template-columns:1fr minmax(0,78ch) 1fr;}
.article-body>*{grid-column:2}
.article-body p{margin:0 0 1.3em}
.article-body>h2{font-size:clamp(26px,2.6vw,32px);margin:1.6em 0 .7em;position:relative}
.article-body>h2 .sec-n{position:absolute;right:calc(100% + 18px);top:.18em;font:500 15px var(--mono);color:var(--acc)}
.article-body>h3{font-size:22px;margin:1.4em 0 .6em}
.article-body ul,.article-body ol{margin:0 0 1.3em;padding-left:1.3em}
.article-body li{margin-bottom:.45em}
.dropcap::first-letter{font:700 3.42em/0.82 var(--serif);float:left;padding:.06em .12em 0 0;color:var(--acc)}
.breakout{grid-column:1/-1}
.keyfacts{grid-column:1/-1;background:var(--deep);color:var(--paper-on-deep);border-radius:10px;padding:clamp(24px,3vw,36px);margin:2.2em 0}
.keyfacts .kf-h{font:600 12px var(--mono);letter-spacing:.16em;color:#E5785B;margin:0 0 18px}
.keyfacts dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px 32px;margin:0}
.keyfacts dt{font:600 16px var(--sans);color:#F5F3EE}
.keyfacts dd{margin:2px 0 0;font-size:15px;line-height:1.55}
.ev-verdict{border:1px solid var(--line);border-left:5px solid var(--acc);background:var(--card);border-radius:8px;padding:20px 24px;margin:2.2em 0}
.ev-verdict .evh{font:600 11.5px var(--mono);letter-spacing:.16em;margin-bottom:8px;color:var(--acc)}
.ev-verdict p{margin:0;font-size:16.5px}
.related{border-top:1px solid var(--line);padding-block:36px 56px}
.related h2{font-size:26px;margin-bottom:18px}
.related-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.related-links a{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px 20px;font:600 17px/1.35 var(--serif);height:100%}
.related-links a:hover{border-color:var(--coral)}
.related-links .fg-tag{font:600 11px var(--mono);letter-spacing:.1em;color:var(--acc)}

/* ---------- expander (CSS-only) ---------- */
details.expander>summary{cursor:pointer;list-style:none;font:600 14px var(--mono);letter-spacing:.08em;color:var(--coral);padding:16px 0}
details.expander>summary::-webkit-details-marker{display:none}
details.expander>summary::after{content:" ↓"}
details.expander[open]>summary::after{content:" ↑"}

/* ---------- pages ---------- */
.page-body{max-width:78ch;padding-block:clamp(32px,4vw,52px)}
.page-body h1{font-size:clamp(36px,4vw,50px);margin-bottom:18px}
.err{padding-block:clamp(64px,10vw,120px);text-align:center}
.err .code{font:700 clamp(90px,14vw,160px)/1 var(--serif);color:var(--coral)}

/* ---------- styleguide ---------- */
.sg-section{border-top:1px solid var(--line);padding-block:40px}
.sg-section>h2{font-size:30px;margin-bottom:8px}
.sg-note{font:500 13px var(--mono);color:var(--ink-50);margin:0 0 24px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .field-grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr}
  .how-grid,.ev-legend{grid-template-columns:1fr;gap:22px}
  .cat-list a,.az-list .cat-list a{grid-template-columns:minmax(0,1fr)}
  .cat-list .idx{display:none}
  .cat-list .cl-meta{flex-direction:row;align-items:center;text-align:left}
  .article-body{grid-template-columns:minmax(0,1fr)}
  .article-body>h2 .sec-n{position:static;display:block;margin-bottom:4px}
  .origin-strip .os-lede{white-space:normal}
}
@media (max-width:600px){
  body{font-size:17.5px}
  .versus,.datatable{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .versus thead,.versus tbody,.datatable thead,.datatable tbody{display:table;width:100%;min-width:480px}
  .chart{overflow-x:auto}
  .chart svg{min-width:560px}
  .field-grid{grid-template-columns:1fr 1fr}
  .entry-card h3{min-height:0}
  .foot-grid{grid-template-columns:1fr;gap:26px}
  .art-hero img{aspect-ratio:16/10}
}
@media (max-width:420px){
  .field-grid{grid-template-columns:1fr}
}

/* icap-final */
.sponsor img{filter:none !important}
.sponsor-blurb{display:-webkit-box !important;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img{object-fit:contain!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. */
.ack-featured .sponsor.sponsor img{height:38px!important}
.ack-quiet .sponsor.sponsor img{height:38px!important}


/* sp-mark-size: the marks used about two-thirds of the tile and left the rest empty —
   207px of a 302px featured tile at 38px tall, 132px of a 199px quiet tile at 30px.
   Both given the tile's width and a proportionate height. */
.ack-featured .sponsor.sponsor img{height:52px!important;max-width:100%!important;width:auto!important}
.ack-quiet .sponsor.sponsor img{height:40px!important;max-height:40px!important;
  max-width:100%!important;width:auto!important}
/* ⚠️ max-height CONSTRAINS height WHATEVER THE !important. The quiet mark stayed at 30px because
   Design's max-height:30px still applied — raising `height` alone did nothing. Both are set. */

/* op-footer-compact: the footer printed 13 rows for 13 link(s) in
   2 list(s) — 1862px at 390, 22% of the whole page. Design's own
   good case (evbb) has no list at all: its footer links simply flow inline, 479px in total.
   Here the lists flow inline too, and the group holder takes two columns,
   measured 1862 -> 1664px (11% shorter) with no new overflow. Both shapes were
   tried and the shorter one kept — two columns helps a wide group set and hurts a narrow one.
   Phone widths only; the desktop footer is untouched. */
@media (max-width:640px){
  footer ul,footer ol{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;column-gap:min(1.53vw,22px)!important;row-gap:8px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
  footer [class*=grid],footer [class*=index],footer [class*=cols]{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:22px}
}

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1587px at 390, 19% of the whole page. Two columns bring it to
   849px (47% shorter). Checked before writing: no new overflow, smallest mark still
   117px wide, longest blurb 2 lines, tile heights 128-144px.
   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.
   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 (.ack-featured, .ack-quiet), 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){
  .ack-featured{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important}
    .ack-featured > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .ack-featured > * *{min-width:0!important;max-width:100%}
    .ack-featured img,.ack-featured svg{max-width:100%;height:auto}
  .ack-quiet{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important}
    .ack-quiet > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .ack-quiet > * *{min-width:0!important;max-width:100%}
    .ack-quiet img,.ack-quiet svg{max-width:100%;height:auto}

}

/* op-odd-tier-lead: .ack-quiet (7 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){
  .ack-quiet:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-page-overflow: the page scrolled sideways at 320 — a.brand reached
   352px in a 320px screen (+31px), inside
   div.wrap. Remedy: let the words break. Structural only, no spacing value of mine;
   tried in order and this is the first that held, with the page's visible copy unchanged.
   Phone widths only — desktop is re-measured after writing and must not move. */
@media (max-width:360px){
  a.brand,a.brand *{white-space:normal!important;overflow-wrap:anywhere!important}
}

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(div.art-head.wrap > figure.art-hero > img,
  div.entry-grid > a.entry-card > img,
  div.wrap > figure.hero-photo > img){height:auto}
/* op-img-dims:end */
