/* ============================================================================
   Salespeak v2 — parallel site ("Keep every AI agent on the same page",
   brief of 2026-09-22).

   This stylesheet deliberately reuses the LIVE homepage's design system rather
   than inventing one, so the parallel site can be judged on content and
   structure instead of on a different visual language. Values below are taken
   from the live site (webflow.css + the hand-authored block inside
   src/raw/home-next.html):

     h1            4.5rem / weight 500 / -0.5px      (.heading-style-h1-v2)
     h2            3.25rem / weight 500 / -0.5px     (.heading-style-h2-v2)
     lead          1.25rem / weight 500 / #666       (.text-size-medium)
     container     76rem, 2.5rem side padding        (.container-large-v2)
     section       6.25rem top/bottom                (.padding-section-medium)
     card          1rem radius, 1px #e2ded7, purple-tinted shadow   (.convo)
     core node     #410e93, 1.5rem radius            (.node--core)
     connectors    1.5px #c9bfe0 brackets            (.system__branches::before)
     section badge white pill, gradient border + gradient text      (.section-badge)
     primary CTA   gradient-bordered black pill      (.global-btn-holder/.global-button)
     nav           black bar, 1.5rem radius, black dropdowns        (.nav_row)

   Color roles (brief §21) mapped onto that palette: purple is Salespeak and the
   shared context core (as it already is on the live site), green marks
   current / approved / verified state, amber marks stale, red marks an actual
   conflict. Warning colors stay secondary.

   Scoped under .v2 / .v2-nav; custom properties are defined on those, NOT on
   :root, so they can't leak into webflow.css. Served from /static/ so the
   /assets/** immutable-cache rule doesn't pin this hand-edited file.
   ========================================================================= */

.v2,
.v2-nav {
  /* warm neutral ground — the live site's paper */
  --ink: #1a1a1a;
  --body: #45494d;
  --muted: #666666;
  --faint: #8d8d8d;
  --paper: #ffffff;
  --warm: #f1f0ee;
  --warm-soft: #f8f7f6;
  --line: #eae6df;
  --line-soft: #eee9e2;
  --line-card: #e2ded7;

  /* brand purple — Salespeak, the context core */
  --purple-deep: #410e93;
  --purple: #7448ff;
  --purple-tint: #eee5ff;
  --purple-line: #ddcbfa;
  --connector: #bcafdb;

  /* agents and systems */
  --blue: #0f40fe;
  --blue-tint: #d0d6ff;
  --blue-ink: #12297d;

  /* state */
  --green: #12805a;
  --green-bright: #19b27b;
  --green-tint: #e2f3ea;
  --amber: #b45309;
  --amber-tint: #fdf2e0;
  --red: #c0392b;
  --red-tint: #fbe8e4;

  --r: 1rem;
  --r-lg: 1.5rem;
  --r-sm: 0.7rem;
  --sh-card: 0 20px 44px -24px rgba(65, 14, 147, 0.22);
  --sh-lift: 0 28px 64px -28px rgba(65, 14, 147, 0.34);
  --grad: linear-gradient(135deg, #ff4500 3%, #ff9c24 27%, #ff856a 50%, #7f38ff 66%, #0e40fe 93%);
  /* The live site renders "Inter 18 Pt" — webflow.css self-hosts every weight and
     its body rule overrides the older Montserrat one. Same stack here, so no
     extra font request and the headings match character for character. */
  --sans: "Inter 18 Pt", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.v2, .v2 *, .v2 *::before, .v2 *::after { box-sizing: border-box; margin: 0; padding: 0; }
.v2 {
  font-family: var(--sans);
  color: var(--body);
  background: var(--paper);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.v2 img, .v2 svg { max-width: 100%; display: block; }
.v2 a { color: inherit; text-decoration: none; }
.v2 ul, .v2 ol { list-style: none; }

.v2 .wrap { width: 100%; max-width: 76rem; margin: 0 auto; padding: 0 2.5rem; }
.v2 section { padding: 6.25rem 0; position: relative; }
.v2 .s-warm { background: var(--warm); }
.v2 .s-soft { background: var(--warm-soft); }

/* ---------- Type ---------- */
.v2 h1, .v2 h2, .v2 h3, .v2 h4 { font-family: var(--sans); color: var(--ink); }
.v2 h1 { font-size: clamp(3rem, 5vw, 4.5rem); font-weight: 500; letter-spacing: -0.5px; line-height: 1.2; }
.v2 h2 { font-size: clamp(1.75rem, 3.6vw, 3.25rem); font-weight: 500; letter-spacing: -0.5px; line-height: 1.2; }
.v2 h3 { font-size: 1.05rem; font-weight: 700; line-height: 1.4; }
.v2 p.lead { font-size: 1.25rem; font-weight: 500; color: var(--muted); line-height: 1.6; }
.v2 .pull {
  color: var(--ink); font-weight: 600; font-size: 1.15rem; line-height: 1.6;
  border-top: 1px solid var(--line-soft); padding-top: 1.4rem; margin-top: 2.25rem; max-width: 56rem;
}
/* the line a section is actually making — sized to land, not to be read past */
.v2 .payoff {
  color: var(--ink); font-weight: 500; letter-spacing: -0.5px; line-height: 1.25;
  font-size: clamp(1.45rem, 2.8vw, 2.1rem);
  border-top: 1px solid var(--line-soft); padding-top: 1.75rem; margin-top: 3rem; max-width: 34rem;
}

/* section header — centered, badge on top (the live .section_header) */
.v2 .s-head {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 1.25rem; max-width: 55rem; margin: 0 auto 3.5rem;
}
.v2 .s-head.left { align-items: flex-start; text-align: left; margin-left: 0; }
.v2 .s-head p.lead { max-width: 48rem; }

/* gradient-bordered badge (the live .section-badge) */
.v2 .badge-holder, .v2-nav .badge-holder {
  background-image: linear-gradient(135deg, #ff2f2f66, #ef7b1666 36%, #8a43e166 70%, #0e40fe66);
  border-radius: 624.938rem; padding: 1px; display: inline-block;
}
.v2 .badge {
  background: var(--paper); border-radius: 624.938rem; padding: 0.375rem 1rem;
  box-shadow: 0 2px 6px #e4dedacc;
}
.v2 .badge-title {
  background-image: linear-gradient(90deg, #ff2f2f, #ef7b16 36%, #8a43e1 70%, #0e40fe);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-size: 0.875rem; font-weight: 600; line-height: 1.43; white-space: nowrap;
}

/* ---------- Buttons (the live .global-btn-holder + .global-button) ---------- */
.v2 .btn-holder {
  background-image: var(--grad); border-radius: 624.938rem; padding: 2px;
  display: inline-block; overflow: hidden;
}
.v2 .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  background: #0a0d12; color: #fff; border-radius: 624.938rem;
  padding: 0.875rem 1.5rem; font-size: 0.875rem; font-weight: 600; line-height: 1.4;
  transition: background 0.2s ease, color 0.2s ease;
}
.v2 .btn:hover { background: #fff; color: #0a0d12; }
.v2 .btn .arr { transition: transform 0.2s ease; }
.v2 .btn:hover .arr { transform: translateX(3px); }
.v2 .btn-plain {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  background: #fff; color: var(--ink); border: 1px solid var(--line-card);
  border-radius: 624.938rem; padding: 0.875rem 1.5rem;
  font-size: 0.875rem; font-weight: 600; line-height: 1.4;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2 .btn-plain:hover { border-color: var(--ink); box-shadow: 0 6px 18px -10px rgba(26, 26, 26, 0.4); }
.v2 .cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.v2 .link-cta {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.9375rem; font-weight: 600; color: var(--purple-deep);
  border-bottom: 1.5px solid var(--purple-line); padding-bottom: 2px;
  transition: gap 0.15s ease, border-color 0.2s ease;
}
.v2 .link-cta:hover { gap: 0.75rem; border-color: var(--purple-deep); }

/* ---------- Chips (the live .chip family) ---------- */
.v2 .chip {
  display: inline-flex; align-items: center; gap: 0.3em;
  padding: 0.18em 0.7em; border-radius: 6.25em;
  font-size: 0.68rem; font-weight: 700; white-space: nowrap; vertical-align: middle;
}
.v2 .chip--verified { background: var(--purple-tint); color: var(--purple-deep); }
.v2 .chip--cite { background: var(--blue-tint); color: var(--blue-ink); }
.v2 .chip--ok { background: var(--green-tint); color: var(--green); }
.v2 .chip--stale { background: var(--amber-tint); color: var(--amber); }
.v2 .chip--conflict { background: var(--red-tint); color: var(--red); }

/* ---------- Cards (the live .convo) ---------- */
.v2 .card {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1.6rem 1.75rem; box-shadow: var(--sh-card);
}
.v2 .card h3 { margin-bottom: 0.5rem; }
.v2 .card p { font-size: 0.95rem; color: var(--body); }

/* ---------- Nodes + bracket connectors (the live .node / .system__branches) ---- */
.v2 .node {
  border-radius: var(--r); padding: 1.1rem 1.6rem; text-align: center;
  display: grid; gap: 0.15rem; justify-items: center;
}
.v2 .node__name { font-weight: 700; font-size: 1rem; color: inherit; }
.v2 .node__desc { font-size: 0.83rem; }
.v2 .node--core {
  background: var(--purple-deep); color: #fff; border-radius: var(--r-lg);
  padding: 1.3rem 2.4rem; position: relative; z-index: 1;
  box-shadow: 0 14px 34px -16px rgba(65, 14, 147, 0.5);
}
.v2 .node--core .node__desc { color: #cdb9f2; }
.v2 .node--core.stem-down::after,
.v2 .node--core.stem-up::before {
  content: ""; position: absolute; left: 50%; width: 1.5px; height: 1.7rem; background: var(--connector);
}
.v2 .node--core.stem-down::after { bottom: -1.7rem; }
.v2 .node--core.stem-up::before { top: -1.7rem; }
.v2 .node--leaf { background: #fff; border: 1px solid var(--line-card); color: var(--ink); }
.v2 .node--leaf .node__desc { color: var(--body); }
.v2 .node--leaf-alt { background: var(--purple-tint); border-color: var(--purple-line); }
/* one-to-many bracket: a 1.5px rule that splits from the core into the row below */
.v2 .stem { width: 1.5px; height: 1.7rem; background: var(--connector); justify-self: center; }
.v2 .branches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; width: 100%; position: relative; margin-top: 3.4rem; }
.v2 .branches::before {
  content: ""; position: absolute; left: 16.66%; right: 16.66%; top: -1.7rem; height: 1.7rem;
  border-top: 1.5px solid var(--connector);
  border-left: 1.5px solid var(--connector);
  border-right: 1.5px solid var(--connector);
  border-radius: 12px 12px 0 0;
}
.v2 .branches.up { margin-top: 0; margin-bottom: 3.4rem; }
.v2 .branches.two { grid-template-columns: repeat(2, 1fr); }
.v2 .branches.two::before { left: 25%; right: 25%; }
.v2 .branches.up::before { top: auto; bottom: -1.7rem; border-top: 0; border-bottom: 1.5px solid var(--connector); border-radius: 0 0 12px 12px; }

/* ---------- Brand-gradient panels (the live .building_list-holder /
     .build_list-border / .build-list / .who_card-content family). The four-color
     brand gradient carries backgrounds at 8% / 10%, rings at 20% / 30%, and
     full strength for a 1px edge. ---------- */
.v2 .grad-tint {
  background-image: linear-gradient(125deg, #ff2f2f14, #ef7b1614 33%, #8a43e114 66%, #0e40fe14);
  border-radius: 1.5rem; padding: 1.5rem;
}
.v2 .grad-ring {
  background-image: linear-gradient(125deg, #ff2f2f33, #ef7b1633 33%, #8a43e133 66%, #0e40fe33);
  border-radius: 1rem; padding: 4px;
}
.v2 .grad-edge {
  background-image: linear-gradient(125deg, #ff2f2f, #ef7b16 33%, #8a43e1 66%, #0e40fe);
  border-radius: 1rem; padding: 1px;
}
.v2 .grad-inner {
  background-color: #fff;
  background-image: linear-gradient(125deg, #ff2f2f1a, #ef7b161a 33%, #8a43e11a 66%, #0e40fe1a);
  border-radius: 1rem;
}
/* the live .section_home-solution wash */
.v2 .s-wash { background-image: linear-gradient(#f8f7f6, #f1f0ee); }

/* ============================ §3/§4 HERO ============================ */
/* Hero. The live homepage runs its gradient art full-bleed at opacity 1 over a
   #f1f0ee ground (.section_home-bg > .hero-abstract, object-fit:cover) — the warm
   cream-to-lavender wash IS the hero's background, not a texture behind one. Same
   here: no overlay, no fade. */
.v2 .hero { padding: 9rem 0 7rem; position: relative; overflow: hidden; background: var(--warm); }
.v2 .hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.v2 .hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.v2 .hero .wrap { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; }
.v2 .hero-icon { width: 2rem; margin-bottom: 0.75rem; }
.v2 .hero h1 { margin-bottom: 0.75rem; max-width: 15ch; }
/* The broadened promise is ~60 characters against ~35 for the line it replaced,
   so at 4.5rem in a half-width column it broke into six lines. Size it for the
   copy it actually carries; the About hero keeps the full display size. */
.v2 .hero:not(.about-hero) h1 { font-size: clamp(2.35rem, 3.7vw, 3.5rem); max-width: 19ch; line-height: 1.14; }
.v2 .hero p.sub { font-size: 1.25rem; font-weight: 500; color: var(--muted); line-height: 1.6; max-width: 34rem; margin-bottom: 1.5rem; }
.v2 .proof-line {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem;
  font-size: 0.8rem; font-weight: 600; color: var(--body); margin-bottom: 2rem;
}
.v2 .proof-line span { display: inline-flex; align-items: center; gap: 0.35rem; }
.v2 .proof-line span::before {
  content: ""; width: 0.4rem; height: 0.4rem; border-radius: 50%;
  background: var(--green-bright); box-shadow: 0 0 0 3px rgba(25, 178, 123, 0.16);
}

/* ============================================================================
   Hero field components — ported from the live homepage's hand-authored block
   (src/raw/home-next.html): drifting ghost cards, conversation cards, and the
   agent-traffic log, re-scoped under .v2.

   The field itself reads as one tree: a single product update changes the
   context once, and the same answer hangs off it for all five internal agents.
   ========================================================================= */
.v2 .field { position: relative; width: 100%; display: grid; }

/* ghost stream */
.v2 .ghost {
  position: absolute; background: #fff; border-radius: 0.7rem; border: 1px solid #eee9e2;
  box-shadow: 0 10px 24px -18px rgba(65, 14, 147, 0.25); padding: 0.5rem 0.65rem;
  width: 11rem; pointer-events: none; z-index: 0; animation: v2-ghost-drift 14s linear infinite; opacity: 0;
}
.v2 .ghost i { display: block; height: 6px; border-radius: 3px; background: #ece8e1; margin-bottom: 5px; font-style: normal; }
.v2 .ghost i:last-child { width: 60%; margin-bottom: 0; }
.v2 .ghost b { display: flex; align-items: center; gap: 4px; font-size: 0.55rem; font-weight: 600; color: #b3aea6; margin-bottom: 5px; }
.v2 .ghost b::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--gdot, #c9c3ba); }
@keyframes v2-ghost-drift {
  0% { opacity: 0; transform: translateY(46px) scale(var(--gs, 0.9)); }
  12% { opacity: var(--go, 0.5); }
  82% { opacity: var(--go, 0.5); }
  100% { opacity: 0; transform: translateY(-56px) scale(var(--gs, 0.9)); }
}
.v2 .g1 { top: -4%; left: -8%; --go: .45; --gs: .92; --gdot: #b28eff; animation-delay: 0s; filter: blur(1px); }
.v2 .g2 { top: -9%; right: -4%; --go: .3; --gs: .8; --gdot: #ff856a; animation-delay: -4s; filter: blur(2px); }
.v2 .g3 { top: 42%; left: -14%; --go: .28; --gs: .78; --gdot: #0f40fe; animation-delay: -8s; filter: blur(2.5px); }
.v2 .g4 { bottom: 14%; right: -10%; --go: .4; --gs: .88; --gdot: #b28eff; animation-delay: -11s; filter: blur(1.5px); }
.v2 .g5 { bottom: 2%; left: 16%; --go: .28; --gs: .75; --gdot: #ff856a; animation-delay: -6s; filter: blur(3px); }

/* the one fact that changed */
.v2 .convo--update { width: 100%; animation-delay: 0.1s; margin-bottom: 1.1rem; }
.v2 .convo--update .convo__tag { --tag-dot: #ff856a; }

/* the context node, and the spine that carries it to every agent */
.v2 .truth-node {
  position: relative; justify-self: start; z-index: 2;
  background: #410e93; color: #fff; border-radius: 6.25em; padding: 0.6em 1.4em;
  font-size: 0.8rem; font-weight: 700; white-space: nowrap;
  box-shadow: 0 0 0 6px rgba(116, 72, 255, 0.12), 0 0 34px 4px rgba(116, 72, 255, 0.35);
  animation: v2-convo-settle 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
  transition: box-shadow 0.25s ease-out;
}
.v2 .truth-node:hover { box-shadow: 0 0 0 8px rgba(116, 72, 255, 0.18), 0 0 44px 8px rgba(116, 72, 255, 0.45); }
.v2 .truth-node::before {
  content: ""; position: absolute; left: 1.35rem; top: -1.1rem;
  width: 1.5px; height: 1.1rem; background: var(--connector);
}
.v2 .fan-list {
  position: relative; display: grid; gap: 0.4rem;
  padding: 1.2rem 0 0 2.85rem;
  animation: v2-convo-settle 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.46s both;
}
.v2 .fan-list::before {
  content: ""; position: absolute; left: 1.35rem; top: 0; bottom: 1.15rem;
  width: 1.5px; background: var(--connector);
}
.v2 .fan-list li {
  position: relative; display: flex; align-items: baseline; gap: 0.75rem;
  background: #fff; border: 1px solid var(--line-card); border-radius: 0.7rem;
  padding: 0.5rem 0.85rem; box-shadow: 0 10px 24px -20px rgba(65, 14, 147, 0.45);
}
.v2 .fan-list li::before {
  content: ""; position: absolute; left: -1.5rem; top: 50%;
  width: 1.5rem; height: 1.5px; background: var(--connector);
}
.v2 .fan-list li b { flex: none; font-size: 0.8rem; font-weight: 700; color: var(--ink); }
.v2 .fan-list li span { margin-left: auto; font-size: 0.78rem; color: var(--muted); text-align: right; }
.v2 .field-cap { margin-top: 1.25rem; font-size: 0.85rem; font-weight: 600; color: var(--muted); text-align: center; }

/* conversation cards */
.v2 .convo {
  margin: 0; background: #fff; position: relative; z-index: 1;
  border: 1px solid #eae6df; border-radius: 1rem; padding: 1rem 1.15rem 1.05rem;
  box-shadow: 0 20px 44px -24px rgba(65, 14, 147, 0.22);
  animation: v2-convo-settle 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; text-align: left;
}
@keyframes v2-convo-settle { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.v2 .convo--chat { --tag-dot: #0f40fe; justify-self: start; width: min(88%, 26rem); animation-delay: 0.1s; border-radius: 1rem 1rem 1rem 0.2rem; }
.v2 .convo--llm { --tag-dot: #7448ff; justify-self: end; width: min(92%, 27rem); animation-delay: 0.28s; background: #f8f5ff; border-color: #e4d8fb; }
.v2 .convo--email { --tag-dot: #ff856a; justify-self: start; width: min(90%, 26.5rem); animation-delay: 0.46s; }
.v2 .convo__who { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.6rem; }
.v2 .convo__who .convo__tag { margin-bottom: 0; }
.v2 .avatar {
  width: 26px; height: 26px; border-radius: 50%; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.62rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, #ff856a, #c86da5);
}
.v2 .ai-glyph {
  width: 26px; height: 26px; border-radius: 8px; flex: 0 0 auto; background: #7448ff; color: #fff;
  font-size: 0.8rem; display: flex; align-items: center; justify-content: center;
}
.v2 .convo__tag {
  display: flex; align-items: center; gap: 0.4rem;
  font-size: 0.72rem; font-weight: 600; color: #8b877f; margin-bottom: 0.6rem;
}
.v2 .convo__tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--tag-dot, #0f40fe); flex: 0 0 auto; }
.v2 .convo__q, .v2 .convo__a { font-size: 0.875rem; line-height: 1.55; margin: 0; }
.v2 .convo__q { color: #45494d; margin-bottom: 0.45rem; }
.v2 .convo__q::before { content: "\203A  "; color: #b3aea6; }
.v2 .convo__a { color: #1a1a1a; }
.v2 .convo__mailbar {
  margin: -1rem -1.15rem 0.7rem; padding: 0.5rem 1.15rem; background: #f4f6ff;
  border-bottom: 1px solid #e3e8fb; border-radius: 1rem 1rem 0 0; font-size: 0.68rem; color: #5a6070;
}
.v2 .convo__mailbar strong { color: #232c55; font-weight: 700; }
.v2 .fix-old { color: #a39e96; text-decoration: line-through; text-decoration-color: #ff856a; text-decoration-thickness: 1.5px; }
.v2 .fix-new { color: #1a1a1a; font-weight: 600; }
.v2 .convo .chip { margin-left: 0.55em; }

/* compact convo used in the fan-out row */
.v2 .convo--mini { width: 100%; padding: 0.85rem 1rem 0.9rem; animation: none; }
.v2 .convo--mini .convo__a { font-size: 0.82rem; }
.v2 .convo--mini .convo__tag { font-size: 0.68rem; margin-bottom: 0.45rem; }

/* agent-traffic log */
.v2 .log {
  background: #131316; border-radius: 1.5rem; padding: 1.1rem 1.25rem 1.3rem; color: #f2f2f5;
  box-shadow: 0 24px 48px -24px rgba(19, 19, 22, 0.4);
}
.v2 .log__head {
  display: flex; align-items: center; gap: 0.55rem; font-size: 0.75rem; font-weight: 600; color: #9c9cab;
  padding-bottom: 0.75rem; border-bottom: 1px solid #2c2c35; margin-bottom: 0.75rem;
}
.v2 .log__dot { width: 8px; height: 8px; border-radius: 50%; background: #ff856a; animation: v2-log-pulse 2.4s ease-out infinite; }
@keyframes v2-log-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.v2 .log__lines { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.78rem; line-height: 1.5; color: #c9c9d4; }
.v2 .log__lines li { padding: 0.32rem 0; border-bottom: 1px dashed #232329; display: flex; align-items: baseline; gap: 0.5rem; flex-wrap: wrap; }
.v2 .log__lines li:last-child { border-bottom: 0; }
.v2 .log__lines li span.t { color: #79798a; }
.v2 .log__lines li .gap { color: #ffb08f; font-weight: 600; }
.v2 .log__lines li .hit { color: #7ee0b6; font-weight: 600; }
.v2 .log__caption { font-size: 0.85rem; color: var(--muted); margin-top: 1rem; }

@media (prefers-reduced-motion: reduce) {
  .v2 .convo, .v2 .truth-node, .v2 .fan-list { animation: none; }
  .v2 .ghost { animation: none; opacity: var(--go, 0.35); }
  .v2 .log__dot { animation: none; }
}

/* ============================ §5 DRIFT ============================ */
.v2 .drift-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 3rem; }
.v2 .drift-card { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.5rem 1.6rem; box-shadow: var(--sh-card); }
.v2 .drift-card .change { font-size: 0.95rem; font-weight: 700; color: var(--ink); margin-bottom: 1rem; }
.v2 .drift-card .row {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem;
  padding: 0.8rem 0 0.8rem 1rem; font-size: 0.92rem; line-height: 1.5; position: relative;
}
.v2 .drift-card .row + .row { border-top: 1px solid var(--line-soft); }
.v2 .drift-card .row::before {
  content: ""; position: absolute; left: 0; top: 1.22rem;
  width: 7px; height: 7px; border-radius: 50%; flex: none;
}
.v2 .drift-card .row.ok { color: var(--ink); }
.v2 .drift-card .row.ok::before { background: var(--blue); }
.v2 .drift-card .row.stale { color: var(--body); }
.v2 .drift-card .row.stale::before { background: #ff856a; }
.v2 .drift-card .row .chip { flex: none; margin-top: 0.1rem; }

/* ============================ §6 SOURCES -> CONTEXT ============================ */
.v2 .pipe { display: grid; justify-items: center; }
.v2 .pipe-sources { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; max-width: 48rem; }
.v2 .src-chip {
  background: #fff; border: 1px solid var(--line-card); border-radius: 6.25em;
  padding: 0.45rem 1rem; font-size: 0.85rem; font-weight: 600; color: var(--body);
  box-shadow: 0 6px 16px -14px rgba(65, 14, 147, 0.4);
}
.v2 .ctx-panel {
  width: 100%; background: #fff; border: 1px solid var(--line-card);
  border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-lift);
}
.v2 .ctx-panel-hd {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 1.1rem 1.75rem; background: var(--purple-deep); color: #fff;
}
.v2 .ctx-panel-hd .name { font-size: 1rem; font-weight: 700; }
.v2 .ctx-panel-hd .state { font-size: 0.75rem; font-weight: 600; color: #cdb9f2; }
.v2 .ctx-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.v2 .ctx-tile { padding: 1.5rem 1.75rem; border-top: 1px solid var(--line-soft); border-right: 1px solid var(--line-soft); }
.v2 .ctx-tile:nth-child(3n) { border-right: 0; }
.v2 .ctx-tile b { display: block; font-size: 0.98rem; color: var(--ink); margin-bottom: 0.25rem; }
.v2 .ctx-tile span { font-size: 0.85rem; color: var(--muted); line-height: 1.5; }

/* ============================ §7 TRUST ============================ */
.v2 .trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.v2 .trust-card { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.6rem 1.6rem 1.5rem; box-shadow: var(--sh-card); }
.v2 .trust-card .ic {
  width: 2.5rem; height: 2.5rem; border-radius: 0.65rem; margin-bottom: 1rem;
  background: var(--purple-tint); color: var(--purple-deep);
  display: grid; place-items: center;
}
.v2 .trust-card .ic svg { width: 1.25rem; height: 1.25rem; }
.v2 .trust-card h3 { margin-bottom: 0.4rem; }
.v2 .trust-card p { font-size: 0.92rem; color: var(--body); line-height: 1.55; }

/* ============================ §8 EXAMPLE ============================ */
.v2 .ex-grid.one { grid-template-columns: 1fr; max-width: 44rem; }
.v2 .ex-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; max-width: 68rem; margin: 0 auto; }
.v2 .src-card { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); overflow: hidden; box-shadow: var(--sh-card); }
.v2 .src-card .hd {
  padding: 1rem 1.6rem; border-bottom: 1px solid var(--line-soft); background: var(--warm-soft);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint);
}
.v2 .src-row { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.6rem; }
.v2 .src-row + .src-row { border-top: 1px solid var(--line-soft); }
.v2 .src-row .who { flex: none; width: 7rem; font-size: 0.75rem; font-weight: 600; color: var(--faint); }
.v2 .src-row .claim { flex: 1; font-size: 1rem; font-weight: 600; color: var(--ink); }
.v2 .src-row .when { flex: none; font-size: 0.7rem; color: var(--faint); }
.v2 .src-card .flag {
  display: flex; align-items: center; gap: 0.5rem; padding: 1rem 1.6rem;
  background: var(--red-tint); font-size: 0.85rem; font-weight: 700; color: var(--red);
}
.v2 .src-card .flag::before { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: var(--red); }
.v2 .approved-card {
  background: #f8f5ff; border: 1px solid var(--purple-line); border-radius: var(--r);
  padding: 1.75rem 1.9rem; box-shadow: var(--sh-lift);
}
.v2 .approved-card .lbl { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--purple-deep); margin-bottom: 0.65rem; }
.v2 .approved-card .fact { font-size: 1.45rem; font-weight: 600; color: var(--ink); letter-spacing: -0.3px; line-height: 1.35; }
.v2 .stamps { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1.1rem; }
.v2 .fanout-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin-top: 1.6rem; }
.v2 .same { margin-top: 0.85rem; font-size: 0.8rem; color: var(--faint); text-align: center; }

/* ============================ §9 DISTRIBUTION ============================ */
.v2 .dist { display: grid; justify-items: center; }
.v2 .dist-rail { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.v2 .dist-rail span {
  background: var(--purple-tint); border: 1px solid var(--purple-line); border-radius: 0.5rem;
  padding: 0.4rem 1rem; font-size: 0.8rem; font-weight: 700; color: var(--purple-deep);
}
.v2 .dist-consumers { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; max-width: 56rem; }
.v2 .dist-consumers .c {
  background: #fff; border: 1px solid var(--line-card); border-radius: 6.25em;
  padding: 0.5rem 1.1rem; font-size: 0.85rem; font-weight: 600; color: var(--ink);
  box-shadow: 0 8px 20px -18px rgba(65, 14, 147, 0.45);
}
.v2 .dist-consumers .c.people { background: var(--purple-tint); border-color: var(--purple-line); color: var(--purple-deep); }

/* ============================ GTM CONTEXT HEALTH (section parked) ============================
   The section is out of v2-home.html until the health-check experience exists.
   These styles stay so it can be dropped back in unchanged. */
.v2 .health-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.v2 .health-panel { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-lift); }
.v2 .health-panel .chrome { display: flex; align-items: center; gap: 0.4rem; padding: 0.9rem 1.4rem; border-bottom: 1px solid var(--line-soft); background: var(--warm-soft); }
.v2 .health-panel .chrome .dot { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #d9d6d0; }
.v2 .health-panel .chrome .name { margin-left: 0.5rem; font-size: 0.72rem; font-weight: 600; color: var(--faint); }
.v2 .health-top { display: flex; align-items: center; gap: 2rem; padding: 1.75rem; border-bottom: 1px solid var(--line-soft); }
.v2 .ring { flex: none; position: relative; width: 7rem; height: 7rem; }
.v2 .ring svg { transform: rotate(-90deg); }
.v2 .ring .track { fill: none; stroke: var(--line); stroke-width: 9; }
.v2 .ring .bar { fill: none; stroke: var(--green-bright); stroke-width: 9; stroke-linecap: round; }
.v2 .ring .val { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; color: var(--ink); }
.v2 .ring .val b { display: block; font-size: 1.9rem; font-weight: 600; letter-spacing: -0.5px; line-height: 1.1; }
.v2 .ring .val span { font-size: 0.65rem; font-weight: 600; color: var(--faint); }
.v2 .health-metrics { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem 1.75rem; }
.v2 .metric { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; font-size: 0.85rem; }
.v2 .metric .k { color: var(--muted); }
.v2 .metric .n { font-weight: 700; color: var(--ink); }
.v2 .metric .n.good { color: var(--green); }
.v2 .metric .n.warn { color: var(--amber); }
.v2 .metric .n.bad { color: var(--red); }
.v2 .health-issues { padding: 1.4rem 1.75rem 1.75rem; }
.v2 .health-issues .hd { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); margin-bottom: 0.9rem; }
.v2 .issue { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.7rem 0; font-size: 0.89rem; color: var(--ink); }
.v2 .issue + .issue { border-top: 1px solid var(--line-soft); }
.v2 .issue .sev { flex: none; margin-top: 0.4rem; width: 0.45rem; height: 0.45rem; border-radius: 50%; }
.v2 .issue .sev.red { background: var(--red); }
.v2 .issue .sev.amber { background: var(--amber); }
.v2 .issue .sev.grey { background: #b9b4ab; }
.v2 .issue .meta { margin-left: auto; flex: none; font-size: 0.7rem; font-weight: 600; color: var(--faint); }

/* ============================ §11 TWO DIRECTIONS ============================ */
.v2 .dual { display: grid; grid-template-columns: 1fr auto 1.1fr auto 1fr; align-items: center; gap: 1.25rem; }
.v2 .dual-col { display: flex; flex-direction: column; gap: 0.5rem; }
.v2 .dual-lbl { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--faint); margin-bottom: 0.25rem; }
.v2 .dual-pill {
  background: #fff; border: 1px solid var(--line-card); border-radius: 0.65rem;
  padding: 0.6rem 0.95rem; font-size: 0.88rem; font-weight: 600; color: var(--ink);
  box-shadow: 0 8px 20px -18px rgba(65, 14, 147, 0.45);
}
.v2 .dual-arrow { position: relative; width: 3rem; height: 1.5px; background: var(--connector); }
.v2 .dual-arrow::after { content: ""; position: absolute; top: -4px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.v2 .dual-arrow.left::after { left: 0; border-right: 7px solid var(--connector); }
.v2 .dual-arrow.right::after { right: 0; border-left: 7px solid var(--connector); }
.v2 .dual-caption { text-align: center; margin-top: 2.5rem; font-size: 1.05rem; font-weight: 600; color: var(--ink); }

/* ============================ §14 LEARNING LOOP ============================ */
.v2 .log-wrap { max-width: 44rem; margin: 0 auto 3.5rem; }
.v2 .log-wrap .log__caption { text-align: center; }
.v2 .loop { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.v2 .loop-step {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1.4rem 1.5rem; display: grid; gap: 0.3rem; position: relative; box-shadow: var(--sh-card);
}
.v2 .loop-step .n { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; color: var(--purple); }
.v2 .loop-step b { font-size: 1rem; font-weight: 700; color: var(--ink); }
.v2 .loop-step span:last-child { font-size: 0.88rem; color: var(--muted); line-height: 1.5; }
.v2 .loop-step.return { background: var(--purple-tint); border-color: var(--purple-line); }
.v2 .loop-step.return b, .v2 .loop-step.return .n { color: var(--purple-deep); }
.v2 .loop-step.return span:last-child { color: #6b4aa8; }
.v2 .loop-step.return::after { content: "\21BB"; position: absolute; top: 1.1rem; right: 1.25rem; font-size: 1.15rem; font-weight: 700; color: var(--purple); line-height: 1; }
.v2 .loop-label { margin-top: 2rem; text-align: center; font-size: 0.95rem; font-weight: 600; color: var(--ink); }

/* ============================ §15 WHY ============================ */
.v2 .why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.v2 .why-card { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.9rem 1.8rem; box-shadow: var(--sh-card); }
.v2 .why-card .tag {
  display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--purple-deep); background: var(--purple-tint);
  border-radius: 6.25em; padding: 0.25rem 0.75rem; margin-bottom: 1rem;
}
.v2 .why-card p { font-size: 1.05rem; color: var(--ink); line-height: 1.55; }

/* ============================ §16 ARCHITECTURE ============================ */
.v2 .arch { display: grid; justify-items: center; }
.v2 .arch .node--core { width: min(100%, 44rem); }
.v2 .arch-core-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin-top: 0.9rem; }
.v2 .arch-core-items span {
  font-size: 0.72rem; font-weight: 600; color: #e4d8fb;
  border: 1px solid rgba(205, 185, 242, 0.35); border-radius: 6.25em; padding: 0.25rem 0.8rem;
}
.v2 .arch-card { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.6rem 1.7rem; box-shadow: var(--sh-card); text-align: left; }
.v2 .arch-card .k { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); margin-bottom: 0.6rem; }
.v2 .arch-card h3 { margin-bottom: 0.9rem; }
.v2 .arch-card li { font-size: 0.88rem; color: var(--body); padding: 0.45rem 0 0.45rem 1.1rem; position: relative; }
.v2 .arch-card li + li { border-top: 1px solid var(--line-soft); }
.v2 .arch-card li::before { content: ""; position: absolute; left: 0; top: 1rem; width: 0.35rem; height: 0.35rem; border-radius: 50%; background: var(--purple-line); }
.v2 .arch-card.wide { width: 100%; text-align: center; }
.v2 .arch-card.wide .k { margin-bottom: 0.75rem; }
.v2 .arch-card ul.inline { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.v2 .arch-card ul.inline li {
  border: 0; border-radius: 6.25em; background: var(--purple-tint); color: var(--purple-deep);
  font-size: 0.8rem; font-weight: 600; padding: 0.3rem 0.9rem;
}
.v2 .arch-card ul.inline li::before { display: none; }
.v2 .arch-card ul.inline li + li { border-top: 0; }
.v2 .arch-foot { margin-top: 2rem; font-size: 0.9rem; color: var(--muted); text-align: center; }

/* ============================ §18 FINAL CTA ============================ */
.v2 .final { text-align: center; }
.v2 .final .grad-tint { padding: clamp(2.5rem, 5vw, 4.5rem) 2rem; }
.v2 .final h2 { max-width: 20ch; margin: 0 auto 1rem; }
.v2 .final p { max-width: 44rem; margin: 0 auto 2rem; font-size: 1.25rem; font-weight: 500; color: var(--muted); }
.v2 .final .cta-row { justify-content: center; }

/* ---- maintain / activate / learn (2026-09-24) -----------------------------
   The page now shows what Salespeak does before explaining the layer that
   makes it possible: a three-verb strip, three applications, and one
   compressed foundation section in place of four. */
.v2 .verbs { display: flex; align-items: stretch; justify-content: center; flex-wrap: wrap; gap: 0.75rem; }
.v2 .verb {
  flex: 1 1 14rem; max-width: 18rem; background: #fff; border: 1px solid var(--line-card);
  border-radius: var(--r); padding: 1.35rem 1.5rem; box-shadow: var(--sh-card); text-align: center;
}
.v2 .verb .k { font-size: 1.05rem; font-weight: 700; color: var(--purple-deep); margin-bottom: 0.35rem; }
.v2 .verb p:last-child { font-size: 0.92rem; color: var(--body); line-height: 1.55; }
.v2 .verb-arrow { align-self: center; width: 1.5rem; height: 1.5px; background: var(--connector); position: relative; flex: none; }
.v2 .verb-arrow::after {
  content: ""; position: absolute; right: 0; top: -4px;
  border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid var(--connector);
}
.v2 .apps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.v2 .app {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1.75rem 1.7rem; box-shadow: var(--sh-card); display: flex; flex-direction: column;
}
.v2 .app .who {
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--faint); margin-bottom: 0.65rem;
}
.v2 .app h3 { font-size: 1.2rem; margin-bottom: 0.6rem; }
.v2 .app h3 a { border-bottom: 2px solid var(--purple-line); padding-bottom: 1px; }
.v2 .app h3 a:hover { border-color: var(--purple-deep); }
.v2 .app .hook { font-size: 1rem; font-weight: 600; color: var(--ink); margin-bottom: 0.6rem; }
.v2 .app p:last-child { font-size: 0.93rem; color: var(--body); line-height: 1.6; }
.v2 .app .app-link { margin-top: auto; padding-top: 1rem; }
.v2 .app .app-link { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1.25rem; }
.v2 .app .app-more { font-size: 0.92rem; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; }
.v2 .app .app-more:hover { color: var(--ink); }
.v2 .apps-note { margin-top: 1.75rem; text-align: center; font-size: 0.95rem; color: var(--muted); }
.v2 .caps3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-bottom: 3rem; }
.v2 .cap3 { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.5rem 1.6rem; box-shadow: var(--sh-card); }
.v2 .cap3 .k { font-size: 1.02rem; font-weight: 700; color: var(--ink); margin-bottom: 0.4rem; }
.v2 .cap3 p:last-child { font-size: 0.92rem; color: var(--body); line-height: 1.6; }
@media (max-width: 991px) {
  .v2 .apps, .v2 .caps3 { grid-template-columns: 1fr; }
  .v2 .verbs { flex-direction: column; align-items: stretch; }
  .v2 .verb { max-width: none; }
  .v2 .verb-arrow { width: 1.5px; height: 1.25rem; margin: 0 auto; }
  .v2 .verb-arrow::after { right: auto; left: -4px; top: auto; bottom: 0; border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid var(--connector); }
}

/* ---- above-the-fold pass (2026-09-24) -------------------------------------
   The hero groups its conversations into three worlds (team, buyers, buyers'
   AI) hanging off one spine that converges on the version node. The problem
   section opens with the same question answered three different ways. */
.v2 .conv-groups { position: relative; padding: 0 0 1.4rem 2.85rem; }
.v2 .conv-groups::before {
  content: ""; position: absolute; left: 1.35rem; top: 1.5rem; bottom: 0;
  width: 1.5px; background: var(--connector);
}
.v2 .conv-groups .gl {
  font-size: 0.64rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--faint); margin: 0.6rem 0 0.3rem;
}
.v2 .conv-groups .gl:first-child { margin-top: 0; }
.v2 .conv-groups .conv-list { padding: 0; gap: 0.3rem; }
.v2 .conv-groups .conv-list::before { display: none; }
.v2 .conv-list li span { display: inline; }
.v2 .clash { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.v2 .clash .convo--mini { box-shadow: var(--sh-card); }
.v2 .clash .convo__a { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.v2 .clash-note { font-size: 1rem; color: var(--muted); margin-bottom: 2.5rem; }
@media (max-width: 991px) {
  .v2 .clash { grid-template-columns: 1fr; }
}

/* ---- hero: conversations converge on one version (2026-09-24) -------------
   The hierarchy is conversations -> shared company version -> the layer that
   maintains it, so the spine runs DOWN from the conversation rows into the
   version node rather than out of a core node into a list of agents. */
.v2 .conv-list { position: relative; display: grid; gap: 0.4rem; padding: 0 0 1.4rem 2.85rem; }
.v2 .conv-list::before {
  content: ""; position: absolute; left: 1.35rem; top: 1.15rem; bottom: 0;
  width: 1.5px; background: var(--connector);
}
.v2 .conv-list li {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem;
  background: #fff; border: 1px solid var(--line-card); border-radius: 0.7rem;
  padding: 0.5rem 0.85rem; box-shadow: 0 10px 24px -20px rgba(65, 14, 147, 0.45);
  animation: v2-convo-settle 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.v2 .conv-list li:nth-child(2) { animation-delay: 0.08s; }
.v2 .conv-list li:nth-child(3) { animation-delay: 0.16s; }
.v2 .conv-list li:nth-child(4) { animation-delay: 0.24s; }
.v2 .conv-list li:nth-child(5) { animation-delay: 0.32s; }
.v2 .conv-list li::before {
  content: ""; position: absolute; left: -1.5rem; top: 50%;
  width: 1.5rem; height: 1.5px; background: var(--connector);
}
.v2 .conv-list li b { font-size: 0.82rem; font-weight: 700; color: var(--ink); }
.v2 .conv-list li span { font-size: 0.74rem; line-height: 1.45; color: var(--muted); }
.v2 .conv-list li span a { color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }
.v2 .version-node {
  display: grid; gap: 0.35rem; text-align: center;
  background: var(--purple-deep); color: #fff; border-radius: var(--r-lg);
  padding: 1.1rem 1.5rem;
  box-shadow: 0 0 0 6px rgba(116, 72, 255, 0.12), 0 18px 44px -20px rgba(65, 14, 147, 0.7);
  animation: v2-convo-settle 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both;
}
.v2 .version-node .t { font-size: 0.95rem; font-weight: 700; }
.v2 .version-node .items { font-size: 0.72rem; color: #cdb9f2; line-height: 1.5; }
.v2 .promise-note {
  max-width: 44rem; margin: 0 auto; text-align: center;
  font-size: 1.02rem; color: var(--muted); line-height: 1.65;
}
.v2 .dest-grid { margin-bottom: 2.5rem; }
@media (prefers-reduced-motion: reduce) {
  .v2 .conv-list li, .v2 .version-node { animation: none; }
}

/* ---- broadened homepage (2026-09-23) --------------------------------------
   The hero fan-list now carries three destinations rather than five agents, so
   its rows stack label over examples. The distribution row groups consumers by
   destination, the architecture branches close the loop, and the Why section
   ends on a payoff line. */
.v2 .fan-list.fan-groups li { flex-direction: column; align-items: flex-start; gap: 0.15rem; }
.v2 .fan-list.fan-groups li b { font-size: 0.82rem; }
.v2 .fan-list.fan-groups li span { margin-left: 0; text-align: left; font-size: 0.74rem; line-height: 1.45; }
.v2 .payoff-note { margin-top: 1rem; font-size: 1.02rem; color: var(--muted); max-width: 38rem; line-height: 1.6; }
.v2 .why-card p a { color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }
.v2 .why-card p a:hover { border-color: var(--purple-deep); }
.v2 .why-payoff {
  margin-top: 2rem; text-align: center;
  font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 500; letter-spacing: -0.4px;
  color: var(--ink);
}
.v2 .dist-groups { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; width: 100%; max-width: 60rem; }
.v2 .dist-group {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: center;
  gap: 0.45rem; padding: 1.1rem 1rem; text-align: center;
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  box-shadow: var(--sh-card);
}
.v2 .dist-group .k {
  width: 100%; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--faint); margin-bottom: 0.25rem;
}
.v2 .dist-group .c { box-shadow: none; }
.v2 .dist-group .c a { color: var(--purple-deep); }
.v2 .arch-card h3 { font-size: 1.05rem; margin-bottom: 0.75rem; }
.v2 .arch-card li a { color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }
.v2 .arch-return {
  margin-top: 1.1rem; display: flex; align-items: center; gap: 0.5rem;
  font-size: 0.9rem; font-weight: 600; color: var(--purple-deep);
}
.v2 .arch-return .arr { font-size: 1.05rem; }
@media (max-width: 991px) {
  .v2 .dist-groups { grid-template-columns: 1fr; max-width: 32rem; }
}

/* ============================ /v2/about ============================ */
.v2 .about-hero { padding: 6rem 0 4.5rem; }
.v2 .about-hero .wrap { display: block; }
.v2 .about-hero .badge-holder { margin-bottom: 1.25rem; }
.v2 .about-hero h1 { margin-bottom: 1.25rem; }
.v2 .about-hero p.sub { max-width: 52rem; }
.v2 .about-hero p.sub strong { color: var(--ink); font-weight: 700; }

.v2 .sub-h { font-size: 1.35rem; font-weight: 700; letter-spacing: -0.3px; color: var(--ink); }

.v2 .drift-list { display: grid; gap: 0.6rem; }
.v2 .drift-list li {
  position: relative; padding-left: 1.4rem; font-size: 1.05rem; color: var(--body);
}
.v2 .drift-list li::before {
  content: ""; position: absolute; left: 0; top: 0.65em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--connector);
}

.v2 .jobs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.v2 .job-card {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1.75rem 1.7rem; box-shadow: var(--sh-card);
}
.v2 .job-card .k { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; color: var(--purple); margin-bottom: 0.9rem; }
.v2 .job-card h3 { font-size: 1.1rem; margin-bottom: 0.5rem; }
.v2 .job-card p { font-size: 0.95rem; color: var(--body); line-height: 1.6; }

/* products: the core above, the two that sit on it below */
.v2 .prod-stack { display: grid; justify-items: center; }
.v2 .prod {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1.75rem 1.8rem; box-shadow: var(--sh-card); width: 100%;
}
.v2 .prod.core {
  max-width: 44rem; text-align: center; border-color: var(--purple-line); background: #f8f5ff;
}
.v2 .prod .role { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--purple-deep); margin-bottom: 0.6rem; }
.v2 .prod h3 { font-size: 1.3rem; margin-bottom: 0.6rem; }
.v2 .prod h3 a { border-bottom: 2px solid var(--purple-line); padding-bottom: 1px; }
.v2 .prod h3 a:hover { border-color: var(--purple-deep); }
.v2 .prod p { font-size: 0.98rem; color: var(--body); line-height: 1.6; }
.v2 .prod-split { width: 1.5px; height: 2.75rem; background: var(--connector); }
.v2 .prod-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; width: 100%; position: relative; }
.v2 .prod-row::before {
  content: ""; position: absolute; left: 25%; right: 25%; top: -1.5rem; height: 1.5rem;
  border-top: 1.5px solid var(--connector); border-left: 1.5px solid var(--connector);
  border-right: 1.5px solid var(--connector); border-radius: 12px 12px 0 0;
}
.v2 .caps { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line-soft); }
.v2 .caps-label { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint); }
.v2 .caps a {
  font-size: 0.82rem; font-weight: 600; color: var(--purple-deep);
  background: var(--purple-tint); border-radius: 6.25em; padding: 0.3rem 0.85rem;
}
.v2 .caps a:hover { background: var(--purple-line); }
.v2 .why-note { margin-top: 0.75rem; font-size: 0.88rem; color: var(--muted); }

/* company facts — a real definition list, not cards full of text */
.v2 .facts { display: grid; grid-template-columns: 12rem 1fr; }
.v2 .facts dt, .v2 .facts dd { padding: 0.85rem 0; border-top: 1px solid var(--line-soft); }
.v2 .facts dt:first-of-type, .v2 .facts dt:first-of-type + dd { border-top: 0; }
.v2 .facts dt { font-size: 0.85rem; font-weight: 700; color: var(--faint); text-transform: uppercase; letter-spacing: 0.06em; }
.v2 .facts dd { font-size: 0.98rem; color: var(--ink); }
.v2 .facts dd a { color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }
.v2 .facts dd a:hover { border-color: var(--purple-deep); }

.v2 .bio { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 2rem 2.1rem; box-shadow: var(--sh-card); }
.v2 .bio-head { margin-bottom: 1rem; }
.v2 .bio h3 { font-size: 1.35rem; }
.v2 .bio-role { font-size: 0.9rem; font-weight: 600; color: var(--purple-deep); margin-top: 0.15rem; }
.v2 .bio p { font-size: 1rem; color: var(--body); line-height: 1.65; }
.v2 .bio p + p { margin-top: 0.9rem; }
.v2 .bio-links { display: flex; gap: 1rem; margin-top: 1.25rem; }
.v2 .bio-links a { font-size: 0.85rem; font-weight: 600; color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }

.v2 .faq-list { display: grid; gap: 0; }
.v2 .qa { padding: 1.5rem 0; border-top: 1px solid var(--line-soft); }
.v2 .qa:first-child { border-top: 0; padding-top: 0; }
.v2 .qa h3 { font-size: 1.08rem; margin-bottom: 0.5rem; }
.v2 .qa p { font-size: 0.98rem; color: var(--body); line-height: 1.65; }
.v2 .qa p a { color: var(--purple-deep); border-bottom: 1px solid var(--purple-line); }
.v2 .qa p a:hover { border-color: var(--purple-deep); }

@media (max-width: 991px) {
  .v2 .jobs { grid-template-columns: 1fr; }
  .v2 .prod-row { grid-template-columns: 1fr; }
  .v2 .prod-row::before, .v2 .prod-split { display: none; }
  .v2 .facts { grid-template-columns: 1fr; }
  .v2 .facts dd { padding-top: 0; border-top: 0; }
  .v2 .facts dt { padding-bottom: 0.3rem; }
  .v2 .facts dt:first-of-type + dd { border-top: 0; }
}

/* ---- About page rhythm ----------------------------------------------------
   The sitewide 6.25rem section padding is built for the homepage, where every
   section carries a large visual. /v2/about is mostly text, so the same
   spacing reads as dead space between blocks — 200px between sections and
   172px under the hero. These rules tighten the page without touching the
   homepage's rhythm. */
.v2.v2-about section { padding: 4.25rem 0; }
.v2.v2-about .about-hero { padding: 4.5rem 0 2.75rem; }
.v2.v2-about .about-hero h1 { margin-bottom: 1rem; }
.v2.v2-about .s-head { margin-bottom: 2.25rem; gap: 1rem; }
.v2.v2-about .payoff { margin-top: 2rem; padding-top: 1.35rem; }
.v2.v2-about .drift-list li { font-size: 1rem; }
.v2.v2-about .qa { padding: 1.2rem 0; }
.v2.v2-about .bio { padding: 1.75rem 1.9rem; }
.v2.v2-about .facts dt, .v2.v2-about .facts dd { padding: 0.7rem 0; }
.v2.v2-about .final .grad-tint { padding: clamp(2rem, 4vw, 3.25rem) 2rem; }

/* the three-step strip that introduces the core, and the numbered loop */
.v2 .about-hero p.sub-2 { font-size: 1.05rem; color: var(--muted); line-height: 1.65; max-width: 48rem; margin-top: 1rem; }
.v2 .after-list { margin-top: 1.25rem; font-size: 1rem; color: var(--body); line-height: 1.65; }
.v2 .core-flow { display: flex; align-items: stretch; justify-content: center; flex-wrap: wrap; gap: 0.75rem; }
.v2 .core-step {
  background: #fff; border: 1px solid var(--line-card); border-radius: var(--r);
  padding: 1rem 1.4rem; display: grid; place-items: center; text-align: center;
  box-shadow: var(--sh-card); min-width: 12rem; flex: 0 1 auto;
}
.v2 .core-step .k { font-size: 0.95rem; font-weight: 600; color: var(--ink); }
.v2 .core-step.is-core { background: var(--purple-deep); border-color: var(--purple-deep); }
.v2 .core-step.is-core .k { color: #fff; font-weight: 700; }
.v2 .core-arrow { align-self: center; width: 1.75rem; height: 1.5px; background: var(--connector); position: relative; flex: none; }
.v2 .core-arrow::after {
  content: ""; position: absolute; right: 0; top: -4px;
  border-top: 5px solid transparent; border-bottom: 5px solid transparent;
  border-left: 7px solid var(--connector);
}
.v2 .loop-flow { display: grid; gap: 0; max-width: 46rem; margin: 0 auto; counter-reset: loop; }
.v2 .loop-flow li {
  position: relative; padding: 1.1rem 0 1.1rem 3.25rem; counter-increment: loop;
}
.v2 .loop-flow li::before {
  content: counter(loop); position: absolute; left: 0; top: 1.1rem;
  width: 1.9rem; height: 1.9rem; border-radius: 50%;
  background: #fff; border: 1.5px solid var(--line-card); color: var(--ink);
  font-size: 0.78rem; font-weight: 700; display: grid; place-items: center;
}
.v2 .loop-flow li::after {
  content: ""; position: absolute; left: 0.95rem; top: 3rem; bottom: -1.1rem;
  width: 1.5px; background: var(--connector);
}
.v2 .loop-flow li:last-child::after { display: none; }
.v2 .loop-flow li.is-core::before { background: var(--purple-deep); border-color: var(--purple-deep); color: #fff; }
.v2 .loop-flow li.is-return::before { background: var(--purple-tint); border-color: var(--purple-line); color: var(--purple-deep); }
.v2 .loop-flow .k { font-size: 1.02rem; font-weight: 700; color: var(--ink); }
.v2 .loop-flow .v { font-size: 0.95rem; color: var(--muted); line-height: 1.6; margin-top: 0.2rem; }
.v2 .loop-flow .pipe-sources { margin-top: 0.6rem; }

@media (max-width: 991px) {
  .v2 .core-flow { flex-direction: column; align-items: stretch; }
  .v2 .core-arrow { width: 1.5px; height: 1.5rem; justify-self: center; margin: 0 auto; }
  .v2 .core-arrow::after { right: auto; left: -4px; top: auto; bottom: 0; border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid var(--connector); }
}

/* ============================ SOLUTIONS PAGE ============================ */
.v2 .sol-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.75rem; }
.v2 .sol-nav a {
  background: #fff; border: 1px solid var(--line-card); border-radius: 6.25em;
  padding: 0.5rem 1.1rem; font-size: 0.85rem; font-weight: 600; color: var(--ink);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.v2 .sol-nav a:hover { background: var(--purple-tint); border-color: var(--purple-line); color: var(--purple-deep); }
.v2 .sol { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; padding: 4rem 0; }
.v2 .sol + .sol { border-top: 1px solid var(--line-soft); }
.v2 .sol h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom: 0.85rem; }
.v2 .sol .role { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--purple-deep); margin-bottom: 0.9rem; }
.v2 .sol > div > p { font-size: 1rem; color: var(--muted); }
.v2 .sol-points { display: grid; gap: 0.9rem; }
.v2 .sol-point { background: #fff; border: 1px solid var(--line-card); border-radius: var(--r); padding: 1.2rem 1.4rem; box-shadow: var(--sh-card); }
.v2 .sol-point h3 { font-size: 1rem; margin-bottom: 0.25rem; }
.v2 .sol-point p { font-size: 0.92rem; color: var(--body); line-height: 1.55; }

/* ============================ RESPONSIVE ============================ */
@media (max-width: 1100px) {
  .v2 .trust-grid, .v2 .cap-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 991px) {
  .v2 section { padding: 4.5rem 0; }
  .v2 .wrap { padding: 0 1.5rem; }
  .v2 .hero { padding: 3.5rem 0 4rem; }
  .v2 .hero .wrap, .v2 .ex-grid, .v2 .health-grid, .v2 .sol { grid-template-columns: 1fr; }
  .v2 .hero h1 { max-width: none; }
  .v2 .field { max-width: 34rem; margin-left: auto; margin-right: auto; }
  .v2 .ghost { display: none; }
  .v2 .hero p.sub { font-size: 1.125rem; }
  .v2 p.lead { font-size: 1.125rem; }
  .v2 .s-head { margin-bottom: 2.5rem; }
  .v2 .drift-grid, .v2 .why-grid { grid-template-columns: 1fr; }
  .v2 .branches { grid-template-columns: 1fr; gap: 0.75rem; margin-top: 1rem; }
  .v2 .branches::before, .v2 .branches.up::before,
  .v2 .node--core.stem-down::after, .v2 .node--core.stem-up::before { display: none; }
  .v2 .branches.up { margin-bottom: 1rem; }
  .v2 .stem { display: none; }
  .v2 .field .node--core { width: 100%; }
  .v2 .ctx-grid { grid-template-columns: 1fr 1fr; }
  .v2 .ctx-tile:nth-child(3n) { border-right: 1px solid var(--line-soft); }
  .v2 .ctx-tile:nth-child(2n) { border-right: 0; }
  .v2 .health-top { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .v2 .health-metrics { width: 100%; }
  .v2 .dual { grid-template-columns: 1fr; }
  .v2 .dual-arrow { width: 1.5px; height: 2.25rem; justify-self: center; }
  .v2 .dual-arrow::after,
  .v2 .dual-arrow.left::after,
  .v2 .dual-arrow.right::after {
    top: auto; bottom: 0; left: -4px; right: auto;
    border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent;
    border-top: 7px solid var(--connector);
  }
  .v2 .loop { grid-template-columns: 1fr 1fr; }
  .v2 .fanout-grid { grid-template-columns: 1fr; }
  .v2 .branches.two { grid-template-columns: 1fr; }
  .v2 .fan-list li span { font-size: 0.74rem; }
}
@media (max-width: 640px) {
  .v2 .wrap { padding: 0 1.25rem; }
  .v2 .grad-tint { padding: 0.75rem; border-radius: 1.25rem; }
  .v2 .trust-grid, .v2 .cap-grid, .v2 .loop { grid-template-columns: 1fr; }
  .v2 .ctx-grid { grid-template-columns: 1fr; }
  .v2 .ctx-tile { border-right: 0 !important; }
  .v2 .cta-row { flex-direction: column; align-items: stretch; }
  .v2 .btn-holder, .v2 .btn-plain { width: 100%; }
  .v2 .btn { width: 100%; }
  .v2 .src-row { flex-wrap: wrap; gap: 0.35rem 1rem; }
  .v2 .src-row .who { width: 100%; }
}
