.blog{padding-bottom:var(--section-gap)}.blog-head{padding-block:var(--space-2xl) var(--space-xl)}.blog-head__title{max-width:15em;margin-top:var(--space-s);font-size:var(--step-5);letter-spacing:-.02em;line-height:.95}.blog-head__lead{max-width:34em;margin-top:var(--space-l);font-size:var(--step-1);line-height:1.5}.blog-head__lead>*+*{margin-top:var(--space-s)}.blog-search{max-width:34rem;margin-bottom:var(--space-xl)}.topic-nav{margin-bottom:var(--space-xl)}.topic-nav__list{gap:var(--space-2xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.topic-nav__link{min-height:44px;padding-inline:var(--space-s);border:1px solid var(--color-border-input);border-radius:var(--radius-s);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--step--1);align-items:center;text-decoration:none;display:inline-flex}.topic-nav__link:hover{border-color:var(--color-accent);color:var(--color-accent-strong)}.topic-nav__link[aria-current=page]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.post-list{padding:0;list-style:none}.post-list>li{border-top:1px solid var(--color-line)}.post-list>li:last-child{border-bottom:1px solid var(--color-line)}.post-item{gap:var(--space-xs);padding-block:var(--space-l);display:grid;position:relative}@media (width>=54em){.post-list:not(.post-list--grid) .post-item{column-gap:var(--space-xl);grid-template-columns:13rem minmax(0,1fr)}.post-list:not(.post-list--grid) .post-item>:not(.post-item__meta){grid-column:2}.post-list:not(.post-list--grid) .post-item__meta{flex-direction:column;grid-row:1/span 3;align-content:start;padding-top:.6em}.post-list:not(.post-list--grid) .post-item__meta>[aria-hidden=true]{display:none}}.post-item__meta{flex-wrap:wrap;gap:0 .5em;display:flex}.post-item__title{max-width:24em;font-family:var(--font-display);font-size:var(--step-3);font-weight:400;line-height:1.1}.post-item__link{color:var(--color-ink);text-decoration:none}.post-item__link:after{content:"";position:absolute;inset:0}.post-item__link:focus-visible{outline:none}.post-item:has(.post-item__link:focus-visible){outline:2px solid var(--color-accent);outline-offset:4px;border-radius:var(--radius-s)}@media (hover:hover) and (pointer:fine){.post-item:hover .post-item__link{text-underline-offset:.15em;text-decoration:underline;text-decoration-thickness:1px}}.post-item__excerpt{max-width:40em;color:var(--color-ink-muted)}.post-item__tech{gap:var(--space-3xs) var(--space-s);margin-top:var(--space-3xs);flex-wrap:wrap;padding:0;list-style:none;display:flex}.post-item__tech li{align-items:center;gap:.4em;display:inline-flex}.post-item__logo{object-fit:contain;flex:none;block-size:1rem;inline-size:1rem}.post-list--grid{gap:0 var(--space-l);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.post-list--grid>li,.post-list--grid>li:last-child{border-top-color:var(--color-ink);border-bottom:0}.post-list--grid .post-item{padding-block:var(--space-m) 0;align-content:start}.post-list--grid .post-item__title{font-size:var(--step-2);line-height:1.15}.post-empty{padding-block:var(--space-xl);border-top:1px solid var(--color-line)}.post-empty>*+*{margin-top:var(--space-s)}.pagination{padding-block:var(--space-xl) 0}.pagination .nav-links{justify-content:flex-start;gap:var(--space-2xs)}.pagination .page-numbers{min-width:44px;min-height:44px;padding-inline:var(--space-xs);border:1px solid var(--color-line);border-radius:var(--radius-s);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--step--1);justify-content:center;align-items:center;gap:.4em;text-decoration:none;display:inline-flex}.pagination a.page-numbers:hover{border-color:var(--color-accent);color:var(--color-accent-strong)}.pagination .page-numbers.current{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.pagination .page-numbers.dots{border-color:#0000}.article{padding-bottom:0}.article__head{padding-top:var(--space-l)}.article__title{margin-top:var(--space-xl);font-size:var(--step-5);letter-spacing:-.02em;line-height:.98}.article__lead{margin-top:var(--space-l);font-size:var(--step-1);line-height:1.5}.article__meta{gap:0 var(--space-s);margin-top:var(--space-l);flex-wrap:wrap;display:flex}.article__cover{margin-top:var(--space-xl)}.article__cover img{border-radius:var(--radius-m);width:100%;height:auto}.article>.entry-content>:first-child{margin-top:var(--space-xl)}.article .prose{font-size:var(--step-0)}.article .prose .alignwide,.article .prose .alignfull{margin-block:2.5em}.article .prose .alignfull img{border-radius:0}.prose .code-block{border-radius:var(--radius-m);background:var(--color-ink);overflow:hidden}.code-block__bar{justify-content:space-between;align-items:center;gap:var(--space-s);min-height:2.75rem;padding:var(--space-3xs) var(--space-3xs) var(--space-3xs) var(--space-m);border-bottom:1px solid var(--color-line-on-ink);color:var(--color-on-ink-muted);font-family:var(--font-mono);font-size:var(--step--1);display:flex}.code-block__lang:empty{display:none}.prose .code-block pre{white-space:pre;border-radius:0;margin:0;overflow-x:auto}.code-block pre:focus-visible{outline:2px solid var(--color-accent-on-ink);outline-offset:-2px}.code-block__copy{min-height:36px;padding-inline:var(--space-xs);border:1px solid var(--color-line-on-ink);border-radius:var(--radius-s);color:var(--color-on-ink-muted);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:.4em;margin-left:auto;display:inline-flex}.code-block__copy:hover{border-color:var(--color-on-ink-muted);color:var(--color-paper)}.code-block__copy:focus-visible{outline:2px solid var(--color-accent-on-ink);outline-offset:2px}.code-block__copy.is-copied{color:var(--color-paper)}.article__footer{gap:var(--space-xl);margin-top:var(--space-2xl);padding-top:var(--space-l);border-top:1px solid var(--color-line);display:grid}.article__tech .tag-list{margin-top:var(--space-xs)}.author-box{align-items:flex-start;gap:var(--space-m);display:flex}.author-box__photo{object-fit:cover;border-radius:50%;flex:none;block-size:4rem;inline-size:4rem}.author-box__name{margin-top:var(--space-3xs);font-family:var(--font-display);font-size:var(--step-2);line-height:1.15}.author-box__text{margin-top:var(--space-3xs);color:var(--color-ink-muted)}.author-box__link{margin-top:var(--space-2xs)}.hub-hero__title{flex-wrap:wrap;align-items:center;gap:.25em;display:flex}.hub-hero__logo{object-fit:contain;flex:none;block-size:.8em;inline-size:.8em}.hub-hero__lead>*+*{margin-top:var(--space-s)}.hub-hero__count{margin-top:var(--space-m)}