html{scroll-padding-top:env(safe-area-inset-top,0px)}
img{max-width:100%}
[hidden]:not([hidden=until-found i]){display:none!important}

/* Layout: one long homepage on a 12-col-ish grid, bands alternate Cream, Linen, Charcoal, Pale Stone, Sunrise.
   Tokens are the OXM design system (charcoal, Sunrise, warm stone), light and dark. */
:root{
  --charcoal-950:#1f2428;--charcoal-900:#262b31;--charcoal-800:#2e343b;--charcoal-700:#373e46;--charcoal-600:#4a525a;
  --sunrise-50:#fef6dc;--sunrise-300:#f6cb52;--sunrise-500:#edb417;--sunrise-600:#dca20b;--sunrise-800:#825c00;
  --stone-50:#faf6ee;--stone-100:#ede8de;--stone-200:#d8d0c2;--stone-500:#756f64;--stone-700:#5c564c;
  --surface-100:#faf6ee;--surface-200:#ede8de;--surface-inverse:#2e343b;--stone:#d8d0c2;--on-stone:#2e343b;
  --ink:#2e343b;--ink-muted:#5c564c;--ink-inverse:#faf6ee;--line:#d8d0c2;--line-strong:#756f64;--focus:#2e343b;
  --brand:#edb417;--brand-hover:#dca20b;--brand-soft:#fef6dc;--brand-text:#825c00;--on-brand:#2e343b;
  --success:#1b8236;--on-success:#ffffff;--success-soft:#e2f2e5;--success-text:#135f27;
  --info:#0a74a6;--on-info:#ffffff;--info-soft:#dceff8;--info-text:#075a83;
  --warning:#ef8a28;--on-warning:#2e343b;--warning-soft:#fcebd7;--warning-text:#8a4300;
  --danger:#c23030;--on-danger:#ffffff;--danger-soft:#fbe3e1;--danger-text:#9b2222;
  --shadow-raised:0 1px 2px rgba(46,52,59,.14),0 4px 12px rgba(46,52,59,.10);
  --font-display:"Red Hat Display","Helvetica Neue",Arial,sans-serif;--font-text:Lato,"Helvetica Neue",Arial,sans-serif;
  --r-sm:6px;--r-md:10px;--r-lg:16px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --surface-100:#2e343b;--surface-200:#373e46;--surface-inverse:#1f2428;--ink:#faf6ee;--ink-muted:#d8d0c2;--line:#4a525a;--line-strong:#9aa2aa;--focus:#edb417;
  --brand-soft:#3f3b28;--brand-text:#edb417;
  --success:#4ccb6b;--on-success:#04170a;--success-soft:#1b3a29;--success-text:#7bdb92;
  --info:#5bb8e6;--on-info:#031c2a;--info-soft:#1c3a4d;--info-text:#8ad0f0;
  --warning:#f59a3b;--on-warning:#261402;--warning-soft:#4a3320;--warning-text:#f8c07f;
  --danger:#f0706b;--on-danger:#2a0806;--danger-soft:#4d2b2b;--danger-text:#f5a5a0;
  --shadow-raised:0 1px 2px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{
  --surface-100:#2e343b;--surface-200:#373e46;--surface-inverse:#1f2428;--ink:#faf6ee;--ink-muted:#d8d0c2;--line:#4a525a;--line-strong:#9aa2aa;--focus:#edb417;
  --brand-soft:#3f3b28;--brand-text:#edb417;
  --success:#4ccb6b;--on-success:#04170a;--success-soft:#1b3a29;--success-text:#7bdb92;
  --info:#5bb8e6;--on-info:#031c2a;--info-soft:#1c3a4d;--info-text:#8ad0f0;
  --warning:#f59a3b;--on-warning:#261402;--warning-soft:#4a3320;--warning-text:#f8c07f;
  --danger:#f0706b;--on-danger:#2a0806;--danger-soft:#4d2b2b;--danger-text:#f5a5a0;
  --shadow-raised:0 1px 2px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.35);color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface-100);color:var(--ink);font-family:var(--font-text);font-weight:300;font-size:18px;line-height:28px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--surface-100)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:900;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
.band-dark :focus-visible,.footer :focus-visible{outline-color:var(--sunrise-500)}
.band-sun :focus-visible{outline-color:var(--charcoal-800)}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-family:var(--font-display);font-weight:900;font-size:13px;line-height:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-text)}
.eyebrow a{color:inherit;text-decoration:none}
.eyebrow a:hover{text-decoration:underline}
.band-dark .eyebrow{color:var(--sunrise-500)}
.band-stone .eyebrow{color:var(--on-stone)}
.band-sun .eyebrow{color:var(--on-brand)}
.sec{padding-block:clamp(56px,8vw,96px)}
.h2{font-size:clamp(28px,4vw,36px);line-height:1.12}
.h3{font-size:clamp(22px,3vw,28px);line-height:1.2}
.lead{font-size:clamp(18px,2vw,22px);line-height:1.55}
.bar{display:block;height:8px;background:var(--brand);margin-top:16px;width:72px}
.bar.sm{height:4px;width:28px;margin-top:6px}
/* header */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface-100);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:24px;min-height:72px}
.logo{display:block;color:var(--ink);flex:none}
.logo svg{height:36px;width:75px;display:block}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font-family:var(--font-display);font-weight:900;font-size:15px;text-decoration:none;padding:6px 0;background:linear-gradient(var(--brand),var(--brand)) left bottom/0 4px no-repeat;transition:background-size .2s}
.nav a:hover{background-size:100% 4px}
.hdr-actions{display:flex;align-items:center;gap:12px}
.icon-btn{width:44px;height:44px;border-radius:var(--r-md);border:2px solid var(--ink);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.icon-btn svg{width:20px;height:20px}
.menu-btn{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--r-md);font-family:var(--font-display);font-weight:900;font-size:16px;line-height:1;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .15s,transform .15s}
.btn-primary{background:var(--brand);color:var(--on-brand)}
.btn-primary:hover{background:var(--brand-hover)}
.btn-primary:active{filter:brightness(.95)}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-secondary:hover{background:var(--surface-200)}
.band-dark .btn-secondary{color:#faf6ee;border-color:#faf6ee}
.band-dark .btn-secondary:hover{background:rgba(250,246,238,.1)}
.btn-dark{background:var(--charcoal-800);color:var(--stone-50)}
.btn-dark:hover{background:var(--charcoal-950)}
.btn[disabled]{background:var(--line);color:var(--ink-muted);cursor:not-allowed;opacity:.7}
.link{font-family:var(--font-display);font-weight:900;color:var(--brand-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.band-dark .link{color:var(--sunrise-500)}
@media (max-width:900px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surface-100);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px max(16px,env(safe-area-inset-left,0px))}
  .nav.open{display:flex}.nav a{padding:14px 0;background-image:none;border-top:1px solid var(--line)}
  .menu-btn{display:grid}.hdr-actions .btn{display:none}.hdr-in{gap:12px}.hdr-actions{margin-left:auto}
}
/* hero */
.hero{padding-block:clamp(48px,7vw,88px) clamp(56px,8vw,96px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,72px);align-items:center}
.hero h1{font-size:clamp(38px,6vw,64px);line-height:1.04;letter-spacing:-.01em;margin:14px 0 36px}
.hero h1 .u{position:relative;display:inline-block}
.hero h1 .u::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:8px;background:var(--brand)}
.hero .lead{max-width:34em;color:var(--ink)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;align-items:center}
.hero-note{margin-top:20px;font-size:14px;line-height:20px;color:var(--ink-muted)}
.grid-card{background:var(--surface-200);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-raised)}
.grid-card svg{display:block;width:100%;height:auto}
.gc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.gc-cap{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:14px}
.dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.b0{fill:var(--surface-100)}.b1{fill:var(--line)}.b2{fill:var(--ink)}.b3{fill:var(--brand)}
.tag{display:inline-block;padding:4px 12px;border-radius:999px;font-family:var(--font-display);font-weight:900;font-size:12px;line-height:16px;letter-spacing:.04em}
.tag-live{background:var(--surface-inverse);color:var(--sunrise-500)}
.tag-neutral{background:var(--surface-200);color:var(--ink)}
.tag-stone{background:var(--stone);color:var(--on-stone)}
.tag-new{background:var(--brand);color:var(--on-brand)}
/* audience strip */
.strip{background:var(--surface-200);border-block:1px solid var(--line)}
.strip-in{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding-block:22px}
.strip-in .eyebrow{flex:none}
.strip ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.strip li{font-family:var(--font-display);font-weight:900;font-size:15px;line-height:20px;padding:8px 14px;border:1.5px solid var(--line-strong);border-radius:999px}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.stat .n{font-family:var(--font-display);font-weight:900;font-size:clamp(34px,5vw,48px);line-height:1.05;font-variant-numeric:tabular-nums}
.stat p{font-size:16px;line-height:24px;color:var(--ink-muted);margin-top:8px}
/* sections head */
.sec-head{max-width:46em;margin-bottom:40px}
.sec-head .h2{margin-top:10px}
.sec-head .lead{margin-top:16px;color:var(--ink-muted)}
.band-dark .sec-head .lead{color:#d8d0c2}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0;counter-reset:s}
.step{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-100);padding:28px;display:flex;flex-direction:column;gap:14px}
.step-n{font-family:var(--font-display);font-weight:900;font-size:13px;letter-spacing:.14em;color:var(--brand-text)}
.step svg{width:40px;height:40px;color:var(--ink)}
.step h3{font-size:22px;line-height:28px}
.step p{font-size:16px;line-height:24px;color:var(--ink-muted)}
.band-alt{background:var(--surface-200)}
/* dark platform */
.band-dark{background:var(--surface-inverse);color:#faf6ee}
.plat{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:start}
.plat .lead{color:#d8d0c2;margin-top:16px}
.plat ul.checks{list-style:none;margin:28px 0 32px;padding:0;display:grid;gap:14px}
.plat ul.checks li{display:flex;gap:12px;font-size:17px;line-height:26px;color:#faf6ee}
.plat ul.checks svg{flex:none;width:22px;height:22px;color:var(--sunrise-500);margin-top:2px}
.panel{background:#262b31;border:1px solid #4a525a;border-radius:var(--r-lg);padding:20px;min-width:0}
.panel-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.seg{display:inline-flex;border:1.5px solid #9aa2aa;border-radius:var(--r-md);padding:3px;gap:3px}
.seg button{font-family:var(--font-display);font-weight:900;font-size:14px;line-height:1;padding:10px 14px;border:0;border-radius:7px;background:transparent;color:#faf6ee;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--sunrise-500);color:#2e343b}
.query{display:flex;gap:10px;align-items:center;background:#1f2428;border:1.5px solid #4a525a;border-radius:var(--r-sm);padding:12px 14px;font-size:15px;line-height:22px;color:#d8d0c2;margin-bottom:16px;overflow-x:auto;white-space:nowrap}
.query b{font-family:var(--font-display);font-weight:900;color:var(--sunrise-500)}
.chart-wrap{min-width:0}
.chart-wrap svg{display:block;width:100%;height:auto}
.chart-wrap text{font-family:var(--font-text);font-weight:300;font-size:12px;fill:#d8d0c2}
.chart-wrap .lbl{font-family:var(--font-display);font-weight:900;font-size:12px}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;line-height:20px;color:#faf6ee;margin-top:10px}
.legend i{display:inline-block;width:18px;height:4px;border-radius:2px;margin-right:8px;vertical-align:middle}
.panel-foot{font-size:13px;line-height:18px;color:#d8d0c2;margin-top:14px}
/* table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-100)}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:16px;line-height:24px}
th{font-family:var(--font-display);font-weight:900;font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-align:left;padding:14px 18px;background:var(--surface-200);color:var(--ink);border-bottom:1px solid var(--line)}
td{padding:14px 18px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right}
.st{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border-radius:999px;font-family:var(--font-display);font-weight:900;font-size:12px;line-height:16px}
.st svg{width:14px;height:14px}
.st.ok{background:var(--success-soft);color:var(--success-text)}.st.run{background:var(--info-soft);color:var(--info-text)}.st.chk{background:var(--warning-soft);color:var(--warning-text)}
/* stories */
.band-stone{background:var(--stone);color:var(--on-stone)}
.quote{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:center}
.quote q{display:block;quotes:none;font-family:var(--font-display);font-weight:900;font-size:clamp(26px,3.6vw,40px);line-height:1.18;text-wrap:balance}
.quote cite{display:block;font-style:normal;margin-top:22px;font-size:16px;line-height:24px}
.quote cite b{font-family:var(--font-display);font-weight:900}
.ph{border-radius:var(--r-lg);overflow:hidden;position:relative;background:#2e343b;aspect-ratio:4/3;max-width:100%}
.ph svg{display:block;width:100%;height:100%}
.ph span{position:absolute;left:14px;bottom:12px;font-size:13px;line-height:18px;color:#faf6ee;background:rgba(31,36,40,.72);padding:3px 10px;border-radius:999px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:48px}
.card{background:var(--surface-100);color:var(--ink);border:1px solid #cfc7b8;border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.card .ph{border-radius:0;aspect-ratio:16/10}
.card-b{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px}
.card-b h3{font-size:20px;line-height:26px}
.card-b p{font-size:16px;line-height:24px;color:var(--ink-muted)}
.card-b .link{margin-top:4px;font-size:15px;align-self:flex-start}
/* status + form */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
.banners{display:grid;gap:10px}
.ban{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-md);font-size:16px;line-height:22px}
.ban svg{flex:none;width:22px;height:22px}.ban div{flex:1;min-width:0}.ban b{font-family:var(--font-display);font-weight:900}
.ban.success{background:var(--success-soft);color:var(--success-text)}.ban.info{background:var(--info-soft);color:var(--info-text)}.ban.warning{background:var(--warning-soft);color:var(--warning-text)}.ban.danger{background:var(--danger-soft);color:var(--danger-text)}
.badge{font-family:var(--font-display);font-weight:900;font-size:11px;letter-spacing:.1em;padding:4px 8px;border-radius:6px;text-transform:uppercase}
.success .badge{background:var(--success);color:var(--on-success)}.info .badge{background:var(--info);color:var(--on-info)}.warning .badge{background:var(--warning);color:var(--on-warning)}.danger .badge{background:var(--danger);color:var(--on-danger)}
form{display:grid;gap:18px}
.f label,.f .lab{display:block;font-family:var(--font-display);font-weight:900;font-size:14px;line-height:20px;margin-bottom:6px}
.f input[type=email],.f input[type=text],.f select{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-200);color:var(--ink);font:inherit;font-size:17px}
.f input:focus-visible,.f select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.f.err input{border-color:var(--danger)}.f.ok input{border-color:var(--success)}
.fm{font-size:14px;line-height:20px;margin-top:6px;min-height:20px}.f.err .fm{color:var(--danger-text)}.f.ok .fm{color:var(--success-text)}
.hint{font-size:14px;line-height:20px;color:var(--ink-muted);margin-top:6px}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:24px}
.chk input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--charcoal-800);flex:none}
.fb{min-height:0}
/* faq */
details{border-top:1px solid var(--line);padding:0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;font-family:var(--font-display);font-weight:900;font-size:19px;line-height:26px}
summary::-webkit-details-marker{display:none}
summary svg{flex:none;width:22px;height:22px;transition:transform .2s}
details[open] summary svg{transform:rotate(45deg)}
details p{padding:0 4px 22px;max-width:44em;color:var(--ink-muted);font-size:17px}
/* cta */
.band-sun{background:var(--brand);color:var(--on-brand)}
.cta{display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.cta h2{font-size:clamp(28px,4vw,40px);line-height:1.12;max-width:20em}
.cta p{margin-top:10px;font-size:19px}
/* footer */
.footer{background:#1f2428;color:#d8d0c2;padding-block:56px 40px;font-size:16px;line-height:24px}
.foot{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:32px}
.foot .logo{color:#fff}.foot .logo svg{height:92px;width:145px}
.foot h4{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#faf6ee;margin-bottom:12px;line-height:16px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.foot a{text-decoration:none}.foot a:hover{text-decoration:underline;text-decoration-color:var(--sunrise-500);text-underline-offset:4px}
.foot p{max-width:24em;margin-top:14px;font-size:15px}
.legal{border-top:1px solid #4a525a;margin-top:40px;padding-top:20px;font-size:14px;line-height:20px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
@media (max-width:980px){
  .hero-grid,.plat,.quote,.two{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps,.cards{grid-template-columns:minmax(0,1fr)}
  .foot{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .foot>div:first-child{grid-column:1/-1}
}
@media (max-width:480px){.stats{gap:20px 16px}.btn{width:100%}.hero-cta .link{width:100%;text-align:center}.foot{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* current page in the main nav */
.nav a[aria-current]{background-size:100% 4px;color:var(--brand-text)}
.band-dark .nav a[aria-current]{color:var(--sunrise-500)}

/* interior page hero: single-column version of .hero */
.page-hero{padding-block:clamp(48px,7vw,88px) clamp(40px,6vw,64px)}
.page-hero h1{font-size:clamp(34px,5.4vw,56px);line-height:1.08;margin:14px 0 18px}
.page-hero .lead{max-width:44em}
.page-hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}

/* alternating full-width item rows (Open Data / Open Source): one band per item,
   figure and text swapping sides */
.items{display:block}
.item-row{padding-block:clamp(40px,6vw,76px);border-top:1px solid var(--line)}
.item-row>.wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:center}
.item-row.flip .item-media{order:2}
.item-media{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/11;background:var(--surface-200)}
.item-media img{width:100%;height:100%;object-fit:cover;display:block}
.item-index{display:block;font-family:var(--font-display);font-weight:900;font-size:clamp(28px,5vw,44px);line-height:1;color:var(--brand-text);margin-bottom:12px}
.item-body h2{margin-bottom:12px}
.item-body p{font-size:17px;line-height:26px;max-width:46ch}
.item-row.alt{background:var(--surface-inverse);color:#faf6ee;border-top-color:transparent}
.item-row.alt .item-body h2{color:#faf6ee}
.item-row.alt .item-body p{color:#d8d0c2}
.item-row.alt .item-index{color:var(--sunrise-500)}
.item-row.alt .item-media{border-color:#4a525a}
@media (max-width:820px){
  .item-row>.wrap{grid-template-columns:minmax(0,1fr);gap:22px}
  .item-row.flip .item-media{order:0}
}

/* numbered placeholder media, used where there is no photo (Projects) */
.item-media.badge{display:grid;place-items:center;border:0;background:linear-gradient(140deg,var(--charcoal-800),var(--brand));color:#faf6ee}
.item-media.badge span{font-family:var(--font-display);font-weight:900;font-size:clamp(48px,10vw,96px);line-height:1;opacity:.9}

/* partners grid (About us) */
.partners{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}
.partners li{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-100);font-family:var(--font-display);font-weight:900;font-size:15px}
@media (max-width:760px){.partners{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.partners{grid-template-columns:minmax(0,1fr)}}

/* numbered feature cards (About "How we work", Ecosystem "Prepare, model, inspect, improve") */
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:8px}
.feature-grid article{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-100);padding:28px}
.feature-grid .number{display:block;font-family:var(--font-display);font-weight:900;font-size:13px;letter-spacing:.14em;color:var(--brand-text);margin-bottom:14px}
.feature-grid h3{font-size:22px;line-height:28px}
.feature-grid p{margin-top:10px;font-size:16px;line-height:24px;color:var(--ink-muted)}
.band-dark .feature-grid article{background:#373e46;border-color:#4a525a}
.band-dark .feature-grid p{color:#d8d0c2}
.band-dark .feature-grid .number{color:var(--sunrise-500)}
@media (max-width:980px){.feature-grid{grid-template-columns:minmax(0,1fr)}}

/* tool cards (Ecosystem) */
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:8px}
.tool-grid article{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-100);padding:28px;display:flex;flex-direction:column;gap:12px}
.tool-grid h3{font-size:22px;line-height:28px}
.tool-grid p{font-size:16px;line-height:24px;color:var(--ink-muted)}
.tool-grid .tool-note{font-size:14px;line-height:20px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink-muted)}
.band-dark .tool-grid article{background:#373e46;border-color:#4a525a}
.band-dark .tool-grid p{color:#d8d0c2}
.band-dark .tool-grid .tool-note{border-color:#4a525a;color:#d8d0c2}
@media (max-width:760px){.tool-grid{grid-template-columns:minmax(0,1fr)}}

/* simple centered hero (404) */
.hero-plain{padding-block:clamp(72px,14vw,160px);text-align:center}
.hero-plain h1{font-size:clamp(34px,6vw,56px)}
.hero-plain .lead{max-width:40em;margin-inline:auto}
.hero-plain .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;justify-content:center}
