/* ============================================================
   CATALYST Foundation - shared design system
   One stylesheet for every page. Edit here, not in the markup.
   ============================================================ */

:root{
  --ink:#0B181D;
  --ink-soft:#16282F;
  --graphite:#47585F;
  --graphite-lt:#5C6D73;
  --paper:#EEF0ED;
  --paper-2:#E6E9E5;
  --white:#FFFFFF;
  --brass:#7E6127;
  --brass-lt:#C6A25C;
  --signal:#2A6F7B;
  --signal-lt:#5FA8B3;
  --rule:rgba(11,24,29,.14);
  --rule-soft:rgba(11,24,29,.07);
  --rule-dk:rgba(238,240,237,.16);
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --disp:"Fraunces",Georgia,serif;
  --pad:clamp(20px,5vw,72px);
  --maxw:1240px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:300;
  font-size:clamp(15px,.55vw + 13.4px,17px);line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--ink);color:var(--paper);padding:10px 16px;font-family:var(--mono);font-size:12px}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:0;
}
.eyebrow.on-dark{color:var(--brass-lt)}
.h2{
  font-family:var(--disp);font-optical-sizing:auto;
  font-weight:400;font-size:clamp(30px,3.4vw,46px);line-height:1.1;
  letter-spacing:-.015em;margin:0;
}
.h3{
  font-family:var(--disp);font-weight:400;font-size:clamp(20px,1.9vw,27px);
  line-height:1.2;letter-spacing:-.012em;margin:0;
}
.lede{
  font-size:clamp(17px,1.1vw + 13px,21px);line-height:1.55;
  color:var(--graphite);font-weight:300;max-width:62ch;margin:0;
}
.sec--dark .lede{color:rgba(238,240,237,.72)}
.prose p{margin:0 0 18px;max-width:66ch}
.prose p:last-child{margin-bottom:0}
.prose strong{font-weight:500;color:var(--ink)}
.sec--dark .prose{color:rgba(238,240,237,.74)}
.sec--dark .prose strong{color:var(--paper)}

/* ---------- section scaffold ---------- */
.sec{border-top:1px solid var(--rule);padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(48px,6vw,88px)}
.sec--dark{background:var(--ink);color:var(--paper);border-top:none}
.sec--tint{background:var(--paper-2)}
.sec-head{
  display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3.2fr);
  gap:clamp(16px,3vw,48px);align-items:start;margin-bottom:clamp(32px,4vw,56px);
}
.sec-head__body{display:flex;flex-direction:column;gap:18px}
@media(max-width:760px){.sec-head{grid-template-columns:1fr;gap:14px}}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;background:rgba(238,240,237,.9);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--rule);
}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:62px}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none}
.mark__logo{height:30px;width:auto;object-fit:contain}
/* the wordmark is the fallback when the logo file is missing; JS flips this */
.mark__logo + .mark__name{display:none}
.no-logo .mark__logo{display:none}
.no-logo .mark__logo + .mark__name{display:block}
.mark__name{font-family:var(--disp);font-weight:600;font-size:19px;letter-spacing:.02em}
.nav__links{display:flex;align-items:center;gap:clamp(14px,2vw,30px)}
.nav__links a{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;color:var(--graphite);padding:6px 0;border-bottom:1px solid transparent;
  transition:color .18s ease,border-color .18s ease;
}
.nav__links a:hover{color:var(--ink);border-bottom-color:var(--brass)}
.nav__links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brass)}
.nav__cta{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;background:var(--ink);color:var(--paper);
  padding:9px 16px;border:1px solid var(--ink);transition:background .18s ease,color .18s ease;
  white-space:nowrap;
}
.nav__cta:hover{background:transparent;color:var(--ink)}
/* Below 940px the links move to their own row and scroll sideways, rather than
   disappearing - the footer is otherwise the only way to reach an interior page. */
@media(max-width:940px){
  .nav__in{flex-wrap:wrap;height:auto;padding-top:11px;padding-bottom:9px;gap:10px 16px}
  .mark{order:1}
  .nav__cta{order:2;margin-left:auto;padding:8px 13px;font-size:11px}
  .nav__links{
    order:3;flex-basis:100%;gap:20px;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .nav__links::-webkit-scrollbar{display:none}
  .nav__links a{white-space:nowrap;padding-bottom:2px}
}

/* ---------- photographic cover ----------
   Full-bleed crossfading slideshow with the headline set over a scrim, so the
   room - and who was in it - is the first thing a funder sees. */
.cover{
  position:relative;background:var(--ink);overflow:hidden;
  min-height:min(80vh,780px);display:flex;align-items:flex-end;
}
.cover__media{position:absolute;inset:0}
.cover__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.5s ease;
}
.cover__media img.on{opacity:1}
/* Two gradients, because the type is bottom-left and the photography behind it
   is unpredictable - the horizontal one is what saves the eyebrow when a slide
   happens to be bright on the left. */
/* Keep this light. Two gradients multiply, so modest values compound fast -
   an earlier pass at .94 and .80 rendered the photographs nearly black.
   The type is carried by the shadows below; the scrim only has to take the
   edge off the bottom third where the caption and dots sit. */
.cover__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(to top, rgba(11,24,29,.76) 0%, rgba(11,24,29,.44) 18%,
                    rgba(11,24,29,.13) 44%, rgba(11,24,29,0) 68%),
    linear-gradient(to right, rgba(11,24,29,.34) 0%, rgba(11,24,29,0) 46%);
}
/* The type does the heavy lifting for legibility, not the image dimming.
   Small text goes white rather than brass - mid-tone brass vanishes into
   photography, so brass is kept for the caption key only. A tight shadow
   gives crisp edges; a wide one would grey the picture back down. */
.cover .eyebrow{color:rgba(255,255,255,.94)}
.cover__cap{color:rgba(255,255,255,.93)}
.cover__cap b{color:var(--brass-lt)}
.cover .eyebrow,.cover__cap{text-shadow:0 1px 2px rgba(11,24,29,.95),0 1px 9px rgba(11,24,29,.88)}
.cover h1{text-shadow:0 2px 5px rgba(11,24,29,.5),0 4px 30px rgba(11,24,29,.5)}
.cover__in{
  position:relative;z-index:2;width:100%;color:var(--paper);
  padding-top:clamp(90px,15vw,190px);padding-bottom:clamp(34px,5vw,66px);
}
.cover h1{
  font-family:var(--disp);font-optical-sizing:auto;
  font-weight:300;font-size:clamp(38px,6.2vw,84px);line-height:1.02;
  letter-spacing:-.028em;margin:18px 0 0;max-width:15ch;color:var(--paper);
}
.cover h1 em{font-style:normal;font-weight:500;color:var(--brass-lt)}
.cover__foot{
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  flex-wrap:wrap;margin-top:clamp(26px,3.5vw,44px);
  padding-top:18px;border-top:1px solid rgba(238,240,237,.22);
}
.cover__cap{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(238,240,237,.66);margin:0;transition:opacity .4s ease;
}
.cover__cap b{color:var(--brass-lt);font-weight:500}
.cover__dots{display:flex;gap:9px}
.cover__dots button{
  width:26px;height:3px;padding:0;border:none;cursor:pointer;
  background:rgba(238,240,237,.3);transition:background .3s ease;
}
.cover__dots button[aria-current="true"]{background:var(--brass-lt)}
@media(max-width:620px){.cover{min-height:min(78vh,620px)}}
@media(prefers-reduced-motion:reduce){.cover__media img{transition:none}}

/* ---------- home intro (below the cover) ---------- */
.hero{padding-top:clamp(44px,5.5vw,80px);padding-bottom:clamp(24px,3vw,40px)}
.hero__eyebrow{margin-bottom:clamp(24px,3vw,38px)}
.hero__grid{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(24px,4vw,64px);align-items:start;margin-top:clamp(28px,3.5vw,46px);
}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr}}
.hero__body{display:flex;flex-direction:column;gap:20px}
.hero__body p{margin:0;max-width:54ch}
.hero__body p.k{color:var(--ink);font-weight:400}

/* ---------- interior page head ---------- */
.phead{padding-top:clamp(44px,6vw,86px);padding-bottom:clamp(30px,4vw,52px)}
.phead h1{
  font-family:var(--disp);font-weight:300;font-size:clamp(34px,5.2vw,68px);
  line-height:1.04;letter-spacing:-.026em;margin:18px 0 0;max-width:18ch;
}
.phead h1 em{font-style:normal;font-weight:500;color:var(--brass)}
.phead .lede{margin-top:clamp(20px,2.4vw,30px)}
.phead__meta{
  display:flex;gap:clamp(18px,3vw,44px);flex-wrap:wrap;
  margin-top:clamp(26px,3vw,40px);padding-top:20px;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--graphite-lt);
}
.phead__meta b{color:var(--brass);font-weight:500}

/* ---------- data rail ---------- */
.rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule)}
/* for rails with fewer than four figures, so they fill the column */
.rail--auto{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
.rail__i{padding:16px 14px 0 0;border-right:1px solid var(--rule-soft)}
.rail__i:last-child{border-right:none}
.rail__n{font-family:var(--mono);font-size:clamp(19px,1.8vw,26px);font-weight:400;letter-spacing:-.02em;color:var(--ink);display:block}
.rail__l{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--graphite-lt);display:block;margin-top:5px;line-height:1.4}
.sec--dark .rail{border-top-color:var(--rule-dk)}
.sec--dark .rail__i{border-right-color:var(--rule-dk)}
.sec--dark .rail__n{color:var(--paper)}
.sec--dark .rail__l{color:rgba(238,240,237,.55)}
@media(max-width:620px){
  .rail{grid-template-columns:repeat(2,1fr)}
  .rail__i{border-bottom:1px solid var(--rule-soft);padding-bottom:14px}
  .rail__i:nth-child(2n){border-right:none}
  .rail__i:nth-last-child(-n+2){border-bottom:none}
}

/* ---------- signature figure (home) ---------- */
.fig{margin-top:clamp(44px,5vw,76px);border-top:1px solid var(--rule);padding-top:22px}
.fig__cap{
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--graphite-lt);margin-bottom:6px;
}
.fig__cap b{color:var(--brass);font-weight:500}
.fig svg{width:100%;height:auto}
.f-axis{stroke:var(--rule);stroke-width:1}
.f-grid{stroke:var(--rule-soft);stroke-width:1}
.f-uncat{fill:none;stroke:var(--graphite-lt);stroke-width:1.6;stroke-dasharray:5 4}
.f-cat{fill:none;stroke:var(--signal);stroke-width:2.4;stroke-linecap:round}
.f-drop{stroke:var(--brass);stroke-width:1.2;stroke-dasharray:3 3}
.f-txt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;fill:var(--graphite-lt)}
.f-txt--cat{fill:var(--signal)}
.f-txt--brass{fill:var(--brass)}
.f-dot{fill:var(--brass)}
.f-node{fill:var(--paper);stroke:var(--signal);stroke-width:2}
/* the figure shrinks with the viewport, so its type has to grow in user units */
@media(max-width:760px){
  .f-txt{font-size:23px;letter-spacing:.06em}
  .f-sm-hide{display:none}
  .f-uncat{stroke-width:3}
  .f-cat{stroke-width:4}
  .f-node{r:7;stroke-width:3.5}
}
@media(prefers-reduced-motion:no-preference){
  /* only the solid catalysed path is drawn - animating dashoffset on the
     dashed path would flatten its dash pattern into a solid line */
  .draw{stroke-dasharray:2000;stroke-dashoffset:2000;animation:draw 1.9s cubic-bezier(.65,0,.35,1) .35s forwards}
  @keyframes draw{to{stroke-dashoffset:0}}
  .fade{opacity:0;animation:fade .8s ease 1.6s forwards}
  .fade--early{animation-delay:.15s;animation-duration:1.1s}
  @keyframes fade{to{opacity:1}}
}

/* ---------- imagery ----------
   Every slot is aspect-ratio-locked and object-fit:cover, so source files of
   any dimension crop cleanly instead of breaking the grid. */
.shot{position:relative;overflow:hidden;background:rgba(11,24,29,.06);display:block}
.sec--dark .shot{background:rgba(238,240,237,.07)}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot--band{aspect-ratio:3/2}
.shot--ev{aspect-ratio:3/2}
.shot--wide{aspect-ratio:16/9}
.band2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.6vw,22px);margin-bottom:clamp(30px,4vw,48px)}
@media(max-width:640px){.band2{grid-template-columns:1fr}}
.shot.failed{display:grid;place-items:center;min-height:150px}
.shot.failed img{display:none}
.shot.failed::after{
  content:attr(data-label);font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--graphite-lt);text-align:center;padding:14px;
}
.sec--dark .shot.failed::after{color:rgba(238,240,237,.5)}
.shot__cap{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--graphite-lt);margin:10px 0 0;display:flex;gap:10px;
}
.sec--dark .shot__cap{color:rgba(238,240,237,.55)}
.shot__cap b{color:var(--brass);font-weight:500;flex:0 0 auto}
.sec--dark .shot__cap b{color:var(--brass-lt)}
.ev{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(18px,2.4vw,32px)}
.ev figure{margin:0}

/* ---------- register ---------- */
.reg{border-top:1px solid var(--rule-dk)}
.sec:not(.sec--dark) .reg{border-top-color:var(--rule)}
.reg__row{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,2fr) minmax(96px,.55fr);
  gap:clamp(14px,2.5vw,40px);align-items:baseline;
  padding:clamp(20px,2.4vw,30px) 0;border-bottom:1px solid var(--rule-dk);
}
.sec:not(.sec--dark) .reg__row{border-bottom-color:var(--rule-soft)}
.reg__name{font-family:var(--disp);font-weight:400;font-size:clamp(20px,1.9vw,27px);line-height:1.2;letter-spacing:-.012em;margin:0}
.reg__desc{margin:0;color:rgba(238,240,237,.66);font-size:15.5px;line-height:1.6}
.sec:not(.sec--dark) .reg__desc{color:var(--graphite)}
.reg__stat{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--brass-lt);text-align:right;white-space:nowrap;
}
.sec:not(.sec--dark) .reg__stat{color:var(--brass)}
@media(max-width:820px){
  .reg__row{grid-template-columns:1fr;gap:8px}
  .reg__stat{text-align:left}
}

/* ---------- record table ---------- */
.rec{width:100%;border-collapse:collapse;border-top:1px solid var(--rule)}
.rec caption{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--graphite-lt);text-align:left;padding-bottom:12px;
}
.rec th{
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  color:var(--graphite-lt);text-align:left;padding:0 16px 12px 0;border-bottom:1px solid var(--rule);
  vertical-align:bottom;
}
.rec td{padding:16px 16px 16px 0;border-bottom:1px solid var(--rule-soft);vertical-align:top;font-size:15px;color:var(--graphite)}
.rec tr:hover td{background:rgba(138,107,44,.045)}
.rec td:first-child{color:var(--ink);font-weight:400}
.rec .yr{font-family:var(--mono);font-size:12.5px;color:var(--graphite-lt);white-space:nowrap}
.rec .out{font-family:var(--mono);font-size:12.5px;color:var(--brass)}
@media(max-width:780px){
  .rec thead{position:absolute;left:-9999px}
  .rec tr{display:block;border-bottom:1px solid var(--rule);padding:16px 0}
  .rec td{display:block;border:none;padding:2px 0}
  .rec td:first-child{font-family:var(--disp);font-size:19px;margin-bottom:4px}
  .rec tr:hover td{background:none}
}

/* ---------- program detail entries ---------- */
.entry{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.1fr);
  gap:clamp(18px,3vw,54px);padding:clamp(28px,3.4vw,46px) 0;
  border-bottom:1px solid var(--rule);
}
.entry:last-child{border-bottom:none}
@media(max-width:820px){.entry{grid-template-columns:1fr;gap:16px}}
.entry__side{display:flex;flex-direction:column;gap:12px}
.entry__body p{margin:0 0 16px;max-width:64ch;color:var(--graphite)}
.entry__body p:last-child{margin-bottom:0}
.tag{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--graphite-lt);border:1px solid var(--rule);
  padding:4px 9px;margin:0 6px 6px 0;
}
.tag--live{color:var(--signal);border-color:rgba(42,111,123,.4)}
.tag--closed{color:var(--brass);border-color:rgba(126,97,39,.34)}

/* key/value spec list */
.kv{margin:0;border-top:1px solid var(--rule)}
.kv div{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule-soft)}
.kv dt{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--graphite-lt);flex:0 0 108px;margin:0;padding-top:2px;
}
.kv dd{margin:0;font-size:14.5px;color:var(--ink);line-height:1.55}
.sec--dark .kv{border-top-color:var(--rule-dk)}
.sec--dark .kv div{border-bottom-color:var(--rule-dk)}
.sec--dark .kv dt{color:rgba(238,240,237,.5)}
.sec--dark .kv dd{color:var(--paper)}

/* ---------- generic column grids ---------- */
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(24px,4vw,60px)}
.g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(22px,3vw,44px)}
.col h3{font-family:var(--disp);font-weight:400;font-size:21px;margin:0 0 10px;line-height:1.25}
.col p{margin:0;color:var(--graphite);font-size:15.5px}
.sec--dark .col p{color:rgba(238,240,237,.68)}

/* ---------- lists ---------- */
.tlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.tlist li{padding:14px 0;border-bottom:1px solid var(--rule-soft);display:flex;gap:14px;align-items:baseline}
.tlist .t{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);flex:0 0 92px}
.tlist .d{margin:0;font-size:15.5px;color:var(--graphite)}
.sec--dark .tlist{border-top-color:var(--rule-dk)}
.sec--dark .tlist li{border-bottom-color:var(--rule-dk)}
.sec--dark .tlist .t{color:var(--brass-lt)}
.sec--dark .tlist .d{color:rgba(238,240,237,.7)}

.bullets{list-style:none;margin:0;padding:0}
.bullets li{position:relative;padding-left:20px;margin-bottom:11px;color:var(--graphite);font-size:15.5px}
.bullets li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--brass)}
.sec--dark .bullets li{color:rgba(238,240,237,.72)}

.status{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);
  font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--signal);
  border:1px solid rgba(42,111,123,.35);padding:6px 12px;
}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--signal);flex:0 0 6px}
.status--hold{color:var(--brass);border-color:rgba(126,97,39,.34)}
.status--hold::before{background:var(--brass)}

/* ---------- partner logos ----------
   Sources carry their own off-white plates, which a white tile hides and a
   transparent background does not. Padding is trimmed in the asset pipeline. */
.pl{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-top:1px solid var(--rule)}
.pl__i{padding:20px 20px 22px 0;border-bottom:1px solid var(--rule-soft);border-right:1px solid var(--rule-soft)}
.pl__n{font-family:var(--disp);font-size:18px;font-weight:400;margin:0;line-height:1.25}
.pl__r{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--graphite-lt);margin:6px 0 0}
.pl__logo{
  background:#fff;border:1px solid rgba(11,24,29,.10);height:92px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;margin-bottom:14px;padding:14px;
}
/* explicit px cap - a percentage max-height against a centred flex item
   resolves to auto and the logo overflows the tile */
.pl__logo img{max-width:100%;max-height:50px;width:auto;height:auto;object-fit:contain;display:block}
.pl__logo:empty{background:rgba(255,255,255,.5)}
.pl__logo img.failed{display:none}

/* ---------- highlights archive ---------- */
.yr-band{
  display:flex;align-items:baseline;gap:18px;margin:clamp(34px,4vw,54px) 0 22px;
  padding-top:16px;border-top:1px solid var(--rule);
}
.yr-band:first-child{margin-top:0}
.yr-band h2{font-family:var(--disp);font-weight:400;font-size:clamp(26px,2.6vw,36px);margin:0;letter-spacing:-.015em}
.yr-band span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--graphite-lt)}
.arc{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(20px,2.6vw,34px)}
.arc figure{margin:0}
.arc .shot{aspect-ratio:3/2}
.arc__d{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);margin:12px 0 0;
}
.arc__t{font-family:var(--disp);font-size:18px;font-weight:400;line-height:1.28;margin:6px 0 0}
.arc__p{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--graphite-lt);margin:7px 0 0}

/* ---------- next-page links ---------- */
.next{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));border-top:1px solid var(--rule)}
.next a{
  display:block;text-decoration:none;padding:26px 26px 30px 0;
  border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);
  transition:background .18s ease;
}
.next a:hover{background:rgba(126,97,39,.05)}
.next .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:9px}
.next .n{font-family:var(--disp);font-size:22px;font-weight:400;display:block;line-height:1.2}
.next .s{display:block;margin-top:7px;color:var(--graphite);font-size:14.5px}

/* ---------- cta ---------- */
.cta{background:var(--ink);color:var(--paper)}
.cta__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:end}
@media(max-width:860px){.cta__in{grid-template-columns:1fr;align-items:start}}
.cta h2{font-family:var(--disp);font-weight:300;font-size:clamp(30px,4.4vw,58px);line-height:1.06;letter-spacing:-.025em;margin:0 0 20px;max-width:18ch}
.cta p{color:rgba(238,240,237,.7);margin:0;max-width:50ch}
.btn{
  display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;
  letter-spacing:.11em;text-transform:uppercase;text-decoration:none;
  background:var(--brass-lt);color:var(--ink);padding:15px 24px;border:1px solid var(--brass-lt);
  transition:background .18s ease,color .18s ease;
}
.btn:hover{background:transparent;color:var(--brass-lt)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.cta__meta{display:flex;flex-direction:column;gap:14px;font-family:var(--mono);font-size:12px;line-height:1.7;color:rgba(238,240,237,.66)}
.cta__meta a{color:var(--brass-lt);text-decoration:none;border-bottom:1px solid rgba(198,162,92,.4)}
.cta__meta a:hover{border-bottom-color:var(--brass-lt)}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:rgba(238,240,237,.5);border-top:1px solid var(--rule-dk);padding:34px 0 26px}
.foot__top{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:26px;padding-bottom:26px;border-bottom:1px solid var(--rule-dk)}
.foot__logo{height:26px;width:auto;opacity:.62}
.foot h4{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:rgba(238,240,237,.42);margin:0 0 12px;font-weight:500}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:8px}
.foot a{color:rgba(238,240,237,.72);text-decoration:none;font-size:14px}
.foot a:hover{color:var(--brass-lt)}
.foot__in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding-top:22px}

:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}
