/*Copyright (C) 2022 Ethan Uppal. All rights reserved.*/
.clear-fix{clear:both}.flex-container{display:flex}.stack-vertical{display:flex;flex-direction:column}.stack-vertical-top{display:flex;flex-direction:column;align-items:flex-start}.stack-vertical-middle{display:flex;flex-direction:column;align-items:center}.stack-vertical-bottom{display:flex;flex-direction:column;align-items:flex-end}.stack-horizontal{display:flex;flex-direction:row}.stack-horizontal-left{display:flex;flex-direction:row;justify-content:flex-start}.stack-horizontal-center{display:flex;flex-direction:row;justify-content:center}.stack-horizontal-right{display:flex;flex-direction:row;justify-content:flex-end}.centerer{display:flex;flex-direction:row;justify-content:center}.centerer h1,.centerer h2{margin-bottom:0}.pin-left{align-self:flex-start}.pin-right{margin-left:auto}.NavCommonProperties{border-color:#969696}header{position:relative;font-size:22px;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none;border-left:1px solid;border-right:1px solid;border-color:#969696}header #site-name{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);white-space:nowrap}header #site-name span{display:table;margin:0 auto;text-align:center;vertical-align:middle;cursor:pointer;transition:filter .5s}header #site-name span:hover{filter:brightness(80%)}header #site-name span svg{vertical-align:middle;transform:translateY(-2px)}header button{background:none;color:inherit;border:none;font-size:32px;outline:inherit;transition:transform .3s;line-height:100%;vertical-align:middle;z-index:1;margin:0;padding:.25em;text-align:left}header button.open{transform:rotate(90deg)}header nav{position:absolute;top:100%;width:100%;transition:height .3s;height:0;overflow:hidden;margin:-1px;border:1px solid;border-top-style:none;border-radius:0 0 .625em .625em;z-index:1;background-color:black;border-color:#969696}header nav #menu{background-color:black;padding:.5em;padding-left:0;margin-left:0}header nav #menu .nav-node{display:table;padding:0;margin:0;margin-bottom:0;margin-top:.25em;padding-bottom:.25em;padding-top:.25em;border-radius:0 .625em .625em 0;padding-right:.5em;cursor:pointer;vertical-align:middle}header nav #menu .nav-node:hover{position:relative;background-color:#323232}header nav #menu .nav-node:active{position:relative;filter:brightness(110%);background-color:#464646}header nav #menu .nav-node svg{vertical-align:middle;transform:translateY(-2px);margin-right:.5em}header nav #menu .nav-fold::after{content:url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20stroke-width%3D%222%22%20stroke%3D%22white%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20stroke%3D%22none%22%2F%3E%3Cpath%20d%3D%22m9%206%206%206-6%206%22%2F%3E%3C%2Fsvg%3E');margin-left:.25em;display:inline-block;vertical-align:middle;transition:transform .3s}header nav #menu .nav-fold.open::after{transform:rotate(90deg)}header nav #menu .nav-hide{display:none}header nav #menu .nav-item-selected{position:relative;background-color:#323232}header nav #menu .nav-item-chosen{position:relative;filter:brightness(110%);background-color:#464646}@media only screen and (max-width:500px){header{left:0;right:0;width:100%;max-width:100%;margin:0}}.button-like{display:inline-block;background-color:#343434;border-radius:.5em;margin:.25em;padding:.25em;transition:filter .2s}.button-like::after{display:inline-block;margin-left:.25em;content:"→"}.button-like:hover{filter:brightness(80%)}.button-like:active{filter:brightness(70%)}.button-like-left{display:inline-block;background-color:#343434;border-radius:.5em;margin:.25em;padding:.25em;transition:filter .2s}.button-like-left::after{display:inline-block;margin-left:.25em;content:"→"}.button-like-left:hover{filter:brightness(80%)}.button-like-left:active{filter:brightness(70%)}.button-like-left::after{content:""}.button-like-left::before{display:inline-block;margin-right:.25em;content:"←"}.showcase-list{margin-top:.5em}.showcase-box{align-items:center;margin-bottom:20px;display:flex;flex-direction:row;justify-content:center}.showcase-section{margin:32px auto}@media only screen and (max-width:475px){.showcase-box{display:block}.showcase-box img{margin-bottom:20px}}.showcase-box h2,.showcase-section h2{margin:0 auto}.showcase-left{margin-right:.5em;flex:1;display:flex;flex-direction:column;align-items:center}.showcase-right{flex:1;display:flex;flex-direction:column;align-items:center}.showcase-ul{list-style:"→ "}aside{border-left:5px solid;border-radius:.25em;padding:1px .5em 1px .5em;font-size:20px;border-color:#c8c8c8;background-color:rgba(200,200,200,0.1)}aside.key-idea{border-color:#00c800;background-color:rgba(0,200,0,0.15)}aside.key-idea::before{display:inline-block;content:"Key Idea";font-weight:bold;padding-top:calc(1em)}aside.note{border-color:yellow;background-color:rgba(255,255,0,0.15)}aside.note::before{display:inline-block;content:"Note";font-weight:bold;padding-top:calc(1em)}aside.warning{border-color:red;background-color:rgba(255,0,0,0.15)}aside.warning::before{display:inline-block;content:"Warning";font-weight:bold;padding-top:calc(1em)}aside.hint{border-color:cyan;background-color:rgba(0,255,255,0.15)}details{border-left:5px solid;border-radius:.25em;padding:1px .5em 1px .5em;font-size:20px;border-color:#c8c8c8;background-color:rgba(200,200,200,0.1)}details summary{margin-top:.5em;margin-bottom:.5em}details summary,details p,details li,details a,details span,details td,details th{font-size:16px}details[open]>summary{font-weight:bold}.grid-container-2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));padding:.5em}.grid-container-2 .grid-item{max-width:calc(600px / 2)}.grid-container-3{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));padding:.5em}.grid-container-3 .grid-item{max-width:calc(600px / 3)}.grid-item{padding:.5em}.responsive-flex{display:flex;flex-direction:row}@media only screen and (max-width:600px){.responsive-flex{flex-direction:column}}.responsive-flex-item{padding:.5em;flex-grow:1;flex-shrink:1;flex-basis:0}:root{color-scheme:dark}body{background-color:black;color:white;font-family:sans-serif;top:0;margin-top:0}.container{max-width:600px;margin:auto;padding:.5em;padding-top:0}@media only screen and (max-width:500px){.container{max-width:100vw}}pre{scrollbar-color:gray black}h1{font-size:28px}h2{font-size:24px}h3{font-size:22px}p,li,a,span,td,th{font-size:20px}a{color:lightskyblue;text-decoration:none;cursor:pointer}img{max-width:100%}footer,footer p,footer li,footer a,footer span,footer td,footer th{font-size:12px}.sketch main,.sketch canvas{padding-left:0;padding-right:0;margin-left:auto;margin-right:auto;display:block;width:600px}.word-wrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}figcaption p,figcaption li,figcaption a,figcaption span,figcaption td,figcaption th{font-size:inherit}.todo{color:#646464}.todo::before{content:"TODO: "}@media (pointer:none),(pointer:coarse){html,body{overscroll-behavior:none}}.mobile-no-scroll{touch-action:none}section>h2{padding-bottom:.25em;border-color:white;border-bottom:1px solid}.hidden{display:none;visibility:hidden;width:0;height:0}.DisableTextSelection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ButtonHoverEvents:hover,.ButtonHoverEvents:focus{background-color:#323232}.ButtonHoverEvents:active{background-color:#464646}.data-protected{opacity:.5}.data-protected::after{opacity:1;content:'[?]';color:lightskyblue;vertical-align:super;font-size:10px}.data-protected:hover::after{content:'[Please enable JavaScript]'}noscript{background-color:#640000;padding:.5em;border-radius:.25em;text-align:center}noscript,noscript p,noscript li,noscript a,noscript span,noscript td,noscript th{font-size:calc(20px - 4px)}td,th{vertical-align:top}.loader{border:1em solid white;border-top:1em solid lightskyblue;border-radius:50%;width:4em;height:4em;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}