
:root{
  --ground:#F7F5EE;
  --surface:#FFFFFF;
  --surface-2:#F1EEE4;
  --ink:#232323;
  --ink-2:#55524B;
  --ink-3:#807C72;
  --rule:#DCD7C9;
  --rule-2:#E9E5DA;
  --blue:#0043FF;
  --red:#DC1C2E;
  --navy:#0C2749;
  --good:#1B6B4A;
  --warn:#9A6206;
  --bad:#B01508;
  --good-bg:#E4F0EA;
  --warn-bg:#F7EEDC;
  --bad-bg:#F9E5E2;
  --c-save:#0043FF;
  --c-cost:#DC1C2E;
  --shadow:0 1px 2px rgba(12,39,73,.06),0 8px 24px rgba(12,39,73,.05);
  --mono:"Montserrat",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0B1B2E;
    --surface:#122740;
    --surface-2:#0F2138;
    --ink:#EDE9DF;
    --ink-2:#B3BDCB;
    --ink-3:#8592A3;
    --rule:#23405F;
    --rule-2:#1B3450;
    --blue:#6C93FF;
    --red:#FF6250;
    --navy:#D8E2F0;
    --good:#6FD3A5;
    --warn:#F0BC62;
    --bad:#FF8B7B;
    --good-bg:#12352A;
    --warn-bg:#3A2D12;
    --bad-bg:#3C1A16;
    --c-save:#4E7DF5;
    --c-cost:#F0503A;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  --ground:#0B1B2E;
  --surface:#122740;
  --surface-2:#0F2138;
  --ink:#EDE9DF;
  --ink-2:#B3BDCB;
  --ink-3:#8592A3;
  --rule:#23405F;
  --rule-2:#1B3450;
  --blue:#6C93FF;
  --red:#FF6250;
  --navy:#D8E2F0;
  --good:#6FD3A5;
  --warn:#F0BC62;
  --bad:#FF8B7B;
  --good-bg:#12352A;
  --warn-bg:#3A2D12;
  --bad-bg:#3C1A16;
  --c-save:#4E7DF5;
  --c-cost:#F0503A;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
}

*{box-sizing:border-box}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:"Montserrat",system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1060px;margin:0 auto;padding-inline:20px;padding-block:0 64px}

/* ---------- masthead ---------- */
.mast{padding-block:40px 28px;border-bottom:3px solid var(--ink)}
.brandbar{display:flex;align-items:center;gap:10px;margin-bottom:26px;flex-wrap:wrap}
.chip{
  font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 9px;border-radius:2px;white-space:nowrap;
}
.chip-red{background:var(--red);color:#fff}
.chip-blue{background:var(--blue);color:#fff}
.chip-draft{background:transparent;color:var(--ink-3);border:1px dashed var(--rule)}
h1{
  font-size:clamp(2.1rem,6vw,3.6rem);line-height:1.02;margin:0 0 14px;
  font-weight:800;letter-spacing:-.028em;text-wrap:balance;
}
.dek{
  font-family:"Source Serif 4",Georgia,serif;font-size:clamp(1.05rem,2.4vw,1.3rem);
  color:var(--ink-2);margin:0;max-width:62ch;line-height:1.5;
}
.meta{
  display:flex;gap:26px;flex-wrap:wrap;margin-top:26px;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
}
.meta b{display:block;color:var(--ink);font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;margin-top:3px}

/* ---------- thesis ---------- */
.thesis{
  margin-top:40px;background:var(--surface);border-left:5px solid var(--red);
  padding:26px 28px;box-shadow:var(--shadow);
}
.thesis .kicker{
  font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red);margin-bottom:12px;
}
.thesis h2{font-size:clamp(1.3rem,3.2vw,1.75rem);margin:0 0 14px;font-weight:700;letter-spacing:-.018em;text-wrap:balance}
.thesis p{font-family:"Source Serif 4",Georgia,serif;font-size:1.04rem;color:var(--ink-2);margin:0 0 12px;max-width:68ch}
.thesis p:last-child{margin-bottom:0}
.thesis strong{color:var(--ink);font-weight:600}

/* ---------- stages ---------- */
.stage{margin-top:64px}
.stage-head{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:8px}
.stage-num{
  font-size:12px;font-weight:800;letter-spacing:.1em;color:var(--blue);
  font-variant-numeric:tabular-nums;flex:none;
}
.stage-head h2{font-size:clamp(1.4rem,3.6vw,2rem);margin:0;font-weight:700;letter-spacing:-.02em}
.stage-sub{font-family:"Source Serif 4",Georgia,serif;color:var(--ink-2);font-size:1.02rem;margin:14px 0 26px;max-width:68ch}

h3{font-size:1.02rem;font-weight:700;letter-spacing:-.005em;margin:36px 0 12px}
h3:first-of-type{margin-top:26px}
.lede{font-family:"Source Serif 4",Georgia,serif;color:var(--ink-2);max-width:68ch}

/* ---------- tables ---------- */
.tscroll{overflow-x:auto;margin:16px 0 8px;border:1px solid var(--rule);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--rule-2);vertical-align:top}
thead th{
  background:var(--surface-2);font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-2);font-weight:700;white-space:nowrap;border-bottom:2px solid var(--rule);
}
tbody tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.name{font-weight:600;white-space:nowrap}
.sub{display:block;font-size:11px;color:var(--ink-3);font-weight:500;margin-top:2px}
.pill{
  display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;
  padding:3px 7px;border-radius:2px;white-space:nowrap;text-transform:uppercase;
}
.p-good{background:var(--good-bg);color:var(--good)}
.p-warn{background:var(--warn-bg);color:var(--warn)}
.p-bad{background:var(--bad-bg);color:var(--bad)}
.p-new{background:#e6ecff;color:#0043FF}
.src{font-size:11px;color:var(--ink-3);margin:6px 0 0;line-height:1.5}

/* ---------- stat row ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:20px 0}
.stat{background:var(--surface);padding:18px 16px}
.stat .n{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.stat .l{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-top:8px;line-height:1.4}
.stat.alert .n{color:var(--red)}

/* ---------- axis cards ---------- */
.axis{border-top:1px solid var(--rule);padding-top:22px;margin-top:30px}
.axis-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.axis-h h3{margin:0;font-size:1.12rem}
.axis-tag{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.axis p{font-family:"Source Serif 4",Georgia,serif;color:var(--ink-2);max-width:68ch;margin:0 0 12px}
.axis .ask{
  background:var(--surface-2);border-left:3px solid var(--blue);padding:12px 16px;margin-top:14px;
  font-size:.94rem;font-family:"Montserrat",sans-serif;color:var(--ink);max-width:68ch;
}
.axis .ask b{font-weight:700;display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:5px}

/* ---------- questions ---------- */
ol.q{counter-reset:q;list-style:none;padding:0;margin:18px 0 0;display:grid;gap:2px}
ol.q li{
  counter-increment:q;background:var(--surface);padding:14px 16px 14px 48px;position:relative;
  font-family:"Source Serif 4",Georgia,serif;color:var(--ink-2);border:1px solid var(--rule);
}
ol.q li::before{
  content:counter(q,decimal-leading-zero);position:absolute;left:16px;top:15px;
  font-family:"Montserrat",sans-serif;font-size:11px;font-weight:800;color:var(--blue);
  font-variant-numeric:tabular-nums;
}
ol.q li b{font-family:"Montserrat",sans-serif;font-weight:600;color:var(--ink);display:block;font-size:.95rem;margin-bottom:3px}

ul.plain{list-style:none;padding:0;margin:14px 0;display:grid;gap:9px}
ul.plain li{padding-left:18px;position:relative;font-family:"Source Serif 4",Georgia,serif;color:var(--ink-2);max-width:68ch}
ul.plain li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:2px;background:var(--blue)}

.note{font-size:12.5px;color:var(--ink-3);border-left:2px solid var(--rule);padding-left:14px;margin:16px 0;max-width:66ch;line-height:1.6}

/* ---------- diverging bar chart ---------- */
.chart{margin:22px 0 8px;padding:20px 18px;background:var(--surface);border:1px solid var(--rule)}
.chart-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:baseline;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--rule-2)}
.chart-title{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.chart-legend{display:flex;gap:16px;flex-wrap:wrap}
.lg{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.04em;color:var(--ink-2);font-weight:600}
.sw{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}
.sw-save{background:var(--c-save)}
.sw-cost{background:var(--c-cost)}
.bars{display:grid;gap:2px}
.brow{display:grid;grid-template-columns:minmax(150px,1.15fr) minmax(120px,2fr) 92px;gap:12px;align-items:center;padding:9px 6px;transition:background .12s}
.brow:hover,.brow:focus-within{background:var(--surface-2)}
.blab{font-size:12px;font-weight:600;line-height:1.35}
.blab em{font-style:italic;font-weight:500;color:var(--ink-2)}
.bsub{display:block;font-size:10px;color:var(--ink-3);font-weight:500;margin-top:2px;line-height:1.35}
.btrack{display:grid;grid-template-columns:1fr 1fr;min-width:0;border-left:0}
.bhalf{height:24px;position:relative;min-width:0;align-items:center}
.bhalf.l{border-right:2px solid var(--ink);display:flex;justify-content:flex-end}
.bhalf.r{display:flex;justify-content:flex-start;margin-left:-1px}
.bar{display:block;height:16px;min-width:4px;border-radius:2px}
.bhalf.l .bar{border-top-right-radius:0;border-bottom-right-radius:0}
.bhalf.r .bar{border-top-left-radius:0;border-bottom-left-radius:0}
.bar.save{background:var(--c-save)}
.bar.cost{background:var(--c-cost)}
.bval{font-size:12.5px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.bval.save{color:var(--c-save)}
.bval.cost{color:var(--c-cost)}
.net{margin-top:18px;padding-top:16px;border-top:2px solid var(--ink);display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}
.net-n{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;color:var(--c-save);font-variant-numeric:tabular-nums;line-height:1}
.net-l{font-size:12px;color:var(--ink-2);max-width:52ch;line-height:1.5;flex:1 1 260px}
@media (max-width:620px){
  .brow{grid-template-columns:1fr 84px;grid-template-areas:"lab val" "trk trk";gap:6px 10px}
  .blab{grid-area:lab}.bval{grid-area:val}.btrack{grid-area:trk}
}

/* ---------- footer ---------- */
.foot{margin-top:72px;border-top:3px solid var(--ink);padding-top:24px}
.sig{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start}
.sig .who{font-weight:700;font-size:1.05rem}
.sig .who span{display:block;font-weight:500;font-size:12.5px;color:var(--ink-2);margin-top:4px;letter-spacing:.02em}
.sig .contact{font-size:12.5px;color:var(--ink-2);text-align:right;line-height:1.7}
.sig .contact a{color:var(--blue);text-decoration:none}
.sig .contact a:hover{text-decoration:underline}
.legal{margin-top:22px;font-size:10.5px;line-height:1.7;color:var(--ink-3);max-width:78ch}
.legal a{color:var(--ink-3)}
a:focus-visible,li:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media (max-width:560px){
  .sig .contact{text-align:left}
  .stat .n{font-size:1.6rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
