/* EvalGlass site — editorial-serif redesign.
   Warm "peach" paper, oversized serif headlines, white rounded cards, one dark
   high-contrast band, vivid accents used sparingly (blue links, signature green
   selection). Static HTML/CSS, no JS. Every v2-* class name is preserved from the
   prior stylesheet so all marketing pages reskin from this one file. */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&display=swap');

:root {
  /* paper + ink */
  --peach:#f1e9e7;          /* page background          */
  --peach-2:#ece2de;        /* alt warm surface         */
  --card:#fffaf8;           /* card / panel             */
  --card-2:#fbf3ef;         /* subtle card              */
  --ink:#1a1714;            /* body text                */
  --ink-strong:#000;        /* headlines                */
  --muted:#5c5650;          /* secondary text           */
  --faint:#8a837b;          /* tertiary text            */
  --line:#e3d8d2;           /* hairline border          */
  --line-strong:#d3c5bd;
  --dark:#17140f;           /* dark band                */
  --dark-card:#211d17;

  /* accents (from reference palette) */
  --blue:#0058fe;  --blue-dark:#0042c4;  --blue-soft:#e4ecff;  --blue-line:#c4d4ff;
  --green:#00e600;
  --green-ink:#0a7a2b; --green-soft:#e2f7df; --green-line:#bce8be;
  --orange:#fe4f00; --orange-soft:#ffe7dd; --orange-line:#ffcdb8;
  --pink:#ff3cfe;
  --gray-soft:#efe6e1;
  /* amber (status: next · verdict: review) — calmer than the hot --orange */
  --amber:#8a5b00; --amber-soft:#fff0d8; --amber-line:#f0dcae;
  /* rose (verdict: fail/blocked) — kept = reference --red so the two surfaces agree */
  --rose:#c62f44; --rose-soft:#fbe6e9; --rose-line:#f3ccd2;
  /* violet (status: experimental) — = the reference/trust-wheel violet facet */
  --violet:#8e63d6; --violet-soft:#efe7fb; --violet-line:#ddccf3;

  /* type */
  --display:"Fraunces","Hoefler Text",Georgia,"Times New Roman",serif;
  --serif:"Newsreader","Iowan Old Style",Georgia,"Times New Roman",serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* fluid sizes */
  --fs-hero:clamp(2.6rem, 1.35rem + 4.4vw, 4.7rem);
  --fs-h2:clamp(1.85rem, 1.25rem + 1.9vw, 2.7rem);
  --fs-lead:clamp(1.12rem, 1.02rem + 0.4vw, 1.32rem);

  --maxw:1060px;
  --radius:18px;
  --shadow:0 1px 2px rgba(40,25,15,.04), 0 12px 28px -16px rgba(60,35,20,.18);
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  font-family:var(--serif);
  font-size:18px; line-height:1.6; letter-spacing:-.005em;
  color:var(--ink);
  background-color:var(--peach);
  background-image:
    radial-gradient(1100px 520px at 78% -8%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(900px 480px at 8% 4%, rgba(255,79,0,.05), transparent 55%);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
::selection { background:var(--green); color:#000; }

h1,h2,h3,h4 { font-family:var(--display); font-weight:500; color:var(--ink-strong);
  letter-spacing:-.02em; margin:0; }
a { color:var(--blue); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:2px; }
strong,b { font-weight:600; }
em { font-style:italic; }

/* ---------- header ---------- */
.v2-header { position:sticky; top:0; z-index:10;
  background:rgba(241,233,231,.82); backdrop-filter:saturate(1.1) blur(10px);
  border-bottom:1px solid var(--line); }
.v2-bar { max-width:var(--maxw); margin:0 auto; display:flex; align-items:center;
  justify-content:space-between; gap:18px; padding:15px 28px; }
.v2-brand { display:inline-flex; align-items:center; gap:9px; color:var(--ink-strong); }
.v2-brand:hover { text-decoration:none; }
.v2-brand__mark { flex:0 0 auto; display:block; width:28px; height:auto; }
.v2-brand__name { font-family:var(--display); font-weight:600; font-size:21px;
  letter-spacing:-.02em; }
.v2-nav { display:flex; gap:26px; align-items:center; font-size:16px; flex-wrap:wrap; }
.v2-nav a { color:var(--muted); }
.v2-nav a:hover { color:var(--ink-strong); text-decoration:none; }
.v2-nav a.active { color:var(--ink-strong); }
.v2-nav a.v2-ref { color:var(--ink-strong); }
.v2-nav a.v2-btn, .v2-nav a.v2-btn:hover { color:var(--peach); }

/* ---------- shell ---------- */
.v2-shell { max-width:var(--maxw); margin:0 auto; padding:0 28px 64px; }

/* ---------- hero ---------- */
.v2-hero { padding:88px 0 14px; text-align:center; }
.v2-eyebrow { font-family:var(--mono); font-size:12.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue); margin:0 0 22px;
  animation:rise .6s ease both; }
.v2-hero h1 { font-size:var(--fs-hero); line-height:1.02; max-width:20ch;
  margin:0 auto 24px; overflow-wrap:break-word; animation:rise .6s .04s ease both; }
.v2-sub, .v2-lead { font-size:var(--fs-lead); color:var(--muted); line-height:1.55;
  max-width:60ch; margin:0 auto 30px; animation:rise .6s .08s ease both; }

/* hero CTA */
.v2-btnrow { display:flex; flex-wrap:wrap; gap:14px; align-items:center;
  justify-content:center; margin:0 0 18px; animation:rise .6s .12s ease both; }
.v2-btnrow__hint { font-size:16px; color:var(--faint); font-style:italic; }
.v2-cta__say { display:inline-block; font-family:var(--mono); font-size:15px;
  color:var(--ink); background:var(--card); border:1px solid var(--line-strong);
  border-left:3px solid var(--blue); border-radius:12px; padding:13px 18px;
  overflow-wrap:anywhere; box-shadow:var(--shadow); text-align:left; }
.v2-hero .v2-cta__say { animation:rise .6s .14s ease both; }
.v2-morelink { margin:26px 0 0; font-size:16px; }
.v2-morelink a { color:var(--muted); }

/* ---------- conversation motif ---------- */
.v2-turn { display:flex; flex-direction:column; gap:14px; margin:42px auto 26px;
  max-width:660px; text-align:left; animation:rise .7s .18s ease both; }
.v2-bubble { max-width:84%; padding:15px 19px; border-radius:18px; font-size:16.5px;
  line-height:1.55; overflow-wrap:anywhere; box-shadow:var(--shadow); }
.v2-bubble__who { display:block; font-family:var(--mono); font-size:10.5px;
  color:var(--faint); text-transform:uppercase; letter-spacing:.1em; margin-bottom:6px; }
.v2-bubble--you { align-self:flex-end; background:var(--blue-soft);
  border:1px solid var(--blue-line); border-bottom-right-radius:5px; }
.v2-bubble--agent { align-self:flex-start; background:var(--card);
  border:1px solid var(--line); border-left:3px solid var(--blue);
  border-bottom-left-radius:5px; }

/* hero proof chips */
.v2-proof { display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
  margin-top:10px; animation:rise .6s .22s ease both; }
.v2-proof span { font-size:14.5px; color:var(--muted); background:var(--card);
  border:1px solid var(--line); border-radius:999px; padding:7px 16px; }

/* ---------- section ---------- */
.v2-section { padding:64px 0 0; }
.v2-section__h { font-family:var(--mono); font-size:13px; text-transform:uppercase;
  letter-spacing:.14em; color:var(--blue); font-weight:400; margin:0 0 22px;
  display:flex; align-items:center; gap:11px; }
.v2-section__h::before { content:""; width:22px; height:1px; background:var(--line-strong); }
/* large serif section headline (sits under the small mono __h label) */
.v2-section__title { font-family:var(--display); font-weight:500; color:var(--ink-strong);
  font-size:var(--fs-h2); line-height:1.08; letter-spacing:-.01em; margin:0 0 16px; max-width:24ch; }
.v2-hero .v2-section__title { margin-inline:auto; } /* centered in the closing-CTA hero */

/* ---------- ask gallery ---------- */
.v2-asks { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.v2-ask { border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  padding:22px 22px 20px; box-shadow:var(--shadow);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.v2-ask--planned { background:transparent; box-shadow:none; opacity:.78; }
.v2-ask__head { display:flex; align-items:flex-start; justify-content:space-between;
  gap:12px; margin-bottom:11px; }
.v2-ask__say { font-family:var(--display); font-size:19px; font-weight:500;
  font-style:italic; color:var(--ink-strong); line-height:1.25; overflow-wrap:anywhere; }
.v2-ask__body { font-size:16px; color:var(--muted); margin:0; line-height:1.5; }
.v2-ask__line { display:flex; gap:10px; font-size:15px; color:var(--muted); margin-top:6px; }
.v2-ask__k { flex:0 0 54px; font-family:var(--mono); font-size:10.5px; color:var(--faint);
  text-transform:uppercase; letter-spacing:.05em; padding-top:3px; }
.v2-ask__v { flex:1; }
.v2-ask__foot { font-size:13px; color:var(--faint); margin-top:12px;
  border-top:1px solid var(--line); padding-top:10px; }

/* ---------- status chips (four-state taxonomy: now · next · planned · experimental) ----------
   Green is RESERVED for the pass verdict (see .v2-verdict--pass) and never used for a
   generic "now" — a shipped capability is blue, not green. "coming"/"soon" are deprecated
   aliases retoned to amber (= next) so legacy chips never read as shipped; per-page work
   replaces them with the precise four-state class. See design-guidelines.md §status. */
.v2-status { flex:0 0 auto; font-family:var(--mono); font-size:11px; font-weight:500;
  letter-spacing:.04em; padding:3px 11px; border-radius:999px; white-space:nowrap;
  border:1px solid transparent; text-transform:lowercase; }
.v2-status--now { background:var(--blue-soft); color:var(--blue); border-color:var(--blue-line); }
.v2-status--next,
.v2-status--coming, .v2-status--soon { background:var(--amber-soft); color:var(--amber); border-color:var(--amber-line); }
.v2-status--planned { background:var(--gray-soft); color:var(--faint); border-color:var(--line-strong); }
.v2-status--experimental { background:var(--violet-soft); color:var(--violet); border-color:var(--violet-line); }
/* non-goal: a decision, not a deferral — a dashed neutral outline, deliberately OFF the now/next/planned ladder so it never reads as "coming". */
.v2-status--nongoal { background:transparent; color:var(--faint); border-color:var(--line-strong); border-style:dashed; }

/* ---------- verdict pills (green = PASS only) ----------
   A fresh/example run renders --info, never --pass. Pill text must name a SPECIFIC
   approved pass ("pass · faithfulness ≥ 0.85"), never a bare "pass" readable as "safe AI".
   Non-scored/blocked pills show the STATE WORD, never a fabricated 0.0. */
.v2-verdict { display:inline-flex; align-items:center; gap:7px; font-family:var(--mono);
  font-size:11.5px; font-weight:500; letter-spacing:.03em; padding:3px 12px;
  border-radius:999px; white-space:nowrap; border:1px solid transparent;
  text-transform:lowercase; }
.v2-verdict--pass { background:var(--green-soft); color:var(--green-ink); border-color:var(--green-line); }
.v2-verdict--info { background:var(--blue-soft); color:var(--blue); border-color:var(--blue-line); }
.v2-verdict--review { background:var(--amber-soft); color:var(--amber); border-color:var(--amber-line); }
.v2-verdict--fail { background:var(--rose-soft); color:var(--rose); border-color:var(--rose-line); }
.v2-verdict-row { display:flex; flex-wrap:wrap; gap:9px; margin:18px 0 0; }

/* ---------- scorecard component (the primary visual object) ----------
   Reusable on Home, /scorecards, and every use-case page. Human-readable card; the JSON
   twin uses the existing .v2-code block (no JSON component is invented). */
.v2-scorecard { background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:22px 24px;
  max-width:560px; }
.v2-scorecard__head { display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; margin:0 0 14px; padding-bottom:14px;
  border-bottom:1px solid var(--line); }
.v2-scorecard__title { font-family:var(--mono); font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--faint); }
.v2-scorecard__rows { display:flex; flex-direction:column; gap:10px; margin:0; }
.v2-scorecard__row { display:flex; align-items:baseline; gap:12px; font-size:15px; }
.v2-scorecard__k { flex:1; color:var(--ink); }
.v2-scorecard__v { flex:0 0 auto; font-family:var(--mono); font-size:13px; color:var(--muted); }
.v2-scorecard__delta--up { color:var(--green-ink); }
.v2-scorecard__delta--down { color:var(--rose); }
.v2-scorecard__delta--flat { color:var(--faint); }
.v2-scorecard__foot { font-size:13px; color:var(--muted); margin:16px 0 0;
  border-top:1px solid var(--line); padding-top:12px; line-height:1.55; }

/* ---------- HTML-report mock (report.html vision artifact — SITE-1-02) ----------
   A LABELLED PICTURE of the shareable HTML scorecard: a verdict hero, KPI tiles, per-metric
   confidence-interval bands, and a "what this run does not claim" panel. It is never live
   output — always an informational verdict + an "illustrative example, not a measured result"
   label. The band shows the interval geometry (CI range, point, approved threshold tick); a
   gate reads the LOWER bound, not the point. Positions are data — set with inline left/width
   percentages — while all appearance stays in these classes. */
.v2-report { background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:22px 24px; margin:10px 0 0; max-width:620px; }
.v2-report__hero { display:flex; align-items:center; justify-content:space-between; gap:14px;
  flex-wrap:wrap; padding-bottom:16px; border-bottom:1px solid var(--line); }
.v2-report__ttl { font-family:var(--mono); font-size:11px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--faint); margin:0; }
.v2-report__verdict { font-family:var(--display); font-size:22px; font-weight:500;
  color:var(--ink-strong); margin:6px 0 0; }
.v2-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:18px 0 0; }
.v2-kpi { border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--card-2); }
.v2-kpi__k { font-family:var(--mono); font-size:10px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--faint); }
.v2-kpi__v { font-family:var(--mono); font-size:17px; color:var(--ink); margin-top:5px; }
.v2-band { margin:18px 0 0; }
.v2-band__head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:8px; }
.v2-band__name { font-size:15px; color:var(--ink); }
.v2-band__val { font-family:var(--mono); font-size:12.5px; color:var(--muted); }
.v2-band__track { position:relative; height:12px; border-radius:999px;
  background:var(--card-2); border:1px solid var(--line); }
.v2-band__ci { position:absolute; top:-1px; bottom:-1px; background:var(--violet-soft);
  border:1px solid var(--violet-line); border-radius:999px; }
.v2-band__pt { position:absolute; top:50%; width:10px; height:10px; margin:-5px 0 0 -5px;
  border-radius:50%; background:var(--violet); border:1px solid var(--violet-line); }
.v2-band__thr { position:absolute; top:-5px; bottom:-5px; width:2px; background:var(--ink); }
.v2-panel { margin:18px 0 0; padding:14px 16px; border:1px dashed var(--line-strong); border-radius:12px; }
.v2-panel__k { font-family:var(--mono); font-size:10px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--faint); margin:0 0 6px; }
.v2-panel p { margin:0; font-size:14.5px; color:var(--muted); line-height:1.55; }
@media (max-width:640px){ .v2-kpis { grid-template-columns:1fr 1fr; } }

/* ---------- dark band (trust callout) ---------- */
.v2-trust { margin:42px 0 0; padding:34px 36px; background:var(--dark);
  border-radius:24px; color:#f3ece6; box-shadow:0 24px 48px -28px rgba(20,12,5,.6); }
.v2-trust h3 { font-size:clamp(1.4rem,1.1rem+1.1vw,1.95rem); line-height:1.15;
  margin:0 0 12px; color:#fff; max-width:30ch; }
.v2-trust p { margin:0; color:#cfc6bd; font-size:17px; line-height:1.6; max-width:64ch; }
.v2-trust a { color:#8fb4ff; font-weight:500; }
.v2-trust a:hover { color:#bcd2ff; }
.v2-trust ::selection { background:var(--green); color:#000; }

/* ---------- how-it-works steps ---------- */
.v2-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:10px 0 0; }
.v2-steps--loop { grid-template-columns:repeat(3,1fr); } /* the Ask→…→Improve loop */
.v2-step { border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  padding:24px 22px; box-shadow:var(--shadow); }
.v2-step__n { display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:999px; background:var(--ink-strong); color:var(--peach);
  font-family:var(--display); font-size:18px; font-weight:500; margin-bottom:16px; }
.v2-step__t { font-family:var(--display); font-size:20px; font-weight:500;
  color:var(--ink-strong); margin:0 0 8px; }
.v2-step__d { font-size:15.5px; color:var(--muted); margin:0; line-height:1.5; }

/* ---------- definition list (trust / how-it-works) ---------- */
.v2-list { list-style:none; margin:26px 0 0; padding:0; text-align:left; }
.v2-list li { padding:24px 0; border-bottom:1px solid var(--line); }
.v2-list li:last-child { border-bottom:0; }
.v2-list b { display:block; font-family:var(--display); font-weight:500;
  font-size:21px; color:var(--ink-strong); margin-bottom:6px; letter-spacing:-.015em; }
.v2-list span { color:var(--muted); font-size:16.5px; line-height:1.55; }

/* ---------- handoff grid ---------- */
.v2-handoff { margin:64px 0 0; border-top:1px solid var(--line-strong); padding-top:30px; }
.v2-handoff__h { font-family:var(--mono); font-size:13px; color:var(--blue);
  text-transform:uppercase; letter-spacing:.14em; margin:0 0 20px; }
.v2-handoff__grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 36px; }
.v2-handoff__item a { font-family:var(--display); font-size:18px; font-weight:500; }
.v2-handoff__what { color:var(--faint); font-size:14.5px; margin-top:2px; }

/* ---------- site footer (multi-column) ---------- */
.v2-foot { margin-top:84px; border-top:1px solid var(--line-strong); padding:46px 0 26px; }
.v2-foot__top { display:grid; grid-template-columns:1.6fr repeat(5,1fr); gap:34px 26px; }
.v2-foot__brand .v2-brand { margin:0; }
.v2-foot__tag { font-family:var(--display); font-style:italic; font-size:16px; color:var(--ink);
  line-height:1.45; margin:14px 0 12px; max-width:34ch; }
.v2-foot__badges { font-family:var(--mono); font-size:11.5px; letter-spacing:.02em;
  color:var(--faint); line-height:1.75; }
.v2-foot__col h4 { font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.12em; color:var(--blue); font-weight:400; margin:0 0 15px; }
.v2-foot__col a { display:block; font-size:15px; color:var(--muted); margin:0 0 10px; line-height:1.3; }
.v2-foot__col a:hover { color:var(--ink-strong); text-decoration:none; }
.v2-foot__soon { font-family:var(--mono); font-size:9.5px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--faint); border:1px solid var(--line-strong); border-radius:999px; padding:1px 6px;
  margin-left:7px; vertical-align:middle; }
.v2-foot__ext::after { content:" \2197"; color:var(--faint); font-size:.85em; }
.v2-foot__base { display:flex; justify-content:space-between; gap:8px 24px; flex-wrap:wrap;
  margin-top:42px; padding-top:20px; border-top:1px solid var(--line); }
.v2-foot__base span { font-size:13px; color:var(--faint); }
@media (max-width:820px) {
  .v2-foot__top { grid-template-columns:1fr 1fr; }
  .v2-foot__brand { grid-column:1 / -1; }
}
@media (max-width:480px) {
  .v2-foot__top { grid-template-columns:1fr; gap:26px; }
}

/* ---------- legacy simple footer (still used until reskinned) ---------- */
.v2-footer { margin-top:72px; border-top:1px solid var(--line); padding:32px 0 8px; }
.v2-tagline { font-family:var(--display); font-style:italic; color:var(--ink-strong);
  font-size:20px; margin:0 0 10px; }
.v2-footer__fine { color:var(--faint); font-size:14.5px; margin:0; }
.v2-footer__fine a { color:var(--muted); }

/* ---------- buttons ---------- */
.v2-btn { display:inline-block; background:var(--ink-strong); color:var(--peach);
  font-family:var(--serif); font-weight:600; font-size:16.5px; padding:11px 22px;
  border-radius:999px; border:1px solid var(--ink-strong);
  transition:background-color .18s ease, color .18s ease, transform .18s ease; }
.v2-btn:hover { background:var(--blue); border-color:var(--blue); color:#fff;
  text-decoration:none; transform:translateY(-1px); }
.v2-btn--sm { font-size:15px; padding:8px 16px; }
.v2-btn--ghost { background:transparent; color:var(--ink-strong); border-color:var(--line-strong); }
.v2-btn--ghost:hover { background:var(--ink-strong); color:var(--peach); border-color:var(--ink-strong); transform:translateY(-1px); }

/* ---------- code ---------- */
.v2-prose code, .v2-ext code, .v2-aside code { background:var(--card-2);
  border:1px solid var(--line); border-radius:6px; padding:1px 6px;
  font-family:var(--mono); font-size:.84em; color:var(--ink); }
.v2-codelabel { font-family:var(--mono); font-size:12px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--faint); margin:22px 0 8px; }
.v2-code { display:block; background:var(--dark); color:#ece3da; font-family:var(--mono);
  font-size:14.5px; line-height:1.7; padding:18px 20px; border-radius:14px;
  overflow-x:auto; white-space:pre; margin:0; box-shadow:var(--shadow); }
.v2-code ::selection, .v2-code::selection { background:var(--green); color:#000; }

/* ---------- prose / extension sub-page ---------- */
.v2-prose p, .v2-ext p { color:var(--muted); font-size:17px; margin:0 0 16px; max-width:66ch; }
.v2-prose p:last-child { margin-bottom:0; }
.v2-grp { color:var(--muted); font-size:17px; margin:0 0 18px; max-width:64ch; }
.v2-aside { color:var(--faint); font-size:15.5px; font-style:italic; margin:16px 0 0; max-width:60ch; }
.v2-back { display:inline-block; font-family:var(--mono); font-size:13px; color:var(--muted);
  margin:0 0 18px; letter-spacing:.02em; }
.v2-ext__status { display:inline-block; vertical-align:middle; margin-left:12px; }

/* extension hero/sections: left-aligned (sub-pages read like articles) */
.v2-back + .v2-hero, .v2-ext + .v2-section, .v2-shell > .v2-section { text-align:left; }
.v2-shell > .v2-section .v2-section__h { justify-content:flex-start; }
.v2-back + .v2-hero h1, .v2-back + .v2-hero .v2-sub, .v2-back + .v2-hero .v2-lead { margin-left:0; }

/* ---------- clickable card ---------- */
.v2-card-link { display:block; color:inherit; }
.v2-card-link:hover { text-decoration:none; border-color:var(--line-strong);
  transform:translateY(-2px); box-shadow:0 2px 4px rgba(40,25,15,.05), 0 18px 36px -18px rgba(60,35,20,.28); }
.v2-card-link:hover .v2-ask__say { color:var(--blue); }

/* ---------- load animation ---------- */
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  *, ::before, ::after { animation:none !important; transition:none !important; }
}

/* ---------- responsive ---------- */
@media (max-width:860px) {
  .v2-steps { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px) {
  .v2-hero { padding:56px 0 8px; }
  .v2-asks, .v2-handoff__grid, .v2-steps { grid-template-columns:1fr; }
  .v2-bubble { max-width:94%; }
  .v2-shell { padding:0 20px 48px; }
  .v2-bar { padding:13px 20px; }
  .v2-nav { gap:16px; font-size:15px; }
  .v2-trust { padding:26px 22px; }
}

/* ---------- trust wheel (radial trust model) ----------
   The prism refracts one beam into a spectrum; the trust model refracts an
   honest evaluation into six promises that bound what a score may claim. The
   mark sits at the centre, encircled by five facet-coloured dots (a spectrum
   sweep) — the ring visually *contains* the evaluation. Pure CSS, no JS; on
   narrow screens it linearises to a labelled list. */
.tw { margin:44px auto 6px; max-width:880px; animation:rise .7s .16s ease both; }
.tw-stage { position:relative; width:100%; max-width:860px; margin:0 auto; aspect-ratio:860 / 600; }
.tw-ring { position:absolute; left:50%; top:50%; width:48.8%; aspect-ratio:1;
  transform:translate(-50%,-50%); border:1.5px solid var(--line-strong); border-radius:50%; }
.tw-ring::after { content:""; position:absolute; inset:6%; border-radius:50%;
  background:radial-gradient(circle at 50% 42%, rgba(255,255,255,.65), transparent 70%); }

.tw-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:240px; text-align:center; }
.tw-mark { display:block; width:36px; height:auto; margin:0 auto 11px; }
.tw-eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue); margin:0 0 7px; }
.tw-title { font-family:var(--display); font-weight:500;
  font-size:clamp(1.35rem, 1rem + 1.2vw, 1.75rem); line-height:1.08;
  letter-spacing:-.02em; color:var(--ink-strong); margin:0 0 8px; }
.tw-cap { font-family:var(--mono); font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--faint); margin:0; }

.tw-node { position:absolute; width:200px; }
.tw-node--1, .tw-node--4 { width:300px; }   /* top + bottom labels are wider */
.tw-node b { display:block; font-family:var(--display); font-weight:500; font-size:16px;
  letter-spacing:-.01em; line-height:1.18; color:var(--ink-strong); }
.tw-node span { display:block; font-size:13.5px; line-height:1.42; color:var(--muted); margin-top:3px; }
.tw-node::before { content:""; position:absolute; width:11px; height:11px; border-radius:50%;
  background:var(--c); box-shadow:0 0 0 3px var(--peach), 0 1px 3px rgba(40,25,15,.25); }

/* per-node placement (hexagon): the dot lands on the ring, the label is pushed
   clear of the circle. % anchors keep it aligned as the wheel scales. */
.tw-node--1 { left:50%; bottom:calc(85% + 16px); transform:translateX(-50%); text-align:center; }
.tw-node--1::before { left:50%; bottom:-16px; transform:translateX(-50%); }
.tw-node--2 { left:76.3%; top:32.5%; transform:translateY(-50%); text-align:left; }
.tw-node--2::before { left:-44px; top:50%; transform:translateY(-50%); }
.tw-node--3 { left:76.3%; top:67.5%; transform:translateY(-50%); text-align:left; }
.tw-node--3::before { left:-44px; top:50%; transform:translateY(-50%); }
.tw-node--4 { left:50%; top:calc(85% + 16px); transform:translateX(-50%); text-align:center; }
.tw-node--4::before { left:50%; top:-16px; transform:translateX(-50%); }
.tw-node--5 { right:76.3%; top:67.5%; transform:translateY(-50%); text-align:right; }
.tw-node--5::before { right:-44px; top:50%; transform:translateY(-50%); }
.tw-node--6 { right:76.3%; top:32.5%; transform:translateY(-50%); text-align:right; }
.tw-node--6::before { right:-44px; top:50%; transform:translateY(-50%); }

.tw-node--1 { --c:#8e63d6; } /* violet  */
.tw-node--2 { --c:#3f6ae8; } /* blue    */
.tw-node--3 { --c:#12a08a; } /* teal    */
.tw-node--4 { --c:#cf8a2e; } /* amber   */
.tw-node--5 { --c:#d8556a; } /* coral   */
.tw-node--6 { --c:#b257ad; } /* orchid  */

.tw figcaption { text-align:center; max-width:58ch; margin:22px auto 0;
  color:var(--muted); font-size:15.5px; line-height:1.5; }
.tw-more { text-align:center; font-family:var(--mono); font-size:12.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--faint); margin:46px 0 4px; }

@media (max-width:720px) {
  .tw { margin:30px auto 4px; }
  .tw-stage { position:static; aspect-ratio:auto; max-width:460px; }
  .tw-ring { display:none; }
  .tw-center { position:static; transform:none; width:auto; margin:0 0 8px;
    padding-bottom:18px; border-bottom:1px solid var(--line); }
  .tw-node { position:static !important; transform:none !important; width:auto !important;
    text-align:left !important; padding-left:26px; margin:18px 0 0; }
  .tw-node::before { left:0 !important; right:auto !important; top:6px !important;
    bottom:auto !important; transform:none !important; }
  .tw figcaption { text-align:left; margin-top:24px; }
}


/* ── FAQ accordion (ESEO-M6) — native <details>/<summary>, no JS ───────────────────── */
.v2-faq { display:grid; gap:10px; margin-top:8px; }
.v2-faq__item { border:1px solid var(--line,rgba(26,23,20,.14)); border-radius:12px; background:var(--surface,#fffaf7); padding:4px 18px; }
.v2-faq__item summary { cursor:pointer; padding:14px 0; font-weight:600; list-style:none; }
.v2-faq__item summary::-webkit-details-marker { display:none; }
.v2-faq__item summary::after { content:"+"; float:right; color:var(--blue,#0058fe); font-weight:700; }
.v2-faq__item[open] summary::after { content:"–"; }
.v2-faq__a { padding:0 0 14px; }
.v2-faq__a p { margin:0; color:var(--ink-soft,#312b27); }
.v2-faq__a a { color:var(--blue-dark,#0042c4); }


/* ── Answer-first sentence (ESEO-M7) — crisp definition under the H1 for readers + GEO ──── */
.v2-answer { margin:0 0 18px; font-family:var(--serif,Newsreader,Georgia,serif); font-size:20px; line-height:1.5; color:var(--ink,#1a1714); font-weight:500; max-width:60ch; }
.v2-hero .v2-answer { margin-top:14px; }


/* ── Comparison matrix (ESEO-M10) — factual + sourced; scrolls horizontally on narrow screens ── */
.v2-cmp-wrap { overflow-x:auto; margin:8px 0 0; border:1px solid var(--line); border-radius:14px;
  background:var(--card); -webkit-overflow-scrolling:touch; }
.v2-cmp { width:100%; min-width:780px; border-collapse:collapse; font-size:15px; }
.v2-cmp th, .v2-cmp td { text-align:left; padding:13px 16px; border-bottom:1px solid var(--line);
  vertical-align:top; color:var(--muted); line-height:1.45; }
.v2-cmp thead th { font-family:var(--mono); font-size:11.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--faint); background:var(--peach-2); white-space:nowrap; }
.v2-cmp tbody th { font-weight:600; color:var(--ink); white-space:nowrap; }
.v2-cmp tr:last-child td, .v2-cmp tr:last-child th { border-bottom:0; }
.v2-cmp .is-self { background:var(--blue-soft); }
.v2-cmp .is-self th { color:var(--blue-dark); }
.v2-cmp a { color:var(--blue-dark); white-space:nowrap; }
.v2-cmp__note { font-family:var(--mono); font-size:12px; letter-spacing:.02em; color:var(--faint);
  margin:10px 0 0; }
.v2-fit { display:grid; gap:9px; margin:6px 0 0; padding:0; list-style:none; }
.v2-fit li { position:relative; padding-left:24px; color:var(--muted); font-size:16.5px; line-height:1.5; max-width:68ch; }
.v2-fit li::before { content:""; position:absolute; left:0; top:.62em; width:8px; height:8px;
  border-radius:50%; background:var(--rose); }
.v2-fit--yes li::before { background:var(--green-ink); }


/* ── Concept diagrams (GEO enhancement) — pure CSS/HTML aids (the prose carries the meaning). Iridescent
      prism rule on every figure; content-sized stages; scrolls inside its own frame when wide;
      stacks on mobile. Discipline: never clip, overflow, or overlap text. ── */
.v2-dgm { position:relative; margin:16px 0 0; border:1px solid var(--line); border-radius:16px;
  background:var(--card); padding:24px 22px 20px; box-shadow:0 12px 30px -24px rgba(60,35,20,.4); }
.v2-dgm::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; border-radius:16px 16px 0 0;
  background:linear-gradient(90deg,#8e63d6,#2f6bf0,#12a08a,#cf8a2e,#d8556a); }
.v2-dgm__scroll { overflow-x:auto; padding-bottom:2px; }
.v2-dgm figcaption { margin:16px 2px 0; font-size:15px; line-height:1.5; color:var(--muted); max-width:74ch; }
.v2-dgm figcaption a { color:var(--blue-dark); }
.v2-dgm__k { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--blue); margin:0 0 7px; }

/* linear flow: stages → outcome */
.v2-flow { list-style:none; margin:0; padding:6px 2px; display:flex; gap:26px; align-items:stretch;
  justify-content:safe center; min-width:max-content; }
.v2-flow > li { flex:0 0 auto; position:relative; width:232px; background:var(--card-2);
  border:1px solid var(--line); border-radius:13px; padding:15px 16px; }
.v2-flow > li + li::before { content:"\2192"; position:absolute; left:-21px; top:50%;
  transform:translateY(-50%); font-family:var(--mono); font-size:17px; color:var(--faint); }
.v2-flow b { display:block; font-family:var(--display); font-weight:500; font-size:19px; color:#000;
  letter-spacing:-.01em; margin:0 0 5px; }
.v2-flow > li > p:last-child { margin:0; font-size:14px; line-height:1.45; color:var(--muted); }
.v2-out { list-style:none; margin:9px 0 0; padding:0; display:grid; gap:7px; }
.v2-out li { position:relative; padding-left:18px; font-size:13.5px; line-height:1.4; color:var(--ink-soft); }
.v2-out li::before { content:""; position:absolute; left:0; top:.5em; width:9px; height:9px; border-radius:50%; background:var(--faint); }
.v2-out .i-info::before { background:var(--blue); }
.v2-out .i-block::before { background:var(--rose); }
.v2-out .i-gate::before { background:var(--green-ink); }

/* boundary: what stays on your machine / what never leaves */
.v2-bound { display:grid; grid-template-columns:1fr auto 1fr; align-items:stretch; min-width:max-content; }
.v2-bound__zone { padding:2px 24px; min-width:236px; }
.v2-bound__zone:first-child { padding-left:4px; }
.v2-bound__zone:last-child { padding-right:4px; }
.v2-bound__zone ul { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px; }
.v2-bound__zone li { position:relative; padding-left:18px; font-size:14.5px; line-height:1.42; color:var(--ink-soft); }
.v2-bound__zone li::before { content:""; position:absolute; left:0; top:.52em; width:8px; height:8px; border-radius:50%; }
.v2-bound__zone--in li::before { background:var(--green-ink); }
.v2-bound__zone--out li::before { background:var(--rose); }
.v2-bound__edge { width:1px; align-self:stretch; margin:2px 0;
  background:repeating-linear-gradient(var(--line-strong) 0 7px, transparent 7px 14px); }

/* exit-code mapping: many verdicts collapse to few CI signals */
.v2-exit { list-style:none; margin:0; padding:6px 2px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.v2-exit > li { background:var(--card-2); border:1px solid var(--line); border-radius:13px; padding:15px 16px; }
.v2-exit__code { display:inline-block; margin:0 0 11px; padding:3px 10px; font-family:var(--mono); font-size:13px;
  font-weight:600; letter-spacing:.05em; color:var(--ink); background:var(--peach-2); border:1px solid var(--line); border-radius:8px; }
.v2-exit__pills { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:10px; }
.v2-exit > li > p { margin:0; font-size:14px; line-height:1.45; color:var(--muted); }

@media (max-width:680px){
  .v2-exit { grid-template-columns:1fr; }
  .v2-flow { flex-direction:column; gap:32px; min-width:0; }
  .v2-flow > li { width:auto; }
  .v2-flow > li + li::before { content:"\2193"; left:50%; top:-24px; transform:translateX(-50%); }
  .v2-bound { grid-template-columns:1fr; min-width:0; }
  .v2-bound__zone { min-width:0; padding:2px 0; }
  .v2-bound__edge { width:auto; height:1px; margin:16px 0;
    background:repeating-linear-gradient(90deg,var(--line-strong) 0 7px, transparent 7px 14px); }
}


/* ── Open source / GitHub (honest emphasis: read every line, Apache-2.0 — never counts) ── */
.v2-ghmark { display:inline-block; vertical-align:-2px; }
/* header repo icon — monochrome, inherits ink, hovers blue (sits before the Get-the-plugin CTA) */
.v2-nav__gh { display:inline-flex; align-items:center; color:var(--ink-strong); padding:2px;
  transition:color .18s ease; }
.v2-nav__gh:hover { color:var(--blue); }
.v2-btn .v2-ghmark { margin-right:8px; vertical-align:-3px; }
.v2-foot__ext .v2-ghmark { margin-right:7px; }
/* the homepage "it's all open" band — prism rule + read/contribute CTAs */
.v2-gh-band { margin:30px 0; padding:26px 28px;
  background:var(--card); border:1px solid var(--line); border-radius:18px; position:relative; overflow:hidden;
  box-shadow:0 14px 34px -26px rgba(60,35,20,.45); }
.v2-gh-band::before { content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,#8e63d6,#2f6bf0,#12a08a,#cf8a2e,#d8556a); }
.v2-gh-band h3 { font-family:var(--display); font-weight:500; font-size:clamp(22px,2.6vw,30px);
  letter-spacing:-.02em; line-height:1.05; margin:2px 0 9px; color:#000; }
.v2-gh-band p { color:var(--muted); font-size:16.5px; line-height:1.5; max-width:64ch; margin:0 0 16px; }
.v2-gh-note { display:inline-flex; align-items:center; gap:9px; margin:14px 0 0; font-size:16px; color:var(--muted); }
.v2-gh-note .v2-ghmark { color:var(--ink-strong); }
.v2-gh-note a { color:var(--blue-dark); }
@media (max-width:680px){ .v2-gh-band { padding:22px; } }

/* ============================================================================
   Learn long-form article reading layout (.lz)
   A genuine reading surface for /learn articles — editorial measure, real prose
   typography, supporting figures/tables/callouts. Namespaced under .lz so it
   never touches the marketing components. Articles opt in with <article class="lz">.
   ========================================================================== */
.lz { max-width:43rem; margin:0 auto; }

/* article header */
.lz-head { padding:60px 0 0; }
.lz-kicker { font-family:var(--mono); font-size:12.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--blue-dark); margin:0 0 14px; }
.lz-head h1 { font-family:var(--display); font-weight:480;
  font-size:clamp(2.1rem, 1.55rem + 2.3vw, 3.35rem); line-height:1.04;
  letter-spacing:-.012em; color:var(--ink-strong); margin:0; max-width:18ch; }
/* the answer-first becomes the standfirst (keeps the v2-answer generator contract) */
.lz-head .v2-answer { margin:22px 0 0; font-family:var(--serif); font-weight:500;
  font-size:clamp(1.2rem, 1.06rem + .5vw, 1.45rem); line-height:1.5; color:var(--ink);
  max-width:42ch; }
.lz-meta { margin:20px 0 0; padding:14px 0 0; border-top:1px solid var(--line);
  font-family:var(--mono); font-size:12.5px; color:var(--faint); letter-spacing:.02em;
  display:flex; flex-wrap:wrap; gap:8px 18px; }

/* on-this-page */
.lz-toc { margin:30px 0 0; padding:18px 22px; background:var(--card-2);
  border:1px solid var(--line); border-radius:14px; }
.lz-toc p { font-family:var(--mono); font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--faint); margin:0 0 10px; }
.lz-toc ol { margin:0; padding:0; list-style:none; columns:2; column-gap:30px; }
.lz-toc li { margin:0 0 7px; break-inside:avoid; }
.lz-toc a { color:var(--muted); font-size:15px; }
.lz-toc a:hover { color:var(--blue-dark); }
@media (max-width:620px){ .lz-toc ol { columns:1; } }

/* prose body */
.lz-body { margin:14px 0 0; }
.lz-body > p { font-family:var(--serif); font-size:1.18rem; line-height:1.72;
  color:var(--ink); margin:0 0 1.2em; }
.lz-body > p:first-of-type { margin-top:1.4em; }
.lz-body a { color:var(--blue-dark); text-decoration:underline;
  text-decoration-color:var(--blue-line); text-underline-offset:2px; }
.lz-body a:hover { text-decoration-color:var(--blue-dark); }
.lz-body strong, .lz-body b { font-weight:620; color:var(--ink-strong); }
.lz-body em, .lz-body i { font-style:italic; }
.lz-body code { font-family:var(--mono); font-size:.86em; background:var(--gray-soft);
  padding:.08em .35em; border-radius:5px; }

/* section headings inside the article */
.lz-body h2 { font-family:var(--display); font-weight:500;
  font-size:clamp(1.5rem, 1.22rem + 1.1vw, 2.05rem); line-height:1.14;
  letter-spacing:-.01em; color:var(--ink-strong); margin:2.5em 0 .1em; scroll-margin-top:80px; }
.lz-body h2 + p { margin-top:.7em; }
.lz-body h3 { font-family:var(--display); font-weight:500; font-size:1.3rem;
  line-height:1.2; color:var(--ink-strong); margin:1.9em 0 .1em; scroll-margin-top:80px; }
.lz-body h3 + p { margin-top:.5em; }

/* in-prose lists (used sparingly, not as the body) */
.lz-body ul, .lz-body ol { margin:0 0 1.2em; padding:0 0 0 1.3em;
  font-family:var(--serif); font-size:1.12rem; line-height:1.66; color:var(--ink); }
.lz-body li { margin:0 0 .5em; }
.lz-body li::marker { color:var(--faint); }

/* key idea / pull quote */
.lz-key { margin:1.8em 0; padding:4px 0 4px 24px; border-left:3px solid var(--blue);
  font-family:var(--display); font-weight:480; font-size:1.4rem; line-height:1.3;
  color:var(--ink-strong); letter-spacing:-.005em; }

/* claim-boundary / honest-limit callout */
.lz-note { margin:1.9em 0; padding:22px 26px; background:var(--card);
  border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:12px; }
.lz-note h2, .lz-note h3 { margin:0 0 .4em !important; font-size:1.12rem; }
.lz-note p { font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--muted);
  margin:0 0 .6em; }
.lz-note p:last-child { margin-bottom:0; }
.lz-note code { background:var(--peach-2); }

/* ask-your-agent panel (in reading flow) */
.lz-ask { margin:2em 0; padding:24px 26px; background:var(--dark); border-radius:14px; }
.lz-ask h3 { font-family:var(--display); font-weight:500; font-size:1.2rem; color:#f3ece4;
  margin:0 0 .5em; }
.lz-ask p { font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:#cfc6bd;
  margin:0 0 .7em; max-width:none; }
.lz-ask p:last-child { margin-bottom:0; }
.lz-ask a { color:#8fb4ff; }
.lz-ask__say { display:block; font-family:var(--mono); font-size:.92rem; line-height:1.5;
  color:var(--green); background:#0c0a07; border:1px solid #322c22; border-radius:9px;
  padding:13px 15px; margin:0 0 12px; white-space:normal; }
.lz-ask ::selection { background:var(--green); color:#000; }

/* figures / tables within the column */
.lz-figure { margin:1.9em 0; }
.lz-figure figcaption, .lz-cap { margin:10px 2px 0; font-family:var(--serif);
  font-size:.95rem; line-height:1.5; color:var(--faint); font-style:italic; }
.lz-tablewrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line);
  border-radius:12px; background:var(--card); }
.lz table { width:100%; border-collapse:collapse; font-family:var(--serif); font-size:1rem; }
.lz table th { text-align:left; font-family:var(--mono); font-size:11.5px; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  background:var(--card-2); padding:11px 16px; border-bottom:1px solid var(--line-strong);
  vertical-align:bottom; }
.lz table td { padding:13px 16px; border-bottom:1px solid var(--line); line-height:1.5;
  color:var(--ink); vertical-align:top; }
.lz table tr:last-child td { border-bottom:0; }
.lz table code { background:var(--peach-2); font-size:.82em; }

/* references */
.lz-refs { margin:1em 0 0; padding:0; list-style:none; counter-reset:ref; }
.lz-refs li { position:relative; padding:0 0 .8em 2.2em; font-family:var(--serif);
  font-size:1rem; line-height:1.55; color:var(--muted); counter-increment:ref; }
.lz-refs li::before { content:counter(ref); position:absolute; left:0; top:1px;
  font-family:var(--mono); font-size:12px; color:var(--blue-dark);
  border:1px solid var(--blue-line); border-radius:6px; width:1.5em; height:1.5em;
  display:flex; align-items:center; justify-content:center; }

/* a quiet divider between major movements */
.lz-rule { border:0; border-top:1px solid var(--line); margin:2.6em 0; }

/* related / continue */
.lz-related { margin:2.4em 0 0; padding:26px 0 0; border-top:1px solid var(--line-strong); }
.lz-related h2 { font-family:var(--display); font-weight:500; font-size:1.35rem;
  color:var(--ink-strong); margin:0 0 16px; }
.lz-related__grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 30px; }
.lz-related__item a { font-family:var(--display); font-size:1.08rem; color:var(--ink-strong);
  text-decoration:none; }
.lz-related__item a:hover { color:var(--blue-dark); }
.lz-related__what { font-family:var(--serif); font-size:.98rem; color:var(--muted);
  line-height:1.45; margin-top:2px; }
@media (max-width:620px){ .lz-related__grid { grid-template-columns:1fr; } }

@media (max-width:680px){
  .lz-head { padding:42px 0 0; }
  .lz-body > p, .lz-body ul, .lz-body ol { font-size:1.1rem; }
  .lz-key { font-size:1.22rem; }
  .lz-note, .lz-ask { padding:20px; }
}
