@import url("https://cdn.jsdelivr.net/npm/@xz/fonts@1/serve/cascadia-code.min.css");@import url("https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap");/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline;}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight,.highlight .w{color:#fbf1c7;background-color:#282828}.highlight .err{color:#fb4934;background-color:#282828;font-weight:bold}.highlight .c,.highlight .ch,.highlight .cd,.highlight .cm,.highlight .cpf,.highlight .c1,.highlight .cs{color:#928374;font-style:italic}.highlight .cp{color:#8ec07c}.highlight .nt{color:#fb4934}.highlight .o,.highlight .ow{color:#fbf1c7}.highlight .p,.highlight .pi{color:#fbf1c7}.highlight .gi{color:#b8bb26;background-color:#282828}.highlight .gd{color:#fb4934;background-color:#282828}.highlight .gh{color:#b8bb26;font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#fb4934}.highlight .kc{color:#d3869b}.highlight .kt{color:#fabd2f}.highlight .kd{color:#fe8019}.highlight .s,.highlight .sb,.highlight .sc,.highlight .dl,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:#b8bb26;font-style:italic}.highlight .si{color:#b8bb26;font-style:italic}.highlight .sr{color:#b8bb26;font-style:italic}.highlight .sa{color:#fb4934}.highlight .se{color:#fe8019}.highlight .nn{color:#8ec07c}.highlight .nc{color:#8ec07c}.highlight .no{color:#d3869b}.highlight .na{color:#b8bb26}.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mx{color:#d3869b}.highlight .ss{color:#83a598}/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */.hamburger{padding:15px 15px;display:inline-block;cursor:pointer;transition-property:opacity,filter;transition-duration:.15s;transition-timing-function:linear;font:inherit;color:inherit;text-transform:none;background-color:rgba(0,0,0,0);border:0;margin:0;overflow:visible}.hamburger:hover{opacity:.7}.hamburger.is-active:hover{opacity:.7}.hamburger.is-active .hamburger-inner,.hamburger.is-active .hamburger-inner::before,.hamburger.is-active .hamburger-inner::after{background-color:var(--main-fg-color-bright)}.hamburger-box{width:25px;height:18px;display:inline-block;position:relative}.hamburger-inner{display:block;top:50%;margin-top:-1px}.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{width:25px;height:2px;background-color:var(--main-fg-color);border-radius:4px;position:absolute;transition-property:transform;transition-duration:.15s;transition-timing-function:ease}.hamburger-inner::before,.hamburger-inner::after{content:"";display:block}.hamburger-inner::before{top:-8px}.hamburger-inner::after{bottom:-8px}.hamburger--collapse .hamburger-inner{top:auto;bottom:0;transition-duration:.13s;transition-delay:.13s;transition-timing-function:cubic-bezier(.55, .055, .675, .19)}.hamburger--collapse .hamburger-inner::after{top:-16px;transition:top .2s .2s cubic-bezier(.33333, .66667, .66667, 1),opacity .1s linear}.hamburger--collapse .hamburger-inner::before{transition:top .12s .2s cubic-bezier(.33333, .66667, .66667, 1),transform .13s cubic-bezier(.55, .055, .675, .19)}.hamburger--collapse.is-active .hamburger-inner{transform:translate3d(0, -8px, 0) rotate(-45deg);transition-delay:.22s;transition-timing-function:cubic-bezier(.215, .61, .355, 1)}.hamburger--collapse.is-active .hamburger-inner::after{top:0;opacity:0;transition:top .2s cubic-bezier(.33333, 0, .66667, .33333),opacity .1s .22s linear}.hamburger--collapse.is-active .hamburger-inner::before{top:0;transform:rotate(-90deg);transition:top .1s .16s cubic-bezier(.33333, 0, .66667, .33333),transform .13s .25s cubic-bezier(.215, .61, .355, 1)}.hamburger,.hamburger-box{z-index:1000;position:inherit}@media screen and (min-width: 900px){.hamburger,.hamburger-box{display:none}}:root{--main-bg-color: white;--main-fg-color: black;--main-fg-color-bright: black;--top-bar-height: 4em;--quote-bar-color: #ccc;--info-bg-color: #f7f7f7}body{font-family:"Quicksand",serif;font-size:16px;font-weight:400;line-height:1.5;color:var(--main-fg-color);background:var(--main-bg-color);overflow-wrap:break-word}a{color:#2879d0}a:hover{color:#2268b2}.hamburger{float:right;margin-right:-.8em;margin-top:.2em;opacity:.6}header{pointer-events:none;font-family:"Quicksand",serif;background:linear-gradient(to bottom, rgba(255,255,255,.8) 70%, rgba(255,255,255,.1) 74%, rgba(0,0,0,0));padding-bottom:1px;position:fixed;left:0;top:0;right:0;z-index:100;overflow:hidden;height:calc(var(--top-bar-height) + 1em)}header *{pointer-events:auto}header h1{font-size:24px;font-weight:normal;line-height:1;color:var(--main-fg-color);opacity:.6;display:inline-block;text-transform:lowercase;transition:color .3s}header::before{position:absolute;width:100%;top:0;bottom:25px;content:"";backdrop-filter:blur(2px)}header>.inner{overflow:hidden}header h2{margin-top:0;margin-bottom:0;font-size:26px;font-weight:normal;line-height:1.3;letter-spacing:0}#main-menu{font-size:2rem;transition:opacity .5s,visibility 0s .5s;visibility:hidden;opacity:0;background:var(--main-bg-color);position:fixed;top:0;bottom:0;right:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center}@media screen and (min-width: 900px){#main-menu{position:unset;float:right;background:rgba(0,0,0,0);visibility:visible;opacity:1;transition:none;bottom:unset;left:unset;z-index:150;font-size:24px;margin:.67em 0;line-height:22.5px}}#main-menu.is-active{visibility:visible;opacity:1;transition:opacity .5s,visibility 0s 0s}#main-menu ul{padding:0;margin:0}#main-menu li{list-style-type:none}@media screen and (min-width: 900px){#main-menu li{display:inline-block;margin-left:.2em}#main-menu li a{color:var(--main-fg-color);opacity:.6;transition:opacity .3s}#main-menu li a:hover{opacity:1}}.inner{position:relative;width:93%;max-width:45em;margin:0 auto}.inner.wide{width:100%}#content-wrapper{padding-top:var(--top-bar-height)}#main-content{float:left;width:100%}#main-content img{max-width:100%;max-height:70vmin;display:block;margin-left:auto;margin-right:auto;border-radius:6px}#main-content figure{margin:1em auto;width:fit-content}#main-content figure>figcaption{font-style:italic;margin:0 .3em}#main-content .small-image{display:block;margin-left:auto;margin-right:auto;text-align:center;margin-top:16px}#main-content .small-image img{max-height:40vh;object-fit:contain;max-width:100%}.social-links{list-style:none;padding-left:0;margin:1.5em 0}.social-links li{margin:.7em 0}#main-content .social-icon{vertical-align:middle;margin:0 .3em;height:32px;display:inline-block}#main-content .page-heading{font-size:32px;opacity:.6;border:1px solid var(--main-fg-color);text-align:center;margin:.5rem 0 1.5rem 0;padding:.5em 0em;display:none}@media screen and (min-width: 600px){#main-content .page-heading{display:block}}aside#sidebar{float:right;display:none}a.button{width:134px;height:58px;padding-top:22px;padding-left:68px;font-family:"Architects Daughter","Helvetica Neue",Helvetica,Arial,serif;font-size:23px;line-height:1.2;color:#fff}a.button small{display:block;font-size:11px}header a.button{position:absolute;top:0;right:0;background:rgba(0,0,0,0) url(../images/github-button.png) 0 0 no-repeat}aside a.button{display:block;width:138px;padding-left:64px;margin-bottom:20px;font-size:21px;background:rgba(0,0,0,0) url(../images/download-button.png) 0 0 no-repeat}pre,.highlight,.wasm-player{border-radius:6px;border-width:0;box-shadow:#000;box-shadow:1px 1px 5px rgba(0,0,0,.3333333333)}code,pre{margin-bottom:30px;font-family:"Cascadia Code","Roboto Mono",Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:13px}code{border-radius:3px}p code,h2 code,h3 code,li code{padding:.1em .35em}pre{padding:20px;overflow:auto;text-shadow:none}pre code{padding:0;border:none}ul,ol,dl{margin-bottom:20px}hr{height:0;margin-top:1em;margin-bottom:1em;border:0;border-top:solid 1px #ddd}table{width:100%;border:1px solid #ebebeb}th{font-weight:500}td{font-weight:300;text-align:center;border:1px solid #ebebeb}form{padding:20px;background:#f2f2f2}#main-content h1{font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-weight:normal;letter-spacing:-1px;color:var(--main-fg-color);opacity:.8;line-height:1.2}#main-content h1:first-child{margin-top:.3em}@media screen and (min-width: 900px){#main-content h1:first-child{margin-top:.5em}}#main-content h2{margin-bottom:8px;font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-size:22px;font-weight:400}#main-content h2 code{font-size:22px}#main-content h2>a{color:var(--main-fg-color)}#main-content h3{margin-top:24px;margin-bottom:8px;font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-size:18px;font-weight:600;color:var(--main-fg-color);opacity:1}#main-content h4{margin-bottom:8px;font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-size:15px;font-weight:bold;text-indent:3px}#main-content h5{margin-bottom:8px;font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-size:14px;text-indent:3px}#main-content h6{margin-bottom:8px;font-family:"Quicksand","Helvetica Neue",Helvetica,Arial,serif;font-size:.8em;text-indent:3px}a{text-decoration:none}p a{font-weight:400}blockquote{padding:0 0 0 1em;margin:0 .1em 20px;font-size:15px;border-left:.5em solid var(--quote-bar-color)}ul{list-style-position:inside;list-style:disc;padding-left:1em}ol{list-style-position:inside;list-style:decimal;padding-left:1em}dl dd{font-style:italic;font-weight:100}footer{padding-top:20px;padding-bottom:30px;margin-top:40px;font-size:13px}footer a{color:#666}footer a:hover{color:#444}.clearfix:after{display:block;height:0;clear:both;visibility:hidden;content:"."}.clearfix{display:inline-block}* html .clearfix{height:1%}.clearfix{display:block}.windows-only,.mac-only,.linux-only,.android-only,.ios-only{display:none}.windows .windows-only,.mac .mac-only,.linux .linux-only,.android .android-only,.ios .ios-only{display:unset}#main-content .image-gallery{list-style-type:none;margin:0;padding:0;display:flex;align-items:center;justify-content:center;flex-direction:column}@media screen and (min-width: 900px){#main-content .image-gallery{margin-top:1rem}}#main-content .image-gallery-thumbnail{display:block;max-height:100%}#main-content .image-gallery li{margin-left:0;padding:0 0rem}#main-content .image-gallery img{max-height:calc(100vh - var(--top-bar-height) - 4rem);width:100%;object-fit:scale-down}#main-content .image-gallery h2::before{display:none}#main-content .image-gallery h2{font-size:1rem;text-align:center;margin-top:.2em;margin-bottom:1.2em}body,header,#main-menu,#main-content h1,#main-content h2,#main-content h3,#main-content h4{font-family:"Fira Sans","Helvetica Neue",Helvetica,Arial,sans-serif}body{font-weight:300}#main-content h1{font-weight:300;letter-spacing:0}#main-content h2{font-weight:400}#main-menu{--kf-menu-gap: 0.35em}@media screen and (min-width: 900px){#main-menu{font-size:16px !important}}strong{font-weight:500}:root{--kf-blue: #5dadc8;--kf-blue-dark: #3b8fae;--kf-gold: #ccbc80;--kf-gold-dark: #a8933f;--top-bar-height: 5.5em;--kf-bar-height: 3px;--kf-menu-gap: 0.47em}a{color:var(--kf-blue-dark)}a:hover{color:var(--kf-gold-dark)}header{background:rgba(255,255,255,.8);height:var(--top-bar-height);padding-bottom:0}header::before{bottom:0}header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--kf-bar-height);background:var(--kf-blue)}header>.inner{max-width:58em;display:flex;align-items:center;justify-content:space-between;height:var(--top-bar-height)}header .hamburger{order:1;margin-right:0}header .logo{display:block;height:4em;margin-top:.4em;margin:0;opacity:.9;transition:opacity .3s}header .logo:hover{opacity:1}@media screen and (min-width: 900px){#main-menu{font-size:18px;margin:0;float:none;align-self:flex-end;margin-bottom:var(--kf-menu-gap)}}#main-menu li{position:relative}@media screen and (min-width: 900px){#main-menu li{margin-left:.5em}}#main-menu li a{color:var(--kf-blue-dark);opacity:1}#main-menu li a:hover{color:var(--kf-gold-dark)}@media screen and (min-width: 900px){#main-menu li a::after{content:"";position:absolute;left:0;right:0;bottom:calc(-1*var(--kf-menu-gap));height:var(--kf-bar-height);background:var(--kf-gold);transform:scaleX(0);transition:transform .25s ease}#main-menu li a:hover::after{transform:scaleX(1)}}#content-wrapper{padding-top:calc(var(--top-bar-height) + 1em)}#main-content h1,#main-content h2{color:var(--kf-blue-dark);opacity:1}#main-content .cover{margin:.3em 0 1em 0;width:180px;max-width:40%}#main-content .cover img{max-height:none;width:100%;margin:0;box-shadow:1px 1px 5px rgba(0,0,0,.3333333333)}#main-content .cover figcaption{font-size:.85em;text-align:center}#main-content .cover-right{float:right;margin-left:1.5em}#main-content .cover-left{float:left;margin-right:1.5em}#main-content .cover-small{width:130px}#main-content h2{clear:both;margin-top:1.5em}#main-content hr{clear:both}.info-box{padding:.5em 2em;background-color:var(--info-bg-color);border-radius:6px;box-shadow:#000;box-shadow:1px 1px 5px rgba(0,0,0,.3333333333)}.info-box>nav>ul{list-style-type:none;padding:0}