/* ============================================================
   CTAI LANDING v2 — Instrumentation-lab redesign
   Built on the sitewide tokens in design-system.css.
   Section anatomy follows the design handoff README exactly:
   yellow-only accent, verdict colours isolated, 0 radius,
   10px mono floor, tone-shift section rhythm.
   ============================================================ */

:root {
  /* Shared vertical-rhythm scale for every landing-v2 inner page (archive,
     report, lab note, commission). Each page type picks the step that
     matches its content density instead of inventing its own clamp()
     curve, so the rhythm reads as one system's tuning even where the
     rendered value differs by page. The homepage has its own --lv2-pad-y
     (scoped to .lv2) since it's a denser, single-page composition. */
  --rig-space-tight: clamp(40px, 5vw, 64px);   /* report pages: many short sequential sections */
  --rig-space-base:  clamp(48px, 6vw, 80px);   /* archive header, lab-note masthead */
  --rig-space-open:  clamp(56px, 6.6vw, 96px); /* commission: fewer, heavier sections */
}

/* Body copy: let the browser even out the rag and never strand a single word
   on a paragraph's last line. Zero specificity, so any component can override. */
:where(p, li, dd, blockquote, q, .hm-phase .win) { text-wrap: pretty; } /* .win: the phase subtitles are divs, not <p> */

.lv2 {
  background: var(--ctai-black);
  color: var(--ctai-white);
  font-family: var(--font-body);
  overflow-x: hidden;
  overflow-x: clip; /* clip, not hidden: hidden makes .lv2 a scroll container and breaks the sticky header */
  --lv2-pad-y: clamp(64px, 8vw, 112px);
  --lv2-pad-x: clamp(20px, 5vw, 72px);
  --lv2-max: 1440px;
}

.lv2 * { box-sizing: border-box; }
.lv2 a { color: var(--ctai-white); text-decoration: none; }
/* Every actual <button> on this page (.lv2-phase-row, .lv2-email-submit) declares its
   own font-family/color already — a shared ".lv2 button { font: inherit }" reset used
   to sit here, but at equal specificity it silently won over those rules and buttons
   rendered in the inherited body font/colour instead of their own. */

.lv2-inner { max-width: 1140px; margin: 0 auto; }

.lv2-mark { flex: none; display: block; }

/* CTAI logo — the mark (yellow block under a sighting ring + four ticks) + the wordmark (macro: lv2-macros.njk
   logo()). Sized in em from --logo-size. The block is the square that marks "in the rig" on the page. */
.ctai-logo { flex: none; display: inline-flex; align-items: center; gap: .42em; font-family: var(--font-display); font-weight: 800; font-size: var(--logo-size, 22px); line-height: 1; letter-spacing: -.01em; text-transform: uppercase; color: var(--ctai-white); }
.ctai-logo .mk { flex: none; display: block; width: 1.3em; height: 1.3em; }
/* name: CTAI on phones, CRASH TEST AI from 641px ("responsive"), or pinned with --full / --short */
.ctai-logo .long { display: none; }
.ctai-logo--full .short { display: none; }
.ctai-logo--full .long { display: inline; }
@media (min-width: 641px) {
  .ctai-logo--responsive .short { display: none; }
  .ctai-logo--responsive .long { display: inline; }
}

/* ============================================================
   SECTION HEADER — one component for every landing section
   (Method, Verdict Wall, In the Rig, Lab Notes, Commission).
   Eyebrow + grid (title left / dek-or-controls right).
   ============================================================ */

.lv2-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;   /* the aside is a link or one sub-line — the heading takes the rest */
  align-items: end;
  gap: clamp(28px, 5vw, 72px);
  margin-bottom: clamp(30px, 4vw, 48px);
}

.lv2-head-eyebrow {
  display: flex;
  align-items: center;
  gap: 11px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ctai-ink-82);
  margin-bottom: 18px;
}
.lv2-head-crumb { color: var(--ctai-ink-60); margin-left: 6px; } /* the colour change separates it — no second // */

.lv2-head-aside { justify-self: end; padding-bottom: 4px; }
.lv2-head-dek { font-size: 15.5px; color: var(--ctai-ink-74); line-height: 1.6; max-width: 54ch; white-space: nowrap; margin: 0 0 16px; }
.lv2-head-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding-top: 14px;
  border-top: 1px solid var(--ctai-hairline);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ctai-ink-64);
  transition: color .25s ease;
}
.lv2-head-link span { transition: transform .25s ease; }
.lv2-head-link:hover, .lv2-head-link:focus-visible { color: var(--ctai-yellow); }
.lv2-head-link:hover span, .lv2-head-link:focus-visible span { transform: translateX(3px); }

@media (max-width: 760px) {
  .lv2-head { grid-template-columns: 1fr; gap: 20px; }
  .lv2-head-dek { white-space: normal; max-width: none; }
}

.lv2 h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(28px, 3.8vw, 54px);
  line-height: 1.06;
  letter-spacing: -.02em;
  margin: 0;
}

.lv2-head h2 { font-size: clamp(28px, 3.6vw, 44px); font-weight: 700; letter-spacing: -.03em; line-height: 1.0; }

.lv2-section { position: relative; overflow: hidden; }
.lv2-section-inner { position: relative; padding: var(--lv2-pad-y) var(--lv2-pad-x); }

@media (prefers-reduced-motion: reduce) {
  .lv2 *, .lv2 *::before, .lv2 *::after { animation: none !important; transition: none !important; }
}

@keyframes lv2Rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.lv2-rise { animation: lv2Rise .8s cubic-bezier(.2,.7,.2,1) both; }

/* ============================================================
   HEADER
   ============================================================ */

.lv2-header {
  flex: none;
  display: grid;
  grid-template-columns: minmax(max-content, 1fr) auto minmax(max-content, 1fr);
  align-items: center;
  gap: 16px clamp(14px, 2vw, 24px);
  padding: 18px var(--lv2-pad-x);
  border-bottom: 1px solid rgba(245, 245, 240, .10);
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--ctai-black);
}
/* Portable: the same header renders on every v2 page (site-header.njk),
   so it carries its own gutter, font and link colours instead of relying on .lv2. */
.lv2-header { --lv2-pad-x: clamp(20px, 5vw, 72px); font-family: var(--font-body); color: var(--ctai-white); }
:where(.lv2-header) a { color: var(--ctai-white); text-decoration: none; }
/* Header CTA is a ghost: the page's own yellow button (hero, CTA strips) stays the one yellow action in view.
   Inset shadow instead of a border keeps the button's size identical to the yellow one. */
.lv2 .lv2-header a.lv2-btn-yellow, .lv2-header a.lv2-btn-yellow { background: transparent; color: var(--ctai-white); box-shadow: inset 0 0 0 1px rgba(245, 245, 240, .28); transition: box-shadow .25s ease, color .25s ease; }
.lv2 .lv2-header a.lv2-btn-yellow:hover, .lv2 .lv2-header a.lv2-btn-yellow:focus-visible, .lv2-header a.lv2-btn-yellow:hover, .lv2-header a.lv2-btn-yellow:focus-visible { background: transparent; color: var(--ctai-yellow); box-shadow: inset 0 0 0 1px var(--ctai-yellow); }
/* In-page anchors (#method, #verdicts, …) land below the sticky header. */
.lv2 [id] { scroll-margin-top: var(--lv2-header-h, 0px); }

.lv2-header-brand { display: flex; align-items: center; gap: 14px; white-space: nowrap; }
.lv2-header-name { font-family: var(--font-display); font-weight: 600; font-size: 15px; letter-spacing: .04em; }
.lv2-header-sub { font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; color: var(--ctai-ink-60); }

.lv2-nav {
  justify-self: center;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 40px);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
}
.lv2-nav a { color: var(--ctai-ink-64); white-space: nowrap; transition: color .25s ease; }
.lv2-nav a:hover, .lv2-nav a:focus-visible { color: var(--ctai-yellow); }
/* Header must fit every width without clipping the CTA:
   ≤1100 drop the "INDEPENDENT LAB" tag; <900 (five items stop fitting one row)
   the desktop nav + CTA hide and the burger menu takes over. */
@media (max-width: 1279px) { .lv2-header-sub { display: none; } } /* tagline only where the full name + nav still breathe */

/* Burger — three 2px ink lines, hard edges, crosses to an X when open. */
/* 44px tap target, but negative margins keep it out of the header's height (64px on phones)
   and put the lines on the right gutter. */
.lv2-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; box-sizing: border-box; width: 44px; height: 44px; min-height: 0; padding: 13px 11px; margin: -6px -11px -6px 0; background: none; border: 0; border-radius: 0; cursor: pointer; justify-self: end; }
.lv2-burger span { display: block; height: 2px; width: 100%; background: var(--ctai-white); transition: transform .2s, opacity .2s; }
.lv2-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.lv2-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.lv2-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.lv2-burger:focus-visible { outline: 1px solid var(--ctai-yellow); outline-offset: 2px; }

/* Mobile menu — full screen under the sticky header, lab grid, five stacked links + pinned CTA. */
.lv2-mnav { position: fixed; left: 0; right: 0; top: 64px; bottom: 0; z-index: 49; border-top: 1px solid var(--ctai-hairline); padding: 12px 24px calc(44px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; overflow-y: auto; font-family: var(--font-body); }
.lv2-mnav[hidden] { display: none; }
.lv2-mnav a { display: flex; align-items: baseline; gap: 16px; padding: 20px 2px; border-bottom: 1px solid var(--ctai-hairline-soft); font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 7vw, 32px); letter-spacing: -.02em; color: var(--ctai-white); text-decoration: none; transition: color .15s; }
.lv2-mnav a:hover, .lv2-mnav a:focus-visible { color: var(--ctai-yellow); }
.lv2-mnav a .i { font-family: var(--font-mono); font-size: 12px; font-weight: 400; letter-spacing: .1em; color: var(--ctai-ink-64); }
.lv2-mnav a[aria-current="page"] { color: var(--ctai-yellow); }
.lv2-mnav a.lv2-mnav-cta { margin-top: auto; border-bottom: 0; background: var(--ctai-yellow); color: var(--ctai-black); font-family: var(--font-mono); font-size: 13px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; justify-content: center; padding: 20px; }
.lv2-mnav a.lv2-mnav-cta:hover, .lv2-mnav a.lv2-mnav-cta:focus-visible { background: var(--ctai-white); color: var(--ctai-black); }

@media (max-width: 939px) { /* the full-name logo + nav + button need ~920px; below that, the menu button */
  .lv2-header { grid-template-columns: minmax(0,1fr) auto; }
  .lv2-nav, .lv2-header > .lv2-btn-yellow { display: none; }
  .lv2-burger { display: flex; }
}
@media (min-width: 940px) { .lv2-mnav { display: none !important; } }
.lv2-nav a[aria-current="page"] { color: var(--ctai-white); border-bottom: 1px solid var(--ctai-yellow); padding-bottom: 3px; margin-bottom: -4px; }

.lv2-btn-yellow {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--ctai-yellow);
  padding: 11px 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  white-space: nowrap;
  border: 0;
  cursor: pointer;
  transition: background .25s ease;
}
/* .lv2 a { color: ... } outranks a bare .lv2-btn-yellow rule at equal specificity —
   scope through .lv2 here too so black-on-yellow always wins, resting and hover. */
.lv2 a.lv2-btn-yellow, .lv2 .lv2-btn-yellow { color: var(--ctai-black); }
.lv2-btn-yellow:hover, .lv2-btn-yellow:focus-visible,
.lv2 a.lv2-btn-yellow:hover, .lv2 a.lv2-btn-yellow:focus-visible { background: var(--ctai-white); color: var(--ctai-black); }

.lv2-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(245, 245, 240, .28);
  color: var(--ctai-white);
  padding: clamp(11px, 1.5svh, 15px) clamp(15px, 1.5vw, 21px);
  font-family: var(--font-mono);
  font-size: clamp(10px, .9vw, 12px);
  letter-spacing: .14em;
  white-space: nowrap;
  transition: border-color .25s ease, color .25s ease;
}
.lv2-btn-outline:hover, .lv2-btn-outline:focus-visible { border-color: var(--ctai-yellow); color: var(--ctai-yellow); }

/* ============================================================
   HERO — do not alter proportions without re-checking the fold
   ============================================================ */

/* First screen = sticky header + hero-lock, so the hero-lock is one viewport minus the header. */
.lv2-hero-lock { height: calc(100dvh - var(--lv2-header-h, 0px)); display: flex; flex-direction: column; overflow: hidden; }

.lv2-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.lv2-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.90) 100%);
  z-index: 1; /* above .lv2-hero-grid, below .lv2-hero-body and .lv2-hero-strip */
}

.lv2-hero-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .34;
  background-image:
    repeating-linear-gradient(90deg, rgba(245,245,240,.085) 0 1px, transparent 1px 20px),
    repeating-linear-gradient(90deg, rgba(245,245,240,.12) 0 1px, transparent 1px 160px),
    repeating-linear-gradient(180deg, rgba(245,245,240,.04) 0 1px, transparent 1px 160px);
}

.lv2-hero-body {
  position: relative;
  z-index: 2;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0 var(--lv2-pad-x);
}

.lv2-hero-grid-cols {
  max-width: 1140px;
  margin-inline: auto;
  column-gap: clamp(48px, 6vw, 96px);
  width: 100%;
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
  align-items: stretch;
  row-gap: clamp(20px, 3vw, 48px);
}

.lv2-hero-photo-col {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(16px, 2svh, 44px) 20px clamp(14px, 2svh, 32px);
}
.lv2-hero-photo-frame { position: relative; flex: 0 1 auto; height: min(580px, 62svh); min-height: 0; }
.lv2-hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: 50% 100%;
  filter: grayscale(1) contrast(1.06) brightness(.94)
    drop-shadow(1px 0 0 rgba(232,232,226,.55))
    drop-shadow(-1px 0 0 rgba(232,232,226,.55))
    drop-shadow(0 1px 0 rgba(232,232,226,.55))
    drop-shadow(0 -1px 0 rgba(232,232,226,.55));
}

/* Frame — additive instrumentation dressing on the hero photo.
   Photo itself and its outline are untouched. */
.lv2-hero-frameline { position: absolute; inset: -18px; border: 1px solid rgba(245,245,240,.38); pointer-events: none; }
.lv2-hero-frametab { position: absolute; top: -1px; left: -1px; background: var(--ctai-black); border: 1px solid rgba(245,245,240,.38); border-top: 0; border-left: 0; padding: 3px 9px; font-family: var(--font-mono); font-size: 9px; letter-spacing: .16em; color: var(--ctai-ink-64); }
.lv2-hero-copy-col {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(20px, 3.4svh, 48px);
  padding: clamp(16px, 2svh, 44px) 0 clamp(14px, 2svh, 32px);
}

.lv2-eyebrow { display: flex; align-items: center; gap: 14px; }
.lv2-eyebrow span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em; color: var(--ctai-ink-64); }

.lv2-h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: min(clamp(30px, 4.4vw, 66px), 7.4svh);
  line-height: 1.03;
  letter-spacing: -.025em;
  margin: 0;
}

.lv2-hero-lede {
  font-weight: 400;
  font-size: min(clamp(14px, 1.15vw, 18px), 2.9svh);
  line-height: 1.6;
  color: var(--ctai-ink-74);
  max-width: 46ch;
  margin: 0;
}

.lv2-hero-support { font-family: var(--font-mono); font-size: min(clamp(10px, .8vw, 12px), 2svh); letter-spacing: .06em; line-height: 1.6; color: var(--ctai-ink-60); max-width: 52ch; margin: 0; }
.lv2-hero-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; padding-top: clamp(4px, 1svh, 14px); }
.lv2-hero-ctas .lv2-btn-yellow { padding: clamp(12px, 1.6svh, 16px) clamp(16px, 1.6vw, 22px); font-size: clamp(10px, .9vw, 12px); }

.lv2-hero-strip {
  position: relative;
  z-index: 2;
  flex: none;
  background: transparent;
  border-top: 0;
  border-bottom: 1px solid rgba(245,245,240,.14);
}
.lv2-hero-strip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 9px;
  pointer-events: none;
  opacity: .45;
  background-image:
    repeating-linear-gradient(90deg, rgba(245,245,240,.40) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(90deg, rgba(245,245,240,.42) 0 1px, transparent 1px 70px);
  background-size: 100% 4px, 100% 8px;
  background-repeat: repeat-x;
  background-position: left top;
}
.lv2-hero-strip-inner { max-width: var(--lv2-max); margin: 0 auto; padding: 0 var(--lv2-pad-x); }
.lv2-hero-strip-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  column-gap: clamp(10px, 1.2vw, 20px);
  max-width: 1140px;
  margin-inline: auto;
  padding: 30px 0 26px;
}
@media (max-width: 1220px) {
  .lv2-hero-strip-row { padding-left: clamp(22px, 3.4vw, 44px); padding-right: clamp(22px, 3.4vw, 44px); }
}

.lv2-hero-badges {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px clamp(9px, 1.3vw, 20px);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: clamp(.06em, .12vw, .15em);
  color: var(--ctai-ink-64);
}
.lv2-hero-badges span { display: inline-flex; align-items: center; gap: 14px; }
/* plain middot separators — the bracket mark is reserved for header, footer and report letterhead */
.lv2-hero-badges span:not(:last-child)::after { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--ctai-ink-40); flex: none; } /* list of equal items → dot, not // ; trailing, so a wrapped row never starts with one */

/* ---------- label separator: // ----------
   Joins a label to its context ("02 // METHOD", "LAB NOTE // EDITORIAL LAYER"). At most ONE per line,
   never directly after the logo. Lists of equal items (trust bar, footer strip, platforms, bylines,
   stat meta) use "·". One rule: the // is always yellow, a label's number is yellow (.label-n), the words
   are never yellow. Markup: <span class="sep" aria-hidden="true">//</span>, or the `sep` filter for data strings
   (it wraps a leading number too). */
.sep, .label-n { color: var(--ctai-yellow); }

/* Two-tone headline: white statement, grey payoff. Homepage hero only — deliberately not rolled out (it would
   mean writing second beats just to use it). Markup: <span class="tt-dim">second beat</span>. */
.tt-dim { color: var(--ctai-ink-40); }

/* Homepage H1 full stop: a round yellow dot (matches the site's round dots/separators). Signal only —
   the words stay white. Replaces the "." visually; aria-hidden so screen readers don't announce it. */
.lv2-h1-stop { display: inline-block; width: .19em; height: .19em; margin-left: .05em; border-radius: 50%; background: var(--ctai-yellow); vertical-align: baseline; }
.lv2-hero .sep { color: var(--ctai-ink-40); }  /* the hero stays greyscale (photo tab + eyebrow) — its only yellow is the button */

.lv2-hero-readout {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px clamp(8px, 1vw, 14px);
  padding-right: clamp(6px, 1.2vw, 14px);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .06em;
}
.lv2-hero-readout span { color: var(--ctai-ink-60); }
.lv2-hero-readout b { color: var(--ctai-ink-82); font-weight: 400; }

.lv2-hero-readout-live { display: inline-flex; align-items: center; gap: 8px; }
/* Phones: Space Mono is wide — stack badges over readout so each readout pair keeps one line */
@media (max-width: 560px) {
  .lv2-hero-strip-row { grid-template-columns: 1fr; row-gap: 16px; }
  .lv2-hero-readout { justify-content: flex-start; padding-right: 0; }
}
.lv2-live-dot { position: relative; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--ctai-green); flex: none; }
.lv2-live-dot::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid var(--ctai-green);
  animation: lv2LivePing 1.8s cubic-bezier(.4,0,.6,1) infinite;
}
@keyframes lv2LivePing {
  0% { transform: scale(.5); opacity: .8; }
  70%, 100% { transform: scale(1.9); opacity: 0; }
}

/* ============================================================
   METHOD
   ============================================================ */

.lv2-method { background: var(--ctai-black); border-top: 1px solid var(--ctai-hairline); } /* follows the Verdict Wall */

.lv2-method-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(24px, 3vw, 40px); align-items: start; }

.lv2-phase-list { min-width: 0; border-top: 1px solid rgba(245,245,240,.14); }

.lv2-phase-row {
  appearance: none;
  cursor: pointer;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 24px);
  border: 0;
  border-bottom: 1px solid rgba(245,245,240,.14);
  border-left: 2px solid transparent;
  background: transparent;
  padding: clamp(20px, 2.2vw, 28px) clamp(14px, 1.6vw, 20px);
  transition: background .35s ease, border-color .35s ease;
  color: var(--ctai-white);
}
.lv2-phase-row.is-active { border-left-color: var(--ctai-yellow); background: #151515; }

.lv2-phase-num {
  font-family: var(--font-stencil);
  font-size: clamp(24px, 2vw, 32px);
  line-height: 1;
  flex: none;
  color: rgba(245,245,240,.42);
  transition: color .35s ease;
}
.lv2-phase-row.is-active .lv2-phase-num { color: var(--ctai-yellow); }

.lv2-phase-text { min-width: 0; display: flex; flex-direction: column; gap: 8px; text-align: left; }
.lv2-phase-name { font-family: var(--font-display); font-weight: 500; font-size: clamp(19px, 1.6vw, 24px); letter-spacing: -.015em; line-height: 1.15; color: var(--ctai-ink-82); }
.lv2-phase-row.is-active .lv2-phase-name { color: var(--ctai-white); }
.lv2-phase-code { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: var(--ctai-ink-60); }

.lv2-phase-arrow { margin-left: auto; flex: none; font-size: 14px; color: rgba(245,245,240,.28); transition: color .35s ease; }
.lv2-phase-row.is-active .lv2-phase-arrow { color: var(--ctai-yellow); }

.lv2-phase-hint { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: var(--ctai-ink-60); padding-top: 18px; }
/* the instruction matches the device: hover on mouse/trackpad, tap on touch screens */
.lv2-phase-hint .on-touch { display: none; }
@media (hover: none) { .lv2-phase-hint .on-hover { display: none; } .lv2-phase-hint .on-touch { display: inline; } }

.lv2-phase-detail {
  min-width: 0;
  background: var(--ctai-panel-2);
  outline: 1px solid rgba(245,245,240,.14);
  padding: clamp(24px, 2.4vw, 32px);
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 2.4vw, 30px);
}
.lv2-phase-detail[hidden] { display: none; }

.lv2-phase-detail-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .16em;
  color: var(--ctai-ink-60);
  border-bottom: 1px solid rgba(245,245,240,.14);
  padding-bottom: 14px;
}
.lv2-phase-detail-head span:first-child { color: var(--ctai-white); }

.lv2-phase-detail-title { font-family: var(--font-display); font-weight: 600; font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.018em; line-height: 1.12; margin: 0; }
.lv2-phase-detail-body { font-weight: 400; font-size: 15px; line-height: 1.68; color: var(--ctai-ink-76, rgba(245,245,240,.76)); margin: 16px 0 0; max-width: 48ch; }

.lv2-phase-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; border-top: 1px solid rgba(245,245,240,.14); border-bottom: 1px solid rgba(245,245,240,.14); padding: 18px 0; }
.lv2-phase-metric { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.lv2-phase-metric span:first-child { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-64); }
.lv2-phase-metric span:last-child { font-family: var(--font-mono); font-size: 13px; letter-spacing: .04em; color: var(--ctai-white); }

.lv2-phase-note { padding-left: clamp(14px, 1.6vw, 20px); border-left: 1px solid var(--ctai-yellow); }
.lv2-phase-note-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: var(--ctai-yellow); margin-bottom: 12px; }
.lv2-phase-note p { font-weight: 400; font-size: 15px; line-height: 1.7; color: var(--ctai-ink-82); margin: 0; }

/* ============================================================
   VERDICT WALL
   ============================================================ */

.lv2-verdicts { background: var(--ctai-panel-1); --panel-hover: #141311; } /* first after the hero — the hero strip already draws the line */

.lv2-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(16px, 1.6vw, 20px); }

.lv2-card {
  position: relative;
  min-width: 0;
  border: 1px solid rgba(245,245,240,.14);
  background: var(--ctai-black);
  display: flex;
  flex-direction: column;
  transition: border-color .28s ease, background-color .28s ease;
}
.lv2-card:hover, .lv2-card:focus-within {
  border-color: rgba(245,245,240,.22);
  background: var(--panel-hover);
}
.lv2-card[hidden] { display: none; }

.lv2-card-bar { height: 3px; width: 100%; background: var(--bar-color); opacity: .82; transition: opacity .3s ease; }
.lv2-card:hover .lv2-card-bar, .lv2-card:focus-within .lv2-card-bar { opacity: 1; }

.lv2-card-head { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; border-bottom: 1px solid rgba(245,245,240,.12); }
.lv2-card-head-main { min-width: 0; padding: clamp(20px,2vw,26px) clamp(22px,2.2vw,30px); display: flex; flex-direction: column; gap: 10px; }
.lv2-card-ref { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-60); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv2-card-tool { font-family: var(--font-display); font-weight: 600; font-size: clamp(22px,1.8vw,28px); letter-spacing: -.015em; line-height: 1.08; margin: 0; }
.lv2-card-subject { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: rgba(245,245,240,.5); }

.lv2-score-panel {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: clamp(18px,1.8vw,24px) clamp(18px,1.8vw,26px);
  border-left: 1px solid rgba(245,245,240,.12);
  background: var(--ctai-score-panel);
  transition: background .3s ease;
}
.lv2-card:hover .lv2-score-panel, .lv2-card:focus-within .lv2-score-panel { background: var(--ctai-score-panel-hover); }
.lv2-score-num { font-family: var(--font-stencil); font-size: clamp(46px,3.8vw,62px); line-height: .8; letter-spacing: .01em; color: rgba(245,245,240,.55); transition: color .3s ease; }
.lv2-card:hover .lv2-score-num, .lv2-card:focus-within .lv2-score-num { color: var(--bar-color); }
.lv2-score-denom { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: var(--ctai-ink-60); }

/* Score bar — real score/100, not a fabricated per-phase grade */
.lv2-score-bar-track { height: 4px; background: rgba(245,245,240,.12); }
.lv2-score-bar-fill { height: 100%; background: rgba(245,245,240,.42); transition: background .3s ease; }
.lv2-card:hover .lv2-score-bar-fill, .lv2-card:focus-within .lv2-score-bar-fill { background: var(--bar-color); }

.lv2-card-body { padding: clamp(22px,2.2vw,30px); display: flex; flex-direction: column; flex: 1; min-width: 0; }

.lv2-stamp-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.lv2-stamp {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: clamp(8px,.9vw,11px) clamp(13px,1.4vw,16px);
  border: 1px solid color-mix(in srgb, var(--bar-color) 55%, black);
  color: color-mix(in srgb, var(--bar-color) 55%, black);
  background: transparent;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
  transform: rotate(-1.5deg);
  transform-origin: left center;
}
.lv2-card:hover .lv2-stamp, .lv2-card:focus-within .lv2-stamp,
.rig-ctfeat:hover .lv2-stamp, .rig-ctcard:hover .lv2-stamp { background: var(--bar-color); border-color: var(--bar-color); color: var(--ctai-black); }
.lv2-stamp-symbol { font-size: clamp(12px,1vw,14px); line-height: 1; }
.lv2-stamp-word { font-family: var(--font-display); font-weight: 600; font-size: clamp(13px,1.1vw,16px); letter-spacing: .16em; line-height: 1; }

.lv2-verdict-note { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-60); transition: color .3s ease; }
.lv2-card:hover .lv2-verdict-note, .lv2-card:focus-within .lv2-verdict-note { color: var(--bar-color); }

.lv2-phase-readout { display: flex; flex-direction: column; gap: 10px; margin-top: clamp(22px,2.4vw,28px); }
.lv2-phase-readout-row { display: grid; grid-template-columns: 62px minmax(0,1fr) 18px; align-items: center; gap: 12px; min-width: 0; }
.lv2-phase-readout-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: var(--ctai-ink-64); }
.lv2-phase-readout-track { height: 5px; background: repeating-linear-gradient(90deg, rgba(245,245,240,.14) 0 1px, transparent 1px 7px); position: relative; display: block; }
.lv2-phase-readout-fill { position: absolute; left: 0; top: 2px; height: 1px; transition: background .3s ease; background: rgba(245,245,240,.42); }
.lv2-card:hover .lv2-phase-readout-fill, .lv2-card:focus-within .lv2-phase-readout-fill { background: var(--bar-color); }
.lv2-phase-readout-grade { font-family: var(--font-mono); font-size: 13px; line-height: 1; text-align: right; color: var(--ctai-ink-64); transition: color .3s ease; }
.lv2-card:hover .lv2-phase-readout-grade, .lv2-card:focus-within .lv2-phase-readout-grade { color: var(--bar-color); }

.lv2-card-finding { font-weight: 400; font-size: 14px; line-height: 1.62; color: var(--ctai-ink-74); margin: clamp(20px,2.2vw,26px) 0 0; }

.lv2-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
  margin-top: auto;
  padding-top: clamp(22px,2.4vw,28px);
  border-top: 1px solid rgba(245,245,240,.12);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
}
.lv2-card-footer span { color: var(--ctai-ink-60); }
.lv2-card-footer a { color: rgba(245,245,240,.7); transition: color .25s ease; }
.lv2-card-footer a:hover, .lv2-card-footer a:focus-visible { color: var(--ctai-yellow); }

.lv2-wall-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 24px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: rgba(245,245,240,.54); }

/* ============================================================
   IN THE RIG — Run Sheet
   One framed document, tonal ladder deep -> lifted -> deep.
   ============================================================ */

/* "In the rig" is the homepage's data-layer section, so it carries the same 34px
   lab grid as the data pages (.rig-grid-bg values), over its own panel tone. */
.lv2-rig {
  background-color: var(--ctai-panel-1);
  background-image:
    linear-gradient(rgba(255, 255, 255, .020) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .020) 1px, transparent 1px);
  background-size: 34px 34px;
  border-top: 1px solid var(--ctai-hairline);
}

.lv2-runsheet { border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); }

.lv2-runsheet-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 15px clamp(20px,2.6vw,32px); font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; background: var(--ctai-black); border-bottom: 1px solid var(--ctai-hairline); }
.lv2-runsheet-head-l { color: var(--ctai-ink-64); }
.lv2-runsheet-head-r { color: var(--ctai-ink-40); }

/* Vertical split — "now" (left) and the upcoming-runs ledger (right)
   instead of stacked top/bottom. */
.lv2-runsheet-split { display: grid; grid-template-columns: 1.15fr .85fr; }

@media (max-width: 760px) {
  .lv2-runsheet-split { grid-template-columns: 1fr; }
}

/* RUN 01 — specimen in the rig (brightest, lifted zone) */
.lv2-runsheet-now { padding: clamp(26px,3.2vw,40px) clamp(20px,2.6vw,32px); background: var(--ctai-lift); border-bottom: 1px solid var(--ctai-hairline); border-right: 1px solid var(--ctai-hairline); }

@media (max-width: 760px) {
  .lv2-runsheet-now { border-right: 0; }
}
.lv2-runsheet-now-tag { display: flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-82); margin-bottom: 18px; }
.lv2-runsheet-now-dot { width: 8px; height: 8px; background: var(--ctai-yellow); flex-shrink: 0; }
.lv2-runsheet-now-no { color: var(--ctai-ink-60); }
.lv2-runsheet-now-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 30px; }
.lv2-runsheet-now-subject { font-size: clamp(30px,4vw,48px); font-weight: 700; letter-spacing: -.03em; line-height: .96; }
.lv2-runsheet-now-class { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-64); margin-top: 12px; }
.lv2-runsheet-now-state { text-align: right; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ctai-ink-60); line-height: 1.7; }
.lv2-runsheet-now-state b { color: var(--ctai-white); font-weight: 400; }

/* the impact rail — the one ruler-tick moment */
.lv2-runsheet-rail { position: relative; padding-top: 34px; margin-top: 6px; }
.lv2-runsheet-rail-line { position: absolute; top: 0; left: 0; right: 0; opacity: .6; }
.lv2-runsheet-sled { position: absolute; top: -6px; left: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.lv2-runsheet-sled-block { width: 20px; height: 20px; background: var(--ctai-yellow); }
.lv2-runsheet-sled-lab { font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-40); white-space: nowrap; }
.lv2-runsheet-stations { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); border-top: 0; }
.lv2-runsheet-stn { border: 0; padding: 14px 14px 15px; position: relative; background: var(--ctai-panel-1); }
.lv2-runsheet-stn.is-next { background: var(--ctai-lift2); }
.lv2-runsheet-stn::before { content: ""; position: absolute; top: -34px; left: 0; width: 1px; height: 18px; background: var(--ctai-ink-40); }
.lv2-runsheet-stn-num { font-family: var(--font-stencil); font-size: 15px; color: var(--ctai-ink-28); margin-bottom: 7px; }
.lv2-runsheet-stn.is-next .lv2-runsheet-stn-num { color: var(--ctai-white); }
.lv2-runsheet-stn-name { font-size: 13px; font-weight: 600; margin-bottom: 5px; color: var(--ctai-ink-64); }
.lv2-runsheet-stn.is-next .lv2-runsheet-stn-name { color: var(--ctai-white); }
.lv2-runsheet-stn-status { font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-40); }
.lv2-runsheet-stn.is-next .lv2-runsheet-stn-status { color: var(--ctai-ink-74); }
.lv2-runsheet-rail-cap { font-family: var(--font-mono); font-size: 11px; letter-spacing: .02em; color: var(--ctai-ink-60); line-height: 1.5; margin-top: 24px; }

/* upcoming runs ledger (recessed, dimmer) */
.lv2-runsheet-ledger { padding: clamp(24px,3vw,36px) clamp(20px,2.6vw,32px) clamp(18px,2.2vw,24px); background: var(--ctai-panel-deep); border-bottom: 1px solid var(--ctai-hairline); }
.lv2-runsheet-ledger-title { font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 18px; }
.lv2-runsheet-row { display: grid; grid-template-columns: 36px minmax(0,1fr) 64px 96px; gap: clamp(12px, 1.6vw, 20px); align-items: center; padding: 14px clamp(10px,1.4vw,16px); margin: 0 clamp(-10px,-1.4vw,-16px); border-top: 1px solid var(--ctai-hairline); transition: background .16s ease; }
.lv2-runsheet-row.is-item { cursor: pointer; }
.lv2-runsheet-row.is-item:hover { background: var(--ctai-lift); }
.lv2-runsheet-row.is-item:hover .lv2-runsheet-row-run { color: var(--ctai-yellow); }
.lv2-runsheet-row.is-item:hover .lv2-runsheet-row-subject { color: var(--ctai-white); }
.lv2-runsheet-row.is-head { border-top: 0; padding-top: 0; padding-bottom: 14px; font-family: var(--font-mono); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-40); }
.lv2-runsheet-row-run { font-family: var(--font-stencil); font-size: 22px; color: var(--ctai-ink-28); line-height: 1; transition: color .16s ease; }
.lv2-runsheet-row-subject { font-size: 15px; font-weight: 600; color: var(--ctai-ink-82); transition: color .16s ease; }
.lv2-runsheet-row-class { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); }
.lv2-runsheet-row-status { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); text-align: right; }
.lv2-runsheet-row-status.is-requeued { color: var(--ctai-ink-74); }

.lv2-runsheet-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px clamp(20px,2.6vw,32px); font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); background: var(--ctai-black); border-top: 1px solid var(--ctai-hairline); }
.lv2-runsheet-foot a { color: var(--ctai-ink-64); transition: color .25s ease; }
.lv2-runsheet-foot a:hover, .lv2-runsheet-foot a:focus-visible { color: var(--ctai-yellow); }

@media (max-width: 760px) {
  .lv2-runsheet-stations { grid-template-columns: repeat(2,1fr); gap: 20px 0; }
  .lv2-runsheet-row { grid-template-columns: 44px 1fr auto; }
  .lv2-runsheet-row-class { display: none; }
  .lv2-runsheet-row.is-head span:nth-child(3) { display: none; }
}

/* ============================================================
   NOTES FROM THE OPERATOR — landing-page teaser
   ============================================================ */

.lv2-notes { background: var(--ctai-black); border-top: 1px solid var(--ctai-hairline); }

/* Small separator dot used by .lv2-notepanel-meta below. */
.lv2-noteslist-dot { width: 3px; height: 3px; background: var(--ctai-ink-40); border-radius: 50%; }

/* ============================================================
   LAB NOTES — landing-page teaser panels
   Condensed, full-width horizontal strips using the same panel
   language as the Verdict Wall cards (hairline border, panel bg,
   hover lift) — not the tall .lv2-noteslist-* rows above.
   ============================================================ */

.lv2-notepanel-list { display: flex; flex-direction: column; gap: 12px; }

.lv2-notepanel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(16px, 2vw, 24px);
  border: 1px solid var(--ctai-hairline);
  background: var(--ctai-panel-1);
  padding: clamp(16px, 1.8vw, 20px) clamp(20px, 2.2vw, 28px);
  transition: border-color .25s ease, background-color .25s ease;
}
.lv2-notepanel:hover, .lv2-notepanel:focus-within {
  border-color: rgba(245,245,240,.22);
  background: var(--ctai-lift);
}

.lv2-notepanel-av { width: 52px; height: 52px; flex: none; border: 1px solid var(--ctai-ink-40); background: var(--ctai-black); border-radius: 50%; overflow: hidden; transition: border-color .18s ease; }
.lv2-notepanel:hover .lv2-notepanel-av { border-color: var(--ctai-ink-64); }
.lv2-notepanel-av img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.15); filter: grayscale(1); }

.lv2-notepanel-body { min-width: 0; }
.lv2-notepanel-tag { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 8px; }
.lv2-notepanel-tag-no { color: var(--ctai-ink-40); }
.lv2-notepanel-title { font-size: 19px; font-weight: 700; letter-spacing: -.018em; line-height: 1.2; margin-bottom: 6px; }
.lv2-notepanel-dek { font-size: 14px; color: var(--ctai-ink-74); line-height: 1.5; max-width: 62ch; margin-bottom: 8px; }
.lv2-notepanel-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ctai-ink-60); }
.lv2-notepanel-meta b { color: var(--ctai-ink-82); font-weight: 400; }

.lv2-notepanel-read {
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  padding-left: clamp(20px, 2.2vw, 28px);
  border-left: 1px solid var(--ctai-hairline);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ctai-ink-40);
  white-space: nowrap;
  transition: color .18s ease;
}
.lv2-notepanel:hover .lv2-notepanel-read { color: var(--ctai-yellow); }

@media (max-width: 640px) {
  .lv2-notepanel { grid-template-columns: auto 1fr; }
  .lv2-notepanel-read { display: none; }
}

/* ============================================================
   COMMISSION — CTA tiles + CTA band
   ============================================================ */

.lv2-commission {
  background: var(--ctai-black);
  border-top: 1px solid var(--ctai-hairline);
  --panel: var(--ctai-panel-1);
  --line: var(--ctai-hairline);
  --yellow: var(--ctai-yellow);
}

/* 05 — what subscribers get. Built like The Rig's run sheet: one hairline frame, a black mono head/foot bar,
   the same 1.15/.85 split, tones mirrored: a recessed left zone (the free newsletter — the one action) and a lifted right zone (CTAI+).
   List numbers are faded Saira Stencil like the run-sheet ledger; status is plain mono, never a pill. */
.lv2-join { border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); }
.lv2-join-head, .lv2-join-foot { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 15px clamp(20px,2.6vw,32px); font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; background: var(--ctai-black); }
.lv2-join-head { border-bottom: 1px solid var(--ctai-hairline); }
.lv2-join-head-l { color: var(--ctai-ink-64); }
.lv2-join-head-r { color: var(--ctai-ink-40); }
.lv2-join-foot { border-top: 1px solid var(--ctai-hairline); color: var(--ctai-ink-40); letter-spacing: .1em; }
.lv2-join-split { display: grid; grid-template-columns: 1.15fr .85fr; }  /* same split as The Rig (04) so the dividers line up */
.lv2-join-free { padding: clamp(14px,1.6vw,20px) clamp(20px,2.6vw,32px) clamp(28px,3.2vw,40px); border-right: 1px solid var(--ctai-hairline); }  /* recessed (frame's panel-deep) — tones mirror 04 */
.lv2-join-list { list-style: none; margin: 0; padding: 0; }
.lv2-join-free { --join-n: 44px; --join-gap: clamp(12px,1.6vw,20px); }
.lv2-join-row { display: grid; grid-template-columns: var(--join-n) minmax(0,1fr); gap: var(--join-gap); align-items: baseline; padding: 20px 0; border-top: 1px solid var(--ctai-hairline); }
.lv2-join-row:first-child { border-top: 0; }
.lv2-join-n { font-family: var(--font-stencil); font-size: 22px; line-height: 1; color: var(--ctai-ink-28); }
.lv2-join-title { font-family: var(--font-display); font-weight: 600; font-size: 17px; letter-spacing: -.01em; line-height: 1.3; margin: 0; }
.lv2-join-body { font-size: 13.5px; line-height: 1.6; color: var(--ctai-ink-60); margin: 5px 0 0; max-width: 52ch; }
.lv2-join-cta { margin-top: clamp(10px,1.4vw,16px); margin-left: calc(var(--join-n) + var(--join-gap)); }  /* sits on the text column, not under the numbers */
.lv2-join-plus { display: flex; flex-direction: column; padding: clamp(26px,3.2vw,40px) clamp(20px,2.6vw,32px); background: var(--ctai-lift); }
.lv2-join-plus-tag { display: flex; justify-content: space-between; gap: 12px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-64); margin-bottom: 18px; }
.lv2-join-plus-state { color: var(--ctai-ink-40); }
.lv2-join-plus-title { font-family: var(--font-display); font-weight: 700; font-size: clamp(20px,2vw,24px); letter-spacing: -.015em; line-height: 1.15; color: var(--ctai-ink-82); margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--ctai-hairline); }
.lv2-join-plus-note { margin: auto 0 0; padding-top: 30px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-40); }
@media (max-width: 760px) {
  .lv2-join-split { grid-template-columns: 1fr; }
  .lv2-join-free { border-right: 0; border-bottom: 1px solid var(--ctai-hairline); }
  .lv2-join-free { --join-n: 36px; }
}
@media (max-width: 640px) {
  .lv2-join-head { flex-direction: column; gap: 6px; }
  .lv2 a.lv2-join-cta { display: flex; justify-content: center; width: 100%; box-sizing: border-box; margin-left: 0; }
}

/* One shared frame divided by internal hairlines — not four free-standing
   tiles with a gap between them. */
.lv2-tile-frame {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  border: 1px solid var(--ctai-hairline);
  padding: 9px;
  gap: 8px;
  background: var(--ctai-panel-deep);
  margin-bottom: 26px;
}

@media (max-width: 1119px) {
  .lv2-tile-frame { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 639px) {
  .lv2-tile-frame { grid-template-columns: 1fr; }
}

.lv2-tile {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(28px, 3.2vw, 40px);
  background: var(--ctai-lift);
  transition: background-color .28s ease;
}
.lv2-tile:hover, .lv2-tile:focus-within { background: var(--ctai-lift2); }

.lv2-tile-label {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: #FFD600;
}
.lv2-tile-title { font-family: var(--font-display); font-weight: 600; font-size: 17px; letter-spacing: -.01em; line-height: 1.3; margin: 16px 0 0; }
.lv2-tile-body { font-weight: 400; font-size: 13px; line-height: 1.6; color: rgba(245,245,240,.6); margin: 10px 0 0; }

.lv2-tile-ico { color: var(--ctai-ink-64); margin-bottom: 20px; transition: color .25s ease; }
.lv2-tile-ico svg { display: block; width: 24px; height: 24px; }
.lv2-tile:hover .lv2-tile-ico, .lv2-tile:focus-within .lv2-tile-ico { color: var(--ctai-ink-82); }

.lv2-cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; }

.lv2-tile-action { margin-top: auto; padding-top: clamp(34px, 3.6vw, 52px); display: flex; flex-direction: column; gap: 12px; }
.lv2-tile-action-link { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; color: var(--ctai-yellow); transition: color .25s ease; }
.lv2-tile-action-link:hover, .lv2-tile-action-link:focus-visible { color: var(--ctai-white); }
.lv2-tile-integrity { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-60); }

.lv2-tile-follow-links { display: flex; flex-wrap: wrap; gap: 10px 18px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; }
.lv2-tile-follow-links a { color: var(--ctai-yellow); transition: color .25s ease; }
.lv2-tile-follow-links a:hover, .lv2-tile-follow-links a:focus-visible { color: var(--ctai-white); }

.lv2-email-form { position: relative; z-index: 1; margin-top: auto; padding-top: clamp(34px, 3.6vw, 52px); display: flex; flex-direction: column; gap: 12px; }
.lv2-email-row {
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid rgba(245,245,240,.22);
  padding-bottom: 11px;
  transition: border-color .3s ease;
}
.lv2-email-row:focus-within { border-color: var(--ctai-yellow); }
.lv2-email-input {
  flex: 1 1 auto;
  min-width: 0;
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ctai-white);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .04em;
  padding: 2px 0;
}
.lv2-email-input::placeholder { color: rgba(245,245,240,.4); }
.lv2-email-submit {
  appearance: none;
  cursor: pointer;
  flex: none;
  background: none;
  border: 0;
  padding: 2px 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--ctai-yellow);
  transition: color .25s ease;
}
.lv2-email-submit:hover, .lv2-email-submit:focus-visible { color: var(--ctai-white); }
.lv2-email-submit.is-sent { color: var(--ctai-green); }

.lv2-cta-band {
  margin-top: clamp(32px, 4vw, 48px);
  background: var(--ctai-panel-1);
  border: 1px solid var(--ctai-hairline);
  padding: clamp(36px, 4vw, 52px) 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
}
.lv2-cta-band h2 { font-size: clamp(19px, 2.4vw, 24px); font-weight: 700; line-height: 1.15; text-align: left; }
/* Both band actions share one size; the yellow gets a transparent 1px border to match the outline's. */
.lv2-cta-band .lv2-btn-yellow, .lv2-cta-band .lv2-btn-outline { padding: 13px 20px; font-size: 11px; letter-spacing: .16em; gap: 10px; }
.lv2-cta-band .lv2-btn-yellow { border: 1px solid transparent; }

@media (max-width: 560px) {
  .lv2-cta-band { flex-direction: column; align-items: flex-start; }
  .lv2-cta-band h2 { max-width: none; }
}
/* Homepage closing band: heading stays on one line; actions wrap beneath when they can't sit beside it */
#newsletter.lv2-cta-band { flex-wrap: wrap; }
@media (min-width: 561px) { #newsletter.lv2-cta-band h2 { white-space: nowrap; } }


/* ============================================================
   MOBILE — the hero's 100dvh fold-lock and 3-col header are a
   desktop/laptop construct; below 640px they'd clip content, so
   the lock relaxes into a normal scrolling flow instead.
   ============================================================ */

@media (max-width: 640px) {
  .lv2-header { padding: 16px clamp(16px, 5vw, 24px); }
  .lv2-header-brand { min-width: 0; }
  .lv2-header-sub { display: none; }
  .lv2-header .lv2-btn-yellow { padding: 9px 12px; font-size: 10px; gap: 6px; }

  .lv2-hero-lock { height: auto; min-height: calc(100dvh - var(--lv2-header-h, 0px)); }
  .lv2-hero { overflow: visible; }
  .lv2-hero-body { flex: none; }
  .lv2-hero-grid-cols { display: flex; flex-direction: column; }
  .lv2-hero-photo-frame { height: min(380px, 44svh); }
}

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

.lv2-footer { background: #0A0A0A; border-top: 1px solid var(--ctai-hairline); }
/* The hero's grid (same lines, same .34 opacity) fades IN across the footer —
   the hero's fade mirrored: hero runs full → 10% top-to-bottom, footer 10% → full. */
.lv2-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .34;
  background-image:
    repeating-linear-gradient(90deg, rgba(245,245,240,.085) 0 1px, transparent 1px 20px),
    repeating-linear-gradient(90deg, rgba(245,245,240,.12) 0 1px, transparent 1px 160px),
    repeating-linear-gradient(180deg, rgba(245,245,240,.04) 0 1px, transparent 1px 160px);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.10) 0%, #000 70%);
  mask-image: linear-gradient(180deg, rgba(0,0,0,.10) 0%, #000 70%);
}
.lv2-footer .lv2-section-inner { padding: clamp(40px,5vw,64px) var(--lv2-pad-x) 0; }  /* tighter than a content section */

.lv2-footer-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.lv2-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px clamp(16px,2.5vw,28px); font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; }
.lv2-footer-links a { color: rgba(245,245,240,.64); transition: color .25s ease; }
.lv2-footer-links a:hover, .lv2-footer-links a:focus-visible { color: var(--ctai-yellow); }

.lv2-footer-rule { height: 9px; margin-top: clamp(24px,2.6vw,32px); border-top: 1px solid rgba(245,245,240,.14); background-image: repeating-linear-gradient(90deg, rgba(245,245,240,.22) 0 1px, transparent 1px 14px); background-size: 100% 5px; background-repeat: repeat-x; }

.lv2-footer-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: clamp(24px,3vw,40px); padding: clamp(28px,3.2vw,40px) 0; }
.lv2-footer-col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.lv2-footer-col-title { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; color: var(--ctai-ink-40); }
.lv2-footer-col a { font-size: 15px; font-weight: 400; color: rgba(245,245,240,.82); transition: color .25s ease; }
.lv2-footer-col a:hover, .lv2-footer-col a:focus-visible { color: var(--ctai-yellow); }

.lv2-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px clamp(16px,3vw,32px); padding: 16px 0 clamp(20px,2.4vw,28px); border-top: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-64); }  /* one colour for all footer copy */
@media (max-width: 1100px) { .lv2-footer-bottom { flex-direction: column; align-items: flex-start; } }

/* ============================================================
   RIG PAGE SYSTEM — standalone routes (archives, reports, notes)
   Same locked tokens as .lv2, own root wrapper per page family.
   ============================================================ */

.rig-archive-ct, .rig-archive-notes, .rig-report, .rig-note {
  background-color: var(--ctai-black);
  color: var(--ctai-white);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
  padding-bottom: 64px;
}
.rig-note { line-height: 1.6; padding-bottom: 56px; }
.rig-archive-ct *, .rig-archive-notes *, .rig-report *, .rig-note * { box-sizing: border-box; }
.rig-archive-ct a, .rig-archive-notes a, .rig-report a, .rig-note a, .rig-commission a { color: inherit; text-decoration: none; }

.rig-wrap { max-width: 1140px; margin: 0 auto; padding: 0 24px; } /* same gutter as .sh-wrap — one content edge sitewide */
.rig-read { max-width: 780px; margin: 0 auto; padding-left: clamp(20px,4vw,24px); padding-right: clamp(20px,4vw,24px); }

/* Indicative masthead nav — archive pages (03, 04) */
.rig-mast { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--ctai-hairline); }
.rig-mast-brand { display: flex; align-items: center; gap: 10px; flex: none; }
.rig-mast-brand-name { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-white); }
.rig-mast-brand-sub { display: block; font-family: var(--font-mono); font-size: 8.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); margin-top: 2px; }
.rig-mast-nav { display: flex; gap: 24px; min-width: 0; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); }
.rig-mast-nav a { flex: none; }
.rig-mast-nav a.is-on { color: var(--ctai-white); }
.rig-mast-nav a:hover { color: var(--ctai-yellow); }

/* Sticky brand header — report + field-note pages (05–09) */
.rig-header { background: var(--ctai-black); border-bottom: 1px solid var(--ctai-hairline); }
.rig-header--sticky { position: sticky; top: 0; z-index: 50; }
.rig-hbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; }
.rig-note .rig-hbar { padding: 14px 0; }
.rig-brand { display: flex; align-items: center; gap: 10px; }
.rig-brand-name { font-weight: 700; font-size: 14px; letter-spacing: .04em; }
.rig-brand-sub { font-family: var(--font-mono); font-size: 8.5px; letter-spacing: .2em; color: var(--ctai-ink-60); }
.rig-header nav { display: flex; gap: 18px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; color: var(--ctai-ink-64); }
.rig-header nav a:hover { color: var(--ctai-yellow); }

@media (max-width: 760px) {
  .rig-header nav { display: none; }
}

/* ============================================================
   ARCHIVE MASTHEAD — shared by Crash Test Archive + Lab Notes Archive
   (eyebrow, title left / dek right, meta strip beneath)
   ============================================================ */

.rig-archhead { padding: var(--rig-space-base) 0 clamp(30px,3.6vw,44px); }
.rig-archhead-eyebrow { display: flex; align-items: center; gap: 11px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 22px; }
.rig-archhead-eyebrow .rig-crumb { color: var(--ctai-ink-60); }
.rig-archhead-top { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(28px,5vw,72px); align-items: end; }
.rig-archhead h1 { font-size: clamp(40px,6.6vw,84px); font-weight: 700; letter-spacing: -.04em; line-height: .94; }
.rig-archhead-dek { font-size: clamp(15px,1.7vw,18px); color: var(--ctai-ink-74); line-height: 1.6; max-width: 46ch; justify-self: end; padding-bottom: 6px; }

@media (max-width: 820px) {
  .rig-archhead-top { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .rig-archhead-dek { justify-self: start; padding-bottom: 0; }
}

/* ============================================================
   CRASH TEST ARCHIVE — /crash-tests/
   ============================================================ */

.rig-ct-filters { display: flex; flex-direction: row; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; padding: 24px 0; border-top: 1px solid var(--ctai-hairline); border-bottom: 1px solid var(--ctai-hairline); }
.rig-ct-frow { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rig-ct-flabel { font-family: var(--font-mono); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-40); min-width: 66px; }
.rig-chip { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-64); padding: 7px 13px; border: 1px solid var(--ctai-hairline); background: transparent; cursor: pointer; transition: all .15s ease; display: flex; align-items: center; gap: 7px; }
.rig-chip:hover { border-color: var(--ctai-ink-40); color: var(--ctai-white); }
.rig-chip.is-on { background: var(--ctai-white); border-color: var(--ctai-white); color: var(--ctai-black); }
.rig-chip .vd { width: 7px; height: 7px; border-radius: 50%; }
.rig-chip .vd.pass { background: var(--ctai-green); }
.rig-chip .vd.mixed { background: var(--ctai-orange); }
.rig-chip .vd.fail { background: var(--ctai-red); }

/* Featured lead — the latest published verdict, one prominent block,
   same shell as .rig-notefeat (Lab Notes) but data-first: a real
   score/verdict band stands in for the avatar/byline. */
.rig-ctfeat {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(24px, 3vw, 40px);
  margin-top: clamp(20px, 2.6vw, 28px);
  border: 1px solid var(--ctai-hairline);
  background: var(--ctai-lift);
  padding: clamp(28px, 3.6vw, 48px);
  transition: border-color .25s ease, background-color .25s ease;
}
.rig-ctfeat::before { content: ''; position: absolute; inset: 6px; border: 1px solid var(--ctai-hairline); pointer-events: none; }
.rig-ctfeat:hover { border-color: rgba(245,245,240,.22); background: var(--ctai-lift2); }

.rig-ctfeat-score { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; align-self: stretch; gap: 14px; flex: none; padding-right: clamp(24px, 3vw, 40px); border-right: 1px solid var(--ctai-hairline); }
.rig-ctfeat-num { font-family: var(--font-stencil); font-size: clamp(48px,6vw,64px); line-height: .85; color: var(--ctai-white); }
.rig-ctfeat-num small { font-family: var(--font-mono); font-size: .3em; letter-spacing: .02em; color: var(--ctai-ink-40); margin-left: 4px; }

.rig-ctfeat-body { min-width: 0; }
.rig-ctfeat-title { font-size: clamp(26px,3.2vw,38px); font-weight: 700; letter-spacing: -.025em; line-height: 1.12; margin-bottom: 6px; max-width: 28ch; }
.rig-ctfeat-tagline { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 14px; }
.rig-ctfeat-dek { font-size: 16px; color: var(--ctai-ink-74); line-height: 1.55; max-width: 62ch; }

.rig-ctfeat-read {
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  padding-left: clamp(24px, 3vw, 40px);
  border-left: 1px solid var(--ctai-hairline);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ctai-ink-64);
  white-space: nowrap;
  transition: color .18s ease;
}
.rig-ctfeat-read span { display: inline-block; margin-left: 8px; transition: transform .25s ease; }
.rig-ctfeat:hover .rig-ctfeat-read { color: var(--ctai-yellow); }
.rig-ctfeat:hover .rig-ctfeat-read span { transform: translateX(3px); }

@media (max-width: 760px) {
  .rig-ctfeat { grid-template-columns: auto 1fr; }
  .rig-ctfeat-read { display: none; }
}

/* Card grid — data cards beneath the lead, a different layer from
   Lab Notes' vertical row list (that's an editorial pattern; this is
   the blog's "all articles" grid, scannable and score-first). */
.rig-ctgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); margin-top: clamp(20px, 2.6vw, 28px); }
.rig-ctcard { display: flex; flex-direction: column; background: var(--ctai-panel-1); padding: clamp(24px,2.6vw,32px); transition: background-color .2s ease; }
.rig-ctcard:hover { background: var(--ctai-lift); }

.rig-ctcard-score { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 16px; }
.rig-ctcard-num { font-family: var(--font-stencil); font-size: clamp(38px,4vw,48px); line-height: .85; color: var(--ctai-white); }
.rig-ctcard-num small { font-family: var(--font-mono); font-size: .32em; letter-spacing: .02em; color: var(--ctai-ink-40); margin-left: 3px; }
.rig-ctcard-num.is-dash { color: var(--ctai-ink-40); }

.rig-ctcard-title { font-size: 18px; font-weight: 600; letter-spacing: -.012em; line-height: 1.3; margin-bottom: 5px; transition: color .18s ease; }
.rig-ctcard-tagline { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .09em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 12px; }
.rig-ctcard-dek { font-size: 13.5px; color: var(--ctai-ink-64); line-height: 1.55; margin-bottom: 20px; }

.rig-ctcard-foot { display: block; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); transition: color .18s ease; }
.rig-ctcard-foot span { display: inline-block; margin-left: 6px; transition: transform .25s ease; }
.rig-ctcard:hover .rig-ctcard-foot { color: var(--ctai-yellow); }
.rig-ctcard:hover .rig-ctcard-foot span { transform: translateX(3px); }

.rig-ctcard-titlelink { display: block; }
.rig-ctcard-titlelink:hover .rig-ctcard-title { color: var(--ctai-yellow); }
.rig-ctcard-noteline { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 16px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .06em; color: var(--ctai-ink-40); transition: color .18s ease; }
.rig-ctcard-noteline span { transition: transform .25s ease; }
.rig-ctcard-noteline:hover { color: var(--ctai-yellow); }
.rig-ctcard-noteline:hover span { transform: translateX(3px); }

@media (max-width: 620px) {
  .rig-ctgrid { grid-template-columns: 1fr; }
}

.rig-ct-empty { display: none; padding: 56px 0; text-align: center; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); border: 1px solid var(--ctai-hairline); border-top: 0; }

.rig-ct-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); margin-top: clamp(40px, 5vw, 64px); }
.rig-ct-cta-cell { background: var(--ctai-panel-deep); padding: clamp(28px,3.2vw,40px); }
.rig-ct-cta-k { display: flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-40); margin-bottom: 14px; }
.rig-ct-cta-h { font-size: clamp(20px,2.2vw,26px); font-weight: 700; letter-spacing: -.02em; margin-bottom: 8px; }
.rig-ct-cta-d { font-size: 14px; color: var(--ctai-ink-64); margin-bottom: 20px; }
.rig-cta-btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ctai-white); border: 1px solid var(--ctai-ink-40); padding: 11px 18px; transition: all .15s; }
.rig-cta-btn:hover { background: var(--ctai-yellow); border-color: var(--ctai-yellow); color: var(--ctai-black); }

@media (max-width: 620px) {
  .rig-ct-cta { grid-template-columns: 1fr; }
  .rig-mast-brand-sub { display: none; }
  .rig-mast-nav { flex-wrap: nowrap; overflow-x: auto; gap: 18px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .rig-mast-nav::-webkit-scrollbar { display: none; }
  .rig-ct-flabel { min-width: 100%; }
}

/* ============================================================
   LAB NOTES ARCHIVE — /lab-notes/
   Hybrid of coderabbit.ai's /blog (one prominent featured lead)
   and /newsroom (dense chronological row list below it).
   ============================================================ */

.rig-notesarch-meta { display: flex; gap: clamp(20px,3vw,40px); flex-wrap: wrap; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ctai-ink-60); }
.rig-notesarch-meta b { color: var(--ctai-ink-82); font-weight: 400; }

/* Featured lead — one prominent block, avatar/title/dek/byline */
.rig-notefeat {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(24px, 3vw, 40px);
  margin-top: 8px;
  border: 1px solid var(--ctai-hairline);
  background: var(--ctai-panel-1);
  padding: clamp(28px, 3.6vw, 48px);
  transition: border-color .25s ease, background-color .25s ease;
}
.rig-notefeat:hover { border-color: rgba(245,245,240,.22); background: var(--ctai-lift); }

.rig-notefeat-av { width: 88px; height: 88px; flex: none; border: 1px solid var(--ctai-ink-40); background: var(--ctai-black); border-radius: 50%; overflow: hidden; transition: border-color .18s ease; }
.rig-notefeat:hover .rig-notefeat-av { border-color: var(--ctai-ink-64); }
.rig-notefeat-av img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.15); filter: grayscale(1); }

.rig-notefeat-body { min-width: 0; }
.rig-notefeat-tag { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.rig-notefeat-badge { background: var(--ctai-yellow); color: var(--ctai-black); font-weight: 600; padding: 3px 9px; }
.rig-notefeat-tag > span:not(.rig-notefeat-badge) { color: var(--ctai-ink-82); }
.rig-notefeat-tag .rig-crumb { color: var(--ctai-ink-60); }
.rig-notefeat-title { font-size: clamp(26px, 3.2vw, 38px); font-weight: 700; letter-spacing: -.025em; line-height: 1.12; margin-bottom: 12px; max-width: 26ch; }
.rig-notefeat-dek { font-size: 16px; color: var(--ctai-ink-74); line-height: 1.55; max-width: 62ch; margin-bottom: 16px; }
.rig-notefeat-byline { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); }
.rig-notefeat-byline b { color: var(--ctai-ink-82); font-weight: 400; }

.rig-notefeat-read {
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  padding-left: clamp(24px, 3vw, 40px);
  border-left: 1px solid var(--ctai-hairline);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ctai-ink-64);
  white-space: nowrap;
  transition: color .18s ease;
}
.rig-notefeat-read span { display: inline-block; margin-left: 8px; transition: transform .25s ease; }
.rig-notefeat:hover .rig-notefeat-read { color: var(--ctai-yellow); }
.rig-notefeat:hover .rig-notefeat-read span { transform: translateX(3px); }

@media (max-width: 760px) {
  .rig-notefeat { grid-template-columns: auto 1fr; align-items: start; }
  .rig-notefeat-read { display: none; }
}

/* Newsroom list — dense chronological rows beneath the lead */
.rig-newsroom { margin-top: 12px; border-top: 1px solid var(--ctai-hairline); }
.rig-newsroom-row {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  align-items: center;
  gap: clamp(16px, 2.4vw, 32px);
  padding: 28px 0;
  border-bottom: 1px solid var(--ctai-hairline);
  transition: padding-left .18s ease;
}
.rig-newsroom-row:hover { padding-left: clamp(6px,1vw,14px); }

.rig-newsroom-meta { position: relative; display: flex; flex-direction: column; gap: 4px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); }
.rig-newsroom-meta b { color: var(--ctai-ink-60); font-weight: 400; }

/* Avatar — hidden until hover, one fixed size across every row */
.rig-newsroom-av {
  position: absolute;
  right: 28px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  opacity: 0;
  transition: opacity .25s ease;
}
.rig-newsroom-row:hover .rig-newsroom-av { opacity: 1; }
.rig-newsroom-av img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.15); filter: grayscale(1); }

.rig-newsroom-body { min-width: 0; }
.rig-newsroom-title { font-size: 17px; font-weight: 600; letter-spacing: -.012em; line-height: 1.3; color: var(--ctai-white); transition: color .18s ease; }
.rig-newsroom-row:hover .rig-newsroom-title { color: var(--ctai-yellow); }
.rig-newsroom-dek { font-size: 13.5px; color: var(--ctai-ink-64); line-height: 1.5; margin-top: 6px; max-width: 68ch; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }

.rig-newsroom-read { flex: none; display: flex; align-items: center; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); white-space: nowrap; transition: color .18s ease; }
.rig-newsroom-read span { display: inline-block; margin-left: 6px; transition: transform .25s ease; }
.rig-newsroom-row:hover .rig-newsroom-read { color: var(--ctai-yellow); }
.rig-newsroom-row:hover .rig-newsroom-read span { transform: translateX(3px); }

@media (max-width: 620px) {
  .rig-newsroom-row { grid-template-columns: 1fr; gap: 6px; }
  .rig-newsroom-read { display: none; }
}

.rig-notesarch-sub { margin-top: clamp(40px,5vw,64px); border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); padding: clamp(28px,3.4vw,44px); display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.rig-notesarch-sub-k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-ink-40); margin-bottom: 12px; }
.rig-notesarch-sub-h { font-size: clamp(20px,2.2vw,26px); font-weight: 700; letter-spacing: -.02em; margin-bottom: 8px; }
.rig-notesarch-sub-d { font-size: 14px; color: var(--ctai-ink-64); max-width: 42ch; }

@media (max-width: 760px) {
  .rig-notesarch-sub { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   CRASH TEST REPORT — shared shell for Perplexity / Notion AI /
   Claude Sonnet 4.5 (pending). rig-report-- modifiers below cover
   the pending-shell deltas (dashed borders, ink40 instead of the
   verdict colour, striped fill instead of a solid yellow bar).
   ============================================================ */

.rig-report .rig-hero { padding: clamp(34px,5vw,64px) 0 clamp(30px,4vw,48px); display: grid; grid-template-columns: 1.35fr .9fr; gap: clamp(28px,5vw,72px); align-items: end; }
.rig-report-subj { font-family: var(--font-mono); font-size: 11px; letter-spacing: .16em; color: var(--ctai-ink-64); text-transform: uppercase; margin-bottom: 16px; }
.rig-report h1 { font-size: clamp(34px,5.2vw,60px); font-weight: 700; letter-spacing: -.03em; line-height: .98; margin-bottom: 20px; }
.rig-report-lede { font-size: clamp(15px,1.6vw,18px); line-height: 1.55; color: var(--ctai-ink-82); max-width: 46ch; }

.rig-report-specimen { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 11px 0; border-bottom: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .14em; color: var(--ctai-ink-60); text-transform: uppercase; }
.rig-report-specimen .is-tested { color: var(--ctai-yellow); }
.rig-report-specimen .is-tool { color: var(--ctai-white); font-weight: 600; }

.rig-scorebox { border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); padding: 22px; }
.rig-scorebox .lab { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .16em; color: var(--ctai-ink-60); text-transform: uppercase; }
.rig-bignum { font-family: var(--font-stencil); font-size: clamp(72px,11vw,120px); line-height: .9; color: var(--ctai-orange); margin: 6px 0 2px; }
.rig-bignum small { font-size: .32em; color: var(--ctai-ink-64); letter-spacing: .02em; }
.rig-band { display: inline-block; font-family: var(--font-mono); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ctai-orange); border: 1px solid var(--ctai-orange); padding: 4px 12px; margin-top: 6px; }
.rig-snapshot { margin-top: 20px; border-top: 1px solid var(--ctai-hairline); padding-top: 16px; }
.rig-snapshot h3 { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-ink-60); text-transform: uppercase; margin-bottom: 8px; }
.rig-snapshot p { font-size: 14px; color: var(--ctai-ink-82); line-height: 1.5; }
.rig-meta-row { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 16px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; color: var(--ctai-ink-60); text-transform: uppercase; }
.rig-meta-row b { color: var(--ctai-white); font-weight: 400; }

.rig-report section { position: relative; padding: var(--rig-space-tight) 0; }
.rig-report section::before {
  content: "";
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: calc(min(100%,1140px) - 2 * clamp(20px,3.4vw,44px));
  height: 8px;
  background-image:
    repeating-linear-gradient(90deg, var(--ctai-ink-40) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(90deg, rgba(245,245,240,.42) 0 1px, transparent 1px 70px);
  background-size: 100% 4px, 100% 8px;
  background-repeat: repeat-x;
  background-position: left top;
  opacity: .5;
}
.rig-sec-head { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.rig-sec-num { font-family: var(--font-stencil); font-size: 22px; color: var(--ctai-yellow); }
.rig-sec-kicker { font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; color: var(--ctai-yellow); text-transform: uppercase; }
.rig-report h2.rig-sec-title { font-size: clamp(24px,3vw,36px); font-weight: 700; letter-spacing: -.02em; margin-bottom: 14px; }
.rig-sec-intro { font-size: 15px; color: var(--ctai-ink-74); max-width: 64ch; line-height: 1.6; margin-bottom: 30px; }
.rig-pending-note { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ctai-ink-40); border: 1px dashed var(--ctai-ink-28); padding: 16px 18px; background: var(--ctai-panel-deep); }

.rig-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; }
.rig-metric { border-bottom: 1px solid var(--ctai-hairline); padding-bottom: 12px; }
.rig-metric-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.rig-metric-name { font-size: 14px; font-weight: 600; }
.rig-metric-name span { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .1em; color: var(--ctai-ink-60); margin-left: 8px; }
.rig-metric-score { font-family: var(--font-stencil); font-size: 20px; color: var(--ctai-white); }
.rig-metric-score small { font-size: .5em; color: var(--ctai-ink-60); }
.rig-track { height: 4px; background: rgba(245,245,240,.09); }
.rig-fill { height: 100%; background: var(--ctai-yellow); }
.rig-readband { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 10px 26px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ctai-ink-64); border: 1px solid var(--ctai-hairline); padding: 14px 18px; background: var(--ctai-panel-deep); }
.rig-readband b { color: var(--ctai-white); font-weight: 400; }

.rig-phases { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.rig-phase { background: var(--ctai-panel-1); padding: 22px; }
.rig-phase-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 4px; }
.rig-phase-id { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; color: var(--ctai-yellow); text-transform: uppercase; }
.rig-phase-grade { font-family: var(--font-stencil); font-size: 26px; color: var(--ctai-white); }
.rig-phase h4 { font-size: 16px; font-weight: 700; margin: 6px 0 2px; }
.rig-phase .when { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .1em; color: var(--ctai-ink-60); text-transform: uppercase; margin-bottom: 10px; }
.rig-phase p { font-size: 13.5px; color: var(--ctai-ink-74); line-height: 1.55; }

.rig-instruments { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.rig-inst { background: var(--ctai-panel-1); padding: 24px 22px; }
.rig-inst .lab { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .13em; color: var(--ctai-ink-60); text-transform: uppercase; margin-bottom: 12px; }
.rig-inst .big { font-family: var(--font-stencil); font-size: clamp(40px,6vw,58px); line-height: .9; color: var(--ctai-white); }
.rig-inst .big.is-warn { color: var(--ctai-orange); }
.rig-inst .cap { font-size: 13px; color: var(--ctai-ink-74); margin-top: 10px; line-height: 1.5; }

.rig-report table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rig-report th { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .13em; color: var(--ctai-ink-60); text-transform: uppercase; text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--ctai-hairline); }
.rig-report td { padding: 12px 14px; border-bottom: 1px solid var(--ctai-hairline); color: var(--ctai-ink-82); vertical-align: top; line-height: 1.5; }
.rig-report td .tstamp { font-family: var(--font-mono); font-size: 11px; color: var(--ctai-ink-60); white-space: nowrap; }
.rig-report td .ph { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; color: var(--ctai-ink-64); text-transform: uppercase; }
.rig-res { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; padding: 2px 8px; border: 1px solid; }
.rig-res.is-pass { color: var(--ctai-green); border-color: var(--ctai-green); }
.rig-res.is-fail { color: var(--ctai-red); border-color: var(--ctai-red); }
.rig-res.is-flag { color: var(--ctai-yellow); border-color: var(--ctai-yellow); }
.rig-sev { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-64); }
.rig-sev.is-hi { color: var(--ctai-white); }

.rig-balance { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); margin-bottom: 1px; }
.rig-bal { background: var(--ctai-panel-1); padding: 24px; }
.rig-bal h4 { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; color: var(--ctai-ink-60); }
.rig-bal ul { list-style: none; }
.rig-bal li { font-size: 13.5px; color: var(--ctai-ink-82); padding: 8px 0 8px 18px; position: relative; border-bottom: 1px solid rgba(245,245,240,.06); line-height: 1.5; }
.rig-bal li:before { content: ""; position: absolute; left: 0; top: 15px; width: 7px; height: 1px; background: var(--ctai-yellow); }
.rig-useskip { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); border-top: 0; }
.rig-us { background: var(--ctai-panel-deep); padding: 22px 24px; }
.rig-us h4 { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 10px; }
.rig-us p { font-size: 14px; color: var(--ctai-ink-82); line-height: 1.55; }
.rig-pay { border: 1px solid var(--ctai-hairline); border-top: 0; background: var(--ctai-panel-1); padding: 18px 24px; display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; }
.rig-pay .q { font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--ctai-ink-60); }
.rig-pay .a { font-size: 14px; color: var(--ctai-white); }

.rig-verdict { border: 1px solid var(--ctai-orange); background: var(--ctai-panel-deep); padding: clamp(28px,4vw,44px); }
.rig-verdict-top { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; }
.rig-verdict .rig-band { margin: 0; }
.rig-verdict .vnum { font-family: var(--font-stencil); font-size: 56px; line-height: .9; color: var(--ctai-orange); }
.rig-verdict .vnum small { font-size: .3em; color: var(--ctai-ink-64); }
.rig-verdict p { font-size: clamp(15px,1.7vw,19px); line-height: 1.55; color: var(--ctai-white); max-width: 60ch; }
.rig-verdict .pull { font-size: clamp(18px,2.2vw,24px); font-weight: 700; letter-spacing: -.02em; color: var(--ctai-white); margin-bottom: 18px; line-height: 1.25; }
.rig-byline { display: flex; align-items: center; gap: 12px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--ctai-hairline); }
.rig-avatar { width: 36px; height: 36px; border: 1px solid var(--ctai-ink-40); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 13px; color: var(--ctai-ink-74); position: relative; overflow: hidden; }
.rig-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.15); filter: grayscale(1); }
.rig-byline .n { font-weight: 700; font-size: 13px; letter-spacing: .04em; }
.rig-byline .r { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; color: var(--ctai-ink-60); text-transform: uppercase; }

.rig-report-foot { padding-block: 30px; /* block only — keeps .rig-wrap's 24px gutter so footer text sits on the content edge */ border-top: 1px solid var(--ctai-hairline); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 24px;  /* equal gaps between the three items — page-centring the tagline left it hugging the longer right-hand text */ font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: var(--ctai-ink-64); text-transform: uppercase; }  /* one colour for all footer copy */
@media (max-width: 1100px) { .rig-report-foot { flex-direction: column; align-items: flex-start; } }
/* © in the body face: Space Mono's © is a speck at 10px. */
.copy-mark { font-family: var(--font-body); font-size: 1.35em; line-height: 0; vertical-align: -.06em; }
.rig-report-foot-brand { display: inline-flex; align-items: center; gap: 8px; color: inherit; transition: color .15s ease; }
.rig-report-foot-brand:hover { color: var(--ctai-yellow); }

/* Pending-shell deltas (Claude Sonnet 4.5 — 07) */
.rig-report--pending .rig-scorebox { border: 1px dashed var(--ctai-ink-28); }
.rig-report--pending .rig-bignum { color: var(--ctai-ink-40); }
.rig-report--pending .rig-band { color: var(--ctai-yellow); border-color: var(--ctai-yellow); }
.rig-report--pending .rig-metric-score { color: var(--ctai-ink-40); }
.rig-report--pending .rig-fill { background: repeating-linear-gradient(90deg, var(--ctai-ink-28) 0 4px, transparent 4px 8px); }
.rig-report--pending .rig-phase-grade { color: var(--ctai-ink-40); }
.rig-report--pending .rig-phase p { color: var(--ctai-ink-40); }
.rig-report--pending .rig-verdict { border: 1px dashed var(--ctai-ink-28); }
.rig-report--pending .rig-verdict .vnum { color: var(--ctai-ink-40); }
.rig-report--pending .rig-verdict p { color: var(--ctai-ink-74); }

/* Hazard / pending banner (07 only) */
.rig-hazard-banner { border-bottom: 1px solid var(--ctai-hairline); }
.rig-hazard-stripes { height: 8px; background: repeating-linear-gradient(45deg, rgba(255,214,0,.85) 0 11px, #0D0D0D 11px 22px); }
.rig-hazard-txt { padding: 11px 0; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .13em; color: var(--ctai-yellow); text-transform: uppercase; }
.rig-hazard-txt b { font-weight: 700; }
.rig-hazard-txt span { color: var(--ctai-ink-60); text-transform: none; letter-spacing: .02em; font-size: 11px; }

@media (max-width: 820px) {
  .rig-report .rig-hero { grid-template-columns: 1fr; gap: 32px; }
  .rig-metrics, .rig-phases, .rig-balance, .rig-useskip { grid-template-columns: 1fr; }
  .rig-instruments { grid-template-columns: 1fr; }
}

/* ============================================================
   COMMISSION A TEST — /crash-test-my-tool/
   Bespoke conversion-page shell. Deliberately NOT .rig-report:
   no numbered sec-heads, no report ruler-tick dividers — this is
   a sales page, not a test document.
   ============================================================ */

.rig-commission h1 { font-size: clamp(34px,5.2vw,60px); font-weight: 700; letter-spacing: -.03em; line-height: .98; margin-bottom: 20px; }
.rig-commission-hero { padding: clamp(44px,6vw,76px) 0 clamp(40px,5.4vw,64px); border-bottom: 1px solid var(--ctai-hairline); }
.rig-commission-hero .rig-report-lede { max-width: 52ch; }

.rig-commission section { padding: var(--rig-space-open) 0; }
.rig-commission section + section { border-top: 1px solid var(--ctai-hairline); }

.rig-c-eyebrow { display: flex; align-items: center; gap: 11px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 16px; }
.rig-c-title { font-size: clamp(26px,3.2vw,38px); font-weight: 700; letter-spacing: -.025em; line-height: 1.1; margin-bottom: 14px; max-width: 22ch; }
.rig-c-intro { font-size: 15px; color: var(--ctai-ink-74); max-width: 60ch; line-height: 1.6; }

/* Proof bento — replaces a text stat with a real evidence artifact */
.rig-bento { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); margin-top: clamp(28px,3.4vw,40px); }
.rig-bento-cell { background: var(--ctai-panel-1); padding: clamp(24px,2.8vw,32px); }
.rig-bento-cell .n { font-family: var(--font-stencil); font-size: clamp(36px,4.4vw,48px); color: var(--ctai-yellow); line-height: .9; }
.rig-bento-cell .n small { font-family: var(--font-mono); font-size: .32em; color: var(--ctai-ink-40); }
.rig-bento-cell .d { font-size: 13.5px; color: var(--ctai-ink-74); margin-top: 10px; line-height: 1.5; max-width: 32ch; }
.rig-bento-wide { grid-column: 1 / -1; background: var(--ctai-panel-1); padding: clamp(24px,2.8vw,32px); display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(24px,3vw,40px); align-items: center; }
.rig-bento-wide-copy .k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 10px; }
.rig-bento-wide-copy h4 { font-size: 19px; font-weight: 700; margin-bottom: 8px; letter-spacing: -.01em; }
.rig-bento-wide-copy p { font-size: 13.5px; color: var(--ctai-ink-74); line-height: 1.55; }

.rig-evidence-card { border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); }
.rig-evidence-card-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); }
.rig-evidence-card-head .tag { color: var(--ctai-orange); }
.rig-evidence-card-body { padding: 16px; font-family: var(--font-mono); font-size: 12.5px; line-height: 1.7; color: var(--ctai-ink-82); }
.rig-evidence-card-body .tool { color: var(--ctai-white); font-weight: 600; }

/* Process track — the 4-phase process as a literal assembly line, not a card grid.
   Named rig-ptrack (not rig-track) to avoid colliding with the existing
   .rig-track metric progress-bar class used on report pages. */
.rig-ptrack { display: grid; grid-template-columns: repeat(4,1fr); position: relative; margin-top: clamp(32px,4vw,48px); }
.rig-ptrack::before { content: ""; position: absolute; top: 5px; left: 0; right: 0; height: 1px; background: var(--ctai-hairline); }
.rig-ptrack-stop { position: relative; padding-right: clamp(12px,2vw,24px); }
.rig-ptrack-dot { width: 11px; height: 11px; border-radius: 50%; background: var(--ctai-panel-deep); border: 2px solid var(--ctai-yellow); margin-bottom: 20px; }
.rig-ptrack-num { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .14em; color: var(--ctai-ink-40); text-transform: uppercase; margin-bottom: 8px; }
.rig-ptrack-name { font-size: 16px; font-weight: 700; margin-bottom: 6px; letter-spacing: -.01em; }
.rig-ptrack-desc { font-size: 12.5px; color: var(--ctai-ink-64); line-height: 1.5; }

@media (max-width: 760px) {
  .rig-bento { grid-template-columns: 1fr; }
  .rig-bento-wide { grid-template-columns: 1fr; }
  .rig-ptrack { grid-template-columns: 1fr; gap: 28px; }
  .rig-ptrack::before { left: 5px; top: 0; bottom: 0; right: auto; width: 1px; height: auto; }
  .rig-ptrack-stop { padding-left: 26px; padding-right: 0; }
  .rig-ptrack-dot { position: absolute; left: 0; top: 2px; margin-bottom: 0; }
}

.rig-final-cta { display: grid; grid-template-columns: auto 1fr; gap: clamp(32px,4vw,56px); align-items: center; border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); padding: clamp(32px,4vw,48px); }
.rig-final-cta-price { flex: none; border-right: 1px solid var(--ctai-hairline); padding-right: clamp(32px,4vw,48px); }
.rig-final-cta-price .k { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 8px; }
.rig-final-cta-price .n { font-family: var(--font-stencil); font-size: clamp(48px,6vw,64px); line-height: .85; color: var(--ctai-yellow); }
.rig-final-cta-price .n small { font-family: var(--font-mono); font-size: .3em; color: var(--ctai-ink-40); }
.rig-final-cta-price .sub { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); margin-top: 8px; }
.rig-final-cta-body h2 { font-size: clamp(24px,3vw,34px); font-weight: 700; letter-spacing: -.02em; margin-bottom: 10px; }
.rig-final-cta-body p { font-size: 15px; color: var(--ctai-ink-74); margin-bottom: 20px; }

@media (max-width: 640px) {
  .rig-final-cta { grid-template-columns: 1fr; }
  .rig-final-cta-price { border-right: 0; border-bottom: 1px solid var(--ctai-hairline); padding-right: 0; padding-bottom: 24px; }
}


.rig-faq { border-top: 1px solid var(--ctai-hairline); margin-top: 32px; }
.rig-faq-item { border-bottom: 1px solid var(--ctai-hairline); }
.rig-faq-trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; background: none; border: none; color: var(--ctai-white); text-align: left; cursor: pointer; font-family: var(--font-body); font-size: 15px; font-weight: 600; letter-spacing: -.01em; transition: color .15s ease; }
.rig-faq-trigger:hover { color: var(--ctai-yellow); }
.rig-faq-icon { flex-shrink: 0; color: var(--ctai-ink-40); transition: transform .2s ease, color .2s ease; }
.rig-faq-item.is-open .rig-faq-trigger { color: var(--ctai-yellow); }
.rig-faq-item.is-open .rig-faq-icon { transform: rotate(45deg); color: var(--ctai-yellow); }
.rig-faq-body { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.rig-faq-item.is-open .rig-faq-body { max-height: 640px; }
.rig-faq-body-inner { padding: 0 0 24px; font-size: 14px; color: var(--ctai-ink-74); line-height: 1.62; max-width: 68ch; }
.rig-faq-body-inner p { margin-bottom: 12px; }
.rig-faq-body-inner p:last-child { margin-bottom: 0; }
.rig-faq-body-inner ul { margin: 6px 0 14px 18px; }
.rig-faq-body-inner li { margin-bottom: 6px; }
.rig-faq-body-inner a { color: var(--ctai-yellow); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 620px) {
  .rig-shift-row { grid-template-columns: 1fr; gap: 24px; }
  .rig-shift-track { display: none; }
}

/* ============================================================
   LAB NOTE POST — shared shell for the two editorial field notes
   (One Platform Two Layers / The Score I Took Down). No grid bg.
   ============================================================ */

.rig-note { scroll-behavior: smooth; }

.rig-note-masthead { padding: clamp(64px,9vw,120px) 0 0; }
.rig-note-kicker { display: flex; align-items: center; gap: 12px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--ctai-ink-82); margin-bottom: 32px; }
.rig-note-kicker .rig-crumb { color: var(--ctai-ink-60); }
.rig-note-masthead h1 { font-size: clamp(40px,6.4vw,72px); font-weight: 700; letter-spacing: -.038em; line-height: .98; margin-bottom: 16px; }
.rig-note-dek { font-size: clamp(19px,2.4vw,25px); line-height: 1.42; color: var(--ctai-ink-74); font-weight: 400; max-width: 44ch; }
.rig-note-byline-top { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin-top: 22px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ctai-ink-60); }
.rig-note-byline-top b { color: var(--ctai-white); font-weight: 400; }
.rig-note-dot { width: 3px; height: 3px; background: var(--ctai-ink-40); border-radius: 50%; }
.rig-note-masthead-rule { max-width: 780px; margin: clamp(48px,6vw,72px) auto 0; padding: 0 clamp(20px,4vw,24px); }
.rig-note-masthead-rule div { height: 1px; background: var(--ctai-hairline); }

.rig-note article { padding: clamp(48px,6vw,72px) 0 clamp(56px,7vw,88px); }
.rig-note article p { font-size: 18px; line-height: 1.72; color: var(--ctai-ink-82); margin-bottom: 26px; }
.rig-note article p.lead { font-size: 21px; line-height: 1.58; color: var(--ctai-white); }
.rig-note article p.lead::first-letter { font-family: var(--font-stencil); float: left; font-size: 62px; line-height: .78; padding: 8px 16px 0 0; color: var(--ctai-yellow); }
.rig-note article h2 { font-size: clamp(25px,3.2vw,34px); font-weight: 700; letter-spacing: -.028em; margin: 56px 0 20px; line-height: 1.1; }
.rig-note article h3 { font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-yellow); margin: 52px 0 16px; }
.rig-note article em { color: var(--ctai-white); font-style: italic; }
.rig-note blockquote { margin: 48px 0; } /* look: the article tier of the shared quote rule (shell.css) */

.rig-note-layers { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); margin: 44px 0; }
.rig-note-layer { background: var(--ctai-panel-1); padding: 28px; }
.rig-note-layer .lnum { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 14px; }
.rig-note-layer h4 { font-size: 20px; font-weight: 700; margin-bottom: 10px; letter-spacing: -.01em; }
.rig-note-layer .score { font-family: var(--font-stencil); font-size: 15px; color: var(--ctai-ink-40); margin-bottom: 10px; }
.rig-note-layer p { font-size: 14px; line-height: 1.58; color: var(--ctai-ink-74); margin: 0; }

.rig-note-endnote { border-top: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); }
.rig-note-end-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(40px,6vw,88px); padding: clamp(48px,6vw,80px) 0 clamp(40px,5vw,60px); }
.rig-note-end-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 24px; display: flex; align-items: center; gap: 12px; }
.rig-note-end-label::after { content: ""; flex: 1; height: 1px; background: var(--ctai-hairline-soft); }

.rig-note-author-id { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.rig-note-author-av { width: 100px; height: 100px; border: 1px solid var(--ctai-ink-40); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: var(--ctai-panel-1); position: relative; overflow: hidden; }
.rig-note-author-av svg { width: 30px; height: 30px; opacity: .45; }
.rig-note-author-av img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.15); filter: grayscale(1); }
.rig-note-author-av .cap { position: absolute; bottom: 7px; left: 0; right: 0; text-align: center; font-family: var(--font-mono); font-size: 8px; letter-spacing: .18em; color: var(--ctai-ink-40); text-transform: uppercase; text-shadow: 0 1px 3px rgba(0,0,0,.85); z-index: 1; }
.rig-note-author-name { font-size: 23px; font-weight: 700; letter-spacing: -.015em; }
.rig-note-author-role { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); margin-top: 5px; }
.rig-note-author-bio { font-size: 15px; line-height: 1.62; color: var(--ctai-ink-74); margin-bottom: 16px; }
.rig-note-author-link { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--ctai-yellow); }
.rig-note-author-link:hover { text-decoration: underline; }

.rig-note-rig-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-bottom: 18px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em; color: var(--ctai-ink-64); }
.rig-note-rig-line .rig-tag { color: var(--ctai-yellow); letter-spacing: .14em; text-transform: uppercase; font-size: 10px; }
.rig-note-rig-line .tool { color: var(--ctai-white); }
.rig-note-vcard { display: flex; align-items: center; gap: 20px; padding: 20px 4px; border-top: 1px solid var(--ctai-hairline); transition: padding-left .15s; }
.rig-note-vcard:last-child { border-bottom: 1px solid var(--ctai-hairline); }
.rig-note-vcard:hover { padding-left: 10px; }
.rig-note-vcard .vidx { font-family: var(--font-stencil); font-size: 15px; color: var(--ctai-ink-40); width: 24px; flex-shrink: 0; }
.rig-note-vcard .vbody { flex: 1; min-width: 0; }
.rig-note-vcard .vn { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.rig-note-vcard .vt { font-size: 13.5px; color: var(--ctai-ink-74); margin-top: 4px; line-height: 1.5; }
.rig-note-vcard .vscore { text-align: right; flex-shrink: 0; }
.rig-note-vcard .vscore .n { font-family: var(--font-stencil); font-size: 38px; line-height: .82; color: var(--ctai-orange); }
.rig-note-vcard .vscore .b { font-family: var(--font-mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-orange); margin-top: 5px; }

.rig-note-news { border-top: 1px solid var(--ctai-hairline); }
.rig-note-news-inner { display: grid; grid-template-columns: 1.3fr auto; align-items: center; gap: 32px; padding: clamp(36px,4.5vw,56px) 0; }
.rig-note-news .k { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-yellow); margin-bottom: 14px; }
.rig-note-news h4 { font-size: clamp(24px,3vw,34px); font-weight: 700; letter-spacing: -.028em; margin-bottom: 12px; line-height: 1.05; }
.rig-note-news p { font-size: 15px; color: var(--ctai-ink-74); max-width: 44ch; line-height: 1.55; }
.rig-note-news .btn { display: inline-block; background: var(--ctai-yellow); color: var(--ctai-black); font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; font-weight: 600; text-transform: uppercase; padding: 14px 24px; white-space: nowrap; }

.rig-note-backlink { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--ctai-ink-64); }
.rig-note-backlink:hover { color: var(--ctai-yellow); }
.rig-note footer { border-top: 1px solid var(--ctai-hairline); }
.rig-note footer .rig-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 20px; padding-top: clamp(36px,4.5vw,52px); padding-bottom: clamp(36px,4.5vw,52px); }
.rig-note-foot-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: var(--ctai-ink-60); text-transform: uppercase; }

@media (max-width: 760px) {
  .rig-note-layers { grid-template-columns: 1fr; }
  .rig-note-end-grid { grid-template-columns: 1fr; gap: 48px; }
  .rig-note-news-inner { grid-template-columns: 1fr; gap: 22px; }
}

/* ============================================================
   PHONE ALIGNMENT PASS (2026-09-28) — fixes found auditing every
   v2 page at 375px. Desktop is untouched.
   ============================================================ */
/* section heads + run sheet: two columns need ~1000px — below that they stack (was 760px, which
   squeezed tablets: labels broke mid-word and the runs table clipped its STATUS column) */
@media (max-width: 1000px) {
  .lv2-head { grid-template-columns: 1fr; gap: 20px; }
  .lv2-head-aside { justify-self: start; }
  .lv2-head-dek { white-space: normal; max-width: 62ch; }
}
/* run sheet: the side-by-side ledger needs ~1080px before tool names start wrapping */
@media (max-width: 1080px) { .lv2-runsheet-split { grid-template-columns: 1fr; } }
/* Method phase list: fixed number column so every phase title starts on the same line */
.lv2-phase-num { min-width: 1.4em; }
@media (max-width: 640px) {
  /* hero + closing band: stacked buttons share one width instead of two ragged ones */
  .lv2-cta-actions { flex-direction: column; align-items: stretch; }
  .lv2-hero-ctas { grid-auto-flow: row; width: 100%; }
  .lv2-hero-ctas a, .lv2-cta-actions a { justify-content: center; }
  .lv2-eyebrow span { text-wrap: balance; }                  /* no lone last word in the hero label */
  /* run sheet: header, footer and status stack instead of two cramped columns */
  .lv2-runsheet-head, .lv2-runsheet-foot { flex-direction: column; align-items: flex-start; gap: 6px; }
  .lv2-runsheet-now-state { text-align: left; }
  /* stations 2×2: hairline gaps (not a 20px grey band) and only the top row keeps its rail tick */
  .lv2-runsheet-stations { gap: 1px; }
  .lv2-runsheet-stn:nth-child(n+3)::before { display: none; }
  /* lab-note teasers: avatar sits above the text instead of squeezing it into a narrow column */
  .lv2-notepanel { grid-template-columns: 1fr; align-items: start; gap: 14px; }
  .lv2-notepanel-av { width: 40px; height: 40px; }
  /* feature tiles: drop the inner frame padding so tiles meet the page margin */
  .lv2-tile-frame { padding: 0; gap: 1px; background: var(--ctai-hairline); }
}

/* The Rig, side by side: the queued-tools ledger fills the full height of the "in the rig now" panel —
   the four tool rows share the spare height, so the last row lands on the panel's bottom edge */
@media (min-width: 1081px) {
  .lv2-runsheet-ledger { display: flex; flex-direction: column; }
  .lv2-runsheet-row.is-item { flex: 1 1 0; }
}


/* Hero buttons: one pair, always identical — same width (the wider of the two), same height, same type size.
   (The yellow had its own padding/size rules and the outline didn't: 207 vs 220px wide, 1px taller.) */
.lv2-hero-ctas { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: max-content; max-width: 100%; }
.lv2-hero-ctas .lv2-btn-yellow, .lv2-hero-ctas .lv2-btn-outline { justify-self: stretch; justify-content: center; border: 1px solid transparent; padding: clamp(12px, 1.6svh, 16px) clamp(16px, 1.6vw, 22px); font-size: clamp(10px, .9vw, 12px); gap: 10px; }
.lv2-hero-ctas .lv2-btn-outline { border-color: rgba(245, 245, 240, .28); }
.lv2-hero-ctas .lv2-btn-outline:hover, .lv2-hero-ctas .lv2-btn-outline:focus-visible { border-color: var(--ctai-yellow); }

/* Hero portrait once the hero stacks (≤860px): the frame is drawn 18px outside the photo and the column
   clips overflow — so give it real headroom (on phones it was sliced off under the header), and on tablets
   keep it a portrait card rather than a wide letterbox with Woody small in the middle */
@media (max-width: 960px) {
  /* stack deterministically (auto-fit left 861–960px as a squeezed letterbox) and release the
     100dvh fold-lock so the portrait gets its height, as on phones */
  .lv2-hero-grid-cols { display: flex; flex-direction: column; }
  .lv2-hero-lock { height: auto; min-height: calc(100dvh - var(--lv2-header-h, 0px)); }
  .lv2-hero { overflow: visible; }
  .lv2-hero-body { flex: none; }
  .lv2-hero-photo-col { padding: 40px 18px clamp(14px, 2svh, 32px); overflow: visible; }  /* 18px = the frame's outset, so its edge meets the text gutter */
  .lv2-hero-photo-frame { flex: none; width: min(100%, 440px); align-self: flex-start; }  /* shares the text's left edge */
}
@media (min-width: 641px) and (max-width: 960px) {
  .lv2-hero-photo-frame { height: 500px; }
}@media (max-width: 640px) { .lv2-hero-ctas { grid-auto-flow: row; width: 100%; } }  /* phones: stacked, full width (after the grid rule above so it wins) */

/* Phones: one fewer text tier before content — the layer tags ("The data layer" / "The editorial layer" /
   "Run sheet") and the hero eyebrow (the paragraph already opens "I'm the Crash Test Dummy") are desktop-only */
@media (max-width: 640px) {
  .lv2-head-crumb { display: none; }
  .lv2-hero .lv2-eyebrow { display: none; }
}

/* Hero portrait: grounded, with only the trouser arc blended away. The cut-out's rounded bottom — and the
   white outline tracing it — read as a sticker floating 18px above the frame line. Sit the cut-out on the
   frame's bottom line (2px under) and fade just the last ~20% (where the arc is), so that curved outline
   dissolves into the line while the rest of the portrait stays crisp. Outline 1.25px. The image is woody-hero-solid.png: the
   gap between his arm and torso is filled with a soft dark shadow tone (row-enclosed pixels only), so the
   outline traces his outer silhouette only (it was drawing stray lines inside the arm gaps). */
.lv2-hero-photo {
  inset: auto 0 -20px 0;
  height: 100%;
  filter: grayscale(1) contrast(1.06) brightness(.94)
    drop-shadow(1.25px 0 0 rgba(232,232,226,.55))
    drop-shadow(-1.25px 0 0 rgba(232,232,226,.55))
    drop-shadow(0 1.25px 0 rgba(232,232,226,.55))
    drop-shadow(0 -1.25px 0 rgba(232,232,226,.55));
  -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent 94%);
  mask-image: linear-gradient(to bottom, #000 80%, transparent 94%);
}

/* Screen-reader-only text (keeps heading order semantic without changing the design). */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
