.blog{--b-text: var(--gray-200);--b-heading: var(--gray-100);--b-muted: var(--gray-300);--b-border: var(--gray-800);--b-surface: var(--gray-900);--b-bg: var(--gray-999);--b-link: var(--link-color);--b-accent: var(--accent-regular);--b-column: 46rem;--b-wide: 72rem;width:100%;padding:0 1rem 5rem;color:var(--b-text)}@media(min-width:50em){.blog{padding-inline:2rem}}.blog-column{width:100%;max-width:var(--b-column);margin-inline:auto}.blog-wide{max-width:var(--b-wide);margin-inline:auto}.blog a{color:var(--b-link);text-underline-offset:.2em;text-decoration-thickness:1px}.blog a:hover{text-decoration-thickness:2px}.blog :focus-visible{outline:2px solid var(--b-link);outline-offset:3px;border-radius:4px}.eyebrow{font-family:var(--font-brand);font-size:var(--text-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--b-link)}.breadcrumb{display:flex;flex-wrap:wrap;gap:.5rem;font-size:var(--text-sm);color:var(--b-muted)}.blog .breadcrumb a{color:var(--b-muted);text-decoration:none}.blog .breadcrumb a:hover{color:var(--b-link);text-decoration:underline}.section-title{font-size:var(--text-xl);margin:3.5rem 0 1.25rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}.chip{display:inline-block;padding:.3rem .8rem;border:1px solid var(--b-border);border-radius:999rem;background:var(--b-surface);font-size:var(--text-sm);line-height:1.4}.blog a.chip{position:relative;z-index:1;color:var(--b-text);text-decoration:none;transition:border-color var(--theme-transition),color var(--theme-transition)}.blog a.chip:hover{border-color:var(--b-link);color:var(--b-heading)}.chip--ghost{background:transparent}.chip--static{color:var(--b-muted)}.search-empty{padding:2rem 0;color:var(--b-muted)}.blog-hero{display:flex;flex-direction:column;gap:1rem;padding-bottom:2.5rem}.blog-hero__title{max-width:22ch;font-size:clamp(2.25rem,6vw,3.5rem);line-height:1.1;color:var(--b-heading)}.blog-hero__intro{max-width:40rem;font-size:var(--text-lg);line-height:1.6;color:var(--b-muted)}.blog-hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:.5rem}.search{flex:1 1 18rem;max-width:26rem}.search input{width:100%;padding:.75rem 1rem;border:1px solid var(--b-border);border-radius:.75rem;background:var(--b-bg);color:var(--b-heading);font:inherit}.search input::placeholder{color:var(--b-muted);opacity:1}.search input:focus-visible{outline:2px solid var(--b-link);outline-offset:2px}.blog .feed-link{font-size:var(--text-sm)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1.25rem}.post-card{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;border:1px solid var(--b-border);border-radius:1rem;background:var(--b-bg);transition:border-color var(--theme-transition),transform var(--theme-transition)}.post-card:hover{border-color:var(--b-link)}@media(prefers-reduced-motion:no-preference){.post-card:hover{transform:translateY(-2px)}}.post-card[hidden]{display:none}.post-card__meta{display:flex;gap:.5rem;font-size:var(--text-sm);color:var(--b-muted)}.post-card__title{font-size:var(--text-lg);line-height:1.3}.blog .post-card__title a{color:var(--b-heading);text-decoration:none}.post-card__title a:after{content:"";position:absolute;inset:0;border-radius:inherit}.blog .post-card__title a:focus-visible{outline:none}.post-card:has(.post-card__title a:focus-visible){outline:2px solid var(--b-link);outline-offset:3px}.post-card__description{flex:1;line-height:1.6}.post-card.featured{padding:clamp(1.5rem,4vw,2.5rem);margin-bottom:1rem;background:linear-gradient(var(--b-bg),var(--b-bg)) padding-box,var(--gradient-accent) border-box;border:1px solid transparent}.post-card.featured .post-card__title{font-size:clamp(1.5rem,4vw,2.125rem);line-height:1.2}.post-card.featured .post-card__description{max-width:46rem;font-size:var(--text-md)}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1rem;padding:0;list-style:none}.topic-card{display:flex;flex-direction:column;gap:.5rem;height:100%;padding:1.25rem 1.5rem;border:1px solid var(--b-border);border-radius:1rem;background:var(--b-bg);text-decoration:none;transition:border-color var(--theme-transition)}.topic-card:hover{border-color:var(--b-link)}.topic-card__name{font-family:var(--font-brand);font-size:var(--text-lg);font-weight:600;color:var(--b-heading)}.topic-card__description{flex:1;color:var(--b-text);line-height:1.5}.topic-card__count{font-size:var(--text-sm);color:var(--b-muted)}.post__header{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--b-border)}.post__title{font-size:clamp(2rem,5vw,3rem);line-height:1.12;color:var(--b-heading);text-wrap:balance}.post__lede{font-size:var(--text-lg);line-height:1.55;color:var(--b-muted)}.post__meta{display:flex;flex-wrap:wrap;gap:.25rem .5rem;font-size:var(--text-sm);color:var(--b-muted)}.post__body{display:flex;flex-direction:column;gap:1.5rem}.post__toc{width:100%;max-width:var(--b-column);margin-inline:auto}@media(min-width:80em){.post__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--b-column)) minmax(0,1fr);gap:3rem}.post__body>.prose{grid-column:2;grid-row:1;width:100%}.post__toc{grid-column:3;grid-row:1;position:sticky;top:1.5rem;align-self:start;max-width:17rem;margin:0}}.toc{border:1px solid var(--b-border);border-radius:.75rem;padding:.75rem 1rem;font-size:var(--text-sm)}.toc summary{cursor:pointer;font-family:var(--font-brand);font-weight:600;color:var(--b-heading)}.toc ol{display:flex;flex-direction:column;gap:.15rem;margin:.75rem 0 .25rem;padding:0;list-style:none}.blog .toc a{display:block;padding:.3rem 0 .3rem .75rem;border-left:2px solid var(--b-border);color:var(--b-muted);line-height:1.4;text-decoration:none}.toc__item--h3 a{padding-left:1.5rem}.blog .toc a:hover,.blog .toc a[aria-current]{border-left-color:var(--b-link);color:var(--b-link)}@media(min-width:80em){.toc{border:0;padding:0}.toc summary{list-style:none;pointer-events:none;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--b-muted)}.toc summary::-webkit-details-marker{display:none}}.prose{min-width:0;font-size:var(--text-md);line-height:1.75;overflow-wrap:break-word}.prose>*+*{margin-top:1.25em}.prose h2,.prose h3,.prose h4{color:var(--b-heading);line-height:1.25;scroll-margin-top:1.5rem;text-wrap:balance}.prose h2{margin-top:2.25em;font-size:1.625rem}.prose h3{margin-top:1.9em;font-size:1.3rem}.prose h4{margin-top:1.6em;font-size:1.1rem}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.75em}.prose strong{color:var(--b-heading);font-weight:700}.prose ul,.prose ol{padding-left:1.4em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.5em}.prose li::marker{color:var(--b-muted)}.prose blockquote{padding:1rem 1.25rem;border-left:4px solid var(--b-accent);border-radius:0 .75rem .75rem 0;background:var(--b-surface);color:var(--b-text)}.prose blockquote>*+*{margin-top:.75em}.prose hr{border:0;border-top:1px solid var(--b-border);margin-block:2.5em}.prose img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:.75rem}.prose table img{display:inline-block}.prose :not(pre)>code{padding:.15em .4em;border:1px solid var(--b-border);border-radius:.375rem;background:var(--b-surface);color:var(--b-heading);font-size:.875em;overflow-wrap:anywhere}.prose code,.prose pre{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.code-block{position:relative}.prose pre{padding:1rem 1.25rem;border:1px solid var(--b-border);border-radius:.75rem;font-size:.875rem;line-height:1.65;overflow-x:auto;tab-size:4}.code-block pre{padding-top:2.5rem}.code-copy{position:absolute;top:.45rem;right:.5rem;padding:.2rem .6rem;border:1px solid var(--b-border);border-radius:.4rem;background:var(--b-bg);color:var(--b-text);font:inherit;font-size:.75rem;cursor:pointer}.code-copy:hover{border-color:var(--b-link)}:root.theme-dark .astro-code,:root.theme-dark .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.table-scroll{overflow-x:auto;border:1px solid var(--b-border);border-radius:.75rem}.prose table{width:100%;min-width:34rem;border-collapse:collapse;font-size:.95rem;line-height:1.55;color:var(--b-text)}.prose th,.prose td{padding:.75rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--b-border)}.prose th+th,.prose td+td{border-left:1px solid var(--b-border)}.prose thead th{background:var(--b-surface);color:var(--b-heading);font-weight:700}.prose tbody tr:last-child td{border-bottom:0}.prose tbody td:first-child{color:var(--b-heading);font-weight:700}.post__footer{display:flex;flex-direction:column;gap:2rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--b-border)}.share{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.share__label{font-family:var(--font-brand);font-weight:600;color:var(--b-heading)}.share__links{display:flex;gap:.5rem;padding:0;margin:0;list-style:none}.blog .share__links a,.copy-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.5rem;padding:0 .75rem;border:1px solid var(--b-border);border-radius:999rem;background:var(--b-bg);color:var(--b-text);font:inherit;font-size:var(--text-sm);cursor:pointer;text-decoration:none}.share__links svg{width:1.1rem;height:1.1rem}.blog .share__links a:hover,.copy-link:hover{border-color:var(--b-link);color:var(--b-link)}.author-card{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem;border-radius:1rem;background:var(--b-surface)}.author-card img{flex:none;border-radius:50%}.author-card__name{font-family:var(--font-brand);font-weight:600;color:var(--b-heading)}.author-card__bio{margin-top:.25rem;line-height:1.55}.post-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1rem}.blog .post-nav__link{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;border:1px solid var(--b-border);border-radius:.75rem;text-decoration:none}.post-nav__link--next{text-align:right}.blog .post-nav__link:hover{border-color:var(--b-link)}.post-nav__label{font-size:var(--text-sm);color:var(--b-muted)}.post-nav__title{color:var(--b-heading);font-weight:700;line-height:1.35}.related{margin-top:1rem}
