@font-face{font-family:LaTeX Mark;src:url(../fonts/LaTeXMark-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+41,U+45,U+4C,U+54,U+58}@font-face{font-family:LaTeX Mark;src:url(../fonts/LaTeXMark-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+41,U+45,U+4C,U+54,U+58}@font-face{font-family:Typst Mark;src:url(../fonts/TypstMark.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+54,U+70,U+73,U+74,U+79}@font-face{font-family:Atkinson;src:url(../fonts/AtkinsonHyperlegible-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(../fonts/AtkinsonHyperlegible-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Atkinson;src:url(../fonts/AtkinsonHyperlegible-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(../fonts/AtkinsonHyperlegible-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Atkinson Mono;src:url(../fonts/AtkinsonHyperlegibleMono-VariableFont_wght.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Mono;src:url(../fonts/AtkinsonHyperlegibleMono-Italic-VariableFont_wght.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--logo-blue:#4a86e8;--logo-teal:#5dd2c2;--logo-white:#ebebeb;--bg:#fff;--surface:#fff;--text:#2a3533;--heading:#141c1b;--muted:#5b6d6a;--line:#dde6e4;--code-bg:#eef3f2;--accent:#2a63c9;--accent-strong:#1d4fa6;--accent-soft:#4a86e81f;--teal-soft:#5dd2c238;--shadow-color:42, 53, 51;--box-shadow:0 2px 6px rgba(var(--shadow-color), .12), 0 8px 24px rgba(var(--shadow-color), .16), 0 16px 32px rgba(var(--shadow-color), .16);--font-body:"Atkinson", system-ui, sans-serif;--font-mono:"Atkinson Mono", ui-monospace, monospace;color-scheme:light dark}:root[data-theme=dark]{color-scheme:dark;--bg:#21242b;--surface:#282c34;--text:#d3d3d3;--heading:#f2f2f2;--muted:#9aa4ad;--line:#3a3f4a;--code-bg:#2e333c;--accent:#7aa7f0;--accent-strong:#a3c2f5;--accent-soft:#4a86e833;--teal-soft:#5dd2c21f;--shadow-color:0, 0, 0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#21242b;--surface:#282c34;--text:#d3d3d3;--heading:#f2f2f2;--muted:#9aa4ad;--line:#3a3f4a;--code-bg:#2e333c;--accent:#7aa7f0;--accent-strong:#a3c2f5;--accent-soft:#4a86e833;--teal-soft:#5dd2c21f;--shadow-color:0, 0, 0}}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:5rem}body{font-family:var(--font-body);text-align:left;background:linear-gradient(var(--teal-soft), var(--bg)) no-repeat;background-size:100% 600px;background-color:var(--bg);word-wrap:break-word;overflow-wrap:break-word;min-height:100vh;color:var(--text);flex-direction:column;margin:0;padding:0;font-size:1.25rem;line-height:1.7;display:flex}main{flex:1;width:720px;max-width:calc(100% - 2em);margin:auto;padding:3em 1em}body.blog main,body.post main{width:960px}h1,h2,h3,h4,h5,h6{color:var(--heading);margin:0 0 .5rem;line-height:1.2}h1{font-size:3.052em}h2{font-size:2.441em}h3{font-size:1.953em}h4{font-size:1.563em}h5{font-size:1.25em}strong,b{font-weight:700}a{color:var(--accent);text-decoration-color:var(--logo-blue);text-underline-offset:.15em}a:hover{color:var(--accent-strong)}p{margin-bottom:1em}.prose p{text-align:justify;hyphens:auto;margin-bottom:1.5em}img{border-radius:8px;max-width:100%;height:auto}code,kbd,samp,pre{font-family:var(--font-mono)}code{background-color:var(--code-bg);border-radius:4px;padding:2px 5px;font-size:.9em}kbd{white-space:nowrap;background-color:var(--code-bg);border:1px solid var(--line);box-shadow:0 1px 0 rgba(var(--shadow-color), .12);border-bottom-width:2px;border-radius:4px;margin:0 1px;padding:1px 6px;font-size:.85em;line-height:1.4;display:inline-block}pre{background-color:var(--code-bg);border:1px solid var(--line);border-radius:8px;padding:1.25em 1.5em;font-size:.8em;line-height:1.5;overflow-x:auto}pre>code{all:unset}pre.numbered .line:before{content:attr(data-line);width:calc(var(--line-digits,2) * 1ch);text-align:right;color:var(--muted);user-select:none;margin-right:1.5ch;display:inline-block}blockquote{border-left:4px solid var(--logo-blue);margin:0 0 1.5em;padding:0 0 0 20px;font-size:1.333em}hr{border:none;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%}.table-scroll{margin-bottom:1.5em;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.4em .6em}th{color:var(--heading);border-bottom:2px solid var(--logo-teal)}math[display=block]{margin:1em 0;padding-block:.25em;overflow:auto hidden}details{margin-bottom:1.5em}li>p,.prose li>p{margin:.25em 0}.prose h2{margin-top:1.25em;font-size:1.953em}.prose h3{margin-top:1em;font-size:1.563em}summary{cursor:pointer;color:var(--accent)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.site-header{z-index:10;background:var(--surface);box-shadow:0 2px 8px rgba(var(--shadow-color), .08);border-top:4px solid var(--logo-teal);margin:0;padding:0 1em;position:sticky;top:0}.site-header nav{justify-content:space-between;align-items:center;gap:1em;display:flex}.site-header a{color:var(--heading);border-bottom:4px solid #0000;padding:1em .5em;text-decoration:none}.site-header a.active{border-bottom-color:var(--logo-blue);font-weight:700}.brand-area{flex:1 1 0;align-items:center;min-width:0;display:flex}.site-header a.brand{flex-shrink:0;align-items:center;gap:.5em;padding:.5em 0;font-weight:700;display:flex}.header-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--muted);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;overflow:hidden;transform:translateY(.5em)}.header-title:before{content:"/";color:var(--line);margin:0 .5em}.show-title .header-title{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.header-title{transition:none}}.site-header a.brand img{border-radius:6px;width:36px;height:36px}.internal-links{gap:.25em;display:flex}.social-links{flex:1 1 0;justify-content:flex-end}.social-links,.social-links a{display:flex}.social-links a:hover,.internal-links a:hover{color:var(--accent)}.theme-toggle{color:var(--heading);cursor:pointer;background:0 0;border:none;align-items:center;padding:1em .5em;display:flex}.theme-toggle:hover{color:var(--accent)}.theme-toggle svg{width:24px;height:24px}.theme-toggle svg:first-child,:root[data-theme=dark] .theme-toggle svg:last-child{display:none}:root[data-theme=dark] .theme-toggle svg:first-child{display:block}.site-footer{background:linear-gradient(var(--bg), var(--teal-soft)) no-repeat;color:var(--muted);text-align:center;padding:2em 1em 4em;font-size:.85em}.site-footer a{color:inherit}.intro{align-items:center;gap:1.5em;margin-bottom:1.5em;display:flex}.intro img{width:120px;height:120px;box-shadow:var(--box-shadow);border-radius:16px;flex-shrink:0}.intro h1{margin:0}.intro .tagline{color:var(--muted);margin:0}.recent{margin-top:3em}.recent h2{margin-bottom:1em;font-size:1.563em}.page-title{margin-bottom:1em}.post-grid{flex-wrap:wrap;gap:2rem;margin:0;padding:0;list-style-type:none;display:flex}.post-grid li{width:calc(50% - 1rem)}.post-grid li a{color:inherit;text-decoration:none;display:block}.post-grid li *{transition:all .2s}.post-grid img,.post-grid .placeholder{aspect-ratio:2;object-fit:cover;border-radius:12px;width:100%;margin-bottom:.5rem;display:block}.post-grid .placeholder{background:url(../images/logo.png) center / contain no-repeat, var(--logo-teal);opacity:.9}.post-grid a:hover img,.post-grid a:hover .placeholder{box-shadow:var(--box-shadow);opacity:1}.post-grid .card-title{margin:0;font-size:1.563em;line-height:1.15}.post-grid .date{color:var(--muted);margin:.25em 0 0}.post-grid .description{margin:.25em 0 0;font-size:.9em}.post-grid a:hover .card-title,.post-grid a:hover .date{color:var(--accent)}.post-grid.featured li:first-child{text-align:center;width:100%;margin-bottom:1rem}.post-grid.featured li:first-child .card-title{font-size:2.369rem}.empty{color:var(--muted)}.post .hero-image img{width:100%;box-shadow:var(--box-shadow);border-radius:12px;margin:0 auto;display:block}.post .prose{width:720px;max-width:100%;margin:auto;padding:1em 0}.post .title{text-align:center;margin-bottom:1em;padding:1em 0;line-height:1}.post .title h1{margin:0 0 .5em}.post .date{color:var(--muted);margin-bottom:.5em}.last-updated-on{margin-top:.5em;font-style:italic}.tags{flex-wrap:wrap;justify-content:center;gap:.5em;margin:0 0 1em;padding:0;list-style:none;display:flex}.tags li{background:var(--teal-soft);color:var(--heading);border-radius:999px;padding:.2em .7em;font-size:.8em}.pdf-download{align-items:center;gap:.4em;margin:0 0 1em;font-size:.8em;text-decoration:none;display:inline-flex}.pdf-download:hover{text-decoration:underline}.back{margin-top:3em}.draft-badge{vertical-align:middle;letter-spacing:.05em;text-transform:uppercase;color:#2a2200;background:#f5c542;border-radius:4px;margin:0 .5em .5em 0;padding:.2em .6em;font-size:.8rem;font-weight:700;line-height:1.4;display:inline-block}.post-grid .draft-badge{margin:0 0 0 .5em}.latex-mark{white-space:nowrap;font-family:LaTeX Mark,Latin Modern Roman,Computer Modern,serif}.latex-mark .a{margin-left:-.514em;margin-right:-.214em;font-size:.7em;position:relative;top:-.286em}.latex-mark .e{margin-left:-.1667em;margin-right:-.125em;position:relative;top:.5ex}.typst-mark{font-family:"Typst Mark", var(--font-body);font-synthesis:none;letter-spacing:normal;white-space:nowrap;font-style:normal}.admonition{--tint:var(--logo-blue);border-left:4px solid var(--tint);background:color-mix(in srgb, var(--tint) 10%, transparent);border-radius:0 8px 8px 0;margin:0 0 1.5em;padding:.75em 1em}.admonition>:last-child{margin-bottom:0}.admonition .admonition-title{color:var(--tint);align-items:center;gap:.4em;margin:0 0 .25em;font-weight:700;display:flex}.admonition.tip{--tint:#1a9a88}.admonition.important{--tint:#8a5cd6}.admonition.warning{--tint:#c98a06}.admonition.caution{--tint:#d9453b}:root[data-theme=dark] .admonition.note{--tint:#7aa7f0}:root[data-theme=dark] .admonition.tip{--tint:var(--logo-teal)}:root[data-theme=dark] .admonition.important{--tint:#b394ee}:root[data-theme=dark] .admonition.warning{--tint:#f0b43c}:root[data-theme=dark] .admonition.caution{--tint:#f07a70}nav[role=doc-toc]{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:0 0 2em;padding:.75em 1.25em;font-size:.9em}.prose nav[role=doc-toc]>h2{margin:0 0 .25em;font-size:1.1em}nav[role=doc-toc] ol{margin:0;padding:0}nav[role=doc-toc] ol ol{padding-left:1.25em}nav[role=doc-toc] a,a[role=doc-noteref],a[role=doc-backlink]{text-decoration:none}section[role=doc-endnotes],section[role=doc-bibliography]{border-top:1px solid var(--line);margin-top:2em;padding-top:1em;font-size:.85em}@media (width<=720px){body{font-size:1.125rem}h1,.post .title h1,.post-grid.featured li:first-child .card-title{font-size:2.074em}h2,.prose h2{font-size:1.728em}h3,.prose h3,.post-grid .card-title{font-size:1.44em}h4{font-size:1.2em}h1,h2,h3{hyphens:auto;overflow-wrap:break-word}blockquote{font-size:1.2em}th,td{padding:.4em}main{padding:1em}.site-header .site-name,.social-links a{display:none}.social-links{flex:none}.show-title .internal-links{display:none}.header-title:before{content:none}.header-title{color:var(--heading);margin-left:.75em;font-weight:700}.brand-area{flex:auto}.post-grid{gap:1.5em}.post-grid li{text-align:center;width:100%}.intro{text-align:center;flex-direction:column}}.prose section[role=doc-bibliography]>h2{margin-top:0;font-size:1.25em}section[role=doc-bibliography] ul{padding:0}section[role=doc-bibliography] li{margin-bottom:.5em}