.blog-index{min-height:calc(100svh - 10.5rem);padding:var(--subpage-padding-block) var(--subpage-gutter)}.blog-index__intro{display:grid;gap:var(--spacing-4);justify-items:center;margin-bottom:clamp(2rem,3.5vw,3.25rem);text-align:center}.blog-index__intro h1{font-size:clamp(2rem,3.2vw,2.75rem)}.blog-index__intro p{margin:0;color:var(--muted-on-page);font-size:clamp(1.05rem,1.5vw,1.25rem);font-weight:400;line-height:1.5}.blog-controls{margin-bottom:var(--spacing-4)}.blog-controls__topics{min-width:0;text-align:left}.blog-controls__topics>p{margin:0 0 var(--spacing-3);color:var(--muted-on-page);font-size:var(--text-sm);font-weight:620}.blog-topic-filters{display:flex;gap:var(--spacing-2) var(--spacing-4);flex-wrap:wrap;justify-content:flex-start}.blog-topic-filters button{min-height:var(--control-size);border:0;font:inherit;cursor:pointer}.blog-topic-filters button{display:inline-flex;gap:var(--spacing-2);align-items:center;padding:var(--spacing-2) var(--spacing-3);border:1px solid transparent;border-radius:var(--radius-pill);background:transparent;color:var(--muted-on-page);font-size:var(--text-sm);font-weight:560;transition:color .2s var(--ease-out),border-color .2s var(--ease-out)}.blog-topic-filters button:hover,.blog-topic-filters button:focus-visible{background:var(--surface);color:var(--ink);border-color:var(--line-on-page)}.blog-topic-filters button[aria-pressed=true]{background:var(--ink);color:var(--page);border-color:var(--ink)}.blog-topic-filters small{color:inherit;font-size:var(--text-xs);font-weight:590;opacity:.7}.blog-results{text-align:center;margin-bottom:1rem;color:var(--muted-on-page);font-size:var(--text-sm);font-weight:560}.blog-empty{padding-block:clamp(3rem,8vw,7rem);color:var(--muted-on-page);text-align:center}.blog-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,2vw,1.75rem)}.blog-entry{min-width:0}.blog-entry[hidden]{display:none}.blog-entry__link{display:grid;position:relative;grid-template-columns:minmax(0,1fr) clamp(13rem,23vw,18rem);min-height:13rem;overflow:hidden;border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:var(--surface-card);cursor:pointer;text-decoration:none;transition:border-color .22s var(--ease-out),background-color .22s var(--ease-out),transform .22s var(--ease-out)}.blog-entry__link:hover,.blog-entry__link:focus-visible{border-color:var(--line-on-page-strong);background:var(--surface-card-hover);color:var(--ink);transform:translateY(-2px)}.blog-entry__content{display:flex;min-width:0;flex-direction:column;padding:clamp(var(--spacing-5),3vw,var(--spacing-8))}.blog-entry__meta{display:flex;gap:var(--spacing-1) var(--spacing-4);flex-wrap:wrap;color:var(--muted-on-page);font-size:var(--text-sm);font-weight:500;line-height:1.42}.blog-entry__meta time{color:var(--ink)}.blog-entry__status{width:fit-content;margin-top:var(--spacing-3);padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--line-on-page);border-radius:var(--radius-pill);background:var(--surface-card);color:var(--muted-on-page);font-size:var(--text-xs);font-weight:610}.blog-entry__featured{position:absolute;z-index:1;top:var(--spacing-3);right:var(--spacing-3);display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--line-on-page);border-radius:var(--radius-pill);background:var(--page);color:var(--ink)}.blog-entry__featured svg{width:var(--text-sm);height:var(--text-sm);stroke-width:1.8}.blog-entry h2{margin:auto 0 0;padding-top:1rem;font-size:var(--text-h2);font-variation-settings:"wdth" 108;font-weight:720;letter-spacing:-.025em;line-height:1.12}.blog-entry__content>p{min-width:0;margin:var(--spacing-3) 0 0;color:var(--muted-on-page);font-size:var(--text-base);line-height:1.52}.blog-entry__footer{display:flex;gap:1rem;align-items:flex-end;justify-content:space-between;margin-top:auto;padding-top:var(--spacing-5)}.blog-entry__tags{display:flex;min-width:0;gap:var(--spacing-1) var(--spacing-3);flex-wrap:wrap;margin:0;padding:0;color:var(--muted-on-page);font-size:var(--text-xs);line-height:1.4;list-style:none}.blog-entry__read{display:inline-flex;gap:var(--spacing-2);align-items:center;flex:0 0 auto;font-size:var(--text-action);font-weight:650}.blog-entry__read svg{width:var(--text-sm);height:var(--text-sm);transition:transform .22s var(--ease-out)}.blog-entry__link:hover .blog-entry__read svg,.blog-entry__link:focus-visible .blog-entry__read svg{transform:translate(4px)}.blog-entry__image{min-width:0;overflow:hidden;margin:0;background:var(--media-surface)}.blog-entry__image img{display:block;width:100%;height:100%;object-fit:cover}.blog-entry__link{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100%}.blog-entry__image{grid-row:1;aspect-ratio:1200 / 630;border-bottom:1px solid var(--line-on-page);border-inline-start:0}.blog-entry__content{grid-row:2;min-height:18rem}.blog-entry h2{margin-top:0}.article-page{padding:var(--subpage-padding-block) var(--subpage-gutter)}.article-hero{width:min(calc(100% - 2 * var(--subpage-gutter)),var(--container-content));margin-inline:auto;padding:var(--subpage-padding-block) 0 0}.article-back{display:inline-flex;gap:var(--spacing-2);align-items:center;margin-bottom:clamp(1.5rem,3vw,2.5rem);color:var(--muted-on-page);font-size:var(--text-sm);font-weight:620}.article-back svg{width:var(--text-sm);height:var(--text-sm);stroke-width:2}.article-back:hover,.article-back:focus-visible{color:var(--ink)}.article-hero h1{width:100%;font-size:clamp(1.8rem,3vw,2.6rem)}.article-hero__subtitle{margin:1.25rem 0 0;color:var(--muted-on-page);font-size:clamp(var(--text-lead),2vw,1.5rem);font-weight:400;line-height:1.4}.article-meta{width:min(100%,var(--container-reading));margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--spacing-6);align-items:start;padding:var(--spacing-5);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:var(--page);color:var(--ink)}.article-meta__main{min-width:0}.article-meta dl{display:flex;gap:var(--spacing-4) var(--spacing-5);flex-wrap:wrap;justify-content:flex-start;margin:0}.article-meta dl>div{display:grid;gap:var(--spacing-1)}.article-meta dt{color:var(--muted-on-page);font-size:var(--text-xs);font-weight:590}.article-meta dd{margin:0;font-size:var(--text-xs);font-weight:560}.article-meta__tags{display:flex;gap:var(--spacing-2) var(--spacing-3);flex-wrap:wrap;justify-content:flex-end;margin:0;padding:0;color:var(--muted-on-page);font-size:var(--text-xs);line-height:1.4;list-style:none}.article-meta__aside{display:grid;gap:1rem;justify-items:end;min-width:0}.article-language{display:grid;gap:var(--spacing-2);justify-items:end;padding:var(--spacing-3);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:var(--surface-card);color:var(--muted-on-page);font-size:var(--text-xs);font-weight:610}.article-language__label{color:var(--muted-on-page)}.article-language nav{display:inline-flex;gap:var(--spacing-2);align-items:center}.article-language__current,.article-language a{padding:var(--spacing-1) var(--spacing-3);border:1px solid var(--line-on-page-strong);border-radius:var(--radius-pill);color:var(--ink)}.article-language__current{border-color:var(--ink);background:var(--ink);color:var(--page)}.article-language a{text-decoration:none}.article-language a:hover,.article-language a:focus-visible{background:var(--surface-card-hover)}.article-cover{width:min(100%,75rem);margin:clamp(2.5rem,5vw,4.5rem) auto 0}.article-cover img{display:block;width:100%;height:auto;border-radius:var(--radius-surface)}.article-grid{display:grid;grid-template-columns:minmax(11rem,14rem) minmax(0,var(--container-reading)) minmax(0,14rem);gap:clamp(2rem,4vw,4.5rem);justify-content:center;margin-top:clamp(3rem,6vw,5.5rem)}.article-grid--no-toc{grid-template-columns:minmax(0,var(--container-reading))}.article-toc--desktop{position:sticky;top:2rem;align-self:start;grid-column:1;padding:var(--spacing-4);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:var(--page)}.article-toc--desktop+.article-content{grid-column:2}.article-grid--no-toc .article-content{grid-column:1}.article-toc>p,.article-toc summary{margin:0 0 1rem;font-size:var(--text-xs);font-weight:680}.article-toc ol{display:grid;gap:var(--spacing-3);margin:0;padding:0;list-style:none}.article-toc a{color:var(--muted-on-page);font-size:var(--text-xs);font-weight:520;line-height:1.35}.article-toc a:hover,.article-toc a:focus-visible,.article-toc a[aria-current=location]{color:var(--ink)}.article-toc a[aria-current=location]{font-weight:670}.article-toc__nested{padding-left:var(--spacing-3)}.article-toc--mobile{display:none;padding-inline:var(--spacing-4);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:var(--page)}.article-grid .article-content{min-width:0;font-size:var(--text-base);font-weight:400;line-height:1.75}.article-content>:first-child{margin-top:0}.article-content>:last-child{margin-bottom:0}.article-content h2,.article-content h3,.article-content h4{scroll-margin-top:2rem;font-variation-settings:"wdth" 106;font-weight:700;letter-spacing:-.03em;line-height:1.18}.article-content h2{margin:2rem 0 .75rem;font-size:var(--text-h2)}.article-content h3{margin:2.2em 0 .65em;font-size:var(--text-h3)}.article-content h4{margin:2em 0 .6em;font-size:var(--text-h4)}.article-content p,.article-content ul,.article-content ol,.article-content blockquote{margin-block:1.15em}.article-content ul,.article-content ol{padding-left:1.35em}.article-content ul{list-style:disc}.article-content ol{list-style:decimal}.article-content li+li{margin-top:.35em}.article-content a{text-decoration-thickness:1px;text-underline-offset:.18em}.article-content img{display:block;max-width:100%;max-height:min(75svh,50rem);height:auto;margin:2rem auto;border-radius:0;object-fit:contain}.article-content .article-phone-screenshot{width:auto;max-width:min(100%,30rem)}.article-content pre{position:relative;max-width:100%;margin:1.8rem 0;overflow-x:auto;border:1px solid var(--line-on-contrast);border-radius:var(--radius-surface);background:var(--color-site-black);color:var(--color-site-white);font-size:var(--text-sm);line-height:1.65;tab-size:2}.article-content pre code{display:block;min-width:max-content;padding:var(--spacing-5) 4.5rem var(--spacing-5) var(--spacing-5);background:transparent;color:inherit}.article-content :not(pre)>code{padding:.15em .35em;border-radius:0;background:var(--ink);color:var(--page);font-size:.875em}.code-copy{position:absolute;top:var(--spacing-3);right:var(--spacing-3);min-width:3.25rem;min-height:2rem;padding:0 .6rem;border:1px solid color-mix(in srgb,var(--color-site-white) 24%,transparent);border-radius:var(--radius-surface);background:var(--color-site-black);color:var(--color-site-white);font:inherit;font-size:var(--text-xs);cursor:pointer}.article-content blockquote{padding:var(--spacing-4) var(--spacing-5);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:transparent}.article-content blockquote>:first-child{margin-top:0}.article-content blockquote>:last-child{margin-bottom:0}.article-content table{display:block;width:100%;margin:2rem 0;overflow-x:auto;border-collapse:collapse;font-size:var(--text-sm)}.article-content th,.article-content td{min-width:9rem;padding:.75rem;border-bottom:1px solid var(--line-on-page);text-align:left;vertical-align:top}.article-import-note{padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:transparent}.article-import-note h2{margin:0;font-size:var(--text-h2)}.article-import-note p{color:var(--muted-on-page)}.article-import-note a{display:inline-flex;gap:var(--spacing-2);align-items:center;font-size:var(--text-sm);font-weight:620}.article-import-note a .site-link__external-icon{margin:0}.article-import-note svg{width:var(--text-sm);height:var(--text-sm)}.article-end{width:min(100%,var(--container-reading));margin:clamp(4rem,8vw,7rem) auto 0}.article-distribution{display:grid;gap:var(--spacing-3);justify-items:end;text-align:right}.article-distribution .platform-links{justify-content:flex-end;padding-left:0}.article-neighbors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.article-neighbors>a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--spacing-4);align-items:center;min-height:8rem;padding:1.5rem;border:1px solid var(--line-on-page);border-radius:var(--radius-surface);background:transparent;text-decoration:none}.article-neighbors>a:nth-child(2){text-align:right}.article-neighbors small,.article-neighbors strong{display:block}.article-neighbors small{margin-bottom:var(--spacing-1);color:var(--muted-on-page);font-size:var(--text-xs);font-weight:560}.article-neighbors strong{font-size:var(--text-sm);line-height:1.35}.article-neighbors svg{width:1rem;height:1rem}.article-neighbors a:hover,.article-neighbors a:focus-visible{opacity:.62}.article-end__back{display:inline-flex;gap:var(--spacing-2);align-items:center;margin-top:2rem;font-size:var(--text-sm);font-weight:610;text-underline-offset:.22rem}.article-end__back svg{width:var(--text-sm);height:var(--text-sm)}@media(max-width:75rem){.article-grid{grid-template-columns:minmax(10rem,12rem) minmax(0,var(--container-reading))}}@media(max-width:64rem){.blog-archive{grid-template-columns:repeat(2,minmax(0,1fr))}.article-grid,.article-grid--no-toc{grid-template-columns:minmax(0,var(--container-reading))}.article-grid .article-content{grid-column:1}.article-toc--desktop{display:none}.article-toc--mobile{display:block;margin-top:1.25rem}.article-toc--mobile summary{margin:0;padding:1rem 0;cursor:pointer}.article-toc--mobile ol{margin-bottom:1.25rem}}@media(max-width:48rem){.blog-index{min-height:auto}.blog-archive{grid-template-columns:1fr}.blog-index__intro{grid-template-columns:1fr;gap:var(--spacing-5);margin-bottom:var(--spacing-10)}.blog-controls__topics{min-width:calc(100% + 2 * var(--subpage-gutter));width:calc(100% + 2 * var(--subpage-gutter));margin-inline:calc(-1 * var(--subpage-gutter));padding-inline:var(--subpage-gutter);overflow:hidden}.blog-controls__topics>p{padding-inline:0}.blog-topic-filters{min-width:0;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.25rem;overflow-x:auto;scrollbar-width:none}.blog-topic-filters::-webkit-scrollbar{display:none}.blog-topic-filters button{flex:0 0 auto}.blog-entry__link,.blog-entry__content{min-height:0}.blog-entry h2{margin-top:0}.blog-entry__footer{display:grid}.blog-entry__read{justify-self:end}.article-meta{grid-template-columns:1fr;padding:1rem}.article-meta__aside{justify-items:end}.article-grid{margin-top:var(--spacing-10)}.article-neighbors{grid-template-columns:1fr}.article-neighbors>span{display:none}.article-neighbors>a:nth-child(2){padding:1.5rem}}@media(max-width:30rem){.article-meta dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.blog-entry__link,.blog-entry__read svg,.blog-topic-filters button{transition:none}}@media(prefers-reduced-motion:no-preference){.blog-index__intro,.blog-controls,.blog-results,.blog-entry:not([hidden]){animation:reveal-item-in var(--motion-enter-duration) var(--ease-out) both;animation-delay:calc(var(--reveal-order, 0) * var(--motion-enter-stagger))}.blog-controls{animation-delay:var(--motion-enter-stagger)}.blog-results{animation-delay:calc(var(--motion-enter-stagger) * 2)}}
