    /* ============================================================
       SHERLOCK SOLUTIONS — Design system v4 (premium agency)
       Black & gold, up-tempo Silicon Valley startup energy.
       Type voice: Space Grotesk display (power) + Cormorant italic
       gold accent (premium signature) + DM Sans body. Dossier
       signatures kept: tracked small caps, crosshair brackets,
       sharp 2px corners, cursor spotlight + film grain.
       ============================================================ */

    /* Self-hosted fonts — latin subset only.
       Each face uses the same woff2 across weights (Google ships variable
       fonts). Relative URLs work in both file:// preview and on Cloudflare. */
    @font-face {
      font-family: 'Cormorant Garamond';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('fonts/cormorant-garamond.woff2') format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }
    @font-face {
      font-family: 'Cormorant Garamond';
      font-style: italic;
      font-weight: 400 600;
      font-display: swap;
      src: url('fonts/cormorant-garamond-italic.woff2') format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }
    @font-face {
      font-family: 'DM Sans';
      font-style: normal;
      font-weight: 300 700;
      font-display: swap;
      src: url('fonts/dm-sans.woff2') format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }
    /* Space Grotesk — geometric display face. Powers headlines + the
       "Silicon Valley startup" voice. Variable 300–700, latin subset. */
    @font-face {
      font-family: 'Space Grotesk';
      font-style: normal;
      font-weight: 300 700;
      font-display: swap;
      src: url('fonts/space-grotesk.woff2') format('woff2');
      unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
    }

    /* Centered CTA blocks (replaces a few one-off inline styles so CSP can
       drop 'unsafe-inline' from style-src). */
    .cta-center { text-align: center; margin-top: var(--s-8); }
    .cta-center--lg { margin-top: var(--s-10); }
    .cta-center__lead {
      font-size: var(--fs-md);
      color: var(--muted);
      margin: 0 auto var(--s-3);
      max-width: 50ch;
    }

    @property --spot-x {
      syntax: '<length-percentage>'; inherits: true; initial-value: 50%;
    }
    @property --spot-y {
      syntax: '<length-percentage>'; inherits: true; initial-value: 30%;
    }

    :root {
      /* Palette — refined */
      --black:    #0A0A0A;
      --black-2:  #141312;     /* slightly warmer card surface */
      --black-3:  #1E1C18;     /* raised card surface */
      --gold:     #C9A84C;
      --gold-l:   #D4B560;
      --gold-d:   #9F8638;
      --gold-deep:#A88A38;     /* antique brass for restraint */
      --off:      #F5F1E8;
      --muted:    #8A8578;
      --muted-2:  #807C70;     /* deeper muted for metadata — kept ≥4.5:1 on black (WCAG AA) */
      --border:   #2A2820;
      --border-l: #3A3830;     /* lighter divider */

      /* Section color drift (C8) */
      --bg-hero:    #0B0907;
      --bg-focus:   #090807;
      --bg-services:#08090B;
      --bg-quote:   #060509;
      --bg-about:   #0A0907;
      --bg-reports: #07090B;
      --bg-contact: #0B0A07;
      --bg-footer:  #050504;
      --bg-process: #08090A;     /* between services and pull-quote */
      --bg-care:    #0A0908;     /* between about and insights */
      --bg-faq:     #08090B;     /* between insights and contact */
      --bg-systems: #07090B;     /* between services and process — diagrams live here */

      /* Type */
      --font-display: 'Space Grotesk', 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
      --font-serif: 'Cormorant Garamond', 'EB Garamond', Georgia, 'Times New Roman', serif;
      --font-sans:  'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui, sans-serif;

      --fs-xs:   0.75rem;
      --fs-sm:   0.875rem;
      --fs-base: 1rem;
      --fs-md:   1.125rem;
      --fs-lg:   1.25rem;
      --fs-xl:   1.563rem;
      --fs-2xl:  1.953rem;
      --fs-3xl:  2.441rem;
      --fs-4xl:  3.052rem;
      --fs-5xl:  3.815rem;
      --fs-6xl:  4.768rem;     /* hero-scale display, 1.250 modular step up */

      /* Spacing */
      --s-1:  0.5rem;
      --s-2:  1rem;
      --s-3:  1.5rem;
      --s-4:  2rem;
      --s-5:  2.5rem;
      --s-6:  3rem;
      --s-8:  4rem;
      --s-10: 5rem;
      --s-12: 6rem;
      --s-16: 8rem;

      --container-max: 1280px;
      --container-pad: clamp(1.25rem, 4vw, 4rem);

      --radius-sm: 2px;
      --radius-md: 4px;

      --t-fast: 150ms ease;
      --t-base: 250ms ease;
      --t-slow: 450ms cubic-bezier(0.2, 0.7, 0.2, 1);

      --nav-h: 76px;

      /* Spotlight */
      --spot-x: 50%;
      --spot-y: 30vh;
      --spot-size: 38vmax;
      --spot-intensity: 0.10;

      /* Tracked-out small-cap scale (Bond signature) */
      --tracking-sm: 0.18em;
      --tracking-md: 0.24em;
      --tracking-lg: 0.32em;
    }

    /* ---------- Reset ---------- */
    *, *::before, *::after { box-sizing: border-box; }
    html { -webkit-text-size-adjust: 100%; background: var(--black); }
    @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
    body { margin: 0; }
    img, svg, video { display: block; max-width: 100%; height: auto; }
    button { font: inherit; cursor: pointer; }
    input, select, textarea, button { font: inherit; color: inherit; }
    a { color: inherit; text-decoration: none; }
    h1, h2, h3, h4, h5, h6, p { margin: 0; }
    ul, ol { margin: 0; padding: 0; list-style: none; }

    /* ---------- Body + ambient layers (spotlight + grain) ---------- */
    body {
      font-family: var(--font-sans);
      font-size: var(--fs-base);
      line-height: 1.6;
      color: var(--off);
      background: var(--black);
      font-weight: 400;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: optimizeLegibility;
      overflow-x: hidden;
      position: relative;
      isolation: isolate;
    }
    body.no-scroll { overflow: hidden; }

    /* A1 — Spotlight */
    body::after {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 1;
      background: radial-gradient(
        circle var(--spot-size) at var(--spot-x) var(--spot-y),
        rgba(201, 168, 76, var(--spot-intensity)) 0%,
        rgba(201, 168, 76, calc(var(--spot-intensity) * 0.35)) 20%,
        rgba(201, 168, 76, 0) 55%
      );
      mix-blend-mode: screen;
      transition: --spot-x 200ms cubic-bezier(0.2, 0.7, 0.2, 1),
                  --spot-y 200ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }

    /* C5 — Film grain */
    body::before {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 9999;
      opacity: 0.055;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.78 0 0 0 0 0.62 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
      background-size: 220px 220px;
      mix-blend-mode: overlay;
    }

    @media (hover: none) {
      body::after { animation: spot-drift 14s ease-in-out infinite alternate; }
      @keyframes spot-drift {
        0%   { --spot-x: 30%; --spot-y: 25%; }
        50%  { --spot-x: 60%; --spot-y: 45%; }
        100% { --spot-x: 70%; --spot-y: 30%; }
      }
    }

    ::selection { background: var(--gold); color: var(--black); }
    :focus { outline: none; }
    :focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 3px;
      border-radius: 2px;
    }

    .skip-link {
      position: absolute;
      top: -100px;
      left: var(--s-2);
      background: var(--gold);
      color: var(--black);
      padding: var(--s-1) var(--s-2);
      font-weight: 500;
      font-size: var(--fs-sm);
      border-radius: var(--radius-sm);
      z-index: 10000;
      transition: top var(--t-fast);
    }
    .skip-link:focus { top: var(--s-1); }

    /* ---------- Layout primitives ---------- */
    .container {
      width: 100%;
      max-width: var(--container-max);
      margin: 0 auto;
      padding-left: var(--container-pad);
      padding-right: var(--container-pad);
    }
    .section {
      padding-top: clamp(var(--s-8), 10vw, var(--s-16));
      padding-bottom: clamp(var(--s-8), 10vw, var(--s-16));
      position: relative;
    }
    [id] { scroll-margin-top: calc(var(--nav-h) + var(--s-2)); }

    /* ---------- Typography ---------- */
    .serif { font-family: var(--font-serif); }
    .italic { font-style: italic; }

    h1, .h1 {
      font-family: var(--font-display);
      font-size: clamp(2.5rem, 6vw, 4.5rem);
      font-weight: 600;
      line-height: 1.02;
      letter-spacing: -0.035em;
      color: var(--off);
    }
    h2, .h2 {
      font-family: var(--font-display);
      font-size: clamp(2rem, 4.5vw, var(--fs-4xl));
      font-weight: 600;
      line-height: 1.06;
      letter-spacing: -0.028em;
      color: var(--off);
    }
    h3, .h3 {
      font-family: var(--font-display);
      font-size: var(--fs-xl);
      font-weight: 600;
      line-height: 1.2;
      letter-spacing: -0.02em;
      color: var(--off);
    }
    /* Cormorant italic stays the gold signature — the elegant counterpoint
       to Space Grotesk's geometry. Do NOT switch this to the display face. */
    .gold-accent {
      font-family: var(--font-serif);
      color: var(--gold);
      font-style: italic;
      font-weight: 500;
      letter-spacing: -0.01em;
    }

    .lead {
      font-size: clamp(var(--fs-md), 1.5vw, var(--fs-lg));
      line-height: 1.55;
      color: var(--off);
      max-width: 60ch;
    }
    .muted { color: var(--muted); }
    .small { font-size: var(--fs-sm); }

    /* Eyebrow — tracked-out small caps label */
    .eyebrow {
      display: inline-block;
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      font-weight: 500;
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
    }

    /* ============================================================
       SECTION HEADER — simple, confident, editorial
       ============================================================ */
    .section-head {
      margin-bottom: clamp(var(--s-8), 8vw, var(--s-10));
      max-width: 900px;
    }
    .section-head .eyebrow {
      margin-bottom: var(--s-4);
    }
    .section-head__title {
      font-family: var(--font-display);
      font-size: clamp(2.25rem, 4.8vw, var(--fs-4xl));
      font-weight: 600;
      line-height: 1.04;
      letter-spacing: -0.028em;
      color: var(--off);
      margin-bottom: var(--s-3);
      max-width: 24ch;
    }
    .section-head__lead {
      font-size: var(--fs-md);
      line-height: 1.65;
      color: var(--muted);
      max-width: 64ch;
    }

    /* Corner crosshair brackets utility */
    .crosshairs { position: relative; }
    .crosshairs::before,
    .crosshairs::after,
    .crosshairs > .crosshairs__bl,
    .crosshairs > .crosshairs__br {
      content: "";
      position: absolute;
      width: 18px;
      height: 18px;
      border: 0 solid var(--gold);
      opacity: 0.45;
      pointer-events: none;
    }
    .crosshairs::before { top: 12px; left: 12px; border-top-width: 1px; border-left-width: 1px; }
    .crosshairs::after  { top: 12px; right: 12px; border-top-width: 1px; border-right-width: 1px; }
    .crosshairs > .crosshairs__bl { bottom: 12px; left: 12px; border-bottom-width: 1px; border-left-width: 1px; }
    .crosshairs > .crosshairs__br { bottom: 12px; right: 12px; border-bottom-width: 1px; border-right-width: 1px; }

    /* ---------- Buttons + links ---------- */
    .btn {
      display: inline-flex;
      align-items: center;
      gap: var(--s-1);
      padding: 0.95rem 1.75rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      font-weight: 500;
      letter-spacing: var(--tracking-sm);
      text-transform: uppercase;
      border: 1px solid transparent;
      border-radius: 2px;
      transition: all var(--t-base);
      cursor: pointer;
      white-space: nowrap;
      position: relative;
    }
    .btn--primary {
      background: linear-gradient(180deg, var(--gold-l) 0%, var(--gold) 55%, var(--gold-d) 100%);
      color: var(--black);
      border-color: var(--gold-l);
      box-shadow: 0 1px 0 rgba(245, 241, 232, 0.18) inset, 0 6px 18px -10px rgba(201, 168, 76, 0.5);
      transition: transform var(--t-fast), box-shadow var(--t-base), filter var(--t-fast);
      overflow: hidden;
    }
    /* Light sweep on hover — quick metallic gleam across the gold face */
    .btn--primary::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(105deg, transparent 32%, rgba(255, 252, 245, 0.4) 50%, transparent 68%);
      transform: translateX(-130%);
      pointer-events: none;
    }
    .btn--primary > svg { position: relative; z-index: 1; }
    .btn--primary:hover::after {
      transform: translateX(130%);
      transition: transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    @media (prefers-reduced-motion: reduce) {
      .btn--primary::after { display: none; }
    }
    .btn--primary:hover {
      filter: brightness(1.08);
      border-color: var(--gold-l);
      transform: translateY(-2px);
      box-shadow: 0 1px 0 rgba(245, 241, 232, 0.25) inset, 0 12px 30px -10px rgba(201, 168, 76, 0.62);
    }
    .btn--primary:active {
      filter: brightness(0.96);
      transform: translateY(0);
      box-shadow: 0 1px 0 rgba(245, 241, 232, 0.12) inset, 0 4px 12px -8px rgba(201, 168, 76, 0.45);
    }
    .btn--ghost {
      background: transparent;
      color: var(--off);
      border-color: var(--border-l);
      transition: transform var(--t-fast), border-color var(--t-base), color var(--t-base), background-color var(--t-base);
    }
    .btn--ghost:hover {
      border-color: var(--gold);
      color: var(--gold);
      background: rgba(201, 168, 76, 0.06);
      transform: translateY(-2px);
    }

    .link-arrow {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      font-weight: 500;
      letter-spacing: var(--tracking-sm);
      text-transform: uppercase;
      color: var(--gold);
      border-bottom: 1px solid transparent;
      padding-bottom: 3px;
      transition: all var(--t-base);
    }
    .link-arrow svg { transition: transform var(--t-base); }
    .link-arrow:hover { color: var(--gold-l); border-bottom-color: var(--gold-l); }
    .link-arrow:hover svg { transform: translateX(4px); }

    /* ---------- Scroll reveals (C1) ---------- */
    .js [data-reveal],
    .js [data-reveal-group] > * {
      opacity: 0;
      transform: translateY(22px);
      transition:
        opacity 560ms cubic-bezier(0.16, 0.84, 0.27, 1),
        transform 560ms cubic-bezier(0.16, 0.84, 0.27, 1);
      will-change: opacity, transform;
    }
    .js [data-reveal].is-in,
    .js [data-reveal-group].is-in > * {
      opacity: 1;
      transform: translateY(0);
    }
    .js [data-reveal-group].is-in > *:nth-child(1) { transition-delay: 0ms; }
    .js [data-reveal-group].is-in > *:nth-child(2) { transition-delay: 70ms; }
    .js [data-reveal-group].is-in > *:nth-child(3) { transition-delay: 140ms; }
    .js [data-reveal-group].is-in > *:nth-child(4) { transition-delay: 210ms; }
    .js [data-reveal-group].is-in > *:nth-child(5) { transition-delay: 280ms; }
    .js [data-reveal-group].is-in > *:nth-child(6) { transition-delay: 350ms; }
    .js [data-reveal-group].is-in > *:nth-child(7) { transition-delay: 420ms; }
    .js [data-reveal-group].is-in > *:nth-child(8) { transition-delay: 490ms; }

    /* ---------- Header ---------- */
    .site-header {
      position: fixed;
      top: 0; left: 0; right: 0;
      height: var(--nav-h);
      display: flex;
      align-items: center;
      z-index: 100;
      background: transparent;
      transition: background var(--t-base), border-color var(--t-base), backdrop-filter var(--t-base);
      border-bottom: 1px solid transparent;
    }
    .site-header.is-scrolled {
      background: rgba(10, 9, 7, 0.85);
      -webkit-backdrop-filter: blur(16px);
      backdrop-filter: blur(16px);
      border-bottom-color: var(--border);
    }
    .nav-wrap {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--s-3);
      width: 100%;
    }
    .logo { display: inline-flex; align-items: center; flex-shrink: 0; }
    .logo img { height: 48px; width: auto; }
    .logo:hover { opacity: 0.85; }

    .nav-links { display: flex; align-items: center; gap: var(--s-5); }
    .nav-links a:not(.btn) {
      font-size: var(--fs-sm);
      font-weight: 400;
      color: var(--off);
      letter-spacing: 0.04em;
      transition: color var(--t-fast);
      position: relative;
    }
    .nav-links a:not(.btn)::after {
      content: "";
      position: absolute;
      left: 0; right: 0; bottom: -6px;
      height: 1px;
      background: var(--gold);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform var(--t-base);
    }
    .nav-links a:not(.btn):hover { color: var(--gold); }
    .nav-links a:not(.btn):hover::after { transform: scaleX(1); }
    .nav-links .btn { padding: 0.6rem 1.25rem; }

    .menu-toggle {
      display: none;
      background: none;
      border: 1px solid var(--border);
      color: var(--off);
      width: 44px; height: 44px;
      align-items: center; justify-content: center;
      border-radius: 2px;
      transition: border-color var(--t-fast);
    }
    .menu-toggle:hover { border-color: var(--gold); color: var(--gold); }
    .menu-toggle svg { width: 22px; height: 22px; }
    .menu-toggle .close-icon { display: none; }
    .menu-toggle[aria-expanded="true"] .open-icon { display: none; }
    .menu-toggle[aria-expanded="true"] .close-icon { display: block; }

    .mobile-nav {
      position: fixed;
      top: var(--nav-h); left: 0; right: 0; bottom: 0;
      background: var(--bg-hero);
      border-top: 1px solid var(--border);
      transform: translateY(-100%);
      opacity: 0; visibility: hidden;
      transition: transform var(--t-slow), opacity var(--t-base), visibility var(--t-base);
      z-index: 99;
      padding: var(--s-6) var(--container-pad);
      overflow-y: auto;
    }
    .mobile-nav.is-open { transform: translateY(0); opacity: 1; visibility: visible; }
    .mobile-nav ul { display: flex; flex-direction: column; gap: var(--s-3); }
    .mobile-nav a {
      font-family: var(--font-serif);
      font-size: var(--fs-2xl);
      color: var(--off);
      padding: var(--s-1) 0;
      border-bottom: 1px solid var(--border);
      display: block;
    }
    .mobile-nav .btn { margin-top: var(--s-3); justify-content: center; width: 100%; }

    /* ============================================================
       HERO  (PRESERVED FROM v2 — DO NOT CHANGE)
       ============================================================ */
    .hero {
      background: var(--bg-hero);
      min-height: calc(100vh - var(--nav-h));
      padding-top: calc(var(--nav-h) + var(--s-6));
      padding-bottom: 0;
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }
    /* Ambient drifting warm glow behind hero content. Pure CSS, no JS.
       Sits behind .hero__container (z-index 0); content is z-index 2.
       Slow 24s ease loop, alternating direction; disabled for reduced-motion. */
    .hero::before {
      content: "";
      position: absolute;
      inset: -15%;
      background:
        radial-gradient(ellipse 55% 45% at 72% 38%,
          rgba(201, 168, 76, 0.20) 0%,
          rgba(201, 168, 76, 0.06) 38%,
          transparent 70%),
        radial-gradient(ellipse 40% 30% at 18% 72%,
          rgba(201, 168, 76, 0.09) 0%,
          transparent 60%);
      filter: blur(40px);
      animation: hero-glow-drift 24s ease-in-out infinite alternate;
      pointer-events: none;
      z-index: 0;
    }
    @keyframes hero-glow-drift {
      0%   { transform: translate3d(0, 0, 0) scale(1);       opacity: 0.9; }
      50%  { transform: translate3d(-2%, 3%, 0) scale(1.08); opacity: 1;   }
      100% { transform: translate3d(2%, -2%, 0) scale(0.96); opacity: 0.78; }
    }
    @media (prefers-reduced-motion: reduce) {
      .hero::before { animation: none; }
    }
    .hero__container {
      display: flex;
      align-items: center;
      width: 100%;
      flex: 1;
      padding-bottom: var(--s-8);
    }
    .hero__content {
      position: relative;
      z-index: 2;
      max-width: 620px;
    }
    .hero__eyebrow {
      margin-bottom: var(--s-4);
      opacity: 0;
      animation: fade-up 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 50ms forwards;
    }
    .hero__title {
      margin-bottom: var(--s-4);
      font-size: clamp(2.75rem, 7vw, var(--fs-6xl));
      font-weight: 700;
      line-height: 0.98;
      letter-spacing: -0.04em;
    }
    .hero__title-line { display: block; overflow: hidden; padding: 0.05em 0; }
    /* Gold accent line keeps the serif's optical size — italic Cormorant
       runs smaller than Space Grotesk at the same em, so nudge it up. */
    .hero__title-line.gold-accent {
      letter-spacing: -0.02em;
      /* One-shot "charge" once the chars have resolved (~1s) — a brightness
         pulse rather than a text-shadow halo, so it survives the line's
         overflow:hidden clip. */
      animation: gold-charge 900ms ease-out 1000ms both;
    }
    @keyframes gold-charge {
      0%   { filter: brightness(1); }
      45%  { filter: brightness(1.5) saturate(1.18); }
      100% { filter: brightness(1); }
    }
    /* ShinyText — ported from the React Bits component to vanilla CSS (no
       motion dep). Once the headline has resolved, JS adds .is-shining and
       collapses the split chars back to a single text node so
       background-clip:text has one run to clip. A champagne glint then
       sweeps across on a slow loop. The base stops are solid --gold and the
       band parks off-screen at rest, so the line looks unchanged between
       passes; only the sweep shows the shine. Mirrors the component's
       gradient (spread 120°, color -> shineColor -> color) and its
       150% -> -50% background-position travel. Gated to non-reduced-motion in
       JS; the global kill-switch also neutralises the sweep. */
    .hero__title-line.gold-accent.is-shining {
      /* Solid gold stays the fallback so the line can never go blank — it is
         only enhanced to a moving gradient where background-clip:text works. */
      color: var(--gold);
    }
    @supports ((-webkit-background-clip: text) or (background-clip: text)) {
      .hero__title-line.gold-accent.is-shining {
        background-image: linear-gradient(
          120deg,
          var(--gold) 0%,
          var(--gold) 35%,
          #FFF4D6 50%,
          var(--gold) 65%,
          var(--gold) 100%
        );
        background-size: 200% 100%;
        /* Default repeat (NOT no-repeat): the gold 0%/100% stops tile
           seamlessly, so the glyphs are ALWAYS fully painted and only the
           champagne band travels. no-repeat left the text un-painted at the
           rest positions — that was the disappearing-word bug. */
        background-position: 150% center;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: hero-shine 5s linear 600ms infinite;
      }
    }
    @keyframes hero-shine {
      0%, 12% { background-position: 150% center; }
      58%     { background-position: -50% center; }
      100%    { background-position: -50% center; }
    }
    .hero__sub {
      max-width: 56ch;
      margin: 0 0 var(--s-6);
      color: var(--off);
      font-size: clamp(var(--fs-md), 1.4vw, var(--fs-lg));
      line-height: 1.55;
      opacity: 0;
      animation: fade-up 500ms cubic-bezier(0.2, 0.7, 0.2, 1) 500ms forwards;
    }
    .hero__cta {
      display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap;
      opacity: 0;
      animation: fade-up 500ms cubic-bezier(0.2, 0.7, 0.2, 1) 700ms forwards;
    }
    /* Precision microcopy under hero CTAs — Stripe-style reassurance line */
    .hero__cta-note {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--muted-2);
      margin: var(--s-4) 0 0;
      opacity: 0;
      animation: fade-up 500ms cubic-bezier(0.2, 0.7, 0.2, 1) 900ms forwards;
    }

    /* Hero media — a full-bleed black-and-gold aurora animated on a <canvas>
       (renderer lives in scripts.js). Fills the whole hero; the layered scrim
       below keeps the headline legible and dissolves the field into the page at
       the edges. The radial-gradient background is a static fallback that paints
       instantly and covers the no-JS case. */
    .hero__media {
      position: absolute;
      inset: 0;
      z-index: 0;
      overflow: hidden;
      background:
        radial-gradient(58% 50% at 74% 34%, rgba(201, 168, 76, 0.20), transparent 70%),
        radial-gradient(46% 42% at 22% 68%, rgba(201, 168, 76, 0.12), transparent 66%),
        var(--bg-hero);
      opacity: 0;
      animation: hero-media-in 1200ms ease 100ms both;
    }
    /* Gold wireframe orb — a hand-rolled WebGL scene (no three.js dependency).
       A morphing icosphere drawn as luminous gold lines with a fresnel rim-glow
       and a mouse-tracked light. It runs on the GPU, so it stays smooth where
       CSS paint did not. The canvas clears transparent; the radial-gradient
       background above shows through. The JS render loop pauses when the hero
       scrolls off-screen or the tab is hidden; reduced-motion holds one frame. */
    .hero__orb {
      position: absolute;
      inset: 0;
      z-index: 1;
      display: block;
      width: 100%;
      height: 100%;
      opacity: 0; /* init is deferred off the paint path; JS fades it in once drawn */
    }
    .hero__orb.is-in {
      opacity: 1;
      transition: opacity 700ms ease;
    }
    /* Two-axis scrim: the horizontal pass darkens the left so the white/gold
       type holds contrast while the aurora glows on the right; the vertical pass
       seats the nav and dissolves the field into --bg-hero so it never reads as
       a hard-edged rectangle. */
    .hero__media::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 2;
      pointer-events: none;
      background:
        linear-gradient(90deg,
          rgba(11, 9, 7, 0.92) 0%,
          rgba(11, 9, 7, 0.74) 30%,
          rgba(11, 9, 7, 0.34) 62%,
          rgba(11, 9, 7, 0.24) 100%),
        linear-gradient(180deg,
          rgba(11, 9, 7, 0.58) 0%,
          rgba(11, 9, 7, 0.08) 24%,
          rgba(11, 9, 7, 0.10) 64%,
          rgba(11, 9, 7, 0.97) 100%);
    }
    @keyframes hero-media-in {
      from { opacity: 0; }
      to   { opacity: 1; }
    }

    .word { display: inline-block; }
    /* Headline chars resolve out of a soft blur as they rise — a cinematic
       "focus-in" that reads as deliberate and expensive on first paint. */
    .char {
      display: inline-block;
      opacity: 0;
      transform: translateY(0.72em);
      filter: blur(5px);
      animation: char-in 560ms cubic-bezier(0.16, 0.84, 0.27, 1) forwards;
      animation-delay: calc(40ms + var(--i, 0) * 13ms);
      will-change: opacity, transform, filter;
    }
    @keyframes char-in {
      to { opacity: 1; transform: translateY(0); filter: blur(0); }
    }
    @keyframes fade-up {
      from { opacity: 0; transform: translateY(12px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    .hero__divider { position: relative; width: 100%; margin-top: auto; }
    .hero__divider-rule {
      height: 1px;
      background: var(--gold);
      transform-origin: left;
      transform: scaleX(0);
      animation: rule-draw 700ms cubic-bezier(0.2, 0.7, 0.2, 1) 800ms forwards;
    }
    @keyframes rule-draw { to { transform: scaleX(1); } }

    /* ============================================================
       TRADES MARQUEE — honest scrolling band of the verticals we serve.
       Two identical tracks; the wrapper slides -50% for a seamless loop.
       Edge-masked, hover-pauses, and collapses to a static wrap when the
       visitor prefers reduced motion.
       ============================================================ */
    .trades {
      padding: clamp(var(--s-4), 4vw, var(--s-6)) 0;
      border-top: 1px solid var(--border);
      border-bottom: 1px solid var(--border);
      background: var(--bg-services);
      overflow: hidden;
    }
    .trades__inner { display: flex; flex-direction: column; gap: var(--s-3); }
    .trades__label { color: var(--muted-2); align-self: start; }
    .trades__viewport {
      position: relative;
      -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
      mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
    }
    .trades__marquee {
      display: flex;
      width: max-content;
      animation: trades-scroll 52s linear infinite;
    }
    .trades__viewport:hover .trades__marquee { animation-play-state: paused; }
    .trades__track {
      display: flex;
      align-items: center;
      flex: none;
    }
    .trades__track li {
      display: flex;
      align-items: center;
      white-space: nowrap;
      font-family: var(--font-display);
      font-size: clamp(var(--fs-md), 1.6vw, var(--fs-xl));
      font-weight: 500;
      letter-spacing: -0.01em;
      color: var(--muted);
      transition: color var(--t-base);
    }
    .trades__track li:hover { color: var(--off); }
    /* CSS-drawn gold diamond between trades — dossier marker, no glyph */
    .trades__track li::after {
      content: "";
      width: 5px;
      height: 5px;
      margin: 0 clamp(var(--s-3), 2.5vw, var(--s-5));
      background: var(--gold);
      transform: rotate(45deg);
      opacity: 0.55;
      flex-shrink: 0;
    }
    @keyframes trades-scroll { to { transform: translateX(-50%); } }
    @media (prefers-reduced-motion: reduce) {
      .trades__marquee { animation: none; width: 100%; flex-wrap: wrap; }
      .trades__track:last-child { display: none; }
      .trades__track { flex-wrap: wrap; gap: var(--s-1) 0; justify-content: center; }
    }

    /* ============================================================
       FILE 02 — IN FOCUS  (NEW, JP Morgan brand-promise pattern)
       ============================================================ */
    .focus {
      background: var(--bg-focus);
      padding: clamp(var(--s-10), 12vw, var(--s-16)) 0;
      border-bottom: 1px solid var(--border);
    }
    .focus__grid {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: clamp(var(--s-6), 6vw, var(--s-12));
      align-items: start;
    }
    .focus__left { max-width: 22ch; }
    .focus__title {
      font-family: var(--font-serif);
      font-size: clamp(2.5rem, 5vw, 4rem);
      font-weight: 500;
      line-height: 1.04;
      letter-spacing: -0.018em;
      color: var(--off);
      margin-top: var(--s-3);
    }
    .focus__body {
      display: flex;
      flex-direction: column;
      gap: var(--s-3);
      max-width: 52ch;
      padding-top: var(--s-4);
    }
    .focus__body p {
      font-size: var(--fs-md);
      line-height: 1.65;
      color: var(--muted);
    }
    .focus__body p strong {
      color: var(--off);
      font-weight: 400;
    }
    .focus__cta { margin-top: var(--s-3); }

    /* ============================================================
       SERVICES SECTION (homepage uses .services-landing-card pattern)
       ============================================================ */
    #services { background: var(--bg-services); }
    /* (Old `.service-card` bento rules removed — replaced by
       `.services-landing-card` for both homepage and landing page.) */

    .service-card--hero .service-card__detail {
      display: block;
      border-top: 1px solid var(--border);
      padding-top: var(--s-3);
      margin-top: var(--s-2);
      font-size: var(--fs-md);
      color: var(--off);
      font-style: italic;
      font-family: var(--font-serif);
      line-height: 1.4;
    }
    .service-card--hero .service-card__detail strong {
      color: var(--gold);
      font-weight: 500;
    }

    .service-card--wide .service-card__body {
      display: flex;
      flex-direction: row;
      align-items: flex-start;
      gap: var(--s-4);
    }
    .service-card--wide .service-card__body-right {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: var(--s-2);
    }
    .service-card--wide .service-card__icon { width: 44px; height: 44px; margin-top: 4px; }
    .service-card--wide .service-card__title { font-size: var(--fs-xl); margin-top: 0; }

    /* ============================================================
       ABOUT  (Two founders)
       ============================================================ */
    #about { background: var(--bg-about); }
    .founders-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: clamp(var(--s-4), 4vw, var(--s-8));
      max-width: 1100px;
    }
    .founder {
      display: flex;
      flex-direction: column;
      gap: var(--s-3);
    }
    .founder__photo {
      aspect-ratio: 1;
      background: var(--black-2);
      border: 1px solid var(--border);
      overflow: hidden;
      position: relative;
    }
    .founder__photo img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform var(--t-slow);
    }
    .founder:hover .founder__photo img { transform: scale(1.02); }
    .founder__link { margin: 0 0 var(--s-3); }
    .founder__name {
      font-family: var(--font-serif);
      font-size: var(--fs-2xl);
      font-weight: 500;
      line-height: 1.1;
      color: var(--off);
      margin-top: 4px;
    }
    .founder__title {
      font-size: var(--fs-sm);
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 4px;
    }
    .founder__bio {
      font-size: var(--fs-sm);
      line-height: 1.7;
      color: var(--muted);
      margin-top: var(--s-2);
    }

    /* ============================================================
       BIO BLOCK — long-form founder bios on /about/
       Two-column layout: square photo + multi-paragraph prose.
       --reverse swaps photo to the right side.
       ============================================================ */
    .bio-block {
      padding: clamp(var(--s-7), 8vw, var(--s-9)) 0;
      border-top: 1px solid var(--border);
    }
    .bio-block:first-of-type { border-top: 0; }
    .bio-block__grid {
      display: grid;
      grid-template-columns: minmax(280px, 1fr) 1.4fr;
      gap: clamp(var(--s-5), 6vw, var(--s-8));
      align-items: start;
    }
    .bio-block--reverse .bio-block__grid {
      grid-template-columns: 1.4fr minmax(280px, 1fr);
    }
    .bio-block--reverse .bio-block__photo { order: 2; }
    .bio-block__photo {
      aspect-ratio: 1;
      background: var(--black-2);
      border: 1px solid var(--border);
      overflow: hidden;
      position: relative;
    }
    .bio-block__photo img {
      width: 100%; height: 100%;
      object-fit: cover;
    }
    .bio-block__body .eyebrow {
      margin-bottom: var(--s-3);
    }
    .bio-block__name {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, var(--fs-3xl));
      font-weight: 500;
      line-height: 1.05;
      letter-spacing: -0.012em;
      color: var(--off);
      margin: 0 0 var(--s-5);
    }
    .bio-block__body p {
      font-size: var(--fs-md);
      line-height: 1.7;
      color: var(--muted);
      margin: 0 0 var(--s-4);
      max-width: 64ch;
    }
    .bio-block__body p:last-child { margin-bottom: 0; }
    .bio-block__body strong { color: var(--off); font-weight: 500; }
    @media (max-width: 768px) {
      .bio-block__grid,
      .bio-block--reverse .bio-block__grid {
        grid-template-columns: 1fr;
      }
      .bio-block--reverse .bio-block__photo { order: 0; }
      .bio-block__photo { max-width: 420px; }
    }

    /* ============================================================
       FILE 06 — FIELD REPORTS  (Blog teaser, typographic covers)
       ============================================================ */
    #reports { background: var(--bg-reports); }
    .reports-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--s-4);
    }
    .report-card {
      display: flex;
      flex-direction: column;
      background: linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      border: 1px solid var(--border);
      text-decoration: none;
      transition: border-color var(--t-base), transform var(--t-slow), box-shadow var(--t-slow);
      box-shadow: 0 1px 0 rgba(245, 241, 232, 0.03) inset, 0 12px 30px -22px rgba(0, 0, 0, 0.9);
      position: relative;
      overflow: hidden;
    }
    .report-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(
        circle 240px at var(--card-x, 50%) var(--card-y, 50%),
        rgba(201, 168, 76, 0.07) 0%,
        rgba(201, 168, 76, 0) 60%
      );
      opacity: 0;
      transition: opacity var(--t-base);
      pointer-events: none;
    }
    .report-card:hover {
      border-color: var(--gold);
      transform: translateY(-4px);
      box-shadow: 0 1px 0 rgba(201, 168, 76, 0.18) inset, 0 22px 46px -24px rgba(0, 0, 0, 0.95), 0 0 30px -18px rgba(201, 168, 76, 0.4);
    }
    .report-card:hover::before { opacity: 1; }

    /* Card "cover" — typographic by default, swaps to photo when an <img> is present */
    .report-card__cover img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      transition: transform var(--t-slow);
    }
    .report-card:hover .report-card__cover img { transform: scale(1.03); }
    .report-card__cover {
      aspect-ratio: 16 / 10;
      background:
        linear-gradient(135deg, var(--bg-quote) 0%, var(--black-3) 100%);
      border-bottom: 1px solid var(--border);
      padding: var(--s-4);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      position: relative;
      overflow: hidden;
    }
    .report-card__cover::before,
    .report-card__cover::after {
      content: "";
      position: absolute;
      width: 18px;
      height: 18px;
      border: 0 solid var(--gold);
      opacity: 0.45;
    }
    .report-card__cover::before {
      top: var(--s-2); left: var(--s-2);
      border-top-width: 1px; border-left-width: 1px;
    }
    .report-card__cover::after {
      top: var(--s-2); right: var(--s-2);
      border-top-width: 1px; border-right-width: 1px;
    }
    .report-card__cover-bracket-bl,
    .report-card__cover-bracket-br {
      position: absolute;
      width: 18px;
      height: 18px;
      border: 0 solid var(--gold);
      opacity: 0.45;
    }
    .report-card__cover-bracket-bl {
      bottom: var(--s-2); left: var(--s-2);
      border-bottom-width: 1px; border-left-width: 1px;
    }
    .report-card__cover-bracket-br {
      bottom: var(--s-2); right: var(--s-2);
      border-bottom-width: 1px; border-right-width: 1px;
    }
    .report-card__cover-tag {
      display: inline-block;
      align-self: flex-start;
      font-family: var(--font-sans);
      font-size: 0.6875rem;
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      padding: 4px 9px;
      border: 1px solid rgba(201, 168, 76, 0.35);
      background: rgba(201, 168, 76, 0.06);
    }
    .report-card__cover-num {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      font-size: clamp(2.75rem, 4.5vw, var(--fs-4xl));
      color: var(--gold);
      opacity: 0.85;
      line-height: 1;
      align-self: flex-end;
      letter-spacing: -0.02em;
    }
    .report-card__body {
      padding: var(--s-4);
      display: flex;
      flex-direction: column;
      gap: var(--s-2);
      flex: 1;
    }
    .report-card__title {
      font-family: var(--font-serif);
      font-size: var(--fs-xl);
      font-weight: 500;
      line-height: 1.22;
      color: var(--off);
      transition: color var(--t-fast);
    }
    .report-card:hover .report-card__title { color: var(--gold); }
    .report-card__excerpt {
      font-size: var(--fs-sm);
      line-height: 1.6;
      color: var(--muted);
    }
    .report-card__meta {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-top: auto;
      padding-top: var(--s-3);
      border-top: 1px solid var(--border);
      font-family: var(--font-sans);
      font-size: 0.6875rem;
      letter-spacing: var(--tracking-sm);
      text-transform: uppercase;
      color: var(--muted-2);
    }
    .report-card__meta-dot {
      width: 3px; height: 3px;
      background: var(--gold);
      border-radius: 50%;
      display: inline-block;
    }

    /* ============================================================
       FILE 07 — OPEN A FILE  (Contact)
       ============================================================ */
    #contact {
      background: var(--bg-contact);
      border-top: 1px solid var(--border);
    }
    .contact-grid {
      display: grid;
      grid-template-columns: 1fr 1.6fr;
      gap: var(--s-10);
      align-items: start;
    }
    .contact-info__lead {
      font-size: var(--fs-md);
      line-height: 1.65;
      color: var(--muted);
      margin-bottom: var(--s-5);
      max-width: 40ch;
    }
    .contact-info__item {
      padding: var(--s-3) 0;
      border-top: 1px solid var(--border);
      font-size: var(--fs-sm);
    }
    .contact-info__item:last-child { border-bottom: 1px solid var(--border); }
    .contact-info__label {
      display: block;
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 4px;
    }
    .contact-info__value { color: var(--off); }
    .contact-info__value a:hover { color: var(--gold); }

    .contact-form {
      background: var(--black-2);
      border: 1px solid var(--border);
      padding: clamp(var(--s-4), 3vw, var(--s-6));
      position: relative;
    }
    .contact-form__title {
      font-family: var(--font-serif);
      font-size: var(--fs-xl);
      font-weight: 500;
      color: var(--off);
      padding-bottom: var(--s-3);
      margin-bottom: var(--s-4);
      border-bottom: 1px solid var(--border);
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--s-3);
      margin-bottom: var(--s-3);
    }
    .form-row--single { grid-template-columns: 1fr; }
    .form-field { display: flex; flex-direction: column; }
    .form-field label {
      font-size: var(--fs-xs);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: var(--s-1);
      font-weight: 500;
    }
    .form-field label .req { color: var(--gold); }
    .form-field input,
    .form-field select,
    .form-field textarea {
      width: 100%;
      background: var(--black);
      border: 1px solid var(--border);
      border-radius: 2px;
      padding: 0.85rem 1rem;
      color: var(--off);
      font-size: var(--fs-base);
      font-family: var(--font-sans);
      transition: border-color var(--t-fast), background var(--t-fast);
    }
    .form-field input::placeholder,
    .form-field textarea::placeholder { color: rgba(138, 133, 120, 0.6); }
    .form-field input:hover,
    .form-field select:hover,
    .form-field textarea:hover { border-color: #3a3830; }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus {
      border-color: var(--gold);
      outline: none;
      background: #0d0d0d;
    }
    .form-field [aria-invalid="true"] { border-color: #c97a4c; }
    .form-field textarea { min-height: 140px; resize: vertical; }
    .form-field select {
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23C9A84C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 1rem center;
      padding-right: 2.5rem;
    }
    .form-field__error {
      font-size: var(--fs-xs);
      color: #c97a4c;
      margin-top: 4px;
      min-height: 1em;
    }

    .hp {
      position: absolute !important;
      left: -9999px !important;
      width: 1px !important; height: 1px !important;
      overflow: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }

    .consent {
      display: flex;
      align-items: flex-start;
      gap: var(--s-2);
      margin: var(--s-3) 0;
      font-size: var(--fs-sm);
      color: var(--muted);
      line-height: 1.55;
    }
    .consent input[type="checkbox"] {
      appearance: none;
      -webkit-appearance: none;
      width: 18px; height: 18px;
      border: 1px solid var(--border);
      background: var(--black);
      border-radius: 2px;
      flex-shrink: 0;
      margin-top: 3px;
      cursor: pointer;
      position: relative;
      transition: border-color var(--t-fast), background var(--t-fast);
    }
    .consent input[type="checkbox"]:hover { border-color: var(--gold); }
    .consent input[type="checkbox"]:checked {
      background: var(--gold);
      border-color: var(--gold);
    }
    .consent input[type="checkbox"]:checked::after {
      content: "";
      position: absolute;
      left: 5px; top: 1px;
      width: 5px; height: 10px;
      border: solid var(--black);
      border-width: 0 2px 2px 0;
      transform: rotate(45deg);
    }
    .consent a { color: var(--gold); border-bottom: 1px solid currentColor; }

    .form-submit-row {
      display: flex;
      align-items: center;
      gap: var(--s-3);
      flex-wrap: wrap;
    }
    .form-status { font-size: var(--fs-sm); flex-grow: 1; min-height: 1.4em; }
    .form-status--success { color: var(--gold); }
    .form-status--error { color: #c97a4c; }

    .btn[disabled] { opacity: 0.6; cursor: not-allowed; transform: none !important; }
    .btn .spinner {
      width: 14px; height: 14px;
      border: 2px solid currentColor;
      border-right-color: transparent;
      border-radius: 50%;
      animation: spin 0.7s linear infinite;
      display: none;
    }
    .btn.is-loading .spinner { display: inline-block; }
    @keyframes spin { to { transform: rotate(360deg); } }

    /* ============================================================
       FOOTER — JP Morgan multi-column / dossier signature
       ============================================================ */
    .site-footer {
      background: var(--bg-footer);
      border-top: 1px solid var(--gold);
      padding: clamp(var(--s-8), 8vw, var(--s-12)) 0 var(--s-4);
      position: relative;
    }
    .footer-top {
      display: grid;
      grid-template-columns: 1.7fr 1fr 1fr;
      gap: var(--s-6);
      margin-bottom: var(--s-8);
    }
    .footer-brand .logo img { height: 72px; }
    .footer-brand__tagline {
      margin-top: var(--s-3);
      font-size: var(--fs-sm);
      color: var(--muted);
      line-height: 1.6;
      max-width: 36ch;
    }
    .footer-brand__contact {
      margin-top: var(--s-4);
      display: flex;
      flex-direction: column;
      gap: 6px;
      list-style: none;
      padding: 0;
    }
    .footer-brand__contact li { font-size: var(--fs-sm); }
    .footer-brand__contact a {
      color: var(--off);
      transition: color var(--t-fast);
    }
    .footer-brand__contact a:hover { color: var(--gold); }
    .footer-brand__contact-note {
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--muted-2);
    }

    .footer-dept__title {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: var(--s-3);
      font-weight: 500;
    }
    .footer-dept ul { display: flex; flex-direction: column; gap: 0.5rem; }
    .footer-dept a {
      font-size: var(--fs-sm);
      color: var(--muted);
      transition: color var(--t-fast);
    }
    .footer-dept a:hover { color: var(--gold); }

    .footer-divider {
      height: 1px;
      background: var(--border-l);
      margin-bottom: var(--s-4);
    }
    .footer-bottom {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--s-4);
      flex-wrap: wrap;
    }
    .footer-bottom__copy {
      font-size: var(--fs-xs);
      color: var(--muted);
      letter-spacing: 0.05em;
    }
    .footer-social { display: flex; gap: var(--s-1); }
    .footer-social a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px; height: 36px;
      border: 1px solid var(--border);
      color: var(--muted);
      border-radius: 2px;
      transition: border-color var(--t-fast), color var(--t-fast);
    }
    .footer-social a:hover { border-color: var(--gold); color: var(--gold); }
    .footer-social svg { width: 16px; height: 16px; }

    /* ============================================================
       PROCESS  (How It Works — asymmetric numbered step list)
       ============================================================ */
    .process {
      background: var(--bg-process);
      padding: var(--s-12) 0;
    }
    .process__steps {
      max-width: 1100px;
      margin: var(--s-9) auto 0;
      padding: 0 var(--container-pad);
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: var(--s-8);
    }
    .process__step {
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: baseline;
      gap: var(--s-5);
      max-width: 720px;
    }
    .process__step--right {
      grid-template-columns: 1fr auto;
      text-align: right;
      margin-left: auto;
    }
    .process__step--right .process__num { grid-column: 2; grid-row: 1; }
    .process__step--right .process__body { grid-column: 1; grid-row: 1; }
    .process__num {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      font-size: clamp(3rem, 6vw, 5rem);
      color: var(--gold);
      line-height: 0.9;
      letter-spacing: -0.02em;
      /* Equal-width digits keep the adjacent body text from twitching while
         the count-up rolls 00 → 0N. */
      font-variant-numeric: tabular-nums;
    }
    .process__title {
      font-family: var(--font-serif);
      font-size: clamp(var(--fs-xl), 2.5vw, var(--fs-3xl));
      font-weight: 500;
      color: var(--off);
      margin-bottom: var(--s-2);
      letter-spacing: -0.01em;
      line-height: 1.1;
    }
    .process__desc {
      color: var(--muted);
      font-size: var(--fs-md);
      line-height: 1.65;
      max-width: 56ch;
    }
    .process__step--right .process__desc { margin-left: auto; }

    /* ============================================================
       CARE  (After-launch maintenance positioning — asymmetric grid)
       ============================================================ */
    .care {
      background: var(--bg-care);
      padding: var(--s-12) 0;
    }
    .care__grid {
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      gap: var(--s-8);
      align-items: start;
    }
    /* ============================================================
       COMMITMENTS — proof-card slot, populated with honest founder
       commitments until real client testimonials replace them
       ============================================================ */
    #commitments { background: var(--bg-about); }
    .commitments-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--s-3);
      margin-top: var(--s-8);
    }
    .commitment-card {
      position: relative;
      overflow: hidden;
      background: linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      border: 1px solid var(--border);
      padding: var(--s-5);
      display: flex;
      flex-direction: column;
      gap: var(--s-4);
      transition: border-color 320ms ease, transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    .commitment-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(
        circle 280px at var(--card-x, 50%) var(--card-y, 50%),
        rgba(201, 168, 76, 0.08) 0%,
        rgba(201, 168, 76, 0) 60%
      );
      opacity: 0;
      transition: opacity 300ms ease;
      pointer-events: none;
    }
    .commitment-card:hover { border-color: var(--gold); transform: translateY(-2px); }
    .commitment-card:hover::before { opacity: 1; }
    .commitment-card__byline {
      display: flex;
      align-items: center;
      gap: var(--s-3);
      padding-bottom: var(--s-3);
      border-bottom: 1px solid var(--border);
      position: relative;
      z-index: 1;
    }
    .commitment-card__initial {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 44px; height: 44px;
      flex-shrink: 0;
      border: 1px solid var(--gold);
      color: var(--gold);
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      font-size: var(--fs-md);
      letter-spacing: -0.02em;
    }
    .commitment-card__name {
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      font-weight: 500;
      color: var(--off);
      margin: 0;
      line-height: 1.2;
    }
    .commitment-card__role {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--muted);
      margin: 4px 0 0;
      line-height: 1.2;
    }
    .commitment-card__quote {
      margin: 0;
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--fs-md);
      line-height: 1.5;
      color: var(--off);
      position: relative;
      z-index: 1;
    }
    @media (max-width: 1024px) {
      .commitments-grid { grid-template-columns: 1fr; gap: var(--s-3); }
    }

    .care__title {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, 3.25rem);
      font-weight: 500;
      color: var(--off);
      line-height: 1.05;
      letter-spacing: -0.015em;
      margin: var(--s-3) 0 var(--s-5);
    }
    .care__lead {
      color: var(--muted);
      font-size: var(--fs-md);
      line-height: 1.7;
      max-width: 48ch;
    }
    .care__list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: var(--s-3);
      padding-top: var(--s-3);
    }
    .care__list li {
      display: flex;
      align-items: center;
      gap: var(--s-3);
      font-size: var(--fs-md);
      color: var(--off);
      font-family: var(--font-sans);
      line-height: 1.4;
      padding-bottom: var(--s-3);
      border-bottom: 1px solid var(--border);
    }
    .care__list li:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }
    .care__bullet {
      position: relative;
      display: inline-block;
      width: 14px;
      height: 14px;
      flex-shrink: 0;
    }
    .care__bullet::before,
    .care__bullet::after {
      content: "";
      position: absolute;
      background: var(--gold);
    }
    .care__bullet::before {
      top: 50%; left: 0; right: 0;
      height: 1.5px;
      transform: translateY(-50%);
    }
    .care__bullet::after {
      left: 50%; top: 0; bottom: 0;
      width: 1.5px;
      transform: translateX(-50%);
    }

    /* ============================================================
       FAQ  (Common questions — collapsible accordion)
       ============================================================ */
    .faq {
      background: var(--bg-faq);
      padding: var(--s-12) 0;
    }
    .faq__list {
      max-width: 760px;
      margin: var(--s-8) auto 0;
      padding: 0 var(--container-pad);
      display: flex;
      flex-direction: column;
      gap: var(--s-3);
    }
    .faq details {
      border: 1px solid var(--border);
      transition: background-color 220ms ease;
    }
    .faq details[open] { background: var(--black-2); }
    .faq summary {
      cursor: pointer;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--s-3);
      padding: var(--s-3) var(--s-4);
      font-family: var(--font-serif);
      font-size: var(--fs-lg);
      font-weight: 500;
      line-height: 1.3;
      color: var(--off);
      transition: color 220ms ease;
    }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary::after {
      content: "+";
      flex-shrink: 0;
      color: var(--gold);
      font-family: var(--font-sans);
      font-size: 1.5rem;
      font-weight: 300;
      line-height: 1;
      transform-origin: center;
      transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    .faq details[open] summary::after { transform: rotate(45deg); }
    .faq details[open] summary { color: var(--gold); }
    .faq summary:hover { color: var(--gold-l); }
    .faq summary:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: -2px;
    }
    .faq details > p {
      padding: 0 var(--s-4) var(--s-3);
      margin-top: 0;
      color: var(--off);
      line-height: 1.7;
    }

    /* ============================================================
       SYSTEMS  (Inside the systems — Lead + Review flow diagrams)
       ============================================================ */
    .systems {
      background: var(--bg-systems);
      padding: var(--s-12) 0;
    }
    .flow-diagram {
      max-width: 1100px;
      margin: var(--s-9) auto 0;
      padding: 0 var(--container-pad);
    }
    .flow-diagram + .flow-diagram { margin-top: var(--s-10); }
    .flow-diagram__caption {
      display: flex;
      align-items: baseline;
      gap: var(--s-3);
      margin-bottom: var(--s-6);
      padding-bottom: var(--s-2);
      border-bottom: 1px solid var(--border);
    }
    .flow-diagram__caption-num {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      color: var(--gold);
      font-size: clamp(3rem, 7vw, 5.5rem);
      line-height: 0.9;
      letter-spacing: -0.02em;
    }
    .flow-diagram__caption-label {
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--muted);
      font-weight: 500;
    }
    .flow-diagram__steps {
      display: flex;
      align-items: flex-start;
      list-style: none;
      padding: 0;
      margin: 0;
      position: relative;
    }
    .flow-diagram__step {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      position: relative;
      padding: 0 var(--s-1);
      min-width: 0;
    }
    .flow-diagram__step::after {
      content: '';
      position: absolute;
      top: 38px;
      left: calc(50% + 24px);
      right: calc(-50% + 24px);
      height: 1px;
      background: linear-gradient(to right, transparent, var(--gold) 30%, var(--gold) 70%, transparent);
      z-index: 0;
      opacity: 0.55;
    }
    .flow-diagram__step:last-child::after { display: none; }

    /* ----- Flow diagram motion choreography -----
       Override the global reveal-group cascade (90ms stagger) with a slower,
       more deliberate 220ms per step. Each step appears bottom-up; the
       connector line to the NEXT step then draws left-to-right, so the flow
       looks like it's building itself as you watch. Gated by .js so no-JS
       and prefers-reduced-motion users see the static diagram. */
    .js .flow-diagram__steps.is-in > *:nth-child(1) { transition-delay: 0ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(2) { transition-delay: 220ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(3) { transition-delay: 440ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(4) { transition-delay: 660ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(5) { transition-delay: 880ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(6) { transition-delay: 1100ms; }

    .js .flow-diagram__step::after {
      transform: scaleX(0);
      transform-origin: left center;
      transition: transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    .js .flow-diagram__steps.is-in > .flow-diagram__step::after {
      transform: scaleX(1);
    }
    .js .flow-diagram__steps.is-in > *:nth-child(1)::after { transition-delay: 150ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(2)::after { transition-delay: 370ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(3)::after { transition-delay: 590ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(4)::after { transition-delay: 810ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(5)::after { transition-delay: 1030ms; }

    /* When the icon settles in, give it one breath of gold glow — subtle,
       300ms ease-out, only on first reveal. */
    .js .flow-diagram__steps.is-in > .flow-diagram__step .flow-diagram__icon {
      animation: flow-icon-pulse 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    .js .flow-diagram__steps.is-in > *:nth-child(1) .flow-diagram__icon { animation-delay: 0ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(2) .flow-diagram__icon { animation-delay: 220ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(3) .flow-diagram__icon { animation-delay: 440ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(4) .flow-diagram__icon { animation-delay: 660ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(5) .flow-diagram__icon { animation-delay: 880ms; }
    .js .flow-diagram__steps.is-in > *:nth-child(6) .flow-diagram__icon { animation-delay: 1100ms; }

    @keyframes flow-icon-pulse {
      0%   { filter: drop-shadow(0 0 0 rgba(201, 168, 76, 0)); }
      40%  { filter: drop-shadow(0 0 12px rgba(201, 168, 76, 0.55)); }
      100% { filter: drop-shadow(0 0 0 rgba(201, 168, 76, 0)); }
    }

    @media (prefers-reduced-motion: reduce) {
      .js .flow-diagram__step::after { transform: none; transition: none; }
      .js .flow-diagram__steps.is-in > .flow-diagram__step .flow-diagram__icon { animation: none; }
    }

    .flow-diagram__num {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      font-size: var(--fs-sm);
      color: var(--gold);
      margin-bottom: var(--s-2);
      line-height: 1;
    }
    .flow-diagram__icon {
      color: var(--gold);
      width: 36px;
      height: 36px;
      margin-bottom: var(--s-3);
      background: var(--bg-systems);
      padding: 0 var(--s-1);
      position: relative;
      z-index: 1;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .flow-diagram__icon svg {
      width: 28px;
      height: 28px;
    }
    .flow-diagram__label {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--off);
      font-weight: 500;
      margin: 0 0 var(--s-2);
    }
    .flow-diagram__desc {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      color: var(--muted);
      line-height: 1.45;
      margin: 0;
      max-width: 16ch;
    }

    /* Mobile overrides for new Phase-1 sections */
    @media (max-width: 768px) {
      .process__step,
      .process__step--right {
        grid-template-columns: 1fr;
        text-align: left;
        margin-left: 0;
      }
      .process__step--right .process__num { grid-column: 1; grid-row: auto; }
      .process__step--right .process__body { grid-column: 1; grid-row: auto; }
      .process__step--right .process__desc { margin-left: 0; }
      .process__num { font-size: 3rem; }
      .care__grid { grid-template-columns: 1fr; gap: var(--s-5); }

      /* Flow diagrams stack vertically on mobile */
      .flow-diagram__steps {
        flex-direction: column;
        gap: var(--s-6);
      }
      .flow-diagram__step {
        width: 100%;
        padding: 0;
      }
      .flow-diagram__step::after {
        top: auto;
        bottom: calc(-1 * var(--s-3));
        left: 50%;
        right: auto;
        width: 1px;
        height: var(--s-5);
        background: linear-gradient(to bottom, var(--gold), transparent);
        opacity: 0.55;
      }
      /* Mobile: connector draws top-to-bottom instead of left-to-right */
      .js .flow-diagram__step::after {
        transform: scaleY(0);
        transform-origin: top center;
      }
      .js .flow-diagram__steps.is-in > .flow-diagram__step::after {
        transform: scaleY(1);
      }
      .flow-diagram__desc { max-width: 32ch; }
    }

    /* ============================================================
       RESPONSIVE
       ============================================================ */
    @media (max-width: 1024px) {
      .focus__grid { grid-template-columns: 1fr; gap: var(--s-5); }
      .focus__left { max-width: 100%; }

      .services-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; min-height: 0; }
      .service-card--hero,
      .service-card--md-1,
      .service-card--md-2,
      .service-card--wide { grid-column: auto; grid-row: auto; }
      .service-card--hero { padding: var(--s-4); }
      .service-card--hero .service-card__title { font-size: var(--fs-xl); }
      .service-card--hero .service-card__desc { font-size: var(--fs-sm); }
      .service-card--hero .service-card__detail { font-size: var(--fs-sm); }
      .service-card--wide .service-card__body { flex-direction: column; }

      .reports-grid { grid-template-columns: repeat(2, 1fr); }
      .contact-grid { grid-template-columns: 1fr; gap: var(--s-6); }

      .footer-top { grid-template-columns: 1.5fr 1fr 1fr; gap: var(--s-5); }
    }

    @media (max-width: 768px) {
      .nav-links { display: none; }
      .menu-toggle { display: inline-flex; }
      .hero__container {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        padding-bottom: var(--s-6);
        gap: var(--s-4);
      }
      /* Centred type sits over the middle of the frame on phones, so swap the
         left-weighted scrim for an even vertical one to hold contrast. */
      .hero__media::after {
        background:
          linear-gradient(180deg,
            rgba(11, 9, 7, 0.74) 0%,
            rgba(11, 9, 7, 0.56) 38%,
            rgba(11, 9, 7, 0.70) 72%,
            rgba(11, 9, 7, 0.97) 100%);
      }
      .hero__content { max-width: 100%; text-align: center; }
      .hero__sub { margin: 0 auto var(--s-6); }
      .hero__cta { justify-content: center; }

      .services-grid { grid-template-columns: 1fr; }
      .founders-grid { grid-template-columns: 1fr; gap: var(--s-8); }
      .reports-grid { grid-template-columns: 1fr; }
      .form-row { grid-template-columns: 1fr; }

      .footer-top { grid-template-columns: 1fr; gap: var(--s-5); }
      .footer-bottom { flex-direction: column-reverse; align-items: flex-start; gap: var(--s-3); }

      :root { --spot-size: 60vmax; --spot-intensity: 0.08; }
    }

    /* ============================================================
       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;
      }
      .btn--primary:hover,
      .service-card:hover,
      .report-card:hover { transform: none; }

      .char { opacity: 1 !important; transform: none !important; filter: none !important; }
      .hero__title-line.gold-accent { filter: none !important; }
      .js [data-reveal],
      .js [data-reveal-group] > * { opacity: 1 !important; transform: none !important; }
      .pull-quote__rule { transform: scaleX(1) !important; }
      .pull-quote__text { opacity: 1 !important; transform: none !important; }
      .pull-quote__cite { opacity: 1 !important; }
      .hero__eyebrow, .hero__sub, .hero__cta { opacity: 1 !important; }
      .hero__divider-rule { transform: scaleX(1) !important; }
      .hero__media { opacity: 1 !important; }
      .hero__orb { opacity: 0.85; }
      body::after { animation: none !important; transition: none !important; }
      /* Flagship circuit ring stays a calm static arc — no travelling light. */
      .services-landing-card--premium:hover::after { animation: none; }
    }

    /* ============================================================
       CONTACT CTA  (replaces the form — mailto-first approach)
       ============================================================ */
    .contact-cta {
      background: linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      border: 1px solid var(--border);
      padding: clamp(var(--s-5), 4vw, var(--s-6));
      display: flex;
      flex-direction: column;
      gap: var(--s-3);
      position: relative;
      overflow: hidden;
    }
    .contact-cta::before,
    .contact-cta::after {
      content: "";
      position: absolute;
      width: 22px;
      height: 22px;
      border: 0 solid var(--gold);
      opacity: 0.4;
      pointer-events: none;
    }
    .contact-cta::before {
      top: 14px; right: 14px;
      border-top-width: 1px; border-right-width: 1px;
    }
    .contact-cta::after {
      bottom: 14px; left: 14px;
      border-bottom-width: 1px; border-left-width: 1px;
    }
    .contact-cta__eyebrow {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 500;
    }
    .contact-cta__title {
      font-family: var(--font-serif);
      font-size: clamp(var(--fs-2xl), 3.2vw, var(--fs-3xl));
      font-weight: 500;
      line-height: 1.08;
      letter-spacing: -0.012em;
      color: var(--off);
      margin: 0;
    }
    .contact-cta__body {
      font-size: var(--fs-md);
      line-height: 1.65;
      color: var(--muted);
    }
    .contact-cta__btn {
      align-self: flex-start;
      margin-top: var(--s-2);
    }
    .contact-cta__small {
      font-size: var(--fs-sm);
      color: var(--muted-2);
      padding-top: var(--s-3);
      margin-top: var(--s-1);
      border-top: 1px solid var(--border);
      line-height: 1.6;
    }
    .contact-cta__small em {
      color: var(--gold);
      font-style: italic;
      font-family: var(--font-serif);
      font-weight: 500;
    }

    /* ============================================================
       ARTICLE / PROSE  (blog posts + privacy/terms)
       ============================================================ */
    .article {
      padding-top: calc(var(--nav-h) + var(--s-6));
      padding-bottom: var(--s-12);
      background: var(--bg-about);
    }
    .article__head {
      max-width: 760px;
      margin: 0 auto var(--s-8);
      padding: 0 var(--container-pad);
    }
    .article__breadcrumb {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: var(--s-4);
    }
    .article__breadcrumb a { color: var(--muted); transition: color var(--t-fast); }
    .article__breadcrumb a:hover { color: var(--gold); }
    .article__breadcrumb-sep { color: var(--gold); }
    .article__tag {
      display: inline-block;
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      padding: 4px 10px;
      border: 1px solid rgba(201, 168, 76, 0.35);
      background: rgba(201, 168, 76, 0.06);
      margin-bottom: var(--s-3);
    }
    .article__title {
      font-family: var(--font-serif);
      font-size: clamp(2.5rem, 5vw, 4rem);
      font-weight: 500;
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--off);
      margin-bottom: var(--s-3);
    }
    .article__meta {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      letter-spacing: 0.05em;
      color: var(--muted);
      padding-top: var(--s-3);
      border-top: 1px solid var(--border);
      margin-top: var(--s-4);
      flex-wrap: wrap;
    }
    .article__meta-dot {
      width: 3px; height: 3px;
      background: var(--gold);
      border-radius: 50%;
      display: inline-block;
    }
    .article__meta-author { color: var(--off); }

    /* Optional video embed at top of post */
    .article__video {
      max-width: 960px;
      margin: 0 auto var(--s-8);
      padding: 0 var(--container-pad);
    }
    .article__video-wrap {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 9;
      background: var(--black-2);
      border: 1px solid var(--border);
      overflow: hidden;
    }
    .article__video-wrap iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }

    /* Cover image — same width as video; pairs with .article__head */
    .article__cover {
      max-width: 960px;
      margin: 0 auto var(--s-8);
      padding: 0 var(--container-pad);
    }
    .article__cover img {
      width: 100%;
      height: auto;
      border: 1px solid var(--border);
      background: var(--black-2);
    }
    .article__cover-caption {
      margin-top: var(--s-2);
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      color: var(--muted);
      text-align: center;
      font-style: italic;
      letter-spacing: 0.01em;
    }

    /* Article body — prose styles */
    .article__body {
      max-width: 680px;
      margin: 0 auto;
      padding: 0 var(--container-pad);
      font-size: var(--fs-md);
      line-height: 1.75;
      color: var(--off);
    }
    .article__body > * + * { margin-top: var(--s-3); }
    .article__body h2 {
      font-family: var(--font-serif);
      font-size: clamp(var(--fs-2xl), 3vw, var(--fs-3xl));
      font-weight: 500;
      line-height: 1.15;
      color: var(--off);
      letter-spacing: -0.01em;
      margin-top: var(--s-8);
      margin-bottom: var(--s-3);
      padding-top: var(--s-3);
      border-top: 1px solid var(--border);
    }
    .article__body h3 {
      font-family: var(--font-serif);
      font-size: var(--fs-xl);
      font-weight: 500;
      line-height: 1.25;
      color: var(--off);
      margin-top: var(--s-5);
      margin-bottom: var(--s-2);
    }
    .article__body p { color: var(--off); }
    .article__body a {
      color: var(--gold);
      border-bottom: 1px solid currentColor;
      transition: color var(--t-fast);
    }
    .article__body a:hover { color: var(--gold-l); }
    .article__body strong { color: var(--off); font-weight: 500; }
    .article__body em { color: var(--gold); font-style: italic; }
    .article__body ul, .article__body ol {
      padding-left: var(--s-4);
      list-style: revert;
      color: var(--muted);
    }
    .article__body li { margin-bottom: 0.5rem; }
    .article__body li::marker { color: var(--gold); }
    .article__body blockquote {
      margin: var(--s-5) 0;
      padding: var(--s-3) var(--s-4);
      border-left: 2px solid var(--gold);
      background: rgba(201, 168, 76, 0.04);
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--fs-lg);
      color: var(--off);
      line-height: 1.5;
    }
    .article__body blockquote p { color: var(--off); }
    .article__body code {
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.9em;
      background: var(--black-3);
      padding: 0.15em 0.4em;
      border-radius: 2px;
      color: var(--gold);
    }
    .article__body pre {
      background: var(--black-2);
      border: 1px solid var(--border);
      padding: var(--s-3);
      overflow-x: auto;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: var(--fs-sm);
      line-height: 1.55;
      color: var(--off);
    }
    .article__body pre code { background: none; padding: 0; color: var(--off); }
    .article__body hr {
      border: none;
      height: 1px;
      background: var(--gold);
      margin: var(--s-8) 0;
      max-width: 80px;
    }

    /* FAQ accordion — native <details>/<summary> */
    .article__body details {
      border: 1px solid var(--border);
      transition: background-color 220ms ease;
    }
    .article__body details[open] {
      background: var(--black-2);
    }
    .article__body summary {
      cursor: pointer;
      list-style: none;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--s-3);
      padding: var(--s-3) var(--s-4);
      font-family: var(--font-serif);
      font-size: var(--fs-lg);
      font-weight: 500;
      line-height: 1.3;
      color: var(--off);
      transition: color 220ms ease;
    }
    .article__body summary::-webkit-details-marker { display: none; }
    .article__body summary::after {
      content: "+";
      flex-shrink: 0;
      color: var(--gold);
      font-family: var(--font-sans);
      font-size: 1.5rem;
      font-weight: 300;
      line-height: 1;
      transform-origin: center;
      transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
    }
    .article__body details[open] summary::after { transform: rotate(45deg); }
    .article__body details[open] summary { color: var(--gold); }
    .article__body summary:hover { color: var(--gold-l); }
    .article__body summary:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: -2px;
    }
    .article__body details > p {
      padding: 0 var(--s-4) var(--s-3);
      margin-top: 0;
      color: var(--off);
    }

    /* Table of contents — anchor nav */
    .article__toc {
      max-width: 680px;
      margin: var(--s-5) auto;
      padding: var(--s-4) var(--container-pad);
      background: var(--black-2);
      border: 1px solid var(--border);
    }
    .article__toc-title {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: var(--s-2);
    }
    .article__toc ol { list-style: none; padding-left: 0; }
    .article__toc li {
      padding: 0.4rem 0;
      border-bottom: 1px solid var(--border);
    }
    .article__toc li:last-child { border-bottom: 0; }
    .article__toc a {
      font-size: var(--fs-sm);
      color: var(--muted);
      transition: color var(--t-fast);
    }
    .article__toc a:hover { color: var(--gold); }

    /* Related posts at end of article */
    .article__related {
      max-width: 1100px;
      margin: var(--s-10) auto 0;
      padding: var(--s-8) var(--container-pad) 0;
      border-top: 1px solid var(--border);
    }
    .article__related-title {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: var(--s-4);
    }
    .article__related-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--s-3);
    }

    /* ============================================================
       BLOG INDEX
       ============================================================ */
    .blog-hero {
      background: var(--bg-hero);
      padding: calc(var(--nav-h) + var(--s-8)) 0 var(--s-8);
      border-bottom: 1px solid var(--border);
    }
    .blog-hero__inner { max-width: 900px; }
    .blog-hero__title {
      font-family: var(--font-serif);
      font-size: clamp(2.75rem, 6vw, 4.5rem);
      font-weight: 500;
      line-height: 1.04;
      letter-spacing: -0.018em;
      color: var(--off);
      margin: var(--s-3) 0;
    }
    .blog-hero__lead {
      font-size: var(--fs-md);
      line-height: 1.6;
      color: var(--muted);
      max-width: 60ch;
    }
    .blog-list {
      padding: var(--s-10) 0;
      background: var(--bg-reports);
    }

    /* ============================================================
       SIMPLE STATIC PAGES (404, privacy, terms)
       ============================================================ */
    .page-shell {
      min-height: calc(100vh - var(--nav-h));
      padding: calc(var(--nav-h) + var(--s-8)) 0 var(--s-10);
      background: var(--bg-about);
    }
    .error-page {
      max-width: 600px;
      margin: 0 auto;
      padding: var(--s-10) var(--container-pad);
      text-align: center;
    }
    .error-page__code {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: clamp(4rem, 10vw, 8rem);
      font-weight: 500;
      color: var(--gold);
      line-height: 1;
      margin-bottom: var(--s-3);
    }
    .error-page__title {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 500;
      line-height: 1.1;
      color: var(--off);
      margin-bottom: var(--s-3);
    }
    .error-page__body {
      font-size: var(--fs-md);
      line-height: 1.6;
      color: var(--muted);
      margin-bottom: var(--s-5);
    }
    .error-page__cta {
      display: inline-flex;
      gap: var(--s-3);
      flex-wrap: wrap;
      justify-content: center;
    }

    @media (max-width: 768px) {
      .article__related-grid { grid-template-columns: 1fr; }
    }

    /* ============================================================
       SERVICE DETAIL PAGES
       ============================================================ */
    .service-hero__num {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--fs-lg);
      font-weight: 500;
      color: var(--gold);
      letter-spacing: 0;
      text-transform: none;
      vertical-align: -1px;
      margin-right: 0.4rem;
    }
    .service-hero__sub {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: clamp(var(--fs-lg), 2vw, var(--fs-xl));
      line-height: 1.45;
      color: var(--muted);
      max-width: 56ch;
      margin-top: var(--s-3);
      font-weight: 400;
    }
    .service-meta {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      letter-spacing: 0.05em;
      color: var(--muted);
      padding-top: var(--s-3);
      border-top: 1px solid var(--border);
      margin-top: var(--s-4);
      flex-wrap: wrap;
    }
    .service-meta-dot {
      width: 3px; height: 3px;
      background: var(--gold);
      border-radius: 50%;
      display: inline-block;
    }
    .service-meta-label { color: var(--gold); text-transform: uppercase; letter-spacing: var(--tracking-md); font-size: var(--fs-xs); }

    /* Bottom CTA on service detail pages */
    .service-cta {
      max-width: 760px;
      margin: var(--s-10) auto var(--s-8);
      padding: clamp(var(--s-5), 5vw, var(--s-8)) clamp(var(--s-4), 4vw, var(--s-6));
      background: linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      border: 1px solid var(--border);
      position: relative;
      overflow: hidden;
    }
    .service-cta::before,
    .service-cta::after {
      content: "";
      position: absolute;
      width: 22px;
      height: 22px;
      border: 0 solid var(--gold);
      opacity: 0.4;
      pointer-events: none;
    }
    .service-cta::before {
      top: 14px; right: 14px;
      border-top-width: 1px; border-right-width: 1px;
    }
    .service-cta::after {
      bottom: 14px; left: 14px;
      border-bottom-width: 1px; border-left-width: 1px;
    }
    .service-cta__eyebrow {
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 500;
      margin-bottom: var(--s-2);
    }
    .service-cta__title {
      font-family: var(--font-serif);
      font-size: clamp(var(--fs-2xl), 3vw, var(--fs-3xl));
      font-weight: 500;
      line-height: 1.1;
      letter-spacing: -0.012em;
      color: var(--off);
      margin-bottom: var(--s-3);
    }
    .service-cta__body {
      font-size: var(--fs-md);
      line-height: 1.65;
      color: var(--muted);
      margin-bottom: var(--s-4);
      max-width: 50ch;
    }
    .service-cta__btn { align-self: flex-start; }

    /* ============================================================
       SERVICES LANDING GRID (uniform 2x2 — different from homepage bento)
       ============================================================ */
    .services-landing {
      padding: var(--s-10) 0;
      background: var(--bg-services);
    }
    .services-landing-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--s-4);
    }
    .services-landing-card {
      background: linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      border: 1px solid var(--border);
      padding: var(--s-5);
      position: relative;
      transition: border-color var(--t-base), transform var(--t-slow), box-shadow var(--t-slow);
      box-shadow: 0 1px 0 rgba(245, 241, 232, 0.03) inset, 0 12px 30px -22px rgba(0, 0, 0, 0.9);
      display: flex;
      flex-direction: column;
      gap: var(--s-2);
      overflow: hidden;
      text-decoration: none;
      color: inherit;
      min-height: 340px;
    }
    /* Two stacked layers on one pseudo:
       (1) a diagonal shine that sweeps across once when the cursor arrives, and
       (2) a soft gold spotlight that tracks the pointer (--card-x/--card-y are
       written by the data-card-spotlights handler). The sheen rides on
       background-position (layer 1); the spotlight is centred internally so the
       position animation never moves it. */
    .services-landing-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(
          115deg,
          transparent 38%,
          rgba(245, 241, 232, 0.10) 47%,
          rgba(232, 205, 142, 0.22) 50%,
          rgba(245, 241, 232, 0.10) 53%,
          transparent 62%
        ) no-repeat,
        radial-gradient(
          circle 360px at var(--card-x, 50%) var(--card-y, 50%),
          rgba(201, 168, 76, 0.13) 0%,
          rgba(201, 168, 76, 0) 60%
        );
      background-size: 250% 100%, 100% 100%;
      background-position: 150% 0, 0 0;
      opacity: 0;
      transition: opacity var(--t-base), background-position 0s;
      pointer-events: none;
      z-index: 0;
    }
    /* Pointer-tracked "flashlight" border — a 1px gold ring, masked to the
       card edge, that brightens under the cursor. The signature premium
       hover; GPU-cheap (opacity only) and reuses the spotlight coordinates. */
    .services-landing-card::after {
      content: "";
      position: absolute;
      inset: 0;
      padding: 1px;
      border-radius: inherit;
      background: radial-gradient(
        circle 260px at var(--card-x, 50%) var(--card-y, 50%),
        rgba(232, 205, 142, 0.9) 0%,
        rgba(201, 168, 76, 0.55) 28%,
        rgba(201, 168, 76, 0) 62%
      );
      -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      -webkit-mask-composite: xor;
      mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      mask-composite: exclude;
      opacity: 0;
      transition: opacity var(--t-slow);
      pointer-events: none;
      z-index: 2;
    }
    .services-landing-card:hover {
      border-color: var(--gold);
      transform: translateY(-4px);
      box-shadow: 0 1px 0 rgba(201, 168, 76, 0.18) inset, 0 22px 46px -24px rgba(0, 0, 0, 0.95), 0 0 30px -18px rgba(201, 168, 76, 0.4);
    }
    /* On arrival the sheen sweeps left across the face once (position glides
       150% -> -150%); the spotlight layer is pinned (0 0) so it never moves. */
    .services-landing-card:hover::before {
      opacity: 1;
      background-position: -150% 0, 0 0;
      transition: opacity var(--t-base), background-position 0.8s cubic-bezier(0.16, 0.84, 0.27, 1);
    }
    .services-landing-card:hover::after { opacity: 1; }
    /* Tactile press: the whole card dips a hair on click, giving every package
       the same "button" feel regardless of size. */
    .services-landing-card:active {
      transform: translateY(-1px) scale(0.992);
      transition: transform 90ms ease;
    }
    /* Lift real content above the interior spotlight wash (::before sits at z 0,
       the masked edge-ring at z 2 only paints the 1px frame). */
    .services-landing-card > * { position: relative; z-index: 1; }
    .services-landing-card__num {
      position: absolute;
      top: var(--s-3);
      right: var(--s-5);
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--fs-2xl);
      font-weight: 500;
      color: var(--gold);
      opacity: 0.75;
      z-index: 1;
      transition: opacity var(--t-base);
    }
    .services-landing-card:hover .services-landing-card__num { opacity: 1; }
    .services-landing-card__tag {
      display: inline-block;
      align-self: flex-start;
      font-family: var(--font-sans);
      font-size: var(--fs-xs);
      letter-spacing: var(--tracking-md);
      text-transform: uppercase;
      color: var(--gold);
      padding: 4px 10px;
      border: 1px solid rgba(201, 168, 76, 0.35);
      background: rgba(201, 168, 76, 0.06);
      margin-bottom: var(--s-2);
    }
    .services-landing-card__icon {
      width: 44px;
      height: 44px;
      color: var(--gold);
      margin-top: var(--s-1);
      flex-shrink: 0;
    }
    .services-landing-card__icon svg { width: 100%; height: 100%; }
    .services-landing-card__icon--stars {
      width: 160px;
      height: 26px;
    }
    .services-landing-card__title {
      font-family: var(--font-serif);
      font-size: var(--fs-2xl);
      font-weight: 500;
      line-height: 1.15;
      color: var(--off);
      margin-top: var(--s-1);
      transition: color var(--t-fast);
    }
    .services-landing-card:hover .services-landing-card__title { color: var(--gold); }
    .services-landing-card__desc {
      font-size: var(--fs-md);
      line-height: 1.6;
      color: var(--muted);
      flex-grow: 1;
    }
    .services-landing-card__cta {
      margin-top: auto;
      padding-top: var(--s-3);
      border-top: 1px solid var(--border);
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      font-weight: 500;
      letter-spacing: var(--tracking-sm);
      text-transform: uppercase;
      color: var(--gold);
    }
    .services-landing-card__cta svg { transition: transform var(--t-base); }
    .services-landing-card:hover .services-landing-card__cta svg { transform: translateX(4px); }

    /* ----- Grouped packages layout ----- */
    .services-group {
      margin-bottom: var(--s-10);
    }
    .services-group:last-of-type { margin-bottom: var(--s-8); }
    .services-group__head {
      display: flex;
      align-items: center;
      gap: var(--s-4);
      margin-bottom: var(--s-5);
      padding-bottom: var(--s-3);
      border-bottom: 1px solid var(--border);
    }
    .services-group__num {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 500;
      font-size: clamp(2.5rem, 5vw, 4rem);
      line-height: 0.9;
      color: var(--gold);
      letter-spacing: -0.02em;
      margin: 0;
      flex-shrink: 0;
    }
    .services-group__title {
      font-family: var(--font-serif);
      font-size: clamp(1.5rem, 2.5vw, 2rem);
      font-weight: 500;
      line-height: 1.1;
      color: var(--off);
      letter-spacing: -0.01em;
      margin: var(--s-1) 0 0;
    }

    /* ----- Three-column grid variant for the "Fix the Bottleneck" row ----- */
    .services-landing-grid--3 {
      grid-template-columns: repeat(3, 1fr);
    }
    /* Spaced variant used when grid follows a featured card directly */
    .services-landing-grid--spaced { margin-top: var(--s-4); }

    /* ----- Featured / wide / premium card variants ----- */
    .services-landing-card--featured,
    .services-landing-card--wide,
    .services-landing-card--premium {
      min-height: 0;
    }
    .services-landing-card--featured {
      padding: clamp(var(--s-5), 4vw, var(--s-7));
    }
    .services-landing-card--featured .services-landing-card__title {
      font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-3xl));
    }
    .services-landing-card--featured .services-landing-card__desc {
      font-size: var(--fs-md);
      max-width: 64ch;
    }

    .services-landing-card--wide {
      padding: clamp(var(--s-5), 4vw, var(--s-7));
    }

    /* Growth Engine — premium treatment: gold-tinted border, deeper inner glow */
    .services-landing-card--premium {
      border-color: rgba(201, 168, 76, 0.4);
      background:
        linear-gradient(180deg, rgba(201, 168, 76, 0.04) 0%, transparent 60%),
        linear-gradient(180deg, var(--black-2) 0%, #100F0D 100%);
      padding: clamp(var(--s-5), 4vw, var(--s-7));
    }
    .services-landing-card--premium .services-landing-card__title {
      font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-3xl));
    }
    .services-landing-card__tag--premium {
      background: rgba(201, 168, 76, 0.12);
      border-color: rgba(201, 168, 76, 0.55);
      color: var(--gold-l);
    }

    /* Growth Engine signature — a gold "circuit" traced around the border.
       At rest it's a calm static arc that marks the flagship; on hover it
       powers up and the light travels around the edge (a literal nod to the
       "one connected system" copy). Pure CSS via a registered custom angle,
       reusing the masked edge-ring from .services-landing-card::after. The
       global reduced-motion kill-switch freezes the spin to a static ring. */
    @property --ring-angle {
      syntax: "<angle>";
      initial-value: 0deg;
      inherits: false;
    }
    .services-landing-card--premium::after {
      background: conic-gradient(
        from var(--ring-angle),
        rgba(201, 168, 76, 0) 0deg,
        rgba(201, 168, 76, 0.12) 70deg,
        rgba(232, 205, 142, 0.95) 110deg,
        rgba(201, 168, 76, 0.12) 150deg,
        rgba(201, 168, 76, 0) 220deg,
        rgba(201, 168, 76, 0) 360deg
      );
      /* Hidden at rest (a lone frozen arc would look lopsided on the wide
         banner); powers up and travels only on hover. */
    }
    .services-landing-card--premium:hover::after {
      opacity: 1;
      animation: ring-spin 4.5s linear infinite;
    }
    @keyframes ring-spin {
      to { --ring-angle: 360deg; }
    }

    /* ----- Pricing line inside cards ----- */
    .services-landing-card__price {
      font-family: var(--font-sans);
      font-size: var(--fs-sm);
      color: var(--off);
      margin: var(--s-2) 0 var(--s-2);
      padding-top: var(--s-2);
      border-top: 1px dashed var(--border);
      letter-spacing: 0.01em;
    }

    /* ----- Pricing note block at the bottom of the landing page ----- */
    .services-pricing-note {
      max-width: 720px;
      margin: 0 auto var(--s-6);
      padding: var(--s-4) var(--s-5);
      border-left: 2px solid var(--gold);
      background: rgba(255, 255, 255, 0.02);
    }
    .services-pricing-note .eyebrow { margin-bottom: var(--s-2); }
    .services-pricing-note p {
      font-size: var(--fs-sm);
      color: var(--muted);
      line-height: 1.6;
      margin: 0;
    }

    @media (max-width: 1024px) {
      .services-landing-grid--3 { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 768px) {
      .services-landing-grid,
      .services-landing-grid--3 { grid-template-columns: 1fr; }
      .services-group__head { gap: var(--s-3); }
    }

    /* ============================================================
       HOMEPAGE SERVICES — BENTO LAYOUT
       Six equal tiles on a 3-up grid (two tidy rows). No oversized
       anchor or banner — every package shares the same footprint so the
       eye reads them as peers; the Growth Engine flagship is singled out
       only by its gold border + travelling "circuit" ring, not by size.
       Collapses to 2-up at 1024px, single column at 768px.
       ============================================================ */
    .services-bento {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-auto-rows: minmax(248px, auto);
      gap: var(--s-4);
    }
    .services-bento .services-landing-card { min-height: 0; }
    /* Narrow tile columns wrap copy heavily; clamp every description to
       three lines so all six rows stay compact and uniform. */
    .services-bento .services-landing-card__desc {
      display: -webkit-box;
      -webkit-line-clamp: 3;
      line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    /* Flagship sits in a normal cell now: normalize its padding and title
       to peer scale (the premium border + ring still single it out). */
    .services-bento .services-landing-card--premium {
      padding: var(--s-5);
    }
    .services-bento .services-landing-card--premium .services-landing-card__title {
      font-size: var(--fs-2xl);
    }

    @media (max-width: 1024px) {
      .services-bento { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 768px) {
      .services-bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
    }

    @media print {
      .site-header, .site-footer, .mobile-nav, .menu-toggle, .hero__cta,
      body::before, body::after, .article__related, .service-cta { display: none; }
      body { background: white; color: black; }
      .article__body { color: black; max-width: 100%; }
      .article__body h2, .article__body h3 { color: black; }
      .article__body a { color: #6a4c1a; }
    }

    /* ============================================================
       DISPLAY TYPEFACE MAP
       Space Grotesk owns every headline, card title, section number,
       nav link and accordion question — the geometric, confident
       "Silicon Valley startup" voice. Placed last so it wins by source
       order over the earlier per-element rules without re-declaring
       their size/weight (preserving the hero→section→card hierarchy).

       Deliberately EXCLUDED — these stay Cormorant Garamond italic, the
       elegant gold counterpoint Jeremy kept through every pruning. This
       includes EVERY gold section numeral (__num / __code / __cover-num):
       they are italic-gold accents, not display text, and Space Grotesk
       has no italic (would synthesize an oblique). Kept-serif set:
         .gold-accent · .serif · .commitment-card__initial
         .commitment-card__quote · .contact-cta__small em
         .article__body blockquote · .service-hero__sub
         .report-card__cover-num · .process__num · .service-hero__num
         .flow-diagram__num · .flow-diagram__caption-num
         .services-landing-card__num · .services-group__num · .error-page__code
       ============================================================ */
    .mobile-nav a,
    .focus__title,
    .founder__name,
    .bio-block__name,
    .report-card__title,
    .contact-form__title,
    .process__title,
    .care__title,
    .faq summary,
    .contact-cta__title,
    .article__title,
    .article__body h2,
    .article__body h3,
    .article__body summary,
    .blog-hero__title,
    .error-page__title,
    .service-cta__title,
    .services-landing-card__title,
    .services-group__title {
      font-family: var(--font-display);
    }
