/* ============================================================
   Negative-Sum Game — Design System
   Direction: Old Money / institutional fintech (BlackRock-light)
   Base ivory · ink · single oxblood accent · serif display
   negativesumgame.net
   ============================================================ */

:root{
  /* --- surfaces --- */
  --paper:#F7F5F0;      /* ivory base */
  --paper2:#FBFAF6;     /* raised paper */

  /* --- ink --- */
  --ink:#14161A;        /* near-black text / primary */
  --ink2:#3A3E45;       /* secondary ink */
  --mut:#6B6E75;        /* warm muted */

  /* --- lines --- */
  --line:#E2DDD1;       /* hairline */
  --line2:#D2CCBD;      /* stronger hairline */

  /* --- accents (used under a strict budget) --- */
  --ox:#7A1F2B;         /* oxblood — primary accent */
  --ox-soft:#8f3742;
  --gold:#8C7238;       /* bronze — tiny marks only (e.g. "conditional") */

  /* --- type --- */
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* --- rhythm --- */
  --wrap:1080px;
  --pad:40px;
}

*{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:15px;line-height:1.7;font-weight:400}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}

/* ---------- nav ---------- */
nav{border-bottom:1px solid var(--line);background:var(--paper)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{font-family:var(--serif);font-weight:560;font-size:20px;letter-spacing:.01em}
.brand .dim{color:var(--mut);font-weight:340;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;margin-left:10px;font-family:var(--sans)}
.links{display:flex;align-items:center;gap:30px}
.links a{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink2)}
.links a:hover{color:var(--ox)}
.lang{display:flex;gap:12px;border-left:1px solid var(--line2);padding-left:22px}
.lang a{font-size:11.5px;letter-spacing:.08em;color:var(--mut)}
.lang a.on{color:var(--ink);font-weight:600}

/* ---------- display type ---------- */
h1{font-family:var(--serif);font-weight:420;font-size:58px;line-height:1.06;
  letter-spacing:-.015em;margin:0 0 26px;max-width:15ch}
.eyebrow{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ox);
  margin:0 0 26px;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--ox)}

/* ---------- hero ---------- */
.hero{padding:86px 0 40px}
.hero .lede{font-size:18px;line-height:1.65;color:var(--ink2);max-width:60ch;margin:0 0 34px;font-weight:400}
.actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}

/* ---------- buttons / links ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.04em;
  padding:13px 26px;border:1px solid var(--ink);color:var(--ink);transition:.18s;cursor:pointer;background:none}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.ox{border-color:var(--ox);color:var(--ox)}
.btn.ox:hover{background:var(--ox);color:var(--paper)}
.link-arrow{font-size:13px;letter-spacing:.04em;color:var(--ink2);
  border-bottom:1px solid var(--line2);padding-bottom:3px}
.link-arrow:hover{color:var(--ox);border-color:var(--ox)}

/* ---------- methodology / stat strip ---------- */
.method{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:34px 0;margin:56px 0 0}
.method .wrap{display:grid;grid-template-columns:200px 1fr;gap:40px}
.method .label{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.method .label b{display:block;font-family:var(--serif);font-size:34px;font-weight:420;
  color:var(--ink);letter-spacing:0;margin-top:8px;text-transform:none}
.method p{margin:0;color:var(--ink2);max-width:66ch;font-size:15px}
.method code{font-family:var(--sans);font-weight:600;color:var(--ink);background:none;
  padding:0;font-size:14px;white-space:nowrap}

/* ---------- section headers ---------- */
.sec{padding:74px 0 0}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1px solid var(--line2);padding-bottom:16px;margin-bottom:0}
.sec-head h2{font-family:var(--serif);font-weight:420;font-size:30px;letter-spacing:-.01em;margin:0}
.sec-head .note{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.sec-intro{color:var(--ink2);max-width:70ch;margin:22px 0 30px;font-size:15px}
.sec-intro b{color:var(--ink);font-weight:600}

/* ---------- ledger (institutional data table) ---------- */
.ledger{width:100%;border-collapse:collapse}
.ledger a.row{display:grid;grid-template-columns:1.35fr 1.5fr 150px;gap:34px;
  align-items:baseline;padding:22px 4px;border-bottom:1px solid var(--line);transition:.16s}
.ledger a.row:hover{background:var(--paper2)}
.ledger a.row:hover .ttl{color:var(--ox)}
.ttl{font-family:var(--serif);font-size:19px;font-weight:420;line-height:1.25;letter-spacing:-.005em;
  transition:.16s;display:flex;flex-direction:column;gap:5px}
.ttl .idx{font-family:var(--sans);font-size:11px;letter-spacing:.16em;color:var(--mut);font-weight:500}
.thesis{color:var(--mut);font-size:13.5px;line-height:1.55}
.metric{text-align:left}
.metric .fig{font-size:13.5px;color:var(--ink2);line-height:1.5;font-variant-numeric:tabular-nums}

/* ---------- status marks ---------- */
.status{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mut);white-space:nowrap;margin-top:7px}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ox);opacity:.7}
.status.cond::before{background:var(--gold)}
.status.live::before{background:var(--ink)}

.priv{color:var(--mut);font-size:13px;margin:26px 0 0;padding-left:4px;font-style:italic;font-family:var(--serif)}

/* ---------- offer block ---------- */
.offer{background:var(--paper2);border-top:1px solid var(--line2);margin-top:78px;padding:70px 0}
.offer h2{font-family:var(--serif);font-weight:420;font-size:30px;letter-spacing:-.01em;margin:0 0 10px}
.offer > .wrap > p{color:var(--ink2);max-width:70ch;margin:0 0 32px}
.offer dl{display:grid;grid-template-columns:210px 1fr;gap:0;margin:0 0 34px;border-top:1px solid var(--line)}
.offer dt{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);
  padding:18px 0;border-bottom:1px solid var(--line)}
.offer dd{margin:0;padding:18px 0;border-bottom:1px solid var(--line);color:var(--ink2)}
.offer .fine{font-size:12.5px;color:var(--mut);margin:14px 0 0}

/* ============================================================
   REPORT — /research/<slug>/ (de Prado validation report)
   ============================================================ */
.report{padding:34px 0 0}
.breadcrumb{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin:0 0 40px}
.breadcrumb a:hover{color:var(--ox)}

.report-head{border-bottom:1px solid var(--line2);padding-bottom:34px;margin-bottom:0}
.report-head .kicker{display:flex;align-items:center;gap:16px;font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin:0 0 24px}
.report-head .kicker .status{margin:0}
.report h1{font-size:46px;max-width:20ch;margin:0 0 20px}
.report .thesis-lede{font-family:var(--serif);font-weight:340;font-size:22px;line-height:1.4;
  color:var(--ink2);max-width:34ch;margin:0}

/* key-metric callout */
.callout{border-bottom:1px solid var(--line);padding:30px 0}
.callout .cap{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ox);margin:0 0 12px}
.callout p{margin:0;font-family:var(--serif);font-size:23px;line-height:1.4;font-weight:340;
  color:var(--ink);max-width:60ch;font-variant-numeric:tabular-nums}

/* scorecard summary */
.scorecard{display:grid;grid-template-columns:180px 1fr;gap:40px;
  border-bottom:1px solid var(--line);padding:32px 0}
.scorecard .score{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.scorecard .score b{display:block;font-family:var(--serif);font-size:40px;font-weight:420;
  color:var(--ink);letter-spacing:0;margin-top:6px;text-transform:none}
.scorecard .score .verdict{display:block;margin-top:6px;font-size:11px;letter-spacing:.14em;color:var(--ox)}
.tests{display:flex;flex-wrap:wrap;gap:10px 26px;align-self:center}
.tests span{font-size:12px;letter-spacing:.06em;color:var(--ink2);display:inline-flex;align-items:center;gap:9px}
.tests span::before{content:"✗";color:var(--ox);font-size:12px;width:12px;text-align:center}
.tests span.ok::before{content:"✓";color:var(--gold)}

/* pilot vs full comparison table */
.compare{width:100%;border-collapse:collapse;margin:0}
.compare caption{text-align:left;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mut);padding:32px 0 16px}
.compare th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mut);padding:0 20px 14px 0;border-bottom:1px solid var(--line2)}
.compare th.pilot,.compare th.full{text-align:right;width:190px}
.compare td{padding:15px 20px 15px 0;border-bottom:1px solid var(--line);font-size:14px;
  font-variant-numeric:tabular-nums}
.compare td.metric{color:var(--mut)}
.compare td.pilot,.compare td.full{text-align:right;font-family:var(--serif);font-size:19px}
.compare td.pilot{color:var(--ink2)}
.compare td.full{color:var(--ink)}
.compare tr.flip td.full{color:var(--ox)}

/* spec — de Prado breakdown (definition list, institutional) */
.spec{display:grid;grid-template-columns:220px 1fr;gap:0;margin:52px 0 0;border-top:1px solid var(--line2)}
.spec dt{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);
  padding:20px 24px 20px 0;border-bottom:1px solid var(--line)}
.spec dd{margin:0;padding:20px 0;border-bottom:1px solid var(--line);color:var(--ink2);font-size:14.5px;line-height:1.65}
.spec dd.verdict{color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.5}
.spec dd code{font-family:"SF Mono",Menlo,Consolas,monospace;font-size:12.5px;color:var(--ink);
  background:var(--paper2);border:1px solid var(--line);border-radius:3px;padding:1px 6px}

.report-cta{margin:56px 0 0;padding-top:28px;border-top:1px solid var(--line2);
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.report-cta p{margin:0;color:var(--ink2);font-size:15px}

/* WIP placeholders — content fields awaiting real numbers */
.spec dd.ph,.callout p.ph{color:var(--mut);font-style:italic}
.spec dd.ph::before{content:"— ";}
.tests.ph-tests span{color:var(--mut)}
.tests.ph-tests span::before{content:"·";color:var(--mut)}
.scorecard .score b.ph{color:var(--mut)}
.scorecard .score .verdict.ph{color:var(--mut);font-style:normal}

/* language stub page */
.stub{min-height:60vh;display:flex;flex-direction:column;justify-content:center;padding:80px 0}
.stub h1{font-size:40px;margin:0 0 14px}
.stub p{color:var(--ink2);max-width:52ch;margin:0 0 26px}

@media(max-width:820px){
  .report h1{font-size:34px}
  .report .thesis-lede{font-size:19px}
  .scorecard{grid-template-columns:1fr;gap:20px}
  .compare th.pilot,.compare th.full,.compare td.pilot,.compare td.full{width:auto}
  .spec{grid-template-columns:1fr;gap:0}
  .spec dt{padding-bottom:2px;border-bottom:none}
  .spec dd{padding-top:4px}
}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:34px 0 60px;margin-top:0}
footer .wrap{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:14px}
footer .fb{font-family:var(--serif);font-size:15px}
footer .fm{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}

/* ---------- responsive ---------- */
@media(max-width:820px){
  :root{--pad:22px}
  nav .wrap{height:62px}
  .links a:not(.on):not([class*=lang]){display:none}
  .links{gap:0}
  h1{font-size:38px}
  .hero{padding:52px 0 30px}
  .method .wrap{grid-template-columns:1fr;gap:18px}
  .method .label b{font-size:30px}
  .ledger a.row{grid-template-columns:1fr;gap:8px;padding:20px 2px}
  .metric{order:3}
  .sec-head h2,.offer h2{font-size:24px}
  .offer dl{grid-template-columns:1fr;gap:0}
  .offer dt{padding-bottom:2px;border-bottom:none}
  .offer dd{padding-top:4px}
}
