.blog-prose{--bp-text:#1e293b;--bp-body:#334155;--bp-heading:#0f172a;--bp-meta:#475569;--bp-marker:#64748b;--bp-rule:#e2e8f0;--bp-underline:#cbd5e1;--bp-underline-dashed:#94a3b8;--bp-surface:#f8fafc;--bp-code-bg:#f1f5f9;--bp-pre-bg:#0f172a;--bp-pre-text:#f1f5f9;color:var(--bp-text);font-size:1.0625rem;line-height:1.85}.dark .blog-prose{--bp-text:hsl(var(--foreground));--bp-body:hsl(var(--foreground)/0.88);--bp-heading:hsl(var(--foreground));--bp-meta:hsl(var(--muted-foreground));--bp-marker:hsl(var(--muted-foreground));--bp-rule:hsl(var(--border));--bp-underline:hsl(var(--input));--bp-underline-dashed:hsl(var(--input));--bp-surface:hsl(var(--card));--bp-code-bg:hsl(var(--muted));--bp-pre-bg:hsl(var(--card));--bp-pre-text:hsl(var(--foreground))}.blog-prose>*+*{margin-top:1.25em}.blog-prose h2{margin-top:2.5em;margin-bottom:.75em;padding-bottom:.5rem;font-size:1.6rem;font-weight:700;letter-spacing:-.01em;color:var(--bp-heading);border-bottom:1px solid var(--bp-rule)}.blog-prose h3:not(.not-prose *){margin-top:2em;margin-bottom:.5em;font-size:1.25rem;font-weight:700;color:var(--bp-heading)}.blog-prose h4{margin-top:1.5em;font-size:1.05rem;font-weight:700;color:var(--bp-heading)}.blog-prose p:not(.not-prose *){color:var(--bp-body)}.blog-prose strong:not(.not-prose *){color:var(--bp-heading);font-weight:600}.blog-prose a{color:var(--bp-heading);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--bp-underline);text-underline-offset:3px;transition:text-decoration-color .15s ease,color .15s ease}.blog-prose a:hover{color:var(--bp-heading);text-decoration-color:var(--bp-heading)}.blog-prose ol:not(.not-prose *),.blog-prose ul:not(.not-prose *){padding-left:1.5rem}.blog-prose ul:not(.not-prose *){list-style:disc}.blog-prose ol:not(.not-prose *){list-style:decimal}.blog-prose li:not(.not-prose *){margin-top:.4em;color:var(--bp-body)}.blog-prose li:not(.not-prose *)::marker{color:var(--bp-marker)}.blog-prose blockquote{margin:1.75em 0;padding:1.1rem 1.4rem;background:var(--bp-surface);border:1px solid var(--bp-rule);border-radius:.875rem;color:var(--bp-text);position:relative}.blog-prose blockquote p{margin:0;color:var(--bp-body)}.blog-prose blockquote>*+*{margin-top:.5em}.blog-prose blockquote strong{color:var(--bp-heading)}.blog-prose code:not(.not-prose *){font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.92em;padding:.15em .4em;background:var(--bp-code-bg);border:1px solid var(--bp-rule);border-radius:.375rem;color:var(--bp-heading)}.blog-prose pre{margin:1.5em 0;padding:1.1rem 1.25rem;background:var(--bp-pre-bg);color:var(--bp-pre-text);border-radius:.75rem;overflow-x:auto;font-size:.92em;line-height:1.65}.blog-prose pre code,.blog-prose pre code:not(.not-prose *){padding:0;background:transparent;border:0;color:inherit}.blog-prose table{width:100%;margin:0;border-collapse:separate;border-spacing:0;font-size:.95em}.blog-prose thead{background:var(--bp-surface)}.blog-prose td,.blog-prose th{padding:.65rem .85rem;border-bottom:1px solid var(--bp-rule);text-align:left;vertical-align:top;min-width:6rem}.blog-prose td:first-child,.blog-prose th:first-child{border-left:1px solid var(--bp-rule)}.blog-prose td:last-child,.blog-prose th:last-child{border-right:1px solid var(--bp-rule)}.blog-prose thead th{font-weight:600;color:var(--bp-heading);border-top:1px solid var(--bp-rule)}.blog-prose thead th:first-child{border-top-left-radius:.5rem}.blog-prose thead th:last-child{border-top-right-radius:.5rem}.blog-prose tbody tr:last-child td:first-child{border-bottom-left-radius:.5rem}.blog-prose tbody tr:last-child td:last-child{border-bottom-right-radius:.5rem}.blog-prose hr{margin:2.5em 0;border:0;border-top:1px solid var(--bp-rule)}.blog-prose .footnotes{margin-top:3em;padding-top:1.5em;border-top:1px solid var(--bp-rule);font-size:.9em;color:var(--bp-meta)}.blog-prose .footnotes ol{padding-left:1.25rem}.blog-prose .footnotes li{color:var(--bp-meta)}.blog-prose .footnotes p{display:inline;color:var(--bp-meta)}.blog-prose .data-footnote-backref{text-decoration:none;margin-left:.35em}.blog-prose sup{font-weight:600}.blog-prose sup a{color:var(--bp-heading);text-decoration:none;padding:0 .15em;border-bottom:1px dashed var(--bp-underline-dashed);transition:border-color .15s ease}.blog-prose sup a:hover{border-bottom-color:var(--bp-heading)}