@import url(https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700;900&family=Nunito:wght@400;700&display=swap);
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}embed,iframe,img,object,video{max-width:100%}img,video{height:auto}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}body{font-family:Nunito,sans-serif;font-size:1.125rem;line-height:1.5}h1,h2,h3,h4,h5,h6{color:#eab454;font-family:Montserrat,sans-serif;margin:0 0 1rem}p{margin:0 0 1rem}body{background-color:#222e3c;color:#fff;margin:0}body.stop-scroll{overflow:hidden}.site-wrapper{display:flex;flex-direction:column;overflow-x:hidden;overflow-x:clip}main{display:grid;flex-grow:1;grid-template-areas:". content .";grid-template-columns:minmax(2rem,1fr) minmax(0,100rem) minmax(2rem,1fr);min-height:100vh;position:relative}main section.page{grid-area:content}a{color:#eab454;text-decoration:none}a:focus,a:hover{color:#fff;text-decoration:underline}button{cursor:pointer}img,picture,video{display:block}figure{margin:0}figcaption{color:rgba(184,215,255,.5);padding:.5rem 1rem;text-align:center}.fade-in-down,.fade-in-left,.fade-in-right,.fade-in-up{opacity:0}.site-logo{fill:#eab454;vertical-align:middle}.site-logo .logo-face{-webkit-transform-origin:center;transform-origin:center}.custom-icon{fill:currentColor;display:inline-block}.loading{-webkit-animation:spin 1s linear 0s infinite;animation:spin 1s linear 0s infinite;display:block;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}@-webkit-keyframes spin{0%{-webkit-transform:translate(-50%,-50%) rotate(0);transform:translate(-50%,-50%) rotate(0)}to{-webkit-transform:translate(-50%,-50%) rotate(1turn);transform:translate(-50%,-50%) rotate(1turn)}}@keyframes spin{0%{-webkit-transform:translate(-50%,-50%) rotate(0);transform:translate(-50%,-50%) rotate(0)}to{-webkit-transform:translate(-50%,-50%) rotate(1turn);transform:translate(-50%,-50%) rotate(1turn)}}.responsive-picture img{width:100%}.feature-content-item{scroll-margin:10rem}.feature-content-item>*{border-radius:1rem;overflow:hidden;position:relative}.feature-content-item .video-content{border-radius:0;margin:0 calc(50% - 50vw);width:100vw}@media(min-width:56.25rem){.feature-content-item .video-content{border-radius:1rem;margin:0;overflow:hidden;width:100%}}.feature-content-item .code-content{overflow:hidden;position:relative;transition:max-height .5s ease-in-out}.feature-content-item .code-content pre{margin:0;padding:1rem 1rem 4.5rem}@media(min-width:56.25rem){.feature-content-item .code-content pre code>span{display:flex;flex-wrap:wrap}}.feature-content-item .code-content.code-closed{max-height:20rem}.feature-content-item .code-content.code-closed .code-fog{opacity:1;visibility:visible}.feature-content-item .code-content .code-fog{background:linear-gradient(rgba(18,26,36,0),#000);bottom:0;height:7rem;left:0;opacity:0;position:absolute;right:0;transition:opacity .5s ease-in-out,visibility .5s ease-in-out;visibility:hidden}.feature-content-item .code-content .code-button{align-items:center;background-color:#121a24;border:none;border-top:.125rem solid #222e3c;bottom:0;color:#eab454;display:flex;font-family:Montserrat,sans-serif;font-size:1rem;font-weight:700;gap:1rem;left:0;padding:1rem;position:absolute;right:0;width:100%}.feature-content-item .code-content .code-button:hover{color:#fff}.feature{margin-bottom:8rem}.feature:last-of-type{margin-bottom:0}.feature .feature-content-item{margin-bottom:2rem}.feature .feature-content-item:last-of-type{margin-bottom:0}@media(min-width:56.25rem){.feature{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(12,1fr)}.feature .feature-overview{align-self:start;position:-webkit-sticky;position:sticky}.feature.align-left{grid-template-areas:"left left left left right right right right right right right right"}.feature.align-left .feature-overview{grid-area:left}.feature.align-left .feature-content{grid-area:right}.feature.align-right{grid-template-areas:"left left left left left left left left right right right right"}.feature.align-right .feature-overview{grid-area:right}.feature.align-right .feature-content{grid-area:left}}@media(min-width:90rem){.feature.align-left{grid-template-areas:". left left left right right right right right right right ."}.feature.align-right{grid-template-areas:". left left left left left left left right right right ."}}.project-card{margin:4rem 0}.project-card .project-text .project-title{font-size:1.5rem;margin-bottom:.125rem}@media(min-width:35rem){.project-card .project-text .project-title{font-size:2.25rem}}.project-card .project-text .project-subtitle{font-family:Montserrat,sans-serif;font-size:.875rem}@media(min-width:56.25rem){.project-card .project-text .project-subtitle{font-size:1.125rem}}.project-card .project-text .project-link{background-color:#121a24;border-radius:4rem;display:block;font-family:Montserrat,sans-serif;font-weight:700;height:4rem;line-height:1;margin:0 auto;overflow:hidden;padding:1rem;position:relative;width:11rem}.project-card .project-text .project-link:focus,.project-card .project-text .project-link:hover{text-decoration:none}.project-card .project-text .project-link .link-content{align-items:center;bottom:0;display:flex;justify-content:space-between;position:absolute;right:1rem;top:0;width:9rem}@media(min-width:56.25rem){.project-card .project-text .project-link{margin:0;max-width:4rem;transition:max-width .3s ease-in-out .2s}.project-card .project-text .project-link .link-content{right:1.4rem;transition:right .3s ease-in-out .3s}.project-card .project-text .project-link .link-text{opacity:0;transition:opacity .3s ease-in-out}.project-card .project-text .project-link:focus,.project-card .project-text .project-link:hover{max-width:11rem;transition:max-width .3s ease-in-out}.project-card .project-text .project-link:focus .link-content,.project-card .project-text .project-link:hover .link-content{right:1rem;transition:right .3s ease-in-out}.project-card .project-text .project-link:focus .link-text,.project-card .project-text .project-link:hover .link-text{opacity:1;transition:opacity .3s ease-in-out .2s}}.project-card .project-image{margin:0 calc(50% - 50vw) 2rem;width:100vw}@media(min-width:56.25rem){.project-card{align-items:center;display:grid}.project-card .project-text{grid-area:text}.project-card .project-image{border-radius:1rem;grid-area:thumbnail;margin:0;overflow:hidden;width:100%}.project-card.align-left{grid-template-areas:"text . thumbnail";grid-template-columns:4fr 1fr 7fr}.project-card.align-right{grid-template-areas:"thumbnail . text";grid-template-columns:7fr 1fr 4fr}}header{background:rgba(18,26,36,0);left:0;position:fixed;right:0;top:-7rem;transition:top .3s ease-in-out,background .3s ease-in-out;z-index:2}header.show{top:0}header.background{background:#121a24}header .navbar{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}header .navbar .navbar-logo{display:inline-block}header .navbar .navbar-logo a{display:block;padding:1rem 2rem}header .navbar .navbar-logo a .site-logo{transition:fill .2s ease-in-out;width:3rem}header .navbar .navbar-logo a .site-logo:hover{fill:#fff}@media(min-width:56.25rem){header .navbar .navbar-logo a{padding:.5rem 2rem}header .navbar .navbar-logo a .site-logo{width:5rem}}header .navbar .navbar-btn{background:none;border:none;display:block;padding:1rem 2rem;position:relative}@media(min-width:56.25rem){header .navbar .navbar-btn{padding:2rem}}header .navbar .navbar-btn .bar{background-color:#eab454;border-radius:.25rem;display:block;height:.25rem;margin:.5rem 0;position:relative;top:0;transition:top .3s ease-in-out,opacity .3s ease-in-out,background-color .2s ease-in-out,-webkit-transform .3s ease-in-out;transition:top .3s ease-in-out,transform .3s ease-in-out,opacity .3s ease-in-out,background-color .2s ease-in-out;transition:top .3s ease-in-out,transform .3s ease-in-out,opacity .3s ease-in-out,background-color .2s ease-in-out,-webkit-transform .3s ease-in-out;width:2rem}header .navbar .navbar-btn:focus .bar,header .navbar .navbar-btn:hover .bar{background-color:#fff}@media(min-width:23.5rem){header .navbar.navbar-toggled .navbar-logo .site-logo{fill:#121a24;transition:fill .2s ease-in-out .6s}}header .navbar.navbar-toggled .navbar-btn #bar-1{top:.75rem;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}header .navbar.navbar-toggled .navbar-btn #bar-2{opacity:0}header .navbar.navbar-toggled .navbar-btn #bar-3{top:-.75rem;-webkit-transform:rotate(45deg);transform:rotate(45deg)}header .navbar-menu{align-items:center;background-color:#121a24;display:flex;inset:0;justify-content:flex-end;left:100%;overflow:hidden;padding:0;position:fixed;transition:left .3s ease-in-out .3s;z-index:-1}header .navbar-menu nav{width:calc(100% - .5rem)}@media(min-width:23.5rem){header .navbar-menu nav{width:calc(100% - 7rem)}}@media(min-width:56.25rem){header .navbar-menu nav{width:60%}}header .navbar-menu nav ul{color:#fff;list-style:none;margin-right:2rem;padding:0;text-align:right}@media(min-width:56.25rem){header .navbar-menu nav ul{margin-right:10%}}header .navbar-menu nav ul a{color:#fff;display:inline-block;font-family:Montserrat,sans-serif;font-size:2rem;font-weight:700;opacity:0;padding:1rem;text-decoration:none;transition:background-color .2s ease-in-out,opacity .3s ease-in-out}header .navbar-menu nav ul a .underline{background-color:#eab454;height:.375rem;margin-top:-.25rem;max-width:0;transition:max-width .3s ease-out;width:100%}@media(min-width:30rem){header .navbar-menu nav ul a .underline{height:.5rem;margin-top:-.5rem}}@media(min-width:35rem){header .navbar-menu nav ul a .underline{margin-top:-1rem}}header .navbar-menu nav ul a:focus .underline,header .navbar-menu nav ul a:hover .underline{max-width:100%}@media(min-width:30rem){header .navbar-menu nav ul a{font-size:3rem}}@media(min-width:35rem){header .navbar-menu nav ul a{font-size:4.5rem}}header .navbar-menu .navbar-curtain{background-color:#eab454;bottom:0;left:0;overflow:hidden;position:absolute;top:0;transition:width .3s ease-in-out;width:100%}header .navbar-menu.navbar-toggled{left:0;transition:left .3s ease-in-out}header .navbar-menu.navbar-toggled ul a{opacity:1}header .navbar-menu.navbar-toggled .navbar-curtain{transition:width .3s ease-in-out .3s;width:.5rem}@media(min-width:23.5rem){header .navbar-menu.navbar-toggled .navbar-curtain{width:7rem}}@media(min-width:56.25rem){header .navbar-menu.navbar-toggled .navbar-curtain{width:40%}}footer{background-color:#121a24;font-size:1rem;z-index:1}footer section{padding:initial}footer .footer-content{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-around;margin:0 auto;max-width:30rem;padding:4rem 2rem}footer .footer-content>*{width:100%}footer .footer-content a svg{display:block}footer .footer-content .brand .logo{font-size:2rem;text-align:center}footer .footer-content .brand .logo .site-logo{margin:0 auto 2rem;width:5rem}footer .footer-content .brand .social-icons{display:flex;font-size:1.5rem;justify-content:center}footer .footer-content .brand .social-icons a{display:block;padding:1rem}footer .footer-content .brand .social-icons svg{display:block}footer .footer-content .copyright{text-align:center;width:100%}.page{margin-top:7rem;padding:2rem 0 4rem}@media(min-width:56.25rem){.page{margin-top:8rem}}.page-home{margin:0;padding:0}.page-home .section-banner{background-image:url(/static/media/space-bg.032dabed9f6628f02f01.svg);background-position:50%;background-size:cover;display:grid;grid-template-areas:". . ." ". image ." ". text ." ". . .";grid-template-columns:minmax(2rem,1fr) minmax(0,100rem) minmax(2rem,1fr);grid-template-rows:minmax(8rem,1fr) auto auto minmax(8rem,1fr);margin:0 calc(50% - 50vw);min-height:min(100vh,75rem);width:100vw}.page-home .section-banner .banner-text{grid-area:text;justify-self:center;margin-top:4rem}@media(min-width:56.25rem){.page-home .section-banner .banner-text{align-self:flex-end;justify-self:auto;margin:0}}.page-home .section-banner .banner-text .banner-title{font-size:2.125rem;font-weight:900}@media(min-width:30rem){.page-home .section-banner .banner-text .banner-title{font-size:3.5rem}}@media(min-width:75rem){.page-home .section-banner .banner-text .banner-title{font-size:4.75rem}}@media(min-width:90rem){.page-home .section-banner .banner-text .banner-title{font-size:6rem}}.page-home .section-banner .banner-text .banner-subtitle{font-family:Montserrat,sans-serif;font-weight:700}@media(min-width:75rem){.page-home .section-banner .banner-text .banner-subtitle{font-size:1.5rem}}.page-home .section-banner .banner-image{-webkit-animation:bounce 1.5s ease-in-out infinite alternate;animation:bounce 1.5s ease-in-out infinite alternate;grid-area:image;justify-self:center;max-height:70vh;max-width:25rem;position:relative}@media(min-width:75rem){.page-home .section-banner .banner-image{max-width:35rem}}@-webkit-keyframes bounce{0%{top:0}to{top:1rem}}@keyframes bounce{0%{top:0}to{top:1rem}}@media(min-width:56.25rem){.page-home .section-banner{grid-template-areas:". . . ." ". text image ." ". . . .";grid-template-columns:minmax(2rem,1fr) repeat(2,minmax(0,50rem)) minmax(2rem,1fr);grid-template-rows:minmax(8rem,1fr) auto minmax(8rem,1fr);margin:0 calc(50% - 50vw);width:100vw}}.page-home .section-about{margin:8rem auto;max-width:50rem}@media(min-width:35rem){.page-home .section-about{margin:11rem auto}}@media(min-width:56.25rem){.page-home .section-about{margin:13.5rem auto}}.page-home .section-about .highlighted-overview{color:#eab454;font-family:Montserrat,sans-serif;font-size:1.75rem;font-weight:700}@media(min-width:56.25rem){.page-home .section-about .highlighted-overview{font-size:2.875rem}}.page-home .section-skills{margin:8rem auto;max-width:64rem}@media(min-width:35rem){.page-home .section-skills{margin:11rem auto}}@media(min-width:56.25rem){.page-home .section-skills{margin:13.5rem auto}.page-home .section-skills h2{font-size:2.25rem}}.page-home .section-skills .skill-list{font-size:1.25rem;list-style-type:none;margin:1.5rem 0;padding:0}.page-home .section-skills .skill-list .skill{margin:1rem 0}.page-home .section-skills .skill-list .skill .category-name{color:#fff;font-family:Montserrat,sans-serif;font-size:inherit;font-weight:700}.page-home .section-contact{margin:8rem auto;max-width:50rem;text-align:center}@media(min-width:35rem){.page-home .section-contact{margin:11rem auto}}@media(min-width:56.25rem){.page-home .section-contact{margin:13.5rem auto}}.page-home .section-contact .contact-message{color:#eab454;font-family:Montserrat,sans-serif;font-weight:700}@media(min-width:35rem){.page-home .section-contact .contact-message{font-size:1.5rem}}@media(min-width:56.25rem){.page-home .section-contact .contact-message{font-size:2.25rem}}.page-home .section-contact .email-button{display:inline-block}.page-home .section-contact .email-button button{background:transparent;border:none;color:#fff;font-family:Montserrat,sans-serif;font-size:1.125rem;font-weight:700}@media(min-width:23.5rem){.page-home .section-contact .email-button button{font-size:1.5rem}}@media(min-width:35rem){.page-home .section-contact .email-button button{font-size:2rem}}@media(min-width:56.25rem){.page-home .section-contact .email-button button{font-size:3rem}}.page-home .section-contact .email-button button .underline{background-color:#eab454;height:.25rem;margin-top:.25rem;max-width:0;transition:max-width .3s ease-out;width:100%}@media(min-width:56.25rem){.page-home .section-contact .email-button button .underline{height:.5rem}}.page-home .section-contact .email-button button:focus .underline,.page-home .section-contact .email-button button:hover .underline{max-width:100%}.page-home .section-contact .email-copied-message{margin-top:1rem;opacity:1;transition:opacity .3s ease-in-out}.page-home .section-contact .email-copied-message.hidden{opacity:0}.page-home .scroll-target{scroll-margin-top:6rem}@media(min-width:56.25rem){.page-home .scroll-target{scroll-margin-top:9.5rem}}.page-project h1{font-size:2.25rem}@media(min-width:56.25rem){.page-project h1{font-size:3rem}}@media(min-width:75rem){.page-project h1{font-size:4.5rem}}.page-project h2{font-size:2.25rem;margin-bottom:2.25rem}@media(min-width:56.25rem){.page-project h2{font-size:3rem;margin-bottom:3rem}}.page-project h3{font-size:1.5rem}@media(min-width:75rem){.page-project h3{font-size:2.25rem}}.page-project .content-wrapper>section{margin:10rem 0}.page-project .content-wrapper>section:first-of-type{margin-top:0}.page-project .project-header .project-year{font-family:Montserrat,sans-serif;font-size:1.5rem;font-weight:700;margin-bottom:6.25rem}@media(min-width:75rem){.page-project .project-header .project-year{font-size:2rem}}.page-project .project-header .project-name{margin-bottom:.25rem}.page-project .project-header .project-subtitle{font-family:Montserrat,sans-serif}@media(min-width:75rem){.page-project .project-header .project-subtitle{font-size:1.5rem}}.page-project .project-header .featured-image{margin:8rem calc(50% - 50vw);width:100vw}@media(min-width:100rem){.page-project .project-header .featured-image{border-radius:1rem;margin:8rem 0;overflow:hidden;width:100%}}@media(min-width:56.25rem){.page-project .project-details-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-areas:". left left left left left left right right right right .";grid-template-columns:repeat(12,1fr)}.page-project .project-details-section .left-column{grid-area:left}.page-project .project-details-section .right-column{grid-area:right}.page-project .project-details-section .left-column>section,.page-project .project-details-section .right-column>section{margin-bottom:2rem}}.page-project .project-details-section a{color:#fff}.page-project .project-details-section a:focus,.page-project .project-details-section a:hover{color:#eab454}@media(min-width:90rem){.page-project .project-details-section{grid-template-areas:". left left left left left left . right right right ."}}.page-project .project-collaborators-section ul{list-style:none;margin:0 0 1rem;padding:0}.page-project .project-collaborators-section .collaborator-link .link-icon{font-size:.875rem;margin-left:.25rem}.page-project .project-links-section .project-link{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:3rem 1fr;line-height:1;padding:1rem 0}.page-project .project-links-section .project-link .custom-icon{font-size:2rem}.page-project .project-links-section .project-link:first-of-type{padding-top:0}.page-project .other-projects-section .other-projects-header,.page-project .project-features-section .coming-soon,.page-project .project-features-section .project-features-header{text-align:center}.page-project .other-projects-section .project-card:first-of-type{margin-top:0}.page-project .other-projects-section .project-card .project-link{text-decoration:none}.page-project .other-projects-section .project-card .project-subtitle{color:#fff}@media(min-width:56.25rem){.page-project .other-projects-section .project-card{display:block}.page-project .other-projects-section{grid-gap:0 2rem;display:grid;gap:0 2rem;grid-template-areas:"heading heading" "left right";grid-template-columns:repeat(2,1fr)}.page-project .other-projects-section .other-projects-header{grid-area:heading}.page-project .other-projects-section .align-left{grid-area:left}.page-project .other-projects-section .align-right{grid-area:right}.page-project .other-projects-section .project-card{margin:0}}.page-maintenance{align-items:center;display:flex;justify-content:center;margin:0;padding:0}.page-maintenance .page-content{max-width:30rem}.page-404{align-items:center;display:flex;justify-content:center;margin:0;padding:0}.page-404 .page-content{max-width:30rem}.page-404 .page-content a{background-color:#121a24;border-radius:2rem;display:block;font-family:Montserrat,sans-serif;font-weight:700;margin:2rem auto 0;max-width:16rem;padding:1rem 2rem;text-decoration:none}
/*# sourceMappingURL=main.3d91aeca.css.map*/