@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');
:root{--ink:#152b3b;--blue:#2a5c9a;--muted:#637586;--line:#dae5ed;--wash:#f0f5f8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:var(--ink);font:16px/1.75 'IBM Plex Sans',system-ui,sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.shell{max-width:1120px;margin:auto;padding:0 32px}.topbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:24px 0}.brand{font-weight:700;color:var(--ink)}.topbar nav{display:flex;gap:26px;font-size:14px}.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);font-weight:600}.hero{padding:72px 0 48px;max-width:820px}h1{font-size:clamp(38px,6vw,66px);line-height:1.12;letter-spacing:-2px;margin:18px 0 24px}h2{font-size:30px;line-height:1.3;letter-spacing:-.6px}h3{font-size:19px;line-height:1.4}.lead{font-size:20px;color:var(--muted);max-width:740px}.meta{font-size:13px;color:var(--muted)}.feature{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 0;gap:42px;align-items:center}.feature h2{font-size:32px;margin:12px 0}.feature p{color:var(--muted)}.diagram{background:var(--wash);padding:44px 28px;min-height:270px;display:flex;flex-direction:column;justify-content:center}.diagram-row{display:flex;align-items:center;gap:12px;justify-content:center}.node{border:1px solid #bfd1df;background:white;padding:18px 14px;text-align:center;flex:1;font-size:14px}.node strong{display:block;color:var(--blue)}.diagram small{display:block;text-align:center;color:var(--muted);margin-top:22px}.badge{display:inline-block;padding:3px 9px;background:var(--wash);font-size:12px;color:var(--muted)}.empty-note{padding:32px 0;color:var(--muted);font-size:14px}.footer{border-top:1px solid var(--line);margin-top:70px;padding:24px 0 40px;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:20px}.notice{padding:13px 18px;background:var(--wash);font-size:13px;margin-top:28px;border-left:3px solid var(--blue)}.article-hero{max-width:900px;padding-bottom:30px}.article-hero h1{font-size:clamp(36px,5.5vw,60px)}.hero-figure{margin:0 0 50px}.hero-figure .diagram{min-height:300px}.hero-figure figcaption{font-size:13px;color:var(--muted);margin-top:10px}.article-layout{display:grid;grid-template-columns:180px minmax(0,720px);gap:55px;align-items:start}.toc{position:sticky;top:28px;font-size:13px}.toc summary{font-weight:600;cursor:pointer}.toc a{display:block;color:var(--muted);padding:6px 0}.article-body section{margin-bottom:52px}.article-body section:first-child h2{margin-top:0}.article-body p{color:#3d4f5c}.takeaway{padding:22px 26px;border-left:3px solid var(--blue);background:var(--wash)}.steps{list-style:none;padding:0;counter-reset:step}.steps li{counter-increment:step;border-top:1px solid var(--line);padding:18px 0 18px 42px;position:relative}.steps li:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;color:var(--blue);font-size:13px}.steps p{margin:6px 0}.article-body details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.article-body summary{cursor:pointer;color:var(--blue)}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:22px}.comparison>div{padding:20px;background:var(--wash)}.comparison h3{margin-top:0}.article-body li{margin-bottom:8px}@media(max-width:760px){.shell{padding:0 22px}.hero{padding-top:42px}.feature{grid-template-columns:1fr;gap:20px}.article-layout{grid-template-columns:1fr;gap:30px}.toc{position:static;border-bottom:1px solid var(--line);padding-bottom:16px}.comparison{grid-template-columns:1fr}.diagram{padding:28px 16px}.node{padding:16px 6px;font-size:12px}.diagram-row{gap:7px}.footer{flex-wrap:wrap}h1{letter-spacing:-1px}.lead{font-size:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Compact, text-first blog index. Article layouts keep their visual format. */
.blog-index{font-size:15px;line-height:1.65;color:#222}
.blog-index .shell{max-width:800px;padding:0 20px}
.blog-index .topbar{padding:30px 0 20px;border-bottom:0}
.blog-index .brand{font-size:24px;color:var(--blue)}
.blog-index main{padding:26px 0 60px}
.blog-index h1{font-size:23px;line-height:1.4;letter-spacing:0;font-weight:500;margin:0 0 18px}
.blog-index .index-note{color:#777;font-size:14px}
.post-list{list-style:none;padding:0;margin:0}
.post-list li{margin:10px 0}
.post-list time{color:#777;font-size:14px;margin-left:8px;white-space:nowrap}
