/* ============================================================
   EtooFinance landing — built on No Code design tokens.
   Only DS tokens (--*) used. tokens.css linked separately in <head>.
   Single breakpoint: 1024px. ≥1024 = desktop. <1024 = mobile stack.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--fg);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-feature-settings: "tnum" 1, "lnum" 1;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

::selection { background: var(--accent-soft); color: var(--ink); }

/* ─── Skip link & focus ────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--s4);
  z-index: 100;
  background: var(--ink);
  color: var(--fg-invert);
  padding: var(--s3) var(--s4);
  border-radius: var(--r-md);
  font-weight: 500;
  font-size: var(--fs-ui);
}
.skip-link:focus { top: var(--s3); }

:focus-visible {
  /* accent-strong (#4F7A12 ~5.1:1) — plain --accent green is ~2.8:1 and fails 1.4.11 */
  outline: 2px solid var(--accent-strong);
  outline-offset: 2px;
  border-radius: var(--r-xs);
}

.vh {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ─── Page container ───────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--s5);
}
@media (min-width: 1024px) {
  .container { padding-inline: var(--s8); }
}

.section { padding-block: var(--s12); border-top: 1px solid var(--border); }
.section:first-of-type { border-top: 0; }
@media (min-width: 1024px) {
  .section { padding-block: 96px; }
}
.section--mute { background: var(--paper-soft); }

.section__eyebrow {
  font-size: var(--fs-tag);
  font-weight: 500;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  color: var(--fg-mute);
  margin: 0 0 var(--s4);
}
.section__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 28px;
  line-height: var(--lh-snug);
  letter-spacing: var(--tr-snug);
  margin: 0;
  max-width: 760px;
  text-wrap: pretty;
}
.section__sub {
  margin: var(--s4) 0 0;
  color: var(--fg-mute-aa);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  max-width: 640px;
}
@media (min-width: 1024px) {
  .section__title { font-size: var(--fs-marketing-h2); }
}

.prose {
  max-width: 720px;
  font-size: var(--fs-body);
  line-height: var(--lh-loose);
  color: var(--ink-80);
}
.prose p + p { margin-top: var(--s4); }

/* ─── Buttons (DS web button — radius 8, 40px, DM Sans) ────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  height: 40px;
  padding: 0 var(--s4);
  border-radius: var(--r-md);
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: var(--fs-ui);
  line-height: 1.2;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink);
  text-decoration: none;
  transition: opacity var(--dur) var(--ease-out), background var(--dur) var(--ease-out);
  white-space: nowrap;
}
.btn--primary { background: var(--ink); color: var(--fg-invert); box-shadow: var(--shadow-1); }
.btn--primary:hover { background: var(--ink-80); }
.btn--secondary { background: var(--paper); color: var(--ink); border-color: var(--border); }
.btn--secondary:hover { background: var(--paper-soft); }

.btn .icon { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* ─── Nav ──────────────────────────────────────────────────── */
.nav {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--border);
}
.nav__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--s5);
  min-height: 64px;
  padding-block: var(--s3);
}
.brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--ink);
  white-space: nowrap;
}
.brand:hover { color: var(--ink); }

.nav__links {
  display: flex;
  align-items: center;
  gap: var(--s5);
  overflow-x: auto;
  scrollbar-width: none;
}
.nav__links::-webkit-scrollbar { display: none; }
.nav__links a {
  font-size: var(--fs-ui);
  font-weight: 500;
  color: var(--ink-80);
  white-space: nowrap;
  padding: var(--s2) 0;
  transition: color var(--dur);
}
.nav__links a:hover,
.nav__links a:focus-visible { color: var(--ink); }

.nav__cta { display: inline-flex; gap: var(--s2); }
.nav__cta .btn--secondary { display: none; }

@media (max-width: 1023px) {
  .nav__inner {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "brand cta"
      "links links";
    row-gap: var(--s2);
    padding-block: var(--s3) var(--s2);
  }
  .brand { grid-area: brand; }
  .nav__cta { grid-area: cta; justify-self: end; }
  .nav__links {
    grid-area: links;
    padding-bottom: var(--s2);
    /* horizontal scroll for narrow viewports */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* fade-out cue at right edge */
    mask-image: linear-gradient(to right, black calc(100% - 24px), transparent 100%);
  }
  .nav__links a { padding: 4px 0; font-size: 13px; }
}
@media (min-width: 1024px) {
  .nav__cta .btn--secondary { display: inline-flex; }
  .nav__links { justify-content: center; }
}

/* ─── Hero ─────────────────────────────────────────────────── */
.hero { padding-block: 56px 64px; border-top: 0; }
@media (min-width: 1024px) { .hero { padding-block: 96px 112px; } }

.hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s10);
  align-items: center;
}
@media (min-width: 1024px) {
  .hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: var(--s12); }
}

.hero__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 36px;
  line-height: 1.05;
  letter-spacing: var(--tr-tight);
  margin: 0;
  text-wrap: balance;
  max-width: 18ch;
}
@media (min-width: 1024px) { .hero__title { font-size: var(--fs-marketing-h1); } }
@media (min-width: 1200px) { .hero__title { font-size: 56px; } }

.hero__sub {
  margin: var(--s5) 0 0;
  font-size: 17px;
  line-height: 1.5;
  color: var(--ink-80);
  max-width: 50ch;
}
.hero__supporting {
  margin: var(--s4) 0 0;
  font-size: var(--fs-ui);
  color: var(--fg-mute);
  max-width: 50ch;
}
.hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s3);
  margin-top: var(--s8);
}

/* ─── Hero pipeline (simplified) ───────────────────────────── */
.pipe-hero {
  position: relative;
  padding: var(--s5);
  padding-top: 44px;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--paper);
  box-shadow: var(--shadow-1);
}
.pipe-hero__tag {
  position: absolute;
  top: var(--s4);
  left: var(--s5);
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--fs-tag);
  font-weight: 600;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  color: var(--fg-mute);
}
.pipe-hero__tag::before {
  content: "";
  width: 6px;
  height: 6px;
  background: var(--accent);
  border-radius: var(--r-full);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.pipe-hero__caption {
  margin-top: var(--s5);
  padding-top: var(--s5);
  border-top: 1px dashed var(--border);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
  line-height: var(--lh-loose);
}
.pipe-hero__caption strong { color: var(--ink); font-weight: 600; }

.pipe-row {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  margin: 0; padding: 0;
  list-style: none;
}
.pipe-row__node {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3) var(--s4);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--paper);
  transition: border-color var(--dur), box-shadow var(--dur);
}
.pipe-row__num {
  width: 22px;
  height: 22px;
  border-radius: var(--r-full);
  background: var(--paper-mute);
  border: 1px solid var(--border);
  color: var(--fg-mute);
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pipe-row__label {
  font-size: var(--fs-ui);
  font-weight: 600;
  color: var(--ink);
}
.pipe-row__hint {
  margin-left: auto;
  font-size: var(--fs-meta);
  color: var(--fg-mute);
}
.pipe-row__arrow {
  align-self: center;
  width: 1px;
  height: 14px;
  background: var(--border-soft);
  margin-block: -2px;
}

@media (prefers-reduced-motion: no-preference) {
  .pipe-row .pipe-row__node {
    animation: pipePulse 12s infinite;
  }
  .pipe-row .pipe-row__node:nth-of-type(1) { animation-delay: 0s; }
  .pipe-row .pipe-row__node:nth-of-type(2) { animation-delay: 2.4s; }
  .pipe-row .pipe-row__node:nth-of-type(3) { animation-delay: 4.8s; }
  .pipe-row .pipe-row__node:nth-of-type(4) { animation-delay: 7.2s; }
  .pipe-row .pipe-row__node:nth-of-type(5) { animation-delay: 9.6s; }
  @keyframes pipePulse {
    0%, 16%, 100% { border-color: var(--border); box-shadow: none; }
    4%, 12%       { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
  }
}

/* ─── Problem section ──────────────────────────────────────── */
.pull {
  margin-top: var(--s10);
  padding: var(--s8) var(--s6);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: var(--r-xl);
  background: var(--paper);
  max-width: 880px;
}
.pull__text {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.35;
  letter-spacing: var(--tr-snug);
  color: var(--ink);
  margin: 0;
  text-wrap: pretty;
}
@media (min-width: 1024px) { .pull__text { font-size: 26px; } }
.pull__attrib {
  margin-top: var(--s4);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
}

.problem-grid {
  display: grid;
  gap: var(--s8);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
}
@media (min-width: 1024px) {
  .problem-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s12); align-items: start; }
}

/* ─── Solution section ─────────────────────────────────────── */
.solution__list {
  margin: var(--s5) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: sol;
  max-width: 720px;
}
.solution__list li {
  display: flex;
  gap: var(--s4);
  padding: var(--s4) 0;
  border-bottom: 1px solid var(--border-soft);
  font-size: 15px;
  line-height: var(--lh-loose);
  color: var(--ink-80);
  counter-increment: sol;
}
.solution__list li::before {
  content: counter(sol, decimal-leading-zero);
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
  flex-shrink: 0;
  padding-top: 2px;
}
.solution__list li:last-child { border-bottom: 0; }

/* ─── Card grids (clean binary: 1-col below 1024, full grid above) ─ */
.cards {
  display: grid;
  gap: var(--s4);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
}
@media (min-width: 1024px) {
  .cards { grid-template-columns: 1fr 1fr; gap: var(--s5); }
  .cards--3 { grid-template-columns: repeat(3, 1fr); }
  .cards--6 { grid-template-columns: repeat(3, 1fr); }
}

.card {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  padding: var(--s6);
  transition: box-shadow var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}
.card__num {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  color: var(--fg-mute-aa);
  margin-bottom: var(--s3);
}
.card__title {
  font-size: var(--fs-h3);
  font-weight: 600;
  letter-spacing: var(--tr-snug);
  margin: 0 0 var(--s2);
  color: var(--ink);
}
.card__body {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0;
}

/* ─── How-it-works pipeline (detailed) ─────────────────────── */
.pipe-detail {
  display: grid;
  gap: var(--s4);
  grid-template-columns: 1fr;
  margin: var(--s8) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: stage;
}
.pipe-detail > li { list-style: none; position: relative; }
@media (min-width: 1024px) {
  .pipe-detail { grid-template-columns: repeat(5, 1fr); gap: var(--s3); }
}

.pipe-node {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--paper);
  min-height: 240px;
}
.pipe-node__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s4);
}
.pipe-node__step {
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
}
.pipe-node__pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 var(--s2);
  border-radius: var(--r-full);
  background: var(--accent-soft);
  color: var(--accent-strong);
  font-size: var(--fs-tag);
  font-weight: 600;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
}
.pipe-node__title {
  font-size: var(--fs-h3);
  font-weight: 600;
  letter-spacing: var(--tr-snug);
  margin: 0 0 var(--s1);
  color: var(--ink);
}
.pipe-node__tagline {
  font-size: var(--fs-meta);
  color: var(--accent-strong);
  font-weight: 500;
  margin-bottom: var(--s3);
}
.pipe-node__body {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0;
}

/* Node 4 chips — content list of parallel agents */
.pipe-node__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: var(--s4) 0 0;
  padding: var(--s3);
  list-style: none;
  background: var(--bg-tint);
  border-radius: var(--r-md);
}
.pipe-node__chips > li {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 3px 8px;
  border-radius: var(--r-full);
  background: var(--paper);
  border: 1px solid var(--border);
  color: var(--ink-80);
}

/* connector arrows between detailed nodes — desktop only */
@media (min-width: 1024px) {
  .pipe-detail > li + li::before {
    content: "";
    position: absolute;
    left: calc(var(--s3) * -1);
    top: 50%;
    width: var(--s3);
    height: 1px;
    background: var(--ink-50);
    transform: translateY(-50%);
    z-index: 1;
  }
  .pipe-detail > li + li::after {
    content: "";
    position: absolute;
    left: -6px;
    top: 50%;
    width: 5px;
    height: 5px;
    border-right: 1px solid var(--ink-50);
    border-top: 1px solid var(--ink-50);
    transform: translateY(-50%) rotate(45deg);
    z-index: 1;
  }
}

.note {
  margin-top: var(--s8);
  padding: var(--s5) var(--s6);
  background: var(--paper-soft);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  max-width: 820px;
}
.note__label {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  color: var(--accent-strong);
  margin-right: var(--s2);
}

/* ─── Metric tiles ─────────────────────────────────────────── */
.metrics {
  display: grid;
  gap: var(--s3);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
}
@media (min-width: 1024px) { .metrics { grid-template-columns: repeat(4, 1fr); gap: var(--s4); } }

.metric {
  padding: var(--s5);
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
}
.metric__num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.05;
  letter-spacing: var(--tr-tight);
  color: var(--ink);
  font-feature-settings: "tnum" 1, "lnum" 1;
}
@media (min-width: 1024px) { .metric__num { font-size: 40px; } }
.metric__num small { font-size: 0.55em; font-weight: 500; color: var(--ink-80); margin-left: 4px; }
.metric__label {
  margin-top: var(--s3);
  font-size: var(--fs-meta);
  color: var(--fg-mute-aa);
  line-height: var(--lh-loose);
}

/* ─── Comparison table ────────────────────────────────────── */
.compare-wrap { margin-top: var(--s8); }

/* Desktop table */
.compare-table { display: none; }
@media (min-width: 1024px) { .compare-table { display: table; } }

.compare {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-ui);
  color: var(--ink);
}
.compare thead th {
  text-align: left;
  font-weight: 600;
  font-size: var(--fs-ui);
  color: var(--ink);
  padding: var(--s4);
  border-bottom: 1px solid var(--border);
  vertical-align: bottom;
}
.compare thead th.is-us {
  background: var(--accent-soft);
  color: var(--accent-strong);
  border-top-left-radius: var(--r-md);
  border-top-right-radius: var(--r-md);
}
.compare tbody td {
  padding: var(--s4);
  border-bottom: 1px solid var(--border-soft);
  vertical-align: top;
  line-height: var(--lh-loose);
}
.compare tbody td:first-child {
  font-weight: 500;
  color: var(--ink);
  width: 30%;
}
.compare tbody td:not(:first-child) { color: var(--ink-80); }
.compare tbody td.is-us {
  background: var(--accent-soft);
  color: var(--ink);
  font-weight: 500;
}
.compare tbody tr:last-child td.is-us {
  border-bottom-left-radius: var(--r-md);
  border-bottom-right-radius: var(--r-md);
}

/* Mobile row-grouped pattern: each capability row = one block,
   three options stacked inside, EtooFinance emphasised. */
.compare-stack { display: flex; flex-direction: column; gap: var(--s4); }
@media (min-width: 1024px) { .compare-stack { display: none; } }

.compare-row {
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: var(--s5);
}
.compare-row__label {
  font-size: var(--fs-tag);
  font-weight: 600;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  color: var(--fg-mute);
  margin: 0 0 var(--s3);
}
.compare-row dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s2);
}
.compare-row__opt {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--s3);
  border-radius: var(--r-sm);
  border-left: 3px solid transparent;
  background: var(--paper);
}
.compare-row__opt dt {
  font-size: var(--fs-meta);
  color: var(--fg-mute);
  margin: 0;
}
.compare-row__opt dd {
  font-size: var(--fs-ui);
  color: var(--ink);
  margin: 0;
  line-height: var(--lh-loose);
}
.compare-row__opt--us {
  background: var(--accent-soft);
  border-left-color: var(--accent);
}
.compare-row__opt--us dt {
  color: var(--accent-strong);
  font-weight: 600;
}
.compare-row__opt--us dd { font-weight: 600; }

/* ─── Tiers section ───────────────────────────────────────── */
.tiers {
  display: grid;
  gap: var(--s4);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
  align-items: stretch;
}
@media (min-width: 1024px) { .tiers { grid-template-columns: repeat(3, 1fr); gap: var(--s5); } }

.tier {
  display: flex;
  flex-direction: column;
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--paper);
  position: relative;
}
.tier--featured {
  border-color: var(--ink);
  box-shadow: var(--shadow-1);
}
.tier__badge {
  position: absolute;
  top: var(--s4);
  right: var(--s5);
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 500;
  color: var(--fg-invert);
  background: var(--ink);
  padding: 4px 8px;
  border-radius: var(--r-full);
}
.tier__title {
  font-size: var(--fs-h2);
  font-weight: 600;
  letter-spacing: var(--tr-snug);
  margin: 0;
  color: var(--ink);
}
.tier__tagline {
  margin-top: var(--s3);
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
}
.tier__rows {
  margin-top: var(--s5);
  padding-top: var(--s5);
  border-top: 1px solid var(--border-soft);
  display: flex;
  flex-direction: column;
  gap: var(--s4);
}
.tier__row dt {
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  color: var(--fg-mute);
  margin: 0;
}
.tier__row dd {
  margin: 4px 0 0;
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink);
}
.tier__ttl {
  margin-top: var(--s5);
  padding-top: var(--s4);
  border-top: 1px solid var(--border-soft);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--s3);
}
.tier__ttl-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: var(--tr-snug);
  color: var(--ink);
  font-feature-settings: "tnum" 1, "lnum" 1;
}
.tier__ttl-label {
  font-size: var(--fs-meta);
  color: var(--fg-mute);
}
.tier__best {
  margin-top: var(--s5);
  padding-top: var(--s4);
  border-top: 1px solid var(--border-soft);
  font-size: var(--fs-meta);
  line-height: var(--lh-loose);
  color: var(--ink-80);
}
.tier__best b { font-weight: 600; color: var(--ink); }

.tier-note {
  margin-top: var(--s8);
  font-size: var(--fs-ui);
  color: var(--fg-mute-aa);
  max-width: 820px;
  line-height: var(--lh-loose);
}

/* ─── Pricing ──────────────────────────────────────────────── */
.pricing {
  display: grid;
  gap: var(--s4);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
}
@media (min-width: 1024px) { .pricing { grid-template-columns: repeat(3, 1fr); gap: var(--s5); } }

.price {
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--paper);
}
.price__num {
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
  margin-bottom: var(--s3);
}
.price__title {
  font-size: var(--fs-h3);
  font-weight: 600;
  letter-spacing: var(--tr-snug);
  margin: 0 0 var(--s3);
  color: var(--ink);
}
.price__body {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0;
}

.callout {
  margin-top: var(--s8);
  padding: var(--s6);
  background: var(--paper-soft);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  display: flex;
  flex-direction: column;
  gap: var(--s3);
}
@media (min-width: 1024px) {
  .callout { flex-direction: row; gap: var(--s6); padding: var(--s8); }
}
.callout__label {
  flex-shrink: 0;
  width: 100%;
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent-strong);
}
@media (min-width: 1024px) { .callout__label { width: 220px; padding-top: 4px; } }
.callout__body {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink);
}
.callout__body p + p { margin-top: var(--s3); }

.pricing-close {
  margin-top: var(--s8);
  display: flex;
  flex-direction: column;
  gap: var(--s5);
  align-items: flex-start;
}
.pricing-close p {
  font-size: var(--fs-body);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0;
  max-width: 720px;
}

/* ─── FAQ ─────────────────────────────────────────────────── */
.faq { margin-top: var(--s8); max-width: 880px; border-top: 1px solid var(--border); }
.faq__item { border-bottom: 1px solid var(--border); }
.faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: var(--s5) var(--s4) var(--s5) 0;
  display: flex;
  align-items: center;
  gap: var(--s4);
  font-size: var(--fs-h4);
  font-weight: 500;
  letter-spacing: var(--tr-snug);
  color: var(--ink);
  text-wrap: pretty;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: "";
  margin-left: auto;
  width: 10px;
  height: 10px;
  border-right: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  transform: rotate(45deg);
  transition: transform var(--dur) var(--ease-out);
  flex-shrink: 0;
}
.faq__item[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.faq__item summary:hover { color: var(--accent-strong); }
.faq__answer {
  padding: 0 var(--s8) var(--s6) 0;
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  max-width: 720px;
  margin: 0;
}

/* ─── Final CTA ───────────────────────────────────────────── */
.final {
  display: grid;
  gap: var(--s6);
  grid-template-columns: 1fr;
  margin-top: var(--s8);
}
@media (min-width: 1024px) { .final { grid-template-columns: 1fr 1fr; gap: var(--s8); } }

.final__col {
  padding: var(--s8);
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
}
.final__col--primary {
  background: var(--paper-mute);
  color: var(--ink);
  border-color: var(--border);
}
.final__heading {
  font-size: var(--fs-h2);
  font-weight: 600;
  letter-spacing: var(--tr-snug);
  margin: 0 0 var(--s3);
}
.final__col--primary .final__heading { color: var(--ink); }
.final__sub {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0 0 var(--s5);
}
.final__col--primary .final__sub { color: var(--fg-mute); }
.final__col--primary .btn--primary {
  background: var(--ink);
  color: var(--fg-invert);
}
.final__col--primary .btn--primary:hover { background: var(--ink-80); }
.final__small {
  margin-top: var(--s4);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
}
.final__col--primary .final__small { color: var(--fg-mute); }

/* ─── Form ────────────────────────────────────────────────── */
.form { display: flex; flex-direction: column; gap: var(--s4); }
.form__field { display: flex; flex-direction: column; gap: var(--s2); }
.form__label {
  font-size: var(--fs-ui);
  font-weight: 500;
  color: var(--ink);
  padding-left: var(--s1);
}
.form__input,
.form__textarea {
  font-family: inherit;
  font-size: var(--fs-ui);
  font-weight: 500;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  padding: var(--s4) var(--s5);
  outline: none;
  transition: border-color var(--dur);
}
.form__input:focus,
.form__textarea:focus { border-color: var(--ink); }
.form__input::placeholder,
.form__textarea::placeholder { color: var(--ink-50); font-weight: 400; }
.form__textarea {
  min-height: 96px;
  border-radius: var(--r-lg);
  resize: vertical;
  line-height: var(--lh-body);
}
.form__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  margin-top: var(--s2);
  flex-wrap: wrap;
}
.form__fallback {
  margin-top: var(--s3);
  font-size: var(--fs-meta);
  line-height: var(--lh-loose);
  color: var(--fg-mute);
}

/* ─── Footer ──────────────────────────────────────────────── */
.footer {
  border-top: 1px solid var(--border);
  background: var(--paper-soft);
  padding-block: var(--s12) var(--s8);
}
.footer__cols {
  display: grid;
  gap: var(--s8);
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 1024px) { .footer__cols { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--s8); } }

.footer__col h4, .footer__col h3 {
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--fg-mute);
  margin: 0 0 var(--s4);
}
.footer__col ul {
  margin: 0; padding: 0; list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--s3);
}
.footer__col a {
  font-size: var(--fs-ui);
  color: var(--ink-80);
  transition: color var(--dur);
}
.footer__col a:hover { color: var(--ink); }
.footer__brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: var(--s3);
}
.footer__tagline {
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  max-width: 280px;
  margin: 0;
}
.footer__bottom {
  margin-top: var(--s10);
  padding-top: var(--s5);
  border-top: 1px solid var(--border);
  font-size: var(--fs-meta);
  color: var(--fg-mute);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--s3);
}

/* ─── Stub pages ─────────────────────────────────────────── */
.stub {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: var(--s16);
}
.stub h1 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 36px;
  letter-spacing: var(--tr-snug);
  margin: 0 0 var(--s5);
}
.stub p {
  max-width: 640px;
  font-size: var(--fs-body);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  margin: 0;
}

/* ════════════════════════════════════════════════════════════
   SOVEREIGN-INSTITUTIONAL REBUILD — additive components.
   Same DS tokens only. Green accent: use --accent-strong wherever
   green carries text or sits under white (AA); plain --accent green
   is decorative only (dots, halos, hairlines, soft tints).
   ════════════════════════════════════════════════════════════ */

/* ─── Eyebrow + shared accents ─────────────────────────────── */
.eyebrow-mono {
  font-family: var(--font-mono);
  font-size: var(--fs-meta);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent-strong);
  margin: 0 0 14px;
}
.section__lead {
  margin: var(--s5) 0 0;
  font-size: 17px;
  line-height: var(--lh-loose);
  color: var(--ink-80);
  max-width: 60ch;
}
.muted { color: var(--fg-mute); }

/* ─── Chips (generalized — §3 / §5 / §7) ───────────────────── */
.chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 6px var(--s3);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--paper);
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--ink-80);
  line-height: 1.2;
}
.chip svg { width: 14px; height: 14px; stroke: var(--accent-strong); fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.chip__dot::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  background: var(--accent);
}

/* ─── Hero (watermark + quiet halo) ────────────────────────── */
.hero--sov {
  position: relative;
  overflow: hidden;
  border-top: 0;
  padding-block: 72px 84px;
}
@media (min-width: 1024px) { .hero--sov { padding-block: 120px 128px; } }
.hero__halo {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  width: 760px; height: 760px;
  top: -340px; right: -200px;
  background: radial-gradient(circle at center, var(--accent-soft) 0%, rgba(116,170,30,0.05) 38%, transparent 68%);
}
.hero__watermark {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  right: -1.5vw;
  bottom: -14%;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(170px, 30vw, 440px);
  line-height: 1;
  letter-spacing: -0.05em;
  color: var(--ink);
  opacity: 0.04;
}
.hero__inner { position: relative; z-index: 1; max-width: 880px; }
.hero__h1 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 40px;
  line-height: 1.04;
  letter-spacing: var(--tr-tight);
  margin: var(--s6) 0 0;
  text-wrap: balance;
  max-width: 16ch;
}
@media (min-width: 768px)  { .hero__h1 { font-size: 56px; } }
@media (min-width: 1200px) { .hero__h1 { font-size: 72px; } }
.hero__ctas { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s8); }
@media (max-width: 420px) { .hero__ctas .btn { width: 100%; } }

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  height: 30px;
  padding: 0 var(--s4) 0 var(--s3);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--paper);
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--ink-80);
}
.badge::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

/* ─── §2 Two-worlds diagram ────────────────────────────────── */
.worlds {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s4);
  margin-top: var(--s10);
}
@media (min-width: 768px) { .worlds { grid-template-columns: 1fr 1fr; gap: var(--s5); } }
.world {
  display: flex;
  flex-direction: column;
  gap: var(--s6);
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--paper);
}
.world__head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.world__name {
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--fg-mute);
}
.world__mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: var(--r-full);
  border: 1px solid var(--border);
}
.world__mark svg { width: 15px; height: 15px; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.world__mark--no  { color: var(--fg-mute); }
.world__mark--ok  { color: var(--accent-strong); border-color: var(--accent); background: var(--accent-soft); }
.world__diagram {
  display: flex;
  align-items: center;
  gap: var(--s2);
  min-height: 92px;
}
.world__caption { font-size: var(--fs-meta); color: var(--fg-mute); line-height: var(--lh-loose); }

.perimeter {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s5) var(--s4) var(--s4);
  border: 1.5px dashed var(--ink-20);
  border-radius: var(--r-lg);
}
.perimeter--ok { border-color: var(--accent); background: var(--accent-soft); flex: 1; }
.perimeter__tag {
  position: absolute;
  top: -8px; left: var(--s4);
  padding: 0 var(--s2);
  background: var(--paper);
  font-size: 9px;
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--fg-mute);
}
.perimeter--ok .perimeter__tag { background: var(--paper); color: var(--accent-strong); }
.node {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  padding: var(--s2) var(--s3);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--paper);
  font-size: var(--fs-meta);
  font-weight: 600;
  color: var(--ink);
}
.node--accent { border-color: var(--accent); color: var(--accent-strong); }
.node--ghost { border-style: dashed; color: var(--fg-mute); font-weight: 500; }
.flow-arrow { display: inline-flex; align-items: center; color: var(--ink-50); flex-shrink: 0; }
.flow-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.flow-arrow--leave { color: var(--fg-mute); }

/* ─── §3 Pillars (cards + icon slot) ───────────────────────── */
.card--pillar { display: flex; flex-direction: column; }
.card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  margin-bottom: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  color: var(--accent-strong);
}
.card__icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pillar-chip { margin-top: var(--s6); }

/* ─── §4 Product screens (framed, responsive) ──────────────── */
.screens { display: flex; flex-direction: column; gap: var(--s12); margin-top: var(--s10); }
.screen__head {
  display: flex;
  align-items: baseline;
  gap: var(--s3);
  flex-wrap: wrap;
  margin: 0 0 var(--s4);
}
.screen__index { font-family: var(--font-mono); font-size: var(--fs-meta); color: var(--accent-strong); white-space: nowrap; }
.screen__name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--fs-h3);
  letter-spacing: var(--tr-snug);
  color: var(--ink);
}
.screen__fig { margin: 0; }
.screen__media {
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--paper-soft);
  box-shadow: var(--shadow-1);
}
.screen__media img { display: block; width: 100%; height: auto; }
.screen__full { display: block; }
.screen__half { display: none; }
.screen__cap {
  margin: var(--s4) 0 0;
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--ink-80);
  max-width: 720px;
}
.screen__more {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: var(--s3);
  font-size: var(--fs-meta);
  font-weight: 500;
  color: var(--accent-strong);
}
.screen__more:hover { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 600px) {
  .screen__full { display: none; }
  .screen__half { display: block; }
  .screen__half + .screen__half { border-top: 1px solid var(--border); }
}

/* ─── §5 Sovereignty flow (request → enclave → answer) ──────── */
.flow {
  display: flex;
  align-items: stretch;
  gap: var(--s3);
  margin-top: var(--s8);
}
@media (max-width: 900px) { .flow { flex-direction: column; } }
.flow__node {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--s2);
  padding: var(--s5);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background: var(--paper);
}
.flow__node-label { font-family: var(--font-mono); font-size: var(--fs-meta); color: var(--fg-mute); }
.flow__node-title { font-size: var(--fs-h4); font-weight: 600; color: var(--ink); letter-spacing: var(--tr-snug); }
.flow__link { display: flex; align-items: center; justify-content: center; color: var(--ink-50); }
.flow__link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 900px) { .flow__link svg { transform: rotate(90deg); } }

.enclave {
  flex: 2.3 1 0;
  min-width: 0;
  border: 1.5px solid var(--ink);
  border-radius: var(--r-lg);
  padding: var(--s5);
  background: var(--paper-soft);
}
.enclave__head {
  display: flex;
  align-items: center;
  gap: var(--s2);
  margin-bottom: var(--s4);
  font-size: var(--fs-tag);
  letter-spacing: var(--tr-wide);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink);
}
.enclave__head svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.enclave__agents { display: flex; flex-wrap: wrap; gap: var(--s2); }
.agent {
  padding: var(--s2) var(--s3);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--paper);
  font-size: var(--fs-ui);
  font-weight: 500;
  color: var(--ink);
  white-space: nowrap;
}
.flow-line { margin-top: var(--s8); font-size: var(--fs-ui); color: var(--fg-mute); max-width: 760px; line-height: var(--lh-loose); }

/* ─── §7 Proof: metrics(2) + footprint status ──────────────── */
.metrics--2 { grid-template-columns: 1fr; }
@media (min-width: 768px) { .metrics--2 { grid-template-columns: 1fr 1fr; } }
.metrics--2 .metric { padding: var(--s8) var(--s6); }
.metrics--2 .metric__num { font-size: 40px; }
@media (min-width: 1024px) { .metrics--2 .metric__num { font-size: 56px; } }

.proof-foot { margin-top: var(--s10); display: flex; flex-direction: column; gap: var(--s6); }
.status { display: flex; flex-direction: column; gap: var(--s5); }
@media (min-width: 768px) { .status { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--s8); } }
.status__loc { display: flex; flex-direction: column; gap: var(--s3); }
.status__place {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: var(--fs-ui);
  font-weight: 600;
  color: var(--ink);
}
.status__place .meta-note { font-weight: 400; color: var(--fg-mute); }
.compliance {
  padding-top: var(--s6);
  border-top: 1px solid var(--border);
  font-size: var(--fs-ui);
  line-height: var(--lh-loose);
  color: var(--fg-mute-aa);
  max-width: 820px;
}

/* ─── §6 Who-cards: icon variant ───────────────────────────── */
.cards--who .card { display: flex; flex-direction: column; }

/* ════════════════════════════════════════════════════════════
   FIX PASS — native §4 product fragments + density/rhythm.
   Mobile-first; DS tokens only. Later rules intentionally win.
   (Earlier .screen and .screens image rules are now dead code.)
   ════════════════════════════════════════════════════════════ */

/* ─── §4 beats (label + caption + native fragment) ─────────── */
.beats { display: flex; flex-direction: column; gap: var(--s12); margin-top: var(--s16); }
@media (min-width: 768px) { .beats { gap: var(--s12); } }
.beat__head { display: flex; align-items: baseline; gap: var(--s3); flex-wrap: wrap; margin: 0; }
.beat__index { font-family: var(--font-mono); font-size: var(--fs-meta); color: var(--accent-strong); white-space: nowrap; }
.beat__name { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h3); letter-spacing: var(--tr-snug); color: var(--ink); }
.beat__cap { margin: var(--s3) 0 var(--s5); font-size: var(--fs-ui); line-height: var(--lh-loose); color: var(--ink-80); max-width: 780px; }

.frag { border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--paper); box-shadow: var(--shadow-1); padding: var(--s5); }
@media (min-width: 768px) { .frag { padding: var(--s6); } }
.frag__illus { display: inline-block; margin-top: var(--s5); font-family: var(--font-mono); font-size: 10px; letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--fg-mute); border: 1px solid var(--border); border-radius: var(--r-xs); padding: 2px var(--s2); }

/* 4.1 Request & plan */
.plan { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s3); }
.plan__row { display: flex; gap: var(--s3); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--paper-soft); }
.plan__idx { flex-shrink: 0; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-full); border: 1px solid var(--border); background: var(--paper); font-family: var(--font-mono); font-size: var(--fs-meta); font-weight: 500; color: var(--ink); }
.plan__main { display: flex; flex-direction: column; gap: var(--s2); min-width: 0; }
.plan__label { font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--fg-mute); }
.plan__chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
.pchip { padding: 4px var(--s3); border: 1px solid var(--border); border-radius: var(--r-sm); background: var(--paper); font-size: var(--fs-meta); font-weight: 500; color: var(--ink); }
.pchip--lead { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-soft); }
.parsing { display: flex; align-items: center; gap: var(--s3); margin-top: var(--s3); padding: var(--s3) var(--s4); border: 1px solid var(--border-soft); border-radius: var(--r-md); font-size: var(--fs-ui); font-weight: 500; color: var(--ink-80); }
.parsing__dot { width: 8px; height: 8px; border-radius: var(--r-full); background: var(--ink); flex-shrink: 0; }
.composer { margin-top: var(--s4); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--paper-soft); display: flex; flex-direction: column; gap: var(--s4); }
.composer__q { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--ink); margin: 0; }
.run-btn { align-self: flex-start; display: inline-flex; align-items: center; gap: var(--s2); height: 40px; padding: 0 var(--s5); border-radius: var(--r-md); background: var(--ink); color: var(--fg-invert); font-family: var(--font-ui); font-weight: 500; font-size: var(--fs-ui); white-space: nowrap; }
.run-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 560px) { .composer { flex-direction: row; align-items: center; justify-content: space-between; } .run-btn { align-self: auto; flex-shrink: 0; } }

/* 4.2 The answer */
.ans__head { display: flex; flex-direction: column; gap: var(--s3); padding-bottom: var(--s5); margin-bottom: var(--s5); border-bottom: 1px solid var(--border); }
@media (min-width: 720px) { .ans__head { flex-direction: row; align-items: center; justify-content: space-between; } }
.ans__client { display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; min-width: 0; }
.ans__client svg { width: 16px; height: 16px; stroke: var(--ink-50); fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.ans__name { font-weight: 600; color: var(--ink); }
.ans__meta { font-size: var(--fs-meta); color: var(--fg-mute); }
.ans__attest { display: inline-flex; align-items: center; gap: var(--s2); padding: var(--s2) var(--s3); border: 1px solid var(--accent); border-radius: var(--r-full); background: var(--accent-soft); font-size: var(--fs-meta); font-weight: 600; color: var(--accent-strong); white-space: nowrap; flex-shrink: 0; }
.ans__attest svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ans__eyebrow { font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--fg-mute); font-weight: 600; margin: 0 0 var(--s3); }
.crux__tag { font-family: var(--font-mono); font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.03em; color: var(--accent-strong); }
.crux__line { margin: var(--s2) 0 0; font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h4); line-height: var(--lh-snug); letter-spacing: var(--tr-snug); color: var(--ink); }
@media (min-width: 768px) { .crux__line { font-size: var(--fs-h3); } }
.debate { display: flex; flex-direction: column; gap: var(--s3); margin-top: var(--s5); }
.debate__row { display: grid; grid-template-columns: 1fr; gap: var(--s1); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--paper-soft); }
@media (min-width: 560px) { .debate__row { grid-template-columns: 116px 1fr; gap: var(--s4); align-items: start; } }
.debate__label { font-size: var(--fs-meta); color: var(--fg-mute); font-weight: 600; }
.debate__text { margin: 0; font-size: var(--fs-ui); line-height: var(--lh-loose); color: var(--ink); }
.sentinel { margin-top: var(--s5); border: 1px solid var(--border); border-left: 3px solid var(--ink); border-radius: var(--r-lg); background: var(--bg-tint); padding: var(--s5); }
.sentinel__head { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--ink); margin: 0 0 var(--s3); }
.sentinel__head svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.sentinel__text { margin: 0; font-size: var(--fs-ui); line-height: var(--lh-loose); color: var(--ink); }
.sentinel__text b { font-weight: 600; }
.trace { margin-top: var(--s4); border: 1px solid var(--border); border-radius: var(--r-md); background: var(--paper); padding: var(--s3) var(--s4); }
.trace__label { display: block; font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--fg-mute); font-weight: 600; margin-bottom: var(--s2); }
.trace__code { display: block; font-family: var(--font-mono); font-size: var(--fs-meta); line-height: var(--lh-loose); color: var(--ink-80); white-space: pre-wrap; overflow-wrap: anywhere; }

/* 4.3 One engine, two mandates */
.mandates { display: grid; grid-template-columns: 1fr; gap: var(--s4); }
@media (min-width: 768px) { .mandates { grid-template-columns: 1fr 1fr; gap: var(--s5); } }
.mandate { display: flex; flex-direction: column; gap: var(--s4); padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-xl); background: var(--paper); box-shadow: var(--shadow-1); }
.mandate__head { display: flex; flex-direction: column; gap: var(--s1); padding-bottom: var(--s4); border-bottom: 1px solid var(--border); }
.mandate__role { font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--accent-strong); }
.mandate__client { font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: var(--s2); flex-wrap: wrap; }
.illus-inline { font-family: var(--font-mono); font-size: 9px; letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--fg-mute); border: 1px solid var(--border); border-radius: var(--r-xs); padding: 1px var(--s2); font-weight: 500; }
.mandate__crux { margin: 0; font-size: var(--fs-ui); line-height: var(--lh-loose); color: var(--ink); font-weight: 500; }
.mandate__breach { border-left: 3px solid var(--ink); background: var(--bg-tint); border-radius: var(--r-md); padding: var(--s4); }
.mandate__breach-label { display: flex; align-items: center; gap: var(--s2); font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--ink); font-weight: 600; margin-bottom: var(--s2); }
.mandate__breach-label svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.mandate__breach p { margin: 0; font-size: var(--fs-meta); line-height: var(--lh-loose); color: var(--ink-80); }
.mandate__breach b { color: var(--ink); font-weight: 600; }

/* ─── §2 two-worlds — bolder boundary + state ──────────────── */
.world { padding: var(--s6); gap: var(--s5); }
.world__top { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.world__name { font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--ink); }
.world__state { display: inline-flex; align-items: center; gap: 6px; padding: 4px var(--s3); border: 1px solid var(--border); border-radius: var(--r-full); font-size: var(--fs-meta); font-weight: 600; white-space: nowrap; }
.world__state svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.world__state--no { color: var(--fg-mute); }
.world__state--ok { color: var(--accent-strong); border-color: var(--accent); background: var(--accent-soft); }
.world__stage { display: flex; align-items: center; gap: var(--s2); min-height: 124px; }
.vault { position: relative; flex: 1 1 auto; display: flex; align-items: center; gap: var(--s3); align-self: stretch; padding: var(--s6) var(--s4) var(--s4); border: 1.5px dashed var(--ink-20); border-radius: var(--r-lg); background: var(--paper-soft); min-width: 0; }
.vault--ok { border-color: var(--accent); background: var(--accent-soft); }
.vault__tag { position: absolute; top: -9px; left: var(--s4); padding: 0 var(--s2); background: var(--paper); font-size: 9px; letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--fg-mute); }
.vault--ok .vault__tag { color: var(--accent-strong); }
.breach-arrow, .in-arrow { display: inline-flex; align-items: center; flex-shrink: 0; }
.breach-arrow svg, .in-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.breach-arrow { color: var(--fg-mute); }
.in-arrow { color: var(--accent-strong); }
.world .node { padding: var(--s3) var(--s4); font-size: var(--fs-ui); }

/* ─── §3 pillars — more presence ───────────────────────────── */
.card--pillar { padding: var(--s8) var(--s6); }
.card--pillar .card__icon { width: 52px; height: 52px; margin-bottom: var(--s5); border-radius: var(--r-lg); border-color: transparent; background: var(--accent-soft); color: var(--accent-strong); }
.card--pillar .card__icon svg { width: 26px; height: 26px; }
.card--pillar .card__title { font-size: var(--fs-h2); }
.card--pillar .card__body { margin-top: var(--s2); }

/* ─── §5 enclave — contained box, agents inside ────────────── */
.flow { gap: var(--s4); }
.flow__node { padding: var(--s6) var(--s5); }
.enclave { flex: 2.6 1 0; padding: 0; overflow: hidden; background: var(--paper); }
.enclave__bar { display: flex; align-items: center; gap: var(--s2); padding: var(--s4) var(--s5); background: var(--paper-soft); border-bottom: 1px solid var(--ink-10); font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; color: var(--ink); }
.enclave__bar svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.enclave__lockword { margin-left: auto; font-family: var(--font-mono); font-size: 9px; letter-spacing: var(--tr-wide); color: var(--fg-mute); }
.enclave__body { padding: var(--s5); background: var(--paper-soft); }
.enclave__agents { display: flex; flex-wrap: wrap; gap: var(--s2); }
.agent { flex: 1 1 auto; min-width: 92px; text-align: center; padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-md); background: var(--paper); font-size: var(--fs-ui); font-weight: 600; color: var(--ink); white-space: nowrap; }

/* ─── §6 who — segment chips + presence ────────────────────── */
.cards--who .card { padding: var(--s8) var(--s6); }
.cards--who .card__icon { width: 52px; height: 52px; border-radius: var(--r-lg); border-color: transparent; background: var(--accent-soft); color: var(--accent-strong); }
.cards--who .card__icon svg { width: 26px; height: 26px; }
.who-segs { display: flex; flex-wrap: wrap; gap: var(--s2); margin: var(--s2) 0 var(--s4); padding: 0; list-style: none; }
.who-seg { padding: 4px var(--s3); border: 1px solid var(--border); border-radius: var(--r-full); background: var(--paper-soft); font-size: var(--fs-meta); font-weight: 500; color: var(--ink-80); }
.who-cap { margin: 0; font-size: var(--fs-ui); line-height: var(--lh-loose); color: var(--ink-80); }

/* ════════════════════════════════════════════════════════════
   SECURITY & COMPLIANCE PAGE — one-off components.
   Same tokens/register/accent as homepage. Green text/fills use
   --accent-strong (#4F7A12, AA). Mobile-first.
   ════════════════════════════════════════════════════════════ */

/* ─── §1 page header ───────────────────────────────────────── */
.page-head { padding-block: 56px 8px; }
@media (min-width: 1024px) { .page-head { padding-block: 88px 8px; } }
.page-head__h1 { font-family: var(--font-display); font-weight: 600; font-size: 34px; line-height: 1.06; letter-spacing: var(--tr-tight); margin: var(--s4) 0 0; max-width: 18ch; text-wrap: balance; color: var(--ink); }
@media (min-width: 768px) { .page-head__h1 { font-size: 50px; } }
.page-head__sub { margin: var(--s5) 0 0; font-size: 18px; line-height: var(--lh-loose); color: var(--ink-80); max-width: 54ch; }

/* ─── §2 sovereignty points (reuse .cards--3 / .card) ──────── */
.sov-point b { color: var(--ink); font-weight: 600; }

/* ─── §3 chip provenance note ──────────────────────────────── */
.chip { max-width: 100%; }
.chip__label { min-width: 0; }
.chip__note { color: var(--fg-mute); font-weight: 400; white-space: nowrap; }

/* ─── §4 compliance table (one-off stroke table) ───────────── */
.ctable-outer { margin-top: var(--s8); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; }
.ctable { width: 100%; border-collapse: collapse; font-size: var(--fs-ui); }
.ctable th, .ctable td { text-align: left; padding: var(--s4); border-bottom: 1px solid var(--border); vertical-align: top; }
.ctable thead th { background: var(--accent-strong); color: var(--fg-invert); font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; font-weight: 600; border-bottom: 0; }
.ctable tbody tr:last-child td { border-bottom: 0; }
.ctable td:first-child { font-weight: 600; color: var(--ink); }
.ctable td:nth-child(2) { color: var(--ink-80); }
.ctable td:nth-child(3) { color: var(--ink); }
.ctable-note { margin-top: var(--s5); font-size: var(--fs-ui); color: var(--fg-mute); line-height: var(--lh-loose); max-width: 64ch; }
@media (max-width: 640px) {
  .ctable-outer { border: 0; border-radius: 0; }
  .ctable thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .ctable, .ctable tbody, .ctable tr, .ctable td { display: block; width: 100%; }
  .ctable tr { border: 1px solid var(--border); border-radius: var(--r-lg); margin-bottom: var(--s4); background: var(--paper); overflow: hidden; }
  .ctable td { border-bottom: 1px solid var(--border-soft); padding: var(--s3) var(--s4); }
  .ctable tr td:last-child { border-bottom: 0; }
  .ctable td::before { content: attr(data-label); display: block; font-family: var(--font-mono); font-size: var(--fs-tag); letter-spacing: var(--tr-wide); text-transform: uppercase; color: var(--accent-strong); margin-bottom: 4px; }
  .ctable td:first-child { font-size: var(--fs-body); }
}

/* ─── §5 decision-support boundary ─────────────────────────── */
.boundary { margin: var(--s6) 0 0; font-size: 20px; line-height: var(--lh-loose); color: var(--ink); max-width: 58ch; }
@media (min-width: 768px) { .boundary { font-size: 22px; } }

/* ─── §6/§7 editorial [CONFIRM] caveats (pre-publish) ──────── */
.confirm { display: inline-block; margin-top: var(--s3); font-family: var(--font-mono); font-size: var(--fs-meta); letter-spacing: 0.02em; color: var(--fg-mute); background: var(--paper-soft); border: 1px dashed var(--ink-20); border-radius: var(--r-sm); padding: 3px var(--s2); }
.confirm--block { display: block; margin-top: var(--s4); padding: var(--s4); line-height: var(--lh-loose); max-width: 72ch; }
.posture-note { margin: var(--s6) 0 0; font-size: var(--fs-ui); color: var(--ink-80); line-height: var(--lh-loose); max-width: 62ch; }
.posture-note .confirm { margin-top: var(--s2); }

/* ─── §7 CTA row ───────────────────────────────────────────── */
.sec-cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s4); margin-top: var(--s6); }
.sec-cta__alt { font-size: var(--fs-ui); color: var(--ink-80); margin: 0; }
.sec-cta__alt a { color: var(--accent-strong); font-weight: 500; }
.sec-cta__alt a:hover { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 420px) { .sec-cta .btn { width: 100%; } }
.cta-close { margin-top: var(--s8); }

/* ════════════════════════════════════════════════════════════
   §8 "Book a call" — interactive logo + green cursor-blur
   ════════════════════════════════════════════════════════════ */
.final__col--primary { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; }
.final__col--primary .final__heading,
.final__col--primary > .btn--primary { position: relative; z-index: 2; }
.logo-stage { position: relative; align-self: stretch; flex: 1 1 auto; min-height: 260px; margin-top: var(--s8); display: grid; place-items: center; }
.logo-stage__glow { position: absolute; inset: 0; display: grid; place-items: center; transform: translate3d(0,0,0); transition: transform .6s cubic-bezier(.22,.61,.36,1); pointer-events: none; }
.logo-stage__glow-inner { width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle at 50% 50%, var(--accent-haze) 0%, var(--accent) 24%, rgba(116,170,30,0.30) 48%, transparent 72%); filter: blur(52px); opacity: 0.8; animation: glowFloat 9s ease-in-out infinite; }
@keyframes glowFloat {
  0%, 100% { transform: translate(-6%, -4%) scale(1); }
  33% { transform: translate(7%, 3%) scale(1.08); }
  66% { transform: translate(-3%, 6%) scale(0.95); }
}
.logo-stage__mark { position: relative; z-index: 1; font-family: var(--font-display); font-weight: 800; font-size: clamp(104px, 17vw, 176px); line-height: 1; letter-spacing: -0.05em; color: var(--ink); opacity: 0.09; transform: perspective(620px) rotateX(0deg) rotateY(0deg); transition: transform .4s cubic-bezier(.22,.61,.36,1); will-change: transform; user-select: none; }
@media (max-width: 1023px) { .logo-stage { min-height: 200px; } .logo-stage__mark { font-size: clamp(88px, 22vw, 128px); } }
@media (prefers-reduced-motion: reduce) {
  .logo-stage__glow-inner { animation: none; }
  .logo-stage__glow, .logo-stage__mark { transition: none; }
}

/* ════════════════════════════════════════════════════════════
   COPY V2 — PRODUCT-FIRST HOMEPAGE (additive, DS tokens only).
   Modifiers/utilities layered on EXISTING components — no new
   components, no new colors, no new fonts. Each rule documented
   in the handoff audit.
   ════════════════════════════════════════════════════════════ */

/* Fix-pass tokens — a layout var + an AA-passing muted-ink step.
   --fg-mute-aa is the SAME ink hue as --ink-50/--ink-80 at a new opacity
   step (not a new color); the global --fg-mute token is left unchanged. */
:root {
  --nav-h: 65px;                      /* nav__inner 64 + 1px border-bottom */
  --fg-mute-aa: rgba(22, 22, 26, 0.64); /* ~5.4:1 on white — AA for small text */
}

/* Lean nav — wordmark + single CTA only (overrides the 3-col grid). */
.nav__inner--lean {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
}

/* Hero — full-viewport-height (brief requirement). Centers the
   existing .hero--sov content; halo + watermark unaffected. */
.hero--full {
  /* fill exactly one viewport minus the sticky nav — no overshoot before §2 */
  min-height: calc(100svh - var(--nav-h));
  display: flex;
  align-items: center;
}

/* Pillar lead line — the "Lead" sentence between name and body.
   Sits inside the existing .card--pillar between title and body. */
.card__lead {
  margin: 0 0 var(--s3);
  font-size: 17px;
  line-height: var(--lh-body);
  font-weight: 500;
  letter-spacing: var(--tr-snug);
  color: var(--ink);
  text-wrap: pretty;
}

/* Four-up numbered cards — How it works (4 steps).
   Extends the existing .cards / .card / .card__num pattern. */
ol.cards { padding-left: 0; list-style: none; }
ol.cards > li { list-style: none; }
.cards--4 { grid-template-columns: 1fr; }
@media (min-width: 680px)  { .cards--4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cards--4 { grid-template-columns: repeat(4, 1fr); } }

/* Who-it's-for line — verbatim audience sentence, bold lead.
   Used in place of title+body inside the existing .card--pillar. */
.who-line {
  margin: 0;
  font-size: 17px;
  line-height: var(--lh-loose);
  color: var(--ink-80);
  text-wrap: pretty;
}
.who-line strong { color: var(--ink); font-weight: 600; }

/* Single-column final CTA — only one panel ("Talk to us"). */
.final--single { grid-template-columns: 1fr; }

/* Lean footer — single page, no route columns (brand + contact). */
.footer__cols--lean { grid-template-columns: 1fr; gap: var(--s8); }
@media (min-width: 1024px) { .footer__cols--lean { grid-template-columns: 1.4fr 1fr; } }

/* Hero headline — smaller on phones so it composes to ~3 lines (text unchanged). */
@media (max-width: 480px) {
  .hero__h1 { font-size: 32px; line-height: 1.05; }
}

/* Pillars — promote 3-up earlier. Scoped to #pillars so the shared
   .cards--3 component (used on other surfaces) is NOT changed.
   Floor is 860px, not 768: at 768/800 three cards drop to 181/195px of
   inner width (vs the DS's own 269px at 1024) — cramped. 860 keeps them
   at ~215px. So iPad-portrait (768) intentionally stays single-column. */
@media (min-width: 860px) {
  #pillars .cards--3 { grid-template-columns: repeat(3, 1fr); }
}

/* Small section heading — pillars intro "Three things hold it together."
   is an <h2> for the outline, but kept visually quiet (2-class specificity
   beats the marketing-h2 @media rule at every width). */
.section__title.section__title--sm { font-size: var(--fs-h2); }

/* ════════════════════════════════════════════════════════════
   DOCX EDIT PASS — composition references mapped to our DS.
   #1 Hero: centered composition (badge above, note below CTA).
   #2 Foundation: in-perimeter inversion diagram (visual).
   #3 In production: one filled-green metric card + number count-up.
   Tokens only — no new colors, no new fonts. Copy unchanged.
   ════════════════════════════════════════════════════════════ */

/* Scroll-reveal utility — base state is VISIBLE; is-in plays a one-shot
   entrance. So no-JS, reduced-motion, print/PDF, and any environment where
   the observer never fires all show content (never stuck hidden). */
@media (prefers-reduced-motion: no-preference) {
  .js .reveal.is-in { animation: revealIn 0.6s var(--ease-out, ease) both; }
}
@keyframes revealIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

/* ── #1 Hero — centered composition (image2 reference) ──────── */
.hero__inner--center {
  margin-inline: auto;
  max-width: 920px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.hero__inner--center .hero__h1 { max-width: 20ch; }
.hero__inner--center .hero__sub { margin-inline: auto; max-width: 58ch; }
.hero__inner--center .hero__ctas { justify-content: center; }

.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  align-self: center;
  margin: 0 0 var(--s6);
  padding: 6px var(--s4);
  border: 1px solid var(--border);
  border-radius: var(--r-full);
  background: var(--paper);
  box-shadow: var(--shadow-1);
  font-size: var(--fs-meta);
  font-weight: 500;
  letter-spacing: var(--tr-snug);
  color: var(--ink-80);
}
.hero__badge::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.hero__note {
  margin: var(--s5) 0 0;
  font-size: var(--fs-meta);
  color: var(--fg-mute-aa);
}

/* ── #2 Foundation — visual panel (image4 reference, our essence) ── */
.foundation-grid { display: grid; gap: var(--s8); align-items: center; }
@media (min-width: 860px) {
  .foundation-grid { grid-template-columns: 1.05fr 0.95fr; gap: var(--s10); }
}

.found-viz {
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  background: var(--paper);
  box-shadow: var(--shadow-1);
  overflow: hidden;
}
.found-viz__bar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  padding: var(--s4) var(--s5);
  border-bottom: 1px solid var(--border);
  background: var(--paper-soft);
}
.found-viz__tag {
  font-family: var(--font-mono); font-size: var(--fs-meta);
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--accent-strong);
}
.found-viz__live {
  display: inline-flex; align-items: center; gap: var(--s2);
  font-family: var(--font-mono); font-size: var(--fs-meta);
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-80);
}
.found-viz__live i {
  width: 7px; height: 7px; border-radius: var(--r-full);
  background: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
}
.found-viz__stage { display: flex; align-items: stretch; gap: var(--s3); padding: var(--s8) var(--s5); }
.fagents { display: flex; flex-direction: column; justify-content: center; gap: var(--s3); flex-shrink: 0; }
.fnode {
  padding: var(--s3) var(--s3);
  border: 1px solid var(--border); border-radius: var(--r-md);
  background: var(--paper);
  font-size: var(--fs-meta); font-weight: 500; color: var(--ink);
  white-space: nowrap; text-align: center;
}
.fnode--accent { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-soft); }
.farrow { display: inline-flex; align-items: center; color: var(--accent-strong); flex-shrink: 0; }
.farrow svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.fvault {
  position: relative; flex: 1;
  display: flex; flex-direction: column; justify-content: center; gap: var(--s2);
  padding: var(--s6) var(--s4) var(--s4);
  border: 1.5px dashed var(--accent); border-radius: var(--r-lg);
  background: var(--accent-soft);
}
.fvault__tag {
  position: absolute; top: -9px; left: var(--s4);
  padding: 0 var(--s2); background: var(--paper);
  font-size: 9px; letter-spacing: var(--tr-wide); text-transform: uppercase;
  font-weight: 600; color: var(--accent-strong);
}
.fdata { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s2); }
.fdata li {
  padding: var(--s2) var(--s3);
  border: 1px solid var(--accent-20); border-radius: var(--r-sm);
  background: var(--paper);
  font-size: var(--fs-meta); color: var(--ink);
}
.found-viz__foot {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3); flex-wrap: wrap;
  padding: var(--s4) var(--s5);
  border-top: 1px solid var(--border); background: var(--paper-soft);
}
.flock, .fcap { display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--fs-meta); color: var(--ink-80); }
.flock svg { width: 14px; height: 14px; fill: none; stroke: var(--accent-strong); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* ── #3 In production — light-green metric card (image3 reference) ── */
/* --accent-soft (light green tint) with --ink text → high contrast. */
.metric--fill { background: var(--accent-soft); border-color: var(--accent-20); }
.metric--fill .metric__num { color: var(--ink); }
.metric--fill .metric__num small { color: var(--ink); opacity: 0.72; }
.metric--fill .metric__label { color: var(--ink-80); }
.metric__num .count { font-variant-numeric: tabular-nums lining-nums; }

/* ════════════════════════════════════════════════════════════
   PILLARS EDIT PASS — animated mini-visuals per card + emphasized
   capability note. Geometric DS diagrams only (circles/lines/arcs/
   rects), green tokens. Loops gated on .is-in (in-view) and on
   prefers-reduced-motion; base state is a complete static diagram.
   ════════════════════════════════════════════════════════════ */
.pillar-viz {
  position: relative;
  height: 128px;
  margin-bottom: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  background:
    radial-gradient(130% 100% at 50% 0%, var(--accent-soft) 0%, rgba(116,170,30,0) 62%),
    var(--paper);
  overflow: hidden;
}
.pillar-viz svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* Card stagger on reveal */
#pillars .cards--3 .card--pillar:nth-child(2).is-in { animation-delay: 0.07s; }
#pillars .cards--3 .card--pillar:nth-child(3).is-in { animation-delay: 0.14s; }

/* Viz A — Multi-agent reasoning (node assembly) */
.pa-lines line { stroke: var(--accent-20); stroke-width: 1.5; }
.pa-src { fill: var(--paper); stroke: var(--accent); stroke-width: 1.5; }
.pa-core { fill: var(--accent-soft); stroke: var(--accent-strong); stroke-width: 1.75; }
.pa-token { fill: var(--accent-strong); opacity: 0; }

/* Viz B — Risk Sentinel (bounded gauge) */
.gauge-track { fill: none; stroke: var(--border); stroke-width: 8; stroke-linecap: round; }
.gauge-fill { fill: none; stroke: var(--accent); stroke-width: 8; stroke-linecap: round; stroke-dasharray: 251; stroke-dashoffset: 70; }
.gauge-limit { stroke: var(--accent-strong); stroke-width: 2.5; stroke-linecap: round; }
.gauge-glyph .shield { fill: var(--accent-soft); stroke: var(--accent-strong); stroke-width: 1.6; stroke-linejoin: round; }
.gauge-glyph .check { fill: none; stroke: var(--accent-strong); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Viz C — Confidential & in-perimeter (contained data + attest sweep) */
.per-box { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: 5 4; }
.per-scan { fill: var(--accent); opacity: 0.14; }
.per-dot { fill: var(--accent-strong); }
.per-lock rect { fill: var(--accent-soft); stroke: var(--accent-strong); stroke-width: 1.5; }
.per-lock .per-shackle { fill: none; stroke: var(--accent-strong); stroke-width: 1.5; }

@media (prefers-reduced-motion: no-preference) {
  .is-in .pa-token { animation: paFlow 2.4s cubic-bezier(0.4,0,0.2,1) infinite; }
  .is-in .pa-core { animation: paPulse 2.4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
  .is-in .gauge-fill { animation: gaugeSweep 3.6s cubic-bezier(0.4,0,0.2,1) infinite; }
  .is-in .gauge-limit { animation: gaugeTick 3.6s ease-in-out infinite; }
  .is-in .per-scan { animation: perScan 3s ease-in-out infinite; }
  .is-in .per-dot { animation: perFloat 3.2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
  .is-in .per-lock { animation: perLock 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
}
@keyframes paFlow {
  0% { transform: translate(0,0); opacity: 0; }
  15% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translate(var(--dx), var(--dy)); opacity: 0; }
}
@keyframes paPulse { 0%,80%,100% { transform: scale(1); } 90% { transform: scale(1.14); } }
@keyframes gaugeSweep {
  0% { stroke-dashoffset: 251; }
  35% { stroke-dashoffset: 70; }
  82% { stroke-dashoffset: 70; }
  100% { stroke-dashoffset: 251; }
}
@keyframes gaugeTick { 0%,30%,100% { opacity: 0.45; } 40% { opacity: 1; } }
@keyframes perScan { 0%,100% { transform: translateY(2px); } 50% { transform: translateY(64px); } }
@keyframes perFloat { 0%,100% { transform: translate(0,0); } 50% { transform: translate(0,-3px); } }
@keyframes perLock { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }

/* Emphasized capability note (was getting lost) — larger + colored,
   with the live-capability sentence pulled forward vs the roadmap. */
.note--capability {
  padding: var(--s8) var(--s6);
  background: var(--accent-soft);
  border-color: var(--accent-20);
  border-left: 4px solid var(--accent);
}
.note--capability .note__text {
  margin: 0;
  font-size: 19px;
  line-height: var(--lh-loose);
  color: var(--ink-80);
  text-wrap: pretty;
}
@media (min-width: 768px) { .note--capability .note__text { font-size: 21px; } }
.note__live { color: var(--ink); font-weight: 600; }
