/* ============================================================
   LAB NOTE — long-form editorial layout (.ln-page)
   Every Lab Note (via _includes/lab-note.njk). Rail + reading column grid, sticky contents,
   reading progress, and editorial components built from the note's own
   content: transcript quotes, timelines, "shift" pairs, panels (access
   check, ledger, test lengths, disclosure), the handoff loop, stats,
   the Operator Ceiling meter, scorecard, verdict, closing lines.
   Same tokens as the rest of the site (design-system.css). Loads after
   landing.css + shell.css and resets the short-note article rules
   (.rig-note article …) inside .ln-page.
   ============================================================ */

.ln-page { --ln-rail: 168px; --ln-col: 688px; --ln-gap: clamp(40px, 6vw, 88px); padding-bottom: 0; }

/* ---------- grid: rail + reading column, everything aligns to the same two lines ---------- */
.ln-wrap { max-width: 1140px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 44px); }
.ln-grid { display: grid; grid-template-columns: var(--ln-rail) minmax(0, var(--ln-col)); column-gap: var(--ln-gap); justify-content: center; }
.ln-rail, .ln-col { min-width: 0; }

/* ---------- reading progress ---------- */
.ln-progress { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; pointer-events: none; }
.ln-progress span { display: block; height: 100%; width: 100%; background: var(--ctai-yellow); transform: scaleX(0); transform-origin: 0 50%; }

/* ---------- masthead ---------- */
.ln-mast { padding-top: clamp(56px, 8vw, 104px); padding-bottom: clamp(48px, 6vw, 72px); border-bottom: 1px solid var(--ctai-hairline); }
.ln-mast-num { font-family: var(--font-stencil); font-size: clamp(120px, 13vw, 184px); line-height: .78; color: rgba(245, 245, 240, .07); letter-spacing: -.02em; user-select: none; margin-top: -4px; }
.ln-kicker { font-family: var(--font-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-82); }
.ln-kicker-crumb { color: var(--ctai-ink-60); }
.ln-page .ln-mast h1 { font-family: var(--font-display); font-size: clamp(40px, 5.4vw, 66px); font-weight: 700; line-height: 1; letter-spacing: -.035em; margin: 22px 0 22px; text-wrap: balance; }
.ln-dek { font-size: clamp(19px, 2vw, 22px); line-height: 1.5; color: var(--ctai-ink-74); max-width: 32em; }
.ln-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 30px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-byline img { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(245, 245, 240, .22); object-fit: cover; }
.ln-byline b { color: var(--ctai-white); font-weight: 400; }
.ln-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--ctai-ink-40); }

/* ---------- body ---------- */
.ln-body { padding-top: clamp(48px, 6vw, 72px); padding-bottom: clamp(64px, 8vw, 104px); }

/* contents rail */
.ln-toc { position: sticky; top: calc(var(--lv2-header-h, 74px) + 36px); align-self: start; max-height: calc(100vh - var(--lv2-header-h, 74px) - 72px); overflow-y: auto; scrollbar-width: none; }
.ln-toc::-webkit-scrollbar { display: none; }
.ln-toc-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--ctai-ink-40); margin-bottom: 16px; }
.ln-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--ctai-hairline); }
.ln-toc a { display: grid; grid-template-columns: 22px 1fr; align-items: baseline; padding: 6px 0 6px 14px; margin-left: -1px; border-left: 1px solid transparent; font-size: 13px; line-height: 1.35; color: var(--ctai-ink-60); transition: color .2s ease, border-color .2s ease; }
.ln-toc a .n { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .06em; color: var(--ctai-ink-40); transition: color .2s ease; }
.ln-toc a:hover { color: var(--ctai-white); }
.ln-toc a.is-active { color: var(--ctai-white); border-left-color: var(--ctai-yellow); }
.ln-toc a.is-active .n { color: var(--ctai-yellow); }

/* ---------- article typography (resets the short-note rules) ---------- */
.ln-page .ln-article { padding: 0; }
.ln-page .ln-article ul, .ln-page .ln-article ol { list-style: none; margin: 0; padding: 0; border: 0; }
.ln-page .ln-article li { position: static; padding: 0; border: 0; font-size: inherit; line-height: inherit; color: inherit; }
.ln-page .ln-article li::before { content: none; position: static; width: auto; height: auto; background: none; } /* the short-note marker is absolute — undo it all */
.ln-page .ln-article p { font-size: 18px; line-height: 1.75; color: var(--ctai-ink-82); margin: 0 0 24px; }
.ln-page .ln-article strong { color: var(--ctai-white); font-weight: 600; }

.ln-page .ln-article p.ln-lead { font-size: clamp(21px, 2.2vw, 24px); line-height: 1.55; color: var(--ctai-white); margin-bottom: 28px; }
.ln-page .ln-article p.ln-lead::first-letter { font-family: var(--font-stencil); float: left; font-size: 78px; line-height: .76; padding: 9px 16px 0 0; color: var(--ctai-yellow); }

.ln-sec { margin-top: clamp(72px, 9vw, 112px); padding-top: 34px; border-top: 1px solid var(--ctai-hairline); scroll-margin-top: calc(var(--lv2-header-h, 74px) + 24px); }
.ln-sec-k { font-family: var(--font-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 18px; }
.ln-page .ln-sec h2 { font-family: var(--font-display); font-size: clamp(28px, 3.3vw, 38px); font-weight: 700; line-height: 1.08; letter-spacing: -.03em; margin: 0 0 30px; text-wrap: balance; }
.ln-page .ln-sec h2.ln-h2-sm { font-size: clamp(24px, 2.6vw, 28px); }

.ln-page .ln-article p.ln-answer { font-family: var(--font-display); font-size: clamp(30px, 3.4vw, 40px); font-weight: 700; letter-spacing: -.03em; line-height: 1; color: var(--ctai-white); margin: 0 0 22px; }
.ln-page .ln-article p.ln-beat { font-family: var(--font-display); font-size: clamp(22px, 2.5vw, 27px); font-weight: 600; line-height: 1.32; letter-spacing: -.02em; color: var(--ctai-white); margin: 40px 0; text-wrap: balance; }

/* ---------- transcript quote: the tool's own words, as evidence ---------- */
.ln-quote { margin: 36px 0 40px; padding: 24px 28px 26px; background: var(--ctai-panel-1); border: 1px solid var(--ctai-hairline); border-left: 2px solid var(--ctai-yellow); }
.ln-quote figcaption { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-quote figcaption span + span::before { content: "·"; margin-right: 10px; color: var(--ctai-ink-40); }
.ln-quote figcaption .who { color: var(--ctai-white); }
.ln-page .ln-quote blockquote { margin: 16px 0 0; padding: 0; border: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(20px, 2.2vw, 24px); line-height: 1.4; letter-spacing: -.015em; color: var(--ctai-white); }

/* ---------- timeline (two dated points) ---------- */
.ln-page .ln-article .ln-timeline { margin: 30px 0 34px; }
.ln-page .ln-timeline li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 0 18px; padding: 0 0 22px 24px; }
.ln-page .ln-timeline li::before { content: ""; position: absolute; left: 0; top: 7px; width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--ctai-ink-60); background: var(--ctai-black); z-index: 1; }
.ln-page .ln-timeline li::after { content: ""; position: absolute; left: 4px; top: 16px; bottom: -7px; width: 1px; background: var(--ctai-hairline); }
.ln-page .ln-timeline li:last-child { padding-bottom: 0; }
.ln-page .ln-timeline li:last-child::after { content: none; }
.ln-page .ln-timeline li.is-break::before { border-color: var(--ctai-orange); background: var(--ctai-orange); }
.ln-timeline .when { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); padding-top: 4px; }
.ln-page .ln-timeline p { margin: 0; font-size: 17px; }

/* ---------- "shift": the question it isn't → the question it is ---------- */
.ln-shift { margin: 36px 0 8px; border-top: 1px solid var(--ctai-hairline); border-bottom: 1px solid var(--ctai-hairline); }
.ln-shift > div { display: grid; grid-template-columns: 196px 1fr; gap: 6px 24px; align-items: baseline; padding: 20px 0; }
.ln-shift > div + div { border-top: 1px solid var(--ctai-hairline); }
.ln-shift .lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-40); }
.ln-shift .q { font-family: var(--font-display); font-weight: 600; font-size: clamp(19px, 2vw, 22px); letter-spacing: -.015em; line-height: 1.3; color: var(--ctai-ink-60); }
.ln-shift .to .lab { color: var(--ctai-ink-74); }
.ln-shift .to .lab::before { content: ""; display: inline-block; width: 5px; height: 5px; background: var(--ctai-yellow); margin-right: 9px; vertical-align: 2px; }
.ln-shift .to .q { color: var(--ctai-white); font-size: clamp(21px, 2.3vw, 25px); }

/* ---------- panels (access check, ledger, test lengths, disclosure) ---------- */
.ln-panel { margin: 34px 0 38px; background: var(--ctai-panel-1); border: 1px solid var(--ctai-hairline); }
.ln-panel-h { display: flex; justify-content: space-between; gap: 16px; padding: 14px 22px; border-bottom: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-panel-h span:first-child { color: var(--ctai-ink-82); }
.ln-page .ln-panel li { padding: 15px 22px; font-size: 16px; line-height: 1.5; color: var(--ctai-ink-82); }
.ln-page .ln-panel li + li { border-top: 1px solid var(--ctai-hairline); }

.ln-page .ln-blocked li { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; }
.ln-blocked .x { flex: none; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-orange); }
.ln-blocked .x::before { content: "✕"; margin-right: 8px; }

.ln-page .ln-ledger ol { counter-reset: ln-ledger; }
.ln-page .ln-ledger li { counter-increment: ln-ledger; display: grid; grid-template-columns: 40px 1fr; align-items: baseline; }
.ln-page .ln-ledger li::before { content: counter(ln-ledger, decimal-leading-zero); font-family: var(--font-stencil); font-size: 15px; color: var(--ctai-ink-40); }

.ln-page .ln-durations li, .ln-page .ln-disclosure li { display: grid; grid-template-columns: 168px 1fr; gap: 6px 22px; align-items: baseline; }
.ln-durations .t { font-family: var(--font-display); font-weight: 600; color: var(--ctai-white); }
.ln-disclosure .t { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-page .ln-disclosure li { font-size: 15px; }
.ln-disclosure { margin-top: 0; }

/* ---------- the handoff loop: Dia → me → another tool → me → Dia ---------- */
.ln-relay { margin: 32px 0 40px; }
.ln-page .ln-relay ol { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 30px; }
.ln-page .ln-relay li { position: relative; padding: 12px 16px; border: 1px solid var(--ctai-hairline); background: var(--ctai-panel-1); font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; line-height: 1; color: var(--ctai-ink-82); white-space: nowrap; }
.ln-page .ln-relay li + li::before { content: "→"; position: absolute; left: -23px; top: 50%; transform: translateY(-52%); font-size: 13px; letter-spacing: 0; color: var(--ctai-ink-40); }
.ln-page .ln-relay li.me { border-color: var(--ctai-yellow); color: var(--ctai-white); }
.ln-relay figcaption { margin-top: 24px; border-top: 1px solid var(--ctai-hairline); }
.ln-relay figcaption span { display: block; padding: 13px 0; border-bottom: 1px solid var(--ctai-hairline); font-size: 16px; line-height: 1.5; color: var(--ctai-ink-82); }

/* ---------- pair: two numbered findings side by side ---------- */
.ln-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 30px 0 34px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.ln-pair > div { background: var(--ctai-panel-1); padding: 26px 26px 28px; }
.ln-pair-n { font-family: var(--font-stencil); font-size: 30px; line-height: .8; color: var(--ctai-ink-28); }
.ln-page .ln-pair h3 { font-family: var(--font-display); font-size: 20px; font-weight: 700; letter-spacing: -.015em; line-height: 1.25; text-transform: none; color: var(--ctai-white); margin: 18px 0 10px; }
.ln-page .ln-pair p { font-size: 16px; line-height: 1.65; color: var(--ctai-ink-74); margin: 0; }

/* pair variant: a mono label + a meta line (e.g. "Layer 1 // Structure", "87 / 100 · withdrawn") */
.ln-pair-lab { margin-top: 18px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-pair-lab + h3 { margin-top: 10px !important; }
.ln-pair-sub { margin: -2px 0 12px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ctai-ink-40); }
.ln-pair-sub.is-struck { text-decoration: line-through; text-decoration-color: var(--ctai-orange); }

/* ---------- pull: the author's own principle, set large ---------- */
.ln-pull { margin: 44px 0 46px; padding: 4px 0 6px 26px; border-left: 2px solid var(--ctai-yellow); }
.ln-pull figcaption { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-page .ln-pull blockquote { margin: 14px 0 0; padding: 0; border: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(23px, 2.7vw, 30px); line-height: 1.3; letter-spacing: -.022em; color: var(--ctai-white); text-wrap: balance; }

/* ---------- loop: three steps that feed back into the first ---------- */
.ln-loop { margin: 34px 0 36px; }
.ln-loop figcaption { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-74); margin-bottom: 14px; }
.ln-page .ln-loop ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); counter-reset: ln-loop; }
.ln-page .ln-loop li { counter-increment: ln-loop; position: relative; background: var(--ctai-panel-1); padding: 20px 22px 22px; font-size: 16px; line-height: 1.5; color: var(--ctai-ink-82); }
.ln-page .ln-loop li::before { content: counter(ln-loop, decimal-leading-zero); display: block; margin-bottom: 12px; font-family: var(--font-stencil); font-size: 22px; line-height: .8; color: var(--ctai-ink-40); }
.ln-loop .step { display: block; margin-bottom: 6px; font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -.015em; color: var(--ctai-white); }
.ln-loop-back { display: flex; align-items: center; gap: 10px; margin-top: 12px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-loop-back::before { content: ""; flex: 1; height: 1px; background: var(--ctai-hairline); order: 2; }
.ln-loop-back b { color: var(--ctai-yellow); font-weight: 400; font-size: 13px; }

/* ---------- stats row ---------- */
.ln-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 4px 0 34px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.ln-stats > div { background: var(--ctai-panel-1); padding: 22px 20px 20px; }
.ln-stats .v { display: block; font-family: var(--font-stencil); font-size: clamp(32px, 3.6vw, 44px); line-height: .85; color: var(--ctai-white); }
.ln-stats .v small { font-size: .42em; color: var(--ctai-ink-60); }
.ln-stats .l { display: block; margin-top: 12px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-60); }

/* ---------- Operator Ceiling meter ---------- */
.ln-ceiling { margin: 34px 0 40px; background: var(--ctai-panel-1); border: 1px solid var(--ctai-hairline); }
.ln-ceiling-meter { padding: 54px 26px 20px; border-bottom: 1px solid var(--ctai-hairline); }
.ln-ceiling .track { position: relative; height: 10px; background: rgba(245, 245, 240, .06);
  background-image: repeating-linear-gradient(90deg, rgba(245,245,240,.16) 0 1px, transparent 1px 10%); }
.ln-ceiling .fill { position: absolute; left: 0; top: 0; bottom: 0; width: 70%; background: var(--ctai-ink-82); }
.ln-ceiling .mark { position: absolute; left: 70%; bottom: 0; height: 40px; border-left: 2px solid var(--ctai-yellow); padding-left: 10px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-ink-82); white-space: nowrap; line-height: 1; }
.ln-ceiling .mark b { color: var(--ctai-white); font-weight: 700; margin-right: 6px; }
.ln-ceiling .scale { display: flex; justify-content: space-between; margin-top: 10px; font-family: var(--font-mono); font-size: 10px; color: var(--ctai-ink-40); }
.ln-ceiling-cols { display: grid; grid-template-columns: 7fr 6fr; }
.ln-ceiling-cols > div { padding: 22px 26px 24px; }
.ln-ceiling-cols > .over { border-left: 1px solid var(--ctai-hairline); background: var(--ctai-panel-deep); }
.ln-ceiling .lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); margin-bottom: 14px; }
.ln-ceiling .over .lab { color: var(--ctai-white); text-transform: none; letter-spacing: -.01em; font-family: var(--font-display); font-size: 15px; font-weight: 600; }
.ln-page .ln-ceiling li { position: relative; padding: 6px 0 6px 18px; font-size: 15px; line-height: 1.45; color: var(--ctai-ink-82); }
.ln-page .ln-ceiling li::before { content: ""; position: absolute; left: 0; top: 14px; width: 5px; height: 5px; background: var(--ctai-ink-60); }
.ln-page .ln-ceiling .over li::before { background: var(--ctai-yellow); }

/* ---------- scorecard ---------- */
.ln-score { display: grid; grid-template-columns: 236px 1fr; margin: 34px 0 36px; background: var(--ctai-panel-1); border: 1px solid var(--ctai-hairline); }
.ln-score-head { padding: 26px 26px 28px; border-right: 1px solid var(--ctai-hairline); }
.ln-score .lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-score-n { margin-top: 22px; font-family: var(--font-stencil); font-size: 92px; line-height: .8; color: var(--ctai-white); }
.ln-score-n small { font-size: .3em; color: var(--ctai-ink-40); }
.ln-score-chip { margin-top: 16px; font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-orange); }
.ln-score-metrics { padding: 22px 26px 20px; }
.ln-score-metrics ul { margin-top: 12px; }
.ln-page .ln-score-metrics li { display: grid; grid-template-columns: minmax(0, 1fr) 128px 46px; gap: 16px; align-items: center; padding: 9px 0; font-size: 14.5px; color: var(--ctai-ink-82); }
.ln-page .ln-score-metrics li + li { border-top: 1px solid var(--ctai-hairline); }
.ln-score-metrics .bar { display: grid; grid-template-columns: repeat(10, 1fr); gap: 3px; }
.ln-score-metrics .bar i { height: 4px; background: rgba(245, 245, 240, .1); }
.ln-score-metrics .bar i.on { background: var(--ctai-ink-82); }
.ln-score-metrics .v { font-family: var(--font-stencil); font-size: 18px; color: var(--ctai-white); text-align: right; }
.ln-score-metrics .v small { font-size: .6em; color: var(--ctai-ink-40); }

/* ---------- use it for / don't rely on it for ---------- */
.ln-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0 0 34px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.ln-split > div { background: var(--ctai-panel-1); padding: 22px 24px 18px; }
.ln-split .lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-74); margin-bottom: 8px; }
.ln-page .ln-split li { position: relative; padding: 11px 0 11px 18px; font-size: 15.5px; line-height: 1.45; color: var(--ctai-ink-82); }
.ln-page .ln-split li + li { border-top: 1px solid var(--ctai-hairline); }
.ln-page .ln-split li::before { content: ""; position: absolute; left: 0; top: 19px; width: 5px; height: 5px; }
.ln-page .ln-split .yes li::before { background: var(--ctai-green); }
.ln-page .ln-split .no li::before { background: var(--ctai-orange); }

/* ---------- rule-separated rows ---------- */
.ln-page .ln-article .ln-rows { margin: 4px 0 30px; border-top: 1px solid var(--ctai-hairline); }
.ln-page .ln-rows li { padding: 14px 0; border-bottom: 1px solid var(--ctai-hairline); font-size: 17px; line-height: 1.5; color: var(--ctai-ink-82); }

/* ---------- the demo vs real work ---------- */
.ln-versus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 30px 0 32px; background: var(--ctai-hairline); border: 1px solid var(--ctai-hairline); }
.ln-versus > div { background: var(--ctai-panel-1); padding: 22px 24px 24px; }
.ln-versus > .is-real { box-shadow: inset 0 2px 0 var(--ctai-yellow); }
.ln-versus .lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); }
.ln-page .ln-versus p { margin: 12px 0 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(18px, 2vw, 21px); line-height: 1.35; letter-spacing: -.015em; color: var(--ctai-ink-60); }
.ln-page .ln-versus .is-real p { color: var(--ctai-white); }

/* ---------- the questions real work asks ---------- */
.ln-page .ln-article .ln-questions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; margin: 6px 0 32px; counter-reset: ln-q; border-top: 1px solid var(--ctai-hairline); }
.ln-page .ln-questions li { counter-increment: ln-q; display: grid; grid-template-columns: 34px 1fr; align-items: baseline; padding: 15px 0; border-bottom: 1px solid var(--ctai-hairline); font-family: var(--font-display); font-weight: 600; font-size: 17px; letter-spacing: -.01em; line-height: 1.35; color: var(--ctai-white); }
.ln-page .ln-questions li::before { content: counter(ln-q, decimal-leading-zero); font-family: var(--font-mono); font-weight: 400; font-size: 10px; letter-spacing: .08em; color: var(--ctai-ink-40); }

/* ---------- verdict: score | verdict facts, then the link to the full Crash Test ---------- */
.ln-verdict { display: grid; grid-template-columns: auto 1fr; margin: 38px 0 40px; background: var(--ctai-panel-1); border: 1px solid var(--ctai-hairline); box-shadow: inset 0 2px 0 var(--ctai-orange); }
.ln-verdict .lab { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--ctai-ink-60); white-space: nowrap; }
.ln-verdict-score { padding: 28px 34px 30px 30px; border-right: 1px solid var(--ctai-hairline); }
.ln-verdict-score .n { display: block; margin-top: 16px; font-family: var(--font-stencil); font-size: 84px; line-height: .8; color: var(--ctai-white); }
.ln-verdict-score .n small { font-size: .3em; color: var(--ctai-ink-40); }
.ln-verdict-cells { display: grid; grid-template-columns: 1fr 1fr; }
.ln-verdict-cells > div { padding: 28px 28px 26px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; }
.ln-verdict-cells > div + div { border-left: 1px solid var(--ctai-hairline); }
.ln-verdict-cells .v { font-family: var(--font-display); font-weight: 700; font-size: 30px; letter-spacing: -.02em; line-height: 1; color: var(--ctai-white); white-space: nowrap; }
.ln-verdict-cells .v.mixed { color: var(--ctai-orange); }
.ln-verdict-go { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; padding: 16px 30px; border-top: 1px solid var(--ctai-hairline); font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ctai-white); transition: background-color .2s ease, color .2s ease; }
.ln-verdict-go span { transition: transform .2s ease; }
.ln-verdict-go:hover, .ln-verdict-go:focus-visible { background: var(--ctai-lift); }
.ln-verdict-go:hover span, .ln-verdict-go:focus-visible span { transform: translateX(4px); color: var(--ctai-yellow); }

/* ---------- closing lines ---------- */
.ln-page .ln-article p.ln-close { margin: 34px 0 0; padding-top: 26px; border-top: 1px solid var(--ctai-hairline); font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 32px); line-height: 1.2; letter-spacing: -.025em; color: var(--ctai-white); }
.ln-close span { display: block; }
.ln-page .ln-article p.ln-signoff { margin: 56px 0 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 3.6vw, 42px); line-height: 1.05; letter-spacing: -.035em; color: var(--ctai-white); text-wrap: balance; }

.ln-page .ctai-share { margin-top: 56px; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .ln-grid { grid-template-columns: minmax(0, var(--ln-col)); }
  .ln-rail { display: none; }
}
@media (max-width: 720px) {
  .ln-shift > div { grid-template-columns: 1fr; }
  .ln-pair, .ln-split, .ln-versus { grid-template-columns: 1fr; }
  .ln-page .ln-loop ol { grid-template-columns: 1fr; }
  .ln-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ln-ceiling-cols { grid-template-columns: 1fr; }
  .ln-ceiling .mark { left: auto; right: 30%; border-left: 0; border-right: 2px solid var(--ctai-yellow); padding: 0 10px 0 0; text-align: right; } /* label sits left of the marker so it never runs off a phone */
  .ln-ceiling-cols > .over { border-left: 0; border-top: 1px solid var(--ctai-hairline); }
  .ln-score { grid-template-columns: 1fr; }
  .ln-score-head { border-right: 0; border-bottom: 1px solid var(--ctai-hairline); }
  .ln-page .ln-score-metrics li { grid-template-columns: minmax(0, 1fr) 84px 40px; gap: 10px; }
  .ln-page .ln-article .ln-questions { grid-template-columns: 1fr; }
  .ln-page .ln-durations li, .ln-page .ln-disclosure li { grid-template-columns: 1fr; }
  .ln-verdict { grid-template-columns: 1fr; }
  .ln-verdict-score { border-right: 0; border-bottom: 1px solid var(--ctai-hairline); }
  .ln-page .ln-blocked li { flex-direction: column; gap: 6px; }
  /* the loop runs top to bottom on phones, so no row ever starts without its arrow */
  .ln-page .ln-relay ol { flex-direction: column; align-items: flex-start; gap: 26px; }
  .ln-page .ln-relay li + li::before { content: "↓"; left: 16px; top: -21px; transform: none; }
}
