  :root{
    --ink:#0B1220;
    --panel:#101A2E;
    --panel-line:#26344E;
    --paper:#ECEEE8;
    --paper-dim:#C9CCC2;
    --amber:#F2A93B;
    --amber-dim:#8A6323;
    --wire:#4FB286;
    --slate:#8C9AB0;
    --ink-soft: #4A5468;
    --error:#E07856;
    --radius: 3px;
    --maxw: 1180px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }

  h1,h2,h3{ font-family:'Space Grotesk', sans-serif; font-weight:600; letter-spacing:-0.01em; }
  .mono{ font-family:'IBM Plex Mono', monospace; }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--amber-dim);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:1px;
    background:var(--amber);
    display:inline-block;
  }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:rgba(11,18,32,0.92);
    backdrop-filter: blur(8px);
    border-bottom:1px solid var(--panel-line);
  }
  header .wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:72px;
  }
  .logo{
    color:var(--paper);
    font-family:'Space Grotesk', sans-serif;
    font-weight:600;
    font-size:19px;
    display:flex; align-items:baseline; gap:8px;
  }
  .logo span{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    font-weight:500;
    color:var(--wire);
    border:1px solid var(--wire);
    padding:2px 6px;
    border-radius:2px;
    letter-spacing:0.05em;
  }
  nav.primary{ display:flex; align-items:center; gap:36px; }
  nav.primary a{
    color:var(--slate);
    font-size:14px;
    font-weight:500;
    transition:color .15s ease;
  }
  nav.primary a:hover{ color:var(--paper); }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    font-weight:500;
    padding:10px 18px;
    border-radius:var(--radius);
    border:1px solid transparent;
    cursor:pointer;
    transition: all .15s ease;
    letter-spacing:0.02em;
  }
  .btn-amber{ background:var(--amber); color:var(--ink); }
  .btn-amber:hover{ background:#ffbe57; }
  .btn-amber:disabled{ opacity:0.6; cursor:not-allowed; }
  .btn-ghost{ border-color:var(--panel-line); color:var(--paper); }
  .btn-ghost:hover{ border-color:var(--wire); color:var(--wire); }
  .btn-dark{ border-color:var(--ink); color:var(--ink); }
  .btn-dark:hover{ background:var(--ink); color:var(--paper); }

  /* ---------- Hero ---------- */
  .hero{
    background:var(--ink);
    color:var(--paper);
    position:relative;
    overflow:hidden;
    border-bottom:1px solid var(--panel-line);
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image: radial-gradient(var(--panel-line) 1px, transparent 1px);
    background-size: 22px 22px;
    opacity:0.35;
    mask-image: linear-gradient(to bottom, transparent, black 15%, black 70%, transparent);
  }
  .hero .wrap{
    position:relative;
    display:grid;
    grid-template-columns: 1.15fr 1fr;
    gap:56px;
    padding-top:88px;
    padding-bottom:88px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(34px, 4.4vw, 54px);
    line-height:1.08;
    margin:18px 0 22px;
    color:#fff;
  }
  .hero h1 em{
    font-style:normal;
    color:var(--amber);
  }
  .hero p.lede{
    font-size:17px;
    color:var(--slate);
    max-width:46ch;
    margin-bottom:32px;
  }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

  /* trace panel — signature element */
  .trace-panel{
    background:var(--panel);
    border:1px solid var(--panel-line);
    border-radius:6px;
    overflow:hidden;
    box-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
  }
  .trace-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 16px;
    border-bottom:1px solid var(--panel-line);
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    color:var(--slate);
    letter-spacing:0.05em;
  }
  .trace-dots{ display:flex; gap:6px; }
  .trace-dots span{ width:8px; height:8px; border-radius:50%; background:var(--panel-line); }
  .trace-body{
    padding:18px 16px 20px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    min-height:230px;
  }
  .trace-line{
    display:flex; gap:10px;
    color:var(--ink-soft);
    color:#5D6B85;
    opacity:0;
    transform:translateY(4px);
    animation: traceIn .45s ease forwards;
    margin-bottom:7px;
  }
  .trace-line .tag{ color:var(--wire); min-width:64px; }
  .trace-line .val{ color:#C7CEDD; }
  .trace-line.result .val{ color:var(--amber); }
  @keyframes traceIn{ to{ opacity:1; transform:translateY(0);} }

  .trace-graph{
    margin-top:14px;
    padding-top:14px;
    border-top:1px dashed var(--panel-line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
    opacity:0;
    animation: traceIn .5s ease forwards;
    animation-delay:2.4s;
  }
  .node{
    font-family:'IBM Plex Mono', monospace;
    font-size:10.5px;
    color:#C7CEDD;
    background:#0B1220;
    border:1px solid var(--panel-line);
    border-radius:3px;
    padding:6px 8px;
    text-align:center;
    flex:1;
  }
  .node.hot{ border-color:var(--wire); color:var(--wire); }
  .edge{ width:14px; height:1px; background:var(--panel-line); flex-shrink:0; }

  @media (prefers-reduced-motion: reduce){
    .trace-line, .trace-graph{ animation:none; opacity:1; transform:none; }
  }

  /* ---------- Problem section ---------- */
  .problem{ padding:96px 0; }
  .problem .wrap{
    display:grid; grid-template-columns: 0.8fr 1.2fr; gap:64px;
  }
  .problem h2{ font-size:clamp(26px,3vw,34px); line-height:1.2; }
  .problem .body p{ color:var(--ink-soft); max-width:60ch; margin-bottom:16px; font-size:16px; }
  .problem .body p:last-child{ margin-bottom:0; }
  .problem .body strong{ color:var(--ink); }

  /* ---------- Approach (pipeline) ---------- */
  .approach{
    background:var(--ink);
    color:var(--paper);
    padding:96px 0;
  }
  .approach .head{ max-width:640px; margin-bottom:64px; }
  .approach h2{ color:#fff; font-size:clamp(26px,3vw,34px); margin-top:14px; }
  .approach p{ color:var(--slate); margin-top:14px; font-size:16px; }

  .pipeline{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    position:relative;
  }
  .pipeline::before{
    content:"";
    position:absolute;
    top:20px; left:0; right:0;
    height:1px;
    background:var(--panel-line);
  }
  .step{
    padding:0 20px 0 0;
    position:relative;
  }
  .step:first-child{ padding-left:0; }
  .step .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--ink);
    background:var(--amber);
    width:40px; height:40px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px;
    position:relative; z-index:2;
  }
  .step h3{ font-size:18px; color:#fff; margin-bottom:10px; }
  .step p{ color:var(--slate); font-size:14.5px; }

  /* ---------- Comparison ---------- */
  .compare{ padding:96px 0; }
  .compare .head{ max-width:640px; margin-bottom:52px; }
  .compare h2{ font-size:clamp(26px,3vw,34px); }
  .compare p.sub{ color:var(--ink-soft); margin-top:14px; font-size:16px; }
  .compare-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:1px;
    background:var(--panel-line);
    border:1px solid var(--panel-line);
  }
  .compare-col{ background:var(--paper); padding:36px; }
  .compare-col.dark{ background:var(--ink); color:var(--paper); }
  .compare-col h4{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    margin-bottom:22px;
    color:var(--ink-soft);
  }
  .compare-col.dark h4{ color:var(--wire); }
  .compare-col ul{ list-style:none; }
  .compare-col li{
    font-size:15px;
    padding:11px 0;
    border-top:1px solid #D8DAD1;
    color:var(--ink-soft);
  }
  .compare-col.dark li{ border-top:1px solid var(--panel-line); color:var(--slate); }
  .compare-col li:first-child{ border-top:none; }
  .compare-col.dark li strong, .compare-col li strong{ color:inherit; }
  .compare-col.dark li::before{ content:"✓  "; color:var(--wire); font-family:'IBM Plex Mono', monospace; }
  .compare-col li::before{ content:"✕  "; color:#B7522F; font-family:'IBM Plex Mono', monospace; }

  /* ---------- Product capabilities ---------- */
  .product{ background:#E2E4DA; padding:96px 0; }
  .product .head{ max-width:680px; margin-bottom:56px; }
  .product h2{ font-size:clamp(26px,3vw,34px); }
  .product p.sub{ color:var(--ink-soft); margin-top:14px; font-size:16px; }
  .cap-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:1px;
    background:var(--panel-line);
    border:1px solid var(--panel-line);
  }
  .cap{ background:var(--paper); padding:28px 24px; }
  .cap .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    color:var(--wire);
    letter-spacing:0.06em;
    margin-bottom:14px;
    display:block;
  }
  .cap h3{ font-size:16.5px; margin-bottom:10px; }
  .cap p{ font-size:14px; color:var(--ink-soft); }

  /* ---------- New-module pill (hero) ---------- */
  .new-pill{
    display:inline-flex; align-items:center; gap:10px;
    margin-top:28px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--slate);
    border:1px solid var(--panel-line);
    border-radius:999px;
    padding:5px 14px 5px 5px;
    transition:border-color .15s ease, color .15s ease;
  }
  .new-pill b{
    background:var(--wire); color:var(--ink);
    font-weight:600; letter-spacing:0.06em;
    border-radius:999px; padding:2px 9px;
  }
  .new-pill:hover{ border-color:var(--wire); color:var(--paper); }

  /* ---------- LEGACY Naming (new module) ---------- */
  .naming{ padding:96px 0; border-bottom:1px solid #D8DAD1; }
  .naming .wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  }
  .naming .badge{
    display:inline-block;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--wire); border:1px solid var(--wire);
    border-radius:2px; padding:2px 7px; margin-bottom:14px;
  }
  .naming h2{ font-size:clamp(26px,3vw,34px); line-height:1.2; margin-top:14px; }
  .naming h2 .mono{ font-size:0.86em; color:var(--ink-soft); font-weight:500; }
  .naming p.sub{ color:var(--ink-soft); margin-top:14px; font-size:16px; max-width:52ch; }
  .naming-points{ list-style:none; margin:28px 0 30px; border-top:1px solid #D8DAD1; }
  .naming-points li{
    display:grid; grid-template-columns:150px 1fr; gap:16px;
    padding:14px 0; border-bottom:1px solid #D8DAD1;
    font-size:15px; color:var(--ink-soft);
  }
  .naming-points .k{
    font-family:'IBM Plex Mono', monospace; font-size:11.5px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--ink);
    padding-top:2px;
  }
  .naming-note{ font-size:13px; color:var(--ink-soft); margin-top:14px; }
  .name-line{
    display:flex; gap:10px; margin-bottom:9px;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:#5D6B85;
  }
  .name-line .tag{ color:var(--wire); min-width:78px; }
  .name-line .val{ color:#C7CEDD; }
  .name-line .val i{ font-style:normal; color:var(--slate); }
  .name-line.result .tag{ color:var(--amber); }
  .name-line.result .val{ color:var(--amber); }
  .name-foot{
    margin-top:14px; padding-top:12px; border-top:1px dashed var(--panel-line);
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--slate); letter-spacing:0.04em;
  }

  /* ---------- Trust band ---------- */
  .trust{ padding:64px 0; border-top:1px solid #D8DAD1; border-bottom:1px solid #D8DAD1; }
  .trust .wrap{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:32px;
  }
  .trust-item{ max-width:220px; }
  .trust-item .num{ font-family:'Space Grotesk', sans-serif; font-weight:700; font-size:28px; color:var(--ink); }
  .trust-item .label{ font-size:13px; color:var(--ink-soft); margin-top:4px; }
  .trust-partners{
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--ink-soft);
  }
  .trust-partners span{ color:var(--ink); font-weight:500; }

  /* ---------- CTA / Footer ---------- */
  .cta{
    background:var(--ink); color:var(--paper);
    padding:96px 0 72px;
  }
  .cta .wrap{
    display:grid; grid-template-columns:1.3fr 1fr; gap:56px;
  }
  .cta h2{ font-size:clamp(28px,3.4vw,40px); color:#fff; line-height:1.15; }
  .cta p{ color:var(--slate); margin-top:16px; max-width:44ch; font-size:16px; }
  .cta-ctas{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }

  /* ---------- Request for Information form (replaces contact-card) ---------- */
  .rfi-card{
    border:1px solid var(--panel-line);
    border-radius:6px;
    padding:28px;
    background:var(--panel);
  }
  .rfi-card h3{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--slate);
    margin-bottom:20px;
  }
  .rfi-field{ margin-bottom:16px; }
  .rfi-field label{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--slate);
    margin-bottom:7px;
  }
  .rfi-field label .req{ color:var(--amber); }
  .rfi-field input,
  .rfi-field textarea{
    width:100%;
    background:var(--ink);
    border:1px solid var(--panel-line);
    color:var(--paper);
    font-family:'IBM Plex Sans', sans-serif;
    font-size:14px;
    border-radius:var(--radius);
    padding:10px 12px;
    transition:border-color .15s;
  }
  .rfi-field input:focus,
  .rfi-field textarea:focus{ outline:none; border-color:var(--wire); }
  .rfi-field textarea{ min-height:96px; resize:vertical; }
  .rfi-field[aria-invalid="true"] input,
  .rfi-field[aria-invalid="true"] textarea{ border-color:var(--error); }
  .rfi-error{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    color:var(--error);
    margin-top:6px;
  }
  .rfi-toplevel-error{
    display:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--error);
    margin-bottom:16px;
    padding:9px 12px;
    border:1px solid var(--error);
    border-radius:var(--radius);
  }
  .rfi-toplevel-error.is-visible{ display:block; }
  .rfi-success{
    display:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    color:var(--wire);
    line-height:1.5;
  }
  .rfi-success.is-visible{ display:block; }
  .rfi-form.is-hidden{ display:none; }
  .rfi-submit-row{ margin-top:6px; }
  .rfi-submit-row .btn{ width:100%; justify-content:center; }
  .hp-field{ position:absolute; left:-9999px; top:-9999px; }

  footer{
    border-top:1px solid var(--panel-line);
    padding-top:28px; margin-top:64px;
  }
  footer .wrap{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    padding-bottom:0;
  }
  footer p{ font-size:13px; color:var(--slate); }

  /* ---------- Responsive ---------- */
  @media (max-width:900px){
    .hero .wrap{ grid-template-columns:1fr; padding-top:56px; padding-bottom:56px; }
    .problem .wrap{ grid-template-columns:1fr; gap:28px; }
    .pipeline{ grid-template-columns:1fr 1fr; row-gap:36px; }
    .pipeline::before{ display:none; }
    .compare-grid{ grid-template-columns:1fr; }
    .naming .wrap{ grid-template-columns:1fr; gap:40px; }
    .cap-grid{ grid-template-columns:1fr 1fr; }
    .cta .wrap{ grid-template-columns:1fr; }
    nav.primary{ display:none; }
  }
  @media (max-width:560px){
    .wrap{ padding:0 20px; }
    .cap-grid{ grid-template-columns:1fr; }
    .pipeline{ grid-template-columns:1fr; }
    .trust .wrap{ flex-direction:column; align-items:flex-start; }
    .naming-points li{ grid-template-columns:1fr; gap:4px; }
  }

  /* =====================================================================
     Multi-page additions: products menu, key statements, product cards,
     audiences, architecture figure. Shared by every page.
     ===================================================================== */

  /* ---------- Products menu ---------- */
  .nav-item{ position:relative; }
  .nav-trigger{
    background:none; border:0; cursor:pointer;
    color:var(--slate); font:500 14px 'IBM Plex Sans', sans-serif;
    display:inline-flex; align-items:center; gap:6px; padding:8px 0;
  }
  .nav-trigger::after{ content:"▾"; font-size:11px; }
  .nav-trigger:hover, .nav-item.open .nav-trigger{ color:var(--paper); }
  .nav-menu{
    display:none;
    position:absolute; top:100%; left:-18px;
    min-width:320px;
    background:var(--panel); border:1px solid var(--panel-line); border-radius:6px;
    padding:8px; box-shadow:0 24px 48px -16px rgba(0,0,0,0.6);
  }
  .nav-item:hover .nav-menu, .nav-item:focus-within .nav-menu, .nav-item.open .nav-menu{ display:block; }
  nav.primary .nav-menu a{
    display:block; padding:12px 14px; border-radius:4px; color:var(--paper);
  }
  nav.primary .nav-menu a:hover{ background:var(--ink); }
  .nav-menu a b{ display:block; font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:15px; }
  .nav-menu a small{ display:block; color:var(--slate); font-size:13px; font-weight:400; margin-top:2px; }
  nav.primary a[aria-current="page"]{ color:var(--paper); }
  .menu-toggle{
    display:none; background:none; border:1px solid var(--panel-line); color:var(--paper);
    font:500 13px 'IBM Plex Mono', monospace; padding:8px 12px; border-radius:var(--radius); cursor:pointer;
  }

  /* ---------- Key statements: what a busy reader must take away ---------- */
  .key{
    border-left:3px solid var(--amber);
    padding:4px 0 4px 18px;
    font-family:'Space Grotesk', sans-serif;
    font-weight:600; font-size:clamp(18px, 2vw, 21px); line-height:1.35;
    color:var(--ink); max-width:62ch;
  }
  .dark .key, .hero .key, .approach .key{ color:#fff; }
  .key-label{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10.5px; font-weight:600;
    letter-spacing:0.12em; text-transform:uppercase; color:var(--ink);
    background:var(--amber); border-radius:2px; padding:2px 7px; margin-bottom:10px;
  }

  /* "In brief": three statements under the hero */
  .brief{ background:#E2E4DA; border-bottom:1px solid #D8DAD1; padding:40px 0; }
  .brief .wrap{ display:grid; grid-template-columns:auto 1fr 1fr 1fr; gap:32px; align-items:start; }
  .brief h2{
    font-family:'IBM Plex Mono', monospace; font-size:12px; font-weight:600; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--amber-dim); padding-top:4px; white-space:nowrap;
  }
  .brief p{ font-size:15px; color:var(--ink-soft); }
  .brief p strong{ display:block; color:var(--ink); font-family:'Space Grotesk', sans-serif; font-size:17.5px; line-height:1.3; margin-bottom:6px; }

  /* ---------- Corporate hero: two products side by side ---------- */
  .hero.corporate .wrap{ grid-template-columns:1fr 1fr; }
  .product-cards{ display:grid; gap:16px; }
  .product-card{
    display:block; background:var(--panel); border:1px solid var(--panel-line); border-radius:6px;
    padding:22px 24px; transition:border-color .15s ease, transform .15s ease;
  }
  .product-card:hover{ border-color:var(--wire); transform:translateY(-2px); }
  .product-card .pc-kicker{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--wire);
  }
  .product-card h3{ color:#fff; font-size:22px; line-height:1.25; margin:6px 0 8px; }
  .product-card p{ color:var(--slate); font-size:15px; }
  .product-card .pc-more{ display:inline-block; margin-top:12px; font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--amber); }

  /* ---------- Two products, compared ---------- */
  .duo{ padding:96px 0; }
  .duo .head{ max-width:720px; margin-bottom:48px; }
  .duo h2{ font-size:clamp(26px,3vw,34px); margin-top:14px; }
  .duo p.sub{ color:var(--ink-soft); margin-top:14px; }
  .duo-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--panel-line); border:1px solid var(--panel-line); }
  .duo-col{ background:var(--paper); padding:36px; display:flex; flex-direction:column; gap:18px; }
  .duo-col h3{ font-size:24px; }
  .duo-col .q{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--amber-dim); }
  .benefits{ list-style:none; border-top:1px solid #D8DAD1; }
  .benefits li{ padding:12px 0; border-bottom:1px solid #D8DAD1; font-size:15px; color:var(--ink-soft); }
  .benefits li strong{ color:var(--ink); }
  .benefits li em{ font-style:normal; color:var(--ink-soft); }
  .duo-col .btn{ align-self:flex-start; margin-top:auto; }

  /* ---------- Who benefits ---------- */
  .audience{ background:var(--ink); color:var(--paper); padding:96px 0; }
  .audience .head{ max-width:720px; margin-bottom:48px; }
  .audience h2{ color:#fff; font-size:clamp(26px,3vw,34px); margin-top:14px; }
  .audience p.sub{ color:var(--slate); margin-top:14px; }
  .aud-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--panel-line); border:1px solid var(--panel-line); }
  .aud{ background:var(--ink); padding:28px 26px; }
  .aud .tag{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--wire); }
  .aud h3{ color:#fff; font-size:18px; margin:10px 0 8px; line-height:1.3; }
  .aud p{ color:var(--slate); font-size:14.5px; }

  /* ---------- Architecture figure ---------- */
  .architecture{ padding:80px 0 96px; background:#fff; border-bottom:1px solid #D8DAD1; }
  .architecture .head{ max-width:760px; margin-bottom:36px; }
  .architecture h2{ font-size:clamp(26px,3vw,34px); margin-top:14px; }
  .architecture p.sub{ color:var(--ink-soft); margin-top:14px; }
  .figure{ border:1px solid #D8DAD1; border-radius:6px; overflow:hidden; background:#fff; }
  .figure img{ width:100%; height:auto; }
  .fig-caption{
    display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:14px;
    font-size:13.5px; color:var(--ink-soft);
  }
  .fig-caption a{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; color:var(--amber-dim); border-bottom:1px solid currentColor; }
  .fig-reading{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; margin-top:40px; }
  .fig-reading div{ border-top:2px solid var(--ink); padding-top:14px; }
  .fig-reading b{ display:block; font-family:'Space Grotesk', sans-serif; font-size:17px; margin-bottom:6px; }
  .fig-reading p{ font-size:14.5px; color:var(--ink-soft); }

  /* ---------- Generic section helpers ---------- */
  .section{ padding:96px 0; }
  .section.tint{ background:#E2E4DA; }
  .section .head{ max-width:720px; margin-bottom:48px; }
  .section h2{ font-size:clamp(26px,3vw,34px); margin-top:14px; line-height:1.2; }
  .section p.sub{ color:var(--ink-soft); margin-top:14px; }
  .split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
  .stack > * + *{ margin-top:22px; }
  .steps-plain{ list-style:none; counter-reset:s; }
  .steps-plain li{ counter-increment:s; display:grid; grid-template-columns:40px 1fr; gap:14px; padding:16px 0; border-bottom:1px solid #D8DAD1; color:var(--ink-soft); font-size:15px; }
  .steps-plain li::before{ content:counter(s, decimal-leading-zero); font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--amber-dim); padding-top:3px; }
  .steps-plain li strong{ color:var(--ink); display:block; font-family:'Space Grotesk', sans-serif; font-size:16.5px; }
  .cta-band{ background:var(--amber); padding:40px 0; }
  .cta-band .wrap{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
  .cta-band p{ font-family:'Space Grotesk', sans-serif; font-weight:600; font-size:clamp(19px,2.2vw,24px); color:var(--ink); max-width:46ch; line-height:1.3; }
  .cta-band .btn-dark:hover{ background:var(--ink); color:var(--amber); }
  footer nav{ display:flex; gap:20px; flex-wrap:wrap; }
  footer nav a{ font-size:13px; color:var(--slate); }
  footer nav a:hover{ color:var(--paper); }

  @media (max-width:900px){
    .menu-toggle{ display:inline-block; }
    header .wrap{ position:relative; }
    header .btn-amber.head-cta{ display:none; }
    nav.primary.open{
      display:flex; flex-direction:column; align-items:stretch; gap:0;
      position:absolute; top:72px; left:0; right:0;
      background:var(--ink); border-bottom:1px solid var(--panel-line); padding:8px 20px 16px;
    }
    nav.primary.open > a, nav.primary.open .nav-trigger{ padding:12px 0; }
    nav.primary.open .nav-menu{ display:block; position:static; min-width:0; box-shadow:none; border:0; background:none; padding:0 0 8px 8px; }
    .hero.corporate .wrap{ grid-template-columns:1fr; }
    .brief .wrap{ grid-template-columns:1fr; gap:20px; }
    .duo-grid, .split{ grid-template-columns:1fr; }
    .split{ gap:36px; }
    .aud-grid{ grid-template-columns:1fr 1fr; }
    .fig-reading{ grid-template-columns:1fr; gap:20px; }
  }
  @media (max-width:560px){
    .aud-grid{ grid-template-columns:1fr; }
    .duo-col{ padding:26px 22px; }
    .figure{ overflow-x:auto; }
  }

  /* Footer on pages without the contact form */
  .site-foot{ background:var(--ink); padding:28px 0; }
  .site-foot footer{ margin-top:0; padding-top:0; border-top:0; }

  section[id]{ scroll-margin-top:72px; }
