/* Blog pages. Loaded after d.css. No inline styles anywhere (CSP). */
.post,.blog-index{max-width:740px;padding-top:clamp(36px,6vw,80px);padding-bottom:24px}
.crumbs{font:400 13px/1.4 var(--mono);color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--text)}
.post-h1,.blog-h1{margin-top:16px;font-weight:650;font-size:clamp(2rem,1.2rem + 3vw,3.1rem);line-height:1.1;letter-spacing:-.03em;text-wrap:balance}
.post-lede,.blog-lede{margin-top:20px;color:var(--muted);font-size:clamp(1.08rem,1rem + .35vw,1.25rem);line-height:1.55}
.post-meta{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px 18px;font:400 13px/1.4 var(--mono);color:var(--muted)}
.langs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;font:500 13px/1 var(--mono)}
.langs a,.langs span{border:1px solid var(--line);border-radius:48px;padding:6px 11px;text-decoration:none;color:var(--muted)}
.langs span{color:var(--text);border-color:var(--muted)}
.langs a:hover{color:var(--text);border-color:var(--muted)}
.post-body{margin-top:36px;font-size:17px;line-height:1.7}
.post-body>*+*{margin-top:16px}
.post-body h2{margin-top:48px;font-weight:650;font-size:1.45rem;line-height:1.25;letter-spacing:-.015em}
.post-body h3{margin-top:32px;font-weight:650;font-size:1.15rem;line-height:1.3}
.post-body ul{list-style:disc;padding-left:1.3em}
.post-body ol{padding-left:1.5em}
.post-body li{margin-top:8px}
.post-body li::marker{color:var(--muted)}
.post-body a{color:var(--text);text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.post-body a:hover{color:var(--accent)}
.post-body strong{font-weight:650}
.post-body blockquote{margin:24px 0 0;padding:4px 0 4px 18px;border-left:2px solid var(--accent);color:var(--muted)}
.post-body code{font:400 .9em/1 var(--mono);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.post-body table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45;display:block;overflow-x:auto}
.post-body th,.post-body td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line)}
.post-body th{font:500 13px/1.3 var(--mono);color:var(--muted)}
.post-body .sources{font-size:14px;line-height:1.5;color:var(--muted);padding-left:1.4em}
.post-body .sources a{color:var(--muted)}
.post-cta{margin-top:56px;padding:28px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.post-cta h2{font-weight:650;font-size:1.3rem;line-height:1.25;letter-spacing:-.015em}
.post-cta p{margin-top:10px;color:var(--muted)}
.post-cta .btn{margin-top:20px}
.more{margin-top:56px}
.more h2{font:500 13px/1 var(--mono);color:var(--muted);letter-spacing:.02em}
.posts{margin-top:28px;border-top:1px solid var(--line)}
.posts li{border-bottom:1px solid var(--line)}
.posts a{display:block;padding:24px 0;text-decoration:none}
.posts a:hover h2,.posts a:hover h3{color:var(--accent)}
.posts h2,.posts h3{font-weight:650;font-size:1.3rem;line-height:1.25;letter-spacing:-.015em;transition:color .15s}
.posts p{margin-top:8px;color:var(--muted)}
.posts small{display:block;margin-top:10px;font:400 13px/1.4 var(--mono);color:var(--muted)}
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
.nav{display:flex}
@media (max-width:859px){.nav{gap:18px}}
@media (max-width:520px){.top .btn-sm{display:none}.post-cta{padding:22px}}
