/* sections.css — all page sections. Ported from v3.2 + NEW kta/buyers + plate layering. */

/* plate-bearing sections: image plate sits behind, content rides above */
.has-plate { position: relative; isolation: isolate; }
.has-plate > .container { position: relative; z-index: 1; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  align-items: end;
  padding: 112px var(--page-x) 48px;
  background: var(--ink);
  color: var(--paper);
  isolation: isolate;
}
.hero__canvas,
.hero__grain { position: absolute; inset: 0; }
.hero__canvas { z-index: 2; opacity: .84; pointer-events: none; }
.hero__grain {
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent 0 19.9%, rgba(242, 237, 227, .08) 20% 20.1%, transparent 20.2% 39.9%, rgba(242, 237, 227, .08) 40% 40.1%, transparent 40.2% 59.9%, rgba(242, 237, 227, .08) 60% 60.1%, transparent 60.2% 79.9%, rgba(242, 237, 227, .08) 80% 80.1%, transparent 80.2%),
    linear-gradient(0deg, transparent 0 24.9%, rgba(242, 237, 227, .06) 25% 25.1%, transparent 25.2% 49.9%, rgba(242, 237, 227, .06) 50% 50.1%, transparent 50.2% 74.9%, rgba(242, 237, 227, .06) 75% 75.1%, transparent 75.2%);
}
/* hero plate parallax — image layer moves, scrim stays.
   Scroll (--hero-y) drives Y-lift + scale; pointer (--hero-px/py) adds a subtle drift.
   The scale always over-covers the small pointer shift, so no edge ever shows. */
.hero .plate__img {
  transform:
    translate3d(calc(var(--hero-px) * 24px), calc(var(--hero-y) * -60px + var(--hero-py) * 16px), 0)
    scale(calc(1.05 + (var(--hero-y) * .06)));
  opacity: .9;
}
.hero .plate__scrim {
  background:
    radial-gradient(circle at 62% 48%, rgba(242, 237, 227, .14), transparent 26%),
    linear-gradient(90deg, rgba(20, 24, 30, .95), rgba(20, 24, 30, .28) 52%, rgba(20, 24, 30, .82)),
    linear-gradient(to bottom, rgba(20, 24, 30, .72), rgba(20, 24, 30, .1) 40%, rgba(20, 24, 30, .88));
}

.hero__content {
  position: relative;
  z-index: 3;
  width: min(1220px, 100%);
  display: grid;
  gap: clamp(28px, 6vh, 72px);
}
.hero__meta { display: flex; justify-content: space-between; gap: 24px; color: rgba(242, 237, 227, .72); }
.hero__meta img { width: 86px; filter: brightness(0) invert(1); opacity: .74; }
.hero__title { max-width: 1080px; }
.hero__title h1 span { display: block; color: var(--sage-soft); font-style: italic; }
.hero__title .lead { max-width: 690px; margin-top: 28px; color: rgba(242, 237, 227, .82); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.diagnostic-tile {
  position: absolute;
  z-index: 4;
  right: var(--page-x);
  bottom: 48px;
  width: min(330px, calc(100vw - 36px));
  padding: 20px;
  border: 1px solid rgba(242, 237, 227, .2);
  background: rgba(20, 24, 30, .5);
  backdrop-filter: blur(16px);
}
.diagnostic-tile dl { display: grid; gap: 14px; margin: 20px 0 0; }
.diagnostic-tile div { display: grid; grid-template-columns: 78px 1fr; gap: 18px; }
.diagnostic-tile dt { color: var(--brass); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.diagnostic-tile dd { margin: 0; color: rgba(242, 237, 227, .86); }

.hero__scroll {
  position: absolute;
  left: var(--page-x);
  bottom: 22px;
  z-index: 4;
  display: grid;
  grid-template-columns: auto 120px;
  align-items: center;
  gap: 12px;
  color: rgba(242, 237, 227, .6);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero__scroll i { height: 1px; background: rgba(242, 237, 227, .24); }
.hero__scroll i::before {
  content: "";
  display: block;
  width: 38%;
  height: 100%;
  background: var(--oxide);
  animation: scroll-line 1.8s ease-in-out infinite;
}
@keyframes scroll-line { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(190%); } }

/* ---------- shared section frame ---------- */
.thesis,
.apa,
.kta,
.fault-map,
.audit,
.engagements,
.buyers,
.founder,
.contact { position: relative; padding: clamp(88px, 12vw, 170px) 0; }

.section-head { width: min(860px, 100%); margin-bottom: 64px; }
.section-head p:not(.eyebrow) {
  max-width: 720px;
  margin-top: 24px;
  color: rgba(20, 24, 30, .72);
  font-size: 20px;
}

/* ---------- Thesis → The Gap (B2: pinned 3-movement scrub) ----------
   Static DOM = the accessible dossier (movements stack, all visible). On desktop with
   motion allowed, js/modules/gap.js adds .gap--staged and the movements overlay + cross-
   fade (BUILD → OVERLOAD → BRIDGE) inside a pinned, viewport-height stage. */
.thesis { background: var(--paper); }

.gap { position: relative; z-index: 1; }
.gap__inner { display: grid; gap: clamp(52px, 8vw, 104px); }

.gap__move { max-width: 768px; }
.gap__move > h2 { margin-top: 16px; }
.gap__steps { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 16px; }
.gap__steps li {
  position: relative;
  padding-left: 30px;
  color: rgba(20, 24, 30, .76);
  font-size: clamp(18px, 1.5vw, 21px);
  line-height: 1.45;
}
.gap__steps li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .72em;
  width: 16px;
  height: 1px;
  background: var(--oxide);
}
.gap__lead {
  margin-top: 22px;
  max-width: 720px;
  color: rgba(20, 24, 30, .8);
  font-size: clamp(20px, 1.9vw, 26px);
  line-height: 1.4;
}
.gap__seam {
  margin-top: 34px;
  color: var(--oxide);
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(28px, 3.6vw, 52px);
  line-height: .98;
}
.gap__rail { display: none; }

/* Staged: pin active (desktop + motion). Movements overlay + cross-fade, centered in a
   viewport-height stage; a hairline at the foot tracks scrub progress. */
.thesis.gap--staged { min-height: 100vh; padding-top: 0; padding-bottom: 0; display: grid; align-items: center; }
.thesis.gap--staged .gap__inner { position: relative; display: block; min-height: 56vh; }
.thesis.gap--staged .gap__move {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  max-width: 768px;
}
.thesis.gap--staged .gap__rail {
  display: block;
  position: absolute;
  left: 0;
  bottom: -7vh;
  width: min(360px, 60%);
  height: 2px;
  background: var(--line);
}
.thesis.gap--staged .gap__rail span {
  display: block;
  height: 100%;
  width: var(--gap-progress, 0%);
  background: var(--oxide);
}

/* ---------- APA cockpit ---------- */
.apa { background: var(--bone); }
.apa-cockpit {
  display: grid;
  grid-template-columns: 250px minmax(0, .95fr) minmax(320px, 1fr);
  grid-template-rows: auto auto;
  gap: 1px;
  border: 1px solid var(--line-strong);
  background: var(--line-strong);
}
.apa-cockpit__nav,
.apa-panel,
.apa-visual,
.seam-panel { background: var(--bone); }
.apa-cockpit__nav { grid-row: 1 / 3; display: grid; }
.apa-cockpit__nav button {
  min-height: 92px;
  padding: 18px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: rgba(20, 24, 30, .62);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  line-height: 1.4;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}
.apa-cockpit__nav button.is-active { background: var(--ink); color: var(--paper); }
.apa-panel { min-height: 470px; display: grid; align-content: space-between; gap: 34px; padding: clamp(26px, 4vw, 46px); }
.apa-panel h3 { margin: 20px 0; }
.apa-panel p:not(.mono) { color: rgba(20, 24, 30, .75); font-size: 20px; }
.apa-panel__output { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line-strong); }
.apa-panel__output span { color: var(--oxide); font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.apa-panel__output strong { font-weight: 400; font-size: 22px; line-height: 1.25; }
.apa-deeper {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  color: var(--oxide);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
}
.apa-deeper[hidden] { display: none; }
.apa-deeper::after { content: "\2192"; }
.apa-deeper:hover { color: var(--ink); }

.apa-visual { position: relative; min-height: 470px; overflow: hidden; isolation: isolate; }
.apa-visual .plate__scrim { background: rgba(232, 226, 213, .72); }
.apa-stack { position: absolute; inset: 34px; z-index: 2; display: grid; grid-template-rows: repeat(5, 1fr); gap: 12px; }
.apa-stack span {
  display: grid;
  place-items: center;
  border: 1px solid rgba(20, 24, 30, .38);
  background: rgba(242, 237, 227, .44);
  color: var(--slate);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .14em;
  /* B8 — animate the active layer as the cockpit moves between tabs */
  transition: background .4s ease, color .4s ease, border-color .4s ease, transform .4s cubic-bezier(.2, .8, .18, 1);
}
.apa-stack span.is-active { background: var(--oxide); color: var(--paper); border-color: var(--oxide); transform: scale(1.06); z-index: 1; }

/* B8 — panel content fades up on tab change (class toggled by apa-cockpit.js) */
.apa-panel.is-changing [data-layer-kicker],
.apa-panel.is-changing [data-layer-title],
.apa-panel.is-changing [data-layer-body] { animation: apa-fade .45s cubic-bezier(.2, .8, .18, 1); }
@keyframes apa-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.seam-panel { grid-column: 2 / 4; padding: 26px; border-top: 1px solid var(--line-strong); }
.seam-panel h4 { margin: 14px 0 8px; }
.seam-panel p:not(.mono) { max-width: 780px; color: rgba(20, 24, 30, .72); }

/* ---------- KTA (NEW, co-equal) ---------- */
.kta { background: var(--ink); color: var(--paper); overflow: hidden; }
.kta .plate__img { opacity: .5; }
.kta .plate__scrim { background: linear-gradient(rgba(20, 24, 30, .82), rgba(20, 24, 30, .94)); }
.kta .eyebrow { color: var(--oxide-bright); }
.kta__head { width: min(900px, 100%); margin-bottom: 56px; }
.kta__head h2 { color: var(--paper); }
.kta__head p { max-width: 760px; margin-top: 24px; color: rgba(242, 237, 227, .8); font-size: 20px; }
/* B5 — interactive KPI tree topology */
.kta__topology {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .92fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
}
.kta__tree { margin: 0; }
.kta__tree svg { display: block; width: 100%; height: auto; overflow: visible; }
.kta__base line { stroke: var(--sage-soft); stroke-width: 1.2; opacity: .32; }
.kta__base circle { fill: rgba(181, 190, 174, .42); stroke: var(--sage-soft); stroke-width: 1; opacity: .8; }
.kta__overlay { opacity: 0; transition: opacity .35s ease; }
[data-active="composition"] .kta__overlay[data-axis="composition"],
[data-active="altitude"] .kta__overlay[data-axis="altitude"],
[data-active="time"] .kta__overlay[data-axis="time"] { opacity: 1; }
.kta__overlay .hl { stroke: var(--oxide-bright); stroke-width: 2; fill: none; }
.kta__overlay .hl-node { fill: var(--oxide-bright); }
.kta__overlay .band { stroke: var(--oxide-bright); stroke-width: 1; stroke-dasharray: 3 5; opacity: .85; }
.kta__overlay .seam { stroke: var(--oxide-bright); stroke-width: 1.6; }
.kta__svg-label { fill: var(--brass); font-family: var(--mono); font-size: 11px; letter-spacing: .04em; }

.kta__axes { display: grid; gap: 1px; border: 1px solid var(--line-light); background: var(--line-light); }
.kta__coinage {
  display: block;
  width: 100%;
  text-align: left;
  padding: clamp(18px, 2.2vw, 28px);
  border: 0;
  border-left: 3px solid transparent;
  background: rgba(20, 24, 30, .68);
  color: inherit;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease;
}
.kta__coinage:hover { background: rgba(20, 24, 30, .9); }
.kta__coinage[aria-pressed="true"] { background: rgba(20, 24, 30, .96); border-left-color: var(--oxide-bright); }
.kta__coinage .mono { color: var(--brass); }
.kta__coinage h3 { margin: 8px 0 8px; color: var(--sage-soft); font-size: clamp(22px, 2.4vw, 31px); transition: color .25s ease; }
.kta__coinage[aria-pressed="true"] h3 { color: var(--oxide-bright); }
.kta__coinage span:not(.mono) { display: block; color: rgba(242, 237, 227, .78); font-size: 16px; line-height: 1.5; }

/* ---------- Fault map ---------- */
.fault-map { background: var(--paper); }
.network {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 1px;
  border: 1px solid var(--line-strong);
  background: var(--line-strong);
}
.network__stage,
.network__readout { background: var(--paper); }
.network__stage { position: relative; min-height: 560px; overflow: hidden; isolation: isolate; }
.network__stage .plate__scrim { background: rgba(242, 237, 227, .84); }
.network__stage svg { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; }
/* Connectors: solid low-opacity ink hairlines (DrawSVG strokes them in on enter; the
   plugin owns dasharray, so none is set here — no-JS/reduced-motion shows them full). */
.network__stage path {
  fill: none;
  stroke: rgba(20, 24, 30, .34);
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}
.node {
  position: absolute;
  z-index: 3;
  min-width: 86px;
  min-height: 42px;
  /* --mx/--my: magnetic pull (JS); --ns: hover/active scale — composed in one transform */
  --ns: 1;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(242, 237, 227, .84);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transform: translate(var(--mx, 0px), var(--my, 0px)) scale(var(--ns));
  transition: background .2s ease, border-color .2s ease, transform .18s cubic-bezier(.2, .8, .18, 1);
}
.node.is-active,
.node:hover { background: var(--oxide); border-color: var(--oxide); color: var(--paper); --ns: 1.06; }

/* Active-node ping — a single restrained oxide ring that expands + fades (no glow). */
.node.is-active::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 999px;
  border: 1px solid var(--oxide);
  opacity: 0;
  animation: node-ping 2.6s ease-out infinite;
  pointer-events: none;
}
@keyframes node-ping {
  0% { transform: scale(1); opacity: .5; }
  70%, 100% { transform: scale(1.5); opacity: 0; }
}
.node--oem { left: 9%; top: 18%; }
.node--importer { left: 42%; top: 9%; }
.node--dealer { right: 10%; top: 20%; }
.node--repairer { right: 14%; bottom: 18%; }
.node--insurer { left: 12%; top: 48%; }
.node--fleet { left: 43%; bottom: 12%; }
.node--parts { left: 34%; top: 43%; }
.node--data { right: 32%; top: 48%; }

.network__readout { display: grid; align-content: space-between; gap: 28px; min-height: 560px; padding: 30px; }
.network__readout p:not(.mono) { color: rgba(20, 24, 30, .74); font-size: 19px; }
.network__readout dl { display: grid; gap: 18px; margin: 0; }
.network__readout div { padding-top: 14px; border-top: 1px solid var(--line); }
.network__readout dt { color: var(--oxide); font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.network__readout dd { margin: 8px 0 0; }

.pattern-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 42px;
  border: 1px solid var(--line);
  background: var(--line);
}
.pattern-strip article { min-height: 280px; display: grid; align-content: space-between; padding: 26px; background: var(--paper); }
.pattern-strip span { color: var(--blue); font-family: var(--mono); font-size: 11px; }
.pattern-strip p { color: rgba(20, 24, 30, .72); }

/* ---------- Audit ---------- */
.audit { background: var(--ink); color: var(--paper); }
.audit .eyebrow { color: var(--oxide-bright); }
.audit__grid {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(360px, 1fr) 330px;
  gap: 1px;
  border: 1px solid var(--line-light);
  background: var(--line-light);
}
.audit__intro,
.audit-board,
.audit-result { padding: clamp(24px, 4vw, 42px); background: var(--ink); }
.audit__intro p:not(.eyebrow) { margin-top: 20px; color: rgba(242, 237, 227, .72); font-size: 20px; }
.audit-board { display: grid; gap: 1px; padding: 0; background: var(--line-light); }
.audit-board label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px 34px;
  align-items: center;
  gap: 18px;
  min-height: 82px;
  padding: 20px;
  background: var(--ink);
}
.audit-board span { color: rgba(242, 237, 227, .84); }
.audit-board input { width: 100%; accent-color: var(--oxide); }
.audit-board output { font-family: var(--mono); color: var(--brass); }
.audit-result {
  position: relative;
  display: grid;
  align-content: space-between;
  gap: 22px;
  overflow: hidden;
  isolation: isolate;
}
.audit-result > * { position: relative; z-index: 2; }
.audit-result .plate__scrim { background: linear-gradient(rgba(20, 24, 30, .78), rgba(20, 24, 30, .94)); }
.audit-result strong { font-family: var(--sans); font-size: clamp(74px, 8vw, 124px); line-height: .82; }
.audit-result i { display: block; height: 7px; background: rgba(242, 237, 227, .16); overflow: hidden; }
.audit-result b { display: block; width: var(--risk, 68%); height: 100%; background: var(--oxide); transition: width .5s cubic-bezier(.2, .8, .18, 1); }
.audit-result p:not(.mono) { color: rgba(242, 237, 227, .8); }

/* ---------- Engagements → instrument rail (B6) ---------- */
.engagements { background: var(--bone); }
.instrument-rail { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-strong); }
.instrument {
  display: grid;
  grid-template-columns: clamp(56px, 8vw, 104px) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 56px);
  align-items: baseline;
  padding: clamp(26px, 3.4vw, 46px) 0;
  border-bottom: 1px solid var(--line-strong);
}
.instrument__index { font-family: var(--mono); font-size: clamp(28px, 4vw, 52px); color: var(--brass); line-height: 1; }
.instrument__body { display: grid; gap: 10px; max-width: 780px; }
.instrument__body .mono { color: var(--oxide); }
.instrument__body h3 { font-size: clamp(24px, 2.8vw, 38px); }
.instrument__body p:not(.mono) { color: rgba(20, 24, 30, .72); font-size: 19px; }

/* ---------- Buyers (interactive doorways, B6) ---------- */
.buyers { background: var(--paper); }
.buyer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  border: 1px solid var(--line-strong);
  background: var(--line-strong);
}
.buyer {
  min-height: 260px;
  display: grid;
  align-content: space-between;
  gap: 18px;
  padding: 26px;
  border: 0;
  background: var(--paper);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .25s ease;
}
.buyer:hover,
.buyer:focus-visible { background: var(--bone); }
.buyer > span:first-child { color: var(--brass); font-family: var(--mono); font-size: 11px; }
.buyer h3 { font-size: clamp(20px, 2vw, 26px); line-height: 1.1; }
.buyer p { color: var(--oxide); font-style: italic; font-size: 19px; line-height: 1.3; }
.buyer__cue { color: var(--slate); opacity: 0; transition: opacity .25s ease; }
.buyer:hover .buyer__cue,
.buyer:focus-visible .buyer__cue { opacity: 1; }
.buyer-status { margin-top: 22px; color: var(--slate); }

/* ---------- Founder ---------- */
.founder { background: var(--paper); }
.founder__grid { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1fr); gap: clamp(36px, 7vw, 90px); align-items: end; }
.founder figure { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--bone); }
.founder figcaption {
  position: absolute;
  z-index: 2;
  left: 18px;
  bottom: 18px;
  padding: 8px 10px;
  background: rgba(20, 24, 30, .82);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.founder p:not(.eyebrow) { max-width: 760px; margin-top: 28px; color: rgba(20, 24, 30, .74); font-size: 21px; line-height: 1.48; }
.founder .founder__signature { margin-top: 22px; color: var(--oxide); font-family: var(--mono); font-size: 11px; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }

/* ---------- Contact ---------- */
.contact { overflow: hidden; background: var(--ink); color: var(--paper); }
.contact .plate__scrim {
  background: linear-gradient(90deg, rgba(20, 24, 30, .96), rgba(20, 24, 30, .5), rgba(20, 24, 30, .92));
}
.contact .plate__img { opacity: .22; }
.contact__grid { display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: clamp(40px, 7vw, 100px); align-items: end; }
.contact .eyebrow { color: var(--oxide-bright); }
.contact p:not(.eyebrow):not(.mono) { max-width: 680px; margin-top: 24px; color: rgba(242, 237, 227, .74); font-size: 21px; }
.contact-form {
  display: grid;
  gap: 14px;
  padding: 24px;
  border: 1px solid var(--line-light);
  background: rgba(20, 24, 30, .52);
  backdrop-filter: blur(18px);
}
.contact-form label { display: grid; gap: 8px; color: rgba(242, 237, 227, .74); font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.contact-form input,
.contact-form textarea {
  width: 100%;
  border: 1px solid rgba(242, 237, 227, .22);
  background: rgba(242, 237, 227, .08);
  color: var(--paper);
  padding: 12px;
  font-family: var(--serif);
  font-size: 17px;
  text-transform: none;
}
.contact-form .turnstile { min-height: 65px; }
.contact-form__status { min-height: 1.25rem; font-family: var(--mono); font-size: 11px; letter-spacing: .04em; }
.contact-form__status .is-error { color: var(--oxide-bright); }
.contact-form__status .is-meta { color: rgba(242, 237, 227, .55); letter-spacing: .12em; text-transform: uppercase; }
.contact-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-success { display: grid; gap: 12px; padding: 24px; border: 1px solid var(--line-light); background: rgba(20, 24, 30, .5); backdrop-filter: blur(16px); }
.contact-success h3 { color: var(--paper); }
.contact-success p { color: rgba(242, 237, 227, .75); }

/* ---------- Responsive ---------- */
@media (max-width: 1120px) {
  .apa-cockpit,
  .kta__topology,
  .network,
  .audit__grid,
  .buyer-grid,
  .founder__grid,
  .contact__grid { grid-template-columns: 1fr; }
  .apa-cockpit__nav { grid-row: auto; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .apa-cockpit__nav button { min-height: 70px; padding: 12px; font-size: 9px; }
  .seam-panel { grid-column: auto; }
  .pattern-strip { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  body { font-size: 16px; }
  .hero { min-height: 100svh; display: block; padding: 94px 18px 40px; }
  .hero__meta { display: grid; gap: 16px; }
  .hero__meta .mono { max-width: 320px; font-size: 9px; line-height: 1.55; letter-spacing: .09em; word-break: break-word; }
  .hero__content { gap: 26px; }
  .hero__title h1 { font-size: clamp(52px, 15vw, 62px); line-height: .88; }
  .hero__title .lead { font-size: 18px; }
  .hero__actions { display: grid; }
  .diagnostic-tile { position: relative; left: auto; right: auto; bottom: auto; width: 100%; margin-top: 22px; padding: 14px; }
  .diagnostic-tile dl { gap: 8px; margin-top: 12px; }
  .diagnostic-tile div { grid-template-columns: 64px 1fr; }
  .hero__scroll { display: none; }
  .thesis, .apa, .kta, .fault-map, .audit, .engagements, .buyers, .founder, .contact { padding: 78px 0; }
  .section-head { margin-bottom: 38px; }
  .apa-cockpit__nav { grid-template-columns: 1fr; }
  .apa-panel, .apa-visual, .network__stage, .network__readout { min-height: 390px; }
  .buyer-grid { grid-template-columns: 1fr; }
  .node { min-width: 68px; min-height: 36px; font-size: 9px; }
  .audit-board label { grid-template-columns: 1fr 32px; }
  .audit-board input { grid-column: 1 / -1; order: 3; }
  .contact-form { padding: 18px; }
}
