@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-Regular.ttf.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-Bold.ttf.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-Italic.ttf.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-BoldItalic.ttf.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-Light.ttf.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-Medium.ttf.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Maple Mono;src:url(/fonts/MapleMonoNormal-Woff2/MapleMonoNormal-SemiBold.ttf.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}:export{fontFamilyMono:"Maple Mono","JetBrains Mono","Fira Code","SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,"Courier New",monospace}*{font-family:inherit}html,body{background:var(--color-bg)}html{height:100%;scroll-behavior:smooth}body{color:var(--color-text);background:var(--color-bg);font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:14px;line-height:1.4;min-height:100vh;margin:0;overflow-wrap:break-word;transition:background-color .2s ease,color .2s ease}#root{min-height:100vh;position:relative}.post-meta{text-align:left;font-size:.9em;margin-bottom:1.5rem;color:var(--color-text);opacity:.8}h1{font-size:1.4em;font-weight:400;margin-top:2rem;margin-bottom:1rem;color:var(--color-heading-primary)}h2{font-size:1.2em;font-weight:400;margin-top:2.5rem;margin-bottom:.8rem;color:var(--color-heading-secondary)}h3{font-size:1.1em;font-weight:400;margin-top:2rem;margin-bottom:.6rem;color:var(--color-heading-tertiary)}h4,h5,h6{font-size:1em;font-weight:400;margin-top:1.5rem;margin-bottom:.5rem;color:var(--color-heading-minor)}p{margin:1rem 0}li{margin:.4rem 0}*:target{background:var(--color-accent)}a{color:var(--color-link);text-decoration:underline;transition:color .2s ease}a:hover{color:var(--color-link-hover)}hr{text-align:center;border:0;margin:2rem 0;background:none;height:auto}hr:before{content:"/////";color:var(--color-border)}hr:after{content:attr(data-content) "/////";color:var(--color-border)}table{width:100%}table,th,td{border:thin solid var(--color-border);border-collapse:collapse;padding:.4rem}code{color:var(--color-code-text);background:var(--color-code-bg);padding:.05em .4em;border-radius:3px;font-size:.9em;font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.code-block-wrapper{margin:1rem 0}.code-block-wrapper pre{margin:0;padding:0;background:transparent}.code-block-wrapper code{padding:0;background:transparent;color:inherit;border-radius:0}div.highlighter-rouge code{display:block;overflow-x:auto;white-space:pre-wrap;padding:1rem;background:var(--color-code-bg);color:var(--color-code-text)}blockquote{font-style:italic;border:thin solid var(--color-border);padding:1rem;color:var(--color-blockquote);background:var(--color-blockquote-bg)}blockquote p{margin:0}img,img.ioda{max-width:100%;display:block;margin:1rem auto;border:thin solid var(--color-border)}.MathJax{color:var(--color-text)!important}.MathJax_Display{margin:1.5em 0!important}mjx-container[jax=CHTML][display=true]{margin:1.5em 0!important}mjx-container[jax=CHTML]:not([display=true]){color:var(--color-text);margin:.3em .2em;display:inline-block}mjx-container[jax=CHTML]{color:var(--color-text)}mjx-container[jax=SVG][display=true]{margin:1.5em 0!important}.MathJax[display=true],.MathJax_Display,mjx-container[display=true]{margin:1.5em 0!important}div.math.math-display{margin:1.5em 0}.MathJax:not([display=true]){margin:0 .2em;display:inline}.MathJax_Element{margin:0 .2em}span.math.math-inline{margin:0 .2em;display:inline}p:has(mjx-container[display=true]:only-child){margin:1.5em 0}p>mjx-container[display=true]:only-child{display:block;margin:1.5em 0}p mjx-container:not([display=true]),p .MathJax:not([display=true]),p span.math.math-inline{vertical-align:baseline;line-height:inherit}@media (max-width: 768px){mjx-container[jax=CHTML][display=true]{overflow-x:auto;overflow-y:hidden}mjx-container:not([display=true]){font-size:inherit}}strong,b{font-weight:700;color:var(--color-heading-secondary)}em,i{font-style:italic;color:var(--color-heading-tertiary)}del,s{text-decoration:line-through;color:var(--color-heading-minor);opacity:.7}ul li input[type=checkbox]{margin-right:.5rem}dl{margin:1rem 0}dt{font-weight:700;color:var(--color-heading-secondary);margin-top:1rem;margin-bottom:.2rem}dd{margin-left:1.5rem;margin-bottom:.8rem;color:var(--color-text)}abbr{text-decoration:underline dotted;cursor:help;color:var(--color-heading-tertiary)}kbd{background:var(--color-code-bg);color:var(--color-code-text);padding:.1em .3em;border-radius:3px;font-size:.9em;font-family:inherit;border:1px solid var(--color-border)}mark{background:var(--color-accent);color:var(--color-text);padding:.1em .2em}details{margin:1rem 0;border:1px solid var(--color-border);padding:.5rem}summary{cursor:pointer;font-weight:700;color:var(--color-heading-secondary);margin-bottom:.5rem}details[open] summary{margin-bottom:1rem}.footnotes{margin-top:3rem;padding-top:1rem;border-top:thin solid var(--color-border);font-size:.9em}.footnotes ol{padding-left:1.5rem}.footnotes li{margin:.5rem 0}a[href^="#fn"]{text-decoration:none;color:var(--color-link);font-size:.8em;vertical-align:super}a[href^="#fnref"]{text-decoration:none;color:var(--color-link);margin-left:.5rem}.container,.w{max-width:640px;margin:0 auto;padding:4rem 2rem 8rem;min-height:calc(100vh - 8rem)}.header{margin-bottom:2rem}.header .header-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.header .header-right{flex-shrink:0}.header .site-title{font-size:inherit;font-weight:700;margin:0}.header .site-title a{text-decoration:none;color:inherit}.header .site-description{margin:0 0 2rem;font-style:normal}.nav{margin:0}.nav ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:1rem}.nav li{margin:0}.nav a{text-decoration:underline;color:inherit;white-space:nowrap}.nav ul ul{margin-left:1rem;display:block}.nav ul ul li{margin:.4rem 0}.main{margin:2rem 0}.post-meta{text-align:left}.post-list{list-style:none;padding-left:0}.post-list li{margin:.4rem 0}.post-list .post-link{text-decoration:underline;color:inherit}.post-list .post-date{color:inherit;margin-right:1rem}.footer{position:absolute;bottom:2rem;left:0;right:0;padding:2rem;border-top:thin solid var(--color-border);background:var(--color-bg)}.footer-content{display:flex;flex-direction:column;gap:1rem}.footer-social{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.footer-social a{text-decoration:underline;color:inherit}.footer-social a:hover{color:var(--color-link-hover)}.footer-info{text-align:center}.footer-info p{margin:0;font-size:.9em}.footer-info .copyright{font-size:.8em;color:var(--color-text);opacity:.7}.theme-toggle{background:var(--color-button-bg);border:thin solid var(--color-button-border);color:var(--color-button-text);font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:inherit;padding:.2em .5em;cursor:pointer;transition:background-color .2s ease,color .2s ease;width:5em;text-align:center}.theme-toggle:hover{background:var(--color-button-hover-bg);color:var(--color-button-hover-text)}.code-block-wrapper{margin:1rem 0;position:relative}.code-block-header{display:flex;justify-content:space-between;align-items:center;background:var(--color-code-header-bg);border-radius:6px 6px 0 0;padding:.5rem 1rem;font-size:.8rem;font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.code-language{color:var(--color-text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.copy-button{background:transparent;border:thin solid var(--color-border);color:var(--color-text-secondary);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.75rem;font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;transition:all .2s ease;display:flex;align-items:center;gap:.25rem;min-width:4rem;justify-content:center}.copy-button:hover{background:var(--color-button-hover-bg);color:var(--color-button-hover-text);border-color:var(--color-button-hover-border)}.copy-button:active{transform:translateY(1px)}.copy-button:focus{outline:2px solid var(--color-link);outline-offset:2px}.inline-code{padding:.05em .4em;border-radius:3px;font-size:.9em;font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.inline-code.dark{background-color:#24283b;color:#a9b1d6}.inline-code.light{background-color:#e6e7ed;color:#343b58}.code-loading{padding:1rem;background-color:#f5f5f5;border-radius:6px;font-family:Maple Mono,JetBrains Mono,Fira Code,SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;color:#666;font-style:italic}.definition-list{margin:1rem 0}.definition-list .definition-term{font-weight:700;margin-top:.5rem;margin-bottom:.25rem}.definition-list .definition-term:first-child{margin-top:0}.definition-list .definition-description{margin-left:1.5rem;margin-bottom:.5rem}.definition-list .definition-description:last-child{margin-bottom:0}.abbreviation{text-decoration:underline dotted;cursor:help;border-bottom:none}.table-of-contents{margin:1rem 0;padding:1rem;border:thin solid var(--color-border);background:var(--color-bg-secondary)}.table-of-contents h3{margin-top:0;margin-bottom:.5rem}.table-of-contents ul{list-style:none;padding-left:0;margin:0}.table-of-contents ul li{margin:.25rem 0}.table-of-contents ul li a{text-decoration:none;color:inherit}.table-of-contents ul li a:hover{text-decoration:underline}.table-of-contents ul li.toc-level-1{padding-left:0}.table-of-contents ul li.toc-level-2{padding-left:1rem}.table-of-contents ul li.toc-level-3{padding-left:2rem}.table-of-contents ul li.toc-level-4{padding-left:3rem}.table-of-contents ul li.toc-level-5{padding-left:4rem}.table-of-contents ul li.toc-level-6{padding-left:5rem}.archive .archive-year{font-weight:700;margin-top:3rem;margin-bottom:1rem}.archive .archive-posts{list-style:none;padding-left:0}.archive .archive-posts li{margin:.4rem 0}.archive .archive-posts .post-title{text-decoration:underline;color:inherit}.archive .archive-posts .post-date{margin-right:1rem;color:inherit}.loading{text-align:center;padding:2rem;font-style:italic}.error{text-align:center;padding:2rem;border:thin solid black;background:#ff00001a}@media (max-width: 768px){.container{padding:2rem 1rem}.post-meta{text-align:left}.header .header-top{flex-direction:column;align-items:flex-start;gap:1rem}.header .header-right{align-self:flex-end}.nav ul,.footer .footer-social{gap:.8rem}}:root{--color-bg: #ffffff;--color-bg-secondary: #f8f9fa;--color-text: #000000;--color-accent: #ffff00;--color-border: #000000;--color-link: #000000;--color-link-hover: #000000;--color-code-bg: #e6e7ed;--color-code-text: #343b58;--color-button-bg: transparent;--color-button-border: #000000;--color-button-text: #000000;--color-button-hover-bg: #000000;--color-button-hover-text: #ffffff;--color-button-hover-border: #000000;--color-code-header-bg: #f8f9fa;--color-text-secondary: #666666;--color-heading-primary: #000000;--color-heading-secondary: #333333;--color-heading-tertiary: #555555;--color-heading-minor: #777777;--color-blockquote: #555555;--color-blockquote-bg: rgba(0, 0, 0, .03)}body[a=dark]{--color-bg: #16161d;--color-bg-secondary: #1a1b26;--color-text: #a9b1d6;--color-accent: #e0af68;--color-border: #414868;--color-link: #7aa2f7;--color-link-hover: #7dcfff;--color-button-bg: transparent;--color-button-border: #414868;--color-button-text: #a9b1d6;--color-button-hover-bg: #414868;--color-button-hover-text: #a9b1d6;--color-button-hover-border: #565f89;--color-code-header-bg: #1a1b26;--color-text-secondary: #7982af;--color-code-bg: #24283b;--color-code-text: #a9b1d6;--color-heading-primary: #c0caf5;--color-heading-secondary: #a9b1d6;--color-heading-tertiary: #9aa5ce;--color-heading-minor: #7982af;--color-blockquote: #9aa5ce;--color-blockquote-bg: rgba(122, 162, 247, .08)}@media (prefers-color-scheme: dark){body[a=auto]{--color-bg: #16161d;--color-bg-secondary: #1a1b26;--color-text: #a9b1d6;--color-accent: #e0af68;--color-border: #414868;--color-link: #7aa2f7;--color-link-hover: #7dcfff;--color-button-bg: transparent;--color-button-border: #414868;--color-button-text: #a9b1d6;--color-button-hover-bg: #414868;--color-button-hover-text: #a9b1d6;--color-button-hover-border: #565f89;--color-code-header-bg: #1a1b26;--color-text-secondary: #7982af;--color-code-bg: #24283b;--color-code-text: #a9b1d6;--color-heading-primary: #c0caf5;--color-heading-secondary: #a9b1d6;--color-heading-tertiary: #9aa5ce;--color-heading-minor: #7982af;--color-blockquote: #9aa5ce;--color-blockquote-bg: rgba(122, 162, 247, .08)}}
