:root{
  --bg:#fcfcfb; --surface:#f4f2ed; --fg:#1a1917; --fg2:#4a4741; --muted:#7a7670;
  --rule:#e3dfd7; --rule2:#d2ccc1;
  --m1:#1668c4; --m2:#c2620d; --m3:#8a3f9e;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#1a1a19; --surface:#232220; --fg:#efedea; --fg2:#c3bfb8; --muted:#918c84;
    --rule:#302e2b; --rule2:#403d39;
    --m1:#4a86d8; --m2:#cc7f33; --m3:#a86bc7;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0; background:var(--bg); color:var(--fg); font:17px/1.6 var(--sans);
     -webkit-font-smoothing:antialiased}
.wrap{max-width:940px; margin:0 auto; padding:0 24px}
.narrow{max-width:660px}
a{color:inherit; text-decoration-color:var(--m2); text-underline-offset:3px}

/* nav */
nav{border-bottom:1px solid var(--rule); position:sticky; top:0; background:var(--bg); z-index:20}
nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px;
          padding-top:16px; padding-bottom:16px; flex-wrap:wrap}
.brand{font-size:.82rem; letter-spacing:.09em; text-transform:uppercase; color:var(--fg);
       font-weight:700; text-decoration:none}
.links{display:flex; gap:20px; font-size:.92rem}
.links a{text-decoration:none; color:var(--fg2)}
.links a:hover,.links a[aria-current]{color:var(--fg); text-decoration:underline}

/* hero + sections */
.hero{padding:72px 0 78px; border-bottom:1px solid var(--rule)}
.hero h1{font-family:var(--serif); font-weight:400; font-size:clamp(2rem,5.4vw,3.3rem);
         line-height:1.12; letter-spacing:-.015em; margin:0 0 26px; max-width:16em}
.hero h1 em{font-style:italic; color:var(--m2)}
.hero p{font-size:1.1rem; color:var(--fg2); margin:0 0 16px; max-width:34em}
section{padding:68px 0; border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:0}
.eyebrow{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
         font-weight:700; margin:0 0 14px}
h2{font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,3.3vw,2.05rem);
   line-height:1.2; letter-spacing:-.01em; margin:0 0 20px; max-width:20em}
h3{font-size:1.05rem; margin:0 0 8px; font-weight:650}
p{margin:0 0 18px}
.lede{font-size:1.05rem; color:var(--fg2); max-width:36em}

/* buttons */
.btn{display:inline-block; padding:13px 22px; font-size:1rem; font-weight:650; cursor:pointer;
     color:var(--bg); background:var(--fg); border:0; border-radius:7px; text-decoration:none;
     font-family:inherit}
.btn:hover{background:var(--m1)}
.btn.ghost{background:transparent; color:var(--fg); border:1px solid var(--rule2)}
.btn.ghost:hover{border-color:var(--m1); color:var(--m1)}
.btnrow{display:flex; gap:12px; flex-wrap:wrap; margin-top:28px}

/* method cards */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:34px}
@media (max-width:820px){ .cards{grid-template-columns:1fr} }
.card{background:var(--surface); border:1px solid var(--rule); border-radius:10px;
      padding:26px 24px 24px; position:relative; overflow:hidden}
.card::before{content:""; position:absolute; inset:0 0 auto 0; height:3px; background:var(--c)}
.card .num{font-family:var(--serif); font-size:2.1rem; line-height:1; color:var(--c);
           display:block; margin-bottom:12px}
.card h3{margin-bottom:4px}
.target{font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; font-weight:700;
        color:var(--c); margin:0 0 16px}
.card p{font-size:.95rem; color:var(--fg2); margin:0 0 14px}
.card dl{margin:0; font-size:.9rem; border-top:1px solid var(--rule2); padding-top:14px}
.card dt{font-weight:650; color:var(--fg); margin-bottom:2px}
.card dd{margin:0 0 10px; color:var(--muted)}
.card dd:last-child{margin-bottom:0}
.flag{display:inline-block; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
      font-weight:700; color:var(--bg); background:var(--c); padding:3px 8px; border-radius:20px;
      margin-bottom:12px}

/* long-form method blocks */
.method{padding:56px 0; border-bottom:1px solid var(--rule)}
.method .num{font-family:var(--serif); font-size:3rem; line-height:1; color:var(--c); display:block;
             margin-bottom:8px}
.method h2{margin-bottom:6px}
.method .target{font-size:.85rem; margin-bottom:26px}
.phase{border-left:3px solid var(--c); padding:2px 0 2px 18px; margin:0 0 22px}
.phase strong{display:block; font-weight:650; margin-bottom:2px}
.phase span{color:var(--fg2); font-size:.97rem}
.verdict{background:var(--surface); border-radius:8px; padding:20px 22px; margin-top:26px;
         font-size:.97rem}
.verdict dt{font-weight:700; margin-bottom:2px}
.verdict dd{margin:0 0 14px; color:var(--fg2)}
.verdict dd:last-child{margin-bottom:0}

/* tables + notes */
.tablewrap{overflow-x:auto; -webkit-overflow-scrolling:touch; margin:26px 0 0}
table{border-collapse:collapse; width:100%; font-size:.94rem; min-width:520px}
th,td{text-align:left; padding:11px 16px 11px 0; border-bottom:1px solid var(--rule); vertical-align:top}
th{font-weight:700; white-space:nowrap; color:var(--muted); font-size:.8rem;
   letter-spacing:.06em; text-transform:uppercase}
td:first-child,td:nth-child(2){white-space:nowrap; font-variant-numeric:tabular-nums}
.note{background:var(--surface); border-left:3px solid var(--m2); padding:20px 22px; margin:30px 0 0;
      font-size:.96rem; border-radius:0 8px 8px 0}
.note p:last-child{margin-bottom:0}

/* contents list */
.toc{margin:26px 0 0; padding:0; list-style:none; font-size:.98rem}
.toc li{padding:12px 0; border-bottom:1px solid var(--rule); display:flex; gap:16px}
.toc li b{font-variant-numeric:tabular-nums; color:var(--muted); font-weight:650; flex:0 0 2.2em}
.toc li span{color:var(--fg2)}

/* signup */
form.signup{margin:24px 0 10px; display:flex; gap:10px; flex-wrap:wrap; max-width:480px}
input[type=email]{flex:1 1 220px; min-width:0; padding:13px 15px; font-size:1rem; font-family:inherit;
  color:var(--fg); background:var(--bg); border:1px solid var(--rule2); border-radius:7px}
input[type=email]:focus{outline:2px solid var(--m1); outline-offset:1px; border-color:transparent}
.website-field{position:absolute!important; width:1px!important; height:1px!important; padding:0!important;
  margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important;
  white-space:nowrap!important; border:0!important}
.fineprint{color:var(--muted); font-size:.88rem; margin-top:4px}

/* quiz */
.q{border-bottom:1px solid var(--rule); padding:30px 0}
.q:first-of-type{border-top:1px solid var(--rule)}
.q h3{font-family:var(--serif); font-weight:400; font-size:1.4rem; margin-bottom:16px}
.opts{display:grid; gap:10px}
.opt{display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border:1px solid var(--rule2);
     border-radius:8px; cursor:pointer; background:var(--bg)}
.opt:hover{border-color:var(--m1)}
.opt input{margin:4px 0 0; accent-color:var(--m1); flex:0 0 auto}
.opt span{font-size:.98rem}
.opt small{display:block; color:var(--muted); font-size:.86rem; margin-top:2px}
#result{display:none; margin-top:40px; padding:30px; border-radius:10px; background:var(--surface);
        border:1px solid var(--rule); border-top:3px solid var(--c,var(--m2))}
#result.on{display:block}
#result h2{margin-bottom:6px}
#result .target{font-size:.85rem}

footer{padding:44px 0 60px; color:var(--muted); font-size:.92rem; border-top:1px solid var(--rule)}
footer p{margin:0 0 10px; max-width:40em}
