.prose{color:var(--text-muted);font-size:1.0625rem;line-height:1.75}.prose :where(p,li,td,blockquote){overflow-wrap:anywhere}.prose>*+*{margin-top:1.25em}.prose>:first-child{border-top:0;margin-top:0;padding-top:0}.prose>:where(p,ul,ol,blockquote,h2,h3,h4,table){max-width:var(--prose-max)}.prose :where(h2,h3,h4){color:var(--text);scroll-margin-top:calc(var(--header-h) + 1.5rem)}.prose h2{border-top:1px solid var(--border);font-size:var(--text-lg);margin-top:3.5rem;padding-top:2rem}.prose h3{font-size:var(--text-md);letter-spacing:-.015em;margin-top:2.25rem}.prose h4{font-size:var(--text-base);margin-top:1.75rem}.prose :where(h2,h3,h4)+*{margin-top:.75em}.prose strong{color:var(--text);font-weight:600}.prose a:not(.not-prose a){color:var(--accent-text);text-decoration:underline;text-decoration-color:color-mix(in oklab, var(--accent) 40%, transparent);text-underline-offset:3px;text-decoration-thickness:1px}.prose a:not(.not-prose a):hover{text-decoration-color:var(--accent)}.prose :where(ul,ol):not(.not-prose *){padding-left:1.25em}.prose ul:not(.not-prose *){list-style:none}.prose ul:not(.not-prose *)>li{position:relative}.prose ul:not(.not-prose *)>li:before{content:"";background:var(--text-subtle);width:.5em;height:1px;position:absolute;top:.85em;left:-1.1em}.prose ol{list-style:decimal}.prose ol>li::marker{color:var(--text-subtle);font-family:var(--font-mono);font-size:.85em}.prose li:not(.not-prose *)+li,.prose li>:where(ul,ol){margin-top:.5em}.prose blockquote{border-left:2px solid var(--border-strong);color:var(--text-muted);padding-left:1.25em}.prose hr{border:0;border-top:1px solid var(--border);margin-block:3rem}.prose :not(pre)>code{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:5px;padding:.12em .36em;font-size:.86em}.prose pre{border:1px solid var(--border);border-radius:var(--radius);tab-size:4;padding:1rem 1.25rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}@media (width>=48rem){.prose pre{font-size:.875rem}}.prose pre[data-language]{padding-top:0}.prose pre[data-language]:before{content:attr(data-language);border-bottom:1px solid var(--border);height:2.375rem;color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase;margin:0 -1.25rem .875rem;padding-inline:1.25rem;font-size:.6875rem;line-height:2.375rem;display:block;position:sticky;left:-1.25rem}.prose pre:is([data-language=plaintext],[data-language=text],[data-language=txt]):before{content:"text"}.prose pre[data-language=py]:before{content:"python"}.prose pre:is([data-language=sh],[data-language=shell],[data-language=zsh]):before{content:"bash"}.prose .code-block{position:relative}.prose .code-copy{border-radius:0 calc(var(--radius) - 1px) 0 var(--radius-sm);background:var(--surface-1);height:calc(2.375rem - 1px);color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.04em;transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.375rem;padding-inline:.75rem 1rem;font-size:.6875rem;display:inline-flex;position:absolute;top:1px;right:1px}.prose .code-copy:hover{color:var(--text)}.prose .code-copy:focus-visible{outline-offset:-2px}.prose .code-copy-icon{display:inline-flex}.prose .code-copy-icon[hidden]{display:none}.prose .code-copy-icon[data-icon=check]{color:var(--accent-text)}.astro-code{background-color:var(--surface-1)!important}.astro-code,.astro-code span{color:var(--shiki-light)}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.prose img,.prose video{border-radius:var(--radius);max-width:100%;height:auto;margin-inline:auto}.prose img{border:1px solid var(--border);background:#fff}[data-theme=dark] .prose img{border-color:var(--border-strong);filter:brightness(.9)}.prose a img,[data-theme=dark] .prose a img{vertical-align:middle;filter:none;background:0 0;border:0;border-radius:0;display:inline-block}.prose iframe{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%;max-width:100%;display:block}.prose figure figcaption,.prose .caption{color:var(--text-subtle);font-size:var(--text-sm);text-align:center;margin-top:.75rem}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.9375rem;display:block;overflow-x:auto}.prose :where(th,td){border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .75rem}.prose th{border-bottom-color:var(--border-strong);color:var(--text);font-weight:600}.prose .katex-display{padding-block:.25rem;position:relative;overflow:auto hidden}.prose .katex{color:var(--text)}.post-body{--measure:37rem;--measure-wide:48rem;line-height:1.7}@media (width>=48rem){.post-body{font-size:1.125rem}}.post-body>*{max-width:var(--measure)}.post-body>:is(pre,.code-block,iframe,table),.post-body>p:has(>img:only-child){max-width:var(--measure-wide)}.post-body>p>img{margin-inline:0}.post-body>*+*{margin-top:1.375em}.post-body h2{letter-spacing:-.025em;border-top:0;margin-top:3.25rem;padding-top:0}.post-body h3{margin-top:2.5rem}.post-body h4{margin-top:2rem}.post-body :where(h2,h3,h4)+*{margin-top:.875em}.post-body hr{margin-block:3.25rem}.post-body hr+h2{margin-top:0}.post-body>:is(pre,.code-block,iframe,.katex-display,.math-display),.post-body>p:has(>img:only-child),.post-body>:is(pre,.code-block,iframe,.math-display)+*,.post-body>p:has(>img:only-child)+*{margin-top:1.75em}.post-body>p:has(>img:only-child)+.caption{margin-top:.75rem}.post-body blockquote{border-left-color:color-mix(in oklab, var(--accent) 55%, var(--border-strong));padding-block:.125rem}@media (width<=47.99rem){.post-body>pre,.post-body>.code-block{margin-inline:calc(-1 * var(--gutter));max-width:none}.post-body>pre,.post-body>.code-block>pre{border-inline:0;border-radius:0}.post-body>.code-block .code-copy{border-radius:0 0 0 var(--radius-sm);right:0}}.arch-figure{margin-block:2.5rem}.arch-scroll{border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at 1px 1px, var(--border) 1px, transparent 0) 0 0 / 20px 20px, var(--surface-1);padding:1.5rem;overflow-x:auto}.arch-scroll .diagram{width:100%;min-width:44rem;height:auto;margin-inline:auto;display:block}.arch-figure figcaption{max-width:var(--prose-max);color:var(--text-subtle);font-size:var(--text-sm);align-items:baseline;gap:.75rem;margin-top:.875rem;display:flex}
