/* IDEA MEDS: Noir variant. Generated by _build/build.js */
/* ===== Shared structure for every variant. Theme files override tokens + look. ===== */
@layer reset, base, layout, components, theme, utilities;

@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
}

@layer reset {
  :where(*, *::before, *::after) { box-sizing: border-box; }
  :where(body, h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol) { margin: 0; }
  :where(ul, ol)[class] { list-style: none; padding: 0; }
  :where(img, svg) { display: block; max-inline-size: 100%; }
  :where(input, textarea, button, select) { font: inherit; color: inherit; }
  :where(a) { color: inherit; }
}

@layer base {
  :root {
    --wrap: 75rem;
    --gutter: clamp(1rem, 0.5rem + 2.5vw, 2rem);
    --section: clamp(4.5rem, 3rem + 6vw, 8rem);
    --radius: 0;
    --display-weight: 800;
    --display-transform: none;
    --display-tracking: 0;
    --display-leading: 0.95;
    accent-color: var(--accent);
    scrollbar-color: var(--line) var(--bg);
  }
  html { scroll-behavior: smooth; scroll-padding-block-start: 6rem; -webkit-text-size-adjust: 100%; }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
  body {
    background: var(--bg);
    color: var(--text);
    font: 400 1.0625rem/1.65 var(--font-body);
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
    min-block-size: 100dvh;
  }
  a { text-decoration: none; }
  ::selection { background: var(--accent); color: var(--on-accent); }
  :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  h1, h2, h3 {
    font-family: var(--font-display);
    font-weight: var(--display-weight);
    text-transform: var(--display-transform);
    letter-spacing: var(--display-tracking);
    line-height: var(--display-leading);
    text-wrap: balance;
  }
  p, li { text-wrap: pretty; }
  .prose a, .text-link { color: var(--accent); text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
}

@layer layout {
  .wrap { inline-size: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
  .section { padding-block: var(--section); }
  .skip { position: absolute; inset-inline-start: 1rem; inset-block-start: -4rem; z-index: 100; padding: 0.75rem 1rem; background: var(--accent); color: var(--on-accent); }
  .skip:focus { inset-block-start: 1rem; }

  /* header */
  .site-header { position: sticky; inset-block-start: 0; z-index: 50; view-transition-name: site-header; }
  .nav { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-block-size: 4.5rem; }
  .brand { display: inline-flex; align-items: center; gap: 0.7rem; font-family: var(--font-display); }
  .brand svg { inline-size: 1.6rem; block-size: auto; flex: none; }
  .nav-links { display: flex; gap: clamp(1.25rem, 2.5vw, 2.25rem); }
  .nav-links a { position: relative; padding-block: 0.4rem; }
  .menu-btn { display: none; }
  #menu { display: none; }
  @media (max-width: 52rem) {
    .nav :is(.nav-links, .nav-cta) { display: none; }
    .menu-btn { display: inline-flex; align-items: center; gap: 0.5rem; min-block-size: 2.75rem; padding-inline: 1rem; background: transparent; border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; }
    #menu:popover-open {
      display: flex; flex-direction: column; gap: 0.25rem;
      position: fixed; inset: 0; margin: 0; inline-size: 100%; block-size: 100dvh; max-inline-size: none; max-block-size: none;
      padding: 5.5rem var(--gutter) 2rem; border: 0;
      background: var(--bg); color: var(--text);
      font-family: var(--font-display); font-size: clamp(2rem, 1.5rem + 4vw, 3rem); line-height: 1.2;
      opacity: 1; translate: 0 0;
      transition: opacity .3s, translate .3s, display .3s allow-discrete, overlay .3s allow-discrete;
      @starting-style { opacity: 0; translate: 0 -1rem; }
    }
    #menu a { padding-block: 0.4rem; border-block-end: 1px solid var(--line); }
    #menu .menu-close { position: absolute; inset-block-start: 1rem; inset-inline-end: var(--gutter); font: inherit; font-size: 1rem; min-block-size: 2.75rem; padding-inline: 1rem; background: transparent; border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer; }
  }

  /* page hero for inner pages */
  .page-hero { padding-block: clamp(4rem, 3rem + 5vw, 7rem) clamp(2.5rem, 2rem + 3vw, 4.5rem); border-block-end: 1px solid var(--line); }
  .page-hero h1 { font-size: clamp(2.75rem, 1.5rem + 6vw, 6rem); }
  .page-lead { margin-block-start: 1.5rem; max-inline-size: 40rem; font-size: 1.2rem; color: var(--muted); }
  .crumbs { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-block-end: 1.5rem; color: var(--muted); font: 500 0.75rem/1 var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; }
  .crumbs a:hover { color: var(--accent); }

  /* legal layout */
  .legal-layout { display: grid; grid-template-columns: 16rem 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; padding-block: clamp(3rem, 2rem + 4vw, 5rem) var(--section); }
  .toc { position: sticky; inset-block-start: 6.5rem; display: grid; gap: 1.5rem; max-block-size: calc(100dvh - 8rem); overflow: auto; }
  .toc h2 { font: 500 0.75rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .toc ol { display: grid; gap: 0.15rem; counter-reset: toc; }
  .toc ol a { display: grid; grid-template-columns: 2rem 1fr; padding-block: 0.35rem; font-size: 0.9rem; color: var(--muted); line-height: 1.35; counter-increment: toc; }
  .toc ol a::before { content: counter(toc, decimal-leading-zero); font: 0.75rem/1.8 var(--font-mono); }
  .toc ol a:hover, .toc ol a[aria-current="true"] { color: var(--text); }
  .toc ol a[aria-current="true"]::before { color: var(--accent); }
  .toc-select { display: grid; gap: 0.5rem; }
  .toc-select select { inline-size: 100%; padding: 0.7rem 0.8rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
  @media (max-width: 60rem) {
    .legal-layout { grid-template-columns: 1fr; }
    .toc { position: static; max-block-size: none; }
    .toc-list { display: none; }
  }

  .prose { max-inline-size: 46rem; }
  .prose section { padding-block: 2rem; border-block-start: 1px solid var(--line); }
  .prose section:first-child { border-block-start: 0; padding-block-start: 0; }
  .prose h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin-block-end: 1rem; }
  .prose p + p, .prose p + ul, .prose ul + p, .prose p + ol, .prose ol + p, .prose .table-wrap + p, .prose p + .table-wrap { margin-block-start: 1rem; }
  .prose ul, .prose ol { padding-inline-start: 1.25rem; display: grid; gap: 0.5rem; }
  .prose li::marker { color: var(--accent); }
  .prose strong { color: var(--text); font-weight: 600; }
  .prose p, .prose li { color: var(--muted); }
  .table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
  .prose table { inline-size: 100%; border-collapse: collapse; font-size: 0.95rem; }
  .prose th, .prose td { padding: 0.8rem 1rem; text-align: start; vertical-align: top; border-block-end: 1px solid var(--line); }
  .prose tr:last-child td { border-block-end: 0; }
  .prose th { font: 500 0.75rem/1.3 var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text); background: var(--surface); }
  .updated { display: inline-flex; gap: 0.6rem; margin-block-start: 1.5rem; font: 500 0.8rem/1 var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
  .updated b { color: var(--accent); font-weight: 500; }

  .pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-block-start: 3rem; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--line); }
  .pager a { display: grid; gap: 0.35rem; padding: 1.25rem 1.5rem; background: var(--bg); }
  .pager a:last-child { text-align: end; }
  .pager span { font: 500 0.7rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .pager b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.15rem; }
  .pager a:hover b { color: var(--accent); }

  /* policy index */
  .policy-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: 1rem; padding-block: clamp(3rem, 2rem + 4vw, 5rem) var(--section); }
  .policy-card { display: grid; grid-template-rows: auto auto 1fr auto; gap: 0.75rem; padding: 1.75rem; min-block-size: 15rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .25s, translate .25s; }
  .policy-card:hover { border-color: var(--accent); translate: 0 -4px; }
  .policy-card .num { font: 500 0.75rem/1 var(--font-mono); color: var(--accent); letter-spacing: 0.12em; }
  .policy-card h2 { font-size: 1.6rem; }
  .policy-card p { color: var(--muted); font-size: 0.95rem; }
  .policy-card .go { font: 500 0.75rem/1 var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
  .policy-card:hover .go { color: var(--accent); }

  /* about */
  .about-split { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
  .about-split .prose p { font-size: 1.1rem; }
  .facts { display: grid; border-block-start: 1px solid var(--line); }
  .facts div { display: grid; gap: 0.2rem; padding-block: 1.1rem; border-block-end: 1px solid var(--line); }
  .facts dt { font: 500 0.72rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .facts dd { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.5rem; line-height: 1.15; }
  .mission { padding-block: var(--section); text-align: center; }
  .mission blockquote { max-inline-size: 58rem; margin-inline: auto; font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(1.9rem, 1.2rem + 3vw, 3.6rem); line-height: 1.12; text-wrap: balance; }
  .mission figcaption { margin-block-start: 1.75rem; font: 500 0.78rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
  .tile { padding: 1.75rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
  .tile .num { display: block; margin-block-end: 2.5rem; font: 500 0.75rem/1 var(--font-mono); color: var(--accent); letter-spacing: 0.12em; }
  .tile h3 { font-size: 1.6rem; margin-block-end: 0.6rem; }
  .tile p { color: var(--muted); font-size: 0.97rem; }
  .sec-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; flex-wrap: wrap; margin-block-end: clamp(2rem, 4vw, 3.5rem); }
  .sec-head h2 { font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4.5rem); }
  .sec-head p { max-inline-size: 28rem; color: var(--muted); }
  .disc { display: grid; border-block-start: 1px solid var(--line); }
  .disc li { display: grid; grid-template-columns: 4rem 1fr 1.2fr; gap: 1.5rem; align-items: baseline; padding-block: 1.35rem; border-block-end: 1px solid var(--line); }
  .disc .num { font: 500 0.75rem/1 var(--font-mono); color: var(--accent); }
  .disc h3 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem); }
  .disc p { color: var(--muted); }
  @media (max-width: 52rem) {
    .about-split { grid-template-columns: 1fr; }
    .disc li { grid-template-columns: 2.5rem 1fr; }
    .disc p { grid-column: 2; }
  }

  /* contact */
  .contact-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 6vw, 6rem); padding-block: clamp(3rem, 2rem + 4vw, 5rem) var(--section); }
  .contact-list { display: grid; border-block-start: 1px solid var(--line); }
  .contact-list > div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding-block: 1.2rem; border-block-end: 1px solid var(--line); }
  .contact-list dt { font: 500 0.72rem/1.9 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .contact-list dd { font-size: 1.1rem; overflow-wrap: anywhere; }
  .contact-list a:hover { color: var(--accent); }
  @media (max-width: 52rem) { .contact-grid { grid-template-columns: 1fr; } }

  /* form */
  .form { display: grid; gap: 1.4rem; }
  .form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
  @media (max-width: 40rem) { .form .row { grid-template-columns: 1fr; } }
  .field { display: grid; gap: 0.5rem; }
  .field > span { font: 500 0.72rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
  .field :is(input, textarea, select) { inline-size: 100%; padding: 0.85rem 0; background: transparent; border: 0; border-block-end: 1.5px solid var(--line); border-radius: 0; color: var(--text); font-size: 1.05rem; transition: border-color .2s; }
  .field :is(input, textarea, select):focus-visible { outline: none; border-color: var(--accent); }
  .field :is(input, textarea):user-invalid { border-color: var(--danger, #e5484d); }
  .field textarea { resize: vertical; min-block-size: 8rem; field-sizing: content; }
  .check { display: flex; gap: 0.75rem; align-items: start; font-size: 0.9rem; color: var(--muted); }
  .check input { inline-size: 1.15rem; block-size: 1.15rem; margin-block-start: 0.2rem; flex: none; }
  .form-sent { display: none; color: var(--accent); font-weight: 500; }
  .form.is-sent .form-sent { display: block; }

  /* generic buttons */
  .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-block-size: 3rem; padding: 0.9rem 1.6rem; border: 1.5px solid var(--accent); border-radius: var(--radius); font: 600 0.85rem/1 var(--font-body); letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; transition: background .2s, color .2s, translate .2s; }
  .btn-solid { background: var(--accent); color: var(--on-accent); }
  .btn-solid:hover { background: transparent; color: var(--accent); }
  .btn-ghost { background: transparent; color: var(--accent); }
  .btn-ghost:hover { background: var(--accent); color: var(--on-accent); }
  .btn .arr { transition: translate .2s; }
  .btn:hover .arr { translate: 4px 0; }

  /* CTA band */
  .cta-band { display: flex; justify-content: space-between; align-items: center; gap: 2rem; flex-wrap: wrap; padding: clamp(2rem, 4vw, 3.5rem); border: 1px solid var(--line); border-radius: var(--radius); }
  .cta-band h2 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.2rem); max-inline-size: 22ch; }
  .cta-band p { margin-block-start: 0.8rem; max-inline-size: 36rem; color: var(--muted); }

  /* 404 */
  .nf { min-block-size: 70dvh; display: grid; place-content: center; text-align: center; gap: 1.5rem; padding-block: var(--section); }
  .nf b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(6rem, 4rem + 12vw, 14rem); line-height: 0.85; color: var(--accent); }

  /* footer */
  .site-footer { padding-block: clamp(3.5rem, 3rem + 3vw, 5rem) 2rem; border-block-start: 1px solid var(--line); font-size: 0.92rem; color: var(--muted); }
  .foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1.4fr 1.2fr; gap: 2.5rem; }
  .foot-grid h2 { margin-block-end: 1rem; font: 500 0.72rem/1 var(--font-mono); letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); }
  .foot-grid ul { display: grid; gap: 0.5rem; }
  .foot-grid a:hover { color: var(--accent); }
  .foot-about p { margin-block-start: 1rem; max-inline-size: 22rem; }
  .foot-legal ul { grid-template-columns: 1fr 1fr; column-gap: 1.25rem; }
  .foot-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-block-start: 3rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--line); font-size: 0.8rem; }
  .foot-disclaimer { margin-block-start: 2.5rem; max-inline-size: 60rem; font-size: 0.8rem; line-height: 1.7; }
  @media (max-width: 60rem) { .foot-grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 36rem) { .foot-grid { grid-template-columns: 1fr; } .foot-legal ul { grid-template-columns: 1fr; } }
}

@layer utilities {
  .eyebrow { display: inline-flex; align-items: center; gap: 0.8rem; font: 500 0.75rem/1.2 var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); }
  .mono { font-family: var(--font-mono); }
  .accent { color: var(--accent); }
  .muted { color: var(--muted); }
  .vh { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .reveal { opacity: 0; translate: 0 1.75rem; transition: opacity .8s cubic-bezier(.2,.8,.2,1), translate .8s cubic-bezier(.2,.8,.2,1); }
  .reveal.on { opacity: 1; translate: 0 0; }
  .no-js .reveal { opacity: 1; translate: 0 0; }
  @media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; translate: 0 0; transition: none; } }
  @media (forced-colors: active) { .btn, .policy-card, .tile { border: 1px solid CanvasText; } }
}


@layer theme {
  :root {
    --bg:#121212; --bg-2:#1b1b1b; --surface:#1b1b1b; --text:#f2efe6; --muted:#a7a397; --line:#333;
    --accent:#f2c230; --on-accent:#121212;
    --font-display:"Big Shoulders Display", Impact, sans-serif;
    --font-body:"IBM Plex Sans", system-ui, sans-serif;
    --font-mono:"IBM Plex Mono", ui-monospace, monospace;
    --display-weight:900; --display-transform:uppercase; --display-leading:.92; --display-tracking:.005em;
  }
  .grid-bg { position:absolute; inset:0; pointer-events:none; opacity:.35;
    background-image:linear-gradient(var(--line) 1px,transparent 0),linear-gradient(90deg,var(--line) 1px,transparent 0); background-size:4rem 4rem;
    mask-image:radial-gradient(ellipse at 70% 40%,#000,transparent 70%); }
  .site-header { background:color-mix(in oklab, var(--bg) 88%, transparent); backdrop-filter:blur(10px); border-block-end:1px solid var(--line); }
  .brand { font-size:1.6rem; letter-spacing:.1em; font-weight:900; }
  .brand svg { inline-size:1.35rem; }
  .nav-links a { font-size:.9rem; font-weight:500; color:var(--muted); transition:color .2s; }
  .nav-links a:is(:hover,[aria-current]) { color:var(--accent); }
  .page-hero { position:relative; overflow:hidden; }
  .page-hero .wrap { position:relative; }
  .eyebrow::before { content:""; inline-size:2.25rem; block-size:1.5px; background:currentColor; }

  .hero { position:relative; overflow:hidden; padding-block:clamp(4rem,3rem + 6vw,7.5rem); border-block-end:1px solid var(--line); }
  .glow { position:absolute; inset-inline-end:2%; inset-block-start:4%; inline-size:36rem; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, color-mix(in oklab, var(--accent) 22%, transparent), transparent 65%); filter:blur(10px); }
  .hero-in { position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:3.5rem; align-items:center; }
  .hero h1 { font-size:clamp(3.75rem, 1.5rem + 8vw, 8rem); margin-block-start:1.6rem; }
  .hero h1 em { font-style:normal; color:var(--accent); }
  .lead { margin-block:2rem 2.6rem; max-inline-size:32rem; font-size:1.15rem; color:var(--muted); }
  .cta { display:flex; gap:.9rem; flex-wrap:wrap; }
  .loop { display:grid; gap:1.5rem; }
  .loop svg { inline-size:100%; overflow:visible; }
  .loop-track { fill:none; stroke:color-mix(in oklab, var(--text) 32%, transparent); stroke-width:1.5; stroke-dasharray:2 7; stroke-linecap:round; }
  .loop-line { fill:none; stroke:var(--accent); stroke-width:3; stroke-linecap:round; stroke-dasharray:.22 .78; animation:loop 6s linear infinite; filter:drop-shadow(0 0 12px color-mix(in oklab, var(--accent) 60%, transparent)); }
  @keyframes loop { to { stroke-dashoffset:-1; } }
  .loop-meta { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); }
  .loop-meta div { padding:1rem; border-inline-start:1px solid var(--line); }
  .loop-meta div:first-child { border:0; }
  .loop-meta dt { font:500 .7rem/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .loop-meta dd { margin-block-start:.5rem; font:900 1.35rem/1 var(--font-display); text-transform:uppercase; }

  .strip { overflow:hidden; white-space:nowrap; padding-block:1.1rem; border-block-end:1px solid var(--line); font:500 .78rem/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .strip-in { display:inline-block; animation:run 40s linear infinite; }
  .strip-in span { margin-inline:1.75rem; }
  .strip b { color:var(--accent); font-weight:500; }
  @keyframes run { to { translate:-50% 0; } }

  .cards { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
  .card { padding:2.1rem 1.75rem 2.5rem; border-inline-start:1px solid var(--line); transition:background .25s; }
  .card:first-child { border:0; }
  .card:hover { background:var(--bg-2); }
  .card .n { display:block; font:500 .75rem/1 var(--font-mono); color:var(--accent); margin-block-end:3rem; }
  .card h3 { font-size:1.7rem; margin-block-end:.75rem; }
  .card p { font-size:.95rem; color:var(--muted); }

  .about-band { background:var(--bg-2); border-block:1px solid var(--line); }
  .about-in { display:grid; grid-template-columns:.9fr 1.1fr; gap:5rem; align-items:start; }
  .about-in .big { font:700 clamp(1.8rem,1.2rem + 1.8vw,2.6rem)/1.12 var(--font-display); text-transform:uppercase; text-wrap:balance; }
  .about-in .txt { color:var(--muted); margin-block-end:1.1rem; }
  .about-in .txt:first-child { color:var(--text); }
  .stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-block-start:2.25rem; background:var(--line); border:1px solid var(--line); }
  .stats div { padding:1.4rem; background:var(--bg-2); }
  .stats b { display:block; font:900 2.75rem/1 var(--font-display); color:var(--accent); }
  .stats span { font-size:.8rem; color:var(--muted); }

  .disc h3 { transition:color .2s, translate .3s; }
  .disc li:hover h3 { color:var(--accent); translate:.5rem 0; }

  .coop { background:var(--accent); color:var(--on-accent); padding-block:clamp(3.5rem,3rem + 4vw,6rem); }
  .coop-in { display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:end; }
  .coop h2 { font-size:clamp(2.5rem,1.5rem + 4vw,5.25rem); }
  .coop p { margin-block-end:1.75rem; font-size:1.1rem; }
  .btn-dark { background:var(--on-accent); color:var(--accent); border-color:var(--on-accent); }
  .btn-dark:hover { background:transparent; color:var(--on-accent); }
  .contact-h { font-size:clamp(2.5rem,1.6rem + 3.6vw,4.75rem); }

  .page-hero h1 { font-size:clamp(3rem,1.5rem + 7vw,7rem); }
  .tile, .policy-card { background:var(--bg-2); }
  .mission { background:var(--bg-2); border-block:1px solid var(--line); }
  .mission blockquote { text-transform:uppercase; }
  .mission blockquote::before { content:"“"; display:block; color:var(--accent); font-size:1.6em; line-height:.6; }
  .cta-band { background:var(--bg-2); }

  .rise { opacity:0; translate:0 1.5rem; animation:rise .8s cubic-bezier(.2,.8,.2,1) forwards; }
  .d1{animation-delay:.08s}.d2{animation-delay:.2s}.d3{animation-delay:.32s}.d4{animation-delay:.46s}
  @keyframes rise { to { opacity:1; translate:0 0; } }
  @media (prefers-reduced-motion: reduce) { .rise { opacity:1; translate:0 0; animation:none; } .strip-in, .loop-line { animation:none; } }

  @media (max-width:62rem) {
    .hero-in, .about-in, .coop-in { grid-template-columns:1fr; gap:3rem; }
    .cards { grid-template-columns:1fr 1fr; }
    .card:nth-child(3) { border-inline-start:0; }
    .card:nth-child(n+3) { border-block-start:1px solid var(--line); }
  }
  @media (max-width:36rem) {
    .cards { grid-template-columns:1fr; }
    .card { border-inline-start:0; border-block-start:1px solid var(--line); }
    .card:first-child { border-block-start:0; }
    .stats b { font-size:2rem; }
    .loop-meta dd { font-size:1.05rem; }
  }
}
