/* ==========================================================================
   SELF-HOSTED FONTS (8 Oct 2026): Space Grotesk and IBM Plex Mono, served from
   assets/fonts/ so no page loads anything from Google. Same files and settings
   Google Fonts served; licenses (SIL Open Font License 1.1) beside them.
   ========================================================================== */
/* IBM Plex Mono 400, cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* IBM Plex Mono 400, cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* IBM Plex Mono 400, vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* IBM Plex Mono 400, latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono 400, latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-400-latin.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;
}
/* IBM Plex Mono 500, cyrillic-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-500-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* IBM Plex Mono 500, cyrillic */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-500-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* IBM Plex Mono 500, vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-500-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* IBM Plex Mono 500, latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-500-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono 500, latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-mono-500-latin.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 400, vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/space-grotesk-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Space Grotesk 400, latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/space-grotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 400, latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/space-grotesk-latin.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 500, vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/space-grotesk-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Space Grotesk 500, latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/space-grotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 500, latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/space-grotesk-latin.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 600, vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/space-grotesk-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Space Grotesk 600, latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/space-grotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 600, latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/space-grotesk-latin.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 700, vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/space-grotesk-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* Space Grotesk 700, latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/space-grotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Space Grotesk 700, latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/space-grotesk-latin.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;
}

/* ==========================================================================
   ProofSmith.ai theme — "Option A: Decision Gate"
   Fonts: self-hosted, declared at the top of this file (assets/fonts/).
   ========================================================================== */

/* ---------- 1. Design tokens ---------- */
:root {
  /* Brand (sampled from the logo) */
  --ps-amber: #FFBB19;  /* published: FEC35E*/
  --ps-amber-hover: #FFD88F;
  --ps-cyan: #4FC3F7;   /* palette 3 rule/accent blue (6 Oct 2026) - was: #00ABE3, the logo and hero image blue */

  /* Surfaces */
  --ps-bg: #011B3A;            /* page background Navy: #011B3A, Dark(live): #050B18 */  
  --ps-surface: #0A1628;       /* cards, panels */
  --ps-surface-alpha: rgba(10, 22, 40, 0.9);
  --ps-line: rgba(79, 195, 247, 0.2);     /* card borders */
  --ps-line-strong: rgba(79, 195, 247, 0.4);
  --ps-grid: rgba(79, 195, 247, 0.06);    /* background grid */

  /* Text */
  /* Reading colors, four knobs (Daron, 30 Sep 2026). Edit these four; everything else follows.
     "bg" = the page background; "box" = the slightly lighter panels (cards, flow boxes, matrix cells).
     Hero image blue is #00ABE3;  */
  --ps-heading-on-bg:  #FFBB19;   /* 1. headings of any size on the page background - Starting: #F1E7D0;  - Options: FFFDF0, for rod: 9FB9D0; palette 3 headline: FFBB19 */
  --ps-text-on-bg:     #9FB9D0;   /* 2. body text on the page background - Starting: #A9BACB; Claude: E4EEF8 or A8C0D6, 9FB9D0 (light steel blue) Rods: 4FC3F7 */
  --ps-heading-on-box: #F39C12;   /* 3. headings of any size inside a box - Starting: #E9DCBF; Published: 00ABE3; palette 3 sub header: F39C12 */
  --ps-text-on-box:    #9FB9D0;   /* 4. body text inside a box - Starting: #A9BACB; palette 3: 9FB9D0 */
  --ps-subhead-on-bg:  #F39C12;   /* 5. sub headers (h3, h4, hero tagline) on the page background - palette 3 (6 Oct 2026). Inside a box they follow knob 3 */

  --ps-text-strong: var(--ps-heading-on-bg);   /* headings (resolved from the knobs above) */
  --ps-text: #9FB9D0;          /* default and emphasized text: strong, ghost buttons - was: #E2D8BE */
  --ps-text-muted: var(--ps-text-on-bg);       /* body copy */
  --ps-text-nav: #9FB9D0;   /* was #B7C6D6, which reads as white on navy (Rod's D9; Daron, 8 Oct 2026) */      /* nav links */
  --ps-text-faint: #6F869C;    /* labels, meta (large/uppercase only) */
  --ps-subhead: var(--ps-subhead-on-bg);       /* sub headers (resolved from knobs 5 and 3) */
  --ps-tag: #DD7A0E;           /* section tags, eyebrow labels, footer text (palette 3 section color) */

  /* Type */
  --ps-font-sans: 'Space Grotesk', system-ui, sans-serif;
  --ps-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --ps-fs-display: clamp(40px, 5.2vw, 68px);
  --ps-fs-h2: clamp(32px, 3.6vw, 48px);
  --ps-fs-h3: 24px;
  --ps-fs-tagline: clamp(20px, 2vw, 24px);
  --ps-fs-lead: clamp(17px, 1.4vw, 19px);
  --ps-fs-body: 16px;
  --ps-fs-label: 13px;

  /* Spacing & layout */
  --ps-gutter: clamp(20px, 5.5vw, 80px);
  --ps-max: 1440px;
  --ps-radius: 4px;
  --ps-radius-card: 6px;
  --ps-section-y: clamp(64px, 8vw, 112px);
  --ps-grid-size: 48px;
}

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--ps-font-sans);
  font-size: var(--ps-fs-body);
  line-height: 1.55;
  color: var(--ps-text);
  background-color: var(--ps-bg);
  background-image:
    linear-gradient(var(--ps-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--ps-grid) 1px, transparent 1px);
  background-size: var(--ps-grid-size) var(--ps-grid-size);
  -webkit-font-smoothing: antialiased;
}

img, svg { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  margin: 0;
  color: var(--ps-text-strong);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.08;
}
h1 { font-size: var(--ps-fs-display); letter-spacing: -0.03em; line-height: 1.02; }
h2 { font-size: var(--ps-fs-h2); }
h3 { font-size: var(--ps-fs-h3); font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; }
h3, h4 { color: var(--ps-subhead); }
p  { margin: 0; }

a { color: var(--ps-amber); text-decoration: none; }
a:hover { color: var(--ps-amber-hover); }

:focus-visible { outline: 2px solid var(--ps-cyan); outline-offset: 3px; border-radius: 2px; }

.ps-accent { color: var(--ps-amber); }          /* highlight words in headings */
.ps-muted  { color: var(--ps-text-muted); }
.ps-mono   { font-family: var(--ps-font-mono); }

.ps-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ps-amber); color: var(--ps-bg); padding: 12px 16px; z-index: 100;
}
.ps-skip:focus { left: 16px; top: 16px; }

/* ---------- 3. Layout ---------- */
.ps-container {
  width: 100%;
  max-width: var(--ps-max);
  margin-inline: auto;
  padding-inline: var(--ps-gutter);
}
.ps-section { padding-block: var(--ps-section-y); }
.ps-section + .ps-section { border-top: 1px solid var(--ps-line); }

.ps-section-head {
  display: flex; flex-direction: column; gap: 20px;
  max-width: 780px; margin-bottom: 48px;
}

.ps-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.ps-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
  align-items: center;
}

/* ---------- 4. Header / navigation ---------- */
.ps-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(1, 27, 58, 0.9);   /* navy, matches --ps-bg (6 Oct 2026) - was: rgba(5, 11, 24, 0.85) */
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(79, 195, 247, 0.3);   /* was: 0.18 */
}
.ps-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  min-height: 96px;
}
.ps-logo img { height: 60px; width: auto; }

.ps-nav { display: flex; align-items: center; gap: 28px; font-size: 15px; font-weight: 500; }
.ps-nav a { color: var(--ps-text-nav); padding-block: 8px; }
.ps-nav a:hover, .ps-nav a[aria-current="page"] { color: var(--ps-text-strong); }
.ps-nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--ps-cyan); }

.ps-nav-toggle {
  display: none;
  align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: transparent; color: var(--ps-text);
  border: 1px solid var(--ps-line-strong); border-radius: var(--ps-radius);
  cursor: pointer;
}

/* ---------- 5. Buttons ---------- */
.ps-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px;
  font-family: var(--ps-font-sans); font-size: 16px; font-weight: 700;
  border-radius: var(--ps-radius); border: 1px solid transparent;
  cursor: pointer; white-space: nowrap;
  transition: background-color .15s, color .15s, border-color .15s;
}
.ps-btn--primary { background: var(--ps-amber); color: var(--ps-bg); }
.ps-btn--primary:hover { background: var(--ps-amber-hover); color: var(--ps-bg); }

.ps-btn--ghost { border-color: rgba(230, 237, 245, 0.3); color: var(--ps-text); font-weight: 600; }
.ps-btn--ghost:hover { border-color: var(--ps-text); color: var(--ps-text-strong); }

.ps-btn--outline { min-height: 44px; padding: 0 20px; border-color: var(--ps-amber); color: var(--ps-amber); font-size: 15px; font-weight: 600; }
.ps-btn--outline:hover { background: var(--ps-amber); color: var(--ps-bg); }

.ps-btn svg { width: 16px; height: 16px; }
.ps-actions { display: flex; flex-wrap: wrap; gap: 16px; }

/* ---------- 6. Labels ---------- */
/* Pill with glowing dot: "GOVERNED DECISION LINEAGE" */
.ps-pill {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 10px;
  padding: 8px 14px;
  border: 1px solid var(--ps-line-strong); border-radius: 999px;
  font-family: var(--ps-font-mono); font-size: var(--ps-fs-label);
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ps-cyan);
}
.ps-pill::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--ps-cyan); box-shadow: 0 0 12px var(--ps-cyan);
}

/* Step / section eyebrow: "01 / DECIDE" */
.ps-eyebrow {
  font-family: var(--ps-font-mono); font-size: var(--ps-fs-label);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ps-tag);
}
.ps-eyebrow--amber { color: var(--ps-amber); }

/* ---------- 7. Hero ---------- */
.ps-hero { padding-block: clamp(56px, 7vw, 88px) clamp(48px, 5vw, 64px); }
.ps-hero__copy { display: flex; flex-direction: column; gap: 28px; }
.ps-hero__lead { font-size: var(--ps-fs-lead); line-height: 1.6; color: var(--ps-text-muted); max-width: 560px; }
.ps-hero__tagline { font-size: var(--ps-fs-tagline); line-height: 1.35; font-weight: 500; color: var(--ps-subhead); }
.ps-hero__art { margin: 0; }
.ps-hero__art img, .ps-hero__art svg { width: 100%; max-width: 620px; margin-inline: auto; }

/* ---------- 8. Cards ---------- */
.ps-card {
  display: flex; flex-direction: column; gap: 14px;
  padding: 32px;
  background: var(--ps-surface-alpha);
  border: 1px solid var(--ps-line);
  border-radius: var(--ps-radius-card);
}
.ps-card p { color: var(--ps-text-muted); }
.ps-card--highlight { border-color: rgba(255, 187, 25, 0.45); }
a.ps-card { color: inherit; transition: border-color .15s; }
a.ps-card:hover { border-color: var(--ps-cyan); color: inherit; }

/* ---------- 9. Sector strip ---------- */
.ps-strip {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px;
  padding-block: 56px 72px;
  font-family: var(--ps-font-mono); font-size: var(--ps-fs-label);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ps-text-faint);
}
.ps-strip strong { color: var(--ps-text-nav); font-weight: 400; }

/* ---------- 10. Callout / quote ---------- */
.ps-callout {
  padding: 24px 0;
  border-top: 1px solid rgba(255, 187, 25, 0.45);
  border-bottom: 1px solid rgba(255, 187, 25, 0.45);
  font-size: var(--ps-fs-tagline); font-weight: 500; line-height: 1.35;
  color: var(--ps-text-strong);
}

/* ---------- 11. Prose (long-form pages: Policy, Obligations, etc.) ---------- */
.ps-prose { max-width: 760px; color: var(--ps-text-muted); font-size: 17px; line-height: 1.7; }
.ps-prose > * + * { margin-top: 1.1em; }
.ps-prose h2 { margin-top: 2em; font-size: 32px; }
.ps-prose h3 { margin-top: 1.6em; }
.ps-prose strong { color: var(--ps-text); }
.ps-prose a { text-decoration: underline; text-underline-offset: 3px; }
.ps-prose ul, .ps-prose ol { padding-left: 1.25em; }
.ps-prose li + li { margin-top: 0.4em; }
.ps-prose code { font-family: var(--ps-font-mono); font-size: 0.9em; color: var(--ps-cyan); }

/* ---------- 12. Forms (Contact) ---------- */
.ps-field { display: flex; flex-direction: column; gap: 8px; }
.ps-field label { font-family: var(--ps-font-mono); font-size: var(--ps-fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ps-text-nav); }
.ps-input, .ps-textarea {
  width: 100%; min-height: 48px; padding: 12px 14px;
  font: inherit; color: var(--ps-text-strong);
  background: var(--ps-surface); border: 1px solid var(--ps-line-strong); border-radius: var(--ps-radius);
}
.ps-textarea { min-height: 160px; resize: vertical; }
.ps-input:focus, .ps-textarea:focus { outline: none; border-color: var(--ps-cyan); box-shadow: 0 0 0 3px rgba(79, 195, 247, 0.25); }

/* ---------- 13. Footer ---------- */
.ps-footer { border-top: 1px solid var(--ps-line); padding-block: 48px; color: var(--ps-tag); font-size: 14px; }
.ps-footer__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; align-items: center; }
.ps-footer a { color: var(--ps-text-nav); }
.ps-footer a:hover { color: var(--ps-text-strong); }


/* ---------- Box surfaces use the box reading colors (see the four knobs in :root) ---------- */
.ps-card, .ps-flow__box, .ps-matrix__cell, .ps-hero__art,
body.legacy .card, body.legacy .branch, body.legacy .stat:not(td), body.legacy .tier, body.legacy .arena,
body.legacy .sectorgrid a, body.legacy .person, body.legacy .route, body.legacy .matrix .cell,
body.legacy .summary-band, body.legacy .tablewrap, body.legacy .hero .category {
  --ps-text-strong: var(--ps-heading-on-box);
  --ps-text-muted: var(--ps-text-on-box);
  --ps-subhead: var(--ps-heading-on-box);
}

/* ---------- 14. Responsive ---------- */
@media (max-width: 1180px) {
  .ps-nav-toggle { display: inline-flex; }
  .ps-nav {
    display: none;
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    padding: 8px var(--ps-gutter) 24px;
    background: var(--ps-bg);
    border-bottom: 1px solid var(--ps-line);
  }
  .ps-nav.is-open { display: flex; }
  .ps-nav a { padding-block: 14px; border-bottom: 1px solid rgba(79, 195, 247, 0.1); }
  .ps-nav a[aria-current="page"] { box-shadow: none; color: var(--ps-amber); }
  .ps-nav .ps-btn { margin-top: 16px; border-bottom: 1px solid var(--ps-amber); }
}

@media (max-width: 960px) {
  .ps-grid-2 { grid-template-columns: minmax(0, 1fr); }
  .ps-grid-3 { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ps-hero__art { order: 2; }
}

@media (max-width: 600px) {
  .ps-header__inner { min-height: 76px; }
  .ps-logo img { height: 46px; }
  .ps-card { padding: 24px; }
  .ps-actions .ps-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}


/* ==========================================================================
   SITE ADDITIONS (29 Sept 2026)
   Patterns the live copy needs that the base theme above does not define.
   Everything below uses the theme's tokens; no new colors.
   ========================================================================== */

/* ---------- A. Navigation: the logo on its own row, twelve links beneath it ---------- */
.ps-header__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-height: 0; padding-block: 12px 0; }
.ps-logo { flex: 0 0 auto; justify-self: start; }
.ps-logo img { height: 87px; width: auto; max-width: none; }   /* 58 -> 87, +50% (Daron, 6 Oct 2026) */
.ps-nav-toggle { grid-column: 2; grid-row: 1; }
.ps-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 24px; padding-block: 8px 12px; font-size: 15px; }
.ps-nav a { white-space: nowrap; }
/* Desktop: logo centered on its own row, menu centered beneath it (Daron, 6 Oct 2026) */
@media (min-width: 1181px) {
  .ps-header__inner { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .ps-logo { justify-self: center; }
  .ps-nav { justify-content: center; }
}
@media (max-width: 1180px) {
  .ps-header__inner { padding-block: 10px; min-height: 88px; }
  .ps-nav { grid-column: 1 / -1; padding-block: 8px 24px; max-height: calc(100vh - 88px); overflow-y: auto; font-size: 16px; }
}
@media (max-width: 600px) { .ps-header__inner { min-height: 76px; } .ps-logo img { height: 72px; } }   /* 48 -> 72, +50% */

/* ---------- B. Section rhythm on a page of several sections ---------- */
.ps-section-head h2 { max-width: 22ch; }
.ps-section-head--wide h2 { max-width: none; }
.ps-stack { display: flex; flex-direction: column; gap: 40px; }
.ps-textlink { font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- C. Two-by-two matrix ---------- */
.ps-matrix { display: grid; grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr); gap: 12px; max-width: 980px; }
.ps-matrix__x, .ps-matrix__y {
  font-family: var(--ps-font-mono); font-size: var(--ps-fs-label);
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--ps-text-nav);
}
.ps-matrix__x { align-self: end; padding: 0 4px 4px; }
.ps-matrix__y { align-self: center; text-align: right; padding-right: 12px; }
.ps-matrix__cell {
  display: flex; flex-direction: column; gap: 6px; justify-content: center;
  min-height: 124px; padding: 24px;
  background: var(--ps-surface-alpha); border: 1px solid var(--ps-line); border-radius: var(--ps-radius-card);
}
.ps-matrix__cell strong { font-size: 26px; font-weight: 600; letter-spacing: -0.01em; color: var(--ps-text-strong); }
.ps-matrix__cell span { color: var(--ps-text-muted); }
.ps-matrix__cell--us { border-color: rgba(255, 187, 25, 0.6); }
.ps-matrix__cell--us strong { color: var(--ps-amber); }
@media (max-width: 760px) {           /* the two-by-two stays two-by-two; the row label moves above its row */
  .ps-matrix { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ps-matrix__corner { display: none; }
  .ps-matrix__y { grid-column: 1 / -1; text-align: left; padding: 8px 4px 0; }
  .ps-matrix__cell { min-height: 104px; padding: 16px; }
  .ps-matrix__cell strong { font-size: 20px; }
  .ps-matrix__x { font-size: 11px; }
}

/* ---------- Chart: the logo in the upper-right corner of the upper-right tile (Rod, v11, 8 Oct 2026) ---------- */
.ps-matrix__cell--us { justify-content: space-between; }
.ps-matrix__logo { align-self: flex-end; height: 34px; width: auto; max-width: 100%; }
@media (max-width: 760px) { .ps-matrix__logo { height: 24px; } }

/* ---------- D. Flow diagram (authority, proposer, arbiter, action, record) ---------- */
.ps-flow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1.15fr) auto minmax(0, 1fr); gap: 16px; align-items: center; max-width: 1100px; }
.ps-flow__col { display: grid; gap: 16px; }
.ps-flow__box { padding: 20px 22px; background: var(--ps-surface); border: 1px solid #2A4661; border-radius: var(--ps-radius); }
.ps-flow__box p { margin-top: 8px; color: var(--ps-text-muted); font-size: 15px; line-height: 1.5; }
.ps-flow__box--us { border-color: var(--ps-amber); }
.ps-flow__box--us .ps-eyebrow { color: var(--ps-amber); }
.ps-flow__arrow { color: var(--ps-cyan); font-size: 28px; line-height: 1; text-align: center; }
@media (max-width: 960px) {
  .ps-flow { grid-template-columns: minmax(0, 1fr); }
  .ps-flow__arrow { transform: rotate(90deg); }
}

/* ---------- E. Defined terms ---------- */
.ps-terms { margin: 0; max-width: 1100px; border-top: 1px solid var(--ps-line); }
.ps-terms > div { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; padding: 24px 0; border-bottom: 1px solid var(--ps-line); }
.ps-terms dt { font-size: var(--ps-fs-h3); font-weight: 600; letter-spacing: -0.01em; color: var(--ps-text-strong); }
.ps-terms dd { margin: 0; color: var(--ps-text-muted); font-size: 17px; line-height: 1.65; }
@media (max-width: 760px) { .ps-terms > div { grid-template-columns: minmax(0, 1fr); gap: 8px; } }

/* ---------- F. Footer with link columns ---------- */
.ps-footer__cols { display: grid; grid-template-columns: 1.3fr 1fr 1.7fr; gap: 48px; align-items: start; width: 100%; }
.ps-footer__cols img { height: 52px; width: auto; }
.ps-footer__cols h5 {
  margin: 0 0 16px; font-family: var(--ps-font-mono); font-size: var(--ps-fs-label); font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ps-text-faint);
}
.ps-footer__cols ul { list-style: none; margin: 0; padding: 0; }
.ps-footer__cols li { margin-bottom: 10px; font-size: 15px; }
.ps-footer__cols ul.ps-two { columns: 2; column-gap: 32px; }
.ps-footer__cols ul.ps-two li { break-inside: avoid; }
.ps-footer__legal { display: flex; flex-wrap: wrap; gap: 12px 28px; width: 100%; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--ps-line); font-size: 13px; }
@media (max-width: 960px) { .ps-footer__cols { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* ---------- G. Long button labels on phones ---------- */
@media (max-width: 600px) {
  .ps-btn { white-space: normal; text-align: center; padding-block: 12px; }
  .ps-hero__lead { max-width: none; }
}


/* ==========================================================================
   LEGACY SKIN (29 Sept 2026)
   The 24 interior pages keep their original markup and class names; this block
   renders those classes in the theme. Scoped to body.legacy so the home page,
   which uses the theme's own components, is unaffected. Tokens only.
   ========================================================================== */
body.legacy {
  --navy: var(--ps-text-strong); --ink: var(--ps-text); --ink-2: var(--ps-text-muted);
  --grey: var(--ps-text-muted); --grey-2: var(--ps-text-nav);
  --tag: var(--ps-tag); --iceblue: var(--ps-cyan); --logoblue: var(--ps-amber);
  --ground: var(--ps-bg); --surface: var(--ps-surface-alpha); --surface-2: var(--ps-surface);
  --rule: var(--ps-line); --rule-strong: var(--ps-line-strong);
  --serif: var(--ps-font-sans); --sans: var(--ps-font-sans); --mono: var(--ps-font-mono);
  --page: var(--ps-max); --read: 760px;
  font-size: 17px; line-height: 1.6; color: var(--ps-text-muted);
}
body.legacy .wrap { width: 100%; max-width: var(--ps-max); margin-inline: auto; padding-inline: var(--ps-gutter); }
body.legacy .read { max-width: var(--read); }
body.legacy main > section, body.legacy body > section, body.legacy section { padding-block: var(--ps-section-y); }
body.legacy section + section { border-top: 1px solid var(--ps-line); }
body.legacy section.alt { background: transparent; }
body.legacy p { margin: 0 0 18px; }
body.legacy strong { color: var(--ps-text); }
body.legacy a { text-decoration: underline; text-underline-offset: 3px; }
body.legacy a.btn, body.legacy nav a, body.legacy .ps-footer a, body.legacy .ps-logo, body.legacy .sectorgrid a, body.legacy .when { text-decoration: none; }
body.legacy h1, body.legacy h2, body.legacy h3, body.legacy h4 { color: var(--ps-text-strong); }
body.legacy h3, body.legacy h4 { color: var(--ps-subhead); }
body.legacy h2 { font-size: var(--ps-fs-h2); margin: 14px 0 22px; max-width: 24ch; }
body.legacy h3 { font-size: var(--ps-fs-h3); margin: 34px 0 10px; }
body.legacy h4 { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
body.legacy .lead, body.legacy .lede, body.legacy .sub { font-size: var(--ps-fs-lead); line-height: 1.6; color: var(--ps-text-muted); }
body.legacy .subhead { font-size: var(--ps-fs-tagline); font-weight: 500; line-height: 1.35; color: var(--ps-subhead); margin: 42px 0 14px; max-width: var(--read); }
body.legacy .assertion { font-size: var(--ps-fs-h2); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; color: var(--ps-text-strong); max-width: 30ch; margin: 0; }
body.legacy .cta-close { font-size: var(--ps-fs-tagline); font-weight: 500; line-height: 1.35; color: var(--ps-text-strong); max-width: 40ch; margin: 30px 0 0; padding: 24px 0; border-top: 1px solid rgba(255, 187, 25, 0.45); border-bottom: 1px solid rgba(255, 187, 25, 0.45); }

/* labels */
body.legacy .eyebrow, body.legacy .card .num, body.legacy .branch .tag, body.legacy .tier .lvl, body.legacy .arena .tag,
body.legacy .sectorgrid .tag, body.legacy .route .tag, body.legacy .ranked .k, body.legacy .card .req strong,
body.legacy .tiers-cap, body.legacy .marking, body.legacy .matrix .xhead div, body.legacy .matrix .ylab,
body.legacy .person .role, body.legacy .sources h5, body.legacy footer h5, body.legacy .stat:not(td) cite, body.legacy blockquote.pull cite,
body.legacy .sectorgrid .more, body.legacy a.mailto, body.legacy .person .lk-link, body.legacy .when, body.legacy .chamber, body.legacy .badge {
  font-family: var(--ps-font-mono); font-size: var(--ps-fs-label); letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ps-tag); font-weight: 400; font-style: normal;
}
body.legacy .eyebrow { margin: 0 0 8px; }
body.legacy .card .req strong, body.legacy .tiers-cap, body.legacy .marking, body.legacy .matrix .xhead div, body.legacy .matrix .ylab,
body.legacy .person .role, body.legacy .sources h5, body.legacy .stat:not(td) cite, body.legacy blockquote.pull cite, body.legacy .chamber { color: var(--ps-text-nav); font-size: 12px; }
body.legacy .stat:not(td) cite a, body.legacy .sources a { color: var(--ps-text-nav); }
body.legacy .cite, body.legacy sup.fn, body.legacy .fn a { font-family: var(--ps-font-mono); font-size: 0.78em; color: var(--ps-text-nav); }
body.legacy .sources { margin-top: 34px; font-size: 14px; color: var(--ps-text-nav); max-width: 78ch; }
body.legacy .sources p { margin: 0 0 7px; }

/* page head */
body.legacy .pagehead { padding-block: clamp(48px, 6vw, 80px) clamp(36px, 4vw, 56px); border-bottom: 1px solid var(--ps-line); }
body.legacy .pagehead h1 { font-size: var(--ps-fs-display); margin: 12px 0 0; max-width: 20ch; }
body.legacy .pagehead .sub { margin: 22px 0 0; max-width: 60ch; }
body.legacy .hero { padding-block: clamp(56px, 7vw, 88px) clamp(48px, 5vw, 64px); }
body.legacy .hero h1 { font-size: var(--ps-fs-display); margin: 16px 0 0; max-width: 19ch; }
body.legacy .hero .lede { margin: 26px 0 0; max-width: 62ch; }
body.legacy .hero a.jump { display: inline-block; margin-top: 8px; font-family: var(--ps-font-mono); font-size: var(--ps-fs-label); letter-spacing: 0.1em; text-transform: uppercase; color: var(--ps-text-strong); border-bottom: 1px solid var(--ps-cyan); text-decoration: none; padding-bottom: 3px; }
body.legacy .hero .category { margin: 34px 0 0; padding: 22px 26px; border-left: 3px solid var(--ps-cyan); background: var(--ps-surface-alpha); max-width: 74ch; }
body.legacy [id] { scroll-margin-top: 110px; }

/* on this page */
body.legacy .summary-band { padding-block: 28px 22px; background: var(--ps-surface-alpha); border-bottom: 1px solid var(--ps-line); }
body.legacy .summary-band .eyebrow { margin-bottom: 4px; }
body.legacy ul.summary { list-style: none; margin: 0; padding: 0; max-width: 80ch; }
body.legacy ul.summary li { padding: 8px 0 8px 24px; position: relative; font-size: 15.5px; line-height: 1.5; border-bottom: 1px solid var(--ps-line); }
body.legacy ul.summary li:last-child { border-bottom: 0; }
body.legacy ul.summary li::before { content: ""; position: absolute; left: 0; top: 19px; width: 11px; height: 1px; background: var(--ps-cyan); }
body.legacy ul.summary a { color: var(--ps-text-strong); font-weight: 600; text-decoration: none; }
body.legacy ul.summary a:hover { text-decoration: underline; }
body.legacy ul.summary a::after { content: "."; }

/* buttons */
body.legacy .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px; margin: 12px 12px 0 0;
  font-family: var(--ps-font-sans); font-size: 16px; font-weight: 700; letter-spacing: 0; text-transform: none;
  background: var(--ps-amber); color: var(--ps-bg); border: 1px solid transparent; border-radius: var(--ps-radius);
  transition: background-color .15s, color .15s, border-color .15s;
}
body.legacy .btn:hover { background: var(--ps-amber-hover); color: var(--ps-bg); }
body.legacy .btn.ghost { background: transparent; border-color: rgba(230, 237, 245, 0.3); color: var(--ps-text); font-weight: 600; }
body.legacy .btn.ghost:hover { border-color: var(--ps-text); color: var(--ps-text-strong); background: transparent; }
body.legacy .btnrow { margin-top: 30px; }
body.legacy .cta { padding-block: var(--ps-section-y); }
body.legacy .cta p { max-width: 58ch; }
@media (max-width: 600px) { body.legacy .btn { width: 100%; margin-right: 0; white-space: normal; text-align: center; padding-block: 12px; } }

/* card families: same surface, same border, real gaps instead of the 1px grid */
body.legacy .cards, body.legacy .branches, body.legacy .stats, body.legacy .tiers, body.legacy .arenas,
body.legacy .sectorgrid, body.legacy .people { display: grid; gap: 20px; background: transparent; border: 0; margin: 26px 0 0; }
body.legacy .cards { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
body.legacy .branches, body.legacy .sectorgrid { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
body.legacy .stats { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
body.legacy .people { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
body.legacy .tiers, body.legacy .arenas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) { body.legacy .tiers, body.legacy .arenas { grid-template-columns: minmax(0, 1fr); } }
body.legacy .card, body.legacy .branch, body.legacy .stat:not(td), body.legacy .tier, body.legacy .arena, body.legacy .sectorgrid a,
body.legacy .person, body.legacy .route {
  display: flex; flex-direction: column; gap: 10px; padding: 28px;
  background: var(--ps-surface-alpha); border: 1px solid var(--ps-line); border-radius: var(--ps-radius-card); color: var(--ps-text-muted);
}
body.legacy .sectorgrid a { transition: border-color .15s; }
body.legacy .sectorgrid a:hover { border-color: var(--ps-cyan); }
body.legacy .card h3, body.legacy .branch h4, body.legacy .sectorgrid h3, body.legacy .route h3, body.legacy .person h3 { margin: 4px 0 0; font-size: 22px; }
body.legacy .card p, body.legacy .branch p, body.legacy .sectorgrid p, body.legacy .route p, body.legacy .arena p, body.legacy .tier p, body.legacy .stat:not(td) p { margin: 0; font-size: 16px; }
body.legacy .branch .fn { font-size: 14px; color: var(--ps-text-nav); font-style: italic; margin: 0; }
body.legacy .card .req { border-top: 1px solid var(--ps-line); padding-top: 14px; margin-top: 6px; font-size: 15px; }
body.legacy .card .req strong { display: block; margin-bottom: 6px; }
body.legacy .stat:not(td) .fig, body.legacy .tier .n { font-size: clamp(36px, 4vw, 48px); font-weight: 700; letter-spacing: -0.03em; line-height: 1; color: var(--ps-text-strong); }
body.legacy .sectorgrid .more { margin-top: auto; padding-top: 12px; }
body.legacy .person img.headshot { width: 132px; height: 132px; object-fit: cover; border-radius: 6px; margin: 0 0 8px; border: 1px solid var(--ps-line); }
body.legacy .person ul.plain { margin: 8px 0 0; }
body.legacy .person li.lk a { display: inline-flex; align-items: center; gap: 7px; }
body.legacy .person .lk-icon { flex: none; }
body.legacy .people:has(img.headshot) .person:not(:has(img.headshot)) > h3 { padding-top: 0; }

/* lists, rows, quotes */
body.legacy ul.plain { list-style: none; padding: 0; margin: 0 0 18px; }
body.legacy ul.plain li { padding: 11px 0 11px 26px; border-bottom: 1px solid var(--ps-line); position: relative; }
body.legacy ul.plain li::before { content: ""; position: absolute; left: 0; top: 21px; width: 11px; height: 1px; background: var(--ps-cyan); }
body.legacy .ranked { border-top: 1px solid var(--ps-line); margin-top: 8px; }
body.legacy .ranked .row { display: grid; grid-template-columns: 140px 1fr; gap: 26px; padding: 22px 0; border-bottom: 1px solid var(--ps-line); align-items: start; }
body.legacy .ranked .k { padding-top: 5px; }
body.legacy .ranked .v { margin: 0; }
body.legacy .ranked .row .v a.mailto { display: inline-block; margin-top: 12px; }
body.legacy a.mailto { border-bottom: 1px solid var(--ps-line-strong); padding-bottom: 4px; }
body.legacy blockquote.pull { margin: 40px 0; padding: 4px 0 4px 28px; border-left: 2px solid var(--ps-amber); font-size: var(--ps-fs-tagline); font-weight: 500; line-height: 1.4; color: var(--ps-text-strong); max-width: 48ch; }
body.legacy blockquote.pull cite { display: block; margin-top: 16px; }
body.legacy .step { border-top: 1px solid var(--ps-line); padding: 36px 0 10px; }
body.legacy .step:first-of-type { border-top: 0; padding-top: 6px; }
body.legacy .note { border-left: 2px solid var(--ps-cyan); padding: 6px 0 6px 16px; }

/* question and answer, glossary */
body.legacy .qa { border-top: 1px solid var(--ps-line); }
body.legacy .qa .item { padding: 34px 0; border-bottom: 1px solid var(--ps-line); }
body.legacy .qa h3 { margin: 0 0 16px; font-size: clamp(20px, 2.4vw, 26px); }
body.legacy .qa p { max-width: var(--read); margin: 0 0 16px; }
body.legacy .terms { border-top: 1px solid var(--ps-line); margin-top: 10px; }
body.legacy .terms .term { display: grid; grid-template-columns: 240px 1fr; gap: 32px; padding: 22px 0; border-bottom: 1px solid var(--ps-line); }
body.legacy .terms .t { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; color: var(--ps-text-strong); }
@media (max-width: 760px) { body.legacy .terms .term { grid-template-columns: 1fr; gap: 8px; } body.legacy .ranked .row { grid-template-columns: 1fr; gap: 8px; } }

/* reference tables */
body.legacy .tablewrap { overflow-x: auto; border: 1px solid var(--ps-line); border-radius: var(--ps-radius-card); background: var(--ps-surface-alpha); }
body.legacy table.ref { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 660px; }
body.legacy table.ref th { text-align: left; padding: 14px 18px; border-bottom: 1px solid var(--ps-line-strong); font-family: var(--ps-font-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ps-text-nav); font-weight: 400; vertical-align: bottom; }
body.legacy table.ref td { padding: 18px; border-bottom: 1px solid var(--ps-line); vertical-align: top; }
body.legacy table.ref tr:last-child td { border-bottom: 0; }
body.legacy table.ref tr.group td { font-family: var(--ps-font-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ps-tag); padding: 26px 18px 8px; border-bottom: 1px solid var(--ps-line-strong); }
body.legacy table.ref td:first-child { color: var(--ps-text-strong); }
body.legacy table.ref.policy tr:not(.group) td:first-child { font-weight: 700; color: var(--ps-amber); }
body.legacy .badge { display: block; width: fit-content; margin-top: 10px; padding: 3px 8px; font-size: 11px; border: 1px solid var(--ps-line-strong); color: var(--ps-text-nav); border-radius: 2px; }
body.legacy .badge.verified { border-color: var(--ps-cyan); color: var(--ps-cyan); }
body.legacy .badge.ours { border-color: var(--ps-amber); color: var(--ps-amber); }

/* the two-axis matrix on The Solution */
body.legacy .matrix { margin-top: 30px; max-width: 980px; }
body.legacy .matrix .xhead { display: grid; grid-template-columns: 170px 1fr 1fr; gap: 12px; margin-bottom: 12px; }
body.legacy .matrix .xhead div { padding: 0 4px 4px; align-self: end; }
body.legacy .matrix .row { display: grid; grid-template-columns: 170px 1fr 1fr; gap: 12px; background: transparent; }
body.legacy .matrix .row + .row { margin-top: 12px; }
body.legacy .matrix .ylab { background: transparent; padding: 0 12px 0 0; text-align: right; display: flex; align-items: center; justify-content: flex-end; }
body.legacy .matrix .cell { background: var(--ps-surface-alpha); border: 1px solid var(--ps-line); border-radius: var(--ps-radius-card); padding: 24px; min-height: 118px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
body.legacy .matrix .cell .n { font-size: 26px; font-weight: 600; letter-spacing: -0.01em; color: var(--ps-text-strong); }
body.legacy .matrix .cell .l { margin: 0; font-size: 15px; color: var(--ps-text-muted); }
body.legacy .matrix .cell.us { border-color: rgba(255, 187, 25, 0.6); }
body.legacy .matrix .cell.us .n { color: var(--ps-amber); font-size: 26px; }
body.legacy .matrix .note { margin-top: 22px; max-width: 62ch; }
@media (max-width: 760px) {
  body.legacy .matrix .xhead, body.legacy .matrix .row { grid-template-columns: 1fr 1fr; }
  body.legacy .matrix .xhead div:first-child { display: none; }
  body.legacy .matrix .ylab { grid-column: 1 / -1; text-align: left; justify-content: flex-start; padding: 8px 4px 0; }
  body.legacy .matrix .cell { padding: 16px; min-height: 96px; }
  body.legacy .matrix .cell .n, body.legacy .matrix .cell.us .n { font-size: 20px; }
}

/* the incident timeline on The Problem: the page's own style block sets the layout; these set the theme's type */
body.legacy .incidentlog .when { color: var(--ps-tag); }
body.legacy .incidentlog p { color: var(--ps-text-muted); }
body.legacy .incidentlog-count { color: var(--ps-text-nav); }


/* ==========================================================================
   WHITE GROUND AND ITS SWITCH (Rod, 13 Oct 2026)
   A second background the reader can choose with the switch in the header.
   Its colors are the memorandum template's own:
     navy  #0D2B45  headings            ink   #1A1C22  body text
     grey  #55606B  small print         blue  #0B6FA4  labels and links (the lockup's blue)
     ice blue #4FC3F7  rules and the filled button
   The logo on this ground is the ice blue and black lockup.
   The navy ground above is the default, and nothing here changes it.
   No type on this ground is white, and no button puts white type on a dark fill.
   ========================================================================== */
:root[data-theme="light"] {
  --ps-amber: #0B6FA4;                 /* links and highlighted words */
  --ps-amber-hover: #0D2B45;
  --ps-bg: #FFFFFF;
  --ps-surface: #F4F7FA;               /* cards and panels */
  --ps-surface-alpha: rgba(244, 247, 250, 0.94);
  --ps-line: rgba(11, 111, 164, 0.22);
  --ps-line-strong: rgba(11, 111, 164, 0.45);
  --ps-grid: transparent;              /* a plain page, as a memorandum is */
  --ps-heading-on-bg: #0D2B45;
  --ps-text-on-bg: #1A1C22;
  --ps-heading-on-box: #0D2B45;
  --ps-text-on-box: #1A1C22;
  --ps-subhead-on-bg: #0B6FA4;
  --ps-text: #1A1C22;
  --ps-text-nav: #0D2B45;
  --ps-text-faint: #55606B;
  --ps-tag: #0B6FA4;
}
[data-theme="light"] .ps-header { background: rgba(255, 255, 255, 0.94); border-bottom-color: rgba(11, 111, 164, 0.3); }
[data-theme="light"] .ps-footer { color: #55606B; }
[data-theme="light"] .ps-skip,
[data-theme="light"] .ps-btn--primary,
[data-theme="light"] body.legacy .btn { background: #4FC3F7; color: #0D2B45; }
[data-theme="light"] .ps-btn--primary:hover,
[data-theme="light"] .ps-btn--outline:hover,
[data-theme="light"] body.legacy .btn:hover { background: #2FB2EC; color: #0D2B45; }
[data-theme="light"] .ps-btn--ghost,
[data-theme="light"] body.legacy .btn.ghost { background: transparent; border-color: rgba(13, 43, 69, 0.4); color: #0D2B45; }
[data-theme="light"] .ps-btn--ghost:hover,
[data-theme="light"] body.legacy .btn.ghost:hover { background: transparent; border-color: #0D2B45; color: #0D2B45; }
[data-theme="light"] .ps-card--highlight,
[data-theme="light"] .ps-matrix__cell--us,
[data-theme="light"] body.legacy .matrix .cell.us { border-color: rgba(11, 111, 164, 0.6); }
[data-theme="light"] .ps-callout,
[data-theme="light"] body.legacy .cta-close { border-color: rgba(11, 111, 164, 0.3); }
[data-theme="light"] .ps-flow__box { border-color: rgba(11, 111, 164, 0.3); }
[data-theme="light"] .ps-nav a { border-bottom-color: rgba(11, 111, 164, 0.15); }
/* Two marks set in ice blue on the navy ground are too faint on white; they take the lockup blue. */
[data-theme="light"] .ps-flow__arrow,
[data-theme="light"] body.legacy .badge.verified { color: #0B6FA4; }

/* One lockup for each ground; the other is not shown. */
.ps-lockup--white { display: none; }
[data-theme="light"] .ps-lockup--navy { display: none; }
[data-theme="light"] .ps-lockup--white { display: block; }

/* The switch, and "Save to PDF" under it. Desktop: upper right of the header. Tablet: beside the menu button.
   Phone: under the logo, shown when the menu is open (there is no room beside the logo at that width). */
.ps-tools {
  display: flex; flex-direction: column; align-items: flex-end; gap: 6px;
  grid-row: 1; grid-column: 2; justify-self: end;
}
.ps-tools[hidden] { display: none; }
.ps-theme {
  display: inline-flex; align-items: center;
  border: 1px solid var(--ps-line-strong); border-radius: 999px; overflow: hidden;
}
.ps-theme__btn, .ps-save {
  background: transparent; cursor: pointer;
  color: var(--ps-text-nav);
  font-family: var(--ps-font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
}
.ps-theme__btn { min-height: 36px; padding: 0 14px; border: 0; }
.ps-theme__btn[aria-pressed="true"] { background: var(--ps-cyan); color: #0D2B45; }
.ps-save { min-height: 32px; padding: 0 14px; border: 1px solid var(--ps-line-strong); border-radius: 999px; white-space: nowrap; }
.ps-save:hover { border-color: var(--ps-cyan); color: var(--ps-text-strong); }
.ps-theme__btn:focus-visible, .ps-save:focus-visible { outline: 2px solid var(--ps-cyan); outline-offset: -2px; }
@media (min-width: 1181px) {
  .ps-header__inner { position: relative; }
  .ps-tools { position: absolute; right: 0; top: 12px; }
}
@media (max-width: 1180px) {
  .ps-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: 12px; }
  .ps-nav-toggle { grid-column: 3; }
}
@media (max-width: 600px) {
  .ps-header__inner { grid-template-columns: minmax(0, 1fr) auto; }
  .ps-nav-toggle { grid-column: 2; }
  .ps-tools, .ps-tools[hidden] { display: none; }
  .ps-tools { flex-direction: row; align-items: center; gap: 10px; grid-row: 3; grid-column: 1 / -1; justify-self: start; margin-bottom: 16px; }
  .ps-nav.is-open + .ps-tools:not([hidden]) { display: flex; }
}

/* ==========================================================================
   SAVE TO PDF (Rod, 13 Oct 2026)
   The button opens the browser's print window, where the reader saves the page as a PDF.
   On paper a page always takes the white ground and the memorandum template's colors, whichever ground is on the
   screen: the lockup at the head with the ice blue rule under it, navy headings, ink text, the website at the foot.
   The menu, the switch, the buttons and the illustration are left off the paper.
   ========================================================================== */

/* ===== site additions, 14 Oct 2026 (Rod): the decision path, the six-node diagram from the CDAO deck slide 10, on Home and The Solution; the Home hero in two columns above it ===== */
.ps-path { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1.15fr) 28px minmax(0,1fr) 28px minmax(0,1fr); grid-template-areas: "pro a1 arb a2 cap a3 act" ". . down . . . ." ". . evi a4 ver ver ver"; gap: 14px 10px; align-items: stretch; max-width: 1100px; margin-top: 30px; }
.ps-path__box { padding: 18px 20px; background: var(--ps-surface); border: 1px solid #2A4661; border-radius: var(--ps-radius); }
.ps-path__box--us { border-color: var(--ps-amber); }
.ps-path__box--us .ps-eyebrow, .ps-path__box--us .ps-path__icon { color: var(--ps-amber); }
.ps-path__icon { display: block; width: 40px; height: 40px; margin-bottom: 12px; color: var(--ps-cyan); }
.ps-path__box .ps-eyebrow { display: block; margin-bottom: 6px; }
.ps-path__box p { margin: 8px 0 0; color: var(--ps-text-muted); font-size: 15px; line-height: 1.5; }
.ps-path__checks { list-style: none; margin: 10px 0 0; padding: 0; font-size: 14px; line-height: 1.7; color: var(--ps-text-muted); }
.ps-path__checks li::before { content: "\2713\00a0\00a0"; color: var(--ps-amber); font-weight: 600; }
.ps-path__arrow { color: var(--ps-cyan); font-size: 26px; line-height: 1; text-align: center; align-self: center; }
.ps-path__arrow--down { grid-area: down; text-align: left; padding-left: 20px; }
.ps-path__pro { grid-area: pro; } .ps-path__arb { grid-area: arb; } .ps-path__cap { grid-area: cap; } .ps-path__act { grid-area: act; } .ps-path__evi { grid-area: evi; } .ps-path__ver { grid-area: ver; }
.ps-path__a1 { grid-area: a1; } .ps-path__a2 { grid-area: a2; } .ps-path__a3 { grid-area: a3; } .ps-path__a4 { grid-area: a4; }
.ps-path__band { max-width: 1100px; margin-top: 18px; padding: 14px 20px; border: 1px solid var(--ps-line-strong); border-radius: var(--ps-radius); color: var(--ps-text-muted); font-size: 15px; line-height: 1.5; }
.ps-path__band strong { color: var(--ps-subhead); }
.ps-hero__stack { display: flex; flex-direction: column; gap: 24px; }
/* Daron, 22 Oct 2026: the Home headline grew to two sentences, so it runs smaller than the display size, and its second line takes the lockup's blue */
.ps-hero__stack h1 { max-width: none; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.12; }
.ps-hero__h1-line2 { color: var(--ps-cyan); }
[data-theme="light"] .ps-hero__h1-line2 { color: #0B6FA4; }
.ps-hero__stack .ps-hero__lead { max-width: none; }
.ps-hero__path { margin-top: clamp(36px, 4vw, 56px); }
.ps-hero__path-title { font-size: var(--ps-fs-tagline); line-height: 1.35; font-weight: 500; color: var(--ps-subhead); margin: 0 0 10px; }
.ps-hero__path-lead { font-size: var(--ps-fs-body); line-height: 1.6; color: var(--ps-text-muted); max-width: 760px; margin: 0; }
.ps-hero__path .ps-path, .ps-hero__path .ps-path__band { max-width: none; }
@media (max-width: 900px) {
  .ps-path { grid-template-columns: minmax(0,1fr); grid-template-areas: "pro" "a1" "arb" "a2" "cap" "a3" "act" "down" "evi" "a4" "ver"; gap: 10px; }
  .ps-path__arrow { transform: rotate(90deg); }
  .ps-path__arrow--down { transform: none; text-align: center; padding-left: 0; }
}
/* Rod, 14 Oct 2026: section titles and page titles run the full width of the page; the reading measure stays on paragraphs only */
.ps-section-head h2, body.legacy h2, body.legacy .pagehead h1, body.legacy .hero h1, body.legacy .assertion { max-width: none; }
.ps-section-head, .ps-section-head--wide { max-width: none; }
.ps-section-head p, .ps-section-head .ps-prose { max-width: 780px; }
/* ===== end of the 14 Oct 2026 additions ===== */

@media print {
  @page { size: Letter; margin: 0.7in 0.75in 0.8in; }
  /* The head and foot of every sheet (Rod, 13 Oct 2026), as on a ProofSmith memorandum:
       first sheet    the logo with "Independent & Provable / GOVERNED DECISION LINEAGE" in the upper left corner,
                      large (2.25 in, the letterhead), with the ice blue rule under it;
       later sheets   the same lockup in the upper right corner, smaller (1.75 in, the continuation header);
       every sheet    a foot line with the website, the contact address and the page number.
     And the name of the page, so a reader can tell one saved PDF from another: large, in the upper right corner of
     the first sheet (across from the letterhead); smaller, in the upper left corner of every later sheet (across
     from the lockup). The name comes from the page: data-print-name on the header for the first sheet, and a
     one-line print style in the page's head for the margins of the later sheets.
     The first sheet's letterhead is the page's own header. The rest is drawn in the page margins, which Chrome and
     Edge can do. The page script marks the document "ps-pagebox" when the browser can; a browser that cannot keeps
     the letterhead on the first sheet and one foot line at the end. */
  @page boxed {
    size: Letter; margin: 1.3in 0.75in 0.95in;
    @top-left {                                   /* its content, the page's name, is set in each page's head */
      width: 58%; margin: 0.42in 0 0.33in; vertical-align: bottom; text-align: left;
      font: 600 11pt/1.2 'Space Grotesk', system-ui, sans-serif; color: #0D2B45;
    }
    @top-right {
      content: ""; width: 42%; margin: 0.42in 0 0.33in;
      background: url("proofsmith-lockup-white.png?v=20261013a") no-repeat right top / 1.75in auto;
      -webkit-print-color-adjust: exact; print-color-adjust: exact;
    }
    @bottom-left {
      content: "www.proofsmith.ai"; width: 30%;
      font: 8.5pt/1.3 'Space Grotesk', system-ui, sans-serif; color: #55606B;
      vertical-align: top; margin-top: 0.22in; padding-top: 5pt; border-top: 0.75pt solid rgba(11, 111, 164, 0.35);
    }
    @bottom-center {
      content: "Contact: info@proofsmith.ai"; width: 40%;
      font: 8.5pt/1.3 'Space Grotesk', system-ui, sans-serif; color: #55606B;
      vertical-align: top; margin-top: 0.22in; padding-top: 5pt; border-top: 0.75pt solid rgba(11, 111, 164, 0.35);
    }
    @bottom-right {
      content: "Page " counter(page) " of " counter(pages); width: 30%;
      font: 8.5pt/1.3 'Space Grotesk', system-ui, sans-serif; color: #55606B;
      vertical-align: top; margin-top: 0.22in; padding-top: 5pt; border-top: 0.75pt solid rgba(11, 111, 164, 0.35);
    }
  }
  @page boxed:first {
    margin-top: 0.7in;
    @top-left { content: none; }
    @top-right { content: none; }
  }
  .ps-pagebox body { page: boxed; }
  .ps-pagebox .ps-footer__legal span:nth-child(2) { display: none !important; }
  :root, :root[data-theme="light"] {
    --ps-amber: #0B6FA4; --ps-amber-hover: #0D2B45;
    --ps-bg: #FFFFFF; --ps-surface: #F4F7FA; --ps-surface-alpha: #F4F7FA;
    --ps-line: rgba(11, 111, 164, 0.22); --ps-line-strong: rgba(11, 111, 164, 0.45); --ps-grid: transparent;
    --ps-heading-on-bg: #0D2B45; --ps-text-on-bg: #1A1C22; --ps-heading-on-box: #0D2B45; --ps-text-on-box: #1A1C22;
    --ps-subhead-on-bg: #0B6FA4; --ps-text: #1A1C22; --ps-text-nav: #0D2B45; --ps-text-faint: #55606B; --ps-tag: #0B6FA4;
    --ps-fs-display: 24pt; --ps-fs-h2: 16pt; --ps-fs-h3: 12pt; --ps-fs-tagline: 12pt; --ps-fs-lead: 11.5pt;
    --ps-fs-body: 10.5pt; --ps-fs-label: 8pt;
    --ps-section-y: 14pt; --ps-gutter: 0px;
  }
  .ps-hero__h1-line2 { color: #0B6FA4; }
  html, body { background: #FFFFFF !important; }
  html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Left off the paper. */
  .ps-skip, .ps-nav, .ps-nav-toggle, .ps-tools, .ps-hero__art, .ps-actions, .ps-btn, a.btn, .btnrow, .ps-footer__cols,
  .ps-footer__legal a, .ps-footer__legal span:last-child { display: none !important; }

  /* The head of the page: the lockup, then the ice blue rule, as on a memorandum. */
  .ps-header { position: static !important; background: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom: 1.5pt solid #4FC3F7 !important; }
  .ps-header__inner { display: flex !important; justify-content: space-between; align-items: flex-end; gap: 0.3in;
    min-height: 0 !important; padding: 0 0 8pt !important; }
  .ps-header__inner::after { content: attr(data-print-name); font: 600 18pt/1.15 var(--ps-font-sans); color: #0D2B45;
    letter-spacing: -0.01em; text-align: right; }
  .ps-logo img { width: 2.25in !important; height: auto !important; }       /* the letterhead's size */
  .ps-lockup--navy { display: none !important; }
  .ps-lockup--white { display: block !important; }
  .ps-logo { display: block !important; flex: 0 0 auto; }
  .ps-footer__legal::after { content: "Contact: info@proofsmith.ai"; }
  .ps-pagebox .ps-footer__legal::after { content: none; }              /* the foot line of every sheet carries it */

  /* The foot: the company and the website, in the grey of the template's footer. */
  .ps-footer { border-top: 0.75pt solid rgba(11, 111, 164, 0.3); padding-block: 8pt 0 !important; margin-top: 14pt; color: #55606B !important; font-size: 8.5pt; }
  .ps-footer__legal { margin: 0; padding: 0; border: 0; }

  /* Paper widths and spacing. */
  .ps-container, body.legacy .wrap { max-width: none !important; padding-inline: 0 !important; }
  section, body.legacy section, .ps-section, .ps-hero { padding-block: 12pt !important; }
  .ps-grid-2 { display: block !important; }
  .ps-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10pt !important; }
  /* Long cards side by side would run taller than a sheet; on paper each takes the full line. */
  body.legacy .cards, body.legacy .branches { grid-template-columns: minmax(0, 1fr) !important; gap: 10pt !important; }
  body.legacy .tablewrap, body.legacy table.ref { background: transparent !important; }
  .ps-card, .ps-flow__box, .ps-matrix__cell, body.legacy .matrix .cell, body.legacy .tier, body.legacy .term { padding: 10pt 12pt !important; min-height: 0 !important; }
  .ps-prose, .ps-hero__lead, body.legacy .read, body.legacy .sub { max-width: none !important; }
  /* On the screen a heading is held to a short measure; on paper it takes the line. */
  .ps-section-head h2, body.legacy h2, body.legacy .assertion, body.legacy .cta-close, body.legacy .pagehead h1,
  body.legacy .hero h1, body.legacy .hero .lede, body.legacy .hero .category, body.legacy blockquote.pull,
  body.legacy .sources, body.legacy ul.summary, body.legacy .cta p, body.legacy .matrix .note { max-width: none !important; }
  body.legacy .tablewrap { overflow: visible !important; }
  body.legacy table.ref { font-size: 8.5pt; }
  body.legacy table.ref th, body.legacy table.ref td { padding: 5pt 6pt !important; }
  body.legacy table.ref th { position: static !important; }

  /* Keep a heading with what follows it, and keep a box, a row or a quotation in one piece. */
  h1, h2, h3, h4, .ps-eyebrow, body.legacy .eyebrow { break-after: avoid; page-break-after: avoid; }
  .ps-card, .ps-flow__box, .ps-matrix, body.legacy .matrix, body.legacy .step, body.legacy .ranked .row, body.legacy .tier,
  body.legacy .term, body.legacy .card, body.legacy .branch, body.legacy .lvl, body.legacy .route, blockquote, tr, li {
    break-inside: avoid; page-break-inside: avoid; }
  h1, h2, h3, h4, .ps-eyebrow, .ps-callout, .ps-hero__tagline, body.legacy .eyebrow, body.legacy .assertion,
  body.legacy .cta-close { break-inside: avoid; page-break-inside: avoid; }
  body.legacy table.ref tr.group, body.legacy table tr.group { break-after: avoid; page-break-after: avoid; }
  p { orphans: 3; widows: 3; }
  a { color: #0B6FA4 !important; }
}

/* ==========================================================================
   THE FIVE WORDS ON THE MARK (Ben Young's request; Rod, 13 Oct 2026)
   On Home, each of the five words under "The words on the mark" opens its explanation on The Solution.
   At rest the heading looks as it did. Under the cursor, or in keyboard focus, a word takes the blue of the mark:
   ice blue on the navy ground; on the white ground, where ice blue type is too faint to read, the lockup blue
   #0B6FA4 with an ice blue underline. A touch screen has no cursor, so there a dotted underline shows that the
   words open. On The Solution, the word the reader arrives at is marked with an ice blue bar.
   ========================================================================== */
.ps-markword { color: inherit; text-decoration: none; border-radius: 2px; transition: color 0.15s ease; }
.ps-markword:hover, .ps-markword:focus-visible { color: var(--ps-cyan); }
.ps-markword:focus-visible { outline: 2px solid var(--ps-cyan); outline-offset: 3px; }
[data-theme="light"] .ps-markword:hover,
[data-theme="light"] .ps-markword:focus-visible {
  color: #0B6FA4; text-decoration: underline; text-decoration-color: #4FC3F7;
  text-decoration-thickness: 3px; text-underline-offset: 0.16em;
}
@media (hover: none) {
  .ps-markword { text-decoration: underline dotted; text-decoration-color: rgba(79, 195, 247, 0.7);
    text-decoration-thickness: 2px; text-underline-offset: 0.16em; }
  [data-theme="light"] .ps-markword { text-decoration-color: rgba(11, 111, 164, 0.6); }
}
body.legacy .terms .term:target { box-shadow: inset 3px 0 0 var(--ps-cyan); padding-left: 16px; background: var(--ps-surface-alpha); }
/* A reader who follows a link to a place on a page lands below the sticky header. On a desktop the header is two rows
   (184 px at 1280 px wide), so the 110 px allowance under it left the top of the place covered: measured on the word
   anchors here and on sectors.html#innovative-technology. Below 1181 px the header is one row and 110 px is enough. */
[id] { scroll-margin-top: 110px; }
@media (min-width: 1181px) { [id], body.legacy [id] { scroll-margin-top: 200px; } }
@media print {
  a.ps-markword { color: inherit !important; text-decoration: none !important; }
  body.legacy .terms .term:target { box-shadow: none; background: none; }
}

/* Print: each tile of the decision path, and the line under it, prints in one piece (15 Oct 2026). Without it the
   Arbiter tile broke across the first two sheets of Home, its mark on one and its words on the next. */
@media print {
  .ps-path__box, .ps-path__band { break-inside: avoid; page-break-inside: avoid; }
}
