:root{
    --ink:#15161a;
    --ink-soft:#4a4d57;
    --ink-faint:#7c8090;
    --rule:#e3e2dd;
    --paper:#faf9f6;
    --card:#fff;
    --accent:#1f4b3f;
    --flag:#a8442a;
    --sans:"IBM Plex Sans",system-ui,sans-serif;
    --serif:"Newsreader",Georgia,serif;
    --mono:"IBM Plex Mono",ui-monospace,monospace;
  }
  *{box-sizing:border-box}
  html{-webkit-text-size-adjust:100%}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:var(--sans);font-size:17px;line-height:1.62;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:660px;margin:0 auto;padding:0 24px}
  a{color:var(--accent)}

  /* ---------- masthead ---------- */
  .masthead{border-bottom:1px solid var(--rule);background:var(--card)}
  .masthead .wrap{display:flex;justify-content:space-between;align-items:baseline;
    padding-top:20px;padding-bottom:20px;gap:16px;flex-wrap:wrap}
  .name{font-family:var(--sans);font-weight:600;font-size:16px;letter-spacing:-.01em}
  .role{font-family:var(--mono);font-size:12px;color:var(--ink-faint);
    text-transform:uppercase;letter-spacing:.09em}

  /* ---------- hero ---------- */
  .hero{padding:76px 0 60px;border-bottom:1px solid var(--rule)}
  h1{
    font-family:var(--serif);font-weight:400;font-size:clamp(34px,6vw,50px);
    line-height:1.12;letter-spacing:-.02em;margin:0 0 24px;
  }
  .standfirst{font-size:19px;line-height:1.6;color:var(--ink-soft);margin:0 0 32px;max-width:56ch}
  .standfirst strong{color:var(--ink);font-weight:500}
  .hero-meta{
    font-family:var(--mono);font-size:12.5px;color:var(--ink-faint);
    display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  }
  .hero-meta span:not(:last-child)::after{content:"·";margin-left:10px;color:var(--rule)}

  /* ---------- sections ---------- */
  section{padding:56px 0;border-bottom:1px solid var(--rule)}
  h2{
    font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;
    letter-spacing:.11em;color:var(--ink-faint);margin:0 0 26px;
  }
  h3{font-family:var(--sans);font-size:17px;font-weight:600;margin:0 0 6px;letter-spacing:-.01em}
  p{margin:0 0 18px;max-width:62ch}
  p:last-child{margin-bottom:0}
  .lede{font-family:var(--serif);font-size:22px;line-height:1.5;letter-spacing:-.01em;margin-bottom:22px}

  /* ---------- mechanism callout ---------- */
  .mech{
    border-left:2px solid var(--accent);padding:2px 0 2px 22px;margin:26px 0;
    font-family:var(--serif);font-size:20px;line-height:1.5;
  }

  /* ---------- numbered deliverables ---------- */
  ol.deliver{list-style:none;counter-reset:d;margin:0;padding:0}
  ol.deliver li{
    counter-increment:d;position:relative;padding:0 0 22px 42px;margin:0;
  }
  ol.deliver li::before{
    content:counter(d);position:absolute;left:0;top:1px;
    font-family:var(--mono);font-size:12px;color:var(--ink-faint);
    border:1px solid var(--rule);border-radius:50%;
    width:26px;height:26px;display:grid;place-items:center;background:var(--card);
  }
  ol.deliver li p{font-size:15.5px;color:var(--ink-soft);margin:0}

  /* ---------- how it works ---------- */
  .stage{display:grid;grid-template-columns:96px 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--rule)}
  .stage:first-of-type{border-top:none;padding-top:0}
  .stage-when{font-family:var(--mono);font-size:11.5px;color:var(--flag);
    text-transform:uppercase;letter-spacing:.07em;padding-top:3px;line-height:1.5}
  .stage p{font-size:15.5px;color:var(--ink-soft);margin:0}

  /* ---------- outcome table ---------- */
  table{width:100%;border-collapse:collapse;margin:0;font-size:15.5px}
  td{padding:11px 0;border-bottom:1px solid var(--rule);vertical-align:top}
  td:last-child{text-align:right;white-space:nowrap;padding-left:16px;font-family:var(--mono);font-size:12px}
  tr:last-child td{border-bottom:none}
  .no{color:var(--ink-faint)}
  .yes{color:var(--accent);font-weight:500}

  /* ---------- verdict template ---------- */
  .verdict{
    background:var(--card);border:1px solid var(--rule);border-radius:3px;
    padding:26px 28px;font-family:var(--mono);font-size:13px;line-height:1.5;
  }
  .verdict-head{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--rule);
    font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);
  }
  .vrow{display:grid;grid-template-columns:132px 1fr;gap:14px;padding:7px 0}
  .vlabel{color:var(--ink-faint);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase}
  .vblank{color:var(--rule);letter-spacing:.1em;user-select:none}
  .vrule{border-top:1px solid var(--rule);margin:16px 0}
  .vdecision{display:flex;gap:7px;flex-wrap:wrap}
  .vopt{
    border:1px solid var(--rule);border-radius:2px;padding:3px 9px;
    font-size:11.5px;color:var(--ink-faint);
  }
  .caption{font-size:14.5px;color:var(--ink-faint);margin:16px 0 0;font-style:italic}

  /* ---------- the bet ---------- */
  .bet{background:var(--card);border:1px solid var(--rule);border-radius:3px;padding:28px}
  .bet h3{margin-bottom:10px}
  .bet p{font-size:16px;color:var(--ink-soft)}

  /* ---------- fit ---------- */
  .fit{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  .fit ul{margin:0;padding:0;list-style:none}
  .fit li{font-size:15.5px;color:var(--ink-soft);padding:0 0 9px 18px;position:relative}
  .fit li::before{position:absolute;left:0;top:0;font-family:var(--mono);font-size:13px}
  .fit .for li::before{content:"+";color:var(--accent)}
  .fit .against li::before{content:"\2013";color:var(--ink-faint)}
  .fit h3{font-family:var(--mono);font-size:11.5px;font-weight:500;text-transform:uppercase;
    letter-spacing:.09em;color:var(--ink-faint);margin-bottom:12px}

  /* ---------- price + cta ---------- */
  .price{font-family:var(--serif);font-size:34px;letter-spacing:-.02em;margin:0 0 6px}
  .price-note{font-size:15.5px;color:var(--ink-soft);margin:0 0 26px}
  .cta{
    display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
    font-weight:500;font-size:16px;padding:14px 26px;border-radius:3px;
  }
  .cta:hover{background:#163a30}
  .cta-note{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin:14px 0 0}

  /* ---------- bio ---------- */
  .bio p{font-size:16px;color:var(--ink-soft)}
  .bio-grid{display:grid;grid-template-columns:132px 1fr;gap:28px;align-items:start}
  .portrait{
    aspect-ratio:1;border:1px dashed var(--rule);border-radius:3px;background:var(--card);
    display:grid;place-items:center;font-family:var(--mono);font-size:11px;
    letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
  }
  @media (max-width:620px){
    .bio-grid{grid-template-columns:1fr;gap:20px}
    .portrait{width:110px}
  }

  footer{padding:36px 0 56px}
  footer p{font-family:var(--mono);font-size:12px;color:var(--ink-faint);margin:0}

  /* ---------- review-only banner ---------- */
  .draft{
    background:var(--flag);color:#fff;font-family:var(--mono);font-size:11.5px;
    letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:8px 16px;
  }

  @media (max-width:620px){
    body{font-size:16px}
    .hero{padding:52px 0 44px}
    section{padding:44px 0}
    .fit{grid-template-columns:1fr;gap:26px}
    .stage{grid-template-columns:1fr;gap:6px}
    .lede{font-size:20px}
    .mech{font-size:18px}
  }

/* ---------- navigation ---------- */
.masthead .wrap{align-items:center}
.brand{display:flex;flex-direction:column;gap:1px;text-decoration:none;color:inherit}
nav{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
nav a{
  font-family:var(--sans);font-size:14.5px;text-decoration:none;color:var(--ink-soft);
  padding-bottom:2px;border-bottom:1px solid transparent;
}
nav a:hover{color:var(--ink);border-bottom-color:var(--rule)}
nav a[aria-current="page"]{color:var(--ink);font-weight:500;border-bottom-color:var(--accent)}

/* ---------- homepage offer cards ---------- */
.offers{display:grid;gap:20px}
.offer{
  display:block;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid var(--rule);border-radius:3px;padding:26px 28px;
  transition:border-color .15s ease;
}
.offer:hover{border-color:var(--ink-faint)}
.offer-kicker{
  font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-faint);margin-bottom:10px;
}
.offer h3{font-family:var(--serif);font-weight:400;font-size:23px;letter-spacing:-.015em;margin-bottom:8px}
.offer p{font-size:15.5px;color:var(--ink-soft);margin:0 0 14px}
.offer-meta{font-family:var(--mono);font-size:12px;color:var(--ink-faint)}
.offer-go{font-size:14.5px;color:var(--accent);font-weight:500;margin-top:14px;display:block}

/* ---------- honesty block ---------- */
.honesty{border-left:2px solid var(--flag);padding:2px 0 2px 22px}
.honesty p{font-size:16px;color:var(--ink-soft)}
.honesty strong{color:var(--ink)}

/* ---------- method list ---------- */
.method{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.method li{
  display:grid;grid-template-columns:26px 1fr;gap:14px;
  font-size:15.5px;color:var(--ink-soft);
}
.method .m-num{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);padding-top:3px}

@media (max-width:620px){
  .masthead .wrap{align-items:flex-start}
  nav{gap:16px}
}

/* ---------- contact (boutique: typeset, not a button) ---------- */
.contact{border-top:1px solid var(--rule);padding-top:26px;margin-top:6px}
.capacity{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--flag);margin:0 0 14px;
}
.contact-line{font-family:var(--serif);font-size:23px;line-height:1.45;letter-spacing:-.01em;margin:0 0 10px}
.contact-line a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:1px}
.contact-line a:hover{color:var(--accent)}
.contact-note{font-size:15px;color:var(--ink-faint);margin:0;max-width:52ch}
