
/* ============================================================
   Full-width "field-notes ledger" body layout.
   Each section is a row: a heading rail on the left (mono index +
   section title, forming a scannable spine against a hairline) and a
   wide content column on the right carrying prose + data plates. The
   two columns fill the whole container, so the page reads full-width
   while prose keeps a readable measure and every plate runs the full
   content column. Hero and the dark research-loop band stay edge-to-edge.
   ============================================================ */
.article.cve-body{max-width:none}/* keep .container's centering; just release the 760 cap */
.cve-body .cve-row{
  display:grid;
  grid-template-columns:minmax(190px,248px) minmax(0,1fr);
  gap:0;
  border-top:1px solid var(--rule);
}
.cve-body .cve-row:first-child{border-top:0}
.cve-rail{
  position:sticky;top:100px;align-self:start;
  padding:40px 40px 40px 0;
  margin-right:40px;border-right:1px solid var(--rule);
}
.cve-rail-idx{
  display:block;font:600 11px var(--mono);letter-spacing:.18em;text-transform:uppercase;
  color:var(--amber-deep);margin-bottom:14px;
}
.cve-rail h2{margin:0;font-size:clamp(21px,1.9vw,29px);letter-spacing:-.02em;line-height:1.12}
.cve-main{min-width:0;padding:40px 0}
.cve-main > :first-child{margin-top:0}
.cve-main > :last-child{margin-bottom:0}
.cve-main > p,
.cve-main > blockquote,
.cve-main > ul,
.cve-main > ol:not(.ref-list){max-width:74ch}
/* drop cap on the very first paragraph only */
.cve-body .cve-row:first-child .cve-main > p:first-of-type::first-letter{
  font-family:var(--serif);font-weight:320;font-size:3.6em;line-height:.82;
  float:left;margin:.02em .1em 0 -.02em;color:var(--ink);
}
@media(max-width:900px){
  .cve-body .cve-row{grid-template-columns:1fr}
  .cve-rail{
    position:static;padding:28px 0 0;margin-right:0;border-right:0;
  }
  .cve-rail h2{font-size:clamp(24px,5.5vw,32px)}
  .cve-main{padding:18px 0 28px}
}

.cve-hero-title{max-width:19ch}.cve-hero-title .accent{font-style:italic;background:linear-gradient(95deg,var(--amber-deep),var(--amber),var(--amber-bright));-webkit-background-clip:text;background-clip:text;color:transparent}
.cve-brief{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;padding:30px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:12px 0 46px}
.cve-brief .statement{font-family:var(--serif);font-size:clamp(23px,3vw,38px);line-height:1.25;letter-spacing:-.025em;max-width:22ch}
.cve-brief .facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.fact .k{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.fact .v{margin-top:5px;font-family:var(--mono);font-size:13px}
.source-plate{margin:26px 0 34px}.source-plate .cap{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid var(--ink);border-bottom:0;background:var(--paper-cool);padding:10px 14px;font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase}.source-plate pre{margin:0;border-radius:0}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule);background:var(--card);margin:26px 0 36px}.proof-cell{padding:24px;border-right:1px solid var(--rule)}.proof-cell:last-child{border-right:0}.proof-cell .state{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.proof-cell h4{margin:10px 0 8px;font-size:20px}.proof-cell p{font-size:14px!important;line-height:1.55!important;margin:0}.proof-cell.good{background:linear-gradient(180deg,var(--card),rgba(44,106,69,.08))}.proof-cell.bad{background:linear-gradient(180deg,var(--card),rgba(184,37,58,.07))}.proof-cell.fixed{background:linear-gradient(180deg,var(--card),var(--amber-pale))}
.replay{background:#0E1A36;color:#E9EDF6;border:1px solid #213153;padding:24px;margin:28px 0;font:13px/1.7 var(--mono);position:relative;overflow:auto;white-space:pre}.replay:before{content:"VALIDATED REPLAY";position:absolute;top:10px;right:12px;color:var(--amber-bright);font-size:9px;letter-spacing:.16em}.replay .ok{color:#7AD6A1}.replay .warn{color:#FFD66B}.replay .muted-log{color:#8D9BB3}
.agent-band{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:start;position:relative}.agent-band .lede{color:#DDD8C7}.agent-loop{border-top:1px solid #32415f}.agent-step{display:grid;grid-template-columns:54px 1fr;gap:18px;padding:18px 0;border-bottom:1px dashed #32415f}.agent-step .id{font:600 10px var(--mono);letter-spacing:.13em;color:var(--amber-bright);text-transform:uppercase}.agent-step h4{font-size:19px;margin-bottom:5px}.agent-step p{font-size:14px;line-height:1.55;margin:0}
.severity-split{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--rule);margin:26px 0 36px}.severity-pane{padding:26px}.severity-pane+.severity-pane{border-left:1px solid var(--rule)}.severity-pane .score{font-family:var(--serif);font-size:52px;letter-spacing:-.04em;line-height:1}.severity-pane .label{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.timeline{border-top:1px solid var(--rule);margin-top:24px}.timeline-row{display:grid;grid-template-columns:130px 1fr;gap:24px;padding:15px 0;border-bottom:1px solid var(--rule)}.timeline-row .date{font:600 11px var(--mono);color:var(--amber-deep)}.timeline-row .event{font-size:15px;color:var(--ink-soft)}
.ref-list{counter-reset:refs;list-style:none!important;padding:0!important}.ref-list li{counter-increment:refs;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:10px 0;border-bottom:1px dashed var(--rule)}.ref-list li:before{content:counter(refs,decimal-leading-zero);font:600 10px var(--mono);color:var(--amber-deep);padding-top:4px}
.arch-diagram{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);margin:28px 0 34px;background:var(--card)}
.arch-node{padding:20px;border-right:1px solid var(--rule);position:relative}.arch-node:last-child{border-right:0}.arch-node:not(:last-child):after{content:"→";position:absolute;right:-9px;top:23px;background:var(--paper);padding:0 3px;font-family:var(--mono);color:var(--amber-deep);z-index:2}.arch-node .id{font:600 9px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.arch-node h4{font-size:17px;margin:8px 0 6px}.arch-node p{font-size:13px!important;line-height:1.5!important;margin:0}
@media(max-width:820px){.cve-brief,.agent-band{grid-template-columns:1fr}.proof-grid,.arch-diagram{grid-template-columns:1fr}.proof-cell,.arch-node{border-right:0;border-bottom:1px solid var(--rule)}.arch-node:not(:last-child):after{display:none}.severity-split{grid-template-columns:1fr}.severity-pane+.severity-pane{border-left:0;border-top:1px solid var(--rule)}}

.source-plate pre code, pre.code code{background:transparent!important;border:0!important;padding:0!important;color:inherit!important}

.table-wrap table.data{min-width:640px}
@media(max-width:560px){.source-plate pre,.replay{white-space:pre-wrap!important;overflow-wrap:anywhere;word-break:break-word}.source-plate .cap{align-items:flex-start;flex-direction:column;gap:4px}.replay:before{position:static;display:block;margin-bottom:12px}.table-wrap{-webkit-overflow-scrolling:touch}}

/* Hero: top-align the meta table so it sits beside the headline
   instead of bottom-anchoring under a tall multi-line title. */
.cv-hero{align-items:start}
.cv-hero .meta{margin-top:6px}
@media(max-width:880px){.cv-hero .meta{margin-top:0}}
