:root{--border-radius:12px;--font-mono:ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",monospace}@layer base{*{box-sizing:border-box;padding:0;margin:0}body{color:var(--site-foreground);background:var(--site-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a,a:active,a:hover,a:link,a:visited{color:var(--accent-text);text-decoration:none}}@layer base{main :where(p,li) a:any-link{padding-inline:.02em;background-color:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--prose-link-text,var(--accent-text));text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent);text-underline-offset:.18em}}.dark{--prose-link-text:oklch(0.72 0.18 285)}@layer base{main :where(p,li) a:focus-visible,main :where(p,li) a:hover{background-color:color-mix(in srgb,var(--accent) 16%,transparent);text-decoration-style:solid;text-decoration-color:currentColor}main :where(p,li) a:focus-visible{border-radius:.15em;outline:2px solid var(--accent);outline-offset:2px}}.katex{font-size:1em}.katex-display{display:block;margin:1.5em 0;text-align:center}.katex-error{color:#cc0000!important;font-size:.9em;font-style:italic}.blog-post-body{color:var(--site-foreground)}.blog-post-body a{color:var(--accent-text)}.blog-post-body h1,.blog-post-body h2,.blog-post-body h3,.blog-post-body h4,.blog-post-body h5,.blog-post-body h6{font-weight:700;line-height:1.25;color:var(--site-foreground);margin-top:1.4em;margin-bottom:.4em}.blog-post-body h1{font-size:2.25rem;line-height:1.2;margin-top:.8em}.blog-post-body h2{font-size:1.75rem}.blog-post-body h3{font-size:1.375rem}.blog-post-body h4{font-size:1.2rem}.blog-post-body h5{font-size:1.05rem}.blog-post-body h5,.blog-post-body h6{text-transform:uppercase;letter-spacing:.04em}.blog-post-body h6{font-size:.95rem;color:var(--site-subtle)}.blog-post-body p{margin:0 0 1em}.blog-post-body p:empty{min-height:1.8em}.blog-post-body ul{list-style-type:disc}.blog-post-body ol{list-style-type:decimal}.blog-post-body ol,.blog-post-body ul{padding-left:2.5em;margin-left:0}.blog-post-body li{margin:.25em 0}.blog-post-body li>p{margin:0}.blog-post-body figure{margin:1.25em auto;max-width:100%;text-align:center}.blog-post-body img{display:block;margin:1em auto;max-width:100%;height:auto;border-radius:8px}.blog-post-body figure img{margin:0 auto}.blog-post-body figcaption{display:block;margin-top:.5em;font-size:.8125rem;line-height:1.45;color:var(--site-subtle);font-style:italic;text-align:center;width:80%;margin-left:auto;margin-right:auto}.blog-post-body [data-attachment]{display:flex;align-items:center;gap:.75rem;width:100%;margin:1.25em 0;padding:.625rem;overflow:hidden;border:1px solid var(--site-border);border-radius:.75rem;background:var(--site-panel)}.blog-post-body [data-attachment] .attachment-preview{display:grid;flex:0 0 3.5rem;width:3.5rem;height:3.5rem;place-items:center;overflow:hidden;border-radius:.5rem;color:var(--site-subtle);background:var(--site-panel-hover)}.blog-post-body [data-attachment] .attachment-preview img{width:100%;height:100%;margin:0;border-radius:.5rem;object-fit:cover}.blog-post-body [data-attachment] .attachment-icon{font-size:.6875rem;font-weight:700;letter-spacing:.04em}.blog-post-body [data-attachment] .attachment-details{display:flex;min-width:0;flex:1;flex-direction:column}.blog-post-body [data-attachment] .attachment-meta,.blog-post-body [data-attachment] .attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blog-post-body [data-attachment] .attachment-name{color:var(--site-foreground);font-size:.9375rem;font-weight:600}.blog-post-body [data-attachment] .attachment-meta{margin-top:.125rem;color:var(--site-subtle);font-size:.75rem}.blog-post-body [data-attachment] a.attachment-download{display:inline-flex;min-width:2.75rem;min-height:2.75rem;flex:0 0 auto;align-items:center;justify-content:center;padding:0 .75rem;border-radius:999px;font-size:.8125rem;font-weight:600;text-decoration:none}.blog-post-body [data-attachment] a.attachment-download:hover,.blog-post-body pre{background:var(--site-panel-hover)}.blog-post-body pre{border-radius:6px;padding:.75em 1em;font-family:var(--font-mono);font-size:.875rem;line-height:1.5;overflow-x:auto;color:var(--site-foreground)}.blog-post-body pre code{background:transparent;padding:0;color:inherit;font-family:inherit;font-size:inherit}.blog-post-body code{background:var(--site-panel-hover);border-radius:4px;padding:.1em .4em;font-family:var(--font-mono);font-size:.9em}.blog-post-body pre .hljs-comment,.blog-post-body pre .hljs-quote{color:#a0a1a7;font-style:italic}.blog-post-body pre .hljs-doctag,.blog-post-body pre .hljs-keyword,.blog-post-body pre .hljs-name,.blog-post-body pre .hljs-section,.blog-post-body pre .hljs-selector-tag,.blog-post-body pre .hljs-tag{color:#a626a4}.blog-post-body pre .hljs-attr,.blog-post-body pre .hljs-meta-string,.blog-post-body pre .hljs-regexp,.blog-post-body pre .hljs-string{color:#50a14f}.blog-post-body pre .hljs-link,.blog-post-body pre .hljs-literal,.blog-post-body pre .hljs-number,.blog-post-body pre .hljs-template-variable,.blog-post-body pre .hljs-variable{color:#986801}.blog-post-body pre .hljs-attribute,.blog-post-body pre .hljs-function,.blog-post-body pre .hljs-symbol,.blog-post-body pre .hljs-title,.blog-post-body pre .hljs-title.function_{color:#4078f2}.blog-post-body pre .hljs-built_in,.blog-post-body pre .hljs-class .hljs-title,.blog-post-body pre .hljs-params,.blog-post-body pre .hljs-type{color:#c18401}.blog-post-body pre .hljs-meta,.blog-post-body pre .hljs-meta-keyword,.blog-post-body pre .hljs-selector-attr,.blog-post-body pre .hljs-selector-class,.blog-post-body pre .hljs-selector-id,.blog-post-body pre .hljs-selector-pseudo{color:#e45649}.blog-post-body pre .hljs-deletion{background:#ffeef0;color:#b31d28}.blog-post-body pre .hljs-addition{background:#f0fff4;color:#22863a}.blog-post-body pre .hljs-emphasis{font-style:italic}.blog-post-body pre .hljs-strong{font-weight:700}.dark .blog-post-body pre .hljs-comment,.dark .blog-post-body pre .hljs-quote{color:#5c6370}.dark .blog-post-body pre .hljs-doctag,.dark .blog-post-body pre .hljs-keyword,.dark .blog-post-body pre .hljs-name,.dark .blog-post-body pre .hljs-section,.dark .blog-post-body pre .hljs-selector-tag,.dark .blog-post-body pre .hljs-tag{color:#c678dd}.dark .blog-post-body pre .hljs-attr,.dark .blog-post-body pre .hljs-meta-string,.dark .blog-post-body pre .hljs-regexp,.dark .blog-post-body pre .hljs-string{color:#98c379}.dark .blog-post-body pre .hljs-link,.dark .blog-post-body pre .hljs-literal,.dark .blog-post-body pre .hljs-number,.dark .blog-post-body pre .hljs-template-variable,.dark .blog-post-body pre .hljs-variable{color:#d19a66}.dark .blog-post-body pre .hljs-attribute,.dark .blog-post-body pre .hljs-function,.dark .blog-post-body pre .hljs-symbol,.dark .blog-post-body pre .hljs-title,.dark .blog-post-body pre .hljs-title.function_{color:#61afef}.dark .blog-post-body pre .hljs-built_in,.dark .blog-post-body pre .hljs-class .hljs-title,.dark .blog-post-body pre .hljs-params,.dark .blog-post-body pre .hljs-type{color:#e5c07b}.dark .blog-post-body pre .hljs-meta,.dark .blog-post-body pre .hljs-meta-keyword,.dark .blog-post-body pre .hljs-selector-attr,.dark .blog-post-body pre .hljs-selector-class,.dark .blog-post-body pre .hljs-selector-id,.dark .blog-post-body pre .hljs-selector-pseudo{color:#e06c75}.dark .blog-post-body pre .hljs-deletion{background:#3b1d1d;color:#e06c75}.dark .blog-post-body pre .hljs-addition{background:#1d3a23;color:#98c379}.blog-post-body table{border-collapse:collapse;margin:1em 0;width:100%;table-layout:fixed}.blog-post-body table td,.blog-post-body table th{border:1px solid var(--site-border);padding:.5em .75em;vertical-align:top}.blog-post-body table th{background:var(--site-panel-hover);font-weight:600;text-align:left}.blog-post-body ul[data-type=taskList]{list-style:none;padding-left:0}.blog-post-body ul[data-type=taskList]>li{display:flex;align-items:flex-start;gap:.5em}.blog-post-body ul[data-type=taskList]>li>div{flex:1;min-width:0}.blog-post-body ul[data-type=taskList]>li>label>input{margin-top:.35em;pointer-events:none}.blog-post-body iframe{max-width:100%}.blog-post-body div[data-youtube-video]{margin:1em 0}.blog-post-body div[data-youtube-video] iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:8px}.blog-post-body blockquote{border-left:3px solid var(--site-border);padding-left:1em;margin-left:0;color:var(--muted,inherit);font-style:italic}.blog-post-body hr{border:none;border-top:2px solid var(--site-border);margin:2em auto;width:40%}.blog-post-body div[data-toc]{margin:1.5em 0;padding:1em 1.25em;border:1px solid;border-radius:6px}.blog-post-body div[data-plotly]{display:block;min-height:320px;font-size:0;line-height:0;color:transparent;overflow:hidden}.blog-post-body .blog-plotly{margin:1.5em 0;width:100%}.blog-post-body .blog-toc-list{list-style:none;padding:0;margin:0}.blog-post-body .blog-toc-list li{margin:.25em 0}.blog-post-body .blog-toc-list li[data-level="1"]{padding-left:1.25em}.blog-post-body .blog-toc-list li[data-level="2"]{padding-left:2.5em}.blog-post-body .blog-toc-list li[data-level="3"]{padding-left:3.75em}.blog-post-body .blog-toc-list li[data-level="4"]{padding-left:5em}.blog-post-body .blog-toc-list li[data-level="5"]{padding-left:6.25em}.blog-post-body .blog-toc-list a{color:var(--site-foreground);text-decoration:none;border-bottom:1px dotted var(--site-subtle)}.blog-post-body .blog-toc-list a:hover{color:var(--accent-text);border-bottom-color:var(--accent-text)}.blog-post-body h1,.blog-post-body h2,.blog-post-body h3,.blog-post-body h4,.blog-post-body h5,.blog-post-body h6{scroll-margin-top:80px}.blog-post-body sup[data-footnote]{font-weight:600;line-height:1}.blog-post-body sup[data-footnote] .blog-footnote-ref{color:var(--accent-text);text-decoration:none}.blog-post-body sup[data-footnote] .blog-footnote-ref:hover{color:var(--site-foreground)}.blog-post-body .blog-footnotes{margin-top:2.5em;padding-top:1em;border-top:1px solid var(--site-border);font-size:.9rem;line-height:1.55;color:var(--site-subtle)}.blog-post-body .blog-footnotes-heading{font-size:.85rem!important;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin:0 0 .5em;color:var(--site-subtle)}.blog-post-body .blog-footnotes-list{padding-left:1.5em}.blog-post-body .blog-footnotes-list li{margin:.4em 0}.blog-post-body .blog-footnote-body{white-space:pre-wrap}.blog-post-body .blog-footnote-back{color:var(--accent-text);text-decoration:none;margin-left:.25em}.blog-post-body .blog-footnote-back:hover{color:var(--site-foreground)}.citation{font-size:.65em;font-weight:700;line-height:1;vertical-align:super;color:var(--accent-text);text-decoration:none;margin-left:2px;padding:1px 4px;border-radius:3px;background:var(--site-panel-hover);border:1px solid var(--site-border)}.citation:hover{background:var(--accent-soft);border-color:var(--accent-text)}.dark .citation{background:var(--site-panel);border-color:var(--site-border)}.dark .citation:hover{background:var(--accent-soft)}