/* Company page layer - extracted VERBATIM from the prototype's inline
   <style> block (handoff/site/Company.html) by tools/port-page.py. Loads at the SAME
   cascade position the inline block held (after site-iie.css, before print.css). */

  :root { --fs-headline: clamp(28px, 3vw, 40px); --fs-title: clamp(19px, 1.9vw, 25px); }
  main { position: relative; z-index: 1; }
  section, header.cover { position: relative; z-index: 1; }
  .band { padding: var(--section-y) 0; } /* D154: was 110px against LightHouse's identically-classed 150px */
  .cap-h2 { font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; font-size: var(--fs-headline); line-height: 1.02; color: var(--text-primary); }
  .dek { margin-top: var(--dek-gap); font-family: var(--font-ui); font-size: var(--fs-dek); line-height: 1.6; letter-spacing: 0; color: var(--text-secondary); } /* D154: Company's deks sat at the 15px BODY step, one tier under every other page */

  /* shared step-diagram vocabulary (abstract marks; formerly the discipline diagrams) */
  .dg svg { width: 100%; height: auto; overflow: visible; display: block; }
  .dg .ln { fill: none; stroke: var(--hair-strong); stroke-width: 1.4; }
  .dg .dash { fill: none; stroke: rgba(136,156,231,0.5); stroke-width: 1.4; stroke-dasharray: 3 3; }
  .dg .nd { fill: var(--surface-2); stroke: var(--periwinkle); stroke-width: 1.4; }
  .dg .lit { fill: var(--marigold); }
  .dg .litglow { fill: rgba(202,169,11,0.16); }
  .dg .litring { fill: var(--surface-2); stroke: var(--marigold); stroke-width: 1.6; }
  .dg .risk { fill: var(--flag); }
  .dg .riskln { fill: none; stroke: var(--flag); stroke-width: 1.4; }
  /* .dg-tick / .dg-depth — accordion-local marks, decoupled from the method-diagram CSS
     (formerly .ms-tick / .hf-depth); entrance register and timing preserved */
  .dg .dg-tick { fill: none; stroke: var(--marigold); stroke-width: 1.6; stroke-linecap: round; }
  html.js [data-resolve]:not(.resolved) .dg-tick { opacity: 0; }
  [data-resolve].resolved .dg-tick { transition: opacity 500ms var(--ease-out-quint) 980ms; opacity: 1; }
  html.js [data-resolve]:not(.resolved) .dg-depth { opacity: 0; }
  [data-resolve].resolved .dg-depth { transition: opacity 760ms var(--ease-out-quint) 380ms; opacity: 1; }
  body.frozen .dg-tick, body.frozen .dg-depth { opacity: 1 !important; transition: none !important; }
  @media (prefers-reduced-motion: reduce) { .dg-tick, .dg-depth { opacity: 1 !important; transition: none !important; } }

  /* moderate atmosphere: section gradients + hero dot-grid (matches the landing page) */
  .cover { background: radial-gradient(ellipse 64% 56% at 84% 40%, rgba(202,169,11,0.07), transparent 58%), var(--canvas); }
  .method { background: radial-gradient(ellipse 72% 56% at 16% 30%, rgba(136,156,231,0.05), transparent 62%), var(--canvas-2); }
  .ev { background: radial-gradient(ellipse 74% 56% at 20% 22%, rgba(136,156,231,0.05), transparent 62%), var(--canvas-2); }

  /* ===== 01 · COVER — top-down lighthouse on a chart + descending light ===== */
  .cover { padding: var(--hero-y-top) 0 96px; min-height: 82vh; display: flex; align-items: center; overflow: hidden; }
  .cover #harbor { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
  .cover .cover-scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 60% 86% at 22% 50%, rgba(20,20,22,0.9), rgba(20,20,22,0.5) 46%, transparent 66%); }
  /* D153: the 1500px override started the cover H1 at 48px against the page's 128px
     section edge - the wrap now keeps the house --max so headers and sections align */
  .cover .wrap { position: relative; z-index: 2; width: 100%; }
  .cover .cover-copy { max-width: 880px; }
  .cover .seclabel { margin-bottom: 22px; } /* match the 22px eyebrow-to-headline gap used on the other heroes */
  .cover h1 { font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; font-size: clamp(44px, 6.2vw, 88px); line-height: 1.0; letter-spacing: -0.01em; color: var(--text-primary); max-width: 20ch; }
  .cover .lead { margin-top: 32px; max-width: 48ch; font-family: var(--font-ui); font-weight: 400; font-size: var(--fs-lead); line-height: 1.55; color: var(--text-secondary); }
  .cover .actions { margin-top: 30px; }
  /* M5 — the cover copy staggers to Home's cadence: seclabel 120ms -> H1 words (per-word
     split unchanged) -> lead 450ms -> CTA 650ms. The wrap keeps .reveal for the frozen
     failsafe contract but goes fade-only inside the cover so nothing double-translates. */
  html.js .cover .reveal:not(.in) { transform: none; }
  .cover .reveal.in { animation-name: coverFade; }
  @keyframes coverFade { from { opacity: 0; } to { opacity: 1; } }
  html.js .cover .reveal:not(.in) :is(.seclabel, .lead, .actions) { opacity: 0; transform: translateY(14px); }
  .cover .reveal.in .seclabel { transition: opacity 760ms var(--ease-out-quint) 120ms, transform 760ms var(--ease-out-quint) 120ms; }
  .cover .reveal.in .lead { transition: opacity 760ms var(--ease-out-quint) 450ms, transform 760ms var(--ease-out-quint) 450ms; }
  .cover .reveal.in .actions { transition: opacity 760ms var(--ease-out-quint) 650ms, transform 760ms var(--ease-out-quint) 650ms; }
  body.frozen .cover :is(.seclabel, .lead, .actions) { opacity: 1 !important; transform: none !important; transition: none !important; }
  @media (prefers-reduced-motion: reduce) { .cover :is(.seclabel, .lead, .actions) { opacity: 1 !important; transform: none !important; transition: none !important; } }

  /* ===== 02 · METHOD BRIDGE ===== */
  .method { border-top: 1px solid var(--hair); background: var(--canvas-2); } /* D154: single-use 136px bottom deleted - .band's token governs */
  .method .mtop { max-width: 56ch; margin-bottom: 48px; }
  .ms-link { margin: 18px 0 0; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
  .ms-link a { color: var(--marigold); text-decoration: none; border-bottom: 1px solid rgba(202,169,11,0.35); padding-bottom: 2px; transition: border-color 200ms; }
  .ms-link a:hover { border-color: var(--marigold); }
  .ms-link .arr { display: inline-block; transition: transform 200ms var(--ease-out-quint); }
  .ms-link a:hover .arr { transform: translateX(3px); }
  /* fusion ledger — three labelled stream lanes carry artifact dots into the marigold
     corroboration ring; one output line pays off in a mini-dossier glyph echoing the
     dossier artifact (title rule + claim-row bars + facts/assessment hairline).
     Composition constrained to ~1000px, centered. Labels are HTML (fixed 11px mono,
     the micro-type floor) anchored to viewBox fractions; hidden <=760px, mirroring the
     harbor chart's own label suppression. */
  .method-stage { max-width: 1000px; margin: 0 auto; }
  .ms-fig { position: relative; }
  .method-svg { width: 100%; height: auto; overflow: visible; display: block; }
  .ms-lane { fill: none; stroke-width: 1.4; }
  .ms-lane.os { stroke: rgba(136,156,231,0.5); stroke-dasharray: 2 4; }
  .ms-lane.pn { stroke: rgba(136,156,231,0.55); }
  .ms-lane.tc { stroke: rgba(136,156,231,0.5); stroke-dasharray: 8 4; }
  .ms-out { fill: none; stroke: rgba(202,169,11,0.55); stroke-width: 1.6; }
  .ms-node { fill: var(--surface); stroke: var(--periwinkle); stroke-width: 1.4; }
  .ms-dot { fill: var(--surface-2); stroke: rgba(136,156,231,0.55); stroke-width: 1.2; }
  .ms-ring-glow { fill: rgba(202,169,11,0.14); }
  .ms-ring { fill: var(--surface-2); stroke: var(--marigold); stroke-width: 1.6; }
  .ms-brief-glow { fill: rgba(202,169,11,0.14); }
  .ms-brief { fill: var(--surface-2); stroke: var(--marigold); stroke-width: 1.6; }
  .ms-doc-title { stroke: rgba(255,255,255,0.55); stroke-width: 2; }
  .ms-doc-row { stroke: rgba(255,255,255,0.12); stroke-width: 4; }
  .ms-doc-hair { stroke: rgba(202,169,11,0.35); stroke-width: 1; }
  .ms-lab { position: absolute; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-tertiary); white-space: nowrap; }
  .ms-lab-os { left: 4%; top: calc(19.6% - 18px); }
  .ms-lab-pn { left: 4%; top: calc(50% - 18px); }
  .ms-lab-tc { left: 4%; top: calc(80.4% - 18px); }
  .ms-lab-ring { left: 64%; transform: translateX(-50%); top: calc(61.3% + 6px); color: var(--marigold); }
  .ms-lab-doc { left: 83.6%; transform: translateX(-50%); top: calc(68.7% + 12px); color: var(--text-secondary); }
  /* entrance — the register and timing the band shipped with: lanes draw 700ms, output
     draws 520ms @560ms, deliverable resolves 500ms @980ms */
  html.js [data-resolve]:not(.resolved) .ms-lane { stroke-dasharray: 620; stroke-dashoffset: 620; }
  html.js [data-resolve]:not(.resolved) .ms-out { stroke-dasharray: 150; stroke-dashoffset: 150; }
  [data-resolve].resolved .ms-lane { transition: stroke-dashoffset 700ms var(--ease-out-quint); stroke-dashoffset: 0; }
  [data-resolve].resolved .ms-lane.pn { stroke-dasharray: 620; }
  [data-resolve].resolved .ms-out { stroke-dasharray: 150; transition: stroke-dashoffset 520ms var(--ease-out-quint) 560ms; stroke-dashoffset: 0; }
  html.js [data-resolve]:not(.resolved) :is(.ms-dot, .ms-lab-os, .ms-lab-pn, .ms-lab-tc) { opacity: 0; }
  [data-resolve].resolved :is(.ms-dot, .ms-lab-os, .ms-lab-pn, .ms-lab-tc) { transition: opacity 500ms var(--ease-out-quint) 240ms; opacity: 1; }
  html.js [data-resolve]:not(.resolved) :is(.ms-ring, .ms-ring-glow, .ms-lab-ring) { opacity: 0; }
  [data-resolve].resolved :is(.ms-ring, .ms-ring-glow, .ms-lab-ring) { transition: opacity 400ms var(--ease-out-quint) 560ms; opacity: 1; }
  html.js [data-resolve]:not(.resolved) :is(.ms-doc, .ms-lab-doc) { opacity: 0; }
  [data-resolve].resolved :is(.ms-doc, .ms-lab-doc) { transition: opacity 500ms var(--ease-out-quint) 980ms; opacity: 1; }
  /* reduce / frozen / ?snap: settled ledger, zero motion */
  body.frozen .ms-lane, body.frozen .ms-out { stroke-dashoffset: 0 !important; transition: none !important; }
  body.frozen .ms-lane.os { stroke-dasharray: 2 4 !important; }
  body.frozen .ms-lane.tc { stroke-dasharray: 8 4 !important; }
  body.frozen .ms-lane.pn, body.frozen .ms-out { stroke-dasharray: none !important; }
  body.frozen :is(.ms-dot, .ms-ring, .ms-ring-glow, .ms-doc, .ms-lab) { opacity: 1 !important; transition: none !important; }
  @media (prefers-reduced-motion: reduce) {
    .ms-lane, .ms-out { stroke-dashoffset: 0 !important; transition: none !important; }
    .ms-lane.os { stroke-dasharray: 2 4 !important; }
    .ms-lane.tc { stroke-dasharray: 8 4 !important; }
    .ms-lane.pn, .ms-out { stroke-dasharray: none !important; }
    :is(.ms-dot, .ms-ring, .ms-ring-glow, .ms-doc, .ms-lab) { opacity: 1 !important; transition: none !important; }
  }
  @media (max-width: 760px) { .ms-lab { display: none; } }

  /* ===== 04 · MISSION SPECIFICATION — interactive spec index ===== */
  .xmap { border-top: 1px solid var(--hair); background: radial-gradient(ellipse 66% 60% at 78% 16%, rgba(136,156,231,0.06), transparent 62%), var(--canvas); }
  .xmap .wrap { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 72px; align-items: start; }
  .xmap .xtop { margin-bottom: 0; }
  .didx { border-top: 1px solid var(--hair-strong); }
  .didx-item { border-bottom: 1px solid var(--hair); }
  .didx-head { position: relative; width: 100%; display: grid; grid-template-columns: 44px 1fr auto; gap: 24px; align-items: center; padding: 24px 4px; background: transparent; border: 0; cursor: pointer; text-align: left; }
  .didx-head .n svg { display: block; }
  .didx-head .n { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--text-tertiary); transition: color 200ms; }
  .didx-head .nm { font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; font-size: var(--fs-title); line-height: 1.04; color: var(--text-secondary); transition: color 200ms; }
  .didx-head .x { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-tertiary); white-space: nowrap; transition: color 200ms; }
  .didx-head .x::after { content: 'Sealed'; }
  .didx-item.open .didx-head { background: var(--canvas-2); }
  /* M23 house grammar - activation is a hairline of light being DRAWN left to
     right (260ms expo, matching .ap-chip::after), never popped; hover stays
     pure illumination (color lifts only) */
  .didx-head::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--marigold); transform: scaleX(0); transform-origin: left; transition: transform 260ms var(--ease-out-expo); }
  .didx-item.open .didx-head::before { transform: scaleX(1); }
  .didx-item.open .didx-head .nm { color: var(--text-primary); }
  .didx-item.open .didx-head .n { color: var(--marigold); }
  .didx-item.open .didx-head .x { color: var(--marigold); }
  .didx-item.open .didx-head .x::after { content: 'Open'; }
  .didx-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 420ms var(--ease-out-quint); background: var(--canvas-2); }
  .didx-item.open .didx-panel { grid-template-rows: 1fr; }
  .didx-pin { overflow: hidden; }
  .didx-body { display: grid; grid-template-columns: 190px 1fr; gap: 48px; align-items: center; padding: 6px 24px 34px; }
  .didx-body .dg { display: flex; align-items: center; justify-content: center; }
  .didx-body .dg svg { width: 148px; height: auto; }
  .didx-body p { font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); max-width: 52ch; margin-bottom: 18px; }
  .didx-body .caps { display: flex; flex-wrap: wrap; gap: 10px 22px; }
  .didx-body .caps span { font-family: var(--font-ui); font-size: 13px; color: var(--text-secondary); position: relative; padding-left: 13px; }
  .didx-body .caps span::before { content: ''; position: absolute; left: 0; top: 50%; width: 4px; height: 4px; border: 1px solid var(--marigold); border-radius: 50%; transform: translateY(-50%); }
  @media (prefers-reduced-motion: reduce) { .didx-panel { transition: none; } .didx-head .x::after { transition: none; } .didx-head::before { transition: none; } }
  @media (max-width: 1040px) { .xmap .wrap { grid-template-columns: 1fr; gap: 0; } .xmap .xtop { margin-bottom: 40px; } }

  /* ===== 05 · FLYWHEEL — the mission-to-engine loop (static strip, CSS entrance only) ===== */
  .fly { border-top: 1px solid var(--hair); background: var(--canvas-2); }
  .fly .ftop { max-width: 62ch; margin-bottom: 48px; }
  .fly .fbody { margin-top: var(--dek-gap); max-width: 62ch; font-family: var(--font-ui); font-size: var(--fs-dek); line-height: 1.6; color: var(--text-secondary); }
  .fly-stage { max-width: 1000px; margin: 0 auto; }
  .fw-fig { position: relative; }
  .fw-svg { width: 100%; height: auto; overflow: visible; display: block; }
  .fw-lane { fill: none; stroke: rgba(136,156,231,0.55); stroke-width: 1.4; }
  .fw-ret { fill: none; stroke: rgba(202,169,11,0.4); stroke-width: 1.3; stroke-dasharray: 3 5; }
  .fw-lab { position: absolute; }
  .fw-lab--dec { left: 8%; transform: translateX(-50%); top: calc(35% - 30px); }
  .fw-lab--mis { left: 35%; transform: translateX(-50%); top: calc(35% - 30px); }
  .fw-lab--op { left: 62%; transform: translateX(-50%); top: calc(35% - 30px); }
  .fw-lab--eng { left: 89%; transform: translateX(-50%); top: calc(35% - 34px); color: var(--marigold); }
  .fw-lab--ret { left: 50%; transform: translateX(-50%); top: calc(76% + 10px); }
  /* entrance — rides the section's [data-resolve]: lanes draw, return loop and labels fade */
  html.js [data-resolve]:not(.resolved) .fw-lane { stroke-dasharray: 300; stroke-dashoffset: 300; }
  [data-resolve].resolved .fw-lane { transition: stroke-dashoffset 700ms var(--ease-out-quint); stroke-dashoffset: 0; }
  html.js [data-resolve]:not(.resolved) .fw-ret { opacity: 0; }
  [data-resolve].resolved .fw-ret { transition: opacity 600ms var(--ease-out-quint) 760ms; opacity: 1; }
  html.js [data-resolve]:not(.resolved) .fw-lab { opacity: 0; }
  [data-resolve].resolved .fw-lab { transition: opacity 500ms var(--ease-out-quint) 240ms; opacity: 1; }
  [data-resolve].resolved .fw-lab--eng { transition-delay: 560ms; }
  [data-resolve].resolved .fw-lab--ret { transition-delay: 760ms; }
  body.frozen .fw-lane { stroke-dashoffset: 0 !important; transition: none !important; }
  body.frozen :is(.fw-ret, .fw-lab) { opacity: 1 !important; transition: none !important; }
  @media (prefers-reduced-motion: reduce) {
    .fw-lane { stroke-dashoffset: 0 !important; transition: none !important; }
    :is(.fw-ret, .fw-lab) { opacity: 1 !important; transition: none !important; }
  }
  .fly-iso { margin: 40px auto 0; max-width: 1000px; padding-top: 20px; border-top: 1px solid var(--hair); font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
  .fly-iso .iso-k { display: block; margin-bottom: 8px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-tertiary); }
  /* D157 (owner): the flywheel gets its own ask, on the .apps-ask equidistant pattern */
  .fly-ask { display: flex; justify-content: center; margin-top: 56px; }
  @media (max-width: 760px) { .fw-lab { display: none; } }

  /* ===== 06 · OUTCOMES REGISTER (forward use-case cards, C16/D145) ===== */
  .ev { border-top: 1px solid var(--hair); background: var(--canvas-2); }
  .ev .head { margin-bottom: 48px; }
  .ev .head p { margin: var(--dek-gap) 0 0; font-family: var(--font-ui); font-size: var(--fs-dek); line-height: 1.6; color: var(--text-secondary); max-width: 60ch; }
  .uc-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 28px; }
  .uc-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; border-top: 1px solid var(--hair-strong); padding: 22px 2px 0; }
  .uc-ic { display: flex; color: var(--periwinkle); }
  .uc-h { margin: 2px 0 0; font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; font-size: var(--fs-title); line-height: 1.04; letter-spacing: 0.005em; color: var(--text-primary); transition: color 160ms; }
  .uc-card:hover .uc-h { color: var(--marigold); }
  .uc-p { margin: 0; font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); } /* D154: card body = secondary, matching Home and LightHouse card bodies */
  .uc-rec { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; padding-top: 8px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--marigold); white-space: nowrap; }
  .uc-dot { width: 6px; height: 6px; background: var(--marigold); display: inline-block; flex: 0 0 auto; }
  .uc-rec.uc-peri { color: var(--periwinkle); }
  .uc-rec.uc-peri .uc-dot { background: var(--periwinkle); }
  html.js [data-resolve]:not(.resolved) .uc-card { opacity: 0; transform: translateY(12px); }
  [data-resolve].resolved .uc-card { transition: opacity 520ms var(--ease-out-quint), transform 520ms var(--ease-out-quint); opacity: 1; transform: none; }
  [data-resolve].resolved .uc-card:nth-child(2) { transition-delay: 70ms; }
  [data-resolve].resolved .uc-card:nth-child(3) { transition-delay: 140ms; }
  [data-resolve].resolved .uc-card:nth-child(4) { transition-delay: 210ms; }
  [data-resolve].resolved .uc-card:nth-child(5) { transition-delay: 280ms; }
  [data-resolve].resolved .uc-card:nth-child(6) { transition-delay: 350ms; }
  @media (prefers-reduced-motion: reduce) { html.js [data-resolve]:not(.resolved) .uc-card { opacity: 1; transform: none; } [data-resolve].resolved .uc-card { transition: none; } }
  @media (max-width: 940px) { .uc-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; } }
  @media (max-width: 640px) { .uc-grid { grid-template-columns: 1fr; gap: 26px; } .uc-card { padding-top: 18px; } }

  /* ===== 07 · FOUNDERS & LEADERSHIP (crew manifest) — the one photography exception ===== */
  .fmn { padding: var(--section-y) 0; position: relative; background: radial-gradient(ellipse 55% 60% at 84% 12%, rgba(136,156,231,0.045), transparent 62%); }
  .fmn .wrap { position: relative; }
  .fmn-head { max-width: 62ch; }
  .fmn-title { margin: 0; font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0; line-height: 1.02; color: var(--text-primary); font-size: var(--fs-headline); }
  .fmn-dek { margin: 24px 0 0; max-width: 54ch; font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
  .fmn-list { list-style: none; margin: 0; padding: 0; }
  .fmn-row { display: grid; grid-template-columns: 152px 1fr; align-items: center; gap: 40px; padding: 36px 0; border-bottom: 1px solid var(--hair); position: relative; }
  /* crew-manifest entrance — enrolled in the page's [data-resolve] engine, matching the .uc-card/.led-row registers */
  html.js [data-resolve]:not(.resolved) .fmn-row { opacity: 0; transform: translateY(12px); }
  [data-resolve].resolved .fmn-row { transition: opacity 560ms var(--ease-out-quint), transform 560ms var(--ease-out-quint); opacity: 1; transform: none; }
  [data-resolve].resolved .fmn-row:nth-child(2) { transition-delay: 110ms; }
  [data-resolve].resolved .fmn-row:nth-child(3) { transition-delay: 220ms; }
  @media (prefers-reduced-motion: reduce) { html.js [data-resolve]:not(.resolved) .fmn-row { opacity: 1; transform: none; } [data-resolve].resolved .fmn-row { transition: none; } }
  .fmn-slot { position: relative; aspect-ratio: 4/5; width: 152px; border: 1px solid var(--hair-strong); background: linear-gradient(155deg, var(--surface), var(--surface-2)); display: flex; align-items: center; justify-content: center; overflow: hidden; }
  .fmn-slot::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 4px); pointer-events: none; }
  .fmn-mono { position: relative; z-index: 1; font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 26px; letter-spacing: 0.04em; color: rgba(136,156,231,0.45); }
  .fmn-cross { position: absolute; width: 7px; height: 7px; z-index: 2; }
  .fmn-cross::before, .fmn-cross::after { content: ""; position: absolute; background: var(--text-dim); }
  .fmn-cross::before { top: 3px; left: 0; width: 7px; height: 1px; }
  .fmn-cross::after { left: 3px; top: 0; width: 1px; height: 7px; }
  .fmn-cross--tl { top: 7px; left: 7px; }
  .fmn-cross--br { bottom: 7px; right: 7px; }
  .fmn-entry { display: grid; grid-template-columns: 1.05fr 1.5fr auto; gap: 44px; align-items: baseline; }
  .fmn-id { align-self: baseline; }
  .fmn-name { margin: 0; font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; letter-spacing: 0.01em; line-height: 1.04; color: var(--text-primary); font-size: var(--fs-title); }
  .fmn-role { margin: 9px 0 0; font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; color: var(--text-tertiary); }
  .fmn-note { margin: 0; font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
  .fmn-since { margin: 0; display: flex; gap: 8px; align-items: baseline; justify-self: end; white-space: nowrap; }
  .fmn-since-k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-tertiary); }
  .fmn-since-y { font-family: 'Rajdhani', sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 0.05em; color: var(--periwinkle); }
  @media (max-width: 880px) {
    /* D154: .fmn mobile padding retired - the clamp floor supersedes it */
    .fmn-row { grid-template-columns: 112px 1fr; gap: 24px; align-items: start; padding: 30px 0; }
    .fmn-slot { width: 112px; }
    .fmn-entry { grid-template-columns: 1fr; gap: 6px; align-items: start; }
    .fmn-note { margin-top: 6px; max-width: 52ch; }
    .fmn-since { justify-self: start; margin-top: 12px; }
  }
  @media (max-width: 430px) {
    .fmn-row { grid-template-columns: 76px 1fr; gap: 18px; }
    .fmn-slot { width: 76px; }
  }

  /* ===== 08 · CLOSE — the page's one beam moment ===== */
  .close { border-top: 1px solid var(--hair); position: relative; overflow: hidden; min-height: 52vh; display: flex; align-items: center; justify-content: center; padding: 72px 0; } /* round-8b: uniform close */
  .close #closebeam { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
  .close .veil { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 72% 70% at 50% 48%, transparent 0%, rgba(20,20,22,0.55) 66%, var(--canvas) 100%); }
  .close .wrap { position: relative; z-index: 2; margin: 0 auto; text-align: center; } /* D156 (owner): the 880px cap removed - Company's close now measures like Home's and LightHouse's */
  .close h2 { margin-top: 0; font-family: 'Rajdhani', sans-serif; font-weight: 600; text-transform: uppercase; font-size: clamp(44px, 6.2vw, 88px); line-height: 0.96; color: var(--text-primary); }
  .close .sub { margin: 28px auto 0; max-width: 42ch; font-family: var(--font-ui); font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
  .close .actions { margin-top: 40px; }

  @media (max-width: 940px) {
    .cover .cover-copy { max-width: 100%; }
    .cover .cover-scrim { background: radial-gradient(ellipse 120% 70% at 50% 42%, rgba(20,20,22,0.62), rgba(20,20,22,0.9) 78%, var(--canvas) 100%); }
    .file-bd { grid-template-columns: 1fr; }
    .diff { border-right: 0; border-bottom: 1px solid var(--hair); }
  }
  @media (max-width: 760px) {
    /* D154: .band mobile padding retired - it also equal-specificity clobbered .close on phones */
    .cover { padding: 122px 0 56px; min-height: 68vh; }
    /* mobile hero: zoom in on the chart and crop (.cover overflow:hidden) to keep focus on the
       lighthouse + descending beam — a full-width render condensed/cluttered the nodes. Copy sits left over a soft scrim. */
    .cover #harbor { width: 720px; height: 100%; left: -210px; right: auto; }
    .cover .cover-copy { width: 62vw; max-width: 62vw; }
    .cover h1 { font-size: clamp(28px, 8.4vw, 40px); }
    .cover .cover-scrim {
      background: linear-gradient(90deg, var(--canvas) 44%, rgba(20,20,22,0.52) 60%, transparent 74%);
      -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
      mask-image: linear-gradient(180deg, transparent 0, #000 60px, #000 calc(100% - 60px), transparent 100%);
    }
    .didx-body { grid-template-columns: 1fr; gap: 16px; padding: 6px 16px 28px; }
    .didx-head { grid-template-columns: 30px 1fr auto; gap: 14px; padding: 20px 4px; }
    .close .wrap { text-align: left; }
    .close .sub { margin: 16px 0 0; }
  }

/* ============================================================
   POST-TRANSPLANT ADDITIONS (dev-scope — not part of the verbatim
   block above; keep appended, never interleave).
   C27/D188: founders become named and pictured (CO4 reversed).
   The carried .fmn grammar already anticipated a portrait — .fmn-slot
   is a 4/5 box — so the photo fills the existing frame rather than
   introducing a new one, and the numeral + corner crosses stay as the
   no-photo state. A row with no name renders exactly as before: the
   role IS the .fmn-name heading. Only when a name exists does the role
   drop to the subordinate .fmn-role line.
   ============================================================ */
.fmn-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Sits under .fmn-slot::after so the carried scanline overlay still reads
     across the portrait, keeping it in the same material as the empty slot. */
  position: relative;
  z-index: 0;
  filter: grayscale(1) contrast(1.04);
}
.fmn-role {
  margin: 6px 0 0;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  line-height: 1.45;
}
@media (max-width: 760px) {
  .fmn-role { margin-top: 4px; }
}

/* ============================================================
   D192 (owner, 2026-07-24): mobile diagram labels — option B.
   Owner reported the Company diagrams do not match desktop on phones.
   PARITY-CHECKED FIRST: every diagram rule matches the frozen prototype
   byte-for-byte, so this is inherited design, not port drift (the fourth
   such case after D175/D176/D177). The carried rules
       @media (max-width:760px){ .ms-lab{display:none} }
       @media (max-width:760px){ .fw-lab{display:none} }
   hide ALL TEN labels across both figures, because every flywheel label
   also carries `ms-lab`.

   Measured at 375px (figure 335px after the 20px gutters, mono 11px at
   0.18em ≈ 7.9px/char): only FOUR labels actually justify suppression —
     · fw-lab--dec  "Decision"          spans −5..58   overflows the left edge
     · fw-lab--eng  "The system"        spans 259..338 overflows the right edge
     · ms-lab-doc   "Decision product"  spans 217..343 overflows AND collides
                                        with ms-lab-ring (174..254)
     · ms-lab-ring  hidden with it, since naming the system without naming
                    its output reads as a truncated sentence.
   The other six have room. Owner chose to restore exactly those, having
   seen all three options rendered at 375px.

   ⚠ Known and accepted: the three left labels carry `top: calc(N% − 18px)`,
   an offset authored against a ~230px-tall desktop figure. At 375px the
   figure is 77px tall, so they sit high relative to their lanes and the
   first clears the figure box by ~3px. Nothing clips (both SVGs are
   `overflow: visible`). Correcting the offset is a separate change.

   The carried declarations above are left untouched and diffable (D168);
   these rules sit later in the same cascade at equal specificity.
   ============================================================ */
@media (max-width: 760px) {
  .ms-lab-os,
  .ms-lab-pn,
  .ms-lab-tc,
  .fw-lab--mis,
  .fw-lab--op,
  .fw-lab--ret { display: block; }

  .ms-lab-ring,
  .ms-lab-doc,
  .fw-lab--dec,
  .fw-lab--eng { display: none; }
}

/* ============================================================
   D220 (owner, 2026-07-30): founders became addable and removable
   through the admin, so `.fmn-list` is no longer a fixed three.
   The carried entrance choreography enumerates only nth-child(2)
   and (3) at 110ms steps — a FOURTH founder inherited no delay and
   would have animated simultaneously with the first, collapsing the
   stagger the section is built on. The progression is continued at
   its own 110ms interval rather than replaced, and the carried
   declarations above are left untouched and diffable (D168).
   Eight is not a rule, just headroom past any plausible founder
   count; rows beyond it simply share the last delay.
   ============================================================ */
[data-resolve].resolved .fmn-row:nth-child(4) { transition-delay: 330ms; }
[data-resolve].resolved .fmn-row:nth-child(5) { transition-delay: 440ms; }
[data-resolve].resolved .fmn-row:nth-child(6) { transition-delay: 550ms; }
[data-resolve].resolved .fmn-row:nth-child(7) { transition-delay: 660ms; }
[data-resolve].resolved .fmn-row:nth-child(n + 8) { transition-delay: 770ms; }
