@page { size: A4 portrait; margin: 0; }

  :root {
    --ink:        #0B101E;
    --body:       #11172D;
    --muted:      #465D85;
    --soft:       #5E779D;
    --rule:       #EBEEF3;
    --rule-soft:  #EBEEF3;
    --bg:         #F5F7F9;
    --paper:      #ffffff;

    --dark:       #06163A;
    --on-dark:    #F5F7F9;
    --on-dark-mute:#A8B6CB;
    --eyebrow-dk: #B2CCFF;

    --navy:       #06163A;
    --accent:     var(--navy);
    --red:        #962A1B;
    --warm:       #FFF9EE;   /* forge-50 – warm neutral for callout grounds */

    --serif: "Noe Display", Georgia, "Times New Roman", serif;
    --sans:  "Europa", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --sans-bold: "Europa", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }

  * { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; }
  body {
    font-family: var(--sans);
    color: var(--body);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    line-height: 1.5;
    font-size: 10pt;
  }


  /* Display-sans elements, and any inline bold, take the Bold face
     explicitly so nothing is synthesised from the Regular. */
  .page-footer,
  .mark-tag,
  .eyebrow,
  .cover-kicker,
  .heatmap-table tbody td:first-child,
  .spend-band,
  .scorecard-table tbody td:first-child,
  .epigraph .attribution,
  .running-head,
  .toc-page,
  .core-q .label,
  .measurement-pricing .pricing-kicker,
  .flow .step-q .qlabel,
  .maturity-label,
  .coding-tool-mode,
  .sec-gate-label,
  .provider-check-title,
  .ph-num,
  .dot-tag,
  .ex-label,
  .ex-co,
  .cohort-status,
  .turn-figure-kicker,
  .bottom-lines li::before,
  .profile-name,
  strong, b {
    font-family: var(--sans-bold);
  }

  /* ---------- Pages ---------- */

  .page {
    width: 210mm;
    min-height: 297mm;
    margin: 12mm auto;
    background: var(--paper);
    box-shadow: 0 4px 28px rgba(0,0,0,0.08);
    break-after: page;
    page-break-after: always;
    overflow: visible;
    position: relative;
  }
  .page.dark {
    background: var(--dark);
    color: var(--on-dark);
    height: 297mm;
    overflow: hidden;
  }
  .page-pad {
    min-height: 297mm;
    padding: 22mm 27mm 44mm 27mm;
  }
  .page.dark .page-pad {
    padding: 26mm 27mm 44mm 27mm;
    height: 297mm;
    display: flex;
    flex-direction: column;
  }
  html.paginating .page:not(.dark):not(.cover-redpilled),
  html.paginated .page:not(.dark):not(.cover-redpilled) {
    height: 297mm;
    min-height: 297mm;
    overflow: hidden;
  }
  html.paginating .page:not(.dark):not(.cover-redpilled) .page-pad,
  html.paginated .page:not(.dark):not(.cover-redpilled) .page-pad {
    height: 297mm;
    min-height: 297mm;
  }
  .page-footer {
    position: absolute;
    left: 27mm;
    right: 27mm;
    bottom: 14mm;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 3.5mm;
    border-top: 1px solid var(--rule-soft);
    font-family: var(--sans);
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--soft);
    pointer-events: none;
  }
  .page-footer .folio {
    color: var(--accent);
    font-variant-numeric: tabular-nums;
  }
  .page.dark .page-footer {
    border-color: rgba(255,255,255,0.14);
    color: var(--on-dark-mute);
  }
  .page.dark .page-footer .folio {
    color: var(--eyebrow-dk);
  }

  /* ---------- Logo mark ---------- */

  .mark { display: inline-block; flex-shrink: 0; }
  .mark svg { display: block; }
  .mark-row { display: flex; align-items: center; gap: 12px; }
  .mark-tag {
    font-family: var(--sans);
    font-size: 10pt;
    font-weight: 600;
    color: var(--on-dark);
    letter-spacing: 0.01em;
  }
  .cover-playbook-tag {
    font-size: 9pt;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }
  .cover-playbook-accent {
    color: #E85717;
    padding: 0 0.08em;
  }

  /* ---------- Type ---------- */

  .eyebrow {
    font-family: var(--sans);
    font-size: 9pt;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent);
  }
  .dark .eyebrow { color: var(--eyebrow-dk); }

  h1.cover-title {
    font-family: var(--serif);
    font-weight: 800;
    font-size: 49pt;
    line-height: 1.02;
    letter-spacing: -0.012em;
    color: var(--on-dark);
    margin: 16px 0 2mm 0;
  }
  h1.part-title {
    font-family: var(--serif);
    font-weight: 800;
    font-size: 40pt;
    line-height: 1.04;
    letter-spacing: -0.01em;
    color: var(--on-dark);
    margin: 14px 0 12mm 0;
  }
  h2.section-title {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 20pt;
    line-height: 1.1;
    letter-spacing: -0.005em;
    color: var(--ink);
    margin: 4mm 0 6mm 0;
  }
  h3.subhead {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 13pt;
    line-height: 1.2;
    color: var(--ink);
    margin: 8mm 0 3mm 0;
  }
  h2.risk-surface-title {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 13pt;
    line-height: 1.2;
    color: var(--ink);
    margin: 6.5mm 0 2.5mm 0;
  }
  .security-risk-page h2.risk-surface-title ~ h2.risk-surface-title {
    margin-top: 8mm;
  }
  h3.ic-orchestration-start { margin-top: 5mm; }
  h3.ic-orchestration-start ~ p {
    line-height: 1.5;
    margin-bottom: 3.5mm;
  }
  h3.ic-orchestration-start ~ h3.subhead { margin-top: 7mm; }
  .compounding-page p {
    font-size: 9.6pt;
    line-height: 1.42;
    margin-bottom: 2.4mm;
  }
  .compounding-page h3.subsection-title {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 17pt;
    line-height: 1.15;
    letter-spacing: -0.005em;
    color: var(--ink);
    margin: 4mm 0 4.3mm 0;
  }
  .compounding-page h3.subhead { margin: 4.5mm 0 2.2mm 0; }

  .subtitle {
    font-family: var(--sans);
    font-size: 11pt;
    line-height: 1.4;
    color: var(--on-dark);
    font-weight: 500;
    max-width: 320px;
  }
  .cover-kicker {
    font-family: var(--sans);
    font-size: 11pt;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--on-dark-mute);
    margin-bottom: 1mm;
  }
  .cover-title-2 {
    font-family: var(--serif);
    font-weight: 800;
    font-size: 30pt;
    line-height: 1.0;
    letter-spacing: -0.01em;
    color: var(--on-dark);
    margin: 1.5mm 0 0 0;
  }
  .cover-tagline {
    font-family: var(--serif);
    font-size: 13pt;
    line-height: 1.4;
    font-weight: 400;
    color: var(--on-dark);
    max-width: 132mm;
    margin: 8mm 0 0 0;
  }
  .cover-descriptor {
    font-family: var(--sans);
    font-size: 9pt;
    line-height: 1.45;
    color: var(--on-dark-mute);
    max-width: 120mm;
    margin: 4.5mm 0 0 0;
  }
  .lead {
    font-size: 11pt;
    line-height: 1.5;
    color: var(--ink);
    margin: 0 0 6mm 0;
    font-weight: 400;
  }
  .dark .lead { color: var(--on-dark); }

  p {
    font-size: 10pt;
    line-height: 1.48;
    color: var(--body);
    margin: 0 0 4mm 0;
  }
  .dark p { color: var(--on-dark-mute); }

  em.term { font-style: italic; color: var(--ink); }

  /* ---------- Dark cover (used here) ---------- */

  .cover {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .cover-mid { margin-top: 22mm; }
  .cover-foot {
    margin-top: auto;
    color: var(--on-dark-mute);
    font-size: 9pt;
    border-top: 1px solid rgba(255,255,255,0.12);
    padding-top: 6mm;
  }
  .cover-foot .label {
    font-size: 8pt;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--eyebrow-dk);
    font-weight: 700;
    margin-bottom: 3mm;
  }
  .cover-copyright {
    position: absolute;
    left: 27mm;
    bottom: 14mm;
    font-size: 7.5pt;
    letter-spacing: 0.04em;
    color: var(--on-dark-mute);
  }

  /* ---------- Part-opener page ---------- */

  .part-opener {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .part-opener .lead {
    color: var(--on-dark);
    max-width: 130mm;
  }
  .part-foot {
    margin-top: auto;
    padding-top: 12mm;
  }

  /* ---------- Heatmap (Part I study calibration) ---------- */

  .heatmap-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 2px;
    margin: 4mm 0;
    font-family: var(--sans);
    font-size: 9pt;
  }
  .heatmap-table col.col-label { width: 60mm; }
  .heatmap-table col.col-data  { width: auto; }

  .heatmap-table thead th {
    font-size: 7.5pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    padding: 2.5mm 1mm;
    text-align: center;
    vertical-align: bottom;
    line-height: 1.2;
    border-bottom: 1px solid var(--ink);
    height: 10mm;
    overflow: hidden;
    word-break: keep-all;
  }
  .heatmap-table thead th:first-child {
    text-align: left;
    padding-left: 0;
  }
  .heatmap-table tbody td {
    text-align: center;
    vertical-align: middle;
    padding: 0;
    height: 9mm;
    font-family: var(--serif);
    font-size: 11pt;
    font-weight: 800;
    line-height: 1;
  }
  .heatmap-table tbody td:first-child {
    text-align: left;
    font-family: var(--sans);
    font-size: 8.5pt;
    font-weight: 600;
    color: var(--ink);
    padding: 1mm 2mm 1mm 0;
    background: transparent;
    line-height: 1.25;
  }
  /* Bessemer's iron ramp rather than four opacities of the same navy, so the
     scale reads as a heatmap with real hue steps. Warm, to sit with the Part II
     cluster charts, which already use iron-600. All four clear AAA. */
  .heat-1 { background: #F7EAEA; color: var(--accent); }   /* iron-100 */
  .heat-2 { background: #D0ADAE; color: var(--accent); }   /* iron-300 */
  .heat-3 { background: #7C3D41; color: #ffffff; }         /* iron-600 */
  .heat-4 { background: #1F0D0F; color: #ffffff; }         /* iron-950 */
  .heat-empty {
    background: repeating-linear-gradient(45deg, #F5F7F9, #F5F7F9 3px, #EBEEF3 3px, #EBEEF3 6px);
    color: var(--soft);
    font-family: var(--sans);
    font-size: 9pt;
    font-weight: 500;
  }
  .heatmap-table .heat-median td {
    border-top: 1.5px solid var(--ink);
  }
  .heatmap-table .heat-median td:first-child {
    font-style: italic;
    color: var(--muted);
  }
  .heatmap-legend {
    display: flex;
    align-items: center;
    gap: 4mm;
    margin: 5mm 0 2mm 0;
    font-family: var(--sans);
    font-size: 8pt;
    color: var(--soft);
  }
  .heatmap-legend .swatch {
    display: inline-block;
    width: 8mm;
    height: 4mm;
    margin-right: 1.5mm;
    vertical-align: middle;
    border-radius: 1px;
  }
  .heatmap-legend .lbl {
    margin-right: 4mm;
    vertical-align: middle;
  }
  .scorecard-page .heatmap-table {
    margin: 3mm 0;
  }
  .scorecard-page .heatmap-table thead th {
    height: 8mm;
    padding: 2mm 1mm;
  }
  .scorecard-page .heatmap-table tbody td {
    height: 7mm;
    font-size: 10pt;
  }
  .scorecard-page .heatmap-table tbody td:first-child {
    font-size: 8pt;
    line-height: 1.18;
  }
  .scorecard-page .heatmap-legend {
    margin: 3mm 0 1mm 0;
    font-size: 7.5pt;
  }
  .scorecard-page .fig-cap {
    font-size: 8pt;
    line-height: 1.35;
    margin-top: 2mm;
  }
  .scorecard-page .closing {
    margin-top: 5mm;
    padding: 4mm 5mm;
  }
  .scorecard-page .closing h3 {
    font-size: 12.5pt;
    margin-bottom: 2.5mm;
  }
  .scorecard-page .closing p {
    font-size: 8.5pt;
    line-height: 1.45;
  }

  /* ---------- Agentic SDLC adoption scale (Part III summary) ---------- */

  .tier-scale {
    position: relative;
    margin: 8mm 0 3mm 0;
    padding-top: 1mm;
  }
  .tier-scale::before {
    content: "";
    position: absolute;
    top: 4mm;
    left: 12.5%;
    right: 12.5%;
    height: 1.5px;
    background: linear-gradient(to right,
      rgba(6, 22, 58, 0.3),
      rgba(6, 22, 58, 0.5),
      rgba(6, 22, 58, 0.78),
      rgba(6, 22, 58, 1.0));
    z-index: 0;
  }
  .tier-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    position: relative;
    z-index: 1;
  }
  .tier-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 4mm;
  }
  .tier-dot {
    width: 7mm;
    height: 7mm;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--serif);
    font-size: 11pt;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 4mm;
    flex-shrink: 0;
  }
  .tier-dot.t1 {
    background: rgba(6, 22, 58, 0.15);
    color: var(--accent);
    border: 1.5px solid rgba(6, 22, 58, 0.5);
  }
  .tier-dot.t2 {
    background: rgba(6, 22, 58, 0.50);
    color: #ffffff;
  }
  .tier-dot.t3 {
    background: rgba(6, 22, 58, 0.78);
    color: #ffffff;
  }
  .tier-dot.t4 {
    background: rgba(6, 22, 58, 1.0);
    color: #ffffff;
  }
  .tier-label {
    font-family: var(--serif);
    font-size: 10.5pt;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
    margin-bottom: 3mm;
    min-height: 12mm;
  }
  .tier-blurb {
    font-family: var(--sans);
    font-size: 8.5pt;
    color: var(--body);
    line-height: 1.5;
  }
  .spend-bands {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 7mm;
    gap: 3mm;
  }
  .spend-band {
    text-align: center;
    padding: 3mm 0 1mm 0;
    font-family: var(--sans);
    font-size: 9pt;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
    border-top: 2px solid;
  }
  .spend-band.low {
    border-color: rgba(6, 22, 58, 0.4);
  }
  .spend-band.high {
    border-color: var(--accent);
    font-weight: 800;
  }

  /* ---------- Scorecard table (Part I summary) ---------- */

  .scorecard-table {
    width: 100%;
    border-collapse: collapse;
    margin: 4mm 0;
    font-family: var(--sans);
    font-size: 8.5pt;
  }
  .scorecard-table th, .scorecard-table td {
    padding: 3.5mm 3mm;
    border-bottom: 1px solid var(--rule);
    vertical-align: top;
    line-height: 1.4;
  }
  .scorecard-table thead th {
    font-size: 7.5pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--ink);
    text-align: center;
    background: #F5F7F9;
  }
  .scorecard-table thead th:first-child,
  .scorecard-table thead th:last-child {
    text-align: left;
  }
  .scorecard-table tbody td {
    text-align: center;
    font-family: var(--serif);
    font-size: 9pt;
    color: var(--body);
  }
  .scorecard-table tbody td:first-child {
    font-family: var(--sans);
    font-weight: 600;
    color: var(--ink);
    width: 32mm;
    text-align: left;
  }
  .scorecard-table tbody td:first-child .sc-num {
    font-family: var(--serif);
    font-size: 11pt;
    font-weight: 800;
    color: var(--accent);
    margin-right: 3px;
  }
  .scorecard-table tbody td:last-child {
    color: var(--soft);
    font-size: 8.5pt;
    line-height: 1.45;
    font-style: italic;
    font-family: var(--sans);
    text-align: left;
    width: 52mm;
  }
  .scorecard-table tbody td:last-child strong {
    color: var(--accent);
    font-style: normal;
    font-weight: 700;
  }

  /* ---------- Part-opener epigraph ---------- */

  .epigraph {
    margin: 0 0 16mm 0;
    max-width: 130mm;
    font-family: var(--serif);
    font-size: 11.5pt;
    line-height: 1.45;
    color: var(--eyebrow-dk);
  }
  .epigraph .attribution {
    display: block;
    margin-top: 5mm;
    font-family: var(--sans);
    font-style: normal;
    font-size: 8pt;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--on-dark-mute);
    font-weight: 700;
  }

  /* ---------- Running head ---------- */

  .running-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 4mm;
    margin-bottom: 8mm;
    border-bottom: 1px solid var(--rule);
    font-family: var(--sans);
    font-size: 8.5pt;
    color: var(--soft);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
  }
  .running-head .label {
    color: var(--accent);
    font-weight: 700;
  }

  /* ---------- TOC ---------- */

  .toc { margin-top: 8mm; }
  .toc-row {
    display: flex;
    align-items: baseline;
    border-bottom: 1px solid var(--rule);
    padding: 5mm 0;
  }
  .toc-num {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 14pt;
    color: var(--accent);
    width: 22mm;
    flex-shrink: 0;
  }
  .toc-body { flex: 1; }
  .toc-title {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 16pt;
    color: var(--ink);
    line-height: 1.15;
    margin-bottom: 2mm;
  }
  .toc-desc {
    font-family: var(--sans);
    font-size: 10pt;
    color: var(--soft);
    line-height: 1.5;
  }
  .toc-page {
    font-family: var(--sans);
    font-size: 11pt;
    font-weight: 600;
    color: var(--muted);
    margin-left: 6mm;
    width: 12mm;
    text-align: right;
    flex-shrink: 0;
  }

  /* ---------- Pull-quote (core question) ---------- */

  .core-q {
    margin: 4mm 0 6mm 0;
    padding: 1mm 0 1mm 7mm;
    border-left: 3px solid var(--accent);
    font-family: var(--serif);
    font-size: 11pt;
    line-height: 1.4;
    color: var(--ink);
    font-weight: 500;
  }
  .core-q .label {
    display: block;
    font-family: var(--sans);
    font-style: normal;
    font-size: 8pt;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 2mm;
  }

  /* ---------- Figures ---------- */

  .figure { margin: 4mm 0 6mm 0; page-break-inside: avoid; }
  .fig-cap {
    font-family: var(--sans);
    font-size: 8.5pt;
    color: var(--muted);
    margin-top: 3mm;
    line-height: 1.5;
  }
  .fig-cap .num {
    color: var(--accent);
    font-weight: 700;
    margin-right: 4px;
    letter-spacing: 0.05em;
  }
  .output-gap-figure {
    margin-top: 2mm !important;
    margin-bottom: 0;
  }
  .output-gap-figure svg {
    max-height: 50mm;
  }
  .output-gap-figure .fig-cap {
    font-size: 7.7pt;
    line-height: 1.38;
    margin-top: 1.5mm;
  }
  .measurement-pricing {
    background: #F5F7F9;
    border: 1px solid var(--rule);
    border-left: 3px solid var(--navy);
    border-radius: 4px;
    padding: 3mm 4.5mm 2.8mm;
    margin: 3mm 0 3.5mm;
  }
  .measurement-pricing .pricing-kicker {
    font-family: var(--serif);
    font-size: 8.5pt;
    letter-spacing: 0;
    color: #8497B4;
    font-weight: 400;
    margin-bottom: 1.7mm;
  }
  .measurement-pricing p {
    font-size: 8.7pt;
    line-height: 1.4;
    margin-bottom: 1.8mm;
  }
  .measurement-pricing p:last-child {
    margin-bottom: 0;
  }
  .token-figure,
  .org-tree-figure {
    border: 1px solid var(--rule);
    border-top: 3px solid var(--navy);
    background: linear-gradient(180deg, #fff 0%, #F5F7F9 100%);
    padding: 4mm 4.5mm 3.5mm;
  }
  .token-figure svg,
  .org-tree-figure svg {
    display: block;
    width: 100%;
    height: auto;
  }
  .token-figure svg { max-height: 58mm; }
  .token-cost-caveat {
    display: block;
    margin-top: 1.5mm;
    padding-top: 1.5mm;
    border-top: 1px solid var(--rule-soft);
    font-size: 7.7pt;
    line-height: 1.38;
    color: var(--muted);
  }
  .token-cost-caveat strong {
    color: var(--ink);
  }
  h2.section-title.outlook-title {
    font-size: 18.5pt;
    letter-spacing: -0.02em;
  }
  .outlook-page p {
    line-height: 1.44;
    margin-bottom: 3.4mm;
  }
  .outlook-page h3.subhead {
    margin: 6mm 0 2.5mm 0;
  }
  .outlook-next-page p {
    line-height: 1.38;
    margin-bottom: 1.8mm;
  }
  .outlook-next-page h3.subhead {
    margin: 4.2mm 0 2mm 0;
  }
  .outlook-next-page h3.subhead ~ h3.subhead {
    margin-top: 6.5mm;
  }
  .org-tree-figure svg { max-height: 67mm; }
  .ferrari-figure {
    margin-top: 3mm;
    margin-bottom: 5mm;
    background: transparent;
  }
  .ferrari-figure svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 61mm;
    border-radius: 3mm;
    box-shadow: none;
  }
  .ferrari-figure .fig-cap {
    margin-top: 2.5mm;
    color: var(--ink);
    font-family: var(--serif);
    font-size: 9.2pt;
    font-weight: 650;
    line-height: 1.4;
  }
  /* Overview flow */
  .flow {
    display: flex;
    align-items: stretch;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
  }
  .flow .step {
    flex: 1;
    padding: 5mm 4mm;
    border-right: 1px solid var(--rule);
    display: flex;
    flex-direction: column;
  }
  .flow .step:last-child { border-right: 0; }
  .flow .step-mark {
    width: 9mm;
    height: 2px;
    background: var(--accent);
    margin-bottom: 5mm;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .flow .step-name {
    font-family: var(--serif);
    font-size: 15pt;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.15;
    margin-bottom: 4mm;
    min-height: 15mm;
  }
  .flow .step-q {
    font-family: var(--sans);
    font-size: 8pt;
    color: var(--muted);
    line-height: 1.45;
    font-style: italic;
  }
  .flow .step-q .qlabel {
    display: block;
    font-style: normal;
    font-size: 7pt;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent);
    font-weight: 700;
    margin-bottom: 1.5mm;
    font-family: var(--sans);
  }
  /* Maturity scale – taller, gentler rise so content always fits */
  .maturity-label {
    font-family: var(--serif);
    font-size: 9.5pt;
    font-weight: 400;
    color: var(--muted);
    letter-spacing: 0;
    margin-bottom: 3mm;
  }
  .stair {
    display: flex;
    align-items: stretch;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
    height: 92mm;
  }
  .stair.stair-sm { height: 56mm; }
  .coding-tools-scale { height: 66mm !important; }
  .coding-tools-scale .ph {
    padding: 4mm 3.4mm 4.5mm;
  }
  .coding-tools-scale .ph-num { margin-bottom: 1.6mm; }
  .coding-tool-icon {
    display: block;
    flex: none;
    width: 100%;
    height: 15mm;
    margin: 3mm 0 4mm;
  }
  .coding-tool-mode {
    font-family: var(--sans);
    font-size: 6.7pt;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1.9mm;
  }
  .coding-tools-scale .ph-title { font-size: 9.8pt; }
  .coding-tools-scale .ph-desc {
    font-size: 7.5pt;
    line-height: 1.35;
  }

  /* Security surface diagram (Step 04) – 4 risk vectors capped by the compliance gate */
  .sec-surface { border: 1px solid var(--ink); }
  .sec-gate {
    background: var(--dark);
    color: var(--on-dark-mute);
    padding: 3.5mm 5mm;
    font-family: var(--sans);
    font-size: 8pt;
    line-height: 1.4;
    display: flex;
    align-items: baseline;
    gap: 4mm;
  }
  .sec-gate-label {
    flex-shrink: 0;
    font-family: var(--sans);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 7.5pt;
    color: var(--eyebrow-dk);
  }
  .sec-vectors { display: flex; }
  .sec-vector {
    flex: 1;
    padding: 3.5mm 3.5mm 4mm 3.5mm;
    border-right: 1px solid var(--rule);
  }
  .sec-vector:last-child { border-right: 0; }
  .sec-vector-num {
    font-family: var(--serif);
    font-size: 18pt;
    font-weight: 800;
    color: var(--accent);
    line-height: 0.9;
    letter-spacing: -0.02em;
  }
  .security-surface .sec-vector-num {
    font-family: var(--sans);
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 2.5mm;
  }
  .security-surface .sec-vector-name { margin-top: 0; }
  .sec-vector-name {
    font-family: var(--serif);
    font-size: 10pt;
    font-weight: 700;
    color: var(--ink);
    margin: 2.2mm 0 1.8mm 0;
    line-height: 1.15;
  }
  .sec-vector p {
    font-family: var(--sans);
    font-size: 7.5pt;
    color: var(--soft);
    line-height: 1.35;
    margin: 0 0 3mm 0;
    min-height: 12mm;
  }
  .security-risk-page h3.subhead {
    margin-top: 6.5mm;
    margin-bottom: 2.5mm;
  }
  .security-risk-page p { margin-bottom: 3.2mm; }
  .security-compliance-tail {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .security-compliance-tail p {
    line-height: 1.45;
    margin-bottom: 2mm;
  }
  .security-risk-page .field-quote { margin-bottom: 2mm; }

  /* Model-provider risk vector */
  #risk-surface-4 {
    margin-top: 8mm;
    margin-bottom: 4mm;
  }
  .surface-4-lead {
    margin-bottom: 4.5mm;
  }
  .security-risk-page h3.surface-4-subhead {
    margin-top: 4.5mm;
    margin-bottom: 1.8mm;
  }
  .security-risk-page p.surface-4-copy {
    font-size: 9.2pt;
    line-height: 1.46;
    margin-bottom: 2.5mm;
  }
  .provider-check {
    margin-top: 6mm;
    padding: 5.5mm 5mm 6mm;
    border: 1px solid var(--rule);
    border-top: 2px solid var(--accent);
    background: #F5F7F9;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .provider-check-title {
    font-family: var(--sans);
    font-size: 8pt;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent);
    font-weight: 800;
    margin-bottom: 4.5mm;
  }
  .provider-check-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(5, auto);
    grid-auto-flow: column;
    column-gap: 7mm;
    row-gap: 4.5mm;
  }
  .provider-check-item {
    display: grid;
    grid-template-columns: 6mm 1fr;
    gap: 2mm;
    align-items: start;
    font-family: var(--sans);
    font-size: 8pt;
    line-height: 1.4;
    color: var(--body);
  }
  .provider-check-num {
    color: var(--accent);
    font-weight: 800;
    letter-spacing: 0.06em;
  }
  .provider-check-item strong {
    color: var(--ink);
  }
  .security-commandments-page .provider-check {
    margin-top: 0;
    padding: 0;
    border-color: #CDD4E1;
    border-top: 0;
    border-radius: 2.8mm 2.8mm 1mm 1mm;
    overflow: hidden;
    background: var(--paper);
    position: relative;
  }
  .security-commandments-page .provider-check::before {
    content: "";
    display: block;
    height: 1.1mm;
    background: linear-gradient(90deg, var(--red) 0 15%, var(--accent) 15% 100%);
  }
  .security-commandments-page {
    --commandment-font-size: 8.8pt;
    --commandment-line-height: 1.34;
    --commandment-item-gap: 3.8mm;
  }
  .security-commandments-page .provider-check-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(5, auto);
    grid-auto-flow: column;
    column-gap: 0;
    row-gap: 0;
  }
  .security-commandments-page .provider-check-item {
    grid-template-columns: 9mm 1fr;
    gap: 1.8mm;
    margin: 0;
    padding: var(--commandment-item-gap) 4.2mm;
    break-inside: avoid;
    page-break-inside: avoid;
    font-size: var(--commandment-font-size);
    line-height: var(--commandment-line-height);
    border-bottom: 1px solid var(--rule);
  }
  .security-commandments-page .provider-check-item:nth-child(-n+5) {
    border-right: 1px solid var(--rule);
  }
  .security-commandments-page .provider-check-item:nth-child(5),
  .security-commandments-page .provider-check-item:nth-child(10) {
    border-bottom: 0;
  }
  .security-commandments-page .provider-check-item strong {
    display: block;
    margin-bottom: 0.8mm;
    font-size: calc(var(--commandment-font-size) + 1.5pt);
    line-height: 1.16;
    color: var(--accent);
  }
  .security-commandments-page .provider-check-num {
    display: block;
    width: auto;
    height: auto;
    padding-top: 0.2mm;
    border: 0;
    background: transparent;
    color: #929CAE;
    font-family: var(--serif);
    font-size: calc(var(--commandment-font-size) + 2.2pt);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.05;
    text-align: center;
  }
  .security-commandments-page .page-pad {
    padding: 18mm 24mm 36mm;
  }
  .security-commandments-page .running-head {
    padding-bottom: 3mm;
    margin-bottom: 5mm;
  }
  .security-commandments-page h2.risk-surface-title {
    margin-top: 24mm;
    margin-bottom: 8mm;
    font-size: 16pt;
    line-height: 1.12;
    text-align: center;
  }
  .security-commandments-page .commandments-intro {
    margin: 0 0 7mm;
    max-width: 135mm;
    font-family: var(--sans);
    font-size: 9pt;
    line-height: 1.35;
    color: var(--muted);
  }
  .stair .ph {
    flex: 1;
    border-right: 1px solid var(--rule);
    padding: 4mm 4mm 5mm 4mm;
    display: flex;
    flex-direction: column;
    background: var(--paper);
    overflow: hidden;
  }
  .stair .ph:last-child { border-right: 0; }
  .stair .ph.lvl-4 { background: #F5F7F9; }

  .ph-num {
    font-family: var(--sans);
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--accent);
    margin-bottom: 2.5mm;
  }
  .ph-title {
    font-family: var(--serif);
    font-size: 10.5pt;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.18;
    margin: 0 0 2mm 0;
  }
  .ph-desc {
    font-family: var(--sans);
    font-size: 8pt;
    color: var(--soft);
    line-height: 1.4;
    margin: 0 0 2.5mm 0;
  }
  .page-pad a {
    color: var(--navy, #06163A);
    text-decoration: none;
    border-bottom: 1px solid #CDD4E1;
    font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.92em;
  }
  .ph-dots {
    margin-top: auto;
    padding-top: 3mm;
    display: flex;
    gap: 3.5px;
    align-items: center;
  }
  .dot {
    width: 6.5px;
    height: 6.5px;
    border-radius: 50%;
    background: var(--rule);
  }
  .dot.on { background: var(--accent); }
  .dot-tag {
    margin-left: 5px;
    font-family: var(--sans);
    font-size: 7pt;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.04em;
  }

  /* ---------- Field examples panel ---------- */

  .examples {
    margin: 5mm 0 0 0;
    padding: 4mm 0 0 0;
    border-top: 1px solid var(--rule);
  }
  .ex-label {
    font-family: var(--serif);
    font-size: 9.5pt;
    font-weight: 400;
    color: var(--accent);
    letter-spacing: 0;
    margin-bottom: 3mm;
  }
  .ex-grid {
    display: flex;
    flex-direction: column;
    gap: 2mm;
  }
  .ex-row {
    display: flex;
    gap: 5mm;
    align-items: baseline;
  }
  .ex-co {
    font-family: var(--sans);
    font-size: 8.5pt;
    font-weight: 700;
    color: var(--accent);
    width: 30mm;
    flex-shrink: 0;
    letter-spacing: 0.005em;
    text-transform: uppercase;
  }
  .ex-text {
    font-family: var(--sans);
    font-size: 8.5pt;
    color: var(--body);
    line-height: 1.5;
    flex: 1;
  }

  /* ---------- Closing block ---------- */

  .closing {
    margin-top: 4mm;
    padding: 5mm 6mm;
    background: var(--dark);
    color: var(--on-dark);
  }
  .closing .label {
    font-size: 8pt;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--eyebrow-dk);
    font-weight: 700;
    margin-bottom: 3mm;
  }
  .closing h3 {
    font-family: var(--serif);
    font-size: 14pt;
    font-weight: 700;
    color: var(--on-dark);
    margin: 0 0 4mm 0;
    line-height: 1.2;
  }
  .closing p {
    font-family: var(--sans);
    font-size: 9pt;
    line-height: 1.55;
    color: var(--on-dark-mute);
    margin: 0 0 3mm 0;
  }
  .closing p:last-child { margin: 0; }
  .closing strong { color: var(--on-dark); font-weight: 600; }
  .throughput-roadmap {
    margin-top: 1.5mm;
    padding: 3mm 5mm;
  }
  .throughput-roadmap .label {
    margin-bottom: 1.5mm;
  }
  .throughput-roadmap-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4mm;
  }
  .throughput-roadmap p {
    font-size: 8pt;
    line-height: 1.35;
    margin: 0;
  }
  .throughput-page .page-pad {
    --footer-reserve-mm: 29;
  }

  /* ---------- The four chiefs ---------- */

  .chief-figure { margin: 5mm 0 7mm 0; }
  .chief-surface .sec-vector {
    padding: 4mm 3.5mm 4.5mm;
  }
  .chief-surface .sec-vector-num {
    color: var(--soft);
  }
  .chief-surface .sec-vector-name {
    margin-bottom: 2mm;
  }
  .chief-surface .sec-vector p {
    min-height: 0;
    margin: 0;
    font-size: 7.6pt;
  }

  /* ---------- cohort self-mapping (coda) ---------- */
  .cohort {
    padding: 0.5mm 0 0.5mm 7mm;
    border-left: 3px solid var(--accent);
    margin: 0 0 4.5mm 0;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .cohort-head { margin-bottom: 1.5mm; }
  .cohort-name {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 12pt;
    color: var(--ink);
  }
  .cohort-status {
    font-family: var(--sans);
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
    margin-left: 3mm;
  }
  .cohort p { margin: 0; }

  /* ---------- turn graph (coda) ---------- */
  .turn-figure {
    margin: 6mm 0 7mm 0;
    padding: 5mm 5.5mm 4mm;
    border: 1px solid var(--rule);
    border-top: 3px solid var(--accent);
    background: linear-gradient(180deg, #fff 0%, #F5F7F9 100%);
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .turn-figure-kicker {
    font-family: var(--serif);
    font-size: 9pt;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--accent);
    margin-bottom: 1.5mm;
  }
  .turn-figure-title {
    font-family: var(--serif);
    font-size: 15pt;
    line-height: 1.18;
    color: var(--ink);
    margin: 0 0 1mm 0;
  }
  .turn-figure-deck {
    font-family: var(--sans);
    font-size: 8.5pt;
    line-height: 1.45;
    color: var(--soft);
    margin: 0 0 2.5mm 0;
  }
  .turn-chart {
    display: block;
    width: 100%;
    height: auto;
  }
  .turn-figure-note {
    margin-top: 1.5mm;
    padding-top: 2.5mm;
    border-top: 1px solid var(--rule);
    font-family: var(--sans);
    font-size: 8.5pt;
    line-height: 1.45;
    color: var(--ink);
  }
  .turn-figure-note strong { color: var(--navy); }
  .coda-page .coda-outlook-copy {
    font-size: 9.4pt;
    line-height: 1.48;
    margin-bottom: 3.2mm;
  }
  .coda-page .coda-outlook-copy:last-child {
    margin-bottom: 0;
  }

  /* ---------- Bottom lines ---------- */

  .bl-block { break-inside: avoid; page-break-inside: avoid; }
  .bottom-lines {
    list-style: none;
    counter-reset: bl;
    margin: 1mm 0 0 0;
    padding: 0;
  }
  .bottom-lines li {
    counter-increment: bl;
    position: relative;
    padding: 0 0 1.1mm 12mm;
    margin-bottom: 1.1mm;
    border-bottom: 1px solid var(--rule);
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .bottom-lines li:last-child { border-bottom: 0; }
  .bottom-lines li::before {
    content: counter(bl, decimal);
    position: absolute;
    left: 0;
    top: 0.4mm;
    font-family: var(--sans);
    font-weight: 700;
    font-size: 11pt;
    letter-spacing: 0.02em;
    color: var(--accent);
  }
  .bottom-lines .bl-head {
    display: block;
    font-family: var(--serif);
    font-weight: 700;
    font-size: 11pt;
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 0.6mm;
  }
  .bottom-lines .bl-gloss {
    display: block;
    font-size: 9pt;
    line-height: 1.45;
    color: var(--body);
  }
  .takeaways-page .page-pad { padding-top: 19mm; }
  .takeaways-page .section-title { margin-bottom: 8mm !important; }
  .takeaways-page .bottom-lines li {
    padding-bottom: 2mm;
    margin-bottom: 2mm;
  }
  .takeaways-page .bottom-lines .bl-head {
    font-size: 10.5pt;
    margin-bottom: 0.35mm;
  }
  .takeaways-page .bottom-lines .bl-gloss {
    font-size: 8.5pt;
    line-height: 1.32;
  }
  .subsection-keep { break-inside: avoid; page-break-inside: avoid; }

  /* ---------- Part stub ---------- */

  .stub-note {
    margin-top: 8mm;
    padding: 5mm 6mm;
    background: rgba(255,255,255,0.06);
    border-left: 2px solid var(--eyebrow-dk);
    font-family: var(--sans);
    font-size: 9pt;
    color: var(--on-dark-mute);
    line-height: 1.55;
  }
  .stub-note .label {
    font-size: 8pt;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--eyebrow-dk);
    font-weight: 700;
    margin-bottom: 2.5mm;
    display: block;
  }

  /* ---------- Part II – Signal cards ---------- */

  .signal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5mm;
    margin: 4mm 0 6mm 0;
  }
  .signal-card {
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 5mm 6mm;
    background: #F5F7F9;
  }
  .signal-card-header {
    display: flex;
    align-items: baseline;
    gap: 4mm;
    margin-bottom: 4mm;
    padding-bottom: 3mm;
    border-bottom: 1px solid var(--rule);
  }
  .signal-cluster-num {
    font-family: var(--serif);
    font-size: 20pt;
    font-weight: 800;
    color: var(--accent);
    line-height: 0.9;
  }
  .signal-cluster-name {
    font-family: var(--serif);
    font-size: 13pt;
    font-weight: 700;
    color: var(--ink);
  }
  .signal-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 3mm 0;
    font-family: var(--sans);
    font-size: 8.5pt;
  }
  .signal-table tr { border-bottom: 1px solid var(--rule); }
  .signal-table tr:last-child { border-bottom: 0; }
  .signal-table td { padding: 1.5mm 0; color: var(--body); }
  .signal-table td:first-child { color: var(--soft); width: 60%; }
  .signal-table td:last-child {
    color: var(--accent);
    font-weight: 600;
    text-align: right;
  }
  .signal-metrics {
    font-family: var(--sans);
    font-size: 9pt;
    line-height: 1.5;
    color: var(--body);
    margin: 0 0 3mm 0;
  }
  .signal-tells {
    font-family: var(--sans);
    font-size: 9pt;
    color: var(--soft);
    line-height: 1.5;
    margin: 3mm 0 0 0;
    font-style: italic;
  }

  /* ---------- Part II – Distinguish cards (match signal-card style) ---------- */

  .distinguish-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5mm;
    margin: 5mm 0 0 0;
  }
  .distinguish-card {
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 5mm 6mm;
    background: #F5F7F9;
  }
  .distinguish-card-header {
    display: flex;
    align-items: baseline;
    gap: 4mm;
    margin-bottom: 4mm;
    padding-bottom: 3mm;
    border-bottom: 1px solid var(--rule);
  }
  .distinguish-cluster-num {
    font-family: var(--serif);
    font-size: 20pt;
    font-weight: 800;
    color: var(--accent);
    line-height: 0.9;
  }
  .distinguish-cluster-name {
    font-family: var(--serif);
    font-size: 13pt;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
  }
  .distinguish-card p {
    font-family: var(--sans);
    font-size: 9pt;
    line-height: 1.5;
    margin: 0;
    color: var(--body);
  }
  .distinguish-card strong { color: var(--accent); }
  .map-population-page .lead {
    font-size: 9.8pt;
    line-height: 1.45;
    margin-bottom: 4mm;
  }
  .cluster-surface {
    border-color: var(--rule);
    overflow: hidden;
  }
  .cluster-surface .sec-vector {
    min-height: 48mm;
    padding: 4mm 3.5mm 4.5mm;
    display: flex;
    flex-direction: column;
    color: var(--ink);
  }
  .cluster-surface .sec-vector-num {
    font-size: 16pt;
    color: inherit;
  }
  .cluster-surface .sec-vector-name {
    margin: 2.2mm 0 2mm;
    font-size: 10.5pt;
    white-space: nowrap;
    color: inherit;
  }
  .cluster-surface .sec-vector p {
    min-height: 0;
    margin: 0;
    font-size: 8pt;
    line-height: 1.38;
    color: inherit;
    opacity: 0.88;
  }
  .cluster-surface .cluster-heat-4 {
    background: #1F0D0F;
    color: #ffffff;
  }
  .cluster-surface .cluster-heat-4 .sec-vector-num {
    color: #D0ADAE;
  }
  .cluster-surface .cluster-heat-3 {
    background: #7C3D41;
    color: #ffffff;
  }
  .cluster-surface .cluster-heat-3 .sec-vector-num {
    color: #F7EAEA;
  }
  .cluster-surface .cluster-heat-2 {
    background: #D0ADAE;
  }
  .cluster-surface .cluster-heat-1 {
    background: #F7EAEA;
  }
  .map-population-page .population-drivers {
    font-size: 10pt;
    line-height: 1.48;
    margin-top: 4mm !important;
  }

  /* ---------- Part II – Quadrant table (2×2) ---------- */

  .quadrant-table {
    width: 100%;
    border-collapse: collapse;
    margin: 4mm 0;
    font-family: var(--sans);
  }
  .quadrant-table th, .quadrant-table td {
    border: 1px solid var(--rule);
    padding: 7mm 5mm;
    vertical-align: middle;
  }
  .quadrant-table thead th {
    font-size: 8pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    background: #F5F7F9;
    text-align: center;
  }
  .quadrant-table thead th:first-child {
    background: transparent;
    border: 0;
    width: 32mm;
  }
  .quadrant-table tbody th {
    font-size: 8pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    background: #F5F7F9;
    text-align: left;
    width: 32mm;
    line-height: 1.3;
  }
  .quadrant-table tbody td {
    text-align: center;
    font-family: var(--serif);
    font-size: 11pt;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
  }

  /* ---------- Part II – Radar diagram ---------- */

  .radar-figure {
    display: block;
    max-width: 100mm;
    margin: 4mm auto;
  }
  .radar-figure svg {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Profile rows – each with its own mini-radar and story */
  .profiles {
    margin: 5mm 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8mm;
    align-items: start;
  }
  .profile {
    display: flex;
    flex-direction: column;
  }
  .profile svg {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: 1mm;
  }
  .profile-name {
    font-family: var(--sans);
    font-size: 9.5pt;
    font-weight: 700;
    color: var(--ink);
    border-top: 2px solid var(--c);
    padding-top: 2mm;
    margin: 0 0 1.5mm 0;
  }
  .profile-content p {
    font-family: var(--sans);
    font-size: 8pt;
    line-height: 1.45;
    color: var(--body);
    margin: 0;
  }
  .profile-content p em {
    font-style: italic;
    color: var(--ink);
  }

  /* ---------- Part II – Triage table ---------- */

  .triage-table {
    width: 100%;
    border-collapse: collapse;
    margin: 4mm 0;
    font-family: var(--sans);
    font-size: 10pt;
  }
  .triage-table th, .triage-table td {
    text-align: left;
    padding: 3.5mm 5mm;
    border-bottom: 1px solid var(--rule);
    vertical-align: middle;
  }
  .triage-table thead th {
    font-size: 8pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--ink);
  }
  .triage-table th:first-child, .triage-table td:first-child {
    width: 50mm;
    font-weight: 700;
    color: var(--ink);
  }
  .triage-table tr.emphasized { background: #F5F7F9; }
  .triage-table tr.emphasized td:first-child { color: var(--accent); }

  /* ---------- Part II – Diagnostic table (Architecture vs Identity) ---------- */

  .diagnostic-table {
    width: 100%;
    border-collapse: collapse;
    margin: 4mm 0;
    font-family: var(--sans);
    font-size: 8.5pt;
  }
  .diagnostic-table th, .diagnostic-table td {
    padding: 3mm 5mm;
    border-bottom: 1px solid var(--rule);
    vertical-align: top;
    text-align: left;
  }
  .diagnostic-table thead th {
    font-size: 8pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--ink);
    line-height: 1.3;
  }
  .diagnostic-table thead th:first-child { color: var(--soft); }
  .diagnostic-table td:first-child {
    color: var(--soft);
    font-weight: 500;
    width: 55mm;
  }

  /* ---------- Part II – Architecture modernization plays ---------- */

  .architecture-play-list {
    margin: 4mm 0 0;
    border-top: 2px solid var(--ink);
  }
  .architecture-play {
    display: grid;
    grid-template-columns: 52mm minmax(0, 1fr);
    gap: 6mm;
    padding: 3mm 0;
    border-bottom: 1px solid var(--rule);
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .architecture-play-name {
    font-family: var(--serif);
    font-size: 10.5pt;
    font-weight: 700;
    line-height: 1.2;
    color: var(--ink);
  }
  .architecture-play p {
    margin: 0;
    font-size: 8.5pt;
    line-height: 1.45;
  }

  /* ---------- Part II – Story callout (vignette) ---------- */

  .story {
    margin: 4mm 0;
    padding: 1mm 0;
    font-family: var(--sans);
    font-size: 10pt;
    font-style: normal;
    line-height: 1.6;
    color: var(--body);
  }
  .story:not(:last-child) { margin-bottom: 3mm; }
  .story em { font-style: italic; color: var(--ink); }
  .story strong { color: var(--ink); font-style: normal; font-weight: 600; }

  /* ---------- Part II – Field quote callout ---------- */

  .field-quote {
    margin: 4.5mm 0;
    padding: 0.5mm 0 0.5mm 5mm;
    border-left: 2px solid var(--accent);
    font-family: var(--serif);
    font-size: 10pt;
    line-height: 1.45;
    color: var(--ink);
  }
  .field-quote .attribution {
    display: block;
    font-style: normal;
    font-size: 8pt;
    font-family: var(--sans);
    color: var(--muted);
    letter-spacing: 0.04em;
    font-weight: 500;
    margin-top: 2mm;
    text-transform: none;
  }

  /* ---------- Part II – Matrix table ---------- */

  .matrix-table {
    width: 100%;
    border-collapse: collapse;
    margin: 4mm 0;
    font-family: var(--sans);
    font-size: 9pt;
  }
  .matrix-table th, .matrix-table td {
    padding: 4mm 4mm;
    border-bottom: 1px solid var(--rule);
    text-align: center;
    vertical-align: middle;
  }
  .matrix-table thead th {
    font-size: 8pt;
    color: var(--accent);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--ink);
  }
  .matrix-table th:first-child, .matrix-table td:first-child {
    text-align: left;
    color: var(--ink);
    font-weight: 600;
    width: 60mm;
  }
  .cell-primary {
    color: white !important;
    background: var(--accent);
    font-weight: 700;
    font-size: 8.5pt;
    letter-spacing: 0.06em;
    text-transform: lowercase;
  }
  .cell-secondary {
    color: var(--accent) !important;
    background: #EBEEF3;
    font-weight: 500;
    font-size: 8.5pt;
    letter-spacing: 0.06em;
    text-transform: lowercase;
  }
  .cell-na {
    color: var(--rule) !important;
    background: transparent;
    font-size: 11pt;
  }

  @media print {
    body { background: white; }
    html, body {
      width: 210mm;
      min-height: 297mm;
    }
    .page {
      box-shadow: none;
      margin: 0;
      width: 210mm;
      min-height: 297mm;
      overflow: visible;
      break-before: auto;
      break-after: page;
      page-break-before: auto;
      page-break-after: always;
    }
    .page.dark {
      height: 297mm;
      overflow: hidden;
      break-before: page;
      break-after: page;
      page-break-before: always;
      page-break-after: always;
    }
    .page-pad {
      min-height: 297mm;
    }
    .page.dark .page-pad {
      height: 297mm;
    }
    .page:first-child {
      break-before: avoid;
      page-break-before: avoid;
    }
    .running-head { break-after: avoid; page-break-after: avoid; }
    .figure, .stair, .ph, .field-quote, blockquote, table,
    .signal-grid, .distinguish-grid, .signal-card, .distinguish-card,
    .closing, .toc, .toc-row, .flow, .step, .profile, .tier-scale,
    .callout-bar, .heatmap-legend { break-inside: avoid; page-break-inside: avoid; }
    h1, h2, h3, .section-title, .subhead, .maturity-label, .eyebrow {
      break-after: avoid; page-break-after: avoid;
    }
    p, li { orphans: 3; widows: 3; }
    .page:last-child {
      break-after: auto;
      page-break-after: avoid;
    }
  }
  .sources-page h3.subhead {
    font-size: 10.5pt;
    margin: 5.5mm 0 2.2mm 0;
    padding-bottom: 1.2mm;
    border-bottom: 0.4pt solid var(--rule);
  }
  .sources-page h3.subhead:first-of-type { margin-top: 2mm; }
  .sources-page .src {
    font-size: 8.2pt;
    line-height: 1.42;
    color: var(--body);
    margin: 0 0 2.4mm 0;
  }
  .sources-page .src .claim {
    font-family: var(--serif);
    font-weight: 700;
    color: var(--ink);
  }
  .sources-page .src .u {
    color: var(--soft);
    font-size: 7.6pt;
    word-break: break-word;
  }
  .sources-page .src-note {
    font-size: 8.4pt;
    line-height: 1.5;
    color: var(--muted);
    margin: 0 0 4mm 0;
  }
