/* REAP website — design tokens and components.
   Brand source: REAP Brand Kit v2.0 (October 13, 2026): the REAP Brandbook and the REAP brand tokens (reap-tokens.css).
   Color: the Meridian scale (HSL 198, 55, x) for the brand, the REAP Gray scale (HSL 198, 10, x) for text and surfaces, and the
   status triad (Viridian, Crimson, Solar) for status only. Type: DM Sans for all text (400, 500, 600, 800); DM Mono for numerical
   and technical data: IP addresses, ports, commands and CLI output, log timestamps, identifiers (lib.mono_wrap() marks them up).
   The site's own logo is set in one place, the block "The REAP logo" below: the navy wordmark with the Light Blue foot on light
   backgrounds (the header, since v1.10.4), the white wordmark with the Light Blue foot on navy or dark backgrounds (the footer).
   The press kit shows the kit's files as the Brandbook pairs them (assets/brand/, assets/brand/REAP_Logo_Pack.zip). */
/* self-hosted fonts (SIL OFL 1.1 — licenses in assets/fonts/) */
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/DMSans-Regular.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url('assets/fonts/DMSans-Italic.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/DMSans-Medium.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/DMSans-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 800; font-display: swap; src: url('assets/fonts/DMSans-ExtraBold.woff2') format('woff2'); }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/DMMono-Regular.woff2') format('woff2'); }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/DMMono-Medium.woff2') format('woff2'); }
:root {
  /* Meridian, the brand primary (HSL 198, 55, x) */
  --meridian-10: #eff7fa; --meridian-50: #e7f3f8; --meridian-100: #d7ebf4; --meridian-200: #c8e3ef; --meridian-300: #b0d7e8;
  --meridian-400: #88c3dd; --meridian-500: #61afd1; --meridian-600: #399cc6; --meridian-700: #2e7c9e; --meridian-800: #225d77;
  --meridian-900: #173e4f; --meridian-950: #102c37; --meridian-1000: #050c10;
  /* REAP Gray, the neutral (HSL 198, 10, x): text and surfaces */
  --gray-10: #f4f5f6; --gray-50: #eef0f1; --gray-100: #e3e7e8; --gray-200: #d8dddf; --gray-300: #c7ced1; --gray-400: #abb6ba;
  --gray-500: #8f9da3; --gray-600: #73858c; --gray-700: #5c6a70; --gray-800: #455054; --gray-900: #2e3538; --gray-950: #202527; --gray-1000: #090b0b;
  /* status triad (status only, never decoration): the tokens' colors for dots, bars and borders; -ink shades for text (AA) */
  --status-healthy: hsl(161 68% 44%); --status-healthy-subtle: hsl(161 68% 94%); --status-healthy-ink: hsl(161 68% 26%);
  --status-alert: hsl(339 100% 42%); --status-alert-subtle: hsl(339 100% 95%); --status-alert-ink: hsl(339 100% 36%);
  --status-warning: hsl(31 100% 55%); --status-warning-subtle: hsl(31 100% 93%); --status-warning-ink: hsl(31 100% 30%);
  --status-warning-line: hsl(31 100% 78%); --status-healthy-line: hsl(161 68% 80%);
  /* the site's names for the colors it uses most */
  --navy: var(--meridian-950); --navy-2: var(--meridian-900); --deep: var(--meridian-800); --blue: var(--meridian-600); --sky: var(--meridian-400);
  --pale: var(--meridian-50); --soft: var(--meridian-100); --ink: var(--gray-900); --grey: var(--gray-700); --mist: var(--meridian-10);
  --line: var(--gray-200); --white: #ffffff;
  --good: var(--status-healthy-ink); --warn: var(--status-warning-ink); --bad: var(--status-alert-ink); --amber-bg: var(--status-warning-subtle);
  /* primary button: Meridian Blue, Light Blue on hover, navy label (4.7:1 on Meridian, 7.6:1 on Light Blue) */
  --cta: var(--meridian-600); --cta-hover: var(--meridian-400); --cta-ink: var(--meridian-950);
  --bg: var(--white); --fg: var(--ink);
  --font: 'DM Sans', system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --wrap: 1180px; --gutter: 20px; --radius: 12px; --radius-s: 8px;
  --shadow: 0 10px 30px rgba(16, 44, 55, .10);
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
[hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--bg); color: var(--fg); font-family: var(--font); font-size: 16px; line-height: 1.55; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--deep); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--navy); }
h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.15; color: var(--navy); font-weight: 600; text-wrap: balance; letter-spacing: -.01em; }
h1 { font-weight: 800; letter-spacing: -.02em; }   /* display: ExtraBold, tracking -0.02em (the tokens' display style) */
strong, b { font-weight: 600; }
h1 { font-size: clamp(2rem, 4.2vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.25rem); }
h3 { font-size: 1.15rem; }
h4 { font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; color: var(--deep); }
p { margin: 0 0 1em; }
.mono { font-family: var(--mono); font-size: .92em; font-weight: 400; letter-spacing: 0; font-variant-ligatures: none; }
h1 .mono, h2 .mono, h3 .mono, h4 .mono, strong .mono, b .mono, th .mono { font-weight: 500; }   /* DM Mono Medium beside SemiBold and ExtraBold text */
code, kbd, samp, pre { font-family: var(--mono); font-size: .92em; font-variant-ligatures: none; }
.nw { white-space: nowrap; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.eyebrow { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--deep); margin: 0 0 .8rem; }
.lede { font-size: clamp(1.05rem, 1.6vw, 1.25rem); color: var(--grey); max-width: 62ch; }
.sub { color: var(--grey); max-width: 70ch; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--navy); color: #fff; padding: 8px 12px; border-radius: 6px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }

/* buttons */
.btn { display: inline-flex; align-items: center; gap: .5rem; padding: .7rem 1.15rem; border-radius: var(--radius-s); font-weight: 500; text-decoration: none; border: 1.5px solid transparent; font-size: .95rem; line-height: 1.2; cursor: pointer; transition: background .15s, color .15s, border-color .15s; font-family: var(--font); }
.btn-primary { background: var(--cta); color: var(--cta-ink); border-color: var(--cta); font-weight: 600; box-shadow: 0 1px 0 rgba(16,44,55,.08); }
/* hover: Light Blue fill; the Meridian edge stays, so the button keeps a 3.1:1 outline on white */
.btn-primary:hover { background: var(--cta-hover); border-color: var(--cta); color: var(--cta-ink); }
/* focus: a Meridian ring would merge with the Meridian button, so it is navy and set off by 3px (white ring on dark backgrounds, below) */
.btn-primary:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.btn-secondary { background: var(--deep); color: #fff; border-color: var(--deep); }
.btn-secondary:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.btn-ghost { background: transparent; color: var(--navy); border-color: var(--line); }
.btn-ghost:hover { border-color: var(--deep); color: var(--deep); }
.btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.btn-ghost-light:hover { border-color: #fff; color: #fff; }
.btn-sm { padding: .45rem .8rem; font-size: .85rem; }
.cta-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }

/* header */
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 68px; }
.brand { display: inline-flex; align-items: center; flex: none; }

/* The REAP logo, in one place for the whole site (v1.10.2 to v1.10.4; Todd, Oct 13, 2026; D-172, D-174): the navy wordmark
   with the Light Blue foot on light backgrounds (the white header), the white wordmark with the Light Blue foot on navy or dark
   backgrounds (the footer and the dark sections). Pages carry only <span class="logo"> inside a link with an aria-label; the
   file it shows is chosen here by the background it sits on. To change a logo, change the two files below; to put a logo on a
   new dark field, give the field the class on-dark (or add it to the list). */
:root {
  --logo-on-light: url('assets/brand/logos/reap-navy-w-light-blue.svg');   /* navy #102C37, the foot Light Blue #88C3DD */
  --logo-on-dark: url('assets/brand/logos/reap-white-w-light-blue.svg');   /* white, the foot Light Blue #88C3DD */
  --logo: var(--logo-on-light);
}
.on-dark, .site-footer, .hero-dark, .page-hero, .section.dark, .cta-band, .banner { --logo: var(--logo-on-dark); }
.on-light { --logo: var(--logo-on-light); }
.logo { display: block; width: var(--logo-width, 104px); aspect-ratio: 314 / 77; background: var(--logo) left center / contain no-repeat;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.site-footer .logo { --logo-width: 120px; }
@media (forced-colors: active) { .logo { forced-color-adjust: none; } }
.primary { display: none; flex: 1; }
.primary ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; }
.primary li { position: relative; }
.nav-btn, .nav-link { background: none; border: 0; font: inherit; font-weight: 500; color: var(--navy); padding: .55rem .75rem; border-radius: 6px; display: inline-flex; align-items: center; gap: .35rem; text-decoration: none; cursor: pointer; }
.nav-btn:hover, .nav-link:hover, .nav-btn[aria-expanded="true"] { background: var(--pale); color: var(--navy); }
.menu { position: absolute; top: calc(100% + 8px); left: 0; min-width: 340px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .5rem; display: none; }
.has-menu.open .menu { display: block; }
.menu.wide { min-width: 640px; }
.menu.wide ul { grid-template-columns: 1fr 1fr; column-gap: .5rem; }
.menu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.menu a { display: block; padding: .6rem .7rem; border-radius: 8px; text-decoration: none; }
.menu a:hover, .menu a:focus-visible { background: var(--pale); }
.mi-t { display: block; font-weight: 500; color: var(--navy); }
.mi-d { display: block; font-size: .82rem; color: var(--grey); }
.header-cta { display: none; gap: .5rem; margin-left: auto; }
.menu-toggle { margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--line); background: #fff; border-radius: 8px; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; cursor: pointer; }
.menu-toggle span { width: 20px; height: 2px; background: var(--navy); display: block; transition: transform .2s, opacity .2s; }
.menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-nav { border-top: 1px solid var(--line); background: #fff; max-height: calc(100vh - 68px); overflow: auto; }
.mobile-nav .wrap { padding-block: 1rem 1.5rem; }
.mgroup { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.mgroup-title { display: block; font-weight: 600; color: var(--navy); text-decoration: none; padding: .3rem 0; }
.mgroup ul { list-style: none; margin: .25rem 0 0; padding: 0; display: grid; gap: .1rem; }
.mgroup ul a { display: block; padding: .4rem 0 .4rem .75rem; text-decoration: none; color: var(--ink); }
.mobile-cta { display: grid; gap: .5rem; margin-top: 1rem; }
@media (min-width: 1024px) { .primary { display: block; } .header-cta { display: flex; } .menu-toggle, .mobile-nav { display: none !important; } }

/* hero */
.hero { position: relative; overflow: hidden; background: var(--pale); padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.hero-dark { background: var(--navy) url('assets/hero-noc.jpg') center/cover no-repeat; color: #fff; }
.hero-dark::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,44,55,.96) 0%, rgba(16,44,55,.88) 55%, rgba(16,44,55,.62) 100%); }
.hero .wrap { position: relative; }
.hero-grid { display: grid; gap: 2.5rem; align-items: center; }
.hero-grid > *, .two-col > *, .calc-grid > *, .grid-2 > *, .cta-inner > *, .banner > *, .ftop > * { min-width: 0; }
.hero-dark h1, .hero-dark .eyebrow { color: #fff; }
.hero-dark .eyebrow { color: var(--sky); }
.hero-dark .lede { color: var(--pale); }
.hero-note { font-size: .85rem; color: var(--sky); margin-top: 1.25rem; }
.hero-note a { color: #fff; }
/* v1.7.1 first screen: a quiet play link in the button row (the 90-second explainer, an in-page anchor), one row of assurance facts,
   and the abridged Investigation Window framed as a product window */
.btn-play { display: inline-flex; align-items: center; gap: .6rem; padding: .7rem .25rem; color: #fff; font-weight: 500; font-size: .95rem; line-height: 1.2; text-decoration: none; border-radius: var(--radius-s); }
.btn-play .play-dot { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.45); color: #fff; flex: none; transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease; }
.btn-play .play-dot svg { margin-left: 2px; }
.btn-play:hover, .btn-play:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.btn-play:hover .play-dot, .btn-play:focus-visible .play-dot { background: var(--sky); border-color: var(--sky); color: var(--navy); transform: scale(1.06); }
.btn-play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.hero-facts { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .55rem 1.6rem; font-size: .85rem; line-height: 1.35; color: var(--pale); }
/* one column, in Observe · Reason · Act · Deploy order, every check mark on the same left edge (v1.7.3) */
@media (min-width: 960px) { .hero-grid { align-items: start; } .hero-copy { padding-top: .35rem; } }
.hero-media-note { margin: .9rem 0 0; display: flex; justify-content: flex-end; }
.play-narrow { display: contents; }
@media (min-width: 960px) { .hero-grid .play-narrow { display: none; } }
@media (max-width: 959px) { .hero-media-note { display: none; } }
.hero-facts li { display: inline-flex; align-items: center; gap: .45rem; }
.hero-facts .hf-check { width: 18px; height: 18px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; background: rgba(136,195,221,.18); color: var(--sky); }
.hero-media { position: relative; isolation: isolate; }
.hero-dark .hero-media::before { content: ""; position: absolute; inset: -12% -10%; z-index: -1; pointer-events: none; background: radial-gradient(55% 55% at 55% 45%, rgba(57,156,198,.30), rgba(57,156,198,0) 72%); }
.iw-hero { box-shadow: 0 30px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(136,195,221,.14); }
.iw-hero .iw-bar { display: flex; flex-wrap: nowrap; align-items: center; gap: .75rem; padding: .6rem .9rem; background: rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.1); }
.iw-dots { display: inline-flex; gap: 5px; flex: none; }
.iw-dots i { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.28); }
.iw-title { flex: 1 1 auto; min-width: 0; font-size: .78rem; font-weight: 500; letter-spacing: .01em; color: var(--sky); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iw-hero .iw-col { padding: .8rem 1rem .85rem; }
.iw-hero .iw-col p { font-size: .86rem; line-height: 1.5; }
.iw-hero .iw-evidence { padding: .8rem 1rem .9rem; }
.iw-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .35rem 1rem; margin: .75rem 0 0; font-size: .76rem; line-height: 1.45; color: var(--pale); }
.iw-foot a { color: #fff; font-weight: 600; text-decoration: none; white-space: nowrap; }
.iw-foot a:hover, .iw-foot a:focus-visible { text-decoration: underline; text-underline-offset: 3px; color: #fff; }
@media (max-width: 480px) { .iw-hero .iw-bar { flex-wrap: wrap; } .iw-hero .iw-bar .pill { margin-left: auto; } .iw-hero .iw-title { flex-basis: 100%; order: 3; white-space: normal; } }
/* the explainer band (home, after the trust strip): the two sentences beside the video */
.section.trust { padding-block: 1.9rem 2rem; }
.explainer-band { align-items: center; }
.explainer-band .prose .statement { max-width: 22ch; text-wrap: balance; }
.explainer-media .eyebrow { margin-bottom: .6rem; }
.explainer-media .video-fig video { border: 1px solid var(--line); box-shadow: 0 24px 56px rgba(16,44,55,.22); }
.explainer-media .transcript { background: var(--mist); }
/* the large play control over the explainer's poster (site.js starts playback; the native controls take over) */
.vwrap { position: relative; }
.vplay { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .55rem; height: 46px; padding: 0 1.15rem 0 .85rem; border-radius: 999px; border: 0; background: var(--blue); color: var(--navy); font: 600 .95rem/1 var(--font); cursor: pointer; box-shadow: 0 10px 28px rgba(0,0,0,.4); transition: background .15s ease, transform .15s ease; }
.vplay svg { width: 22px; height: 22px; }
.vplay:hover { background: var(--sky); transform: translateY(-1px); }
.vplay:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
@media (max-width: 480px) { .vplay { height: 40px; font-size: .88rem; left: .75rem; bottom: .75rem; } }
@media (min-width: 960px) { .hero-grid { grid-template-columns: 1.05fr .95fr; } }
.page-hero { background: var(--navy); color: #fff; padding-block: clamp(2.5rem, 5vw, 4rem); }
.page-hero h1, .page-hero .eyebrow { color: #fff; }
.page-hero .eyebrow { color: var(--sky); }
.page-hero .lede { color: var(--pale); }

/* sections */
.section { padding-block: clamp(3rem, 6vw, 5rem); }
.section.alt { background: var(--mist); }
.section.pale { background: var(--pale); }
.section.dark { background: var(--navy); color: #fff; }
.section.dark h2, .section.dark h3, .section.dark h4 { color: #fff; }
.section.dark .eyebrow { color: var(--sky); }
.section.dark .sub, .section.dark p { color: var(--pale); }
.section.dark .card { background: var(--navy-2); border-color: transparent; }
.section.dark .card h3 { color: #fff; }
.section.dark .card p, .section.dark .card-meta, .section.dark .card ul, .section.dark .card li { color: var(--pale); }
.section.dark .card-icon { background: var(--deep); color: var(--sky); }
.section.dark a { color: var(--sky); }
.sec-head { max-width: 760px; margin-bottom: 2rem; }
.sec-head h2 { margin-bottom: .5rem; }
.two-col { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .two-col { grid-template-columns: 1fr 1fr; } .two-col.narrow-first { grid-template-columns: .8fr 1.2fr; } }
.prose { max-width: 72ch; }
.prose ul { padding-left: 1.2rem; }
.prose li { margin-bottom: .4rem; }

/* cards */
.cards { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .cards.cols-2, .cards.cols-3, .cards.cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .cards.cols-3 { grid-template-columns: repeat(3, 1fr); } .cards.cols-4 { grid-template-columns: repeat(4, 1fr); } }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.35rem; display: flex; flex-direction: column; gap: .5rem; }
/* interactive surfaces: every card, tile and boxed row shares one treatment, governed in the block "Interactive surfaces"
   near the end of this file (v1.13.0): default -> hover -> keyboard focus, 220 ms ease, a 2 px lift; reduced motion keeps
   the highlight and drops the movement. Add a new card class to that block's list, never a one-off hover rule here. */
a.card { text-decoration: none; color: inherit; }
a.card:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.card h3 { margin: .25rem 0 0; }
.card p { margin: 0; color: var(--grey); }
.card p + p { margin-top: .5rem; }
.card ul { margin: .25rem 0 0; padding-left: 1.1rem; color: var(--grey); }
.card li { margin-bottom: .3rem; }
.card-icon { width: 42px; height: 42px; border-radius: 50%; background: var(--pale); color: var(--deep); display: inline-flex; align-items: center; justify-content: center; }
.card-meta { font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); margin: 0; }
.card-link { margin-top: auto; padding-top: .5rem; font-weight: 500; text-decoration: none; }
.card.featured { background: var(--pale); border-color: var(--soft); }

/* stats */
.stats { display: grid; gap: 1rem; }
@media (min-width: 640px) { .stats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .stats { grid-template-columns: repeat(var(--stat-cols, 3), 1fr); } }
.stat { padding: 1.25rem 1.35rem; border-radius: var(--radius); background: var(--mist); border: 1px solid var(--line); display: flex; flex-direction: column; }
.section.dark .stat { background: var(--navy-2); border-color: transparent; }
.stat-big { font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; color: var(--deep); line-height: 1.1; }
.section.dark .stat-big { color: var(--sky); }
.stat-label { color: var(--ink); margin-top: .35rem; }
.section.dark .stat-label { color: #fff; }
.stat-src { font-size: .78rem; color: var(--grey); margin-top: auto; padding-top: .5rem; }
.section.dark .stat-src { color: var(--sky); }

/* loop */
.loop { display: grid; gap: 1rem; }
@media (min-width: 900px) { .loop { grid-template-columns: repeat(3, 1fr); } }
.loop-step { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.35rem; }
.loop-step h3 { margin-top: .75rem; font-size: 1.35rem; }
.loop-step p { color: var(--grey); margin: 0; }

/* investigation window */
.iw { margin: 0; min-width: 0; max-width: 100%; background: var(--navy-2); color: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; border: 1px solid rgba(255,255,255,.08); }
.iw figcaption { padding: .8rem 1rem; font-size: .82rem; color: var(--sky); border-bottom: 1px solid rgba(255,255,255,.08); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.iw-grid { display: grid; gap: .1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .iw-grid { grid-template-columns: 1fr 1fr; } }
.iw-col { padding: .9rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.iw-col h4, .iw-col .iw-h { color: var(--sky); margin-bottom: .35rem; font-size: .72rem; }
.iw-col p { margin: 0; font-size: .9rem; color: #fff; }
.iw-evidence { padding: .9rem 1rem 1rem; }
.iw-evidence h4, .iw-evidence .iw-h { color: var(--sky); font-size: .72rem; margin-bottom: .4rem; }
.iw-grid > * { min-width: 0; }
.ev { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; font-size: .76rem; line-height: 1.5; color: var(--pale); }
.ev li { display: flex; flex-wrap: wrap; gap: .15rem .6rem; align-items: baseline; }
.ev-t { color: var(--sky); flex: 0 0 auto; }
.ev-c { color: #fff; }
.ev-r { color: var(--pale); opacity: .9; }
.pill { display: inline-block; white-space: nowrap; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: .15rem .5rem; border-radius: 999px; }
.pill-amber { background: var(--status-warning-subtle); color: var(--status-warning-ink); }
.pill-green { background: var(--status-healthy-subtle); color: var(--status-healthy-ink); }
.pill-red { background: var(--status-alert-subtle); color: var(--status-alert-ink); }
.pill-blue { background: var(--pale); color: var(--deep); }
.pill-grey { background: var(--gray-50); color: var(--grey); }

/* tables */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); }
.tbl { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tbl th, .tbl td { text-align: left; padding: .75rem .85rem; vertical-align: top; border-bottom: 1px solid var(--line); }
.tbl th { background: var(--navy); color: #fff; font-weight: 600; white-space: nowrap; }
.tbl tbody tr:nth-child(even) { background: var(--mist); }
.tbl tbody tr:last-child td { border-bottom: 0; }
.tbl td:first-child { font-weight: 500; color: var(--navy); }
@media (max-width: 760px) {
  .table-wrap { position: relative; }
  .table-wrap::after { content: "Swipe to see more →"; display: block; font-size: .75rem; color: var(--grey); padding: .4rem .85rem; border-top: 1px solid var(--line); background: var(--mist); }
  .tbl { font-size: .86rem; min-width: 560px; }
  .tbl th:first-child, .tbl td:first-child { position: sticky; left: 0; z-index: 1; background: #fff; box-shadow: 1px 0 0 var(--line); }
  .tbl th:first-child { background: var(--navy); }
  .tbl tbody tr:nth-child(even) td:first-child { background: var(--mist); }
}

/* faq */
.faq { display: grid; gap: .6rem; max-width: 820px; }
.faq-item { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-s); padding: 0 1.1rem; }
.faq-item summary { cursor: pointer; padding: 1rem 0; font-weight: 500; color: var(--navy); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; color: var(--deep); font-weight: 600; }
.faq-item[open] summary::after { content: "–"; }
.faq-a { padding: 0 0 1rem; color: var(--grey); }

/* chips */
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: .35rem .8rem; font-size: .88rem; color: var(--navy); }
.section.dark .chip { background: var(--navy-2); border-color: transparent; color: #fff; }

/* cta band */
.cta-band { background: var(--deep); color: #fff; padding-block: clamp(2.5rem, 5vw, 4rem); }
.cta-inner { display: grid; gap: 1.5rem; align-items: center; }
@media (min-width: 900px) { .cta-inner { grid-template-columns: 1.4fr 1fr; } .cta-inner .cta-row { justify-content: flex-end; margin: 0; } }
.cta-band h2, .cta-band p { color: #fff; }
/* on deep teal, Meridian alone measures 2.3:1, so the button carries a white edge (7.2:1); hover turns it white */
.cta-band .btn-primary { background: var(--cta); color: var(--cta-ink); border-color: #fff; }
.cta-band .btn-primary:hover { background: #fff; border-color: #fff; color: var(--navy); }
/* focus rings on the band are white: the default Meridian ring measures 2.3:1 on deep teal */
.cta-band :focus-visible { outline-color: #fff; }
/* primary buttons on navy, the navy panel and deep teal: a white focus ring */
.hero-dark .btn-primary:focus-visible, .page-hero .btn-primary:focus-visible, .section.dark .btn-primary:focus-visible, .banner .btn-primary:focus-visible, .cta-band .btn-primary:focus-visible, .site-footer .btn-primary:focus-visible { outline-color: #fff; }

/* banners */
.banner { background: var(--navy-2); color: #fff; border-radius: var(--radius); padding: 1.5rem; display: grid; gap: 1rem; align-items: center; }
@media (min-width: 900px) { .banner { grid-template-columns: 1fr auto; } }
.banner h3 { color: #fff; margin: 0 0 .25rem; }
.banner p { margin: 0; color: var(--pale); }
.banner .eyebrow { color: var(--sky); margin-bottom: .4rem; }

/* quotes / statement */
.statement { font-size: clamp(1.4rem, 3vw, 2.2rem); font-weight: 600; color: var(--navy); line-height: 1.25; letter-spacing: -.01em; max-width: 22ch; margin: 0; }
.statement + .statement { margin-top: 1rem; }
.statement .em { color: var(--blue); }   /* v1.7.2: the closing word of a display statement in Meridian Blue */
.section.dark .statement { color: #fff; }

/* forms */
.form { display: grid; gap: .9rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; }
.form-row { display: grid; gap: .9rem; }
@media (min-width: 640px) { .form-row { grid-template-columns: 1fr 1fr; } }
label { display: block; font-size: .88rem; font-weight: 500; color: var(--navy); margin-bottom: .3rem; }
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=url], select, textarea { width: 100%; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .95rem; background: #fff; color: var(--ink); }
textarea { min-height: 110px; resize: vertical; }
.form small, .hint { color: var(--grey); font-size: .82rem; }
.form-status { display: none; padding: .8rem 1rem; border-radius: 8px; background: var(--status-healthy-subtle); color: var(--status-healthy-ink); font-weight: 500; }
.form-status.show { display: block; }
.form-status.warn { background: var(--amber-bg); color: var(--status-warning-ink); }
.form-status.info { background: var(--pale); color: var(--navy); }
.form-status a { color: inherit; }
.form-status .btn { margin-left: .35rem; vertical-align: middle; }
.err { color: var(--bad); font-size: .82rem; margin: .3rem 0 0; }
[aria-invalid="true"] { border-color: var(--bad) !important; box-shadow: 0 0 0 3px rgba(214,0,75,.12); }
input[type=range] { accent-color: var(--deep); }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* team */
.team { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .team { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .team { grid-template-columns: repeat(3, 1fr); } }
.team.flow, .cards.flow { display: flex; flex-wrap: wrap; justify-content: center; }
.team.flow > *, .cards.flow > * { flex: 1 1 280px; max-width: 100%; }
@media (min-width: 640px) { .team.flow > *, .cards.flow > * { max-width: calc(50% - .55rem); } }
@media (min-width: 1000px) { .team.flow > *, .cards.flow > * { max-width: calc(33.333% - .74rem); } }
.person { display: grid; grid-template-columns: 84px 1fr; gap: 1rem; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem; }
.person img, .person .avatar { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.person .avatar { background: var(--deep); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 1.4rem; }
.person h3 { margin: 0; font-size: 1.05rem; }
.person .role { color: var(--deep); font-weight: 500; font-size: .9rem; margin: .15rem 0 .4rem; }
.person p { margin: 0; font-size: .9rem; color: var(--grey); }

/* timeline */
.timeline { display: grid; gap: .75rem; }
.tl-item { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; align-items: start; }
.tl-wk { width: 64px; height: 44px; border-radius: 8px; background: var(--deep); color: #fff; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.tl-item.hl .tl-wk { background: var(--blue); color: var(--navy); }
.tl-body h3 { margin: .2rem 0 .2rem; font-size: 1rem; }
.tl-body p { margin: 0; color: var(--grey); font-size: .93rem; }

/* insights list */
.posts { display: grid; gap: 1rem; }
@media (min-width: 900px) { .posts { grid-template-columns: repeat(2, 1fr); } }
.post { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; background: #fff; display: flex; flex-direction: column; }
.post .card-link { margin-top: auto; }
.post .meta { font-size: .8rem; color: var(--grey); margin-bottom: .4rem; }
.post h3, .post h2 { font-size: 1.1rem; }   /* v1.14.0: the blog index and the archives use h2 under their h1 */
.post p { color: var(--grey); }

/* footer */
.site-footer { background: var(--navy); color: var(--pale); padding-block: 3rem 2rem; margin-top: 0; }
.ftop { display: grid; gap: 2rem; }
@media (min-width: 960px) { .ftop { grid-template-columns: 1.2fr 3fr; } }
.fbrand > a { display: inline-block; margin-bottom: 1rem; }
.fbrand p { max-width: 36ch; color: var(--pale); }
.fsmall { font-size: .8rem; color: var(--sky); }
.fcols { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px) { .fcols { grid-template-columns: repeat(5, 1fr); } }
.fcol h3 { color: #fff; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .6rem; }
.fcol ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.fcol a { color: var(--pale); text-decoration: none; font-size: .92rem; }
.fcol a:hover { color: #fff; text-decoration: underline; }
.fbottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2rem; padding-top: 1.25rem; font-size: .85rem; }
.fbottom p { margin: 0 0 .4rem; color: var(--pale); }
/* on the navy footer (#102c37): --pale 12.9:1 for links (underlined), hsl(339 100% 82%) 7.4:1 for the subscribe error; the default link and error colors measure 2.0:1 and 2.9:1 there */
.fbottom a { color: var(--pale); }
.fbottom a:hover, .fbottom a:focus-visible { color: #fff; }
.site-footer .err { color: hsl(339 100% 82%); }

/* misc */
.grid-2 { display: grid; gap: 1.1rem; }
@media (min-width: 800px) { .grid-2 { grid-template-columns: 1fr 1fr; } }
.figure { margin: 0; }
.figure img { border-radius: var(--radius); border: 1px solid var(--line); }
.figure.wide { width: 100%; }
.figure a { display: block; }
.cols-2-list { columns: 2; column-gap: 2.5rem; padding-left: 1.2rem; }
.cols-2-list li { break-inside: avoid; margin-bottom: .5rem; }
@media (max-width: 800px) { .cols-2-list { columns: 1; } }
.figure figcaption { font-size: .85rem; color: var(--grey); margin-top: .5rem; }
.note { background: var(--pale); border-radius: var(--radius-s); padding: 1rem 1.1rem; font-size: .92rem; color: var(--ink); }
.note strong { color: var(--navy); }
.section.dark .note { background: var(--navy-2); color: var(--pale); }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; font-size: .95rem; }
.kv dt { font-weight: 600; color: var(--navy); }
.kv dd { margin: 0; color: var(--grey); }
.badge-row { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; font-size: .9rem; color: var(--grey); }
.badge-row strong { color: var(--navy); }
.section.dark .badge-row, .section.dark .badge-row strong { color: var(--pale); }
.section.dark .badge-row strong { color: #fff; }
.anchor-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
.anchor-nav a { font-size: .85rem; padding: .35rem .7rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--navy); background: #fff; }
.anchor-nav a:hover { border-color: var(--deep); }
.calc-grid { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 960px) { .calc-grid { grid-template-columns: 400px 1fr; } }
.tiles { display: grid; grid-template-columns: 1fr; gap: .8rem; }
@media (min-width: 480px) { .tiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .tiles { grid-template-columns: repeat(3, 1fr); } }
.tile { background: var(--pale); border-radius: 10px; padding: .8rem .9rem; }
.tile .k { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); font-weight: 600; min-height: 2.3em; }
.tile { display: flex; flex-direction: column; }
.tile .v { font-size: clamp(1.15rem, 1.6vw, 1.45rem); font-weight: 600; color: var(--navy); margin: .2rem 0; line-height: 1.15; white-space: nowrap; }
.tile .s { margin-top: auto; }
.tile .s { font-size: .78rem; color: var(--grey); }
.bar { display: grid; grid-template-columns: minmax(120px, 160px) 1fr auto; gap: .6rem; align-items: center; font-size: .85rem; margin: .5rem 0; }
.bar-v, .bar > div:last-child { white-space: nowrap; }
@media (max-width: 560px) { .bar { grid-template-columns: 1fr auto; } .bar .t { grid-column: 1 / -1; } }
.bar .t { height: 12px; background: var(--line); border-radius: 6px; overflow: hidden; }
.bar .f { height: 100%; background: var(--blue); border-radius: 6px; }
.bar .f.h { background: var(--deep); }
.toggle { display: inline-flex; align-self: flex-start; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: .6rem; }
.toggle button { border: 0; background: #fff; padding: .5rem .9rem; font: inherit; cursor: pointer; color: var(--grey); }
.toggle button.on { background: var(--navy); color: #fff; }
.range-label strong { color: var(--navy); }
.q { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; background: #fff; }
.q h3 { font-size: 1rem; margin-bottom: .6rem; }
.q .opts { display: grid; gap: .4rem; }
.q .opts label { display: grid; grid-template-columns: 20px 1fr; gap: .6rem; align-items: start; font-weight: 400; font-size: .9rem; color: var(--ink); padding: .45rem .55rem; border-radius: 8px; border: 1px solid transparent; cursor: pointer; }
.q .opts label:hover { background: var(--mist); }
.q .opts input { margin-top: .25rem; }
.q .opts label.sel { background: var(--pale); border-color: var(--soft); }
.progress { height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; margin: .5rem 0 1rem; }
.progress > div { height: 100%; background: var(--deep); width: 0; transition: width .2s; }
.dim-bars { display: grid; gap: .5rem; }
.result-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; }
.result-card h3 { margin-top: 0; }
.stage { font-size: 2rem; font-weight: 600; color: var(--deep); line-height: 1; }

/* architecture diagram (HTML) */
.arch { display: grid; gap: .75rem; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; font-size: .82rem; }
@media (min-width: 900px) { .arch { grid-template-columns: 150px 1fr 190px; } .arch-foot { grid-column: 1 / -1; } }
.arch-side { display: grid; gap: .4rem; align-content: start; background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius-s); padding: .75rem; }
.arch-side h3 { margin: 0 0 .2rem; font-size: .7rem; }
.arch-side span { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: .35rem .5rem; color: var(--ink); }
.arch-core { display: grid; gap: .5rem; }
.arch-row { display: grid; grid-template-columns: 1fr; gap: .5rem; border: 1px solid var(--line); border-radius: var(--radius-s); padding: .6rem; background: #fff; }
@media (min-width: 640px) { .arch-row { grid-template-columns: 170px 1fr; } }
.arch-l strong { display: block; color: var(--navy); font-size: .88rem; }
.arch-l span { color: var(--grey); font-size: .76rem; }
.arch-chips { display: flex; flex-wrap: wrap; gap: .35rem; align-content: start; }
.arch-chips span { background: var(--pale); color: var(--navy); border-radius: 6px; padding: .3rem .5rem; }
.arch-row:nth-child(2) .arch-chips span { background: var(--meridian-50); }
.arch-row:nth-child(3) .arch-chips span { background: var(--meridian-100); }
.arch-row:nth-child(4) .arch-chips span { background: var(--gray-50); }
.arch-row:nth-child(5) .arch-chips span { background: var(--meridian-10); }
.arch-row:nth-child(6) .arch-chips span { background: var(--mist); }
.arch-foot { border: 1px dashed var(--line); border-radius: var(--radius-s); padding: .6rem .8rem; color: var(--grey); text-align: center; }
.arch-foot strong { color: var(--navy); margin-right: .5rem; }

/* glossary */
.gmodel { display: grid; gap: .6rem; }
.gm-row { display: grid; grid-template-columns: 1fr; gap: .6rem; align-items: stretch; }
@media (min-width: 760px) { .gm-row { grid-template-columns: 1fr auto 1fr auto 1fr; } .gm-row.gm-three { grid-template-columns: 1fr 1fr 1fr; } }
.gm-box { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-s); padding: .8rem 1rem; }
.gm-box strong { display: block; color: var(--navy); }
.gm-box span { font-size: .85rem; color: var(--grey); }
.gm-box.door { background: var(--pale); border-color: var(--soft); }
.gm-arrow { display: none; align-self: center; color: var(--blue); font-size: 1.4rem; font-weight: 600; }
@media (min-width: 760px) { .gm-arrow { display: block; } }
.gm-bar { background: var(--navy); color: var(--pale); border-radius: var(--radius-s); padding: .7rem 1rem; font-size: .9rem; }
.gm-bar strong { color: #fff; margin-right: .5rem; }
.gm-bar.light { background: var(--deep); }
.gcat { position: relative; }
.gcount { display: inline-block; min-width: 2.2em; padding: .1rem .5rem; border-radius: 999px; background: var(--pale); color: var(--deep); font-size: .8rem; font-weight: 600; text-align: center; margin-left: .4rem; vertical-align: middle; }
.gcat .gcount { margin: 0 0 .4rem; align-self: flex-start; }
.gtools { position: sticky; top: 72px; z-index: 5; background: var(--mist); padding: .75rem 0 .5rem; border-bottom: 1px solid var(--line); margin-bottom: 1.5rem; }
.gsearch { display: block; margin-bottom: .6rem; }
.gsearch span { display: block; font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); margin-bottom: .3rem; }
.gsearch input { width: 100%; max-width: 560px; padding: .7rem .9rem; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 1rem; background: #fff; }
.gletters { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .5rem; }
.gletter { width: 30px; height: 30px; border: 1px solid var(--line); background: #fff; border-radius: 6px; font: inherit; font-size: .82rem; font-weight: 600; color: var(--navy); cursor: pointer; }
.gletter:hover { border-color: var(--deep); color: var(--deep); }
.gfilters { display: flex; flex-wrap: wrap; gap: .35rem; }
.gfilter { font: inherit; font-size: .82rem; padding: .3rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--navy); cursor: pointer; }
.gfilter.on { background: var(--navy); color: #fff; border-color: var(--navy); }
.gsec { padding-top: 1.5rem; }
.gsec-head h2 { margin-bottom: .2rem; }
.glist { display: grid; gap: .8rem; }
@media (min-width: 900px) { .glist { grid-template-columns: 1fr 1fr; } }
.gterm { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.2rem; scroll-margin-top: 190px; }
.gterm.flash { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(57,156,198,.25); }
.ghead { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem .8rem; margin-bottom: .4rem; }
.ghead h3 { margin: 0; font-size: 1.05rem; }
.gslug { font-family: var(--mono); font-size: .72rem; color: var(--grey); background: var(--mist); border-radius: 4px; padding: .1rem .35rem; }
.gdef { margin: 0 0 .5rem; color: var(--ink); }
.ginreap { margin: 0 0 .5rem; font-size: .92rem; color: var(--grey); }
.glabel { display: inline-block; font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); margin-right: .4rem; }
.grel { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; margin-top: .3rem; }
.grel .chip { font-size: .78rem; padding: .2rem .6rem; text-decoration: none; }
.grel .chip:hover { border-color: var(--deep); color: var(--deep); }
.gsrc { margin: .5rem 0 0; font-size: .78rem; color: var(--grey); font-style: italic; }
/* scenarios */
.scen { display: grid; grid-template-columns: 1fr; gap: .6rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; margin-bottom: 1rem; }
@media (min-width: 760px) { .scen { grid-template-columns: 56px 1fr; gap: 1.2rem; } }
.scen-n { font-family: var(--mono); font-size: 1.4rem; font-weight: 500; color: var(--blue); line-height: 1; }
.scen-body h3 { margin: 0 0 .8rem; font-size: 1.2rem; }
.scen-grid { display: grid; gap: .9rem 1.5rem; }
@media (min-width: 900px) { .scen-grid { grid-template-columns: 1fr 1fr; } }
.scen-grid h4 { margin-bottom: .3rem; }
.scen-grid p { margin: 0; color: var(--grey); font-size: .95rem; }
.scen-reap { background: var(--pale); border-radius: var(--radius-s); padding: .8rem .9rem; }
.scen-reap p { color: var(--ink); }
.scen-reap .pill { margin-left: .4rem; vertical-align: middle; }
.scen-q { border-left: 3px solid var(--blue); padding-left: .9rem; }
.scen-q p { color: var(--navy); font-weight: 500; }
.checklist { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .5rem; max-width: 820px; }
.checklist label { display: grid; grid-template-columns: 22px 1fr; gap: .7rem; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-s); padding: .7rem .9rem; font-weight: 400; font-size: .95rem; color: var(--ink); cursor: pointer; }
.checklist input { margin-top: .25rem; accent-color: var(--deep); }
/* press kit */
/* logo pack download line (1.6.1) */
.logo-pack { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.1rem; }

/* documentation */

.docs-nav a:hover { background: var(--mist); }

.docs-article { min-width: 0; max-width: 880px; }

.tbc { display: inline-block; background: var(--amber-bg); color: var(--status-warning-ink); border: 1px dashed var(--status-warning); border-radius: 4px; padding: 0 .4rem; font-size: .8em; font-weight: 600; white-space: nowrap; }

.docs-toc a:hover { color: var(--navy); }

.pill-green, .pill-blue { vertical-align: middle; }

/* ---------------------------------------------------------------- v1.3 additions */
/* utilities (replace inline styles) */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.mt-025 { margin-top: .25rem !important; } .mt-05 { margin-top: .5rem !important; } .mt-06 { margin-top: .6rem !important; } .mt-075 { margin-top: .75rem !important; } .mt-08 { margin-top: .8rem !important; }
.mt-1 { margin-top: 1rem !important; } .mt-125 { margin-top: 1.25rem !important; } .mt-15 { margin-top: 1.5rem !important; } .mt-2 { margin-top: 2rem !important; }
.mb-02 { margin-bottom: .2rem !important; } .mb-15 { margin-bottom: 1.5rem !important; }
.w-full { width: 100%; } .max-none { max-width: none; } .stack { display: grid; gap: .9rem; }
.list-note { margin: .5rem 0 0; padding-left: 1.2rem; color: var(--grey); }
.form-h { font-size: 1.4rem; }
.logo-preview { max-height: 90px; width: auto; }
.about-stats { --stat-cols: 2; }
@media (min-width: 1000px) { .about-stats { grid-template-columns: repeat(2, 1fr); } }
.h1-sub { display: block; font-size: .5em; font-weight: 500; color: var(--sky); margin-top: .5rem; letter-spacing: 0; }
.topics { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.topic { font-size: .9rem; padding: .45rem .85rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--navy); background: #fff; }
.topic:hover { border-color: var(--deep); }
.topic.on { background: var(--navy); color: #fff; border-color: var(--navy); }
@media (min-width: 900px) { .two-col.narrow-last { grid-template-columns: 1.25fr .75fr; } }

/* external references */
a.ext { text-decoration-style: dotted; }
a.ext:hover { text-decoration-style: solid; }
.section.dark a.ext, .hero-dark a.ext, .page-hero a.ext, .cta-band a.ext { color: var(--sky); }
.page-hero a.ext:hover, .hero-dark a.ext:hover { color: #fff; }

/* people */
.person > div { min-width: 0; }
.li-link { display: inline-flex; align-items: center; gap: .35rem; margin-top: .55rem; font-size: .85rem; font-weight: 600; color: var(--deep); text-decoration: none; }
.li-link:hover { color: var(--navy); text-decoration: underline; }
.li-link svg { flex: none; }

/* footer: social + subscribe */
.social { list-style: none; display: flex; gap: .6rem; padding: 0; margin: 1rem 0 0; }
.social a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; transition: background .15s, color .15s; }
.social a:hover, .social a:focus-visible { background: var(--cta); color: var(--cta-ink); }
.social a:focus-visible { outline-color: #fff; }
.fsub { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2rem; padding-top: 1.5rem; }
.subscribe { max-width: 560px; }
.subscribe h3 { color: #fff; margin: 0 0 .25rem; font-size: 1.05rem; }
.subscribe .fsmall { margin: 0 0 .75rem; }
.sub-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.sub-row input { flex: 1 1 220px; padding: .65rem .8rem; border-radius: var(--radius-s); border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.06); color: #fff; font: inherit; }
.sub-row input::placeholder { color: rgba(255,255,255,.6); }
.sub-row input:focus-visible { outline-color: var(--cta); }
.subscribe .form-status.show { margin-top: .6rem; }
.subscribe .form-status.ok { background: rgba(255,255,255,.1); color: #fff; }
.subscribe .form-status.warn { background: var(--amber-bg); color: var(--status-warning-ink); }
.subscribe .form-status a { color: inherit; }

/* gated downloads */
.gate { display: grid; gap: 2rem; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2.25rem); scroll-margin-top: 96px; }
@media (min-width: 900px) { .gate { grid-template-columns: .9fr 1.1fr; } }
.gate h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.gate-meta { font-size: .88rem; color: var(--grey); }
.gate-points { margin: 1rem 0 0; padding-left: 1.2rem; color: var(--grey); font-size: .92rem; }
.gate-points li { margin-bottom: .35rem; }
.consent { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; font-size: .88rem; color: var(--grey); margin-top: .25rem; }
.consent input { margin-top: .25rem; width: 18px; height: 18px; }
.consent .err { grid-column: 2; }
.gate-form .cta-row { margin-top: .75rem; }
.dl-locked { display: inline-flex; align-items: center; gap: .45rem; font-size: .85rem; color: var(--grey); }

/* NDA page */
.nda-wrap { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1000px) { .nda-wrap { grid-template-columns: 1.3fr .9fr; } .nda-sign { position: sticky; top: 92px; } }
.nda-doc { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2.5rem); }
.nda-doc h2 { font-size: 1.05rem; margin: 1.6rem 0 .4rem; }
.nda-doc h2:first-of-type { margin-top: 0; }
.nda-doc p, .nda-doc li { font-size: .95rem; color: var(--ink); }
.nda-doc ol { padding-left: 1.2rem; }
.nda-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .82rem; color: var(--grey); margin-bottom: 1rem; }
.nda-sign { background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; }
.nda-sign h2 { font-size: 1.2rem; }
.sig-preview { font-family: var(--font); font-style: italic; font-size: 1.6rem; color: var(--navy); min-height: 2.4rem; border-bottom: 1px solid var(--line); padding: .2rem .1rem; }
.nda-blocks { display: grid; gap: 1rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .nda-blocks { grid-template-columns: 1fr 1fr; } }
.nda-block { border: 1px solid var(--line); border-radius: var(--radius-s); padding: .9rem 1rem; font-size: .9rem; }
.nda-block dt { font-weight: 600; color: var(--navy); margin-top: .5rem; } .nda-block dd { margin: 0; color: var(--grey); }
.nda-done { background: var(--status-healthy-subtle); border: 1px solid var(--status-healthy-line); border-radius: var(--radius-s); padding: 1rem 1.1rem; margin-top: 1rem; }
.nda-done dl { margin: .5rem 0 0; }
.print-only { display: none; }
@media print { .site-header, .site-footer, .nda-sign, .page-hero .cta-row, .no-print { display: none !important; } .print-only { display: block; } .nda-doc { border: 0; padding: 0; } }

/* patents page */
.pat-tools { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 1.25rem; }
.pat-tools input[type=search] { flex: 1 1 260px; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-s); font: inherit; }
.pat-tools .seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; gap: 2px; background: #fff; }
.pat-tools .seg button { border: 0; background: transparent; padding: .4rem .8rem; border-radius: 999px; font: inherit; font-size: .85rem; cursor: pointer; color: var(--navy); }
.pat-tools .seg button[aria-pressed=true] { background: var(--navy); color: #fff; }
.pat-count { font-size: .85rem; color: var(--grey); margin-left: auto; }
.pat-list { display: grid; gap: .8rem; }
.pat { display: grid; grid-template-columns: 1fr; gap: .25rem .75rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-s); padding: .9rem 1rem; }
@media (min-width: 760px) { .pat { grid-template-columns: 150px 1fr auto; align-items: start; } }
.pat .num { font-family: var(--mono); font-size: .88rem; color: var(--deep); }
.pat h3 { font-size: 1rem; margin: 0 0 .2rem; }
.pat .meta { font-size: .85rem; color: var(--grey); margin: 0; }
.pat .who { font-size: .82rem; color: var(--navy); margin: .25rem 0 0; }
.pat .who span { display: inline-block; background: var(--pale); border-radius: 999px; padding: .1rem .55rem; margin: .15rem .25rem 0 0; }
.pat .links { font-size: .85rem; white-space: nowrap; }
.pat-summary { display: grid; gap: 1rem; }
@media (min-width: 900px) { .pat-summary { grid-template-columns: repeat(4, 1fr); } }
.inventor-links li { margin-bottom: .35rem; }

/* trust center */
.status-key { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .85rem; color: var(--grey); margin: 0 0 1rem; }
.pill-nav { background: var(--navy); color: #fff; }
.tc-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 1.5rem; }
.tc-nav a { font-size: .85rem; padding: .35rem .75rem; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--navy); background: #fff; }
.tc-nav a:hover { border-color: var(--deep); }
.risk-grid { display: grid; gap: 1rem; }
@media (min-width: 700px) { .risk-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .risk-grid { grid-template-columns: repeat(3, 1fr); } }
.ctrl { display: grid; gap: 1rem; }
@media (min-width: 900px) { .ctrl { grid-template-columns: repeat(2, 1fr); } }
.ctrl .card ul { padding-left: 1.1rem; margin: .5rem 0 0; color: var(--grey); font-size: .92rem; }
.ctrl .card li { margin-bottom: .3rem; }
.ctrl .card .map { font-size: .78rem; color: var(--deep); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; margin-top: .7rem; }
.docroom td:last-child { white-space: nowrap; }
.metric-row { display: grid; gap: 1rem; }
@media (min-width: 700px) { .metric-row { grid-template-columns: repeat(4, 1fr); } }

/* ============================================================ v1.4 — enterprise polish */
/* breadcrumbs */
.crumbbar { background: var(--white); border-bottom: 1px solid var(--line); }
.crumbs ol { list-style: none; margin: 0; padding: .55rem 0; display: flex; flex-wrap: wrap; gap: .25rem .4rem; font-size: .82rem; color: var(--grey); }
.crumbs li + li::before { content: "›"; color: var(--sky); margin-right: .4rem; }
.crumbs a { color: var(--deep); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs [aria-current="page"] { color: var(--navy); font-weight: 600; }
/* header search + sign-in */
.search-btn { appearance: none; border: 1px solid var(--line); background: var(--white); color: var(--navy); width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; cursor: pointer; margin-right: .25rem; transition: border-color .15s, color .15s; }
.search-btn:hover { border-color: var(--blue); color: var(--blue); }
.header-cta .signin { font-weight: 600; color: var(--navy); text-decoration: none; margin-right: .5rem; font-size: .95rem; }
.header-cta .signin:hover { color: var(--blue); }
.search-overlay { position: fixed; inset: 0; background: rgba(16, 44, 55, .55); z-index: 200; padding: 8vh var(--gutter) 0; backdrop-filter: blur(2px); }
.search-panel { max-width: 720px; margin: 0 auto; background: var(--white); border-radius: 14px; box-shadow: var(--shadow); overflow: hidden; }
.search-head { display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; border-bottom: 1px solid var(--line); color: var(--grey); }
.search-head input { flex: 1; border: 0; outline: 0; font: inherit; font-size: 1.05rem; color: var(--ink); background: transparent; min-width: 0; }
.search-close { appearance: none; border: 1px solid var(--line); background: var(--mist); color: var(--grey); font: inherit; font-size: .75rem; padding: .2rem .5rem; border-radius: 6px; cursor: pointer; }
.search-hint { font-size: .78rem; color: var(--grey); padding: .45rem .9rem; border-bottom: 1px solid var(--line); background: var(--mist); }
.search-hint kbd { font: inherit; font-size: .72rem; border: 1px solid var(--line); border-radius: 4px; padding: 0 .3rem; margin: 0 .1rem; background: var(--white); }
ul.search-results { list-style: none; margin: 0; padding: .35rem; max-height: 60vh; overflow: auto; }
ul.search-results li { padding: .6rem .7rem; border-radius: 8px; cursor: pointer; }
ul.search-results li[aria-selected="true"], ul.search-results li:hover { background: var(--pale); }
ul.search-results .sr-t { display: flex; justify-content: space-between; gap: .6rem; font-weight: 600; color: var(--navy); }
ul.search-results .sr-s { font-size: .74rem; color: var(--deep); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
ul.search-results .sr-d { font-size: .86rem; color: var(--grey); margin-top: .15rem; }
ul.search-results .sr-d mark, ul.search-results .sr-t mark { background: #fff1c9; color: inherit; border-radius: 2px; padding: 0 1px; }
.search-empty { padding: 1rem .8rem; color: var(--grey); font-size: .92rem; }
/* consent banner */
.consent-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 190; display: flex; justify-content: flex-start; pointer-events: none; }
.consent-body { pointer-events: auto; max-width: 560px; background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); padding: 1rem 1.1rem; font-size: .92rem; }
.consent-body p { margin: 0 0 .7rem; color: var(--ink); }
.consent-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.consent-actions .btn { padding: .5rem .9rem; font-size: .9rem; }
.linklike { appearance: none; background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; text-underline-offset: 2px; }
.site-footer .linklike:hover { color: #fff; }
/* work-email hint */
.field-hint { font-size: .8rem; color: var(--warn); margin: .3rem 0 0; }
/* autonomy dial */
.autonomy-dial { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; counter-reset: ad; }
.autonomy-dial li { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1rem .9rem; }
.autonomy-dial li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; border-radius: var(--radius) var(--radius) 0 0; background: linear-gradient(90deg, var(--sky), var(--blue)); opacity: .35; }
.autonomy-dial li:nth-child(1)::before { opacity: .15; } .autonomy-dial li:nth-child(2)::before { opacity: .35; } .autonomy-dial li:nth-child(3)::before { opacity: .55; } .autonomy-dial li:nth-child(4)::before { opacity: .8; } .autonomy-dial li:nth-child(5)::before { opacity: 1; }
.autonomy-dial .ad-n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--pale); color: var(--deep); font-weight: 600; font-size: .8rem; margin-bottom: .5rem; }
.autonomy-dial h3 { font-size: 1rem; margin-bottom: .35rem; }
.autonomy-dial p { font-size: .88rem; color: var(--grey); margin: 0 0 .6rem; }
.autonomy-dial .ad-tag { display: inline-block; font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--deep); background: var(--mist); border-radius: 999px; padding: .15rem .55rem; }
.autonomy-dial .ad-now { border-color: var(--blue); box-shadow: 0 0 0 2px var(--pale) inset; }
.autonomy-dial .ad-now .ad-tag { background: var(--cta); color: var(--cta-ink); }
@media (max-width: 960px) { .autonomy-dial { grid-template-columns: repeat(2, 1fr); } .autonomy-dial li:last-child { grid-column: span 2; } }
@media (max-width: 560px) { .autonomy-dial { grid-template-columns: 1fr; } .autonomy-dial li:last-child { grid-column: auto; } }
/* voices */
.voices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.voice { margin: 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem 1.25rem 1.1rem; position: relative; }
.voice::before { content: "“"; position: absolute; top: .35rem; left: 1.05rem; font-size: 3rem; line-height: 1; color: var(--sky); font-family: var(--font); font-weight: 600; }
.voice p { margin: 1.1rem 0 .8rem; color: var(--ink); font-size: .98rem; }
.voice footer { font-size: .82rem; font-weight: 600; color: var(--deep); letter-spacing: .02em; }
@media (max-width: 900px) { .voices { grid-template-columns: 1fr; } }
/* misc */
.section.compact { padding-block: .5rem 1.5rem; }
.gartner-note { font-size: .74rem; color: var(--grey); max-width: none; }
ul.plain { list-style: none; margin: 0; padding: 0; } ul.plain li { padding: .2rem 0; border-bottom: 1px dashed var(--line); } ul.plain li:last-child { border-bottom: 0; }
.cols-2-list { columns: 2; column-gap: 2rem; } @media (max-width: 760px) { .cols-2-list { columns: 1; } }
/* print */
@media print {
  .crumbbar, .consent-banner, .search-overlay, .cta-band, .hero .cta-row, .cta-row, .site-footer .fsub, .site-footer .fcols, .social, .menu-toggle, .search-btn { display: none !important; }
  body { font-size: 12pt; color: #000; background: #fff; }
  .section { padding-block: 1rem; break-inside: avoid; }
  .card, .voice, .stat, .autonomy-dial li, .tbl { break-inside: avoid; border-color: #bbb; box-shadow: none; }
  a { color: #000; text-decoration: none; }
  a.ext::after { content: " (" attr(href) ")"; font-size: .8em; color: #555; }
  details > summary { list-style: none; }
  .hero, .hero-dark, .page-hero, .cta-band, .site-footer { background: #fff !important; color: #000 !important; }
  .hero h1, .page-hero h1, .hero .lede, .page-hero .lede { color: #000 !important; }
  .site-header { position: static; border-bottom: 1px solid #bbb; }
}
/* v1.5: long labels wrap on small screens */
.tbc { white-space: normal; }
.scen > *, .scen-grid > * { min-width: 0; }
.scen-reap .pill { white-space: normal; }
.scen-body h3, .scen-grid p { overflow-wrap: anywhere; }

/* ---- Insights posts, tag archives and search results (WordPress views, 1.5.1) ---- */
.article-hero .eyebrow a { color: inherit; text-decoration: none; }
.article-hero .eyebrow a:hover { color: #fff; text-decoration: underline; }
.article-hero h1 { max-width: 28ch; }
.article-byline { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; margin: 1.1rem 0 0; color: var(--pale); font-size: .95rem; }
.article-byline strong { color: #fff; font-weight: 600; }
.article-figure { margin: 0 0 2rem; }
.article-figure img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.article-body { font-size: 1.075rem; line-height: 1.7; color: var(--ink); }
.article-body h2 { font-size: clamp(1.35rem, 2.2vw, 1.6rem); margin: 2.2rem 0 .7rem; }
.article-body h3 { font-size: 1.2rem; margin: 1.8rem 0 .5rem; }
.article-body h4 { font-size: 1.05rem; margin: 1.5rem 0 .4rem; }
.article-body p, .article-body ul, .article-body ol { margin: 0 0 1.1em; }
.article-body ol { padding-left: 1.4rem; }
.article-body li > ul, .article-body li > ol { margin: .4rem 0 0; }
.article-body a { text-underline-offset: 3px; }
.article-body blockquote { margin: 1.6rem 0; padding: .9rem 1.2rem; background: var(--pale); border-radius: var(--radius-s); color: var(--navy); font-size: 1.08em; }
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body blockquote cite { display: block; margin-top: .5rem; font-size: .85rem; font-style: normal; color: var(--grey); }
.article-body .wp-block-pullquote { margin: 2rem 0; padding: 1.2rem 0; border-block: 1px solid var(--line); text-align: left; font-size: 1.2em; }
.article-body .wp-block-pullquote blockquote { background: none; padding: 0; margin: 0; }
.article-body figure { margin: 1.6rem 0; }
.article-body img { max-width: 100%; height: auto; border-radius: var(--radius-s); }
.article-body figcaption, .article-body .wp-element-caption { margin-top: .5rem; font-size: .85rem; color: var(--grey); }
.article-body .aligncenter { margin-inline: auto; text-align: center; }
.article-body .alignleft { float: left; margin: .3rem 1.2rem .8rem 0; max-width: 50%; }
.article-body .alignright { float: right; margin: .3rem 0 .8rem 1.2rem; max-width: 50%; }
.article-body .has-text-align-center { text-align: center; }
.article-body .has-text-align-right { text-align: right; }
.article-body hr, .article-body .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }
.article-body pre, .article-body .wp-block-code { background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius-s); padding: .9rem 1rem; overflow-x: auto; font-size: .88rem; line-height: 1.55; }
.article-body pre code { background: none; padding: 0; font-size: inherit; }
.article-body :not(pre) > code { background: var(--mist); border-radius: 4px; padding: .05rem .3rem; }
.article-body table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.article-body table th, .article-body table td { border: 0; border-bottom: 1px solid var(--line); padding: .55rem .6rem; text-align: left; vertical-align: top; }
.article-body table thead th { background: var(--navy); color: #fff; font-weight: 600; border-bottom: 0; }
.article-body .wp-block-table thead { border-bottom: 0; }
.article-body .wp-block-table tfoot { border-top: 1px solid var(--line); }
.article-body .wp-block-table { overflow-x: auto; margin: 1.6rem 0; }
.article-body .wp-block-button__link { display: inline-flex; align-items: center; padding: .7rem 1.15rem; border-radius: var(--radius-s); background: var(--cta); color: var(--cta-ink); font-weight: 600; text-decoration: none; }
.article-body .wp-block-button__link:hover { background: var(--cta-hover); color: var(--cta-ink); box-shadow: inset 0 0 0 1.5px var(--cta); }
.article-body .wp-block-button__link:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.article-body .is-layout-flex { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.article-body .is-layout-grid { display: grid; gap: 1rem; }
.article-body .is-vertical { flex-direction: column; align-items: flex-start; }
.article-body iframe, .article-body video { max-width: 100%; }
.article-body .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.article-body::after { content: ""; display: table; clear: both; }
.reap-draft-note { background: var(--amber-bg); border: 1px dashed var(--status-warning); border-radius: var(--radius-s); padding: .6rem .8rem; font-size: .9rem; }
.article-pages { margin: 1.5rem 0; font-weight: 600; }
.article-end { clear: both; margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; justify-content: space-between; font-size: .92rem; color: var(--grey); }
.posts.cols-3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.posts h2 { font-size: 1.15rem; margin-bottom: .5rem; }
.pager { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2rem; font-weight: 600; }
.search-form { display: flex; gap: .5rem; max-width: 640px; margin-top: 1.4rem; }
.search-form input[type=search] { flex: 1; min-width: 0; padding: .7rem .9rem; border: 1px solid var(--line); border-radius: var(--radius-s); font: inherit; font-size: 1rem; background: #fff; color: var(--ink); }
.results { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; max-width: 860px; }
.results li { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.25rem; background: #fff; }
.results .meta { margin: 0; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); }
.results h2 { font-size: 1.1rem; margin: .25rem 0 .35rem; }
.results h2 a { text-decoration: none; }
.results h2 a:hover { text-decoration: underline; }
.results p:last-child { margin: 0; color: var(--grey); font-size: .95rem; }
.results mark { background: #fff1c9; color: inherit; border-radius: 2px; padding: 0 1px; }
.search-suggest a.chip { text-decoration: none; }
.search-suggest a.chip:hover { border-color: var(--blue); color: var(--deep); }
.article-body .wp-block-post.post { border: 0; border-radius: 0; padding: 0; background: none; display: block; }
@media (max-width: 640px) { .search-form { flex-direction: column; } .article-body .alignleft, .article-body .alignright { float: none; margin: 1rem 0; max-width: 100%; } }
@media print { .article-byline { color: #333; } .article-byline strong { color: #000; } }

/* v1.6 components */
/* status pills inside card meta ("Impact analysis: Available · Verification: Pilot deliverable") */
.meta-pills { line-height: 1.9; }
/* notes written as HTML (paragraphs, lists) */
.v16-note > :last-child { margin-bottom: 0; }
.v16-note p { margin: 0 0 .6rem; }
.v16-note ul { margin: .25rem 0 0; padding-left: 1.2rem; }
.v16-note li { margin-bottom: .35rem; }
/* Sources: small print at the foot of a page */
.sources-sec .v16-note { background: transparent; border-top: 1px solid var(--line); border-radius: 0; padding: 1rem 0 0; font-size: .82rem; color: var(--grey); }
.sources-sec .v16-note strong { color: var(--navy); }
a.src-url { overflow-wrap: anywhere; word-break: break-word; }
/* numbered steps: the section head on the left, the steps on the right */
.steps-list { list-style: none; margin: 0; padding: 0; counter-reset: step; }
.steps-list > li { counter-increment: step; position: relative; padding: 0 0 1.6rem 3.3rem; }
.steps-list > li:last-child { padding-bottom: 0; }
.steps-list > li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--deep); color: #fff; font-weight: 600; font-size: .95rem; display: grid; place-items: center; }
.steps-list > li:not(:last-child)::after { content: ""; position: absolute; left: calc(1.125rem - 1px); top: 2.55rem; bottom: .35rem; width: 2px; background: var(--soft); }
.steps-list h3 { margin: .3rem 0 .35rem; font-size: 1.1rem; }
.steps-list p { margin: 0; color: var(--grey); max-width: 68ch; }
@media (min-width: 900px) { .steps-wrap .sec-head { position: sticky; top: 96px; } }
/* a day with REAP: time, role, status pill, title, body */
.day-timeline { list-style: none; margin: 0; padding: 0; gap: 0; max-width: 900px; }
.day-timeline .tl-item { position: relative; grid-template-columns: 72px 1fr; padding-bottom: 1rem; }
.day-timeline .tl-item:last-child { padding-bottom: 0; }
.day-timeline .tl-item:not(:last-child)::before { content: ""; position: absolute; left: 35px; top: 44px; bottom: 0; width: 2px; background: var(--soft); }
.day-timeline .tl-wk { width: 72px; font-family: var(--mono); font-weight: 500; font-size: .85rem; }
.day-timeline .tl-body { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: .9rem 1.1rem 1rem; }
.day-timeline .tl-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; margin: 0 0 .4rem; }
.day-timeline .tl-role { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); }
.day-timeline .tl-body h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.day-timeline .tl-body p:last-child { font-size: .95rem; line-height: 1.6; }
.day-timeline ~ .mt-15 { max-width: 900px; }
@media (max-width: 560px) {
  .day-timeline .tl-item { grid-template-columns: 1fr; gap: .45rem; }
  .day-timeline .tl-item:not(:last-child)::before { display: none; }
  .day-timeline .tl-wk { width: auto; height: auto; padding: .25rem .65rem; justify-self: start; }
}
/* manifesto statement */
.manifesto { border-left: 6px solid var(--blue); padding: .2rem 0 .2rem clamp(1rem, 3vw, 2rem); }
.statement.statement-xl { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 800; line-height: 1.08; letter-spacing: -.02em; max-width: none; text-wrap: balance; }
.statement.statement-xl + .statement-xl { margin-top: .7rem; color: var(--deep); }
/* principles: a numbered list of large items */
.principles { list-style: none; margin: 0; padding: 0; counter-reset: pr; max-width: 940px; }
.principles > li { counter-increment: pr; display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); column-gap: 1.25rem; padding: 1.6rem 0; border-top: 1px solid var(--line); }
.principles > li:last-child { border-bottom: 1px solid var(--line); }
.principles > li::before { content: counter(pr, decimal-leading-zero); grid-row: 1 / span 2; font-family: var(--mono); font-weight: 500; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1; color: var(--blue); }
.principles h3 { font-size: clamp(1.25rem, 2.3vw, 1.65rem); line-height: 1.2; margin: 0 0 .45rem; }
.principles p { margin: 0; color: var(--grey); font-size: 1.02rem; max-width: 68ch; }
@media (max-width: 560px) { .principles > li { grid-template-columns: 2.9rem minmax(0, 1fr); column-gap: .8rem; } }
/* navigation: the two-column menus of the last two items open centered under their button, so they stay on screen from 1024px up */
@media (min-width: 1024px) { .primary > ul > li:nth-last-child(-n+2) > .menu.wide { left: 50%; transform: translateX(-50%); } }
/* glossary chips that link to term pages */
.term-chips a.chip { text-decoration: none; transition: border-color .15s, color .15s, background-color .15s; }
.term-chips a.chip:hover, .term-chips a.chip:focus-visible { border-color: var(--deep); color: var(--deep); background: var(--pale); }
.more-link { margin: 1.1rem 0 0; font-weight: 500; }
.more-link a { text-decoration: none; }
.more-link a:hover { text-decoration: underline; }
/* tables: two-column tables fit the screen; wide and command tables keep a readable width and scroll inside .table-wrap */
.tbl-fit th { white-space: normal; }
@media (max-width: 760px) {
  .tbl.tbl-fit { min-width: 0; }
  .tbl.tbl-fit th:first-child, .tbl.tbl-fit td:first-child { position: static; box-shadow: none; }
  .table-wrap:has(> .tbl-fit)::after { display: none; }
  .tbl.tbl-wide { min-width: 760px; }
  /* command tables: a narrow sticky "Check" column, then one full column per swipe */
  .tbl.tbl-cmd { min-width: 0; width: 640px; table-layout: fixed; }
  .tbl.tbl-cmd th:nth-child(1) { width: 118px; }
  .tbl.tbl-cmd th:nth-child(2) { width: 240px; }
  .tbl.tbl-cmd th:nth-child(3) { width: 282px; }
  .tbl.tbl-cmd th, .tbl.tbl-cmd td { padding: .6rem .65rem; }
  .tbl.tbl-cmd td:first-child { font-size: .8rem; }
}
/* guides: contents, article, command tables */
.guide-grid { display: grid; gap: 2rem; }
@media (min-width: 1000px) { .guide-grid { grid-template-columns: 250px minmax(0, 1fr); gap: 3.5rem; } }
.guide-toc { align-self: start; background: var(--mist); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.15rem; font-size: .9rem; }
@media (min-width: 1000px) { .guide-toc { position: sticky; top: 88px; max-height: calc(100vh - 110px); overflow: auto; background: transparent; border: 0; border-left: 2px solid var(--line); border-radius: 0; padding: .2rem 0 .2rem 1.1rem; } }
.toc-title { font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--deep); margin: 0 0 .5rem; }
.guide-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.guide-toc a { display: block; padding: .28rem 0; color: var(--ink); text-decoration: none; line-height: 1.35; }
.guide-toc a:hover { color: var(--deep); text-decoration: underline; }
.guide-body { min-width: 0; max-width: 840px; }
.guide-sec + .guide-sec { margin-top: 2.6rem; padding-top: 2.2rem; border-top: 1px solid var(--line); }
.guide-sec h2 { font-size: clamp(1.4rem, 2.4vw, 1.75rem); }
.guide-sec p, .guide-sec li { font-size: 1.02rem; line-height: 1.65; }
.guide-sec ul, .guide-sec ol { padding-left: 1.3rem; margin: 0 0 1em; }
.guide-sec li { margin-bottom: .45rem; }
.guide-sec li::marker { color: var(--deep); font-weight: 600; }
.guide-sec > p > code, .guide-sec li code { font-size: .86em; color: var(--navy); background: var(--mist); border: 1px solid var(--line); border-radius: 4px; padding: .05rem .3rem; overflow-wrap: anywhere; }
.guide-table { margin: 1.4rem 0 1.6rem; }
.guide-table .tbl caption { caption-side: top; text-align: left; padding: .65rem .85rem; font-size: .9rem; font-weight: 600; color: var(--navy); background: var(--pale); border-bottom: 1px solid var(--line); }
.tbl-cmd th:nth-child(1) { width: 30%; }
.tbl-cmd th:nth-child(2) { width: 33%; }
.guide-table td code { font-size: .84rem; color: var(--navy); background: var(--mist); border: 1px solid var(--line); border-radius: 4px; padding: .05rem .3rem; overflow-wrap: anywhere; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.guide-table tbody tr:nth-child(even) td code { background: #fff; }
.tbl tbody tr.state-change { background: var(--status-warning-subtle); }
.state-tag { display: inline-block; margin-top: .2rem; font-size: .75rem; font-weight: 600; line-height: 1.35; color: var(--status-warning-ink); background: var(--amber-bg); border: 1px solid var(--status-warning-line); border-radius: 4px; padding: .05rem .35rem; }
@media (max-width: 760px) { .tbl tbody tr.state-change td:first-child { background: var(--status-warning-subtle); } }
.table-note { font-size: .82rem; color: var(--grey); margin: .5rem 0 0; }
.guide-checklist { max-width: 900px; }
.guide-reap .table-wrap { background: #fff; }
/* glossary term pages */
.term-grid { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .term-grid { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 3.5rem; } }
.term-main h2, .term-side h2 { font-size: 1.2rem; margin: 0 0 .55rem; }
.term-main h2:not(:first-child) { margin-top: 2rem; }
.term-inreap { font-size: 1.1rem; line-height: 1.65; color: var(--ink); max-width: 64ch; margin: 0; }
.term-src { margin: 1rem 0 0; font-size: .88rem; color: var(--grey); }
.term-side .term-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .95rem; }
.term-links a { font-weight: 600; text-decoration: none; }
.term-links a:hover { text-decoration: underline; }
.term-links span { display: block; margin-top: .15rem; font-size: .88rem; color: var(--grey); }
.term-more-h { font-size: 1.3rem; margin-bottom: 1rem; }
.term-list { list-style: none; margin: 0; padding: 0; columns: 3 220px; column-gap: 2rem; }
.term-list li { break-inside: avoid; padding: .22rem 0; }
.term-list a { text-decoration: none; }
.term-list a:hover { text-decoration: underline; }
.term-pager { align-items: center; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); font-weight: 400; }
.term-pager a { text-decoration: none; }
.term-pager .tp-prev, .term-pager .tp-next { display: flex; flex-direction: column; gap: .15rem; max-width: 40%; }
.term-pager .tp-next { align-items: flex-end; text-align: right; }
.term-pager .tp-all { flex: none; font-size: .9rem; font-weight: 500; padding: .45rem .95rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--navy); }
.term-pager .tp-all:hover { border-color: var(--deep); color: var(--deep); }
.tp-k { font-size: .74rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--grey); }
.tp-t { font-weight: 600; color: var(--deep); }
.term-pager a:hover .tp-t { text-decoration: underline; }
@media (max-width: 600px) {
  .term-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .term-pager .tp-prev, .term-pager .tp-next { max-width: none; }
  .term-pager .tp-all { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
}
/* compact CTA band (glossary term pages) */
.cta-band.compact { padding-block: clamp(1.75rem, 3.5vw, 2.5rem); }
.cta-band.compact h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem); }
.cta-band.compact p { font-size: .95rem; margin-bottom: 0; }
/* glossary index: term names and "Term page" links */
.ghead h3 a { color: inherit; text-decoration: none; }
.ghead h3 a:hover, .ghead h3 a:focus-visible { color: var(--deep); text-decoration: underline; }
.gterm-link { display: inline-block; margin-top: .55rem; font-size: .82rem; font-weight: 600; color: var(--deep); text-decoration: none; }
.gterm-link:hover { text-decoration: underline; }
/* home strip: who runs the loop */
.home-strip .strip-links p { margin: 1.5rem 0 0; color: var(--grey); }
/* site map: every glossary term */
.card .sm-term-list { list-style: none; margin: .25rem 0 0; padding: 0; columns: 4 140px; column-gap: 1.5rem; font-size: .9rem; }
@media (max-width: 560px) { .card .sm-term-list { font-size: .85rem; line-height: 1.35; } }
.sm-term-list li { break-inside: avoid; padding: .16rem 0; }
.sm-term-list a { text-decoration: none; }
.sm-term-list a:hover { text-decoration: underline; }
/* print */
@media print {
  .guide-toc, .term-pager, .guide-get, .more-link, .gterm-link { display: none !important; }
  .table-wrap { overflow: visible; border-color: #bbb; }
  .table-wrap::after { content: none !important; }
  .tbl, .tbl.tbl-wide, .tbl.tbl-cmd { min-width: 0 !important; }
  .tbl th { background: #fff; color: #000; border-bottom: 2px solid #000; }
  .tbl tr { break-inside: avoid; }
  .guide-grid, .term-grid { display: block; }
  .guide-sec + .guide-sec { margin-top: 1.25rem; padding-top: 1rem; }
  .steps-list > li::before, .day-timeline .tl-wk { background: none; color: #000; border: 1px solid #999; }
  .day-timeline .tl-body { border-color: #bbb; }
  .statement.statement-xl { font-size: 1.9rem; }
  .manifesto { border-left-color: #999; }
  a.src-url::after { content: none; }
  /* long v1.6 sections and tables flow across pages; single items stay whole */
  .section.v16, .v16 .tbl { break-inside: auto; }
  .v16 .tbl tr, .day-timeline .tl-item, .steps-list > li, .principles > li, .v16 .card, .v16 .note, .checklist li { break-inside: avoid; }
  .v16 h2, .v16 h3 { break-after: avoid; }
  .v16 .tbl th:first-child, .v16 .tbl td:first-child { position: static; box-shadow: none; }
  .tbl.tbl-cmd { width: 100% !important; table-layout: auto !important; }
  .tbl.tbl-cmd th:nth-child(1) { width: 28% !important; }
  .tbl.tbl-cmd th:nth-child(2) { width: 34% !important; }
  .tbl.tbl-cmd th:nth-child(3) { width: auto !important; }
}

/* v1.6 fixes: Investigation Window labels are not headings; header fits at 1024–1239 px */
.iw .iw-h { line-height: 1.15; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.nav-btn, .nav-link { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1239px) {
  .header-inner { gap: .75rem; }
  .primary ul { gap: 0; }
  .nav-btn, .nav-link { padding: .5rem .55rem; }
  .header-cta .btn-secondary { display: none; }
}

/* v1.6 explainer video and one-pager download line */
.explainer h3 { font-size: 1.05rem; margin-bottom: .6rem; }
.video-fig { margin: 0; }
.video-fig video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--radius); background: var(--navy); box-shadow: var(--shadow); }
.video-fig figcaption { font-size: .85rem; color: var(--grey); margin-top: .5rem; }
.transcript { margin-top: .75rem; border: 1px solid var(--line); border-radius: var(--radius-s); padding: .6rem .9rem; background: #fff; }
.transcript summary { cursor: pointer; font-weight: 600; color: var(--navy); }
.transcript .prose { margin-top: .6rem; }
.transcript .prose p { margin: 0 0 .5rem; font-size: .92rem; }
.onepager-dl .dl-line { display: flex; align-items: center; gap: .75rem; margin: 0; }
.onepager-dl .dl-line .card-icon { margin: 0; flex: none; }
.onepager-dl .dl-line a { font-weight: 600; }
@media print { .video-fig video, .transcript summary { display: none; } .transcript .prose { display: block; } }

/* ---------------------------------------------------------------- v1.7.3: the nine-band home page */
.band-link { margin: 1.25rem 0 0; }
.band-link a, .q-line a, .fr-fact a, .ir-label + a { font-weight: 600; text-decoration: none; }
.band-link a:hover, .q-line a:hover, .fr-fact a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* founders row */
.founders-sec { padding-block: 2.25rem 2.5rem; }
.founders { display: grid; gap: 1.5rem 2rem; align-items: center; }
@media (min-width: 1000px) { .founders { grid-template-columns: 1fr auto; } }
.fr-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem 2rem; }
@media (min-width: 760px) { .fr-list { grid-template-columns: repeat(3, 1fr); } }
.fr-list li { display: grid; grid-template-columns: 56px 1fr; gap: .85rem; align-items: start; }
.fr-list img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.fr-name { margin: 0; font-weight: 600; color: var(--navy); line-height: 1.25; }
.fr-role { margin: .1rem 0 .3rem; font-size: .82rem; font-weight: 600; color: var(--deep); line-height: 1.3; }
.fr-line { margin: 0; font-size: .88rem; color: var(--grey); line-height: 1.45; }
.fr-fact { border-left: 1px solid var(--line); padding-left: 2rem; min-width: 220px; }
.fr-fact p { margin: 0; color: var(--grey); font-size: .9rem; }
.fr-fact .fr-big { font-size: 2.4rem; font-weight: 600; color: var(--deep); line-height: 1; margin: 0 0 .25rem; }
.fr-fact a { display: inline-block; margin-top: .5rem; font-size: .9rem; }
@media (max-width: 999px) { .fr-fact { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 1.25rem; } }
/* quote wall */
.quote-wall { display: grid; gap: 2rem 2.5rem; }
@media (min-width: 900px) { .quote-wall { grid-template-columns: repeat(3, 1fr); } }
.qw-item { margin: 0; position: relative; padding-top: 2.4rem; }
.qw-item::before { content: "“"; position: absolute; top: -.35rem; left: -.1rem; font-size: 4.2rem; line-height: 1; color: var(--blue); font-weight: 600; }
.qw-item p { margin: 0 0 .9rem; font-size: 1.08rem; line-height: 1.5; color: var(--ink); }
.qw-item footer { font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--deep); }
/* bare stat line */
.statline { display: grid; gap: 1.5rem 2rem; margin-top: .5rem; }
@media (min-width: 640px) { .statline { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .statline { grid-template-columns: repeat(4, 1fr); } .sl-item + .sl-item { border-left: 1px solid var(--line); padding-left: 2rem; } }
.sl-big { font-size: clamp(2rem, 3.4vw, 2.8rem); font-weight: 600; color: var(--navy); line-height: 1.05; letter-spacing: -.02em; }
.sl-label { margin-top: .5rem; color: var(--ink); line-height: 1.4; }
.sl-src { margin-top: .4rem; font-size: .78rem; color: var(--grey); }
/* the three doors as navy panels */
.doors { display: grid; gap: 1rem; }
@media (min-width: 900px) { .doors { grid-template-columns: repeat(3, 1fr); } }
.door { display: flex; flex-direction: column; gap: .6rem; padding: 1.6rem 1.5rem 1.5rem; border-radius: var(--radius); background: var(--navy); color: #fff; text-decoration: none; border: 1px solid transparent; transition: background-color .22s ease, transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.door:hover, .door:focus-visible { background: var(--navy-2); border-color: var(--blue); transform: translateY(-2px); box-shadow: 0 14px 32px rgba(16,44,55,.22); color: #fff; }
.door:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.door-name { margin: 0; font-size: .78rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--sky); }
.door h3 { margin: 0; color: #fff; font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.25; text-wrap: balance; }
.door-scene { margin: .2rem 0 0; color: var(--pale); line-height: 1.5; }
.door-pilot { margin: .2rem 0 0; font-size: .85rem; color: var(--sky); line-height: 1.5; }
.door-pilot .pill { display: inline-block; margin-bottom: .35rem; }
.door-pilot-text { display: block; }
.door-link { margin-top: auto; padding-top: .9rem; font-weight: 600; color: #fff; }
.door:hover .door-link { text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .door:hover, .door:focus-visible { transform: none; } }
/* self-qualifier */
.qualifier { max-width: 860px; }
.q-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.q-list li { display: grid; grid-template-columns: 30px 1fr; gap: .9rem; align-items: start; font-size: clamp(1.05rem, 1.5vw, 1.25rem); color: var(--navy); font-weight: 500; line-height: 1.4; }
.q-check { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1.5px solid var(--blue); color: var(--deep); }
.q-check svg { width: 16px; height: 16px; }
.q-line { margin: 1.5rem 0 0; font-size: 1.05rem; color: var(--ink); }
/* industry row */
.industry-row { margin: 1.5rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem .6rem; align-items: center; font-size: .9rem; }
.ir-label { font-weight: 600; color: var(--navy); margin-right: .4rem; }
.industry-row a { text-decoration: none; color: var(--navy); border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: .35rem .8rem; transition: border-color .15s, background-color .15s; }
.industry-row a:hover { border-color: var(--blue); background: var(--pale); }
/* proof of value: timeline, measures, targets */
.pov-tl { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: 1.25rem; counter-reset: pov; }
@media (min-width: 900px) { .pov-tl { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; } }
.pov-tl li { position: relative; padding-top: 1.1rem; border-top: 3px solid var(--soft); }
.pov-tl li::before { content: ""; position: absolute; top: -3px; left: 0; width: 56px; height: 3px; background: var(--blue); }
.tl-when { margin: 0 0 .35rem; font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); }
.tl-what { margin: 0; color: var(--grey); line-height: 1.5; font-size: .95rem; }
.pov-grid { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 900px) { .pov-grid { grid-template-columns: 1fr 1fr; } }
.pov-grid .card.featured h3 { margin-bottom: .5rem; }
.targets h3 { font-size: 1.05rem; margin: .35rem 0 1rem; }
.tg { display: grid; grid-template-columns: 112px 1fr; gap: 1rem; align-items: baseline; padding: .7rem 0; border-top: 1px solid var(--line); color: var(--ink); line-height: 1.45; }
.tg:last-of-type { border-bottom: 1px solid var(--line); }
.tg-big { font-size: 1.6rem; font-weight: 600; color: var(--deep); white-space: nowrap; line-height: 1.1; }
.tg-src { color: var(--grey); font-size: .85rem; }
.targets .hint { margin-top: .9rem; }
.pov-sec .cta-row { margin-top: 1.75rem; }
/* FAQ fold */
.faq-more { display: grid; gap: .6rem; }
.faq-more-row { margin: .4rem 0 0; }
/* the product window on phones: the evidence behind one control */
.iw-ev-btn { display: none; margin: .1rem 0 .4rem; padding: .45rem .8rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; font: 600 .82rem var(--font); cursor: pointer; }
@media (max-width: 640px) {
  .iw-ev-btn { display: inline-block; }
  .iw-hero:not(.ev-open) .iw-evidence .ev, .iw-hero:not(.ev-open) .iw-foot { display: none; }
}

/* ---------------------------------------------------------------- v1.7.5: the problem band's support line and “Cost your last P1” */
.stat-support { margin: 1.5rem 0 0; max-width: 72ch; color: var(--ink); font-size: .95rem; }
.p1cost { margin-top: 2rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.5rem 1.35rem; display: grid; gap: 1.1rem; }
.p1c-head p:last-child { margin: 0; color: var(--grey); max-width: 72ch; }
.p1c-form { display: grid; gap: .9rem 1.25rem; }
@media (min-width: 700px) { .p1c-form { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .p1c-form { grid-template-columns: repeat(4, 1fr); } .p1c-field label { min-height: 2.6em; } }
.p1c-field label { display: block; font-size: .82rem; font-weight: 600; color: var(--navy); margin-bottom: .35rem; line-height: 1.3; }
.p1c-opt { font-weight: 400; color: var(--grey); }
.p1c-in { display: flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--mist); padding: 0 .7rem; }
.p1c-in:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(57,156,198,.18); }
.p1c-in span { color: var(--grey); margin-right: .25rem; }
.p1c-in input { width: 100%; min-width: 0; border: 0; background: transparent; padding: .6rem 0; font: 500 1rem var(--font); color: var(--navy); outline: none; }
.p1c-out { display: grid; gap: 1rem 2rem; align-items: start; padding-top: 1.1rem; border-top: 1px solid var(--line); }
@media (min-width: 900px) { .p1c-out { grid-template-columns: auto auto 1fr; } }
.p1c-label { margin: 0 0 .15rem; font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--deep); }
.p1c-big { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 600; color: var(--navy); line-height: 1.1; letter-spacing: -.01em; white-space: nowrap; }
.p1c-note p { margin: 0; font-size: .85rem; color: var(--grey); }
.p1c-note p + p { margin-top: .3rem; }
.p1c-note a { font-weight: 600; text-decoration: none; }
.p1c-note a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------------- v1.7.6: the patents fact links to the patents page */
.badge-row a.badge-link { color: inherit; text-decoration: none; }
.badge-row a.badge-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.badge-row a.badge-link:hover strong { color: var(--blue); }
.fr-fact .fr-big a, .fr-fact a.fr-plain { color: inherit; text-decoration: none; display: inline; margin: 0; font-size: inherit; font-weight: inherit; }
.fr-fact .fr-big a:hover, .fr-fact a.fr-plain:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }

/* v1.7.7: the loop gains Prove (four steps); the tagline in the footer; the conceptual model with four boxes */
@media (min-width: 640px) and (max-width: 899px) { .loop { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .loop { grid-template-columns: repeat(4, 1fr); } .loop-step { padding: 1.15rem; } .loop-step h3 { font-size: 1.2rem; } }
.site-footer .ftag { margin: .35rem 0 0; font-size: .95rem; font-weight: 600; color: var(--sky); letter-spacing: .005em; }
@media (min-width: 760px) { .gm-row.gm-four { grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; } }
/* v1.7.9: Prove in Meridian Blue on the method line (D-148); the ≠ in the slogan form (D-147) */
.prove { color: var(--blue); }
.neq { color: var(--blue); }
/* v1.8.0: the three sentences on the home page (lib.statements_band): a manifesto-size list on navy with the ≠ as the mark */
.doors-band .sec-head { margin-bottom: 1.5rem; }
.door-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.door-row { display: grid; grid-template-columns: minmax(3.2rem, auto) 1fr; gap: 1rem 1.4rem; align-items: start; padding: 1.6rem 0; border-top: 1px solid rgba(255,255,255,.14); }
.door-row:last-child { border-bottom: 1px solid rgba(255,255,255,.14); }
.door-neq { font-size: clamp(2.6rem, 6vw, 4.8rem); font-weight: 600; line-height: 1; color: var(--sky); text-align: center; padding-top: .9rem; }
.door-kicker { margin: 0 0 .35rem; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--sky); }
.doors-band .statement.statement-xl { color: #fff; margin: 0 0 .55rem; font-size: clamp(1.9rem, 4.6vw, 3.2rem); }
.doors-band .statement.statement-xl + .statement-xl { color: #fff; }
.door-link { display: inline-block; font-size: 1.05rem; font-weight: 600; color: var(--pale); text-decoration: none; border-bottom: 1px solid rgba(136,195,221,.5); padding-bottom: .1rem; }
.door-link:hover, .door-link:focus-visible { color: #fff; border-bottom-color: #fff; }
.doors-band .band-link { margin: 1.6rem 0 0; }
@media (max-width: 639px) { .door-row { grid-template-columns: 2.2rem 1fr; gap: .6rem .8rem; padding: 1.2rem 0; } .door-neq { font-size: 2rem; padding-top: .55rem; } .doors-band .statement.statement-xl { font-size: 1.75rem; } }
/* v1.8.2 · the three sentences as cards on the light field (home) */
.doors-cards { background: var(--mist); padding-block: clamp(2.4rem, 5vw, 3.6rem); }
.doors-cards .sec-head { margin-bottom: 1.25rem; }
.scards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.scard { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem 1.5rem 1.4rem; display: flex; flex-direction: column; box-shadow: 0 10px 30px rgba(16,44,55,.06); }
.scard-neq { display: block; font-size: 2.6rem; font-weight: 600; line-height: 1; color: var(--blue); margin: 0 0 .9rem; }
.scard .door-kicker { color: var(--deep); }
.scard-stmt { margin: 0 0 1rem; font-size: clamp(1.35rem, 1.9vw, 1.7rem); line-height: 1.18; font-weight: 600; color: var(--navy); letter-spacing: -.015em; text-wrap: balance; }
.scard-stmt .em { color: var(--blue); }
.scard-link { color: var(--deep); border-bottom-color: rgba(57,156,198,.45); margin-top: auto; align-self: flex-start; }
.scard-link:hover, .scard-link:focus-visible { color: var(--navy); border-bottom-color: var(--navy); }
.doors-cards .band-link { margin-top: 1.4rem; }
.doors-cards .band-link a { color: var(--deep); }
@media (max-width: 859px) { .scards { grid-template-columns: 1fr; } .scard { padding: 1.25rem 1.25rem 1.2rem; } .scard-neq { font-size: 2.2rem; margin-bottom: .7rem; } }
@media (max-width: 859px) { .explainer-band { display: flex; flex-direction: column; } .explainer-band .explainer-media { order: -1; } }   /* v1.8.2: on phones the film comes before its prose */
/* v1.8.3 · press kit: the words, the lockups, the QR code and the event banner */

.word p:last-child { margin: 0; }

.stm-title .neq { color: var(--blue); padding: 0 .12em; }

/* v1.8.4 · the not-equal sign, drawn (lib.neq): two bars at the stem weight and a slash past them; a cap-high box on the baseline */
.neq-svg { display: inline-block; height: .7em; width: .7em; vertical-align: 0; overflow: visible; fill: currentColor; margin: 0 .03em; }
.scard-neq .neq-svg { margin: 0; }
.stm-title .neq { padding: 0; }
.page-hero h1 .neq, .ghead h3 .neq { color: var(--blue); }
/* v1.9.0 · the blog (/blog/, the reapitnow.ai articles) and the Events page */
.post h3 a, .post h2 a { color: inherit; text-decoration: none; }
.post h3 a:hover, .post h3 a:focus-visible, .post h2 a:hover, .post h2 a:focus-visible { color: var(--deep); text-decoration: underline; text-underline-offset: 3px; }
.post .meta { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: center; }
.post-cat { display: inline-block; padding: .1rem .55rem; border-radius: 999px; background: var(--pale); color: var(--deep); font-size: .72rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
@media (min-width: 900px) { .posts.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.article-body > p:first-of-type { font-size: 1.18rem; line-height: 1.6; color: var(--navy); }
.article-body h2 + h3 { margin-top: 1rem; }
.event-list { display: grid; gap: 1.1rem; }
.event { display: grid; grid-template-columns: 7.5rem 1fr; gap: 1.5rem; align-items: start; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.5rem; box-shadow: 0 10px 30px rgba(16, 44, 55, .06); }
.event-when { display: grid; justify-items: center; align-content: start; gap: .1rem; padding: .9rem .5rem; border-radius: var(--radius-s); background: var(--navy); color: #fff; }
.event-month { font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sky); }
.event-days { font-size: 1.9rem; font-weight: 600; line-height: 1.05; }
.event-year { font-size: .8rem; color: var(--pale); }
.event-body h3 { margin: .2rem 0 .5rem; font-size: 1.35rem; }
.event-body h3 a { color: inherit; text-decoration: none; }
.event-body h3 a:hover, .event-body h3 a:focus-visible { color: var(--deep); text-decoration: underline; text-underline-offset: 3px; }
.event-body .eyebrow { margin-bottom: .2rem; }
.event-body .cta-row { margin-top: 1rem; }
@media (max-width: 639px) { .event { grid-template-columns: 1fr; gap: 1rem; } .event-when { grid-auto-flow: column; justify-content: start; gap: .6rem; align-items: baseline; padding: .6rem .9rem; } .event-days { font-size: 1.4rem; } }

/* v1.9.2 · the Mac mini drawing page (onug-drawing.html) */
.drawing-form .opt { font-weight: 400; color: var(--grey); }
.drawing-form .consent { margin-top: .5rem; }
.steps-plain { margin: .25rem 0 .75rem; padding-left: 1.2rem; }
.steps-plain li { margin: .35rem 0; }
.mb-0 { margin-bottom: 0; }
.rules ol { padding-left: 1.3rem; }
.rules li { margin: .55rem 0; }
.event-tag { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--deep, #225D77); background: var(--pale, #E7F3F8); border-radius: 999px; padding: .15rem .55rem; margin-left: .4rem; vertical-align: middle; }

/* v1.10.0 · press kit: REAP Brand Kit v2.0 (the REAP Brandbook): the logo on the backgrounds the brandbook pairs it with, clear space,
   the don'ts, the Meridian and REAP Gray scales, the status triad, and the type rule (DM Sans for text, DM Mono for technical data) */
.dl-line { display: flex; align-items: center; gap: .75rem; margin: 0 0 .8rem; }
.dl-line .card-icon { flex: none; margin: 0; }
.dl-line a { font-weight: 600; }
.dl-line .hint { display: block; margin-top: .15rem; }

.bg-white .bg-face { background: #fff; border-bottom: 1px solid var(--line); }

.step:not(.on-dark) .swatch { box-shadow: inset 0 0 0 1px rgba(46, 53, 56, .10); }

button.hex { justify-self: start; padding: .05rem 0; border: 0; background: none; font-family: var(--mono); font-size: .74rem; color: var(--deep); cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; font-variant-ligatures: none; }
button.hex:hover { color: var(--navy); text-decoration-style: solid; }
button.hex:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 3px; }

.tri > :not(.dot) { grid-column: 2; }
.tri .dot { grid-row: 1; width: 1rem; height: 1rem; border-radius: 50%; }

 
 
 
  

.type-scale td:nth-child(2), .type-scale td:nth-child(3) { white-space: nowrap; }

@media (max-width: 599px) {
  
  
  
  
  
  
  .step > :not(.swatch) { grid-column: 2; }
  
  
}

/* ================================================================ v1.13.0 (October 18, 2026) · hover on every card, presentation in one place */
/* Interactive surfaces (Todd, Oct 18: "enable hover on every card"; the card brief: default → hover → focus, 180–250 ms ease, a
   translateY(-2px) lift, a keyboard-focus treatment equal to the mouse one, reduced motion keeps the highlight and drops the
   movement; WCAG 2.2 AA). One list, one treatment: every card, tile, panel and boxed row on the site. The tokens below are the
   whole treatment; a page never carries its own. To add a card class, add it to the lists; to change the treatment, change the tokens. */
:root {
  --surface-ease: 220ms ease;
  --surface-lift: -2px;
  --surface-hover-bg: #fbfdfe;                 /* a breath above white */
  --surface-hover-border: var(--blue);
  --surface-hover-shadow: 0 12px 28px rgba(16, 44, 55, .12);
  --surface-hover-bg-dark: #1b485c;            /* on navy fields */
  --surface-hover-shadow-dark: 0 14px 32px rgba(0, 0, 0, .28);
}
/* 1 · light surfaces: white or mist boxes with a border */
.card, .post, .loop-step, .person, .stat, .result-card, .gterm, .scen, .scard, .voice, .q, .pat, .tile, .event, .word, .stm,
.lockup-tile, .qr-tile, .bg-tile, .dont, .tri, .type-card, .clear-fig, .nda-block, .results li, .autonomy-dial li, .day-timeline .tl-body,
.transcript, .checklist label, .arch-row, .arch-side, .gm-box, .faq-item, .guide-toc, .term-side, .docs-confirm, .note, .consent-body, .search-panel {
  transition: background-color var(--surface-ease), border-color var(--surface-ease), box-shadow var(--surface-ease), transform var(--surface-ease), color var(--surface-ease);
}
.card:hover, .post:hover, .loop-step:hover, .person:hover, .stat:hover, .result-card:hover, .gterm:hover, .scen:hover, .scard:hover, .voice:hover, .pat:hover, .tile:hover, .event:hover, .word:hover, .stm:hover,
.lockup-tile:hover, .qr-tile:hover, .bg-tile:hover, .dont:hover, .tri:hover, .type-card:hover, .clear-fig:hover, .nda-block:hover, .results li:hover, .autonomy-dial li:hover, .day-timeline .tl-body:hover, .transcript:hover, .term-side:hover,
.card:focus-within, .post:focus-within, .loop-step:focus-within, .person:focus-within, .stat:focus-within, .result-card:focus-within, .gterm:focus-within, .scen:focus-within, .scard:focus-within, .voice:focus-within, .pat:focus-within, .tile:focus-within, .event:focus-within, .word:focus-within, .stm:focus-within,
.lockup-tile:focus-within, .qr-tile:focus-within, .bg-tile:focus-within, .dont:focus-within, .tri:focus-within, .type-card:focus-within, .clear-fig:focus-within, .nda-block:focus-within, .results li:focus-within, .autonomy-dial li:focus-within, .day-timeline .tl-body:focus-within, .transcript:focus-within, .term-side:focus-within {
  border-color: var(--surface-hover-border); background-color: var(--surface-hover-bg); box-shadow: var(--surface-hover-shadow); transform: translateY(var(--surface-lift));
}
/* surfaces that hold inputs or sit inside a diagram: the highlight without the lift (a form must not move under the pointer) */
.q:hover, .q:focus-within, .faq-item:hover, .faq-item:focus-within, .checklist label:hover, .checklist label:focus-within, .arch-row:hover, .arch-side:hover, .gm-box:hover, .guide-toc:hover, .docs-confirm:hover, .note:hover { border-color: var(--surface-hover-border); background-color: var(--surface-hover-bg); box-shadow: var(--surface-hover-shadow); }
.note:hover { background-color: var(--meridian-50); box-shadow: none; border: 0; }
.docs-confirm:hover { border-color: var(--status-warning); box-shadow: none; background: var(--status-warning-subtle); }
.checklist label:hover { background: var(--mist); }
.faq-item:hover summary, .faq-item:focus-within summary { color: var(--deep); }
.faq-item summary { transition: color var(--surface-ease); }
.faq-item summary:hover::after { color: var(--blue); }
/* the featured, pale and mist variants keep their own fill on hover */
.card.featured:hover, .card.featured:focus-within { background-color: #eef7fb; }
.tile:hover, .tile:focus-within, .stm:hover, .stm:focus-within { background-color: #fff; border: 1px solid var(--surface-hover-border); }
.tile, .stm { border: 1px solid transparent; }
.scard:hover, .scard:focus-within { box-shadow: 0 16px 36px rgba(16, 44, 55, .14); }
.tri:hover, .tri:focus-within { background-color: #fff; }
.tri-healthy:hover, .tri-healthy:focus-within { border-color: var(--status-healthy); } .tri-alert:hover, .tri-alert:focus-within { border-color: var(--status-alert); } .tri-warning:hover, .tri-warning:focus-within { border-color: var(--status-warning); }
.day-timeline .tl-body { position: relative; }
/* 2 · dark surfaces: navy or deep-teal panels (.door already carries the treatment from v1.7.3 and keeps it) */
.iw, .banner, .lockup-tile.dark, .section.dark .card, .section.dark .stat, .event-when, .gm-bar { transition: background-color var(--surface-ease), border-color var(--surface-ease), box-shadow var(--surface-ease), transform var(--surface-ease); }
.section.dark .card:hover, .section.dark .card:focus-within, .section.dark .stat:hover, .section.dark .stat:focus-within, .lockup-tile.dark:hover, .lockup-tile.dark:focus-within, .banner:hover, .banner:focus-within { background-color: var(--surface-hover-bg-dark); border-color: var(--surface-hover-border); box-shadow: var(--surface-hover-shadow-dark); transform: translateY(var(--surface-lift)); }
.iw:hover, .iw:focus-within { border-color: rgba(136, 195, 221, .45); box-shadow: 0 34px 80px rgba(0, 0, 0, .5), 0 0 0 1px rgba(136, 195, 221, .22); }
.iw-col { transition: background-color var(--surface-ease); }
.iw-col:hover { background-color: rgba(255, 255, 255, .04); }
/* 3 · rows and list items without a box: a quiet tint, no lift, so a long list stays calm */
.principles > li, .pov-tl li, .fr-list li, .qw-item, .sl-item, .tg, .steps-list > li, .tl-item, .kv > dt, .kv > dd, .term-links li, .term-list li, .sm-term-list li { transition: background-color var(--surface-ease), border-color var(--surface-ease), color var(--surface-ease); border-radius: var(--radius-s); }
.principles > li:hover, .pov-tl li:hover, .fr-list li:hover, .qw-item:hover, .sl-item:hover, .tg:hover, .steps-list > li:hover, .tl-item:hover { background-color: var(--mist); box-shadow: 0 0 0 .6rem var(--mist); }
.section.alt .principles > li:hover, .section.alt .pov-tl li:hover, .section.alt .fr-list li:hover, .section.alt .qw-item:hover, .section.alt .sl-item:hover, .section.alt .tg:hover, .section.alt .steps-list > li:hover, .section.alt .tl-item:hover,
.section.pale .q-list li:hover { background-color: #fff; box-shadow: 0 0 0 .6rem #fff; }
.pov-tl li:hover::before, .principles > li:hover::before { color: var(--deep); }
.pov-tl li:hover { border-top-color: var(--sky); }
.q-list li { transition: color var(--surface-ease); border-radius: var(--radius-s); }
.q-list li:hover { color: var(--deep); }
.q-list li:hover .q-check { background: var(--blue); color: var(--navy); }
.q-check { transition: background-color var(--surface-ease), color var(--surface-ease); }
/* 4 · tables: the row under the pointer (the first column stays readable on phones, where it is sticky) */
.tbl tbody tr { transition: background-color var(--surface-ease); }
.tbl tbody tr:hover, .tbl tbody tr:hover td:first-child, .tbl tbody tr:nth-child(even):hover, .tbl tbody tr:nth-child(even):hover td:first-child { background-color: var(--pale); }
.tbl tbody tr.state-change:hover, .tbl tbody tr.state-change:hover td:first-child { background-color: var(--status-warning-subtle); }
/* 5 · chips, pills of links, letters and the menu rows already carry their own hover; the generic chip gains one for consistency */
.chip { transition: border-color var(--surface-ease), background-color var(--surface-ease), color var(--surface-ease); }
.chips .chip:hover { border-color: var(--deep); }
.section.dark .chip:hover { border-color: var(--sky); }
/* 6 · keyboard focus equal to hover: a link or button inside any surface lights the surface (focus-within above); a surface
   that is itself a link or a control shows the ring */
a.card:focus-visible, .scard-link:focus-visible, .post h3 a:focus-visible, .post h2 a:focus-visible, .event-body h3 a:focus-visible, .ghead h3 a:focus-visible, .lockup-tile a:focus-visible, .bg-tile a:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 4px; }
.section.dark a:focus-visible, .lockup-tile.dark a:focus-visible, .banner a:focus-visible { outline-color: #fff; }
/* 7 · reduced motion and print: the highlight stays, the movement goes */
@media (prefers-reduced-motion: reduce) {
  .card:hover, .post:hover, .loop-step:hover, .person:hover, .stat:hover, .result-card:hover, .gterm:hover, .scen:hover, .scard:hover, .voice:hover, .pat:hover, .tile:hover, .event:hover, .word:hover, .stm:hover,
  .lockup-tile:hover, .qr-tile:hover, .bg-tile:hover, .dont:hover, .tri:hover, .type-card:hover, .clear-fig:hover, .nda-block:hover, .results li:hover, .autonomy-dial li:hover, .day-timeline .tl-body:hover, .transcript:hover, .term-side:hover,
  .card:focus-within, .post:focus-within, .loop-step:focus-within, .person:focus-within, .stat:focus-within, .result-card:focus-within, .gterm:focus-within, .scen:focus-within, .scard:focus-within, .voice:focus-within, .pat:focus-within, .tile:focus-within, .event:focus-within, .word:focus-within, .stm:focus-within,
  .lockup-tile:focus-within, .qr-tile:focus-within, .bg-tile:focus-within, .dont:focus-within, .tri:focus-within, .type-card:focus-within, .clear-fig:focus-within, .nda-block:focus-within, .results li:focus-within, .autonomy-dial li:focus-within, .day-timeline .tl-body:focus-within, .transcript:focus-within, .term-side:focus-within,
  .section.dark .card:hover, .section.dark .stat:hover, .lockup-tile.dark:hover, .banner:hover, .door:hover, .door:focus-visible { transform: none; }
}
@media (hover: none) { .principles > li:hover, .pov-tl li:hover, .fr-list li:hover, .qw-item:hover, .sl-item:hover, .tg:hover, .steps-list > li:hover, .tl-item:hover { background-color: transparent; box-shadow: none; } }
@media print { .card, .post, .stat, .scard, .event, .gterm, .voice, .pat { transform: none !important; box-shadow: none !important; } }

/* Glossary links in the running text (termlink.py): the first mention of a term on a page is a quiet dotted link to its
   term page; the title attribute carries the definition, so a hover shows the meaning before a click. Never loud: inherits
   the text color, a dotted Light Blue rule under it, Meridian on hover; on dark fields the rule is Light Blue at half strength. */
a.term { color: inherit; text-decoration: underline dotted; text-decoration-color: var(--sky); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .15s ease, text-decoration-color .15s ease; }
a.term:hover, a.term:focus-visible { color: var(--deep); text-decoration-style: solid; text-decoration-color: var(--deep); }
.hero-dark a.term, .page-hero a.term, .section.dark a.term, .cta-band a.term, .door a.term, .banner a.term { color: inherit; text-decoration-color: rgba(136, 195, 221, .55); }
.hero-dark a.term:hover, .page-hero a.term:hover, .section.dark a.term:hover, .cta-band a.term:hover { color: #fff; text-decoration-color: #fff; }
.card p a.term, .card li a.term, .faq-a a.term { color: inherit; }
@media print { a.term { text-decoration: none; } a.term::after { content: none; } }

/* Presentation moved out of the pages (Todd, Oct 18: all of the HTML's styling lives in the CSS):
   the home page's four-column statistics, the contact form's extra fields when scripts are off, the press kit's color
   swatches (one class per token, so the swatch and the token can never disagree), the gate form's download button, the
   Turnstile holder, and the body while the search overlay is open (site.js toggles a class, never a style). */
.stats-4 { --stat-cols: 4; }
html:not(.js) .extra[hidden] { display: grid !important; }   /* the contact form's topic fields all show when scripts are off */
.gate-dl { margin: .6em 0 .2em; }
.cf-turnstile { margin: 8px 0; }
body.search-open { overflow: hidden; }
.sw-meridian-10 { --c: var(--meridian-10); } .sw-meridian-50 { --c: var(--meridian-50); } .sw-meridian-100 { --c: var(--meridian-100); } .sw-meridian-200 { --c: var(--meridian-200); }
.sw-meridian-300 { --c: var(--meridian-300); } .sw-meridian-400 { --c: var(--meridian-400); } .sw-meridian-500 { --c: var(--meridian-500); } .sw-meridian-600 { --c: var(--meridian-600); }
.sw-meridian-700 { --c: var(--meridian-700); } .sw-meridian-800 { --c: var(--meridian-800); } .sw-meridian-900 { --c: var(--meridian-900); } .sw-meridian-950 { --c: var(--meridian-950); } .sw-meridian-1000 { --c: var(--meridian-1000); }
.sw-gray-10 { --c: var(--gray-10); } .sw-gray-50 { --c: var(--gray-50); } .sw-gray-100 { --c: var(--gray-100); } .sw-gray-200 { --c: var(--gray-200); } .sw-gray-300 { --c: var(--gray-300); }
.sw-gray-400 { --c: var(--gray-400); } .sw-gray-500 { --c: var(--gray-500); } .sw-gray-600 { --c: var(--gray-600); } .sw-gray-700 { --c: var(--gray-700); } .sw-gray-800 { --c: var(--gray-800); }
.sw-gray-900 { --c: var(--gray-900); } .sw-gray-950 { --c: var(--gray-950); } .sw-gray-1000 { --c: var(--gray-1000); }

/* Readability (Todd, Oct 18): a slightly more open body measure, calmer long paragraphs, visible focus on every control,
   and the small print raised to AA on every field it sits on. Nothing changes the type scale or the brand tokens. */
body { line-height: 1.6; }
.prose p, .guide-sec p, .article-body p, .faq-a p, .term-inreap, .docs-article p { text-wrap: pretty; }
.prose, .docs-article, .guide-body { max-width: 72ch; }
.lede { max-width: 64ch; }
.card p, .card li, .post p { line-height: 1.55; }
h2, h3 { text-wrap: balance; }
.sec-head .sub { font-size: 1.02rem; line-height: 1.55; }
.hint, .form small, .stat-src, .sl-src, .tg-src, .fsmall { font-size: .82rem; line-height: 1.5; }
.site-footer .fsmall { font-size: .82rem; }
input[type=text]:focus-visible, input[type=email]:focus-visible, input[type=tel]:focus-visible, input[type=number]:focus-visible, input[type=url]:focus-visible, input[type=search]:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 1px; border-color: var(--blue); }
.faq-item summary { padding-block: 1.05rem; line-height: 1.4; }
.faq-a { font-size: .98rem; line-height: 1.6; }
.faq-a p:last-child { margin-bottom: 0; }
.tbl th, .tbl td { line-height: 1.5; }
/* the deployment line in the footer brand block: the three places REAP runs (positioning, Oct 18) */
.site-footer .fdeploy { margin: .5rem 0 0; font-size: .85rem; color: var(--pale); }
.site-footer .fdeploy strong { color: #fff; font-weight: 600; }
.site-footer .fdeploy a { color: var(--pale); text-decoration-color: rgba(136, 195, 221, .6); }
.site-footer .fdeploy a:hover, .site-footer .fdeploy a:focus-visible { color: #fff; }
/* a "back to top" control on long pages, shown by site.js after one screen of scrolling; hidden in print */
.to-top { position: fixed; right: 16px; bottom: 16px; z-index: 180; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--navy); box-shadow: var(--shadow); display: grid; place-items: center; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease, background-color .15s ease; transform: translateY(6px); }
.to-top.show { opacity: 1; pointer-events: auto; transform: none; }
.to-top:hover { background: var(--pale); border-color: var(--blue); }
.to-top:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.consent-banner:not([hidden]) ~ .to-top { bottom: 120px; }
@media (max-width: 640px) { .to-top { right: 12px; bottom: 12px; width: 40px; height: 40px; } }
@media print { .to-top { display: none !important; } }
/* the color-scale steps on the press kit: the swatch lifts and the hex reads darker under the pointer */
.step .swatch { transition: transform var(--surface-ease), box-shadow var(--surface-ease); }
.step:hover .swatch, .step:focus-within .swatch { transform: translateY(var(--surface-lift)); box-shadow: 0 8px 18px rgba(16, 44, 55, .18); }
.step:hover button.hex { color: var(--navy); text-decoration-style: solid; }
@media (prefers-reduced-motion: reduce) { .step:hover .swatch, .step:focus-within .swatch { transform: none; } }

/* ================================================================ v1.14.0 · the glossary at request time */
/* the definition card at the top of search results: the overlay (ul.search-results) and the results page (ol.results) */
ul.search-results .search-def { border: 1px solid var(--soft); background: var(--mist); margin-bottom: .35rem; }
ul.search-results .search-def .sr-more { font-size: .82rem; font-weight: 600; color: var(--blue); margin-top: .35rem; }
ul.search-results .search-def[aria-selected="true"], ul.search-results .search-def:hover { background: var(--pale); }
.results .search-def { border-color: var(--blue); border-left-width: 4px; background: var(--mist); }
.results .search-def h2 { font-size: 1.25rem; }
.results .search-def p:last-of-type { margin-bottom: .6rem; color: var(--ink); }
/* the glossary term of the week on the Blog page */
.term-week { max-width: 860px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: var(--radius); padding: 1.25rem 1.5rem; background: var(--white);
  transition: background-color var(--surface-ease), border-color var(--surface-ease), box-shadow var(--surface-ease), transform var(--surface-ease); }
.term-week:hover, .term-week:focus-within { border-color: var(--surface-hover-border); background-color: var(--surface-hover-bg); box-shadow: var(--surface-hover-shadow); transform: translateY(var(--surface-lift)); }
.term-week h3 { margin: .2rem 0 .5rem; font-size: 1.35rem; }
.term-week h3 a { text-decoration: none; color: var(--navy); }
.term-week h3 a:hover, .term-week h3 a:focus-visible { text-decoration: underline; }
.term-week p { margin: 0 0 .6rem; }
.term-week .tw-reap { color: var(--grey); font-size: .95rem; }
.term-week .tw-more { display: flex; flex-wrap: wrap; gap: 1.2rem; margin: .4rem 0 0; }
@media (prefers-reduced-motion: reduce) { .term-week:hover, .term-week:focus-within { transform: none; } }

/* v1.14.0 · accessibility re-check (document 48, recommendation 6): contrast, target size, the press-kit specimens */
.cta-band a.ext { color: #fff; text-decoration: underline; text-decoration-color: var(--sky); text-underline-offset: 3px; }   /* sky on deep was 3.8:1 */
.cta-band a.ext:hover, .cta-band a.ext:focus-visible { text-decoration-color: #fff; }
/* targets at least 24 px tall (WCAG 2.2, 2.5.8) where a link or button sat in a line shorter than that */
.gterm h3 a, .gterm-link, a.li-link, .iw-foot a, button.linklike, .fbottom button.linklike { display: inline-block; padding-block: .2rem; min-height: 24px; line-height: 1.25; }
button.hex { min-height: 24px; padding-block: .15rem; }
/* the press-kit specimens: Meridian Blue on a light field reads as large text only (the brand's accessible pairings) */
#words .stm { background: #fff; }
#words .stm-sent .em { color: var(--deep); }
#type .type-card .tw.w500 { font-size: 1.5rem; }
.kv .prove { color: var(--deep); }   /* the method line in a facts list is body size on white: the darker Meridian for 4.5:1 */
.fr-fact a, .fr-fact .fr-plain { display: inline-block; padding-block: .2rem; }
/* ================================================================ v1.15.0 · drafts for review, where REAP runs */
/* the review note at the top of a page listed in lib.DRAFT_PAGES (not indexed, not linked, a WordPress draft) */
.draft-note { background: var(--status-warning-subtle); border-bottom: 1px solid var(--status-warning); color: var(--status-warning-ink); padding: .6rem var(--gutter); font-size: .9rem; text-align: center; }
.draft-note strong { color: inherit; }
/* the platform page's "Where REAP runs": three models as equals, the connector line under them */
.runs-grid .card { display: flex; flex-direction: column; }
.runs-grid .card .card-meta { margin-bottom: .2rem; }
.runs-grid .runs-status { margin-top: auto; padding-top: .6rem; font-size: .84rem; color: var(--grey); }
.runs-grid .runs-status .pill { vertical-align: middle; }
