html body.coast-site #main-content.site-main .blog-article{margin:0 auto var(--space-12);min-width:0}html body.coast-site #main-content.site-main .article-header{margin:var(--space-6) 0 var(--space-8);background:0 0;border:0;padding:0}.article-header .article-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.article-meta a{min-height:var(--control-height);align-items:center;display:inline-flex}.article-project-link{color:var(--color-muted);margin:var(--space-4) 0}.article-project-link a{color:var(--color-accent);overflow-wrap:anywhere}html body.coast-site #main-content.site-main .article-header h1{margin:var(--space-4) 0;font-family:var(--font-heading)}.article-notes{margin-top:var(--space-5);color:var(--color-muted)}.article-notes summary{cursor:pointer;min-height:var(--control-height);align-content:center}html body.coast-site #main-content.site-main .article-notes p{font-size:var(--text-meta)!important}.article-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}html body.coast-site #main-content.site-main .article-reading{min-width:0;padding:0}html body.coast-site #main-content.site-main .article-body{font-family:var(--article-body-font);text-align:left;text-indent:0;word-break:normal;line-break:strict;overflow-wrap:anywhere}html body.coast-site #main-content.site-main .article-body :where(p,li,dt,dd,blockquote,table,th,td){font-family:var(--article-body-font);text-align:left;text-indent:0;word-break:normal;line-break:strict}html body.coast-site #main-content.site-main .article-body p{margin:0 0 var(--article-paragraph-gap)}html body.coast-site #main-content.site-main .article-body :is(h2,h3,h4){margin:var(--space-12) 0 var(--space-5);padding-bottom:var(--space-3)}html body.coast-site #main-content.site-main .blog-article .article-body :is(h2,h3,h4){scroll-margin-top:var(--space-2)}html body.coast-site #main-content.site-main .article-body h2{font-family:var(--font-heading)}html body.coast-site #main-content.site-main .article-body :is(h3,h4){font-family:var(--article-body-font);font-weight:600}.article-body :is(em,i){font-style:normal;font-weight:700}.article-body :is(ul,ol){padding-left:var(--space-6);margin-bottom:var(--article-paragraph-gap)}.article-body hr{margin:var(--space-8) 0;border:0;border-top:var(--border-width) solid var(--color-border)}.article-body table{border-collapse:collapse;width:100%;max-width:100%;display:block;overflow-x:auto}.article-body :is(th,td){border:var(--border-width) solid var(--color-border);padding:var(--space-3);vertical-align:top}.article-body th{background:var(--color-surface)}html body.coast-site #main-content.site-main .article-body :is(blockquote,.article-callout){margin:var(--space-6) 0;padding:var(--space-4);border:0;border-left:var(--notice-border) solid var(--color-accent);background:var(--color-surface);color:var(--color-text);border-radius:0}.article-body :is(blockquote,.article-callout)>:last-child{margin-bottom:0!important}.callout-heading{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.callout-heading svg{width:var(--arrow-size);height:var(--arrow-size);stroke-width:1.5px;color:var(--color-accent);flex-shrink:0}html body.coast-site #main-content.site-main .article-contents{min-width:0;padding:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-card)}.toc-mobile{margin:0 0 var(--space-8)}.toc-mobile summary{cursor:pointer;min-height:var(--control-height);align-content:center}.toc-scroll{max-height:var(--article-toc-mobile-height);padding:var(--space-2);overflow-y:auto}.article-contents ol{margin:0;padding:0;list-style:none}.article-contents ol ol{padding-left:var(--space-4)}html body.coast-site #main-content.site-main .article-contents a{min-height:var(--control-height);padding:var(--space-2);font-size:var(--text-meta);color:var(--color-muted);align-items:center;text-decoration:none;display:flex}html body.coast-site #main-content.site-main .article-contents a[aria-current]{color:var(--color-accent);box-shadow:none;font-weight:600}html body.coast-site #main-content.site-main .toc-desktop{display:none}.toc-title{margin:0 0 var(--space-3)}html body.coast-site #main-content.site-main .article-body .code-copy{margin:var(--space-6) 0;border:var(--border-width) solid var(--color-border);border-radius:var(--radius-control);min-width:0;max-width:100%;overflow:hidden}.blog-article .article-body .code-copy-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface);flex-wrap:wrap;display:flex}.blog-article .article-body .code-copy-button{margin-inline-start:0}.blog-article .article-body :is(.code-copy-label,.code-copy-status){font-size:var(--text-meta);color:var(--color-muted)}.blog-article .article-body .code-copy-status:empty{display:none}html body.coast-site #main-content.site-main .code-copy-button:after{content:none}html body.coast-site #main-content.site-main .article-body pre{max-width:100%;padding:var(--space-4);font:var(--text-label)/var(--leading-body) var(--article-code-font);white-space:pre;word-break:normal;overflow-wrap:normal;margin:0;overflow-x:auto;background:var(--color-surface)!important;color:var(--color-text)!important}.article-body code{font-family:var(--article-code-font)}html[data-theme=night] body.coast-site .article-body img{max-width:100%;height:auto;filter:brightness(var(--article-image-brightness))}html body.coast-site #main-content.site-main .article-image-trigger{cursor:zoom-in;background:0 0;border:0;max-width:100%;padding:0;display:block}.article-image-trigger img{display:block}.article-image-dialog{max-width:var(--article-overlay-width);max-height:var(--article-overlay-height);padding:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-card);background:var(--color-bg);color:var(--color-text)}.article-image-dialog::backdrop{background:var(--article-overlay)}.article-image-dialog img{max-width:100%;max-height:calc(var(--article-overlay-height) - var(--control-height) - var(--space-12));object-fit:contain;filter:none;margin:auto;display:block}.article-image-close{margin:0 0 var(--space-3) auto;min-width:var(--control-height);min-height:var(--control-height);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);color:var(--color-title);font:inherit;cursor:pointer;display:block}.article-progress-track{z-index:1000;height:var(--article-progress-height);pointer-events:none;position:fixed;inset:0 0 auto}.article-progress-fill{background:var(--color-accent);width:0;height:100%}.article-ending{max-width:var(--article-width);padding-top:var(--space-8)}.article-ending>:is(section,nav,p){margin-top:var(--space-8)}.article-series{padding:var(--space-4);background:var(--color-surface);border-left:var(--notice-border) solid var(--color-accent)}.article-related ul{padding:0;list-style:none}.article-related li{margin-bottom:var(--space-4)}.article-related time{color:var(--color-muted);display:block}.article-ending a{color:var(--color-accent);text-underline-offset:var(--space-1)}html body.coast-site #main-content.site-main .article-subscribe{padding:var(--space-5) 0;border:0;border-block:var(--border-width) solid var(--color-border);background:0 0;border-radius:0}#comments{scroll-margin-top:calc(var(--masthead-height) + var(--space-6))}#comments p{color:var(--color-muted)}@media (width>=1200px){html body.coast-site #main-content.site-main .has-toc .article-reading{align-items:start;display:grid}.article-body{grid-area:1/1}.toc-mobile{display:none}html body.coast-site #main-content.site-main .toc-desktop{top:calc(var(--masthead-height) + var(--space-6));max-height:calc(100dvh - var(--masthead-height) - var(--space-12));grid-area:1/2;display:block;position:sticky;overflow-y:auto}}@media (prefers-reduced-motion:reduce){html body.coast-site .blog-article *,.article-image-dialog{transition:none!important;animation:none!important}}html[data-motion=off] body.coast-site .blog-article *{transition:none!important;animation:none!important}
