:root{color-scheme:light dark;--bg1:light-dark(white, #222);--bg2:light-dark(#eee, #111);--bg3:light-dark(#ddd, black);--fg2:light-dark(#888, #888);--fg1:light-dark(#222, #ddd);--link:light-dark(#79d, #9bf)}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:var(--bg2)}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{font-weight:700}.chroma .kc{font-weight:700}.chroma .kd{font-weight:700;font-style:italic}.chroma .kn{font-weight:700}.chroma .kp{font-weight:700}.chroma .kr{font-weight:700}.chroma .kt{font-weight:700}.chroma .nc{color:var(--fg2);font-weight:700;font-style:italic}.chroma .no{color:var(--fg2);font-weight:700;font-style:italic}.chroma .nn{color:var(--fg2);font-weight:700;font-style:italic}.chroma .nb{font-weight:700;font-style:italic}.chroma .bp{font-weight:700;font-style:italic}.chroma .nv{color:var(--fg2);font-weight:700;font-style:italic}.chroma .vc{color:var(--fg2);font-weight:700;font-style:italic}.chroma .vg{color:var(--fg2);font-weight:700;font-style:italic}.chroma .vi{color:var(--fg2);font-weight:700;font-style:italic}.chroma .vm{color:var(--fg2);font-weight:700;font-style:italic}.chroma .nf{color:var(--fg2);font-weight:700;font-style:italic}.chroma .fm{color:var(--fg2);font-weight:700;font-style:italic}.chroma .s{color:var(--fg2);font-style:italic}.chroma .sa{color:var(--fg2);font-style:italic}.chroma .sb{color:var(--fg2);font-style:italic}.chroma .sc{color:var(--fg2);font-style:italic}.chroma .dl{color:var(--fg2);font-style:italic}.chroma .sd{color:var(--fg2);font-style:italic}.chroma .s2{color:var(--fg2);font-style:italic}.chroma .se{color:var(--fg2);font-style:italic}.chroma .sh{color:var(--fg2);font-style:italic}.chroma .si{color:var(--fg2);font-style:italic}.chroma .sx{color:var(--fg2);font-style:italic}.chroma .sr{color:var(--fg2);font-style:italic}.chroma .s1{color:var(--fg2);font-style:italic}.chroma .ss{color:var(--fg2);font-style:italic}.chroma .ow{font-weight:700}.chroma .c{color:var(--fg2);font-style:italic}.chroma .ch{color:var(--fg2);font-style:italic}.chroma .cm{color:var(--fg2);font-style:italic}.chroma .c1{color:var(--fg2);font-style:italic}.chroma .cs{color:var(--fg2);font-weight:700}.chroma .cp{color:var(--fg2);font-weight:700}.chroma .cpf{color:var(--fg2);font-weight:700}body{display:flex;min-height:100dvh;flex-direction:column;margin:0;background-color:var(--bg1);color:var(--fg1);font-family:sans-serif;line-height:1.5;-webkit-text-size-adjust:none;text-size-adjust:none}header,footer,thead,pre,code{background-color:var(--bg2)}.navbar,main,.footer-content{width:100%;max-width:1e3px;margin:0 auto;padding-left:2em;padding-right:2em;box-sizing:border-box}main{flex:1;padding-top:2em;padding-bottom:2em}.footer-content{display:flex;align-items:center;justify-content:center}article{margin-top:2em}article:not(:last-of-type){padding-bottom:2em;border-bottom:solid 1px var(--fg2)}.metadata{margin:1em 0}.tags{list-style:none;display:inline-flex;gap:.5em;margin:0;padding:0}.tags a{color:var(--fg2);text-decoration:none}:is(h1,h2,h3,h4,h5,h6) .anchor{visibility:hidden}:is(h1,h2,h3,h4,h5,h6):hover .anchor{visibility:visible}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}pre code{padding:0}code{padding:.2em .3em}table{border-collapse:collapse;width:100%}td,th{border:solid 1px}td,th,pre{padding:1em}pre,.katex{overflow:auto}figure{margin:0}img{max-width:100%;height:auto}figcaption{color:var(--fg2)}.navbar{display:flex;align-items:center;position:relative;background:inherit}.navbar input[type=checkbox],.navbar label[for=dropdown]{margin-left:auto;display:none}.navbar label[for=dropdown] svg{display:block}.navbar ul{display:flex;list-style:none;margin:0 -1em 0 auto;padding:0;background:inherit;text-align:center}.navbar ul a{display:block;padding:1em;color:inherit;text-decoration:none}.navbar ul .active{border-bottom:solid 2px}.navbar ul a:hover{background-color:var(--bg3);text-decoration:none}@media screen and (max-width:600px){.navbar label[for=dropdown]{display:block}.navbar ul{position:absolute;top:100%;right:0;margin:0;flex-direction:column}.navbar ul .active{border:none;background-color:var(--bg3)}.navbar ul a{padding:1em 2em}.navbar:has(input[type=checkbox]:checked) ul{display:none}}