:root{--bg:#eee;--text:#111;--footer:#555;--shadow:#555;--tag:grey;--mono:0;--casl:0;--wght:400;--slnt:0;--CRSV:0.5;--block-bottom:1.5rem}@media(prefers-color-scheme:dark){:root{--bg:#2a2a2a;--text:#ccc;--footer:#999;--shadow:#bbb}}@font-face{font-family:recursive;font-display:swap;src:url(/recursive.woff2)format("woff2")}*{margin:0;box-sizing:border-box}body{background-color:var(--bg);font-family:recursive;color:var(--text);font-variation-settings:"MONO" var(--mono),"CASL" var(--casl),"wght" var(--wght),"slnt" var(--slnt),"CRSV" var(--CRSV)}h1,h2,h3,h4,h5,h6{--wght:600;--mono:1;font-variation-settings:"MONO" var(--mono),"CASL" var(--casl),"wght" var(--wght),"slnt" var(--slnt),"CRSV" var(--CRSV);margin-bottom:.7rem}h1{font-size:2.1rem}h2{font-size:1.8rem}h2:not(:first-child){margin-top:calc(1.5 * var(--block-bottom))}h3{font-size:1.5rem}h3:not(:first-child){margin-top:calc(1.6 * var(--block-bottom))}h4{font-size:1.3rem}h4:not(:first-child){margin-top:calc(1.7 * var(--block-bottom))}h5{font-size:1.2rem}h5:not(:first-child){margin-top:calc(1.7 * var(--block-bottom))}h6{font-size:1.1rem}h6:not(:first-child){margin-top:calc(1.7 * var(--block-bottom))}main :is(hr,p,ol,ul,figure,pre):not(last-child){margin-bottom:var(--block-bottom)}li:not(last-child){margin-bottom:.5rem}.highlight,pre{overflow-x:auto}pre:not(.chroma),figure{margin-left:1rem;margin-right:1rem}a{color:var(--text);text-decoration:underline dashed .01em}a:hover{text-decoration:underline .1em}a:visited{color:var(--a-visited)}strong{--wght:800;font-variation-settings:"MONO" var(--mono),"CASL" var(--casl),"wght" var(--wght),"slnt" var(--slnt),"CRSV" var(--CRSV)}em{--slnt:-14;font-variation-settings:"MONO" var(--mono),"CASL" var(--casl),"wght" var(--wght),"slnt" var(--slnt),"CRSV" var(--CRSV)}img{display:block;max-width:100%}hr{overflow:visible;border:none;border-top:.1rem solid;text-align:center;height:.1rem}hr:after{content:"△";display:inline-block;position:relative;top:-.65em;padding:0 .5em;background:var(--bg);font-size:1rem}.container{max-width:48rem;margin:0 auto;padding:.5rem 1rem 0;display:flex;flex-direction:column;min-height:100vh}.content{flex:1}.banner{align-items:center;display:flex;column-gap:.75rem;margin-bottom:1rem;--mono:1;font-variation-settings:"MONO" var(--mono),"CASL" var(--casl),"wght" var(--wght),"slnt" var(--slnt),"CRSV" var(--CRSV)}.banner .logo{display:inherit;width:5rem}.banner .title{font-size:1.7rem}.banner nav ul{margin:0;text-transform:lowercase}footer{font-size:.8rem;color:var(--footer);text-align:center;margin-top:2rem;margin-bottom:2rem}header{margin-bottom:1rem}header *{margin-bottom:.5rem!important}.footnotes p{margin-bottom:.5rem}.flatlist{list-style:none;padding:0}.flatlist>li{display:inline-block;margin-bottom:0}.flatlist>li:not(:first-child):before{content:"|";filter:opacity(50%)}.tag{background-color:var(--tag);border-radius:50vh}.embed{border:2px solid;box-shadow:3px 3px 1px var(--shadow)}.embedtab{font-family:monospace;text-transform:uppercase;font-size:14px;padding:1px 5px;overflow:hidden}.embedtab:not(:first-child){border-top:2px solid}.embedtab:not(:last-child){border-bottom:2px solid}.embedcontent{padding:10px}.embedcontent img{margin:0}.gitearepo{display:grid;position:relative;grid-template-columns:max-content auto}.repoavatar{grid-row:1/span 2;grid-column:1;align-self:center;width:3rem;margin-right:.8rem;border:.1rem solid;border-radius:.4rem;overflow:hidden}.repoavatar>img{margin:0}.reponame{grid-column:2;grid-row:1}.repodescription{grid-column:2;grid-row:2}.languagelabels{grid-row:3;grid-column:1/-1;display:flex;padding:0;margin:0}.languagelabels>li{list-style:none}.languagelabels>li>div{display:inline-block;height:.75rem;width:.75rem;border-radius:100%;background-color:#fff}.languages{grid-row:4;grid-column:1/-1;height:.75rem;display:flex;border-radius:.375rem;overflow:hidden;border:2px solid}.languages>div:not(:last-child){border-right:2px solid}@media(prefers-color-scheme:light){.bg{color:#272822;background-color:#fafafa}.chroma{color:#272822;background-color:#fafafa}.chroma .x{}.chroma .err{color:#960050;background-color:#1e0010}.chroma .cl{}.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:#ffc}.chroma .lnt{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#00a8c8}.chroma .kc{color:#00a8c8}.chroma .kd{color:#00a8c8}.chroma .kn{color:#f92672}.chroma .kp{color:#00a8c8}.chroma .kr{color:#00a8c8}.chroma .kt{color:#00a8c8}.chroma .n{color:#111}.chroma .na{color:#75af00}.chroma .nb{color:#111}.chroma .bp{color:#111}.chroma .nc{color:#75af00}.chroma .no{color:#00a8c8}.chroma .nd{color:#75af00}.chroma .ni{color:#111}.chroma .ne{color:#75af00}.chroma .nf{color:#75af00}.chroma .fm{color:#111}.chroma .nl{color:#111}.chroma .nn{color:#111}.chroma .nx{color:#75af00}.chroma .py{color:#111}.chroma .nt{color:#f92672}.chroma .nv{color:#111}.chroma .vc{color:#111}.chroma .vg{color:#111}.chroma .vi{color:#111}.chroma .vm{color:#111}.chroma .l{color:#ae81ff}.chroma .ld{color:#d88200}.chroma .s{color:#d88200}.chroma .sa{color:#d88200}.chroma .sb{color:#d88200}.chroma .sc{color:#d88200}.chroma .dl{color:#d88200}.chroma .sd{color:#d88200}.chroma .s2{color:#d88200}.chroma .se{color:#8045ff}.chroma .sh{color:#d88200}.chroma .si{color:#d88200}.chroma .sx{color:#d88200}.chroma .sr{color:#d88200}.chroma .s1{color:#d88200}.chroma .ss{color:#d88200}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .p{color:#111}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .g{}.chroma .gd{}.chroma .ge{font-style:italic}.chroma .gr{}.chroma .gh{}.chroma .gi{}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{}.chroma .gt{}.chroma .gl{}.chroma .w{}}@media(prefers-color-scheme:dark){.bg{color:#f8f8f2;background-color:#272822}.chroma{color:#f8f8f2;background-color:#272822}.chroma .x{}.chroma .err{color:#960050;background-color:#1e0010}.chroma .cl{}.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:#ffc}.chroma .lnt{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#66d9ef}.chroma .kc{color:#66d9ef}.chroma .kd{color:#66d9ef}.chroma .kn{color:#f92672}.chroma .kp{color:#66d9ef}.chroma .kr{color:#66d9ef}.chroma .kt{color:#66d9ef}.chroma .n{}.chroma .na{color:#a6e22e}.chroma .nb{}.chroma .bp{}.chroma .nc{color:#a6e22e}.chroma .no{color:#66d9ef}.chroma .nd{color:#a6e22e}.chroma .ni{}.chroma .ne{color:#a6e22e}.chroma .nf{color:#a6e22e}.chroma .fm{}.chroma .nl{}.chroma .nn{}.chroma .nx{color:#a6e22e}.chroma .py{}.chroma .nt{color:#f92672}.chroma .nv{}.chroma .vc{}.chroma .vg{}.chroma .vi{}.chroma .vm{}.chroma .l{color:#ae81ff}.chroma .ld{color:#e6db74}.chroma .s{color:#e6db74}.chroma .sa{color:#e6db74}.chroma .sb{color:#e6db74}.chroma .sc{color:#e6db74}.chroma .dl{color:#e6db74}.chroma .sd{color:#e6db74}.chroma .s2{color:#e6db74}.chroma .se{color:#ae81ff}.chroma .sh{color:#e6db74}.chroma .si{color:#e6db74}.chroma .sx{color:#e6db74}.chroma .sr{color:#e6db74}.chroma .s1{color:#e6db74}.chroma .ss{color:#e6db74}.chroma .m{color:#ae81ff}.chroma .mb{color:#ae81ff}.chroma .mf{color:#ae81ff}.chroma .mh{color:#ae81ff}.chroma .mi{color:#ae81ff}.chroma .il{color:#ae81ff}.chroma .mo{color:#ae81ff}.chroma .o{color:#f92672}.chroma .ow{color:#f92672}.chroma .p{}.chroma .c{color:#75715e}.chroma .ch{color:#75715e}.chroma .cm{color:#75715e}.chroma .c1{color:#75715e}.chroma .cs{color:#75715e}.chroma .cp{color:#75715e}.chroma .cpf{color:#75715e}.chroma .g{}.chroma .gd{color:#f92672}.chroma .ge{font-style:italic}.chroma .gr{}.chroma .gh{}.chroma .gi{color:#a6e22e}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#75715e}.chroma .gt{}.chroma .gl{}.chroma .w{}}