a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box}.stack svg{width:100%;pointer-events:none}.stack svg text{fill:#fff;font-size:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.stack{position:absolute;top:0;right:0;width:30vmax;transition:all .25s ease;cursor:pointer;perspective:300vmin;border-radius:50%;background:linear-gradient(225deg,#560b5e,#48094f);box-shadow:-29px 29px 70px #37073d,29px -29px 70px #690d73;touch-action:none;z-index:6}.stack-area{position:relative;min-width:35vmax;min-height:25vmax}@media(max-width:770px){.stack-area{margin:10vmin 0}}@media(min-height:1150px){.stack svg text{font-size:20%}}@media(max-width:770px){.stack svg text{font-size:80%}}button{background:0 0;border:none;position:relative;width:100%;height:100%;padding:0}button:focus{outline:0}.work-filter{display:flex;align-items:center}.work-filter label{padding:1em 1.2em 1em 0}.work-filter ul{display:flex}.work-filter{margin-bottom:1vmax}.work-filter li{padding:1em 1.2em;border:1px solid hsla(0,0%,100%,.5);color:hsla(0,0%,100%,.5);border-radius:5em;cursor:pointer;position:relative;margin-right:.5em;transition:all .2 ease;text-align:center}.work-filter li.selected{border:1px solid #fff;color:#fff}.work-filter li:after{content:"Show";left:1.2em}.work-filter li.selected:after,.work-filter li:after{color:#fff;font-size:calc(10px + .6vmin);position:absolute;top:-40%;opacity:0;transition:opacity .2s ease}.work-filter li.selected:after{content:"Show Only";left:13%}@media(hover){.work-filter li:hover:after{opacity:1}.work-filter li:hover{background:#639}}.work-filter li.connect{background:#639}.tgl-box:hover{cursor:pointer}.real-label{color:#fff;font-size:calc(10px + 5.5vmin);padding-left:1vmax;align-self:center}.tgl-box{display:flex}.tgl{display:none}.tgl,.tgl *,.tgl+.tgl-box .tgl-btn,.tgl:after,.tgl :after,.tgl:before,.tgl :before{box-sizing:border-box}.tgl+.tgl-box .tgl-btn::-moz-selection,.tgl::-moz-selection,.tgl ::-moz-selection,.tgl:after::-moz-selection,.tgl :after::-moz-selection,.tgl:before::-moz-selection,.tgl :before::-moz-selection{background:0 0}.tgl+.tgl-box .tgl-btn::selection,.tgl::selection,.tgl ::selection,.tgl:after::selection,.tgl :after::selection,.tgl:before::selection,.tgl :before::selection{background:0 0}.tgl+.tgl-box .tgl-btn{outline:0;display:block;width:8vmax;height:4vmax;max-width:100px;max-height:50px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tgl+.tgl-box .tgl-btn:after,.tgl+.tgl-box .tgl-btn:before{position:relative;display:block;content:"";width:47%;height:100%}.tgl+.tgl-box .tgl-btn:after{left:0}.tgl+.tgl-box .tgl-btn:before{display:none}.tgl:checked+.tgl-box .tgl-btn:after{left:53.4%}.tgl-light+.tgl-box .tgl-btn{border:1px solid #fff;border-radius:2vmax;padding:2px;align-self:center;transition:all .4s ease}.tgl-light+.tgl-box .tgl-btn:after{border-radius:50%;background:#fff;transition:all .2s ease}.tgl-light:checked+.tgl-box .tgl-btn{background:#a245ac}.stream-edge{display:block;position:fixed;top:0;right:0;height:100vh;width:8vw;cursor:alias;z-index:5}.stream .top-link{position:fixed;font-size:calc(10px + 6.5vmin)}.stream-edge svg{position:relative;z-index:10;height:100%;width:140%;pointer-events:none}.stream-edge svg path{fill:#500a58}.stream-back{height:100%;width:100%;background:#500a58;background-image:url(/stream.0e2a1592.png);background-size:55%;position:absolute;top:0;right:0;transition:all .3s ease}@media(hover){.stream-back{background-image:none}.stream-back:hover{background:#639;background-image:url(/stream.0e2a1592.png);background-size:55%}}.stream-title{position:fixed;bottom:1vmax;left:1vmax;width:12vmax}.block-list figure img{width:100%}.block-list{display:grid;grid-gap:1em;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));list-style:none;padding:none}.block-list figure{cursor:pointer;width:100%}.block-list figure figcaption{font-size:calc(10px + .5vmax);margin:.5em 0 0 .5em}.block-list figure:active{display:flex;position:fixed;height:100vh;width:100vw;top:0;left:0;padding:1em}.block-list figure:active img{max-height:100%;-o-object-fit:scale-down;object-fit:scale-down;-o-object-position:center;object-position:center}.block-list figure:active figcaption{font-size:calc(10px + 1vmax);position:fixed;bottom:0;right:0;max-width:200ch;padding:1em;background:#500a58}.stream-images p{font-size:calc(10px + 1.2vmin);line-height:calc(1.1em + .5vw);max-width:500px;margin:0 auto}.stream-button{display:none}@media(max-width:780px){.block-list{display:grid;grid-gap:1em;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));list-style:none;padding:none}.stream-button{display:block;width:15vmax;margin-top:4vmax}.stream-edge{display:none}}*{box-sizing:border-box}body{font-size:calc(10px + 3vmin);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#500a58;overflow-x:hidden}a,body{color:#fff}main{margin:7vmin}p{line-height:calc(1.1em + .8vmax)}.me-text p{margin-top:calc(10px + 2vmin)}.me-text,.me-text p{line-height:calc(1.1em + .5vw)}.me-text{font-size:calc(10px + 1vmin);max-width:45vmax;padding-right:2vmax;position:relative;z-index:10}.me-text h2{font-size:calc(10px + 2vmin);line-height:calc(1.1em + .5vw);margin-bottom:1vmax}.me-text h3{margin-top:calc(10px + 2vmin)}.list-nav{position:relative;font-size:calc(10px + 1vmin);display:flex;flex-wrap:wrap;width:100%;margin-top:20vmin;z-index:10}.list-nav h2{font-size:calc(10px + 2vmin);margin-bottom:1vmax}.list-nav .list{width:50%;min-width:300px;margin-bottom:20vmin}.list-nav .list li a{padding:.7em 0;display:inline-block;transition:all .2s ease;-webkit-text-decoration-color:hsla(0,0%,100%,0);text-decoration-color:hsla(0,0%,100%,0)}.list-nav .writing-item{position:relative}@media(hover){.list-nav .list li a:hover{-webkit-text-decoration-color:red;text-decoration-color:red}sup a:hover{background:red}}.list.projects{position:relative}.list strong{font-weight:700}.project-item{max-height:0;overflow:hidden;opacity:0;transition:all .4s ease}.code .code,.events .events,.interface .interface,.spatial .spatial{max-height:10em;opacity:1}.hover-image{position:fixed;top:0;left:0;width:100vw;height:100vh;opacity:0;transition:opacity .2s ease;pointer-events:none;z-index:1}.hover-image img{display:block;max-width:60vw;margin:25vh auto;filter:url(#duotone)}.project-image{z-index:1}.project-image.active .hover-image{opacity:1}.svg-filter{height:0;left:-9999em;margin:0;padding:0;position:absolute;width:0}main.single{margin:0;padding-top:10vmax}.single #title{margin-left:7vmin;font-size:calc(11px + 3vmin);line-height:1.3;max-width:1000px}.single .post-date{margin-top:4vmax;background:#639;display:inline-block;padding:.2em .75em;border-radius:1em}.single .materials,.single .post-date{margin-left:7vmin;font-size:calc(10px + .5vmin);line-height:calc(1em + 1vmin);font-style:italic}.single .materials{max-width:400px}.single article h1{font-size:calc(24px + .5vmin);margin-top:6vmin}.single article h1,.single article h2{margin-left:7vmin;font-weight:700;margin-bottom:4vmin}.single article h2{font-size:calc(20px + .5vmin);margin-top:0}.single article h3{margin-left:7vmin;font-size:calc(18px + .5vmin);font-weight:700;margin-top:calc(50px + 2vmin);margin-bottom:calc(20px + 2vmin)}.single article{margin-top:calc(2em + 3vmax);margin-bottom:10vmin;font-size:calc(14px + .5vmin);line-height:calc(1em + 1.2vmin)}.single article p{margin-left:7vmin;margin-bottom:4vmin;max-width:50vmax}.single article .info p{margin-bottom:.5vmin}.single article .img-box{display:flex;justify-content:space-around;flex-wrap:wrap;margin:calc(40px + 3vmax)0 calc(20px + 2vmax)}.single article code{font-family:monospace;background:#639;padding:.2em .5em;border-radius:1em}.single .images{-moz-column-count:auto;-moz-column-width:40vmin;columns:40vmin;-moz-column-gap:3em;column-gap:3em;width:100%;margin-top:10vmax}.single .images video{width:100%;max-height:none;max-width:none;margin-bottom:3em}.single article figure{margin-bottom:10vmin}.single article figure:last-child{margin-bottom:0}.single article figcaption{font-size:calc(10px + .5vmin);line-height:calc(1em + 1.2vmin);font-style:italic;text-align:center}.single article img{display:block;margin:0 auto;max-height:65vmin;max-width:100%;box-shadow:0 1.00666px 16.4665px rgba(32,10,67,.0701917),0 1.78981px 22.2804px rgba(32,10,67,.0705501),0 2.41697px 24.4326px rgba(32,10,67,.0714498),0 3.1576px 26.5476px rgba(32,10,67,.15642),0 6px 40px rgba(32,10,67,.54)}.single .lead-img{position:absolute;top:0;right:0}@media(min-width:780px){.single article figure{max-width:45%;margin-bottom:0}}.footnotes{padding-top:8em}.top-link{position:absolute;top:7vmin;left:7vmin}.bottom-link,.top-link{font-size:calc(10px + 1.5vmin)}.bottom-link{margin-left:7vmin;padding-bottom:7vmin}strong{font-weight:600}em,strong{font-style:oblique}.lead-img img{display:block;max-width:35vmax}.upper{display:flex;flex-wrap:wrap}sup{font-size:.4em;vertical-align:super;border:1px solid red;border-radius:.4em}sup a{color:red;text-decoration:none;border-radius:.4em;padding:.1em .15em .1em .1em}hr{border:1px solid red}.footnotes ol{width:50vmin;min-width:300px;font-size:calc(10px + .4vmin);line-height:calc(1em + 1.1vmin);counter-reset:footnote;list-style-type:none;z-index:10}.footnotes ol,.footnotes ol li{position:relative}blockquote{margin:1em;border-left:.2em dashed #fff;padding-left:1em}.footnotes ol li:before{position:absolute;top:-.1em;left:-1.2em;counter-increment:footnote;content:counter(footnote)" ";color:red;padding:0 .15em}