  /* ============================================================
     CVG brand palette. Hex fallbacks first, OKLCH override under
     @supports. OKLCH values are faithful conversions of the
     client's exact hex, not adjustments.
     ============================================================ */
  :root {
    --dark-forest: #0D1A0D;   /* primary ground */
    --forest:      #1A2E1A;   /* raised ground, cards, alternate sections */
    --moss:        #2D4A2D;   /* subtle rules and borders on dark */
    --fern:        #3D6B3D;   /* rare mid-green accents, vertical dividers */
    --gold:        #C9A84C;   /* hairline rules, labels, key numerals, wordmark */
    --gold-light:  #E8C97A;   /* hover/active state of gold elements */
    --gold-pale:   #F5E4B0;   /* large Bebas numerals on dark, sparingly */
    --gold-deep:   #7A5A17;   /* gold accent as text on light/paper ground, AA-safe */
    --off-white:   #F2EDE4;   /* ink on dark; ground of the light section */
    --concrete:    #B0A898;   /* secondary ink, metadata, captions */

    /* Roles */
    --bg:            var(--dark-forest);
    --bg-raised:     var(--forest);
    --bg-inverse:    var(--off-white);
    --ink:           var(--off-white);
    --ink-secondary: var(--concrete);
    --ink-inverse:   var(--dark-forest);
    --accent:        var(--gold);
    --rule-gold:     var(--gold);
    --rule-subtle:   var(--moss);
  }

  @supports (color: oklch(50% 0.1 140)) {
    :root {
      --dark-forest: oklch(20.1% 0.031 144.3);
      --forest:      oklch(27.8% 0.045 144.3);
      --moss:        oklch(37.7% 0.060 144.3);
      --fern:        oklch(48.2% 0.088 144.1);
      --gold:        oklch(74.3% 0.117 89.5);
      --gold-light:  oklch(84.5% 0.104 88.7);
      --gold-pale:   oklch(92.0% 0.070 92.1);
      --gold-deep:   oklch(48.9% 0.091 81.3);
      --off-white:   oklch(94.8% 0.013 82.4);
      --concrete:    oklch(73.4% 0.024 84.6);
      --rule-gold:   oklch(74.3% 0.117 89.5 / 0.65); /* structural rules sit back slightly */
    }
  }

  /* Fluid type scale (each step >= 1.25x the previous at both ends) */
  :root {
    --step-display-xl: clamp(3.75rem, 2.2rem + 7vw, 8.75rem);  /* hero wordmark, giant stats */
    --step-display:    clamp(2.5rem, 1.8rem + 3vw, 4.5rem);    /* Bebas section headlines */
    --step-heading:    clamp(1.5rem, 1.3rem + 1vw, 2.25rem);   /* Barlow Condensed 600 subheads */
    --step-lead:       clamp(1.125rem, 1.05rem + 0.4vw, 1.375rem); /* Barlow 300 lead */
    --step-body:       clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);    /* Barlow 300/400 */
    --step-label:      0.6875rem;  /* tracked uppercase Barlow Condensed, fixed */
    --step-micro:      0.625rem;   /* rule metadata, footer legal */
  }

  /* Spacing rhythm and layout tokens */
  :root {
    --space-section-lg: clamp(7rem, 12vw, 11rem);
    --space-section:    clamp(5rem, 9vw, 8rem);
    --space-section-sm: clamp(3.5rem, 6vw, 5.5rem);
    --maxw: 1720px;
    --pad: clamp(1.25rem, 4vw, 3.25rem);
    --nav-h: 5.06rem;
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* ============================== Reset ============================== */
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { -webkit-text-size-adjust: 100%; }
  @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
  img { max-width: 100%; display: block; }
  button, input, textarea { font: inherit; color: inherit; }

  body {
    font-family: 'Barlow', system-ui, sans-serif;
    font-weight: 300;
    font-size: var(--step-body);
    line-height: 1.65;
    background: var(--bg);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
  }

  .tnum { font-variant-numeric: tabular-nums; }
  .vh {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
  }

  /* Skip link */
  .skip {
    position: absolute; left: -999px; top: 0; z-index: 200;
    background: var(--gold); color: var(--ink-inverse);
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.75rem;
    padding: 0.6rem 1rem; text-decoration: none;
  }
  .skip:focus { left: 0.75rem; top: 0.75rem; }

  /* Container */
  .wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--pad); }

  /* Focus visibility */
  a:focus-visible, button:focus-visible, input:focus-visible,
  textarea:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 3px;
  }

  /* ============================== Navigation ============================== */
  .nav {
    position: fixed; inset: 0 0 auto 0; z-index: 100;
    height: var(--nav-h);
    display: flex; align-items: center;
    background: var(--dark-forest); /* solid tint, no glassmorphism */
    border-bottom: 1px solid var(--rule-gold);
  }
  .nav .wrap { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 1rem; }

  /* Horizontal lockup V3, small scale */
  .brand-h { display: flex; align-items: center; gap: 0.88rem; text-decoration: none; }
  .brand-h .bh-name {
    font-family: 'Bebas Neue', sans-serif; font-size: 1.96rem;
    letter-spacing: 0.08em; text-indent: 0.08em; color: var(--gold); line-height: 1;
  }
  .brand-h .bh-div { width: 1px; height: 1.84rem; background: var(--fern); }
  .brand-h .bh-stack { display: flex; flex-direction: column; }
  .brand-h .bh-v {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 0.76rem;
    letter-spacing: 0.34em; text-indent: 0.34em; text-transform: uppercase;
    color: var(--ink); line-height: 1.25;
  }
  .brand-h .bh-g {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 300; font-size: 0.69rem;
    letter-spacing: 0.5em; text-indent: 0.5em; text-transform: uppercase;
    color: var(--ink-secondary); line-height: 1.25;
  }

  .nav-links { display: flex; align-items: center; gap: clamp(1.27rem, 2.75vw, 2.64rem); list-style: none; }
  .nav-links a {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.88rem;
    letter-spacing: 0.24em; text-transform: uppercase; color: var(--ink-secondary);
    text-decoration: none; transition: color 200ms var(--ease);
  }
  .nav-links a:hover { color: var(--gold-light); }
  .nav-cta {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.88rem;
    letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold);
    text-decoration: none; border: 1px solid var(--gold); padding: 0.64rem 1.14rem;
    transition: background-color 200ms var(--ease), color 200ms var(--ease);
  }
  .nav-cta:hover, .nav-cta:focus-visible { background: var(--gold); color: var(--ink-inverse); }

  /* Mobile menu toggle: hidden on desktop, hairline-icon + tracked label */
  .nav-toggle {
    display: none; align-items: center; gap: 0.55rem;
    background: transparent; border: 1px solid var(--gold); color: var(--gold);
    padding: 0.64rem 1.08rem; cursor: pointer;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.88rem;
    letter-spacing: 0.28em; text-indent: 0.28em; text-transform: uppercase;
    transition: background-color 200ms var(--ease), color 200ms var(--ease);
  }
  .nav-toggle:hover, .nav-toggle:focus-visible { background: var(--gold); color: var(--ink-inverse); }
  .nav-toggle-icon { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; width: 19px; }
  .nav-toggle-icon span { display: block; height: 1px; width: 100%; background: currentColor; }

  /* Mobile navigation panel */
  .mobile-nav {
    display: none; position: fixed; top: var(--nav-h); left: 0; right: 0; z-index: 99;
    background: var(--dark-forest); border-bottom: 1px solid var(--rule-gold);
  }
  .mobile-nav-inner { padding: 0.25rem var(--pad) 1.5rem; }
  .mobile-nav ul { list-style: none; }
  .mobile-nav li { border-bottom: 1px solid var(--rule-subtle); }
  .mobile-nav li:last-child { border-bottom: 0; }
  .mobile-nav a {
    display: block; padding: 1.05rem 0; text-decoration: none;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.85rem;
    letter-spacing: 0.28em; text-indent: 0.28em; text-transform: uppercase;
    color: var(--ink-secondary); transition: color 200ms var(--ease);
  }
  .mobile-nav a:hover, .mobile-nav a:focus-visible { color: var(--gold-light); }
  .mobile-nav a.mobile-cta {
    color: var(--gold); border: 1px solid var(--gold); text-align: center;
    text-indent: 0; margin-top: 1.1rem; padding: 1rem;
    transition: background-color 200ms var(--ease), color 200ms var(--ease);
  }
  .mobile-nav a.mobile-cta:hover, .mobile-nav a.mobile-cta:focus-visible {
    background: var(--gold); color: var(--ink-inverse);
  }

  /* ============================== Buttons & links ============================== */
  .btn {
    display: inline-block; font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    font-size: 0.8rem; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--gold); border: 1px solid var(--gold); background: transparent;
    padding: 0.95rem 1.7rem; text-decoration: none; cursor: pointer;
    transition: background-color 200ms var(--ease), color 200ms var(--ease);
  }
  .btn:hover, .btn:focus-visible { background: var(--gold); color: var(--ink-inverse); }
  .btn:disabled { opacity: 0.4; cursor: not-allowed; }
  .btn:disabled:hover { background: transparent; color: var(--gold); }

  .link-arrow {
    display: inline-flex; align-items: center; gap: 0.5rem;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.8rem;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink);
    text-decoration: none; border-bottom: 1px solid var(--rule-gold); padding-bottom: 3px;
    transition: color 200ms var(--ease), border-color 200ms var(--ease);
  }
  .link-arrow .arw { color: var(--gold); transition: transform 200ms var(--ease); }
  .link-arrow:hover { color: var(--gold-light); border-color: var(--gold-light); }
  .link-arrow:hover .arw { transform: translateX(3px); }

  /* ============================== Ledger rule (signature device) ============================== */
  .ledger {
    position: relative; display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem;
    justify-content: space-between; align-items: baseline;
    padding-bottom: 0.75rem; margin-bottom: clamp(2rem, 4vw, 3.25rem);
  }
  .ledger::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
    background: var(--rule-gold); transform: scaleX(0); transform-origin: left;
    transition: transform 600ms var(--ease);
  }
  .ledger.is-visible::after { transform: scaleX(1); }
  .lr-label, .lr-datum {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.8125rem;
    text-transform: uppercase; opacity: 0; transition: opacity 600ms var(--ease) 150ms;
  }
  .ledger.is-visible .lr-label, .ledger.is-visible .lr-datum { opacity: 1; }
  .lr-label { letter-spacing: 0.28em; color: var(--ink); }
  .lr-num { color: var(--gold); }
  .lr-datum { letter-spacing: 0.2em; color: var(--gold-light); font-variant-numeric: tabular-nums; }

  /* ============================== Sections ============================== */
  .section { padding-block: var(--space-section); }
  .section[id] { scroll-margin-top: calc(var(--nav-h) + 1rem); }
  .s-dark { background: var(--bg); }
  .s-raised { background: var(--bg-raised); }
  .section--paper { background: var(--bg-inverse); color: var(--ink-inverse); }
  .section--paper .lr-label { color: var(--ink-inverse); }
  .section--paper .lr-num,
  .section--paper .lr-datum { color: var(--ink-inverse); }

  .headline {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.04em; line-height: 1; text-transform: uppercase; color: var(--ink);
  }
  .section--paper .headline { color: var(--ink-inverse); }
  .lead { font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-lead); line-height: 1.5; }
  .body-copy { max-width: 62ch; color: var(--ink-secondary); }
  .body-copy + .body-copy { margin-top: 1.25rem; }
  .measure { max-width: 62ch; }

  /* ============================== Hero ============================== */
  .hero {
    position: relative; overflow: hidden;
    aspect-ratio: 16 / 9;
    min-height: 560px;
    display: flex; align-items: center;
    padding: calc(var(--nav-h) + 2rem) 0 3rem;
    background: var(--bg);
  }
  .hero > .wrap { position: relative; z-index: 2; width: 100%; }
  .hero-video {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; z-index: 0; pointer-events: none;
  }
  .hero-overlay {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background:
      linear-gradient(102deg, rgba(13,26,13,0.72) 0%, rgba(13,26,13,0.38) 46%, rgba(13,26,13,0.10) 100%),
      linear-gradient(to bottom, rgba(13,26,13,0.10), rgba(13,26,13,0.05) 42%, rgba(13,26,13,0.28));
  }
  @media (prefers-reduced-motion: reduce) {
    .hero-video { display: none; }
    .hero { background: var(--bg) url("hero-poster.jpg") center / cover no-repeat; }
  }
  .hero .ledger { margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
  .hero-eyebrow {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 300; font-size: var(--step-label);
    letter-spacing: 0.6em; text-indent: 0.6em; text-transform: uppercase; color: var(--gold);
    margin-bottom: 1.1rem;
  }
  /* Hero wordmark, lockup V5 (minimal, left-anchored) */
  .wordmark { margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); }
  .wm-name {
    display: block; font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display-xl);
    letter-spacing: 0.06em; text-indent: 0.06em; line-height: 0.9; color: var(--ink);
  }
  .wm-sub-row { display: flex; align-items: center; gap: 0.85rem; margin-top: 0.5rem; }
  .wm-dash { width: 4.8rem; height: 2px; background: var(--gold); flex-shrink: 0; }
  .wm-sub {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 300; font-size: calc(var(--step-label) * 2);
    letter-spacing: 0.45em; text-indent: 0.45em; text-transform: uppercase; color: var(--ink-secondary);
  }
  .hero-tagline {
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-lead);
    line-height: 1.4; color: var(--ink); max-width: 30ch; margin-bottom: 1.1rem;
  }
  .hero-support { max-width: 54ch; color: var(--ink-secondary); margin-bottom: clamp(2rem, 4vw, 2.75rem); }
  .hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem 2rem; }
  /* Slot A: two-column hero at 900px and up; single column below (figure stacks after the CTAs) */
  .hero-grid {
    display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.9fr);
    gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
  }
  .hero-copy { min-width: 0; }

  /* Intro section: copy left, two large CTA blocks right */
  .intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
  .intro-copy { min-width: 0; }
  .intro-actions { display: flex; gap: clamp(0.9rem, 1.4vw, 1.4rem); }
  .cta-block {
    display: flex; align-items: center; justify-content: center; text-align: center;
    width: clamp(170px, 12vw, 230px); min-height: clamp(108px, 8vw, 140px);
    padding: 1rem; box-sizing: border-box; text-decoration: none;
    border: 1px solid var(--gold); color: var(--gold);
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: clamp(0.95rem, 1.1vw, 1.2rem);
    letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.25;
    transition: background-color 200ms var(--ease), color 200ms var(--ease);
  }
  .cta-block:hover, .cta-block:focus-visible { background: var(--gold); color: var(--ink-inverse); }
  .cta-block--solid { background: var(--gold); color: var(--ink-inverse); }
  .cta-block--solid:hover, .cta-block--solid:focus-visible { background: transparent; border-color: var(--gold); color: var(--gold); }
  @media (max-width: 900px) {
    .intro-grid { grid-template-columns: 1fr; gap: clamp(2rem, 6vw, 3rem); }
    .intro-actions { width: 100%; }
    .cta-block { flex: 1; width: auto; min-height: 100px; }
  }

  /* ============================== Thesis ============================== */
  .pull {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.05em; line-height: 1; color: var(--gold-pale);
    margin: clamp(2.5rem, 5vw, 3.5rem) 0; max-width: 16ch;
  }
  .thesis-head { margin-bottom: clamp(2rem, 4vw, 2.75rem); }

  /* ============================== Strategy ============================== */
  .subhead {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-heading);
    letter-spacing: 0.04em; line-height: 1.1; color: var(--ink); margin: 1.1rem 0 1.75rem;
  }
  .model { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
  .model-block {
    display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: clamp(1.25rem, 4vw, 3.5rem); align-items: center;
    padding-block: clamp(1.75rem, 3.5vw, 2.5rem); border-top: 1px solid var(--rule-subtle);
  }
  .model-block:last-of-type { border-bottom: 1px solid var(--rule-subtle); }
  .model-label {
    display: block; font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.05em; line-height: 1; color: var(--ink); text-transform: uppercase;
  }
  .model-pct {
    display: block; font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display-xl);
    line-height: 0.88; letter-spacing: 0.01em; color: var(--gold-pale);
    font-variant-numeric: tabular-nums; margin-top: 0.25rem;
  }
  .model-note { color: var(--ink-secondary); max-width: 40ch; }
  .model-caption {
    font-size: var(--step-micro); letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--ink-secondary); margin-top: 1.1rem;
  }

  .layers { margin-top: clamp(3rem, 6vw, 4.5rem); border-top: 1px solid var(--rule-subtle); }
  .layer {
    display: grid; grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem clamp(1rem, 3vw, 2.5rem); align-items: start;
    padding-block: clamp(1.4rem, 2.8vw, 1.9rem); border-bottom: 1px solid var(--rule-subtle);
  }
  .layer-num {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.2em; color: var(--gold); font-variant-numeric: tabular-nums; padding-top: 0.5rem;
  }
  .layer-name {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-heading);
    letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); line-height: 1.1;
    margin-bottom: 0.5rem;
  }
  .layer-detail { color: var(--ink-secondary); max-width: 62ch; }
  .table-caption {
    font-size: var(--step-micro); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--ink-secondary); margin-top: 1.4rem; max-width: 60ch;
  }

  /* ============================== Markets ============================== */
  .giant {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display-xl);
    line-height: 0.88; letter-spacing: 0.01em; color: var(--gold-pale);
    font-variant-numeric: tabular-nums;
  }
  .giant-label {
    display: block; font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    font-size: var(--step-label); letter-spacing: 0.35em; text-transform: uppercase;
    color: var(--gold); margin-top: 0.9rem;
  }
  .markets-grid {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 5rem); align-items: end; margin-top: clamp(2.5rem, 5vw, 3.5rem);
  }
  .cities { list-style: none; border-top: 1px solid var(--rule-gold); }
  .city {
    display: flex; justify-content: space-between; align-items: baseline;
    padding-block: clamp(0.9rem, 2vw, 1.4rem); border-bottom: 1px solid var(--rule-subtle);
  }
  .city-name {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.06em; line-height: 1; color: var(--ink);
  }
  .city-datum {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.3em; color: var(--gold); font-variant-numeric: tabular-nums;
  }
  .ledger-caption {
    font-size: var(--step-micro); letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--ink-secondary); margin-top: 1.4rem;
  }

  /* ============================== Track record (paper) ============================== */
  .section--paper { padding-block: var(--space-section-lg); }
  .framing {
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-lead);
    line-height: 1.5; color: var(--ink-inverse); max-width: 60ch; margin: 1.1rem 0 clamp(3rem, 6vw, 4.5rem);
  }
  .case-name {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.05em; line-height: 1; color: var(--ink-inverse); text-transform: uppercase;
  }
  .case-meta {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.24em; text-transform: uppercase; color: var(--moss);
    font-variant-numeric: tabular-nums; padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--gold); margin: 0.75rem 0 clamp(1.75rem, 3.5vw, 2.5rem);
  }
  .dunkirk-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.15fr) minmax(0, 0.9fr);
    gap: clamp(2rem, 5vw, 4rem); align-items: start;
  }
  .case-body { color: var(--moss); max-width: 56ch; }
  .giant-paper { color: var(--ink-inverse); }
  .case-qual {
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-body);
    color: var(--moss); max-width: 34ch; margin-top: 0.75rem;
  }
  .case-qual em { font-style: italic; }
  .works {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.2em; text-transform: uppercase; color: var(--moss);
    font-variant-numeric: tabular-nums; padding-top: 1.1rem; margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
    border-top: 1px solid var(--gold);
  }

  .deals { margin-top: clamp(3rem, 6vw, 4.5rem); border-top: 1px solid var(--gold); }
  .deal {
    display: grid; grid-template-columns: minmax(0, 2fr) auto minmax(0, 1.1fr) minmax(0, 1.6fr);
    gap: 0.5rem clamp(1rem, 3vw, 2.5rem); align-items: baseline;
    padding-block: clamp(1.4rem, 2.8vw, 1.9rem); border-bottom: 1px solid var(--gold);
  }
  .deal-venue {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-heading);
    letter-spacing: 0.05em; line-height: 1; color: var(--ink-inverse); text-transform: uppercase;
  }
  .deal-year {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.2em; color: var(--moss); font-variant-numeric: tabular-nums;
  }
  .deal-out { white-space: nowrap; }
  .deal-num {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-heading);
    letter-spacing: 0.03em; color: var(--ink-inverse); font-variant-numeric: tabular-nums;
  }
  .deal-irr {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.2em; text-transform: uppercase; color: var(--moss);
  }
  .deal-note { color: var(--moss); font-size: var(--step-body); }
  .cc-note {
    font-family: 'Barlow', sans-serif; font-style: italic; font-weight: 300; font-size: var(--step-micro);
    line-height: 1.6; color: var(--moss); max-width: 70ch; margin-top: 1.25rem;
  }
  .footnote {
    font-family: 'Barlow', sans-serif; font-style: italic; font-weight: 300; font-size: var(--step-micro);
    line-height: 1.6; color: var(--moss); max-width: 70ch; margin-top: clamp(1.75rem, 3.5vw, 2.5rem);
  }

  /* ============================== Principals ============================== */
  .principals-intro { margin: 1.1rem 0 clamp(3rem, 6vw, 4.5rem); }
  .bios { border-top: 1px solid var(--rule-subtle); }
  .bio {
    display: grid;
    grid-template-columns: minmax(0, 180px) minmax(0, 1fr) minmax(0, 1.6fr);
    gap: 0.75rem clamp(2rem, 5vw, 4rem); align-items: start;
    padding-block: clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--rule-subtle);
  }
  .bio-name {
    font-family: 'Bebas Neue', sans-serif; font-size: var(--step-display);
    letter-spacing: 0.05em; line-height: 1; color: var(--ink); text-transform: uppercase;
  }
  .bio-role {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-heading);
    letter-spacing: 0.04em; color: var(--gold); margin-top: 0.25rem;
  }
  .bio-meta {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-secondary);
    font-variant-numeric: tabular-nums; margin-top: 0.9rem;
  }
  .bio-text { color: var(--ink-secondary); max-width: 62ch; }

  /* Team on paper (this revision): ink and rules invert; role uses AA-safe deep gold on paper */
  .section--paper .principals-intro { color: var(--ink-inverse); }
  .section--paper .bio-name { color: var(--ink-inverse); }
  .section--paper .bio-meta,
  .section--paper .bio-text { color: var(--moss); }
  .section--paper .bio-role { color: var(--gold-deep); }
  .section--paper .bios { border-top-color: var(--gold); }
  .section--paper .bio { border-bottom-color: var(--gold); }

  /* ============================== Enquiry ============================== */
  .gating {
    max-width: 68ch; color: var(--ink-secondary); margin: 1.1rem 0 clamp(3rem, 6vw, 4rem);
  }
  .enquiry-grid {
    display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 5rem); align-items: start;
  }
  .field { margin-bottom: 1.75rem; }
  .field label, .field .field-label {
    display: block; font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    font-size: var(--step-label); letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--ink); margin-bottom: 0.6rem;
  }
  .field input, .field textarea {
    width: 100%; background: transparent; color: var(--ink);
    border: 1px solid var(--rule-subtle); padding: 0.8rem 0.9rem;
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-body);
    transition: border-color 200ms var(--ease);
  }
  .field input::placeholder, .field textarea::placeholder { color: var(--ink-secondary); opacity: 0.7; }
  .field input:focus, .field textarea:focus { outline: none; border-color: var(--gold); }
  .field textarea { resize: vertical; min-height: 6rem; }
  .field-helper {
    font-size: var(--step-micro); color: var(--ink-secondary); margin-top: 0.45rem; letter-spacing: 0.02em;
  }
  .ack {
    display: flex; gap: 0.85rem; align-items: flex-start;
    padding: 1.1rem; border: 1px solid var(--rule-subtle); margin-bottom: 1.5rem;
  }
  .ack input[type="checkbox"] {
    flex-shrink: 0; width: 1.5rem; height: 1.5rem; margin-top: 0.1rem;
    accent-color: var(--gold); cursor: pointer;
  }
  .ack label {
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-body);
    line-height: 1.5; color: var(--ink); cursor: pointer;
  }
  .submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem 1.25rem; }
  .disabled-helper { font-size: var(--step-micro); color: var(--ink-secondary); letter-spacing: 0.02em; }
  .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
  .noscript-note {
    font-family: 'Barlow', sans-serif; font-weight: 300; font-size: var(--step-body);
    line-height: 1.5; color: var(--ink); border: 1px solid var(--rule-gold);
    padding: 0.9rem 1.1rem; margin-bottom: 1.5rem;
  }

  .direct-label {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-label);
    letter-spacing: 0.32em; text-transform: uppercase; color: var(--gold);
    padding-bottom: 0.75rem; border-bottom: 1px solid var(--rule-gold); margin-bottom: 1.5rem;
  }
  .direct-person { padding-block: 1.1rem; border-bottom: 1px solid var(--rule-subtle); }
  .direct-person:first-of-type { padding-top: 0; }
  .direct-name {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.95rem;
    letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink);
  }
  .direct-role { font-size: var(--step-micro); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-secondary); margin-top: 0.2rem; }
  .direct-line { font-size: var(--step-body); color: var(--ink-secondary); margin-top: 0.5rem; }
  .direct-line a { color: var(--gold); text-decoration: none; }
  .direct-line a:hover { color: var(--gold-light); }

  /* Inline [client to confirm] markers, subtly flagged */
  .cc {
    font-style: italic; color: var(--concrete);
    border-bottom: 1px dotted var(--gold); padding-bottom: 1px;
  }

  /* ============================== FAQ ============================== */
  .faq-list { border-top: 1px solid var(--rule-subtle); margin-top: clamp(2rem, 4vw, 3rem); }
  .faq-item { border-bottom: 1px solid var(--rule-subtle); }
  .faq-q {
    list-style: none; cursor: pointer; margin: 0;
    display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem;
    padding-block: clamp(1.15rem, 2.6vw, 1.75rem);
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: var(--step-heading);
    letter-spacing: 0.02em; line-height: 1.2; color: var(--ink);
    transition: color 200ms var(--ease);
  }
  .faq-q::-webkit-details-marker { display: none; }
  .faq-q::after {
    content: '+'; flex-shrink: 0; color: var(--gold);
    font-weight: 400; font-size: 1.4em; line-height: 0.85;
    transition: transform 220ms var(--ease);
  }
  .faq-q:hover { color: var(--gold-light); }
  .faq-q:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
  details.faq-item[open] > .faq-q { color: var(--gold-light); }
  details.faq-item[open] > .faq-q::after { transform: rotate(45deg); }
  .faq-a { color: var(--ink-secondary); max-width: 74ch; padding-bottom: clamp(1.15rem, 2.6vw, 1.75rem); }
  details.faq-item[open] .faq-a { animation: faqReveal 280ms var(--ease); }
  @keyframes faqReveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  @media (prefers-reduced-motion: reduce) { details.faq-item[open] .faq-a { animation: none; } }

  /* ============================== Footer ============================== */
  .footer {
    background: var(--bg-raised); border-top: 1px solid var(--rule-gold);
    padding-block: clamp(2.75rem, 5vw, 4.25rem);
  }
  .footer .wrap { display: block; text-align: left; }
  .footer-top {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1.5rem 2.5rem; flex-wrap: wrap;
  }
  .footer .wm-stacked { display: inline-flex; flex-direction: column; align-items: center; text-decoration: none; }
  .footer .wm-stacked .rule { height: 2px; background: var(--gold); align-self: stretch; }
  .footer .wm-stacked .rule-top { margin-bottom: 0.7rem; }
  .footer .wm-stacked .rule-bottom { margin-top: 0.7rem; }
  .footer .wm-stacked .cs {
    font-family: 'Bebas Neue', sans-serif; font-size: clamp(2rem, 3.4vw, 2.75rem);
    letter-spacing: 0.12em; text-indent: 0.12em; color: var(--gold); line-height: 1;
  }
  .footer .wm-stacked .vg {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 300; font-size: 0.8rem;
    letter-spacing: 0.5em; text-indent: 0.5em; text-transform: uppercase;
    color: var(--ink); margin-top: 0.4rem;
  }
  .footer-nav { display: flex; flex-wrap: wrap; gap: clamp(1.25rem, 2.5vw, 2.75rem); }
  .footer-nav a {
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.8rem;
    letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-secondary);
    text-decoration: none; transition: color 200ms var(--ease);
  }
  .footer-nav a:hover, .footer-nav a:focus-visible { color: var(--gold-light); }
  .footer-rule { border: 0; border-top: 1px solid var(--rule-subtle); margin: clamp(1.75rem, 3.5vw, 2.75rem) 0; }
  .footer-legal { max-width: 92ch; }
  .footer-entity {
    font-size: 0.9rem; line-height: 1.6; letter-spacing: 0.01em;
    color: var(--ink); font-variant-numeric: tabular-nums;
  }
  .footer-disclaimer {
    font-size: 0.82rem; line-height: 1.7; color: var(--ink-secondary);
    max-width: 84ch; margin-top: clamp(1.5rem, 3vw, 2.25rem);
  }
  .footer-copy {
    font-size: 0.8rem; line-height: 1.6; letter-spacing: 0.02em;
    color: var(--ink-secondary); margin-top: clamp(1.5rem, 3vw, 2.25rem);
  }

  /* ============================== Photography plates (duotone) ============================== */
  /* Duotone plate: any client photo grades into forest + gold */
  .figure {
    position: relative;
    border: 1px solid var(--gold);
    background: var(--gold);          /* highlight plate */
    overflow: hidden;
  }
  .figure > img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    filter: grayscale(1) contrast(1.08) brightness(1.02);
    mix-blend-mode: multiply;         /* highlights toward gold */
  }
  .figure::after {
    content: ""; position: absolute; inset: 0;
    background: var(--dark-forest);
    mix-blend-mode: lighten;          /* lifts blacks to dark forest */
    pointer-events: none;
  }
  /* Fallback: forest-tinted grayscale with the same gold frame */
  @supports not (mix-blend-mode: multiply) {
    .figure { background: var(--forest); }
    .figure > img { filter: grayscale(1) contrast(1.05) brightness(0.95); mix-blend-mode: normal; }
    .figure::after { background: var(--forest); opacity: 0.45; mix-blend-mode: normal; }
  }

  /* Aspect ratios per slot */
  .figure--hero { aspect-ratio: 4 / 5; }
  .figure--case { aspect-ratio: 4 / 3; }
  .figure--head { aspect-ratio: 1 / 1; }

  /* Caption: a mini ledger line under the plate, real metadata only */
  .figure-caption {
    display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.6rem;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    font-size: var(--step-micro); letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--gold-light);
  }
  .section--paper .figure-caption { color: var(--moss); }

  /* Placeholder state: forest block, gold frame, tracked slot label. No overlay. */
  .figure.is-placeholder { background: var(--forest); }
  .figure.is-placeholder::after { content: none; }
  .figure-slot {
    position: absolute; top: 0.9rem; left: 0.9rem; right: 0.9rem;
    font-family: 'Barlow Condensed', sans-serif; font-weight: 600;
    font-size: var(--step-micro); letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--gold-light); line-height: 1.9;
  }

  /* ============================== Reveal motion ============================== */
  .reveal {
    opacity: 0; transform: translateY(14px);
    transition: opacity 600ms var(--ease), transform 600ms var(--ease);
    transition-delay: calc(var(--i, 0) * 70ms);
  }
  .reveal.is-visible { opacity: 1; transform: none; }

  /* ============================== Responsive ============================== */
  @media (max-width: 900px) {
    .hero-grid, .dunkirk-grid, .markets-grid, .enquiry-grid, .bio, .model-block { grid-template-columns: 1fr; }
    .model-block { gap: 1.25rem; }
    .bio-name { font-size: var(--step-heading); }
    /* Cap the stacked plate widths so a single-column figure never fills the viewport */
    .hero-grid > figure { max-width: 22rem; }
    .bio > figure { max-width: 11rem; }
  }
  @media (max-width: 820px) {
    .nav-links { display: none; }
    .nav-toggle { display: inline-flex; }
    .mobile-nav {
      display: block; visibility: hidden; opacity: 0; transform: translateY(-8px);
      pointer-events: none;
      transition: opacity 500ms var(--ease), transform 500ms var(--ease), visibility 0s linear 500ms;
    }
    .mobile-nav.is-open {
      visibility: visible; opacity: 1; transform: none; pointer-events: auto;
      transition: opacity 500ms var(--ease), transform 500ms var(--ease), visibility 0s;
    }
  }
  @media (max-width: 640px) {
    .deal { grid-template-columns: 1fr auto; grid-auto-flow: row; }
    .deal-venue { grid-column: 1 / 2; }
    .deal-year { grid-column: 2 / 3; text-align: right; }
    .deal-out { grid-column: 1 / 2; }
    .deal-note { grid-column: 1 / -1; }
    .brand-h .bh-name { font-size: 1.65rem; }
  }

  /* ============================== Reduced motion ============================== */
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important; scroll-behavior: auto !important;
    }
    .reveal { opacity: 1; transform: none; }
    .ledger::after { transform: scaleX(1); }
    .ledger .lr-label, .ledger .lr-datum { opacity: 1; }
    .mobile-nav, .mobile-nav.is-open { transition: none !important; }
  }

  /* ============================== Multi-page additions ============================== */
  /* Interior pages: their first section sits under the fixed nav, so offset main by the
     nav height. The home hero handles its own offset and does not use this class. */
  .main-offset { padding-top: var(--nav-h); }

  /* Active page marker in the shared nav (subtle gold-light shift, aria-current carries the semantics) */
  .nav-links a.is-active,
  .mobile-nav a.is-active { color: var(--gold-light); }
