/* ─────────────────────────────────────────────────────────────
   Research paper — minimal.
   Black and gray letters. One accent: an orange gradient underline.
   ───────────────────────────────────────────────────────────── */
:root{
  --doc:#ffffff;
  --doc-2:#f7f7f7;
  --doc-3:#ededed;
  --black:#111111;
  --gray-1:#555555;
  --gray-2:#777777;
  --gray-3:#9a9a9a;
  --rule:rgba(17,17,17,.13);
  --rule-soft:rgba(17,17,17,.07);
  --orange:linear-gradient(90deg,#ff8a1f 0%,#ff6a00 55%,#e63c00 100%);
  --measure:66ch;
  --wrap:1140px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:var(--doc)}
body{
  font-family:'IBM Plex Sans',system-ui,sans-serif;font-weight:400;
  font-size:17.5px;line-height:1.65;color:var(--black);background:var(--doc);
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3.5rem)}
.measure{max-width:var(--measure)}
::selection{background:#ff6a00;color:#fff}

/* the one accent: gradient underline */
.uline{position:relative;display:inline-block;padding-bottom:14px}
.uline::after{
  content:'';position:absolute;left:0;bottom:0;width:96px;height:3px;background:var(--orange);
}

.eyebrow{
  display:inline-block;font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.13em;
  color:var(--gray-2);
}
.eyebrow.draft{color:var(--gray-1)}

/* ══ COVER ══ */
.cover{padding:74px 0 48px;border-bottom:1px solid var(--rule)}
.cover-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:56px;align-items:end}
h1{
  font-weight:600;font-size:clamp(38px,5.2vw,64px);line-height:1.05;
  letter-spacing:-.03em;margin:18px 0 0;color:var(--black);max-width:16ch;
  position:relative;padding-bottom:18px;
}
h1::after{content:'';position:absolute;left:0;bottom:0;width:132px;height:4px;background:var(--orange)}
h1 em{font-style:normal;color:var(--gray-2)}
.deck{font-size:clamp(18px,1.8vw,20.5px);line-height:1.5;color:var(--gray-1);margin-top:22px;max-width:46ch}
.byline{
  margin-top:32px;padding-top:16px;border-top:1px solid var(--rule-soft);
  display:flex;flex-wrap:wrap;gap:24px;
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.04em;color:var(--gray-3);
}
.byline b{color:var(--black);font-weight:600}

.cta{
  display:inline-flex;align-items:center;gap:11px;margin-top:26px;
  padding:11px 18px;border-radius:2px;background:var(--black);color:#fff;
  text-decoration:none;font-weight:500;font-size:14px;
  transition:opacity .35s var(--ease),transform .35s var(--ease);
}
.cta:hover{opacity:.85}
.cta:active{transform:scale(.99)}
.cta-ico{display:inline-flex;opacity:.8}

.keyfacts{border-top:2px solid var(--black);padding-top:4px}
.kf{padding:13px 0;border-bottom:1px solid var(--rule-soft)}
.kf:last-child{border-bottom:0}
.kf-n{font-weight:600;font-size:31px;line-height:1;letter-spacing:-.032em;
  color:var(--black);font-variant-numeric:tabular-nums}
.kf-l{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--gray-3);margin-top:7px;line-height:1.45}

/* ══ SECTIONS ══ */
section{padding:50px 0}
.sec-head{display:flex;align-items:baseline;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.sec-num{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--gray-3)}
h2{
  font-weight:600;font-size:clamp(25px,3vw,33px);line-height:1.16;letter-spacing:-.024em;
  max-width:24ch;color:var(--black);position:relative;padding-bottom:12px;
}
h2::after{content:'';position:absolute;left:0;bottom:0;width:64px;height:3px;background:var(--orange)}
h3{font-weight:600;font-size:17px;line-height:1.35;margin:32px 0 10px;letter-spacing:-.012em}
p{margin-bottom:17px;max-width:var(--measure);color:var(--gray-1)}
p.lead{font-size:19.5px;line-height:1.55;color:var(--black)}
strong{font-weight:600;color:var(--black)}
a{color:var(--black);text-decoration:none;border-bottom:1px solid rgba(17,17,17,.3)}

ul,ol{margin:0 0 18px 0;padding-left:0;list-style:none;max-width:var(--measure)}
ul li,ol li{position:relative;padding-left:24px;margin-bottom:9px;color:var(--gray-1)}
ul li::before{content:'';position:absolute;left:2px;top:.74em;width:9px;height:2px;background:var(--orange)}
ol{counter-reset:c}
ol li{counter-increment:c}
ol li::before{content:counter(c,decimal-leading-zero);position:absolute;left:0;top:.14em;
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gray-3)}
li strong{color:var(--black)}

/* ── findings ── */
.findings{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:30px 0 6px;background:var(--rule-soft)}
.finding{background:var(--doc);padding:24px 22px 24px 0}
.finding:nth-child(even){padding-left:22px}
.finding-k{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gray-3)}
.finding h4{font-weight:600;font-size:16.5px;line-height:1.3;letter-spacing:-.014em;
  margin:9px 0 7px;color:var(--black)}
.finding p{font-size:14.5px;line-height:1.55;color:var(--gray-1);margin:0;max-width:none}

/* ── pull quote ── */
.pull{
  margin:42px 0;padding:0 0 16px;position:relative;
  font-weight:500;font-size:clamp(21px,2.4vw,27px);line-height:1.3;
  letter-spacing:-.02em;color:var(--black);max-width:26ch;
}
.pull::after{content:'';position:absolute;left:0;bottom:0;width:88px;height:3px;background:var(--orange)}

/* ── tables ── */
.tbl-shell{margin:26px 0;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14.5px}
caption{caption-side:top;text-align:left;padding:0 0 10px;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--gray-3)}
th{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:10.5px;
  letter-spacing:.07em;text-transform:uppercase;color:var(--gray-2);
  text-align:left;padding:11px 16px 11px 0;border-bottom:1.5px solid var(--black)}
td{padding:11px 16px 11px 0;border-bottom:1px solid var(--rule-soft);
  vertical-align:top;color:var(--gray-1)}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td.num{font-family:'IBM Plex Mono',monospace;font-size:13.5px;color:var(--black)}
.hi td{background:var(--doc-2);color:var(--black)}
.hi td:first-child{font-weight:600;position:relative}
.hi td:first-child::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--orange)}
.hi td:first-child{padding-left:10px}
.hi td.num{font-weight:600}

/* ── bars ──
   One fill for every bar. Length encodes the value; colour does not.
   Emphasis, where a chart has a point to make, is carried by the value
   label going black and bold, never by recolouring the bar. ── */
.bars{margin:26px 0}
.bar-row{display:grid;grid-template-columns:180px 1fr 62px;gap:14px;align-items:center;margin-bottom:9px}
.bar-lab{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.03em;
  color:var(--gray-2);text-align:right}
.bar-track{height:20px;background:var(--doc-3)}
/* flat tone, not the gradient: a gradient inside a variable-width bar makes
   short bars a different hue from long ones, so colour would encode length. */
.bar-fill{height:100%;min-width:2px;background:#ff6a00}
.bar-val{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:13px;
  font-variant-numeric:tabular-nums;color:var(--gray-1)}
.bar-row.key .bar-lab{color:var(--black)}
.bar-row.key .bar-val{color:var(--black);font-weight:600}

/* ── callouts ── */
.note{background:var(--doc-2);padding:20px 22px;margin:26px 0;max-width:var(--measure);position:relative}
.note::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--orange)}
.note p{margin:0;font-size:15.5px;color:var(--gray-1)}
.note p+p{margin-top:11px}
.note strong{color:var(--black)}

.admit{background:var(--doc-2);border:1px solid var(--rule);padding:24px 26px;
  margin:32px 0;max-width:var(--measure);position:relative}
.admit::before{content:'';position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:var(--orange)}
.admit .eyebrow{margin-bottom:12px}
.admit p{margin:0;font-size:15.5px;color:var(--gray-1)}
.admit p+p{margin-top:11px}
.admit strong{color:var(--black)}

.blocked{border:1px dashed var(--rule);padding:22px 24px;margin:26px 0;max-width:var(--measure)}
.blocked p{margin:0;font-size:14.5px;color:var(--gray-1)}
.blocked p+p{margin-top:10px}
.blocked .eyebrow{margin-bottom:11px}

.rule{height:1px;background:var(--rule);margin:18px 0;border:0}

/* ── footer ── */
footer{margin-top:50px;padding:38px 0 58px;border-top:2px solid var(--black);
  font-size:14px;color:var(--gray-1)}
footer h3{margin:0 0 9px;font-family:'IBM Plex Mono',monospace;font-weight:500;
  font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--gray-3)}
footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
footer p{font-size:13.5px;line-height:1.6;max-width:none;color:var(--gray-1)}

@media(max-width:860px){
  .cover{padding:46px 0 34px}
  .cover-grid{grid-template-columns:1fr;gap:32px}
  .findings{grid-template-columns:1fr}
  .finding{padding:20px 0}
  .finding:nth-child(even){padding-left:0}
  .bar-row{grid-template-columns:110px 1fr 52px;gap:9px}
  footer .cols{grid-template-columns:1fr;gap:26px}
}

/* ═══ PRINT ═══ */
@page{size:A4;margin:18mm 17mm 18mm}
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{font-size:9.8pt;line-height:1.5}
  .wrap{max-width:none;padding-inline:0}
  .cover{padding:0 0 8mm;page-break-after:always}
  .cover-grid{grid-template-columns:1fr;gap:9mm}
  .cta{display:none}
  h1{font-size:29pt;max-width:none;padding-bottom:5mm}
  h1::after{width:34mm;height:1.2mm}
  .deck{font-size:11.5pt;max-width:none}
  .kf-n{font-size:19pt}
  section{padding:5mm 0}
  h2{font-size:15.5pt;page-break-after:avoid;padding-bottom:3mm}
  h2::after{width:18mm;height:.9mm}
  h3{font-size:10.5pt;page-break-after:avoid;margin:5mm 0 1.5mm}
  p,li{orphans:3;widows:3}
  p{max-width:none;margin-bottom:2.6mm}
  ul,ol,.measure{max-width:none}
  .findings{grid-template-columns:1fr 1fr;page-break-inside:avoid}
  .finding{padding:3mm 3mm 3mm 0}
  .finding h4{font-size:10.5pt}
  .tbl-shell,.note,.admit,.blocked,.bars{page-break-inside:avoid}
  /* long appendix tables MAY break across pages, but never mid-row,
     and the header repeats on each page */
  table{page-break-inside:auto}
  tr{page-break-inside:avoid;page-break-after:auto}
  thead{display:table-header-group}
  tbody{page-break-inside:auto}
  caption{page-break-after:avoid}
  table{font-size:8.4pt}
  th,td{padding:1.8mm 3mm 1.8mm 0}
  .pull{page-break-inside:avoid;font-size:13.5pt;margin:6mm 0}
  a{color:var(--black);border:0}
  footer{page-break-inside:avoid}
}


/* ── citations ─────────────────────────────────────────────────────────── */
sup.ref{font-family:'IBM Plex Mono',monospace;font-size:.62em;font-weight:500;
  line-height:0;vertical-align:super;color:#c85000;padding-left:1px;white-space:nowrap}
sup.ref a{color:inherit;text-decoration:none}

ol.reflist{list-style:none;counter-reset:ref;padding:0;margin:22px 0 0}
ol.reflist li{counter-increment:ref;position:relative;padding-left:38px;
  margin:0 0 15px;font-size:14.5px;line-height:1.5;color:var(--gray-1)}
ol.reflist li::before{content:counter(ref);position:absolute;left:0;top:1px;
  width:26px;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:12px;
  font-weight:500;color:var(--black)}
ol.reflist li .rt{color:var(--black);font-weight:500}
ol.reflist li .ru{display:block;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  color:var(--gray-2);word-break:break-all;margin-top:2px}
ol.reflist li .rn{display:block;font-size:12.5px;color:var(--gray-2);margin-top:2px;font-style:italic}

.apparatus{border-top:2px solid var(--black);margin-top:40px;padding-top:22px}
.apparatus h3{font-size:13px;text-transform:uppercase;letter-spacing:.09em;
  color:var(--black);margin:20px 0 6px}
.apparatus h3:first-child{margin-top:0}
.apparatus p{font-size:14px;line-height:1.55;color:var(--gray-1);margin:0 0 10px;max-width:none}
.apparatus .cite-box{background:var(--doc-2);border-left:3px solid #ff6a00;
  padding:13px 16px;font-family:'IBM Plex Mono',monospace;font-size:12.5px;
  line-height:1.6;color:var(--black);word-break:break-word}

@media print{
  ol.reflist li{page-break-inside:avoid;font-size:9.5pt;margin-bottom:9px}
  ol.reflist li .ru{font-size:8pt}
  sup.ref{color:#000}
  .apparatus{page-break-inside:auto}
  .apparatus h3{page-break-after:avoid}
  .cite-box{page-break-inside:avoid}
}

/* ── companion papers ── */
.companion-h{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:12px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--gray-2);margin:0 0 8px}
.companion-note{font-size:13.5px;color:var(--gray-2);max-width:62ch;margin:0}
@media print{
  .companion-h,.companion-note{font-size:9pt}
}
