.blog-prose{--prose-body:hsl(var(--foreground)/0.84);--prose-strong:hsl(var(--foreground));--prose-muted:hsl(var(--muted-foreground));--prose-rule:hsl(var(--border));color:var(--prose-body);font-size:1.0625rem;line-height:1.8;overflow-wrap:break-word}.blog-prose>:first-child{margin-top:0}.blog-prose .table-wrap,.blog-prose blockquote,.blog-prose figure,.blog-prose hr,.blog-prose ol,.blog-prose p,.blog-prose pre,.blog-prose ul{margin:1.35em 0}.blog-prose>p:first-child{font-size:1.1875rem;line-height:1.75;color:hsl(var(--foreground)/.92)}.blog-prose h2,.blog-prose h3,.blog-prose h4{position:relative;color:var(--prose-strong);font-family:var(--font-display),var(--font-sans),system-ui,sans-serif;font-weight:600;letter-spacing:-.015em;scroll-margin-top:6rem}.blog-prose h2{margin:2.6em 0 .8em;font-size:1.625rem;line-height:1.25}.blog-prose h2:before,.blog-section-title:before{content:"";display:block;width:2.5rem;height:3px;margin-bottom:1rem;border-radius:999px;background-image:linear-gradient(100deg,hsl(var(--primary)),hsl(var(--teal)))}.blog-prose h3{margin:2em 0 .6em;font-size:1.25rem;line-height:1.35}.blog-prose h4{margin:1.8em 0 .5em;font-size:1.0625rem}@media (min-width:640px){.blog-prose h2{font-size:1.875rem}.blog-prose h3{font-size:1.375rem}}.blog-prose .heading-anchor{margin-left:.4em;color:hsl(var(--muted-foreground)/0);font-weight:500;text-decoration:none;transition:color .15s}.blog-prose h2:hover .heading-anchor,.blog-prose h3:hover .heading-anchor{color:hsl(var(--muted-foreground)/.7)}.blog-prose a{color:hsl(var(--primary));font-weight:500;text-decoration:underline;text-decoration-color:hsl(var(--primary)/.35);text-decoration-thickness:1px;text-underline-offset:4px;transition:text-decoration-color .15s}.blog-prose a:hover{text-decoration-color:hsl(var(--primary))}.blog-prose a[target=_blank]:not(.heading-anchor):after{content:"\2060↗";font-size:.75em;opacity:.7}.blog-prose strong{color:var(--prose-strong);font-weight:600}.blog-prose ol,.blog-prose ul{padding-left:0;list-style:none}.blog-prose li{position:relative;margin:.55em 0;padding-left:1.9em}.blog-prose ul>li:before{content:"";position:absolute;left:.45em;top:.72em;width:.4em;height:.4em;border-radius:999px;background-image:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--teal)))}.blog-prose ol{counter-reset:prose-ol}.blog-prose ol>li{counter-increment:prose-ol}.blog-prose ol>li:before{content:counter(prose-ol);position:absolute;left:0;top:.3em;display:flex;align-items:center;justify-content:center;width:1.45em;height:1.45em;border-radius:999px;background:hsl(var(--primary)/.1);color:hsl(var(--primary));font-size:.8em;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.blog-prose li>ol,.blog-prose li>p,.blog-prose li>ul{margin:.4em 0}.blog-prose li.task-list-item{padding-left:1.9em}.blog-prose li.task-list-item:before{display:none}.blog-prose li.task-list-item input[type=checkbox]{position:absolute;left:.2em;top:.5em;accent-color:hsl(var(--primary))}.blog-prose blockquote{position:relative;padding:1.1em 1.4em 1.1em 1.5em;border-radius:0 1rem 1rem 0;background:hsl(var(--primary)/.05);color:hsl(var(--foreground)/.9);font-size:1.0625em}.blog-prose blockquote:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:999px;background-image:linear-gradient(180deg,hsl(var(--primary)),hsl(var(--teal)))}.blog-prose blockquote>:first-child{margin-top:0}.blog-prose blockquote>:last-child{margin-bottom:0}.blog-prose figure{margin:2.2em 0}.blog-prose img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:1rem;border:1px solid hsl(var(--border)/.8);background:hsl(var(--surface))}.blog-prose figure img{max-height:80vh;width:auto}.blog-prose figcaption{margin-top:.75em;color:var(--prose-muted);font-size:.875rem;line-height:1.5;text-align:center}.blog-prose .table-wrap{overflow-x:auto;border:1px solid var(--prose-rule);border-radius:.875rem;background:hsl(var(--card))}.blog-prose table{width:100%;min-width:32rem;border-collapse:collapse;font-size:.9375rem;line-height:1.55;text-align:left}.blog-prose thead{background:hsl(var(--surface)/.8)}.blog-prose th{padding:.8em 1em;color:var(--prose-strong);font-weight:600;white-space:nowrap}.blog-prose td{padding:.8em 1em;border-top:1px solid var(--prose-rule);vertical-align:top}.blog-prose tbody tr:nth-child(2n) td{background:hsl(var(--surface)/.35)}.blog-prose td:first-child{color:var(--prose-strong);font-weight:500}.blog-prose code{padding:.15em .4em;border-radius:.375rem;background:hsl(var(--muted));color:var(--prose-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875em}.blog-prose pre{overflow-x:auto;padding:1em 1.2em;border-radius:.875rem;border:1px solid var(--prose-rule);background:hsl(var(--surface));font-size:.875rem;line-height:1.65}.blog-prose pre code{padding:0;background:none}.blog-prose hr{height:1px;margin:2.5em 0;border:0;background:var(--prose-rule)}.blog-prose .footnotes,.blog-prose del{color:var(--prose-muted)}.blog-prose .footnotes{margin-top:3em;padding-top:1.2em;border-top:1px solid var(--prose-rule);font-size:.875rem}.blog-prose sup a{text-decoration:none}.blog-progress{transform-origin:0 50%;transform:scaleX(0);will-change:transform}