:root{--body-font-family:var(--font-roboto-mono),monospace;--body-line-height:1.5;--body-font-size:1.6rem;--h1-font-size:6.4rem;--h1-line-height:1.2;--h2-font-size:4.2rem;--h2-line-height:1;--h3-font-size:2.8rem;--h3-line-height:1;--max-width:1440px;--content-width:80%;--border-radius:.8rem;--article-vspace:10rem;--section-vspace:20rem;--internal-vspace:6rem;--col-num:12;--gap:2rem;--col-width:calc((100% - (var(--gap)*(var(--col-num) - 1)))/var(--col-num));--foreground:#adadad;--background:#1c1d25;--heading:#fff;--highlight:#1d83fb;--color-optitrack:#41b6e6;--color-trackir:#ffa600;--color-bitlikes:#ff5621;--color-gamelabs:#0ba156}*{box-sizing:border-box;margin:0;padding:0}html{font-size:62.5%}body{max-width:100vw;min-height:100vh;font-family:var(--body-font-family);font-size:var(--body-font-size);line-height:var(--body-line-height);color:var(--foreground);background:var(--background);grid-template-rows:auto 1fr auto;grid-template-columns:1fr;display:grid;overflow-x:hidden}#__next{min-height:100vh}.contentWrapper{grid-template-rows:auto 1fr auto;grid-template-columns:1fr;min-height:100vh;display:grid}.mainWrapper{width:var(--content-width);max-width:var(--max-width);margin:0 auto;padding:10rem 0}a{color:var(--highlight);text-decoration:underline}h1{font-size:var(--h1-font-size);line-height:var(--h1-line-height);text-wrap:pretty;margin-bottom:1rem}h2{font-size:var(--h2-font-size);line-height:var(--h2-line-height);text-wrap:pretty;margin-bottom:1rem}h3{font-size:var(--h3-font-size);line-height:var(--h3-line-height);color:var(--heading);text-wrap:pretty;margin-bottom:1rem}article{margin-bottom:var(--article-vspace)}section{margin-bottom:var(--section-vspace)}p{text-wrap:balance;max-width:60rem}.highlightHeading{color:var(--heading)}.highlightHeading:before,.slashes:before{content:"// "}.twoCols{column-gap:calc(var(--gap)*2);grid-template-columns:repeat(2,1fr);display:grid}.threeCols{gap:calc(var(--gap)*3);grid-template-columns:repeat(3,1fr);display:grid}.threeCols.flex{row-gap:var(--gap);flex-wrap:wrap;display:flex}.threeCols li{white-space:nowrap}.projectStats{margin:0;padding:0;list-style:none}.projectStats>li{color:var(--heading)}.projectStats>li:before{content:"// "}.projectStats>li>ul{color:var(--foreground);margin:0;padding:0;list-style:none}.contentIndent{width:calc((var(--col-width)*10) + (var(--gap)*9));margin:0 auto}.colTest{gap:var(--gap);display:flex}.colTest div{width:var(--col-width);background-color:red;height:10rem}.colTest2{gap:var(--gap);display:flex}.colTest2 div{width:calc((var(--col-width)*6) + (var(--gap)*5));background-color:#00f;height:10rem}.btn{border:.1rem solid var(--highlight);color:var(--highlight);background-color:#0000;justify-self:flex-end;padding:1.5rem 5.4rem;text-decoration:none;transition:background-color .5s ease-in-out,color .5s ease-in-out;display:inline-block;position:relative;overflow:hidden}.btn:hover{background-color:var(--highlight);color:var(--heading);cursor:pointer}@media screen and (max-width:600px){:root{--h1-font-size:4.8rem;--h1-line-height:1.2;--h2-font-size:2.8rem;--h2-line-height:1;--h3-font-size:1.8rem;--h3-line-height:1;--content-width:95%}.contentIndent{width:100%}}
@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/4a439e1ba971da1a-s.f6f6239b.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/b3b0afff8ab38d95-s.542be403.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/b12ef0642bbc5f5f-s.b2fd768f.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/83a6e70a3a81dd9f-s.cd5d2b7b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/99ac5753282bcf05-s.82772c94.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:100 700;font-display:swap;src:url(../media/2f13ad8e538108e0-s.p.9b936cf7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Mono Fallback;src:local(Arial);ascent-override:77.84%;descent-override:20.13%;line-gap-override:0.0%;size-adjust:134.61%}.roboto_mono_9f27df68-module___Fc1La__className{font-family:Roboto Mono,Roboto Mono Fallback;font-style:normal}
.footer-module__1xoUSW__footerWrapper{width:var(--content-width);max-width:var(--max-width);text-align:right;margin:0 auto;padding-bottom:2rem}.footer-module__1xoUSW__footerWrapper span{font-size:2.4rem}
.header-module__Voge7q__headerWrapper{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0000001a;position:relative}.header-module__Voge7q__headerContent{width:var(--content-width);max-width:var(--max-width);flex-direction:row;justify-content:space-between;align-items:center;margin:0 auto;padding:2rem 0;display:flex}.header-module__Voge7q__logoWrapper a{text-transform:uppercase;color:var(--heading);font-size:2.4rem;font-weight:700;line-height:1}.header-module__Voge7q__logoWrapper a>div{display:inline-block}.header-module__Voge7q__logoWrapper a div:nth-child(2){color:var(--highlight)}.header-module__Voge7q__navWrapper{gap:2rem;display:flex}.header-module__Voge7q__navWrapper a{color:var(--foreground);text-decoration:none;transition:all .3s ease-in-out}.header-module__Voge7q__navWrapper a:hover{color:#fff}.header-module__Voge7q__navWrapper a:before{content:"<"}.header-module__Voge7q__navWrapper a:after{content:">"}@media screen and (max-width:599px){.header-module__Voge7q__headerWrapper{flex-direction:column;align-items:flex-start}}
