.blog-prose{hanging-punctuation:first;padding-bottom:.75rem}@media (min-width:48rem){.blog-prose{padding-bottom:2.5rem}}.blog-prose>:first-child{margin-top:0}.blog-prose>:last-child{margin-bottom:0}.blog-prose .post-header{margin-bottom:3rem}.blog-prose .post{position:relative}.blog-prose .post-toc-rail{width:min(11rem,50vw - 50% - 5rem);display:none;position:absolute;top:0;bottom:0;left:calc(100% + 3.5rem)}@media (min-width:80rem){.blog-prose .post-toc-rail{display:block}}.blog-prose .post-toc{border-right:1px solid var(--color-gray-600);position:sticky;top:6rem}.blog-prose .post-toc ol{margin:0;padding:0;list-style:none}.blog-prose .post-toc li{text-align:right;margin:0;padding:.25rem .75rem .25rem 0}.blog-prose .post-toc a{color:var(--color-gray-1000);transition:color .15s var(--ease-out-strong);font-size:.875rem;line-height:1.42857;text-decoration:none;display:block}.blog-prose .post-toc a[aria-current]{color:var(--color-gray-1200)}@media (hover:hover) and (pointer:fine){.blog-prose .post-toc a:hover{color:var(--color-gray-1200)}}.blog-prose .post-toc-marker{background:var(--color-gray-900);transform-origin:top;width:1px;height:1px;transition:transform .3s var(--ease-out-strong);position:absolute;top:0;right:-1px}@media (prefers-reduced-motion:reduce){.blog-prose .post-toc-marker{transition:none}}.blog-prose h2[id]{scroll-margin-top:2rem}.blog-prose .post-title{color:var(--color-gray-1200);margin:0;font-weight:500;line-height:1.3}.blog-prose .post-subtitle{color:var(--color-gray-1100);margin:0}.blog-prose .post-date{color:var(--color-gray-1000);font-size:.875rem;display:block}.blog-prose .post-cover{margin-top:0;margin-bottom:2rem}.blog-prose .blog-content .media-frame{margin-block:2rem}.blog-prose .blog-content>:first-child{margin-top:0}.blog-prose p{color:var(--color-paragraph);margin:0 0 1.75rem}.blog-prose strong{color:var(--color-gray-1200);font-weight:600}.blog-prose em{font-family:blogSerif,"Blog Serif Fallback",var(--font-inter-sans);font-style:italic}.blog-prose :is(h1,h2,h3,h4){color:var(--color-gray-1200);margin:6rem 0 1.25rem;font-weight:500;line-height:1.3}.blog-prose :is(h3,h4){margin-top:3rem}.blog-prose :is(h1,h2,h3,h4)+*{margin-top:0}.blog-prose h2{align-items:center;gap:.75rem;display:flex}.blog-prose h2:after{content:"";background:var(--code-block-border);flex:1 0 2rem;height:1px}.blog-prose a{color:var(--color-gray-1200)}.blog-prose ul,.blog-prose ol{color:var(--color-paragraph);margin:0 0 1.75rem;padding-inline-start:1.5rem}.blog-prose ul{list-style-type:disc}.blog-prose ol{list-style-type:decimal}.blog-prose li{margin-block:.5rem}.blog-prose li::marker{color:var(--color-gray-1000);font-weight:400}.blog-prose ul ul,.blog-prose ul ol,.blog-prose ol ul,.blog-prose ol ol{margin-block:.5rem}.blog-prose .media-frame{border:1px solid var(--code-block-border);border-radius:.75rem;overflow:hidden}:where(.blog-prose .media-frame) :is(img,video){width:100%;display:block}.blog-prose blockquote{border-inline-start:2px solid var(--color-gray-600);color:var(--color-gray-1000);margin-block:1.75rem;padding-inline-start:1.5rem}.blog-prose hr{border-top:1px solid var(--color-gray-600);margin-block:2rem}.blog-prose img{margin:0}.blog-prose figure{margin-block:2rem}.blog-prose figcaption{color:var(--color-gray-1000);margin-top:.75rem}.blog-prose table{text-align:start;width:100%;margin-block:2rem}.blog-prose thead,.blog-prose tbody tr{border-bottom:1px solid var(--color-gray-600)}.blog-prose th,.blog-prose td{text-align:start;vertical-align:baseline;padding:.5rem}.blog-prose th:first-child,.blog-prose td:first-child{padding-inline-start:0}.blog-prose th:last-child,.blog-prose td:last-child{padding-inline-end:0}.blog-prose code{white-space:pre;min-width:fit-content;font-family:var(--font-berkeley-mono);color:var(--color-gray-1200);font-weight:400}.blog-prose a code{color:var(--color-gray-1000)}@media (hover:hover){.blog-prose a code:hover{color:var(--color-gray-1200)}}.blog-prose pre{font-family:var(--font-berkeley-mono);scrollbar-width:thin;scrollbar-color:var(--color-gray-700)transparent;padding:1rem;padding-bottom:max(0px,calc(1rem - var(--scrollbar-size,0px)));margin:0;font-size:.8125rem;line-height:1.53846;overflow-x:scroll}@media (hover:hover){.blog-prose pre{scrollbar-color:transparent transparent}.blog-prose .code-block:hover pre{scrollbar-color:var(--color-gray-700)transparent}}.blog-prose pre code{min-width:0;font-size:inherit;font-weight:430;line-height:inherit;background:0 0;border:0;border-radius:0;padding:0}.blog-prose p code,.blog-prose li code{background:var(--color-gray-200);border:1px solid var(--code-block-border);color:var(--color-gray-1200);white-space:break-spaces;letter-spacing:0;border-radius:.25rem;padding:2px .25rem;font-size:.875rem}.shiki{font-variant-ligatures:none}.shiki,.shiki span{color:var(--shiki-light);background-color:var(--code-background)!important}.shiki span{font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);-webkit-text-decoration:var(--shiki-light-text-decoration);text-decoration:var(--shiki-light-text-decoration)}.shiki span[style*=--shiki-light-font-weight\:bold]{font-weight:600}.dark .shiki,.dark .shiki span{color:var(--shiki-dark)}.dark .shiki span{font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);-webkit-text-decoration:var(--shiki-dark-text-decoration);text-decoration:var(--shiki-dark-text-decoration)}.dark .shiki span[style*=--shiki-dark-font-weight\:bold]{font-weight:600}pre code span{letter-spacing:normal}:root{--code-block-border:var(--color-gray-300)}.blog-prose{--code-background:#fefefe}@supports (color:lab(0% 0 0)){.blog-prose{--code-background:lab(99.652% 0 0)}}.dark .blog-prose{--code-background:#0d0d0d}@supports (color:lab(0% 0 0)){.dark .blog-prose{--code-background:lab(3.6999% 0 0)}}.blog-prose .code-block{background:var(--code-background);border-radius:.75rem;margin-block:2rem;padding:1px;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000d}.dark .blog-prose .code-block{box-shadow:none}.blog-prose .code-block:after{content:"";border:1px solid var(--code-block-border);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.blog-prose .code-header{background:var(--code-background);box-shadow:0 0 0 1px var(--code-block-border),0 1px 2px 0 #0000000d;color:var(--color-gray-1000);font-family:var(--font-berkeley-mono);border-radius:.5rem;align-items:center;gap:.5rem;margin:.25rem .25rem 0;padding:.25rem .25rem .25rem .75rem;font-size:.75rem;line-height:1.33333;display:flex;position:relative}.dark .blog-prose .code-header{background:var(--color-gray-100);box-shadow:0 0 0 1px var(--code-block-border)}.blog-prose .code-icon{flex-shrink:0;width:.875rem;height:.875rem}.blog-prose .code-icon-terminal{color:var(--color-gray-1200)}.blog-prose .code-icon-text{color:var(--color-gray-1000)}.blog-prose .code-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media not (min-width:41.0625rem){.blog-prose .code-block,.blog-prose .media-frame{border-radius:0;margin-inline:-1.25rem}.blog-prose .code-block{padding-inline:0}.blog-prose .code-block:after,.blog-prose .media-frame{border-inline-width:0}.blog-prose pre{padding-inline:1.25rem}.blog-prose .code-header{box-shadow:0 1px 0 0 var(--code-block-border),0 1px 2px 0 #0000000d;border-radius:0;margin:0;padding-inline:1.25rem .75rem}.dark .blog-prose .code-header{box-shadow:0 1px 0 0 var(--code-block-border)}}.blog-prose .copy-button{width:1.75rem;height:1.75rem;color:var(--color-gray-1000);cursor:pointer;transition:color .15s var(--ease-out-strong),background-color .15s var(--ease-out-strong),scale .16s var(--ease-out-strong);border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:auto;display:flex;position:relative}.blog-prose .copy-button:active{scale:.95}@media (prefers-reduced-motion:reduce){.blog-prose .copy-button:active{scale:none}}@media (hover:hover) and (pointer:fine){.blog-prose .copy-button:hover{background:var(--color-gray-300);color:var(--color-gray-1200)}}.blog-prose .copy-icon{transition-property:opacity,scale,filter;transition-duration:.25s;transition-timing-function:var(--ease-out-strong);display:flex;position:absolute}.blog-prose .copy-icon-check,.blog-prose .copy-button[data-copied] .copy-icon-copy{opacity:0;filter:blur(2px);scale:.85}.blog-prose .copy-button[data-copied] .copy-icon-check{opacity:1;filter:none;scale:1}@media (prefers-reduced-motion:reduce){.blog-prose .copy-icon{transition-property:opacity}.blog-prose .copy-icon-check,.blog-prose .copy-button[data-copied] .copy-icon-copy{filter:none;scale:none}}
