.blog-kicker{letter-spacing:.12em;text-transform:uppercase;font-size:.6875rem;font-weight:600;line-height:1.6}.blog-hero{padding-block:3rem 2.5rem}.blog-hero>.blog-kicker{align-items:center;min-height:2.75rem;display:flex}.blog-hero-grid{gap:1.5rem;margin-top:1.25rem;display:grid}.blog-hero-title{letter-spacing:-.055em;max-width:12ch;font-size:clamp(3rem,5vw,4.75rem);font-weight:500;line-height:1.05}.blog-hero-title em{font-family:var(--font-instrument);color:var(--color-accent);font-weight:400}.blog-hero-intro{max-width:43ch;color:var(--color-muted);font-size:1rem;line-height:1.8}.blog-archive{padding-bottom:4rem}.blog-archive:focus{outline:none}.blog-search{border-bottom:1px solid var(--color-line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem .5rem;padding-bottom:1.5rem;display:grid}.blog-search-query{grid-column:1/-1}.blog-search:not(:has(.blog-search-category)) .blog-search-query{grid-column:auto}.blog-search label{color:var(--color-muted);margin-bottom:.5rem;font-size:.75rem;font-weight:600;display:block}.blog-search :is(input,select){background-color:var(--color-paper);border:1px solid #71857c;border-radius:4px;width:100%;min-width:0;min-height:2.75rem;padding:.5rem .875rem;font-size:1rem}.blog-search select{appearance:none;text-overflow:ellipsis;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23172d32' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;padding-right:2.5rem}.blog-search :is(input,select,button):focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.blog-search button{background:var(--color-ink);min-height:2.75rem;color:var(--color-paper);cursor:pointer;border-radius:999px;padding:.5rem 1.25rem;font-size:.8125rem;font-weight:600}.blog-search button:hover{background:var(--color-accent)}.blog-search[aria-busy=true] button{opacity:.6;cursor:progress}.blog-archive-count{color:var(--color-muted);margin-top:1rem;font-size:.75rem}@media (forced-colors:active){.blog-search select{appearance:auto;background-image:none;padding-right:.875rem}.blog-search button{border:1px solid buttontext}}.blog-filter{color:var(--color-muted);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;margin-top:1.5rem;font-size:.8125rem;display:flex}.blog-filter a{min-height:2.75rem;color:var(--color-accent);text-underline-offset:4px;align-items:center;gap:.75rem;text-decoration:underline;display:inline-flex}.blog-card-grid{gap:3rem;padding-top:2rem;display:grid}.blog-card{flex-direction:column;min-width:0;display:flex;position:relative}.blog-card-link:after{content:"";border-radius:4px;position:absolute;inset:0}.blog-card-link:focus-visible{outline:none}.blog-card-link:focus-visible:after{outline:3px solid var(--color-accent);outline-offset:8px}.blog-card-image{aspect-ratio:40/21;background:var(--color-soft);border:1px solid var(--color-line);border-radius:4px;overflow:hidden}.blog-card-image img{object-fit:contain;width:100%;height:100%;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.blog-card-copy{flex-direction:column;flex:1;padding-top:1.5rem;display:flex}.blog-entry-meta{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.875rem;font-size:.75rem;display:flex}.blog-entry-meta>:is(time,span)+time:before{content:"/";color:var(--color-muted);margin-right:.75rem}.blog-card-title{letter-spacing:-.035em;text-wrap:pretty;max-width:32ch;font-size:clamp(1.5rem,2.1vw,2rem);font-weight:600;line-height:1.25;transition:color .18s}.blog-card-excerpt{max-width:60ch;color:var(--color-muted);margin-block:1rem 1.5rem;font-size:.9375rem;line-height:1.8}.blog-read-link{border-bottom:1px solid var(--color-line);color:var(--color-accent);justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-block:1rem;font-size:.8125rem;font-weight:600;display:flex}.blog-read-link svg{transition:transform .18s}.blog-card-tags{flex-wrap:wrap;gap:.875rem .5rem;margin-block:1rem 1.5rem;display:flex}.blog-card-excerpt+.blog-card-tags{margin-top:-.5rem}.blog-card-tags a{z-index:1;border:1px solid var(--color-line);max-width:100%;min-height:2rem;color:var(--color-muted);overflow-wrap:anywhere;text-underline-offset:3px;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;line-height:1.4;transition:color .18s,border-color .18s;display:inline-flex;position:relative}.blog-card-tags a:before{content:"";position:absolute;inset:calc(-.375rem - 1px) 0}.blog-card-tags a:is(:hover,[aria-current]){border-color:var(--color-accent);color:var(--color-accent)}.blog-card-tags a:hover{text-decoration:underline}.blog-card-tags a:focus-visible{outline-offset:2px}@media (hover:hover){.blog-card:hover:not(:has(.blog-card-tags a:hover)) .blog-card-title{color:var(--color-accent)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.blog-card:hover:not(:has(.blog-card-tags a:hover)) .blog-card-image img{transform:scale(1.025)}.blog-card:hover:not(:has(.blog-card-tags a:hover)) .blog-read-link svg{transform:translate(4px)}}.blog-empty{padding-block:4rem}.blog-pagination{border-top:1px solid var(--color-line);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-top:3rem;padding-top:1.5rem;font-size:.8125rem;display:grid}.blog-pagination>a{min-height:2.75rem;color:var(--color-accent);justify-self:start;align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.blog-pagination>a[rel=next]{justify-self:end}.blog-pagination ol{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.blog-pagination li>:is(a,span){min-width:2.75rem;min-height:2.75rem;color:var(--color-muted);border-bottom:2px solid #0000;justify-content:center;align-items:center;display:inline-flex}.blog-pagination li>a:hover{color:var(--color-accent)}.blog-pagination li>a[aria-current]{border-color:var(--color-accent);color:var(--color-ink);font-weight:600}.blog-pagination a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.blog-pagination-position{color:var(--color-muted);white-space:nowrap;display:none}@media (max-width:639px){.blog-pagination ol{display:none}.blog-pagination-position{display:block}}.blog-empty h2{letter-spacing:-.04em;overflow-wrap:anywhere;max-width:24ch;margin-bottom:1.5rem;font-size:2rem}.blog-empty p{max-width:48ch;color:var(--color-muted);margin:-.5rem 0 1.5rem}.blog-conversation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding-block:3rem;display:flex}.blog-conversation h2{letter-spacing:-.035em;max-width:30ch;font-size:clamp(1.5rem,2.3vw,2rem);font-weight:500;line-height:1.3}.blog-article-header{max-width:45rem;padding-block:1.5rem 2rem}.blog-breadcrumb{color:var(--color-muted);align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.75rem;display:flex}.blog-article-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1.25rem;display:flex;position:relative}.blog-article-bar .blog-breadcrumb{margin-bottom:0}.blog-actions{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}@media (scripting:none){.blog-actions .blog-actions-copy{display:none}}.blog-actions :is(button,summary){min-height:2.75rem;color:var(--color-ink);text-underline-offset:4px;cursor:pointer;align-items:center;gap:.375rem;font-size:.75rem;list-style:none;display:inline-flex}@media (forced-colors:active){.blog-actions :is(button,summary){text-decoration:underline}}.blog-actions summary::-webkit-details-marker{display:none}.blog-actions :is(button,summary):hover{color:var(--color-accent);text-decoration:underline}.blog-actions :is(button,summary,a):focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.blog-actions details[open] summary{color:var(--color-accent)}.blog-actions-panel{z-index:20;border:1px solid var(--color-line);background:var(--color-paper);border-radius:4px;width:min(20rem,100vw - 2.5rem);padding:.5rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 12px 32px #172d321f}.blog-actions-panel a{border-radius:4px;min-height:2.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:600;display:block}.blog-actions-panel a:hover{background:var(--color-soft);color:var(--color-accent)}.blog-actions-panel small{color:var(--color-muted);margin-top:.125rem;font-size:.75rem;font-weight:400;display:block}.blog-actions-panel p{border-top:1px solid var(--color-line);color:var(--color-muted);padding:.5rem .75rem;font-size:.75rem;line-height:1.5}.blog-actions-status{text-align:right;color:var(--color-muted);pointer-events:none;font-size:.75rem;line-height:1.5;position:absolute;top:calc(100% + .125rem);left:0;right:0}.blog-breadcrumb a{text-underline-offset:4px;align-items:center;min-height:2.75rem;display:inline-flex}.blog-breadcrumb a:hover{text-decoration:underline}.blog-taxonomy{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.25rem 1.125rem;margin-bottom:1rem;font-size:.75rem;display:flex}.blog-taxonomy a{text-underline-offset:4px;align-items:center;min-height:2.75rem;display:inline-flex}.blog-taxonomy a:hover{text-decoration:underline}.blog-taxonomy .blog-category{border:1px solid var(--color-line);min-height:1.75rem;color:var(--color-accent);border-radius:3px;padding:.3rem .625rem;font-weight:600}.blog-article-title{letter-spacing:-.045em;text-wrap:pretty;overflow-wrap:anywhere;font-size:clamp(2rem,3.5vw,3.125rem);font-weight:600;line-height:1.12}.blog-article-excerpt{color:var(--color-muted);margin-top:1.5rem;font-size:clamp(1.0625rem,1.5vw,1.125rem);line-height:1.7}.blog-byline{flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:1.75rem;font-size:.8125rem;display:flex}.blog-author{align-items:center;gap:.75rem;min-height:2.75rem;font-weight:600;display:inline-flex}.blog-author-portrait{background:var(--color-soft);border-radius:50%;flex-shrink:0;width:2.5rem;height:2.5rem;display:block;overflow:hidden}.blog-byline-meta{color:var(--color-muted);flex-wrap:wrap;gap:.5rem 1rem;display:flex}.blog-byline-meta>span:before{content:"·";margin-right:1rem}.blog-article-cover{border:1px solid var(--color-line);background:var(--color-soft);border-radius:4px;max-width:45rem;overflow:hidden}.blog-reading-layout{gap:2rem;padding-block:2rem 4rem;display:grid}.blog-reading-column{width:100%;min-width:0;max-width:45rem;margin-inline:auto}.blog-toc{width:100%;min-width:0;max-width:45rem;color:var(--color-muted);margin-inline:auto}.blog-toc-desktop{display:none}.blog-toc-mobile{border-bottom:1px solid var(--color-line)}.blog-toc summary{cursor:pointer;min-height:3rem;color:var(--color-accent);justify-content:space-between;align-items:center;gap:1rem;font-size:.8125rem;font-weight:600;list-style:none;display:flex}.blog-toc summary>span[aria-hidden]{font-size:1.25rem;font-weight:400;transition:transform .18s}.blog-toc details[open]>summary>span[aria-hidden]{transform:rotate(45deg)}.blog-toc ol{padding:0;list-style:none}.blog-toc a{text-underline-offset:4px;grid-template-columns:1.125rem 1fr;align-items:baseline;gap:.5rem;min-height:2.75rem;padding-block:.625rem;font-size:.75rem;line-height:1.65;display:grid}.blog-toc a:hover{color:var(--color-accent);text-decoration:underline}.blog-toc-number{font-variant-numeric:tabular-nums;color:var(--color-accent);font-size:.625rem}.blog-prose{overflow-wrap:anywhere;color:var(--color-ink);font-size:1.0625rem;line-height:1.85}.blog-prose>:first-child{margin-top:0}.blog-prose p{margin-block:0 1.4em}.blog-prose :is(h2,h3){letter-spacing:-.03em;text-wrap:pretty;scroll-margin-top:1rem;font-weight:600;line-height:1.3}.blog-prose h2{margin-block:2.5em .8em;font-size:clamp(1.5rem,2.3vw,1.875rem)}.blog-prose h3{margin-block:2em .75em;font-size:1.25rem}.blog-prose :is(ul,ol){margin-block:1.5em;padding-left:1.25rem}.blog-prose ul{list-style:outside}.blog-prose ol{list-style:decimal}.blog-prose li{margin-block:.5em;padding-left:.35rem}.blog-prose li::marker{color:var(--color-accent)}.blog-prose strong{font-weight:650}.blog-prose a{color:var(--color-accent);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.blog-prose a:hover{text-decoration-thickness:2px}.blog-prose code{border:1px solid var(--color-line);background:var(--color-soft);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:.12em .3em;font-family:monospace;font-size:.85em}.blog-prose blockquote{border-left:2px solid var(--color-accent);font-family:var(--font-instrument);color:var(--color-accent);margin-block:2rem;padding:.5rem 0 .5rem 1.5rem;font-size:clamp(1.625rem,3vw,2rem);font-style:italic;line-height:1.45}.blog-prose blockquote p:last-child{margin-bottom:0}.blog-prose figure{margin-block:2rem}.blog-prose figcaption,.blog-prose caption{text-align:left;color:var(--color-muted);font-size:.75rem;font-weight:500;line-height:1.6}.blog-code{background:var(--color-forest);border-radius:4px;max-width:100%;overflow:hidden}.blog-code figcaption{color:var(--color-mint);border-bottom:1px solid #b6e8d32b;padding:.75rem 1.25rem}.blog-code pre{color:var(--color-paper);white-space:pre;scrollbar-color:#86aa9c var(--color-forest);scrollbar-width:thin;padding:1.25rem;font-size:.8125rem;line-height:1.8;overflow-x:auto}.blog-code pre:focus-visible{outline:2px solid var(--color-mint);outline-offset:-4px}.blog-code pre code{color:inherit;font-size:inherit;-webkit-box-decoration-break:slice;box-decoration-break:slice;background:0 0;border:0;padding:0}.blog-table-scroll{scrollbar-width:thin;margin-block:2rem;overflow-x:auto}.blog-table-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.blog-table-scroll table{border-collapse:collapse;width:100%;min-width:32rem;font-size:.875rem;line-height:1.7}.blog-table-scroll caption{padding-bottom:1rem}.blog-table-scroll :is(th,td){border:1px solid var(--color-line);text-align:left;vertical-align:top;overflow-wrap:normal;padding:1rem}.blog-table-scroll :is(th,td):first-child{min-width:8rem}.blog-table-scroll th{background:var(--color-soft);font-weight:650}.blog-table-hint{display:none}.blog-diagram{border:1px solid var(--color-line);border-radius:4px;padding:1.5rem}.blog-diagram ol{gap:0;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.blog-diagram ol li{border:1px solid var(--color-line);background:var(--color-soft);border-radius:3px;margin:0;padding:1rem 1rem 1rem 3.25rem;font-size:.9375rem;line-height:1.6;position:relative}.blog-diagram ol li+li{margin-top:1.75rem}.blog-diagram ol li+li:before{content:"↓";color:var(--color-accent);position:absolute;top:-1.75rem;left:1.25rem}.blog-diagram-number{font-variant-numeric:tabular-nums;color:var(--color-accent);font-size:.6875rem;position:absolute;top:1.2rem;left:1rem}.blog-diagram .blog-diagram-note{border-top:1px solid var(--color-line);color:var(--color-muted);margin:1.5rem 0 0;padding-top:1rem;font-size:.8125rem}.blog-inline-image img{border-radius:4px;width:100%;height:auto}.blog-inline-image figcaption{margin-top:.75rem}.blog-download{border:1px solid var(--color-line);background:var(--color-soft);border-radius:4px;padding:1.25rem;font-size:.9375rem}.blog-share{border-top:1px solid var(--color-line);margin-top:4rem;padding-top:2rem}.blog-share h2{color:var(--color-muted)}.blog-share-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.blog-share-actions>:is(a,button){border:1px solid var(--color-line);text-underline-offset:3px;border-radius:999px;align-items:center;gap:.375rem;min-height:2.75rem;padding:.5rem 1.125rem;font-size:.8125rem;font-weight:600;transition:color .18s,border-color .18s;display:inline-flex}.blog-share-actions>:is(a,button):hover{border-color:var(--color-accent);color:var(--color-accent);text-decoration:underline}.blog-share-actions>:is(a,button):focus-visible{outline-offset:2px}.blog-share-actions button{cursor:pointer}.blog-share-actions svg{width:1rem;height:1rem}.blog-share-status{min-height:1.5rem;color:var(--color-muted);margin-top:.75rem;font-size:.8125rem}.blog-share-status:empty{min-height:0;margin-top:0}.blog-share-field{border:1px solid var(--color-line);background:var(--color-paper);border-radius:4px;width:100%;margin-top:.5rem;padding:.625rem .75rem;font-size:.8125rem}.blog-share-field:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.blog-share+.blog-related{margin-top:2.5rem}.blog-related{border-top:1px solid var(--color-line);margin-top:4rem;padding-top:2rem}.blog-related h2{color:var(--color-muted)}.blog-related a{letter-spacing:-.025em;justify-content:space-between;align-items:center;gap:2rem;padding-block:1.5rem;font-size:clamp(1.25rem,2vw,1.5rem);font-weight:500;line-height:1.4;display:flex}.blog-related a:hover{color:var(--color-accent)}.blog-article-end{background:var(--color-soft);border-radius:4px;margin-top:1.5rem;padding:1.5rem}.blog-article-end>p{max-width:38ch;margin-bottom:1rem;font-size:1rem;line-height:1.7}.blog-back-link{min-height:2.75rem;color:var(--color-muted);align-items:center;gap:1rem;margin-top:1.5rem;font-size:.8125rem;display:inline-flex}.blog-back-link:hover{color:var(--color-accent)}.blog-notice{max-width:48rem;min-height:65vh;padding-block:4rem 6rem}.blog-draft-banner{background:var(--color-forest);color:var(--color-paper);flex-wrap:wrap;align-items:center;gap:.5rem 2rem;padding:1rem max(1.5rem,50vw - 640px);font-size:.85rem;display:flex}.blog-draft-banner button{text-underline-offset:4px;cursor:pointer;min-height:44px;text-decoration:underline}@media (min-width:640px){.blog-search{grid-template-columns:minmax(0,28rem) minmax(0,16rem) auto;justify-content:start}.blog-search-query{grid-column:auto}.blog-search:not(:has(.blog-search-category)){grid-template-columns:minmax(0,28rem) auto}.blog-hero{padding-block:4rem 3rem}.blog-archive{padding-bottom:5rem}.blog-article-header{padding-block:2rem 2.5rem}.blog-prose{font-size:1.125rem}.blog-reading-layout{padding-block:3rem 5rem}.blog-article-end{padding:2rem}}@media (min-width:768px){.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3rem 2rem}}@media (min-width:1024px){.blog-hero-grid{grid-template-columns:1.25fr 1fr;align-items:end;gap:4rem}.blog-hero-intro{justify-self:end;padding-bottom:.25rem}.blog-hero{padding-block:4.5rem 3.5rem}.blog-reading-layout{padding-block:4rem 6rem}}@media (min-width:1280px){.blog-toc{overscroll-behavior-y:contain;overflow-anchor:none;scrollbar-width:thin;align-self:start;max-height:calc(100dvh - 9rem);position:sticky;top:7rem;overflow-y:auto}.blog-toc :is(a,summary):focus-visible{outline-offset:-2px}.blog-toc-desktop{display:block}.blog-toc-mobile{display:none}.blog-toc .blog-kicker{margin-bottom:.875rem}.blog-card-grid{gap:3.5rem 3rem;padding-top:2.5rem}.blog-has-index{grid-template-columns:minmax(0,1fr) minmax(0,45rem) minmax(0,1fr);column-gap:2.5rem}.blog-reading-column{grid-column:2}.blog-reading-layout:not(.blog-has-index) .blog-reading-column{grid-column:auto}}@media (max-width:639px){.blog-byline{flex-direction:column;align-items:flex-start;gap:.75rem}.blog-byline-meta{font-size:.75rem}.blog-prose .blog-table-hint{color:var(--color-muted);margin-bottom:.75rem;font-size:.75rem;display:block}.blog-diagram{padding:1rem}}@media (prefers-reduced-motion:reduce){.blog-card *,.blog-toc summary>span[aria-hidden]{transition:none}}@supports not (scrollbar-color:auto){.blog-code pre::-webkit-scrollbar-track{background:var(--color-forest)}.blog-code pre::-webkit-scrollbar-thumb{border-color:var(--color-forest);background:#86aa9c}}@media (forced-colors:active){.blog-code pre{scrollbar-color:auto}}.nav-language-unavailable{color:var(--color-muted);text-decoration:line-through}
