.blog-prose{font-family:var(--font-editorial)}.blog-prose>p,.blog-prose>ul,.blog-prose>ol,.blog-prose>blockquote{max-width:72ch}.blog-prose h2{margin-top:2rem;margin-bottom:.75rem;scroll-margin-top:8rem;font-family:var(--font-mono);font-size:1.25rem;line-height:1.75rem;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}@media(min-width:640px){.blog-prose h2{font-size:1.5rem;line-height:2rem}}@media(min-width:1024px){.blog-prose h2{margin-top:2.5rem;margin-bottom:1rem;font-size:1.625rem}}.blog-prose h3{margin-top:1.5rem;margin-bottom:.75rem;scroll-margin-top:8rem;font-family:var(--font-mono);font-size:1.125rem;line-height:1.75rem;font-weight:600;letter-spacing:-.02em;color:hsl(var(--foreground))}@media(min-width:1024px){.blog-prose h3{margin-top:2rem;margin-bottom:.75rem;font-size:1.25rem;line-height:1.75rem}}.blog-prose .expressive-code{margin-bottom:1.5rem}.blog-prose code:not(pre code){border-radius:.25rem;padding:.125rem .5rem;font-family:var(--font-mono);font-size:.75rem;line-height:1rem;border:1px solid hsl(var(--code-border));background:hsl(var(--code-bg))}.blog-prose blockquote{margin-top:1.5rem;margin-bottom:1.5rem;border-left-width:2px;border-color:hsl(var(--border));padding-left:1rem;color:hsl(var(--muted-foreground))}.blog-prose table{margin-bottom:1.5rem;width:100%;min-width:50rem;border-collapse:collapse;font-size:.875rem;line-height:1.25rem}.blog-prose thead{border-bottom-width:1px;border-color:hsl(var(--border))}.blog-prose th{padding:.5rem .75rem;text-align:left;font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:hsl(var(--muted-foreground))}.blog-prose td{padding:.5rem .75rem;vertical-align:top;font-size:.875rem;line-height:1.25rem}.blog-prose tr{border-bottom-width:1px;border-color:hsl(var(--border) / .4);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.blog-prose tr:hover{background-color:hsl(var(--secondary))}.blog-prose td:first-child{font-weight:500;color:hsl(var(--foreground))}.blog-prose td:not(:first-child){white-space:nowrap}.blog-prose .table-wrapper{position:relative;margin-bottom:1.5rem;overflow-x:auto;border-radius:var(--radius);border-width:1px;border-color:hsl(var(--border))}.blog-prose a{color:hsl(var(--link));text-decoration-line:underline;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.blog-prose a:hover{color:hsl(var(--foreground))}.blog-prose ul{margin-bottom:1rem;margin-left:1.5rem;list-style-type:disc}.blog-prose ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.blog-prose ol{margin-bottom:1rem;margin-left:1.5rem;list-style-type:decimal}.blog-prose ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.blog-prose p{margin-bottom:1rem;line-height:175%}.blog-prose strong{color:hsl(var(--foreground))}.blog-prose li{overflow-wrap:break-word}.blog-prose hr{margin-top:2rem;margin-bottom:2rem;border-color:hsl(var(--border))}[data-toc-link][aria-current=true]{color:hsl(var(--foreground));border-left-color:hsl(var(--primary))}[data-toc-link]{border-left:2px solid transparent;padding-left:.75rem}.table-wrapper{position:relative;overflow-x:auto}.table-wrapper:after{content:"";position:absolute;top:0;right:0;bottom:0;width:3rem;background:linear-gradient(to right,transparent,hsl(var(--background)));pointer-events:none;opacity:1;transition:opacity .2s}.table-wrapper.scrolled-end:after{opacity:0}.scroll-hint{position:absolute;top:.4rem;right:.3rem;font-family:JetBrains Mono,monospace;font-size:.6rem;color:hsl(var(--muted-foreground));opacity:.7;pointer-events:none;z-index:2;white-space:nowrap}.table-wrapper.scrolled-end .scroll-hint{opacity:0;transition:opacity .2s}
