body{overscroll-behavior-y:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}@keyframes tilt-in{0%{transform:rotateY(45deg) rotateX(-45deg) translateX(30%);opacity:0}to{transform:rotateX(0deg) translateX(0);opacity:1}}html{background:#d3d3d3}div,h1,h2,h3,h4,h5,p,span{fill:#d3d3d3;color:#d3d3d3;text-shadow:1px 1px #000}.bgCover:before{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:-1}.contact-copy{word-wrap:break-word;cursor:crosshair;-webkit-text-decoration:underline solid blue .125vw;text-decoration:underline solid blue .125vw;font-family:gangster;color:blue;background:transparent;border:0;padding:0;white-space:normal;max-width:100%}.copy-alert{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#bebebe;color:#bebebe;opacity:0;transition:all .25s ease;border-radius:.5rem;padding:1rem;font-size:24px;text-align:center;transform:translateY(-30%)}.copy-alert.shown{opacity:1;transform:translateY(0)}.copy-alert img{color:lime}.rows{display:flex;flex-direction:row;flex-wrap:wrap}@media screen and (max-width:640px){.project-landing .image,.texts{width:100%}}@media screen and (min-width:641px) and (max-width:1024px){.texts{width:75%}.project-landing .image{width:100%}}@media screen and (min-width:1025px){.texts{width:50%}.project-landing .image{width:80%}}.works-container{padding:0;margin:0;width:100%;height:auto;overflow:clip}.project-landing{cursor:pointer;width:100%;height:100vh;min-height:500px;display:flex;flex-direction:row}.project-landing,.project-landing>*{position:relative}.project-landing .texts{z-index:2;margin:0}.project-landing .texts>.content{padding:2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);z-index:100;cursor:pointer}.project-landing .texts>.content *{z-index:100}.project-landing .image{z-index:1;position:absolute;right:0;top:0;height:100%}.project-landing .image .parallax-container{width:100%;position:absolute;top:50%;transform:translateY(-50%);padding:2rem}.project-landing .image img{position:absolute;top:50%;left:50%;transform:translateX(-50%);-webkit-transform:translateX(-50%);max-height:80vh;width:auto;height:auto}.project-landing .description{padding-top:2rem;max-width:300px;text-align:justify;text-justify:distribute-all-lines;z-index:100}.project-title{display:flex;flex-direction:row;width:auto;margin-right:2rem;margin-bottom:2rem}.project-title h1{width:-moz-min-content;width:min-content;max-width:90vw;font-size:min(12vw,4rem);line-height:min(10vw,3.2rem);display:inline;margin:0;padding:0}.project-title-detail{display:flex;flex-direction:column;font-size:.745rem}.landing-greeting{font-style:italic;font-size:min(10vw,60px)}.contact-link,.contact-link-shadow{background-color:#d3d3d3;color:blue;fill:blue;font-size:40px;font-weight:bolder;vertical-align:top;letter-spacing:.25rem}a:hover #circ0-1{stroke:blue}.contact-link-shadow{fill:#fff;stroke:#fff;stroke-width:4}.landing{width:100%;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center}.landing button{font-size:22px}.landing .about{font-size:22px;max-width:500px;margin:0 auto;position:relative}.header,.landing .about{padding:2rem;width:100%;z-index:10}.header{position:absolute;top:0;right:0;pointer-events:none;display:flex;justify-content:flex-end}.header .logo .image-container{box-shadow:none}.header .logo img,.header .logo svg{width:30px!important;height:30px!important;color:#d3d3d3;filter:drop-shadow(1px .7px 0 black);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fixed{position:fixed;top:10px;left:10px;z-index:5}.spring-scroll-container{position:fixed;top:0;left:0;width:100%;overflow:hidden;will-change:transform}@media screen and (max-width:640px){.portrait-scene{left:50%;transform:translateX(-50%)}}.portrait-scene{position:fixed;bottom:0;width:min(500px,min(100vh,100vw));height:min(500px,min(100vh,100vw));z-index:-1}.canvas{z-index:-2;background-color:#d3d3d3}.portrait-scene-loading{background-color:#d3d3d3;position:absolute;top:0;bottom:0;left:0;right:0;transition:all 3s ease-in-out}.portrait-scene-loaded{background-color:transparent}.vimeo{width:100%;height:80vh}.bandcamp{border:0;width:350px;height:350px}.image-container{width:100%;position:relative}.image-container .image{-o-object-fit:contain;object-fit:contain;width:100%!important;position:relative!important;height:unset!important;display:block}@media screen and (max-width:640px){.card-gallery{max-width:100vw;justify-content:center}}@media screen and (min-width:641px){.card-gallery{max-width:80vw;justify-content:flex-end}}.card{max-width:300px;height:auto;cursor:pointer;position:relative;align-self:flex-start;padding-left:2rem;padding-right:2rem}.card h3{font-family:gangster}.card a{text-shadow:none}.card .image-container{position:relative}.card .image-container img{left:0;max-height:300px;min-height:200px;max-width:100%;width:auto!important}.card-gallery{display:flex;flex-direction:row;flex-wrap:wrap;gap:2rem;margin:auto}.ring-text{width:min(300,min(100vw,30vh));height:min(300,min(100vw,30vh));display:block;margin:auto}.donut-text{font-size:2px;fill:#d3d3d3}.pill-button{border-radius:2rem;background-color:#fff;padding:1rem;margin:2rem;border:0 solid transparent}.floatingImage{position:fixed;width:90px;transition:all 10s ease;transform-origin:center}@font-face{font-family:gangster;src:url(/fonts/gangstergrotesk-light.ttf) format("truetype")}@font-face{font-family:plex-mono;src:url(/fonts/IBMPlexMono-Thin.ttf) format("truetype")}html{font-family:gangster}h1,h2,h3,h4,h5{font-family:Times New Roman,Times,serif;line-height:1rem}div,p,span{line-height:1}code[class*=language-],pre[class*=language-]{color:red;background:0 0;font-family:plex-mono;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}:not(pre)>code[class*=language-],pre[class*=language-]{background:#141414}pre[class*=language-]{border-radius:0;margin:.5em 0;overflow:auto;padding:1em}pre[class*=language-]::-moz-selection{background:#27292a}pre[class*=language-]::selection{background:#27292a}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:hsla(0,0%,93%,.15)}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:hsla(0,0%,93%,.15)}:not(pre)>code[class*=language-]{border-radius:.3em;border:.13em solid #545454;padding:.15em .2em .05em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#777}.token.namespace,.token.punctuation{opacity:.7}.token.boolean,.token.deleted,.token.number,.token.tag{color:#ce6849}.token.builtin,.token.constant,.token.keyword,.token.property,.token.selector,.token.symbol{color:#f9ed99}.language-css .token.string,.style .token.string,.token.attr-name,.token.attr-value,.token.char,.token.entity,.token.inserted,.token.operator,.token.string,.token.url,.token.variable{color:#bf0}.token.atrule{color:#005eff}.token.important,.token.regex{color:#ffcd59}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.language-markup .token.attr-name,.language-markup .token.punctuation,.language-markup .token.tag{color:#ac885c}.token{position:relative;z-index:1}.line-highlight.line-highlight{background:rgba(84,84,84,.25);background:linear-gradient(90deg,rgba(84,84,84,.1) 70%,rgba(84,84,84,0));border-bottom:1px dashed #545454;border-top:1px dashed #545454;margin-top:.75em;z-index:0}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background-color:#8693a6;color:#f4f1ef}.token.punctuation.brace-hover,.token.punctuation.brace-selected{outline:1px solid}.rainbow-braces .token.punctuation.brace-level-1,.rainbow-braces .token.punctuation.brace-level-5,.rainbow-braces .token.punctuation.brace-level-9{color:#e50;opacity:1}.rainbow-braces .token.punctuation.brace-level-10,.rainbow-braces .token.punctuation.brace-level-2,.rainbow-braces .token.punctuation.brace-level-6{color:#0b3;opacity:1}.rainbow-braces .token.punctuation.brace-level-11,.rainbow-braces .token.punctuation.brace-level-3,.rainbow-braces .token.punctuation.brace-level-7{color:#26f;opacity:1}.rainbow-braces .token.punctuation.brace-level-12,.rainbow-braces .token.punctuation.brace-level-4,.rainbow-braces .token.punctuation.brace-level-8{color:#e0e;opacity:1}body,html{padding:0;margin:0}*{box-sizing:border-box}.padding-container{padding:2rem}.column-padded :not(:last-child){padding-bottom:2rem}.column-padded *{display:block;max-height:calc(100vh - 8rem);max-width:calc(100vw - 5rem);margin:0 auto}.column-padded p{max-width:500px}.code-block{border-radius:2rem;width:auto}@media screen and (max-width:640px){.project-page{background-color:hsla(0,0%,83%,.9)}}@media screen and (min-width:641px) and (max-width:1024px){.project-page{background-color:hsla(0,0%,83%,.7)}}.project-page{z-index:100;min-height:100vh}.project-page .vimeo,.project-page img{margin-top:2rem}.statement{width:400px;max-width:800px;margin:0 0 2rem;padding-right:2rem}.chrysanthemum-page{background-color:red}.resume{width:100%;background-color:#d3d3d3}.resume>*{max-width:800px}.resume h1{font-size:min(100px,20vw);font-style:italic;font-family:gangster;font-weight:700;line-height:1;padding-top:50px;color:#d3d3d3;text-shadow:#000}.resume div,.resume h1,.resume h2,.resume h3,.resume h4,.resume h5,.resume p,.resume span{color:#000;text-shadow:none;font-family:gangster;line-height:normal}.resume a{text-shadow:none}.resume h2{font-size:min(50px,10vw);font-style:italic}.resume h4{font-size:30px}.resume h1,.resume h2,.resume h3,.resume h4,.resume h5{margin:-.5rem 0 0}.resume h2,.resume h3,.resume h4,.resume h5{margin-top:1rem}.resume .page-break{page-break-before:always}.resume .resume-intro a,.resume .resume-intro span{display:block}.resume .resume-intro div{margin-bottom:2rem}.resume .resume-section{margin-bottom:4rem}.resume ul{list-style-type:disc;padding:1rem}.resume ul li{margin-bottom:.5rem}.resume .resume-subheading{display:flex;flex-wrap:wrap;align-items:center;width:100%;max-width:500px;vertical-align:center}.resume .resume-subheading h4{line-height:1;margin-right:.25rem}.resume .capsule-span{background-color:#000;color:#d3d3d3;border-radius:2rem;height:1.4rem;padding-left:.5rem;padding-right:.5rem;margin:.25rem .25rem .25rem 0;white-space:nowrap}.resume button{font-size:1rem}.resume .copy-alert{margin-bottom:0!important}.technical-overview{width:100%;height:100%;min-height:100vh;background-color:#000}.technical-overview>*{max-width:800px}.technical-overview h1{font-size:min(100px,20vw);font-family:gangster;font-weight:700;line-height:1;color:#d3d3d3}.technical-overview div,.technical-overview h1,.technical-overview h2,.technical-overview h3,.technical-overview h4,.technical-overview h5,.technical-overview p,.technical-overview span{text-shadow:none;line-height:normal}.technical-overview a{text-shadow:none}.technical-overview h2{font-size:min(50px,10vw);font-style:italic}.technical-overview h4{font-size:30px}.technical-overview h1,.technical-overview h2,.technical-overview h3,.technical-overview h4,.technical-overview h5{margin:-.5rem 0 0}.technical-overview h2,.technical-overview h3,.technical-overview h4,.technical-overview h5{margin-top:1rem}.technical-overview .page-break{page-break-before:always}.technical-overview .resume-intro a,.technical-overview .resume-intro span{display:block}.technical-overview .resume-intro div,.technical-overview .resume-intro span{margin-bottom:2rem}.technical-overview .resume-section{margin-bottom:4rem}.technical-overview ul{list-style-type:none;padding:0}.technical-overview ul li{margin-bottom:.5rem}.technical-overview .resume-subheading{display:flex;flex-wrap:wrap;align-items:center;width:100%;max-width:500px;vertical-align:center}.technical-overview .resume-subheading h4{line-height:1;margin-right:.25rem}.technical-overview .capsule-span{background-color:#000;color:#d3d3d3;border-radius:2rem;height:1.4rem;padding-left:.5rem;padding-right:.5rem;margin:.25rem .25rem .25rem 0;white-space:nowrap}