:root {
  --paper: #f4efe3;
  --paper-light: #faf6ec;
  --paper-deep: #ede6d3;
  --ink: #0a1628;
  --ink-soft: #2a3548;
  --slate: #5a6b7d;
  --slate-light: #8b95a3;
  --accent: #b54e2a;
  --accent-soft: #d9785a;
  --grid: #e2dccd;
  --grid-dark: #c8c0a8;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

html, body {
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* ============================ */
/* TYPOGRAPHY UTILITIES         */
/* ============================ */

.mono-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--slate);
  font-weight: 500;
}

.section-num {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--accent);
}

.section-title-serif {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(28px, 3.6vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.section-header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 56px;
  padding-bottom: 20px;
  border-bottom: 1px dashed var(--ink);
  flex-wrap: wrap;
}

.section-eyebrow {
  margin-left: auto;
}

/* ============================ */
/* LOGO — B2 UNDERSCORED B      */
/* ============================ */

.logo {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink);
  display: inline-block;
}

.logo .b {
  position: relative;
  display: inline-block;
}

.logo .b::after {
  content: '';
  position: absolute;
  left: 0;
  right: 18%;
  bottom: -4px;
  height: 2.5px;
  background: var(--accent);
}

/* ============================ */
/* NAVIGATION                   */
/* ============================ */

.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 64px;
  border-bottom: 1px solid var(--ink);
  background: var(--paper);
  position: sticky;
  top: 0;
  z-index: 100;
}

.nav .logo { font-size: 19px; }

.nav-meta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--slate);
  text-transform: uppercase;
  display: flex;
  gap: 32px;
  align-items: center;
}

.nav-cta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  padding: 11px 22px;
  border: 1px solid var(--ink);
  transition: all 0.18s ease;
  font-weight: 500;
}

.nav-cta:hover { background: var(--ink); color: var(--paper); }

/* ============================ */
/* HERO                         */
/* ============================ */

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 80px;
  padding: 88px 64px 112px;
  max-width: 1440px;
  margin: 0 auto;
}

.hero-content { position: relative; }

.hero-eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 36px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.hero-eyebrow::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--slate);
  opacity: 0.35;
  max-width: 100px;
}

.hero-headline {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: clamp(38px, 5.2vw, 68px);
  line-height: 1.04;
  letter-spacing: -0.022em;
  margin-bottom: 36px;
  color: var(--ink);
}

.hero-headline em {
  font-style: italic;
  font-weight: 400;
  color: var(--accent);
  position: relative;
  white-space: nowrap;
}

.hero-headline em::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 4px;
  width: 100%;
  height: 1px;
  background: var(--accent);
  opacity: 0.5;
}

.hero-sub {
  font-size: 19px;
  line-height: 1.55;
  color: var(--slate);
  max-width: 500px;
  margin-bottom: 48px;
}

.hero-sub strong { color: var(--ink); font-weight: 500; }

.hero-cta-row { display: flex; gap: 8px; align-items: center; }

.cta-primary {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--paper);
  background: var(--ink);
  text-decoration: none;
  padding: 18px 28px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: all 0.18s ease;
}

.cta-primary:hover { background: var(--accent); }
.cta-primary svg { transition: transform 0.18s ease; }
.cta-primary:hover svg { transform: translateX(4px); }

.cta-secondary {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--slate);
  text-decoration: none;
  padding: 18px 20px;
  text-transform: uppercase;
  transition: color 0.18s ease;
}

.cta-secondary:hover { color: var(--ink); }

/* ============================ */
/* ANIMATION CARD               */
/* ============================ */

.anim-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 5/4;
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 20px;
  display: flex;
  flex-direction: column;
}

.marker-corner {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 2px solid var(--accent);
  pointer-events: none;
}
.marker-tl { top: -2px; left: -2px; border-right: none; border-bottom: none; }
.marker-tr { top: -2px; right: -2px; border-left: none; border-bottom: none; }
.marker-bl { bottom: -2px; left: -2px; border-right: none; border-top: none; }
.marker-br { bottom: -2px; right: -2px; border-left: none; border-top: none; }

.anim-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--slate);
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--grid);
}

.anim-label .label-r { color: var(--ink); font-weight: 500; }
.anim-svg { flex: 1; width: 100%; height: 100%; }

.anim-status {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--grid);
}

.status-item {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9px;
  letter-spacing: 0.14em;
  color: var(--slate);
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.status-item strong {
  color: var(--ink);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0;
}

.status-item.zero strong { color: var(--accent); }

/* SVG animations */
@keyframes paperEnter {
  0%, 4%   { opacity: 0; transform: translateX(-30px); }
  10%, 24% { opacity: 1; transform: translateX(0); }
  30%, 34% { opacity: 1; transform: translateX(178px); }
  38%      { opacity: 0; transform: translateX(178px); }
  100%     { opacity: 0; transform: translateX(178px); }
}
@keyframes processGlow {
  0%, 8%   { opacity: 0.35; }
  14%, 28% { opacity: 0.65; }
  34%, 44% { opacity: 1; }
  50%, 78% { opacity: 0.65; }
  84%, 100%{ opacity: 0.35; }
}
@keyframes scanLine {
  0%, 32%   { opacity: 0; transform: translateX(0); }
  34%       { opacity: 1; transform: translateX(0); }
  43%       { opacity: 1; transform: translateX(108px); }
  46%, 100% { opacity: 0; transform: translateX(108px); }
}
@keyframes docOut1 {
  0%, 44%  { opacity: 0; transform: translateX(-20px); }
  52%, 80% { opacity: 1; transform: translateX(0); }
  88%, 100%{ opacity: 0; transform: translateX(8px); }
}
@keyframes docOut2 {
  0%, 47%  { opacity: 0; transform: translateX(-20px); }
  55%, 80% { opacity: 1; transform: translateX(0); }
  88%, 100%{ opacity: 0; transform: translateX(8px); }
}
@keyframes docOut3 {
  0%, 50%  { opacity: 0; transform: translateX(-20px); }
  58%, 80% { opacity: 1; transform: translateX(0); }
  88%, 100%{ opacity: 0; transform: translateX(8px); }
}
@keyframes docOut4 {
  0%, 53%  { opacity: 0; transform: translateX(-20px); }
  61%, 80% { opacity: 1; transform: translateX(0); }
  88%, 100%{ opacity: 0; transform: translateX(8px); }
}
@keyframes trustReveal {
  0%, 60%  { opacity: 0; }
  68%, 88% { opacity: 1; }
  94%, 100%{ opacity: 0; }
}

.paper-doc { animation: paperEnter 8s cubic-bezier(0.5, 0, 0.2, 1) infinite; transform-origin: center; transform-box: fill-box; }
.process-zone { animation: processGlow 8s ease-in-out infinite; transform-box: fill-box; }
.scan-line   { animation: scanLine 8s ease-out infinite; transform-box: fill-box; }
.out-doc-1   { animation: docOut1 8s ease-out infinite; transform-box: fill-box; }
.out-doc-2   { animation: docOut2 8s ease-out infinite; transform-box: fill-box; }
.out-doc-3   { animation: docOut3 8s ease-out infinite; transform-box: fill-box; }
.out-doc-4   { animation: docOut4 8s ease-out infinite; transform-box: fill-box; }
.trust-line  { animation: trustReveal 8s ease infinite; }

/* ============================ */
/* SECTION WRAPPER              */
/* ============================ */

.section {
  padding: 96px 64px;
  max-width: 1440px;
  margin: 0 auto;
  border-top: 1px solid var(--ink);
}

/* ============================ */
/* 002 — THE PROBLEM            */
/* ============================ */

.problem-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin-bottom: 64px;
  align-items: end;
}

.problem-headline {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.problem-headline em {
  font-style: italic;
  color: var(--accent);
}

.problem-context {
  font-size: 17px;
  line-height: 1.55;
  color: var(--slate);
  padding-bottom: 6px;
}

.problem-context strong { color: var(--ink); font-weight: 500; }

.field-log {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 0;
  position: relative;
}

.field-log-header {
  display: grid;
  grid-template-columns: 50px 1fr 1fr 1fr 1fr;
  padding: 14px 24px;
  border-bottom: 1px solid var(--ink);
  background: var(--paper-deep);
}

.field-log-header span {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--slate);
  font-weight: 600;
}

.field-log-row {
  display: grid;
  grid-template-columns: 50px 1fr 1fr 1fr 1fr;
  padding: 22px 24px;
  border-bottom: 1px dashed var(--grid-dark);
  align-items: center;
  transition: background 0.15s ease;
}

.field-log-row:last-child { border-bottom: none; }
.field-log-row:hover { background: var(--paper-deep); }

.fl-num {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.fl-name {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}

.fl-before, .fl-after {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 14px;
}

.fl-before { color: var(--slate); text-decoration: line-through; text-decoration-color: var(--accent); text-decoration-thickness: 1px; }
.fl-after { color: var(--ink); font-weight: 600; }

.fl-arrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 14px;
  color: var(--accent);
  font-weight: 600;
}

/* ============================ */
/* 003 — MODULES                */
/* ============================ */

.modules-intro {
  max-width: 700px;
  margin-bottom: 64px;
}

.modules-intro .section-title-serif { margin-bottom: 24px; }

.modules-intro-sub {
  font-size: 17px;
  line-height: 1.55;
  color: var(--slate);
}

.modules-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.module-card {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 32px 28px 28px;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 380px;
}

.module-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
}

.module-id {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent);
  font-weight: 700;
}

.module-glyph {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.module-name {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: 26px;
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}

.module-outcome {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--accent);
  margin-bottom: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.module-desc {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin-bottom: auto;
}

.module-spec {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px dashed var(--grid-dark);
  display: flex;
  justify-content: space-between;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
}

.module-spec strong { color: var(--ink); font-weight: 600; }

.module-deep-link {
  display: block;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--grid-dark);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--accent);
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 600;
  transition: color 0.18s ease;
}
.module-deep-link:hover { color: var(--ink); }

/* ============================ */
/* 004 — OUTCOMES               */
/* ============================ */

.outcomes-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 80px;
}

.outcomes-text { padding-top: 8px; }

.outcomes-headline {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 28px;
}

.outcomes-headline em { font-style: italic; color: var(--accent); }

.outcomes-prose {
  font-size: 16px;
  line-height: 1.6;
  color: var(--slate);
  margin-bottom: 24px;
}

.outcomes-prose strong { color: var(--ink); font-weight: 500; }

.before-after {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 8px;
}

.ba-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 16px 20px 12px;
  border-bottom: 1px dashed var(--grid-dark);
}

.ba-header span {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--slate);
  font-weight: 600;
}

.ba-header span:last-child { color: var(--accent); }

.ba-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 18px 20px;
  border-bottom: 1px dashed var(--grid);
  align-items: center;
}

.ba-row:last-child { border-bottom: none; }

.ba-before {
  font-size: 14px;
  color: var(--slate);
  font-family: 'IBM Plex Sans', sans-serif;
}

.ba-after {
  font-size: 14px;
  color: var(--ink);
  font-weight: 500;
  font-family: 'IBM Plex Sans', sans-serif;
  display: flex;
  align-items: center;
  gap: 10px;
}

.ba-after::before {
  content: '→';
  color: var(--accent);
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 700;
}

/* ============================ */
/* 005 — FOUNDER                */
/* ============================ */

.founder-wrap {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 80px;
  align-items: start;
}

.founder-prose .section-title-serif { margin-bottom: 32px; }

.founder-text {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin-bottom: 20px;
}

.founder-text strong { color: var(--ink); font-weight: 600; }

.founder-quote {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: 19px;
  line-height: 1.5;
  color: var(--ink);
  padding-left: 24px;
  border-left: 2px solid var(--accent);
  margin-top: 24px;
}

.spec-card {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 0;
}

.spec-card-header {
  padding: 14px 24px;
  border-bottom: 1px solid var(--ink);
  background: var(--paper-deep);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  font-weight: 600;
  display: flex;
  justify-content: space-between;
}

.spec-card-header span:last-child { color: var(--accent); }

.spec-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  padding: 14px 24px;
  border-bottom: 1px dashed var(--grid-dark);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  align-items: center;
}

.spec-row:last-child { border-bottom: none; }

.spec-key {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slate);
}

.spec-val {
  color: var(--ink);
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* ============================ */
/* 006 — QUALIFIER              */
/* ============================ */

.qualifier-section {
  background: var(--ink);
  color: var(--paper);
  border-top: 1px solid var(--ink);
}

.qualifier-wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 96px 64px;
}

.qualifier-section .section-header {
  border-bottom-color: var(--paper);
  border-bottom-style: dashed;
}

.qualifier-section .section-num { color: var(--accent-soft); }

.qualifier-section .section-title-serif { color: var(--paper); }

.qualifier-section .mono-label { color: var(--slate-light); }

.qualifier-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 80px;
  align-items: start;
}

.qualifier-intro {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: 22px;
  line-height: 1.4;
  color: var(--paper);
}

.qualifier-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.qual-item {
  display: grid;
  grid-template-columns: 40px 1fr;
  padding: 20px 0;
  border-bottom: 1px dashed rgba(244, 239, 227, 0.2);
  align-items: baseline;
}

.qual-item:last-child { border-bottom: none; }

.qual-mark {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 14px;
  color: var(--accent-soft);
  font-weight: 700;
}

.qual-text {
  font-size: 17px;
  line-height: 1.55;
  color: var(--paper);
}

.qual-text strong { color: var(--accent-soft); font-weight: 500; }

.qualifier-outro {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px dashed rgba(244, 239, 227, 0.2);
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: 20px;
  line-height: 1.5;
  color: var(--paper);
  max-width: 800px;
}

.qualifier-outro em { color: var(--accent-soft); font-style: italic; }

/* ============================ */
/* 007 — PILOT                  */
/* ============================ */

.pilot-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.pilot-headline {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
}

.pilot-headline em { font-style: italic; color: var(--accent); }

.pilot-prose {
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin-bottom: 24px;
}

.pilot-prose strong { color: var(--ink); font-weight: 600; }

.pilot-lighthouse {
  background: var(--paper-deep);
  border-left: 3px solid var(--accent);
  padding: 20px 24px;
  margin-top: 32px;
}

.pilot-lighthouse-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 8px;
}

.pilot-lighthouse-text {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-soft);
}

.pilot-lighthouse-text strong { color: var(--ink); font-weight: 600; }

.contract-card {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  position: relative;
}

.contract-marker {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 2px solid var(--accent);
}
.cm-tl { top: -2px; left: -2px; border-right: none; border-bottom: none; }
.cm-tr { top: -2px; right: -2px; border-left: none; border-bottom: none; }
.cm-bl { bottom: -2px; left: -2px; border-right: none; border-top: none; }
.cm-br { bottom: -2px; right: -2px; border-left: none; border-top: none; }

.contract-header {
  padding: 16px 28px;
  border-bottom: 1px solid var(--ink);
  background: var(--paper-deep);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.contract-title {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  font-weight: 700;
}

.contract-rev {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--slate);
}

.contract-body {
  padding: 8px 0;
}

.contract-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  padding: 14px 28px;
  border-bottom: 1px dashed var(--grid-dark);
  align-items: center;
}

.contract-row:last-child { border-bottom: none; }

.contract-key {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
  font-weight: 600;
}

.contract-val {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 15px;
  color: var(--ink);
  font-weight: 500;
}

.contract-val strong { color: var(--accent); font-weight: 700; }

.contract-val-large {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: 26px;
  color: var(--ink);
  letter-spacing: -0.01em;
}

/* ============================ */
/* 008 — FINAL CTA              */
/* ============================ */

.cta-section {
  background: var(--paper-deep);
  border-top: 1px solid var(--ink);
}

.cta-wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 96px 64px;
  position: relative;
}

.cta-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 80px;
  align-items: center;
}

.cta-headline {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-weight: 500;
  font-size: clamp(36px, 4.5vw, 54px);
  line-height: 1.05;
  letter-spacing: -0.022em;
  margin-bottom: 32px;
}

.cta-headline em { font-style: italic; color: var(--accent); }

.cta-prose {
  font-family: 'IBM Plex Serif', Georgia, serif;
  font-style: italic;
  font-size: 20px;
  line-height: 1.5;
  color: var(--ink-soft);
  max-width: 540px;
}

.cta-box {
  background: var(--paper-light);
  border: 1px solid var(--ink);
  padding: 36px 32px;
  position: relative;
}

.cta-box-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 24px;
  font-weight: 600;
}

.cta-email {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 24px;
  letter-spacing: 0;
}

.cta-email-line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px dashed var(--grid-dark);
}

.cta-email-line svg { flex-shrink: 0; }

.cta-button {
  width: 100%;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--paper);
  background: var(--ink);
  text-decoration: none;
  padding: 18px 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  transition: all 0.18s ease;
}

.cta-button:hover { background: var(--accent); }
.cta-button svg { transition: transform 0.18s ease; }
.cta-button:hover svg { transform: translateX(4px); }

/* ============================ */
/* FOOTER                       */
/* ============================ */

.footer {
  background: var(--ink);
  color: var(--paper);
  padding: 48px 64px;
}

.footer-wrap {
  max-width: 1440px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 48px;
  align-items: center;
}

.footer .logo { color: var(--paper); font-size: 17px; }
.footer .logo .b::after { background: var(--accent-soft); }

.footer-meta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--slate-light);
  text-transform: uppercase;
}

.footer-link {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--paper);
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.18s ease;
}

.footer-link:hover { color: var(--accent-soft); }

/* ============================ */
/* RESPONSIVE                   */
/* ============================ */

@media (max-width: 1100px) {
  .nav-meta { display: none; }
}

@media (max-width: 980px) {
  .nav { padding: 18px 24px; }
  .hero { grid-template-columns: 1fr; gap: 56px; padding: 56px 24px 80px; }
  .hero-headline { font-size: 38px; }
  .hero-sub { font-size: 17px; }
  .section { padding: 64px 24px; }
  .qualifier-wrap, .cta-wrap { padding: 64px 24px; }
  .problem-intro, .outcomes-wrap, .founder-wrap, .qualifier-grid, .pilot-wrap, .cta-grid { grid-template-columns: 1fr; gap: 40px; }
  .modules-grid { grid-template-columns: 1fr; }
  .field-log-header, .field-log-row { grid-template-columns: 40px 1.2fr 1fr 30px 1fr; padding-left: 16px; padding-right: 16px; font-size: 12px; }
  .fl-name { font-size: 14px; }
  .fl-before, .fl-after { font-size: 12px; }
  .footer-wrap { grid-template-columns: 1fr; gap: 24px; }
  .footer { padding: 32px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .paper-doc, .process-zone, .scan-line,
  .out-doc-1, .out-doc-2, .out-doc-3, .out-doc-4,
  .trust-line { animation: none; opacity: 1; }
}

/* ---- landing-only additions (do not affect portal) ---- */
.urgency-bar {
  background: var(--paper-deep);
  border-bottom: 1px solid var(--ink);
  padding: 9px 64px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  text-align: center;
}
.urgency-bar strong { color: var(--accent); font-weight: 700; }
.urgency-bar a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 980px){ .urgency-bar { padding: 8px 18px; font-size: 10px; } }

/* verdict table (auditor) */
.verdict-card { background: var(--paper-light); border: 1px solid var(--ink); }
.verdict-head { padding: 14px 24px; border-bottom: 1px solid var(--ink); background: var(--paper-deep);
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink); font-weight:600; display:flex; justify-content:space-between;}
.verdict-head span:last-child{ color:var(--accent);}
.verdict-row { display:flex; justify-content:space-between; align-items:center; padding:16px 24px; border-bottom:1px dashed var(--grid-dark);}
.verdict-row:last-child{ border-bottom:none;}
.verdict-name { font-family:'IBM Plex Sans',sans-serif; font-size:15px; font-weight:600; color:var(--ink);}
.verdict-cas { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--slate); margin-left:8px;}
.vpill { font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; padding:5px 12px; border:1px solid; }
.v-green { color:#3b6e4a; border-color:#3b6e4a; background:rgba(59,110,74,0.08);}
.v-amber { color:#9a6a1e; border-color:#9a6a1e; background:rgba(154,106,30,0.08);}
.v-red   { color:var(--accent); border-color:var(--accent); background:rgba(181,78,42,0.08);}
.verdict-note { font-family:'IBM Plex Mono',monospace; font-size:10px; color:var(--slate); padding:14px 24px; text-align:center; line-height:1.5; border-top:1px dashed var(--grid);}

.doc-note { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--slate); margin-top:20px; line-height:1.6;}
.doc-note strong { color:var(--ink); font-weight:600;}

/* discreet speed band */
.speed-band { max-width:1440px; margin:0 auto; padding:64px 64px; border-top:1px solid var(--ink); text-align:center;}
.speed-line { font-family:'IBM Plex Serif',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(22px,2.6vw,30px); letter-spacing:-0.01em; color:var(--ink); margin-bottom:16px;}
.speed-line em { color:var(--accent); font-style:italic;}
.speed-sub { font-size:16px; line-height:1.6; color:var(--slate); max-width:640px; margin:0 auto;}
@media (max-width:980px){ .speed-band{ padding:48px 24px;} }

/* FAQ */
.faq-list { max-width:900px; }
.faq-item { border-top:1px dashed var(--grid-dark); }
.faq-item:last-child { border-bottom:1px dashed var(--grid-dark); }
.faq-item summary { list-style:none; cursor:pointer; padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:24px;
  font-family:'IBM Plex Sans',sans-serif; font-size:18px; font-weight:500; color:var(--ink); }
.faq-item summary::-webkit-details-marker{ display:none;}
.faq-item summary::after { content:'+'; font-family:'IBM Plex Mono',monospace; font-size:22px; color:var(--accent); flex-shrink:0;}
.faq-item[open] summary::after { content:'\2212';}
.faq-answer { padding:0 0 24px; font-size:16px; line-height:1.65; color:var(--ink-soft); max-width:760px;}
.faq-answer strong { color:var(--ink); font-weight:600;}

/* contact form */
.demo-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.df-group { display:flex; flex-direction:column; gap:6px; }
.df-full { grid-column:1 / -1; }
.df-group label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--slate); font-weight:600;}
.df-group input, .df-group select, .df-group textarea {
  font-family:'IBM Plex Sans',sans-serif; font-size:15px; color:var(--ink);
  background:var(--paper); border:1px solid var(--ink); padding:12px 14px; outline:none; }
.df-group input:focus, .df-group select:focus, .df-group textarea:focus { border-color:var(--accent); }
.df-group textarea { resize:vertical; min-height:90px; }
.df-submit { margin-top:8px; }
.df-msg { font-family:'IBM Plex Mono',monospace; font-size:12px; padding:12px 14px; border:1px solid var(--accent); color:var(--accent); }
.df-success { text-align:center; padding:32px 0; }
.df-success-tick { font-family:'IBM Plex Mono',monospace; font-size:32px; color:var(--accent); margin-bottom:12px;}
@media (max-width:980px){ .demo-form { grid-template-columns:1fr; } }

/* ---- flavour matching + platform-vision (landing-only) ---- */
.fm-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.fm-tag { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--slate); border:1px solid var(--grid-dark); padding:7px 12px; }
.ext-wrap { max-width:920px; }
.ext-lead { font-family:'IBM Plex Serif',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(24px,3vw,34px); letter-spacing:-0.01em; color:var(--ink); margin-bottom:24px; }
.ext-body { font-size:17px; line-height:1.65; color:var(--ink-soft); margin-bottom:40px; max-width:760px; }
.ext-body strong { color:var(--ink); font-weight:600; }
.ext-flow { display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.ext-node { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink); background:var(--paper-light); border:1px solid var(--ink); padding:14px 18px; font-weight:500; }
.ext-plus { font-family:'IBM Plex Mono',monospace; font-size:18px; color:var(--accent); font-weight:700; }
.ext-node-open { color:var(--accent); border-style:dashed; border-color:var(--accent); background:transparent; }
@media (max-width:980px){ .ext-flow{ flex-direction:column; align-items:stretch; } .ext-plus{ text-align:center; } }
@keyframes fmScan2 { 0%,30%{opacity:0;transform:translateX(0);} 34%{opacity:1;} 44%{opacity:1;transform:translateX(150px);} 48%,100%{opacity:0;transform:translateX(150px);} }
@keyframes fmReveal2 { 0%,50%{opacity:0;} 60%,90%{opacity:1;} 96%,100%{opacity:0;} }
@keyframes fmGlow2 { 0%,8%{opacity:0.35;} 40%,60%{opacity:1;} 90%,100%{opacity:0.35;} }
.fm-scan{ animation:fmScan2 8s ease-out infinite; transform-box:fill-box; }
.fm-out{ animation:fmReveal2 8s ease infinite; transform-box:fill-box; }
.fm-proc{ animation:fmGlow2 8s ease-in-out infinite; transform-box:fill-box; }
@media (prefers-reduced-motion: reduce){ .fm-scan,.fm-out,.fm-proc{ animation:none; opacity:1; } }

.founder-photo { width:100%; aspect-ratio:1/1; object-fit:cover; border:1px solid var(--ink); margin-bottom:20px; display:block; filter:grayscale(0.12); }
.softcta-band { background:var(--paper-light); border-top:1px solid var(--ink); }
.softcta-inner { max-width:1440px; margin:0 auto; padding:56px 64px; display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center; }
.softcta-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:12px; }
.softcta-headline { font-family:'IBM Plex Serif',Georgia,serif; font-weight:500; font-size:clamp(24px,3vw,32px); letter-spacing:-0.01em; color:var(--ink); margin-bottom:12px; }
.softcta-sub { font-size:15px; line-height:1.55; color:var(--slate); max-width:460px; }
.softcta-form { display:flex; gap:8px; flex-wrap:wrap; }
.softcta-form input[type=email] { flex:1; min-width:200px; font-family:'IBM Plex Sans',sans-serif; font-size:15px; color:var(--ink); background:var(--paper); border:1px solid var(--ink); padding:14px 16px; outline:none; }
.softcta-form input[type=email]:focus { border-color:var(--accent); }
.softcta-form button { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; font-weight:500; color:var(--paper); background:var(--ink); border:none; padding:14px 22px; cursor:pointer; transition:background 0.18s ease; }
.softcta-form button:hover { background:var(--accent); }
.softcta-success { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--accent); line-height:1.5; }
@media (max-width:980px){ .softcta-inner{ grid-template-columns:1fr; gap:24px; padding:40px 24px; } }

.founder-linkedin { display:inline-flex; align-items:center; gap:8px; margin-top:24px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent); text-decoration:none; font-weight:600; border-bottom:1px solid transparent; transition:border-color 0.18s ease; }
.founder-linkedin:hover { border-color:var(--accent); }

/* footer compliance line */
.footer-compliance { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.1em; color:var(--slate-light); text-transform:uppercase; margin-top:6px; line-height:1.7;}
@media (max-width:1100px){ .nav-meta{ display:flex; gap:16px; } .nav-meta-extra{ display:none; } }

/* ============================ */
/* RESTRUCTURE ADDITIONS 2026-09 */
/* ============================ */
.nav-links { display:flex; gap:28px; align-items:center; }
.nav-item { position:relative; }
.nav-item > a, .nav-item > span { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--slate); text-decoration:none; cursor:pointer; padding:8px 0; display:inline-block; }
.nav-item > a:hover, .nav-item:hover > span { color:var(--ink); }
.nav-item > span.has-drop::after { content:' ▾'; font-size:9px; }
.nav-drop { display:none; position:absolute; top:100%; left:-16px; min-width:250px; background:var(--paper-light); border:1px solid var(--ink); padding:6px 0; z-index:200; }
.nav-item:hover .nav-drop { display:block; }
.nav-drop a { display:flex; justify-content:space-between; gap:16px; padding:11px 18px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px dashed var(--grid-dark); }
.nav-drop a:last-child { border-bottom:none; }
.nav-drop a:hover { background:var(--paper-deep); }
.nav-drop .tag { font-size:9px; color:var(--slate); letter-spacing:0.14em; }
.nav-drop .tag-beta { color:var(--accent); }
@media (max-width:1100px){ .nav-links{ display:none; } }

.pill { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; padding:4px 9px; border:1px solid; vertical-align:middle; white-space:nowrap; }
.pill-live { color:#3b6e4a; border-color:#3b6e4a; background:rgba(59,110,74,0.08); }
.pill-beta { color:var(--accent); border-color:var(--accent); background:rgba(181,78,42,0.08); }
.pill-soon { color:var(--slate); border-color:var(--grid-dark); background:transparent; }
.pill-inline { margin-left:12px; position:relative; top:-3px; }

.module-status { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.tool-list { list-style:none; margin:18px 0 0; padding:0; }
.tool-list li { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 0; border-top:1px dashed var(--grid-dark); font-size:14px; color:var(--ink); }
.tool-list li span:first-child { font-weight:500; }
.tool-list li small { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--slate); text-align:right; }

.adv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--ink); background:var(--paper-light); }
.adv { padding:28px 28px 26px; border-right:1px dashed var(--grid-dark); border-bottom:1px dashed var(--grid-dark); }
.adv:nth-child(3n) { border-right:none; }
.adv:nth-last-child(-n+3) { border-bottom:none; }
.adv .module-id { display:block; margin-bottom:10px; }
.adv h3 { font-family:'IBM Plex Serif',Georgia,serif; font-style:italic; font-weight:500; font-size:22px; margin-bottom:8px; letter-spacing:-0.01em; }
.adv p { font-size:14px; line-height:1.55; color:var(--ink-soft); }
@media (max-width:980px){ .adv-grid{ grid-template-columns:1fr;} .adv{ border-right:none;} .adv:nth-last-child(-n+3){ border-bottom:1px dashed var(--grid-dark);} .adv:last-child{ border-bottom:none;} }

.doors { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.door { border:1px solid rgba(244,239,227,0.35); padding:36px 32px; display:flex; flex-direction:column; }
.door-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent-soft); font-weight:700; margin-bottom:14px; }
.door h3 { font-family:'IBM Plex Serif',Georgia,serif; font-style:italic; font-weight:500; font-size:26px; color:var(--paper); margin-bottom:14px; letter-spacing:-0.01em; }
.door p { font-size:15px; line-height:1.6; color:var(--paper); opacity:0.9; margin-bottom:12px; }
.door-note { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--slate-light); line-height:1.6; margin-top:auto; padding-top:16px; }
.door-cta { display:inline-block; margin-top:16px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--paper); border:1px solid var(--paper); padding:12px 20px; text-decoration:none; transition:all 0.18s ease; align-self:flex-start; }
.door-cta:hover { background:var(--paper); color:var(--ink); }
@media (max-width:980px){ .doors{ grid-template-columns:1fr;} }

.svc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:36px; }
.svc { border:1px solid var(--ink); background:var(--paper-light); padding:24px 22px; }
.svc .module-id { display:block; margin-bottom:12px; }
.svc h4 { font-family:'IBM Plex Serif',Georgia,serif; font-style:italic; font-weight:500; font-size:20px; margin-bottom:8px; }
.svc p { font-size:14px; line-height:1.55; color:var(--ink-soft); }
@media (max-width:980px){ .svc-grid{ grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .svc-grid{ grid-template-columns:1fr;} }

.inline-link { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); text-decoration:none; font-weight:600; border-bottom:1px solid transparent; transition:border-color 0.18s ease; }
.inline-link:hover { border-color:var(--accent); }
.section-cta { margin-top:32px; }
.breadcrumb { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--slate); }
.breadcrumb a { color:var(--slate); text-decoration:none; }
.breadcrumb a:hover { color:var(--ink); }
.lead { font-size:18px; line-height:1.6; color:var(--ink-soft); max-width:760px; margin-bottom:40px; }
.lead strong { color:var(--ink); font-weight:500; }
