*,::after,::before{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;background:var(--background);color:var(--text)}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin-block-end:0}ol[role=list],ul[role=list]{list-style:none}body{min-height:100vh;line-height:1.5;margin:0;color-scheme:light dark;color:light-dark(var(--background),var(--text));background-color:light-dark(var(--text),var(--background));--header-background:light-dark(var(--stone-0), var(--stone-10));--callout-background:light-dark(var(--stone-2), var(--stone-11));--glitch-lightest-opacity:light-dark(0.95, 0.85);--inline-code-background:light-dark(var(--blue-12), var(--blue-0));--inline-code-color:light-dark(var(--stone-0), var(--stone-12))}button,h1,h2,h3,h4,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}:where(html){--font-system-ui:system-ui,sans-serif;--font-monospace-slab-serif:Nimbus Mono PS,Courier New,monospace;--font-monospace-code:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,Cascadia Code,Menlo,Consolas,DejaVu Sans Mono,monospace;--font-sans:var(--font-system-ui);--font-serif:ui-serif,serif;--font-mono:var(--font-monospace-code);--font-weight-1:100;--font-weight-2:200;--font-weight-3:300;--font-weight-4:400;--font-weight-5:500;--font-weight-6:600;--font-weight-7:700;--font-weight-8:800;--font-weight-9:900;--font-lineheight-1:1.25;--font-size-00:0.5rem;--font-size-0:0.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-7:3rem;--font-size-8:3.5rem;--font-size-fluid-0:clamp(0.75rem, 2vw, 1rem);--font-size-fluid-1:clamp(1rem, 4vw, 1.5rem);--font-size-fluid-2:clamp(1.5rem, 6vw, 2.5rem);--font-size-fluid-3:clamp(2rem, 9vw, 3.5rem);--size-xxs:240px;--size-xs:360px;--size-sm:480px;--size-md:768px;--size-lg:1024px;--size-xl:1440px;--size-xxl:1920px;--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--blue-0:#e7f5ff;--blue-1:#d0ebff;--blue-2:#a5d8ff;--blue-3:#74c0fc;--blue-4:#4dabf7;--blue-5:#339af0;--blue-6:#228be6;--blue-7:#1c7ed6;--blue-8:#1971c2;--blue-9:#1864ab;--blue-10:#145591;--blue-11:#114678;--blue-12:#0d375e;--stone-0:#f8fafb;--stone-1:#f2f4f6;--stone-2:#ebedef;--stone-10:#3a3a37;--stone-11:#252521;--stone-12:#121210;--grey-2:rgb(233, 236, 239);--stone-2:rgb(235, 237, 239);--red-2:rgb(255, 201, 201);--pink-2:rgb(252, 194, 215);--purple-2:rgb(238, 190, 250);--violet-2:rgb(208, 191, 255);--indigo-2:rgb(186, 200, 255);--cyan-2:rgb(153, 233, 242);--teal-2:rgb(150, 242, 215);--green-2:rgb(178, 242, 187);--lime-2:rgb(216, 245, 162);--yellow-2:rgb(255, 216, 168);--orange-2:rgb(247, 202, 158);--choco-2:rgb(224, 202, 183);--brown-2:rgb(213, 207, 189);--sand-2:rgb(213, 207, 189);--camo-2:rgb(210, 223, 78);--jungle-2:rgb(208, 232, 132);--grey-10:rgb(22, 25, 29);--stone-10:rgb(58, 58, 55);--red-10:rgb(176, 37, 37);--pink-10:rgb(140, 25, 65);--purple-10:rgb(112, 38, 130);--violet-10:rgb(82, 53, 171);--indigo-10:rgb(47, 68, 173);--cyan-10:rgb(9, 92, 107);--teal-10:rgb(6, 102, 73);--green-10:rgb(35, 112, 50);--lime-10:rgb(76, 122, 11);--yellow-10:rgb(179, 92, 0);--orange-10:rgb(191, 64, 13);--choco-10:rgb(112, 58, 19);--brown-10:rgb(94, 58, 33);--sand-10:rgb(56, 53, 45);--camo-10:rgb(93, 84, 17);--jungle-10:rgb(101, 128, 6);--text:var(--stone-1);--background:var(--stone-11)}:where(h1,h2,h3,h4,h5,h6){text-wrap:balance;font-weight:var(--font-weight-1);line-height:var(--font-lineheight-1);margin-block-start:0}:where(h1){font-size:var(--font-size-6);max-inline-size:var(--size-md)}:where(h2){font-size:var(--font-size-5);max-inline-size:var(--size-header-2)}:where(h3){font-size:var(--font-size-4);--deeplink-size:var(--size-header-5)}:where(h4){font-size:var(--font-size-3);--deeplink-size:var(--size-header-4)}:where(h5){font-size:var(--font-size-2);--deeplink-size:var(--size-header-3)}:where(h3,h4,h5,h6,dt){max-inline-size:var(--size-header-3)}:where(p,ul,ol,dl,h6){font-size:var(--font-size-2)}:where(a,u,ins,abbr){text-underline-offset:1px}@supports (-moz-appearance:none){:where(a,u,ins,abbr){text-underline-offset:2px}}:where(
a[href],area,button,input:not(
[type=text],[type=email],[type=number],[type=password],[type=""],[type=tel],[type=url]
),label[for],select,summary,[tabindex]:not([tabindex*="-"],pre)
){cursor:pointer}:where(
a[href],area,button,input,label[for],select,summary,textarea,[tabindex]:not([tabindex*="-"])
){-webkit-tap-highlight-color:transparent;touch-action:manipulation}:where(a):where([href]){text-decoration-color:var(--indigo-2)}:where(a):where([href]):where(:visited){text-decoration-color:var(--purple-2)}:where(a):where(:not(:hover)){text-decoration:inherit}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,svg,video){block-size:auto;max-inline-size:100%}:where(code,kbd,samp,pre){font-family:var(--font-monospace-code),monospace}:where(:not(pre) > code,kbd){white-space:nowrap}:where(pre){direction:ltr;max-inline-size:max-content;min-inline-size:0;white-space:pre;writing-mode:lr}:where(:not(pre) > code){background:var(--surface-2);border-radius:var(--radius-2);padding:var(--size-1) var(--size-2);writing-mode:lr}:where(kbd,var){border-color:var(--surface-4);border-radius:var(--radius-2);border-width:var(--border-size-1);padding:var(--size-1) var(--size-2)}:where(mark){border-radius:var(--radius-2);padding-inline:var(--size-1)}:where(ol,ul){padding-inline-start:var(--size-8)}:where(li){padding-inline-start:var(--size-2)}:where(li,dd,figcaption){max-inline-size:var(--size-content-2)}:where(p){text-wrap:pretty;max-inline-size:var(--size-content-3)}:where(dt,summary){font-weight:var(--font-weight-7)}:where(dt:not(:first-of-type)){margin-block-start:var(--size-5)}:where(small){font-size:max(.5em, var(--font-size-0));max-inline-size:var(--size-content-1)}@font-face{font-family:"Maple Mono";font-style:normal;font-weight:400;src:url("/fonts/MapleMonoVF-subset.woff2") format("woff2");font-display:swap}:where(html){font-family:"Maple Mono",var(--font-monospace-code),monospace;font-variation-settings:"wght" 400}@view-transition{navigation:auto}main:not(:has(article)){view-transition-name:main}body:not(.rainbow) a:not([class]){color:currentColor!important}body.deglitch{--glitch-off-color:var(--blue-4)}.skip-link{position:absolute;top:auto;left:-10000px;width:1px;height:1px;overflow:hidden;font-size:1.125rem;font-weight:700;white-space:nowrap;padding:8px 20px;text-align:center;text-decoration:none;background-image:none}.skip-link:focus{position:fixed;top:0;left:50%;transform:translate3d(-50%,0,0);width:auto;height:auto;display:inline-block;z-index:99}main{--gap:4rem;--line-offset:calc(var(--gap) / 2);--line-thickness:2px;--line-color:var(--blue-2);max-width:var(--size-lg);padding:1rem;margin:0 auto}.wrapper>*{position:relative;padding:1.5rem}:root{color-scheme:light dark;--form-control-color:var(--blue-4)}body.dark{color-scheme:dark!important}body:not(.dark){color-scheme:light!important}.heading-underline{position:relative;text-align:center;margin-block-end:2.5rem}*+.heading-underline{margin-block-start:2.5rem}.heading-underline::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--line-color);margin:1rem 0;inline-size:40%;block-size:var(--line-thickness);inset-inline-start:30%;inset-block-start:calc(var(--line-offset) * -1);top:100%}.underline{position:relative;margin-block-end:2.5rem}.underline::before{content:"";display:block;position:absolute;border-bottom:2px solid var(--line-color);margin:1rem 0;inline-size:70%;block-size:var(--line-thickness);inset-inline-start:0;inset-block-start:calc(var(--line-offset) * -1);top:100%}.heading,h1,h2,h3,h4,h5,h6{font-family:"Maple Mono",var(--font-monospace-code),monospace;font-variation-settings:"wght" 600}.heading{font-weight:var(--font-weight-7)}.banner{background:var(--blue-12);color:var(--stone-0);padding:1.5rem;width:100%;grid-column:-1/1;--override-color:var(--stone-0)}.center-align{text-align:center;margin-inline:auto;width:fit-content;justify-content:center}.glitch-wrapper.center-align>[data-glitch]::after,.glitch-wrapper.center-align>[data-glitch]::before{text-align:center;margin-inline:auto;width:100%}small .button{padding:.25rem}.button{padding:.5rem 1rem}.banner.outline,.button.outline{position:relative;background:0 0;--banner-line-color:var(--blue-4);--banner-text-color:currentColor;border:2px solid var(--banner-line-color,var(--blue-12));color:var(--banner-text-color,var(--blue-12))}.banner.outline::after,.banner.outline::before,.button.outline::after,.button.outline::before{content:"";position:absolute;width:100%;height:100%;top:0;left:0}.banner.outline:hover::before,.button.outline:hover::before{border-color:var(--glitch-off-color,#f16f6f);animation:1.5s infinite text-glitch1;border:1px solid}.banner.outline:hover::after,.button.button:hover::after{border-color:var(--glitch-off-color,#67f3da);animation:1.5s .5s infinite text-glitch2;border:1px solid}h2+small,h3+small,h4+small{display:block;width:100%;margin-block-start:1.25rem;max-width:100%}ul{list-style:none;padding:0}ol,ol li{list-style:decimal;padding:0}:not(nav)>ul li:not(:last-of-type){margin-block-end:2rem}ul:not([class]) li{position:relative;padding-left:2.25rem}ul:not([class]) li::after,ul:not([class]) li::before{content:"";position:absolute;left:1ch;top:1ex;height:1ex;width:1ex;border:2px solid var(--marker-color,var(--blue-4));transition:.2s}ul:not([class]) li:hover::after,ul:not([class]) li:hover::before{animation-direction:alternate-reverse;animation-duration:.75s;height:100%;top:0}ul:not([class]) li::before{--marker-color:var(--glitch-off-color, #f16f6f);animation:5.5s infinite list-glitch1;animation-delay:var(--local-delay, 0);animation-direction:var(--local-direction,alternate-reverse)}ul:not([class]) li::after{--marker-color:var(--glitch-off-color, #67f3da);animation:5.5s infinite list-glitch2;animation-delay:var(--local-delay, 0);animation-direction:var(--local-direction,alternate-reverse)}footer,header{--line-color:var(--blue-2);width:100%;padding:3rem 2rem;background:var(--header-background);position:relative;overflow:hidden}header{border-bottom:2px solid var(--line-color);display:flex;justify-content:space-between}header::after,header::before{content:"";position:absolute;width:100%;height:100%;border-bottom:2px solid;top:0;left:0;overflow:hidden}footer::before,header::before{border-color:var(--glitch-off-color,#f16f6f);animation:3.5s infinite list-glitch1}footer::after,header::after{border-color:var(--glitch-off-color,#67f3da);animation:2.5s .5s infinite list-glitch2}footer::after,footer::before{content:"";position:absolute;width:100%;height:100%;border-top:2px solid;top:0;left:0}header>div{width:var(--size-lg);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-inline:auto}footer>nav{max-width:var(--size-xl);margin-inline:auto}footer{border-top:2px solid var(--line-color);justify-content:center}footer nav ul,header nav ul{display:flex;gap:1rem;flex-direction:row;flex-wrap:wrap}footer nav ul li,header nav ul li{margin-block-end:0}footer nav ul{justify-content:center;align-items:center;margin:0}a{position:relative;text-decoration:underline;color:var(--override-color,var(--link-color));font-variation-settings:"wght" 700;font-weight:700}a::after,a::before{content:attr(data-glitch);text-transform:capitalize;position:absolute;top:0;left:0;opacity:0}a:hover::before{animation:3.5s infinite text-glitch3;color:var(--glitch-off-color,#f16f6f)}a:hover::after{animation:3.5s infinite text-glitch2;color:var(--glitch-off-color,#67f3da)}a:hover{text-decoration:none}.visually-hidden:not(:focus):not(:active){clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.flow>*+*{margin-block-start:var(--flow-gap,2rem)}::after,::before{pointer-events:none}.glitch-wrapper h1,.glitch-wrapper p,.glitch-wrapper small,article h2,article h3,article h4{position:relative}.glitch-wrapper h1{--custom-glitch-opacity:0.15}.glitch-wrapper small::after,.glitch-wrapper small::before,article h2::after,article h2::before,article h3::after,article h3::before,article h4::after,article h4::before{margin-left:1.35ch}.glitch-wrapper h1::after,.glitch-wrapper h1::before,.glitch-wrapper p:not(.no-glitch)::after,.glitch-wrapper p:not(.no-glitch)::before,.glitch-wrapper small::after,.glitch-wrapper small::before,article h2::after,article h2::before,article h3::after,article h3::before,article h4::after,article h4::before{content:attr(data-glitch);position:absolute;top:0;left:0;opacity:0}.glitch-wrapper:hover>h1,.glitch-wrapper:hover>p:not(.no-glitch),.glitch-wrapper:hover>small,article h2:hover,article h3:hover,article h4:hover{animation:3.5s infinite alternate text-glitch1}.glitch-wrapper:hover>h1::before,.glitch-wrapper:hover>p:not(.no-glitch)::before,.glitch-wrapper:hover>small::before,article h2:hover::before,article h3:hover::before,article h4:hover::before{animation:3.5s infinite alternate text-glitch2;color:var(--glitch-off-color,#67f3da)}.glitch-wrapper:hover>h1::after,.glitch-wrapper:hover>p:not(.no-glitch)::after,.glitch-wrapper:hover>small::after,article h2:hover::after,article h3:hover::after,article h4:hover::after{color:var(--glitch-off-color,#f16f6f);animation:3.5s infinite alternate text-glitch3}.callout:hover .title::after,.callout:hover .title::before,.callout:hover::after,.callout:hover::before{animation:none;display:none}.callout::before{border-color:var(--glitch-off-color,#f16f6f);animation:1.5s infinite text-glitch1;border:1px solid}.callout::after{border-color:var(--glitch-off-color,#67f3da);animation:1.5s .5s infinite text-glitch2;border:1px solid}.callout p{max-inline-size:100%}.callout .title{margin:0 0 0 -1.5rem;width:fit-content;background-color:var(--blue-8);color:var(--stone-0);padding:.5rem 1rem .5rem 1.5rem;font-size:1.5rem;position:relative}[data-gaw-remove]+.gaw-banner{display:none}.gaw-banner>small{max-width:var(--size-lg)}.gaw-banner{background:var(--callout-background);margin-top:0;padding-block:0.5rem;width:100%;position:relative;--line-color:var(--blue-2);border-bottom:2px solid var(--line-color)}.gaw-banner::after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden;border-bottom:2px solid;border-color:var(--glitch-off-color,#f16f6f);animation:2.5s .5s infinite list-glitch2}.form-control{line-height:1.1;display:grid;grid-template-columns:1em auto;gap:.5em;align-items:center}input[type=checkbox],input[type=radio]{-webkit-appearance:none;appearance:none;margin:0;font:inherit;color:currentColor;width:1.15em;height:1.15em;border:.15em solid var(--blue-7);transform:translateY(-.075em);display:grid;place-content:center;position:relative;animation:2.5s infinite list-glitch1}input[type=checkbox]::after,input[type=radio]::after{content:"";width:calc(100% + .3em);height:calc(100% + .3em);top:-.15em;position:absolute;transition:height 120ms ease-in-out;animation:2.5s infinite list-glitch2;border:.15em solid var(--glitch-off-color,#f16f6f);left:-.15em}input[type=checkbox]::before,input[type=radio]::before{content:"";width:.65em;height:0;top:0;position:absolute;transition:height 120ms ease-in-out;box-shadow:inset 1em 1em var(--form-control-color);animation:2.5s infinite text-glitch2}input[type=checkbox]:checked,input[type=radio]:checked{animation:none;background-color:#fff}input[type=checkbox]:checked::before,input[type=radio]:checked::before{height:100%;animation:none}input[type=checkbox]:checked::after,input[type=radio]:checked::after{display:none;animation:none}#filters,.controls,.controls>small:first-of-type{display:flex;flex-direction:row;list-style:none;gap:1.5rem;align-items:center}.controls>small:first-of-type{max-width:var(--size-lg);margin-inline:auto;justify-content:flex-end;align-items:center;width:100%}.controls:has(small){position:sticky;top:0;z-index:10;padding-inline:0.75rem}.controls #filters,.controls>*{margin:0}@media (max-width:768px){.wrapper{grid-template-columns:1fr}.onecol,.threecol,.twocol{grid-column:1}footer{padding-inline:0.25rem}footer nav ul{flex-wrap:wrap;width:100%;max-width:100vw;justify-content:flex-start}main{padding:.5rem}header nav ul li:first-of-type::after,header nav ul li:first-of-type::before{left:0}header nav ul li:first-of-type{padding-inline-start:calc(2.25rem - 1ch)}.wrapper>*{padding:.75rem;max-inline-size:100%}.gaw-banner{padding-inline-end:0.75rem}header{padding-block-end:2rem}label[for=favicon-toggle]{display:none}}body.deglitch .banner.outline::after,body.deglitch .banner.outline::before,body.deglitch .button.outline::after,body.deglitch .button.outline::before,body.deglitch .gaw-banner::after,body.deglitch .gaw-banner::before,body.deglitch .gh-edit::after,body.deglitch .gh-edit::before,body.deglitch a::after,body.deglitch a::before,body.deglitch article h2::after,body.deglitch article h2::before,body.deglitch article h3::after,body.deglitch article h3::before,body.deglitch article h4::after,body.deglitch article h4::before,body.deglitch blockquote::after,body.deglitch blockquote::before,body.deglitch figure::after,body.deglitch figure::before,body.deglitch footer::after,body.deglitch footer::before,body.deglitch header::after,body.deglitch header::before,body.deglitch picture::after,body.deglitch picture::before,body.deglitch td::after,body.deglitch td::before,body.deglitch th::after,body.deglitch th::before{display:none;animation:none!important;transition:none!important}gaw-info-bar{margin-inline:auto}