:root{
  --paper:#F4F1EA; --paper2:#EFEADF; --card:#FFFFFF; --ink:#231F1A; --ink2:#39342D;
  --secondary:#7C7568; --faint:#AAA294; --hairline:#E6E0D3; --accent:#C1623B; --accent2:#A94E2C;
  --sky:#E0E9F2; --sage:#E2ECDD; --lav:#EDE8F5; --butter:#F5ECD5; --peach:#F3E2D5;
  --shadow:0 2px 10px rgba(40,30,20,.05); --shadow-lg:0 30px 70px -30px rgba(40,30,20,.3);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink2);font-family:Inter,system-ui,sans-serif;line-height:1.7;
  font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.serif{font-family:Fraunces,Georgia,serif}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}

/* nav */
nav{position:sticky;top:0;z-index:50;background:rgba(244,241,234,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--hairline)}
nav .in{max-width:760px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:14px}
nav .brand{display:flex;align-items:center;gap:9px;font-family:Fraunces;font-weight:600;font-size:18px;color:var(--ink)}
nav .brand svg path{fill:none;stroke:var(--ink);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
nav .cta{margin-left:auto;background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:999px}
nav .cta:hover{text-decoration:none;opacity:.92}

/* article */
.article{max-width:720px;margin:0 auto;padding:46px 24px 24px}
.crumb{font-size:13px;color:var(--faint);margin-bottom:18px}
.crumb a{color:var(--secondary)}
.kicker{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
h1{font-family:Fraunces;font-weight:600;font-size:clamp(30px,5vw,44px);line-height:1.08;letter-spacing:-.015em;color:var(--ink);margin:10px 0 14px}
.meta{font-size:13.5px;color:var(--faint);margin-bottom:30px}
.lead{font-size:19px;color:var(--ink);margin-bottom:26px;line-height:1.6}
.article h2{font-family:Fraunces;font-weight:600;font-size:25px;color:var(--ink);margin:38px 0 12px;letter-spacing:-.01em}
.article h3{font-family:Fraunces;font-weight:600;font-size:19px;color:var(--ink);margin:28px 0 8px}
.article p{margin:0 0 18px}
.article ul,.article ol{margin:0 0 20px 4px;padding-left:22px}
.article li{margin:0 0 9px}
.article strong{color:var(--ink);font-weight:600}
.steps{counter-reset:s;list-style:none;padding-left:0}
.steps li{counter-increment:s;position:relative;padding-left:42px;margin-bottom:16px}
.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:28px;height:28px;border-radius:50%;
  background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:Inter}
code{font-family:'JetBrains Mono',monospace;font-size:.86em;background:var(--paper2);border:1px solid var(--hairline);border-radius:6px;padding:2px 7px;color:var(--ink)}
pre{background:var(--ink);color:#EDE7DA;border-radius:12px;padding:16px 18px;overflow-x:auto;margin:0 0 22px;font-size:14px;line-height:1.7;box-shadow:var(--shadow)}
pre code{background:none;border:0;padding:0;color:inherit;font-size:14px}
pre .c{color:#8E867A}
blockquote{border-left:3px solid var(--accent);background:var(--card);border-radius:0 10px 10px 0;padding:14px 20px;margin:0 0 22px;font-size:16px;color:var(--ink2);box-shadow:var(--shadow)}

/* the Mainspring callout — the conversion block */
.ms{margin:30px 0;background:var(--card);border:1px solid var(--hairline);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.ms::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0,rgba(193,98,59,.07),transparent 55%);pointer-events:none}
.ms .h{display:flex;align-items:center;gap:10px;font-family:Fraunces;font-weight:600;font-size:18px;color:var(--ink);margin-bottom:6px}
.ms .h svg path{fill:none;stroke:var(--accent);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.ms p{font-size:15px;color:var(--ink2);margin-bottom:14px}
.ms .b{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);font-weight:600;font-size:14px;padding:10px 18px;border-radius:999px}
.ms .b:hover{text-decoration:none;opacity:.93}
.ms .note{font-size:12.5px;color:var(--faint);margin:10px 0 0}

/* related */
.related{max-width:720px;margin:0 auto;padding:8px 24px 30px}
.related h2{font-family:Fraunces;font-weight:600;font-size:20px;color:var(--ink);margin-bottom:14px}
.related .g{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.related .g{grid-template-columns:1fr}}
.related a{display:block;background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;color:var(--ink);font-weight:500;font-size:14.5px;box-shadow:var(--shadow)}
.related a:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-2px);transition:.15s}

footer{border-top:1px solid var(--hairline);margin-top:20px;padding:30px 24px;color:var(--faint);font-size:13px;text-align:center}
footer a{color:var(--secondary)}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
