.blog-prose_prose__ScCPO{--prose-body:color-mix(in oklab,var(--foreground) 86%,var(--background));--prose-soft:color-mix(in oklab,var(--foreground) 72%,var(--background));--prose-rule:var(--border);counter-reset:section;max-width:70ch;font-size:1.0625rem;line-height:1.75;color:var(--prose-body);overflow-wrap:break-word;font-kerning:normal}@media (min-width:768px){.blog-prose_prose__ScCPO{font-size:1.125rem}}.blog-prose_prose__ScCPO>:first-child{margin-top:0}.blog-prose_prose__ScCPO>p:first-child{font-size:1.12em;line-height:1.7;color:var(--foreground)}.blog-prose_prose__ScCPO p{margin:0 0 1.35em}.blog-prose_prose__ScCPO h2,.blog-prose_prose__ScCPO h3,.blog-prose_prose__ScCPO h4{color:var(--foreground);font-family:var(--font-geist-sans),ui-sans-serif,system-ui,sans-serif;font-weight:700;letter-spacing:-.018em;line-height:1.25;text-wrap:balance;scroll-margin-top:calc(var(--chrome-h, 3.25rem) + 1.5rem)}.blog-prose_prose__ScCPO h2{counter-increment:section;font-size:clamp(1.4rem,1.15rem + .9vw,1.8rem);margin:2.6em 0 .75em}.blog-prose_prose__ScCPO h2:before{content:counter(section,decimal-leading-zero);content:counter(section,decimal-leading-zero) /"";display:block;margin-bottom:.6rem;font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:600;letter-spacing:.14em;color:var(--primary)}.blog-prose_prose__ScCPO h3{font-size:clamp(1.15rem,1.05rem + .4vw,1.3rem);font-weight:650;margin:2em 0 .6em}.blog-prose_prose__ScCPO h4{font-size:1.05rem;font-weight:650;margin:1.75em 0 .5em}.blog-prose_prose__ScCPO .blog-prose_headingAnchor__KRoLY{margin-left:.4em;padding:0 .15em;border-radius:.25rem;color:var(--muted-foreground);font-weight:500;text-decoration:none;opacity:0}.blog-prose_prose__ScCPO h2:hover .blog-prose_headingAnchor__KRoLY,.blog-prose_prose__ScCPO h3:hover .blog-prose_headingAnchor__KRoLY{opacity:1;color:var(--primary)}@media (hover:none){.blog-prose_prose__ScCPO .blog-prose_headingAnchor__KRoLY{opacity:.45}}.blog-prose_prose__ScCPO a{color:var(--primary);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in oklab,var(--primary) 45%,transparent);text-underline-offset:.2em}.blog-prose_prose__ScCPO a:hover{text-decoration-color:var(--primary)}.blog-prose_prose__ScCPO a:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:.25rem}.blog-prose_prose__ScCPO strong{color:var(--foreground);font-weight:650}.blog-prose_prose__ScCPO :not(pre)>code{padding:.12em .38em;border:1px solid color-mix(in oklab,var(--primary) 20%,transparent);border-radius:.375rem;background:color-mix(in oklab,var(--primary) 9%,transparent);color:var(--foreground);font-size:.84em;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}.blog-prose_prose__ScCPO :not(pre)>code,.blog-prose_prose__ScCPO kbd{font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace}.blog-prose_prose__ScCPO kbd{padding:.1em .4em;border:solid var(--border);border-width:1px 1px 2px;border-radius:.3rem;font-size:.82em}.blog-prose_prose__ScCPO ol,.blog-prose_prose__ScCPO ul{margin:0 0 1.4em;padding-left:1.35em}.blog-prose_prose__ScCPO ul{list-style:disc}.blog-prose_prose__ScCPO ol{list-style:decimal}.blog-prose_prose__ScCPO li{margin:.45em 0;padding-left:.3em}.blog-prose_prose__ScCPO li>ol,.blog-prose_prose__ScCPO li>ul{margin:.4em 0 .6em}.blog-prose_prose__ScCPO ul>li::marker{color:var(--primary)}.blog-prose_prose__ScCPO ol>li::marker{color:var(--primary);font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;font-weight:600}.blog-prose_prose__ScCPO blockquote{margin:2em 0;padding:.9em 1.25em;border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;background:color-mix(in oklab,var(--secondary) 45%,transparent);color:var(--foreground)}.blog-prose_prose__ScCPO blockquote>:last-child{margin-bottom:0}.blog-prose_prose__ScCPO hr{height:1px;margin:3em 0;border:0;background:var(--prose-rule)}.blog-prose_prose__ScCPO img{display:block;max-width:100%;height:auto;margin:2em auto;border:1px solid var(--border);border-radius:calc(var(--radius) + 6px);box-shadow:0 24px 48px -28px color-mix(in oklab,black 60%,transparent)}.blog-prose_prose__ScCPO p:has(>img:only-child){margin:0}.blog-prose_tableWrap__nGQOA{--table-shade:color-mix(in oklab,var(--foreground) 22%,transparent);margin:2em 0;overflow-x:auto;border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:linear-gradient(to right,var(--background) 40%,transparent) 0 /2.5rem 100% no-repeat local,linear-gradient(to left,var(--background) 40%,transparent) 100% /2.5rem 100% no-repeat local,radial-gradient(farthest-side at 0 50%,var(--table-shade),transparent) 0 /.9rem 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,var(--table-shade),transparent) 100% /.9rem 100% no-repeat scroll;background-color:var(--background)}.blog-prose_tableWrap__nGQOA:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.blog-prose_tableWrap__nGQOA table{width:100%;border-collapse:collapse;font-size:.9em;font-variant-numeric:tabular-nums}.blog-prose_tableWrap__nGQOA td,.blog-prose_tableWrap__nGQOA th{padding:.65em .95em;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.blog-prose_tableWrap__nGQOA th{background:color-mix(in oklab,var(--secondary) 60%,transparent);color:var(--foreground);font-weight:600;white-space:nowrap}.blog-prose_tableWrap__nGQOA tbody tr:last-child td{border-bottom:0}.blog-prose_codeBlock__dBPf8{--code-bg:var(--foreground);--code-fg:color-mix(in oklab,white 88%,var(--code-bg));--code-muted:color-mix(in oklab,white 64%,var(--code-bg));--code-edge:color-mix(in oklab,white 12%,var(--code-bg));--code-accent:color-mix(in oklab,var(--primary),white 40%);margin:2em 0;overflow:hidden;border:1px solid var(--code-edge);border-radius:calc(var(--radius) + 4px);background:var(--code-bg);color:var(--code-fg);box-shadow:0 18px 40px -30px color-mix(in oklab,black 70%,transparent)}.dark .blog-prose_codeBlock__dBPf8{--code-bg:var(--card);--code-edge:var(--border);--code-accent:var(--primary)}.blog-prose_codeHeader___gTwj{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.5rem;padding:.3rem .4rem .3rem 1rem;border-bottom:1px solid var(--code-edge);background:color-mix(in oklab,white 4%,var(--code-bg))}.blog-prose_codeLang__t360y{display:inline-flex;align-items:center;gap:.5rem;color:var(--code-muted);font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.blog-prose_codeLang__t360y:before{content:"";width:.45rem;height:.45rem;border-radius:999px;background:var(--code-accent)}.blog-prose_copyButton__Kklu4{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;padding:.25rem .6rem;border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--code-muted);font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;cursor:pointer}.blog-prose_copyButton__Kklu4:hover{border-color:var(--code-edge);color:var(--code-fg)}.blog-prose_copyButton__Kklu4:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.blog-prose_copyButton__Kklu4[data-state=copied]{color:var(--code-accent)}.blog-prose_codeBlock__dBPf8 pre{margin:0;padding:1rem 1.25rem 1.15rem;overflow-x:auto;background:transparent;font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;line-height:1.7;tab-size:2}.blog-prose_codeBlock__dBPf8 pre:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.blog-prose_codeBlock__dBPf8 .hljs-comment,.blog-prose_codeBlock__dBPf8 .hljs-quote{color:var(--code-muted)}.blog-prose_codeBlock__dBPf8 pre code,.blog-prose_codeBlock__dBPf8 pre code.hljs{display:block;padding:0;overflow:visible;background:transparent;color:inherit;font-size:inherit;white-space:pre}@media (prefers-reduced-motion:no-preference){.blog-prose_copyButton__Kklu4,.blog-prose_headingAnchor__KRoLY,.blog-prose_prose__ScCPO a{transition:opacity .16s ease,color .16s ease,border-color .16s ease,text-decoration-color .16s ease}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}