html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}@import 'https://fonts.cdnfonts.com/css/jetbrains-mono-2';:root{--font-family:"JetBrains Mono", monospace;--line-height:1.20rem;--border-thickness:1px;--text-color:#1D2021;--text-color-alt:#928374;--background-color:#fbf1c7;--background-color-alt:#ebdbb2;--font-weight-normal:500;--font-weight-medium:600;--font-weight-bold:800;font-family:var(--font-family);font-optical-sizing:auto;font-weight:var(--font-weight-normal);font-style:normal;font-variant-numeric:tabular-nums lining-nums;font-size:16px}.bg{color:#3c3836;background-color:#f9f5d7}.chroma{color:#3c3836;background-color:#f9f5d7}.chroma .x{}.chroma .err{}.chroma .cl{}.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:#e1d8b3}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.chroma .line{display:flex}.chroma .k{color:#af3a03}.chroma .kc{color:#af3a03}.chroma .kd{color:#af3a03}.chroma .kn{color:#af3a03}.chroma .kp{color:#af3a03}.chroma .kr{color:#af3a03}.chroma .kt{color:#b57614}.chroma .n{}.chroma .na{color:#79740e;font-weight:700}.chroma .nb{color:#b57614}.chroma .bp{}.chroma .nc{}.chroma .no{color:#d3869b}.chroma .nd{}.chroma .ni{color:#b57614}.chroma .ne{color:#fb4934}.chroma .nf{color:#b57614}.chroma .fm{}.chroma .nl{color:#9d0006}.chroma .nn{}.chroma .nx{}.chroma .py{}.chroma .nt{color:#9d0006}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.chroma .l{}.chroma .ld{}.chroma .s{color:#79740e}.chroma .sa{color:#79740e}.chroma .sb{color:#79740e}.chroma .sc{color:#79740e}.chroma .dl{color:#79740e}.chroma .sd{color:#79740e}.chroma .s2{color:#79740e}.chroma .se{color:#79740e}.chroma .sh{color:#79740e}.chroma .si{color:#79740e}.chroma .sx{color:#79740e}.chroma .sr{color:#79740e}.chroma .s1{color:#79740e}.chroma .ss{color:#076678}.chroma .m{color:#8f3f71}.chroma .mb{color:#8f3f71}.chroma .mf{color:#8f3f71}.chroma .mh{color:#8f3f71}.chroma .mi{color:#8f3f71}.chroma .il{color:#8f3f71}.chroma .mo{color:#8f3f71}.chroma .o{color:#af3a03}.chroma .ow{color:#af3a03}.chroma .p{}.chroma .c{color:#928374;font-style:italic}.chroma .ch{color:#928374;font-style:italic}.chroma .cm{color:#928374;font-style:italic}.chroma .c1{color:#928374;font-style:italic}.chroma .cs{color:#928374;font-style:italic}.chroma .cp{color:#427b58}.chroma .cpf{color:#427b58;font-style:italic}.chroma .g{}.chroma .gd{color:#282828;background-color:#9d0006}.chroma .ge{color:#076678;text-decoration:underline}.chroma .gr{background-color:#9d0006;font-weight:700}.chroma .gh{color:#79740e;font-weight:700}.chroma .gi{color:#282828;background-color:#79740e}.chroma .go{color:#504945}.chroma .gp{}.chroma .gs{}.chroma .gu{color:#79740e;font-weight:700}.chroma .gt{background-color:#3c3836;font-weight:700}.chroma .gl{}.chroma .w{}@media(prefers-color-scheme:dark){:root{--text-color:#EBDBB2;--text-color-alt:#928374;--background-color:#1D2021;--background-color-alt:#3c3836}.bg{color:#ebdbb2;background-color:#282828}.chroma{color:#ebdbb2;background-color:#282828}.chroma .x{}.chroma .err{}.chroma .cl{}.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:#3d3d3d}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.chroma .line{display:flex}.chroma .k{color:#fe8019}.chroma .kc{color:#fe8019}.chroma .kd{color:#fe8019}.chroma .kn{color:#fe8019}.chroma .kp{color:#fe8019}.chroma .kr{color:#fe8019}.chroma .kt{color:#fabd2f}.chroma .n{}.chroma .na{color:#b8bb26;font-weight:700}.chroma .nb{color:#fabd2f}.chroma .bp{}.chroma .nc{}.chroma .no{color:#d3869b}.chroma .nd{}.chroma .ni{color:#fabd2f}.chroma .ne{color:#fb4934}.chroma .nf{color:#fabd2f}.chroma .fm{}.chroma .nl{color:#fb4934}.chroma .nn{}.chroma .nx{}.chroma .py{}.chroma .nt{color:#fb4934}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.chroma .l{}.chroma .ld{}.chroma .s{color:#b8bb26}.chroma .sa{color:#b8bb26}.chroma .sb{color:#b8bb26}.chroma .sc{color:#b8bb26}.chroma .dl{color:#b8bb26}.chroma .sd{color:#b8bb26}.chroma .s2{color:#b8bb26}.chroma .se{color:#b8bb26}.chroma .sh{color:#b8bb26}.chroma .si{color:#b8bb26}.chroma .sx{color:#b8bb26}.chroma .sr{color:#b8bb26}.chroma .s1{color:#b8bb26}.chroma .ss{color:#83a598}.chroma .m{color:#d3869b}.chroma .mb{color:#d3869b}.chroma .mf{color:#d3869b}.chroma .mh{color:#d3869b}.chroma .mi{color:#d3869b}.chroma .il{color:#d3869b}.chroma .mo{color:#d3869b}.chroma .o{color:#fe8019}.chroma .ow{color:#fe8019}.chroma .p{}.chroma .c{color:#928374;font-style:italic}.chroma .ch{color:#928374;font-style:italic}.chroma .cm{color:#928374;font-style:italic}.chroma .c1{color:#928374;font-style:italic}.chroma .cs{color:#928374;font-style:italic}.chroma .cp{color:#8ec07c}.chroma .cpf{color:#8ec07c;font-style:italic}.chroma .g{}.chroma .gd{color:#282828;background-color:#fb4934}.chroma .ge{color:#83a598;text-decoration:underline}.chroma .gr{background-color:#fb4934;font-weight:700}.chroma .gh{color:#b8bb26;font-weight:700}.chroma .gi{color:#282828;background-color:#b8bb26}.chroma .go{color:#504945}.chroma .gp{}.chroma .gs{}.chroma .gu{color:#b8bb26;font-weight:700}.chroma .gt{background-color:#fb4934;font-weight:700}.chroma .gl{}.chroma .w{}}*{box-sizing:border-box}*+*{margin-top:var(--line-height)}html{display:flex;width:100%;margin:0;padding:0;flex-direction:column;align-items:center;background:var(--background-color);color:var(--text-color)}body{position:relative;width:100%;margin:0;padding:var(--line-height)2ch;max-width:calc(min(80ch,round(down,100%,1ch)));line-height:var(--line-height);overflow-x:initial}@media screen and (max-width:480px){:root{font-size:14px}body{padding:var(--line-height)1ch}}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);margin:calc(var(--line-height) * 2)0 var(--line-height);line-height:var(--line-height)}h1{font-size:2rem;line-height:calc(2 * var(--line-height));margin-bottom:calc(var(--line-height) * 2)}h2{font-size:1.5rem;line-height:calc(1.5 * var(--line-height))}hr{position:relative;display:block;height:var(--line-height);margin:calc(var(--line-height) * 1.5)0;border:none;color:var(--text-color)}hr:after{display:block;content:"";position:absolute;top:calc(var(--line-height)/2 - var(--border-thickness));left:0;width:100%;border-top:calc(var(--border-thickness) * 3)double var(--text-color);height:0}a{text-decoration-thickness:var(--border-thickness)}a:link,a:visited{color:var(--text-color)}p{margin-bottom:var(--line-height)}strong{font-weight:var(--font-weight-bold)}em{font-style:italic}sub{position:relative;display:inline-block;margin:0;vertical-align:sub;line-height:0;width:calc(1ch/.75);font-size:.75rem}table{position:relative;top:calc(var(--line-height)/2);width:calc(round(down,100%,1ch));border-collapse:collapse;margin:0 0 calc(var(--line-height) * 2)}th,td{border:var(--border-thickness)solid var(--text-color);padding:calc((var(--line-height)/2))calc(1ch - var(--border-thickness)/2)calc((var(--line-height)/2) - (var(--border-thickness)));line-height:var(--line-height);vertical-align:top;text-align:left}table tbody tr:first-child>*{padding-top:calc((var(--line-height)/2) - var(--border-thickness))}th{font-weight:700}.width-min{width:0%}.width-auto{width:100%}.header{margin-bottom:calc(var(--line-height) * 2)}.header h1{margin:0}.header tr td:last-child{text-align:right}p{word-break:break-word;word-wrap:break-word;hyphens:auto}img,video{display:block;width:100%;object-fit:contain;overflow:hidden}img{font-style:italic;color:var(--text-color-alt)}details{border:var(--border-thickness)solid var(--text-color);padding:calc(var(--line-height) - var(--border-thickness))1ch;margin-bottom:var(--line-height)}summary{font-weight:var(--font-weight-medium);cursor:pointer}details[open] summary{margin-bottom:var(--line-height)}details ::marker{display:inline-block;content:'▶';margin:0}details[open] ::marker{content:'▼'}details :last-child{margin-bottom:0}pre{white-space:pre;overflow-x:auto;margin:var(--line-height)0;overflow-y:hidden}figure pre{margin:0}pre,code{font-family:var(--font-family)}code{font-weight:var(--font-weight-medium)}figure{margin:calc(var(--line-height) * 2)3ch;overflow-x:auto;overflow-y:hidden}figcaption{display:block;font-style:italic;margin-top:var(--line-height)}ul,ol{padding:0;margin:0 0 var(--line-height)}ul{list-style-type:square;padding:0 0 0 2ch}ol{list-style-type:none;counter-reset:item;padding:0}ol ul,ol ol,ul ol,ul ul{padding:0 0 0 3ch;margin:0}ol li:before{content:counters(item,".")". ";counter-increment:item;font-weight:var(--font-weight-medium)}li{margin:0;padding:0}li::marker{line-height:0}::-webkit-scrollbar{height:var(--line-height)}input,button,textarea{border:var(--border-thickness)solid var(--text-color);padding:calc(var(--line-height)/2 - var(--border-thickness))calc(1ch - var(--border-thickness));margin:0;font:inherit;font-weight:inherit;height:calc(var(--line-height) * 2);width:auto;overflow:visible;background:var(--background-color);color:var(--text-color);line-height:normal;-webkit-font-smoothing:inherit;-moz-osx-font-smoothing:inherit;-webkit-appearance:none}input[type=checkbox],input[type=radio]{display:inline-grid;place-content:center;vertical-align:top;width:2ch;height:var(--line-height);cursor:pointer}input[type=checkbox]:checked:before,input[type=radio]:checked:before{content:"";width:1ch;height:calc(var(--line-height)/2);background:var(--text-color)}input[type=radio],input[type=radio]:before{border-radius:100%}button:focus,input:focus{--border-thickness:3px;outline:none}input{width:calc(round(down,100%,1ch))}::placeholder{color:var(--text-color-alt);opacity:1}::-ms-input-placeholder{color:var(--text-color-alt)}button::-moz-focus-inner{padding:0;border:0}button{font-weight:var(--font-weight-medium);cursor:pointer}button:hover{background:var(--background-color-alt)}button:active{transform:translate(2px,2px)}label{display:block;width:calc(round(down,100%,1ch));height:auto;line-height:var(--line-height);font-weight:var(--font-weight-medium);margin:0}label input{width:100%}.tree,.tree ul{position:relative;padding-left:0;list-style-type:none;line-height:var(--line-height)}.tree ul{margin:0}.tree ul li{position:relative;padding-left:1.5ch;margin-left:1.5ch;border-left:var(--border-thickness)solid var(--text-color)}.tree ul li:before{position:absolute;display:block;top:calc(var(--line-height)/2);left:0;content:"";width:1ch;border-bottom:var(--border-thickness)solid var(--text-color)}.tree ul li:last-child{border-left:none}.tree ul li:last-child:after{position:absolute;display:block;top:0;left:0;content:"";height:calc(var(--line-height)/2);border-left:var(--border-thickness)solid var(--text-color)}.grid{--grid-cells:0;display:flex;gap:1ch;width:calc(round(down,100%,(1ch * var(--grid-cells)) - (1ch * var(--grid-cells) - 1)));margin-bottom:var(--line-height)}.grid>*,.grid>input{flex:0 0 calc(round(down,(100% - (1ch * (var(--grid-cells) - 1)))/var(--grid-cells),1ch))}.grid:has(>:last-child:nth-child(1)){--grid-cells:1}.grid:has(>:last-child:nth-child(2)){--grid-cells:2}.grid:has(>:last-child:nth-child(3)){--grid-cells:3}.grid:has(>:last-child:nth-child(4)){--grid-cells:4}.grid:has(>:last-child:nth-child(5)){--grid-cells:5}.grid:has(>:last-child:nth-child(6)){--grid-cells:6}.grid:has(>:last-child:nth-child(7)){--grid-cells:7}.grid:has(>:last-child:nth-child(8)){--grid-cells:8}.grid:has(>:last-child:nth-child(9)){--grid-cells:9}.debug .debug-grid{--color:color-mix(in srgb, var(--text-color) 10%, var(--background-color) 90%);position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;background-image:repeating-linear-gradient(var(--color) 0 1px,transparent 1px 100%),repeating-linear-gradient(90deg,var(--color) 0 1px,transparent 1px 100%);background-size:1ch var(--line-height);margin:0}.debug .off-grid{background:rgba(255,0,0,.1)}.debug-toggle-label{text-align:right}.header-sticky{position:sticky;top:0;overflow:hidden;background-color:var(--background-color)}.header-title{margin-top:0;margin-bottom:0}.header-nav{margin-top:0;margin-bottom:auto;margin-top:auto}.header-nav-ul{padding:0;margin-bottom:0}.header-nav-ul li{margin-left:10px}.header-nav-ul li{display:inline}.page-title{margin-bottom:1rem}.post-title{margin-bottom:0}.list-item-break{display:none}.list-item-date{margin-left:1em;color:var(--text-color-alt)}.post-divider{margin:0}.header-div{display:flex;justify-content:space-between}.footer{margin:calc(var(--line-height) * 2 + var(--line-height) * .5)0 var(--line-height)}.svg-inline{width:var(--line-height);fill:var(--text-color)}@media screen and (max-width:480px){.list-item-date{margin-left:0}.list-item-break{display:block}.header-div{display:block}.header-nav-ul li{margin-left:0;margin-right:10px}}#cookie-form{box-sizing:border-box;width:100%;position:fixed;bottom:0;margin-bottom:20px;left:0;padding:0 2ch}#cookie-form .cookie-div{width:100%;margin-right:auto;margin-left:auto;display:flex;max-width:calc(min(76ch,round(down,100%,1ch)));justify-content:space-between}#cookie-form .cookie-div .cookie-buttons{margin-top:0;display:flex;margin-top:auto;margin-bottom:auto}#cookie-form .cookie-div .cookie-buttons :first-child{margin-right:5px}#cookie-form .cookie-div{border:var(--border-thickness)solid var(--text-color);padding:10px;background-color:var(--background-color)}.accept-button{background-color:var(--text-color);color:var(--background-color)}@media screen and (max-width:480px){#cookie-form{padding:0 1ch}}code .line{margin-top:0}.chroma{padding:1rem;border:var(--border-thickness)solid var(--text-color);border-radius:4px}