:root{--font-body:"EB Garamond", ui-serif, Georgia, "Times New Roman", serif;--font-heading:"EB Garamond", ui-serif, Georgia, "Times New Roman", serif;--font-logo:"EB Garamond", ui-serif, Georgia, serif}code,pre,kbd,samp{font-family:jetbrains mono,ui-monospace,SFMono-Regular,sf mono,Menlo,Consolas,liberation mono,monospace}:root{--bg:#f4ebdd;--text:#231f1a;--body-text:#2e2820;--bio-text:#3a3228;--muted:#857a66;--border:#d9ccb8;--hover-bg:#ece0cb;--hover-bg-2:#e5d7bf;--footer-text:#b3a58c;--tag-bg:#ece0cb;--badge-text:#9c4f28}:root[data-theme=dark]{--bg:#1c1712;--text:#ece1cf;--body-text:#ddd0ba;--bio-text:#cabfa8;--muted:#9a8c74;--border:#33291f;--hover-bg:#2a2118;--hover-bg-2:#342a1e;--footer-text:#4a3f30;--tag-bg:#241d15;--badge-text:#d98a5c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c1712;--text:#ece1cf;--body-text:#ddd0ba;--bio-text:#cabfa8;--muted:#9a8c74;--border:#33291f;--hover-bg:#2a2118;--hover-bg-2:#342a1e;--footer-text:#4a3f30;--tag-bg:#241d15;--badge-text:#d98a5c}}body{font-size:17px;line-height:1.7;font-feature-settings:"onum" 1,"pnum" 1,"kern" 1}.prose{font-size:1.02rem;line-height:1.8;font-feature-settings:"onum" 1,"pnum" 1,"kern" 1,"liga" 1,"dlig" 1}.prose h2,.prose h3,.prose h4{font-variant:small-caps;font-feature-settings:"smcp" 1,"onum" 1,"kern" 1;letter-spacing:.06em;font-weight:500}.article-header h1{letter-spacing:.01em;font-weight:500;line-height:1.2}.article-meta{font-variant:small-caps;letter-spacing:.07em;font-feature-settings:"smcp" 1,"lnum" 1}.article .prose>p:first-child::first-letter{float:left;font-family:var(--font-heading);font-size:3.4em;line-height:.78;font-weight:500;color:var(--text);padding:.02em .09em 0 0;margin-top:.02em}.prose hr{border:0;height:0;margin:2.75em 0;position:relative;overflow:visible}.prose hr::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:46%;height:3px;background:linear-gradient(var(--border),var(--border))0/37% 1px no-repeat,linear-gradient(var(--text),var(--text))50%/16% 3px no-repeat,linear-gradient(var(--border),var(--border))100%/37% 1px no-repeat}.prose img{border:1px solid var(--border);border-radius:2px;background:#fff;padding:.35rem}.prose blockquote{font-family:var(--font-body)}.katex{color:var(--text)}.code-block{border-radius:3px}.code-block-header{background:var(--hover-bg-2)}.prose pre{font-feature-settings:normal}.chroma{background-color:var(--tag-bg)}.chroma .n{color:#2e2820}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kc,.chroma .kr,.chroma .kt,.chroma .kp{color:#9c3f1f}.chroma .nb{color:#35566b}.chroma .nf,.chroma .fm{color:#7a5230}.chroma .nc,.chroma .nn,.chroma .nd{color:#7a5230}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sd,.chroma .sc,.chroma .se,.chroma .sh{color:#4f6b3a}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs,.chroma .ch{color:#9a8c74;font-style:italic}.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mo,.chroma .il{color:#8a5a2b}.chroma .o,.chroma .ow{color:#6b5d4a}.chroma .p{color:#5a5040}:root[data-theme=dark] .chroma .n{color:#ddd0ba}:root[data-theme=dark] .chroma .k,:root[data-theme=dark] .chroma .kd,:root[data-theme=dark] .chroma .kn,:root[data-theme=dark] .chroma .kc,:root[data-theme=dark] .chroma .kr,:root[data-theme=dark] .chroma .kt,:root[data-theme=dark] .chroma .kp{color:#e08a5c}:root[data-theme=dark] .chroma .nb{color:#7fb0c4}:root[data-theme=dark] .chroma .nf,:root[data-theme=dark] .chroma .fm,:root[data-theme=dark] .chroma .nc,:root[data-theme=dark] .chroma .nn,:root[data-theme=dark] .chroma .nd{color:#cbb488}:root[data-theme=dark] .chroma .s,:root[data-theme=dark] .chroma .s1,:root[data-theme=dark] .chroma .s2,:root[data-theme=dark] .chroma .sb,:root[data-theme=dark] .chroma .sd,:root[data-theme=dark] .chroma .sc,:root[data-theme=dark] .chroma .se,:root[data-theme=dark] .chroma .sh{color:#a9b87a}:root[data-theme=dark] .chroma .c,:root[data-theme=dark] .chroma .c1,:root[data-theme=dark] .chroma .cm,:root[data-theme=dark] .chroma .cs,:root[data-theme=dark] .chroma .ch{color:#8a7d64;font-style:italic}:root[data-theme=dark] .chroma .mi,:root[data-theme=dark] .chroma .mf,:root[data-theme=dark] .chroma .mh,:root[data-theme=dark] .chroma .mo,:root[data-theme=dark] .chroma .il{color:#d0a06a}:root[data-theme=dark] .chroma .o,:root[data-theme=dark] .chroma .ow{color:#b0a389}:root[data-theme=dark] .chroma .p{color:#a89b83}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .chroma .n{color:#ddd0ba}:root:not([data-theme=light]) .chroma .k,:root:not([data-theme=light]) .chroma .kd,:root:not([data-theme=light]) .chroma .kn,:root:not([data-theme=light]) .chroma .kc,:root:not([data-theme=light]) .chroma .kr,:root:not([data-theme=light]) .chroma .kt,:root:not([data-theme=light]) .chroma .kp{color:#e08a5c}:root:not([data-theme=light]) .chroma .nb{color:#7fb0c4}:root:not([data-theme=light]) .chroma .nf,:root:not([data-theme=light]) .chroma .fm,:root:not([data-theme=light]) .chroma .nc,:root:not([data-theme=light]) .chroma .nn,:root:not([data-theme=light]) .chroma .nd{color:#cbb488}:root:not([data-theme=light]) .chroma .s,:root:not([data-theme=light]) .chroma .s1,:root:not([data-theme=light]) .chroma .s2,:root:not([data-theme=light]) .chroma .sb,:root:not([data-theme=light]) .chroma .sd,:root:not([data-theme=light]) .chroma .sc,:root:not([data-theme=light]) .chroma .se,:root:not([data-theme=light]) .chroma .sh{color:#a9b87a}:root:not([data-theme=light]) .chroma .c,:root:not([data-theme=light]) .chroma .c1,:root:not([data-theme=light]) .chroma .cm,:root:not([data-theme=light]) .chroma .cs,:root:not([data-theme=light]) .chroma .ch{color:#8a7d64;font-style:italic}:root:not([data-theme=light]) .chroma .mi,:root:not([data-theme=light]) .chroma .mf,:root:not([data-theme=light]) .chroma .mh,:root:not([data-theme=light]) .chroma .mo,:root:not([data-theme=light]) .chroma .il{color:#d0a06a}:root:not([data-theme=light]) .chroma .o,:root:not([data-theme=light]) .chroma .ow{color:#b0a389}:root:not([data-theme=light]) .chroma .p{color:#a89b83}}.marimo-embed{margin:1.5rem 0;border:1px solid var(--border);border-radius:6px;overflow:hidden}:root{--sidebar-w:260px}@media(min-width:900px){.content{max-width:720px}}.toc{width:180px}.logo-letters:hover span,.logo-letters.intro span{animation:none}