.blog{--prose-w:46rem;padding-bottom:clamp(56px,8vw,96px)}.crumbs ol{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.82rem;color:var(--ink-3)}.crumbs li{display:inline-flex;gap:8px;min-width:0}.crumbs li+li:before{content:"/";color:var(--line-strong)}.crumbs a{color:var(--ink-2);text-decoration:none;transition:color .2s ease-in-out}.crumbs a:hover{color:var(--ink)}.post .crumbs li[aria-current]{display:none}.blog-hero{padding-block:clamp(44px,7vw,88px) clamp(28px,4vw,44px)}.blog-hero h1{white-space:normal;font-size:clamp(2.1rem,5vw,3.3rem);line-height:1.06;max-width:22ch;margin-top:12px}.h1-page{color:var(--ink-3);font-weight:600}.blog-hero .lede{margin-top:18px}.feed-links{margin-top:16px;font-size:.85rem;color:var(--ink-3)}.feed-links a{color:var(--ink-2)}.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.post-card{border-bottom:1px solid var(--line)}.post-card article{display:grid;grid-gap:8px;gap:8px;padding-block:26px}.post-card-title{font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.25;max-width:40ch}.post-card-title a{text-decoration:none}.post-card-title a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.post-card-desc{color:var(--ink-2);max-width:var(--measure)}.post-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.84rem;color:var(--ink-3)}.post-meta a{color:var(--ink-2);text-decoration:none;transition:color .2s ease-in-out}.post-meta a:hover{color:var(--ink)}.empty{color:var(--ink-3);padding-block:24px}.pager{align-items:center;justify-content:space-between;gap:12px;margin-top:32px}.pager,.pager-pages{display:flex;flex-wrap:wrap}.pager-pages{list-style:none;margin:0;padding:0;gap:4px;font-size:.88rem}.pager-pages a,.pager-pages span{display:inline-grid;place-items:center;min-width:36px;height:36px;padding-inline:8px;border-radius:var(--r);text-decoration:none;color:var(--ink-2);transition:background .2s ease-in-out}.pager-pages a:hover{background:var(--surface-2)}.pager-pages [aria-current]{color:var(--ink);font-weight:600;border:1px solid var(--line-strong)}.post-head{padding-block:clamp(40px,6vw,72px) clamp(26px,4vw,36px);max-width:var(--prose-w)}.post-head .eyebrow a{text-decoration:none}.post-title{white-space:normal;font-size:clamp(2rem,4.6vw,3.05rem);line-height:1.08;margin-top:12px}.post-head .lede{margin-top:18px}.post-head .post-meta{margin-top:22px}.draft-banner{margin-bottom:18px;padding:8px 12px;border:1px dashed var(--warn);border-radius:var(--r);color:var(--warn);font-size:.85rem}.post-cover{margin:0 0 clamp(32px,5vw,52px);max-width:var(--prose-w);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}.post-cover img{width:100%;height:auto}.post-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:32px;gap:32px}.toc{max-width:var(--prose-w);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:16px 18px;font-size:.9rem}.toc-title{font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px}.toc ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:7px;gap:7px}.toc ol ol{margin-top:7px;padding-left:14px;border-left:1px solid var(--line)}.toc a{color:var(--ink-2);text-decoration:none;line-height:1.4;display:inline-block;transition:color .2s ease-in-out}.toc a:hover{color:var(--ink)}@media (min-width:1080px){.post-layout{grid-template-columns:minmax(0,var(--prose-w)) 15rem;justify-content:space-between;gap:64px}.toc{grid-column:2;grid-row:1;align-self:start;position:-webkit-sticky;position:sticky;top:94px;max-height:calc(100vh - 120px);overflow-y:auto;background:none;border:0;border-left:1px solid var(--line);border-radius:0;padding:2px 0 2px 20px}.prose{grid-column:1;grid-row:1}}.prose{max-width:var(--prose-w);min-width:0;font-size:1.07rem;line-height:1.72;overflow-wrap:break-word}.prose>*+*{margin-top:1.15em}.prose h2{font-size:clamp(1.45rem,2.6vw,1.8rem);line-height:1.2;margin-top:2.2em}.prose h3{font-size:1.2rem;line-height:1.3;margin-top:1.8em}.prose h4{font-size:1.02rem;margin-top:1.6em}.prose :is(h2,h3,h4)+*{margin-top:.6em}.prose :is(h2,h3,h4){scroll-margin-top:88px}.h-anchor{color:inherit;text-decoration:none}.h-anchor:after{content:"#";margin-left:.35em;font-weight:400;color:var(--ink-3);opacity:0;transition:opacity .2s ease-in-out}.h-anchor:focus-visible:after,.h-anchor:hover:after{opacity:1}.prose a:not(.h-anchor){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:-webkit-text-decoration-color .2s ease-in-out;transition:text-decoration-color .2s ease-in-out;transition:text-decoration-color .2s ease-in-out,-webkit-text-decoration-color .2s ease-in-out}.prose a:not(.h-anchor):hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.prose strong{font-weight:600}.prose :is(ul,ol){padding-left:1.35em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--ink-3)}.prose blockquote{margin-inline:0;padding:2px 0 2px 20px;border-left:2px solid var(--ink);color:var(--ink-2)}.prose blockquote+blockquote{margin-top:.8em}.prose :not(pre)>code{font-size:.86em;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:.05em .35em}.prose :not(pre)>code,.prose pre.codeblock{font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace}.prose pre.codeblock{font-size:.84rem;line-height:1.65;white-space:pre}.prose pre code{font:inherit}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.4em}.prose figure{margin-inline:0}.prose figure img{border:1px solid var(--line);border-radius:var(--r)}.prose figcaption{margin-top:10px;font-size:.86rem;color:var(--ink-3)}.prose .table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg)}.prose table{width:100%;min-width:34rem;border-collapse:collapse;font-size:.93rem;line-height:1.5}.prose th{text-align:left;font-weight:600;font-size:.86rem;background:var(--surface);vertical-align:bottom}.prose td,.prose th{padding:11px 14px;border-bottom:1px solid var(--line)}.prose td{color:var(--ink-2);vertical-align:top}.prose tbody tr:last-child td{border-bottom:0}.prose td:first-child{color:var(--ink);font-weight:500}.post-foot{max-width:var(--prose-w);margin-top:clamp(44px,6vw,64px);display:grid;grid-gap:28px;gap:28px}.post-tags{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding-top:24px;border-top:1px solid var(--line)}.author-label,.post-tags-label{font-size:.72rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.tag-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tag-list a{display:inline-block;padding:4px 10px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:.82rem;color:var(--ink-2);text-decoration:none;transition:border-color .2s ease-in-out,color .2s ease-in-out}.tag-list a:hover{color:var(--ink);border-color:var(--ink-3)}.author-box{display:grid;grid-gap:6px;gap:6px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-lg)}.author-name{font-weight:600;font-size:1.05rem}.author-name a{text-decoration:none}.author-bio{color:var(--ink-2);font-size:.93rem}.post-cta{display:grid;grid-gap:12px;gap:12px;justify-items:start;padding:clamp(22px,4vw,32px);border:1px solid var(--ink);border-radius:var(--r-lg)}.post-cta h2{font-size:clamp(1.3rem,2.4vw,1.6rem);line-height:1.2}.post-cta p{color:var(--ink-2);max-width:var(--measure)}.post-cta .btn{margin-top:6px}.post-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.post-nav>*{background:var(--ground)}.post-nav a{display:grid;grid-gap:4px;gap:4px;align-content:start;padding:16px 18px;text-decoration:none;transition:background .2s ease-in-out}.post-nav a:hover{background:var(--surface)}.post-nav-newer{text-align:right}.post-nav-label{font-size:.75rem;color:var(--ink-3)}.post-nav-title{font-weight:500;font-size:.95rem;line-height:1.35}@media (max-width:620px){.post-nav{grid-template-columns:1fr}.post-nav-newer{text-align:left}.post-nav-empty{display:none}}.related{margin-top:clamp(56px,8vw,88px);padding-top:clamp(36px,5vw,56px);border-top:1px solid var(--line)}.related h2{font-size:clamp(1.3rem,2.4vw,1.6rem);margin-bottom:18px}.related .post-card-title{font-size:1.12rem}