:root{
  --ink:#24468C;
  --ink-2:#1B3468;
  --parchment:#F7F8FA;
  --parchment-2:#E9ECF2;
  --parchment-3:#DBE0EA;
  --brass:#8E44AD;
  --brass-light:#C9A3E8;
  --moss:#E8A93C;
  --moss-dim:#A9B7D6;
  --rust:#C0392B;
  --ink-text:#F7F8FA;
  --paper-text:#22304A;
  --paper-text-dim:#5C6B85;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--ink-text);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brass); color:var(--ink);}
.wrap{max-width:900px; margin:0 auto; padding:0 28px;}

.sitenav{
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
  padding:24px 0; border-bottom:1px solid rgba(247,248,250,0.15);
}
.sitenav .brand{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Fraunces', serif; font-weight:600; font-size:22px;
  color:var(--ink-text); text-decoration:none; margin-right:auto;
  letter-spacing:-0.01em;
}
.sitenav .brand .mark{width:26px; height:26px; flex-shrink:0;}
.sitenav .brand .now{color:var(--brass-light);}
.sitenav .brand:hover .now{color:var(--moss);}
.sitenav a{
  color:var(--moss-dim); text-decoration:none; font-size:14px;
}
.sitenav a:hover{color:var(--brass-light);}
.sitenav a.here{color:var(--brass-light);}

header.pagehead{padding:52px 0 12px;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  letter-spacing:0.14em; text-transform:uppercase;
  color:var(--brass-light); margin:0 0 16px;
}
h1.display{
  font-family:'Fraunces', serif; font-weight:600;
  font-size:clamp(34px, 5vw, 52px); line-height:1.05;
  letter-spacing:-0.01em; margin:0 0 18px; max-width:720px;
}
.lede{
  font-size:17px; line-height:1.6; color:var(--moss-dim);
  max-width:620px; margin:0 0 20px;
}

section.on-paper{
  background:var(--parchment); color:var(--paper-text);
  border-radius:18px; margin:36px 0; padding:44px;
}
@media (max-width:640px){
  section.on-paper{padding:26px 20px; border-radius:14px;}
}
section.on-paper h2{
  font-family:'Fraunces', serif; font-weight:600; font-size:24px;
  margin:34px 0 10px; letter-spacing:-0.01em;
}
section.on-paper h2:first-child{margin-top:0;}
section.on-paper h3{
  font-family:'Inter', sans-serif; font-weight:600; font-size:16px;
  margin:24px 0 8px;
}
section.on-paper p, section.on-paper li{
  font-size:15px; line-height:1.7; color:var(--paper-text);
}
section.on-paper p{margin:0 0 14px;}
section.on-paper ul{margin:0 0 16px; padding-left:22px;}
section.on-paper li{margin-bottom:7px;}
section.on-paper a{color:var(--brass); text-decoration:underline;}
.updated{
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  color:var(--paper-text-dim); margin-bottom:26px;
  padding-bottom:16px; border-bottom:1px solid var(--parchment-3);
}
.callout{
  background:#FFFFFF; border:1px solid var(--parchment-3);
  border-radius:12px; padding:18px 20px; margin:0 0 18px;
}
.callout p:last-child{margin-bottom:0;}
.btn{
  display:inline-block; font-family:'IBM Plex Mono', monospace;
  font-size:13px; padding:12px 22px; background:var(--ink);
  color:var(--parchment); border:none; border-radius:8px;
  cursor:pointer; text-decoration:none;
}
.btn:hover{background:var(--ink-2);}

footer.sitefoot{
  padding:34px 0 60px; color:var(--moss-dim);
  font-size:12.5px; line-height:1.7;
  border-top:1px solid rgba(247,248,250,0.15); margin-top:20px;
}
footer.sitefoot a{color:var(--brass-light);}
footer.sitefoot .footlinks{margin-bottom:12px;}
footer.sitefoot .footlinks a{margin-right:18px;}

/* ---------- Article styles ---------- */
.article-meta{
  font-family:'IBM Plex Mono', monospace; font-size:12px;
  color:var(--paper-text-dim); margin-bottom:26px;
  padding-bottom:16px; border-bottom:1px solid var(--parchment-3);
}
.keytake{
  background:#FFFFFF; border:1px solid var(--parchment-3);
  border-left:4px solid var(--brass); border-radius:0 12px 12px 0;
  padding:18px 22px; margin:0 0 26px;
}
.keytake h3{margin:0 0 10px; font-size:14px; text-transform:uppercase; letter-spacing:0.06em; color:var(--brass);}
.keytake ul{margin:0; padding-left:20px;}
.keytake li{margin-bottom:6px; font-size:14.5px;}
.datatable{
  width:100%; border-collapse:collapse; margin:0 0 20px;
  font-family:'IBM Plex Mono', monospace; font-size:13.5px;
}
.datatable th{
  background:var(--ink); color:var(--parchment); text-align:right;
  padding:10px 14px; font-weight:500; font-size:11.5px;
  text-transform:uppercase; letter-spacing:0.05em;
}
.datatable th:first-child{text-align:left;}
.datatable td{padding:9px 14px; text-align:right; border-bottom:1px solid var(--parchment-3);}
.datatable td:first-child{text-align:left; font-weight:600;}
.datatable tr:nth-child(even){background:#FFFFFF;}
.trycalc{
  background:var(--ink); color:var(--parchment);
  border-radius:12px; padding:24px 26px; margin:28px 0;
}
.trycalc h3{margin:0 0 8px; font-family:'Fraunces',serif; font-size:19px; color:var(--parchment);}
.trycalc p{margin:0 0 16px; font-size:14.5px; color:var(--moss-dim);}
.trycalc .btn{background:var(--brass); color:#FFFFFF;}
.trycalc .btn:hover{background:var(--brass-light); color:var(--ink);}
.artcard{
  display:block; background:#FFFFFF; border:1px solid var(--parchment-3);
  border-radius:12px; padding:18px 20px; margin-bottom:14px;
  text-decoration:none !important; color:var(--paper-text);
}
.artcard:hover{border-color:var(--brass);}
.artcard h3{margin:0 0 6px; font-size:16px; color:var(--paper-text);}
.artcard p{margin:0; font-size:14px; color:var(--paper-text-dim); line-height:1.6;}

/* ---------- ad slots ---------- */
.adslot{
  margin:22px 0; padding:14px; text-align:center;
  background:rgba(247,248,250,0.05); border:1px dashed rgba(247,248,250,0.18);
  border-radius:12px; min-height:100px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.adslot .adlabel{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.1em;
  text-transform:uppercase; color:#7386B0; margin-bottom:6px;
}
.adslot ins{display:block; width:100%;}
section.on-paper .adslot{
  background:#FFFFFF; border:1px dashed var(--parchment-3);
}
section.on-paper .adslot .adlabel{color:var(--paper-text-dim);}

/* ---------- affiliate ---------- */
.broker-block{margin-top:26px; padding-top:22px; border-top:1px solid var(--parchment-3);}
.broker-block h3{font-family:'Fraunces',serif; font-size:18px; margin:0 0 4px;}
.broker-block .disclosure{font-size:12px; color:var(--paper-text-dim); margin:0 0 16px; line-height:1.6;}
.broker-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px;}
.broker-card{
  display:block; background:#FFFFFF; border:1px solid var(--parchment-3);
  border-radius:12px; padding:16px 18px; text-decoration:none !important; color:var(--paper-text);
}
.broker-card:hover{border-color:var(--brass); box-shadow:0 2px 10px rgba(142,68,173,0.10);}
.broker-card .bname{font-weight:700; font-size:15px; margin-bottom:4px;}
.broker-card .bdesc{font-size:12.5px; color:var(--paper-text-dim); line-height:1.5; margin-bottom:10px;}
.broker-card .bcta{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--brass); font-weight:600;}
