.blog-banner{position:relative;z-index:5;margin:0;padding:.7rem var(--gutter);padding-top:calc(.7rem + 92px);background:var(--ink-3);color:var(--text);border-bottom:1px solid var(--line);font-size:.78rem;letter-spacing:.04em}.blog-banner+section,.blog-banner+.post>section:first-child{padding-top:clamp(3rem,6vw,5rem)!important}.page-body main>.post:first-child>section:first-child{padding-top:clamp(8rem,14vw,11rem)}.page-body main>.post>section{padding:var(--section-pad) var(--gutter)}.blog-hero .page-hero__title{max-width:900px}.blog-cats{margin-top:2rem}.blog-cats ul{list-style:none}.blog-cats a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem;color:var(--text-muted);transition:border-color .2s ease,color .2s ease}.blog-cats a:hover{color:var(--text);border-color:var(--text-muted)}.blog-cats a[aria-current=page]{color:var(--ink-text);background:var(--bone);border-color:var(--bone)}.blog-cats .ptags{gap:.5rem}.blog-list{padding-top:0!important}.post-cards{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.post-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--ink-2);transition:border-color .2s ease,transform .25s cubic-bezier(.16,1,.3,1)}.post-card:hover{border-color:var(--text-muted);transform:translateY(-2px)}.post-card:focus-within{border-color:var(--charge)}.post-card:has(.post-card__title a:focus-visible){outline:2px solid var(--charge);outline-offset:3px;border-color:var(--charge)}.post-card__img{width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;background:var(--ink-3)}.post-card__img--none{display:grid;place-items:end start;padding:1.2rem;color:var(--text-muted);font-size:.75rem;background:linear-gradient(135deg,var(--ink-3),var(--ink-2))}.post-card__body{display:flex;flex-direction:column;gap:.7rem;padding:1.4rem;flex:1}.post-card__cat,.post-card__meta{color:var(--text-muted);font-size:.75rem}.post-card__meta{margin-top:auto}.post-card__title{font-family:var(--font-display);font-weight:700;font-size:1.35rem;line-height:1.2}.post-card__title a:after{content:"";position:absolute;inset:0}.post-card__title a:focus-visible{outline:none}@supports not selector(:has(*)){.post-card__title a:focus-visible{outline:2px solid var(--charge);outline-offset:3px}}.post-card__excerpt{color:var(--text-muted);font-size:.98rem}.blog-pager{margin-top:3rem}.blog-pager ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.blog-pager a,.blog-pager [aria-current]{display:inline-flex;align-items:center;min-width:44px;min-height:44px;justify-content:center;padding:0 .9rem;border:1px solid var(--line);border-radius:999px}.blog-pager a:hover{border-color:var(--text-muted)}.blog-pager [aria-current]{background:var(--bone);color:var(--ink-text);border-color:var(--bone)}.post-head__title{font-size:clamp(2.3rem,5.6vw,4.6rem);line-height:1.04}.post-head .page-hero__eyebrow a{text-decoration:underline;text-underline-offset:3px}.post-meta{display:flex;flex-wrap:wrap;gap:.35rem .6rem;margin-top:1.8rem;color:var(--text-muted);font-size:.8rem}.post-tags{margin-top:1.2rem;font-size:.75rem}.post-hero{margin-top:clamp(2rem,5vw,3.5rem);max-width:1200px}.post-hero img{width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:16px;border:1px solid var(--line)}.post-main{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;padding-top:0!important}@media(min-width:1100px){.post-main:has(.post-toc){grid-template-columns:260px minmax(0,720px);justify-content:start;column-gap:clamp(3rem,6vw,6rem)}.post-toc{position:sticky;top:6.5rem;align-self:start}}.post-toc{border:1px solid var(--line);border-radius:16px;padding:1.3rem 1.4rem;max-width:720px}.post-toc__title{color:var(--text-muted);font-size:.75rem;margin-bottom:.8rem}.post-toc ol{list-style:none;counter-reset:toc;display:flex;flex-direction:column;gap:.55rem}.post-toc li{counter-increment:toc;display:grid;grid-template-columns:2rem 1fr;font-size:.95rem;line-height:1.35}.post-toc li:before{content:counter(toc,decimal-leading-zero);font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);padding-top:.1rem}.post-toc a{color:var(--text-muted)}.post-toc a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}.post-body{max-width:720px;font-size:1.1rem;line-height:1.7;color:var(--text)}.post-body>*+*{margin-top:1.2rem}.post-body h2{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.12;letter-spacing:-.01em;margin-top:3.2rem;scroll-margin-top:6rem}.post-body h3{font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.2;margin-top:2.2rem;scroll-margin-top:6rem}.post-body h4{font-weight:700;margin-top:1.8rem}.post-body p,.post-body li{color:#f1f0e8db}.post-body strong{color:var(--text);font-weight:700}.post-body em{font-style:italic}.post-body a:not(.btn){color:var(--text);text-decoration:underline;text-decoration-color:var(--text-muted);text-underline-offset:3px;overflow-wrap:anywhere}.post-body a:not(.btn):hover{text-decoration-color:var(--charge)}.post-body ul,.post-body ol{padding-left:1.4rem;display:flex;flex-direction:column;gap:.5rem}.post-body ul{list-style:disc}.post-body ol{list-style:decimal}.post-body li::marker{color:var(--text-muted)}.post-body li:has(>.post-task){list-style:none;position:relative}.post-task{position:absolute;left:-1.5rem;top:.4em;width:.95rem;height:.95rem;border:1px solid var(--text-muted);border-radius:3px}.post-task--done:after{content:"";position:absolute;inset:3px;background:var(--text-muted);border-radius:1px}.post-body hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}.post-body blockquote{border-left:2px solid var(--text-muted);padding-left:1.2rem;color:var(--text-muted)}.post-body code{font-family:var(--font-mono);font-size:.88em;background:var(--ink-3);padding:.1em .35em;border-radius:4px}.post-body pre{background:var(--ink-3);padding:1rem;border-radius:12px;overflow-x:auto}.post-body pre code{background:none;padding:0}.post-figure img{width:100%;height:auto;border-radius:12px}.post-figure figcaption{margin-top:.6rem;font-size:.85rem;color:var(--text-muted)}.post-table{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:linear-gradient(to right,var(--ink),rgba(10,11,9,0)) left center / 3rem 100% no-repeat local,linear-gradient(to left,var(--ink),rgba(10,11,9,0)) right center / 3rem 100% no-repeat local,linear-gradient(to right,#f1f0e833,#f1f0e800) left center / 1.5rem 100% no-repeat scroll,linear-gradient(to left,#f1f0e833,#f1f0e800) right center / 1.5rem 100% no-repeat scroll,var(--ink);scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.post-table:focus-visible{outline-offset:2px}.post-table table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}.post-table th,.post-table td{text-align:left;vertical-align:top;padding:.75rem .9rem;border-bottom:1px solid var(--line)}.post-table th{font-family:var(--font-mono);font-weight:500;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.post-table tr:last-child td{border-bottom:0}.post-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;margin:2.5rem 0!important;padding:1.4rem 1.5rem;border:1px solid var(--line);border-radius:16px;background:var(--ink-2)}.post-cta__text{font-family:var(--font-display);font-weight:700;font-size:1.25rem;line-height:1.25;color:var(--text)!important;max-width:420px}.post-related .post-cards{margin-top:0}@media(max-width:960px){.post-cards{grid-template-columns:1fr 1fr}}@media(max-width:640px){.post-cards{grid-template-columns:1fr}.post-body{font-size:1.04rem}.post-cta .btn{width:100%;justify-content:center}}.post-card__badge{align-self:flex-start;font-size:.7rem;color:var(--ink-text);background:var(--bone);border-radius:999px;padding:.2rem .6rem}
