@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap);@import url(https://fonts.googleapis.com/css2?family=DM+Mono&display=swap);:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s ease-out;visibility:hidden;will-change:opacity,visibility}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:.9;opacity:var(--rt-opacity);visibility:visible}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:#222;background:var(--rt-color-dark);color:#fff;color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:#fff;background-color:var(--rt-color-white);color:#222;color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:#8dc572;background-color:var(--rt-color-success);color:#fff;color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:#f0ad4e;background-color:var(--rt-color-warning);color:#fff;color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:#be6464;background-color:var(--rt-color-error);color:#fff;color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:#337ab7;background-color:var(--rt-color-info);color:#fff;color:var(--rt-color-white)}div.react-tooltip{border-radius:4px;box-shadow:0 1px 2px 0 #0000004d;font-size:1.2rem;font-weight:500;padding:2px 8px;z-index:2}.btn{transition-duration:.15s;transition-property:height;transition-timing-function:ease-out}.btn.nav-btn{font-size:1.6rem;gap:.8rem;padding:0 1.2rem}.btn.name{font-size:1.8rem;font-weight:700}.btn.menu-btn{justify-content:center;padding:0 1.6rem;transition-duration:.15s;transition-property:width;transition-timing-function:ease-out}.icon-btn{justify-content:center;padding:0;width:4.8rem}.icon-btn:not(.menu-btn):not(.close-btn) svg{height:1.4rem;transition-duration:.15s;transition-property:width,height;transition-timing-function:ease-out;width:1.4rem}@media screen and (min-width:512px){.btn{height:5.6rem}.btn.nav-btn{padding:0 1.6rem}.btn.nav-btn.name{font-size:1.8rem}.btn.icon-btn{width:5.6rem}.btn.icon-btn:not(.menu-btn):not(.close-btn) svg{height:1.6rem;width:1.6rem}}@media screen and (min-width:768px){.btn.nav-btn{gap:1.2rem;padding:0 2rem}.btn.icon-btn svg{height:auto;width:auto}}.menu{border-radius:4px;display:flex;flex-direction:column;overflow:clip}.menu a.btn.nav-btn{border-radius:0;padding:0 3.2rem}@media screen and (min-width:1024px){.menu{gap:.8rem}}.menu-nav{position:relative}.menu-nav .menu{position:absolute;right:0;top:100%}.modal{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:3}.modal.redirect .container{padding:1.6rem 3.2rem 3.2rem}@keyframes shake{0%{left:12px;right:0}25%{left:0;right:12px}50%{left:12px;right:0}75%{left:0;right:12px}to{left:0;right:0}}.modal.dirty.shake .container,.modal.error.shake .container{animation:shake .3s ease-in-out 1;left:0;position:relative;right:0}.modal .container{background-color:gray;box-shadow:0 2px 12px 2px #0000001a;max-width:512px;padding:1.6rem 3.2rem;width:100%}.modal .container header{align-items:center;display:flex;justify-content:space-between;padding:.8rem 0}.modal .container header h2{margin:0}.modal .container header .close-button{align-items:center;border:0;border-radius:24px;display:flex;height:48px;justify-content:center;width:48px}.modal .container header .close-button:hover{cursor:pointer}.modal .container header .close-button.loading{position:relative}.modal .container header .close-button.loading svg{z-index:2}.modal .container header .close-button.loading:after{border-radius:100%;content:"";height:calc(100% - 8px);left:50%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0);width:calc(100% - 8px)}.modal .container .body .destination-message{margin:0 0 .8rem}.modal .container .body .text-link{background:#0000;border:0;font-size:1.6rem;padding:0}.modal .container .body form{margin-bottom:1.6rem}.modal .container .body form,.modal .container .body form .input-group{display:flex;flex-direction:column}.modal .container .body form .input-group input{border-radius:4px;flex:1 1;font-family:DM Sans,sans-serif;font-size:1.6rem;margin:0 0 .8rem;min-height:4.8rem;padding:0 1.6rem}.modal .container .body form .input-group .error-container{align-items:center;display:flex;gap:1rem;margin:.4rem 0 .6rem;overflow:hidden}.modal .container .body form button{margin-top:.8rem}@media screen and (min-width:512px){.modal .container{border-radius:8px;margin:0 3.2rem}.modal .container .body form{flex-direction:row;gap:1.6rem}.modal .container .body form .input-group{flex:1 1}.modal .container .body form .input-group input,.modal .container .body form button{margin:0}}.external-link{border-radius:4px;padding-right:1.6rem}.external-link:hover svg{margin-bottom:.6rem;transform:scale(1.1)}.external-link svg{margin:0 -1.2rem .4rem .4rem;transform:scale(1);transition-duration:.15s;transition-property:margin,transform;transition-timing-function:ease-out}header.site-header{align-items:center;box-shadow:none;display:flex;height:7.2rem;justify-content:center;left:0;position:fixed;right:0;top:0;transform:none;transition-duration:.15s;transition-property:padding,height;transition-timing-function:ease-out;z-index:3}header.site-header .nav-container{display:flex;flex:1 1;justify-content:space-between;margin:0 3.2rem;max-width:1024px;transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out}header.site-header .nav-container nav{display:flex;flex:0 0 auto}header.site-header .nav-container nav.primary-nav{margin-left:-1.2rem}header.site-header .nav-container nav.primary-nav a{padding-bottom:2px}header.site-header .nav-container .nav-group{display:flex;gap:1.2rem;margin:0 0 0 .4rem;transition-duration:.15s;transition-property:margin,gap;transition-timing-function:ease-out}@media screen and (min-width:512px){header.site-header{height:8rem}header.site-header .nav-container{margin:0 4.8rem}header.site-header .nav-container nav.primary-nav{margin-left:-1.6rem}header.site-header .nav-container .nav-group{gap:1.6rem;margin:0 0 0 .8rem}}@media screen and (min-width:768px){header.site-header .nav-container{margin:0 6.4rem}header.site-header .nav-container nav.primary-nav{margin-left:-2rem}header.site-header .nav-container .nav-group{margin:0 0 0 1.6rem}}@media screen and (min-width:1024px){header.site-header .nav-container{margin:0 8rem}}.text-link{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;margin:0;padding:0}.text-link.icon-left{padding-right:1.6rem}.text-link.icon-left svg{margin-right:.8rem}.text-link.icon-right{padding-left:1.6rem}.text-link.icon-right svg{margin-left:.8rem}.text-link:not([href]),.text-link[type=button],.text-link[type=submit]{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;padding:0}.icon-button-group{display:flex;justify-content:center}footer{align-items:center;padding:0 0 3.2rem;transition-duration:.15s;transition-property:padding;transition-timing-function:ease-out}footer,footer .inner-container{display:flex;flex-direction:column;gap:1.6rem}footer .inner-container{padding:.8rem}footer .inner-container .divider{width:100%}footer .inner-container .icon-button-group{gap:.8rem;transition-duration:.15s;transition-property:gap;transition-timing-function:ease-out}footer .inner-container .icon-button-group .btn.icon-btn{justify-content:center;padding:0;width:4.8rem}footer .inner-container .icon-button-group .btn.icon-btn svg{height:1.6rem;transition-duration:.15s;transition-property:width,height;transition-timing-function:ease-out;width:1.6rem}footer .inner-container .footer-info{align-items:center;display:flex;flex-direction:column;font-size:1.4rem;gap:1.6rem;padding:1.6rem 0 0}footer .inner-container .footer-info .links{display:flex;gap:.8rem}footer .inner-container .footer-info .links button{padding:0}footer .inner-container button{background:#0000;border:0}footer .inner-container button:hover{cursor:pointer}@media screen and (min-width:512px){footer{padding:0 0 3.6rem}footer .inner-container{padding:2.4rem}footer .inner-container .footer-info{flex-direction:row;gap:.8rem;justify-content:center}footer .inner-container .icon-button-group{gap:1.2rem}footer .inner-container .icon-button-group .btn.icon-btn svg{height:1.8rem;width:1.8rem}}@media screen and (min-width:768px){footer{padding:0 0 4rem}footer .inner-container{padding:3.2rem}footer .inner-container .icon-button-group{gap:1.6rem}footer .inner-container .icon-button-group .btn.icon-btn svg{height:2rem;width:2rem}}.section{display:flex;flex-direction:column;padding:3.2rem 0;position:relative;transition-duration:.15s;transition-property:margin-bottom;transition-timing-function:ease-out}.section:first-of-type{padding-top:0}.section:first-of-type>.divider{display:none}.section>.divider{left:0;position:absolute;right:0;top:-2px}.section header{display:flex;flex-direction:column}.section header h2{font-size:2rem;line-height:normal;margin:0 0 3.2rem;transition-duration:.15s;transition-property:margin,font-size;transition-timing-function:ease-out}.section header h2:before{content:"";display:block;margin-top:-.584rem}.section header h2:after{content:"";display:block;margin-top:-.62rem}.section .content{display:flex;flex:3 1;flex-direction:column;gap:2.8rem}.section .content ul{padding-left:2.8rem}.section .content ul li{list-style:circle;margin-bottom:.8rem;padding-left:.4rem}.section .content ul li:last-child{margin:0}.section .content p,.section .content ul{font-size:1.6rem;line-height:1.6;margin:0}.section .content p:after,.section .content p:before,.section .content ul:after,.section .content ul:before{content:"";display:block;margin-top:-.72rem}@media screen and (min-width:512px){.section{padding:3.6rem 0}.section header h2{font-size:2.2rem;line-height:normal;margin:0 0 3.6rem}.section header h2:before{content:"";display:block;margin-top:-.6424rem}.section header h2:after{content:"";display:block;margin-top:-.682rem}.section .content p,.section .content ul{margin:0}}@media screen and (min-width:768px){.section{padding:4rem 0}.section header h2{font-size:2.4rem;line-height:normal;margin:0 0 4rem}.section header h2:before{content:"";display:block;margin-top:-.7008rem}.section header h2:after{content:"";display:block;margin-top:-.744rem}.section .content p,.section .content ul{font-size:1.8rem;line-height:1.6;margin:0}.section .content p:after,.section .content p:before,.section .content ul:after,.section .content ul:before{content:"";display:block;margin-top:-.81rem}}@media screen and (min-width:1024px){.section{padding:5.6rem 0}}.tag{background-color:#ffffff0f;border-radius:2px;display:flex;flex-direction:column;font-family:DM Mono,monospace;height:1.8rem;justify-content:center;letter-spacing:1.5px;margin-bottom:1.6rem;margin-left:-4px;padding:0 4px;text-transform:uppercase}.tag,.tag span{font-size:1.2rem}.tag span{line-height:normal}.tag span:before{content:"";display:block;margin-top:-.3504rem}.tag span:after{content:"";display:block;margin-top:-.372rem}.page-header{display:flex;flex-direction:column;justify-content:center;min-height:14rem;transition-duration:.15s;transition-property:padding,min-height;transition-timing-function:ease-out}.page-header .text-container{align-items:flex-start;display:flex;flex-direction:column}.page-header .text-container .text-link{margin:0 0 1.6rem -1.2rem}.page-header .text-container h1{margin:0 0 1.2rem}.page-header .text-container .subtitle{margin-top:.4rem}@media screen and (min-width:512px){.page-header{min-height:18rem}}@media screen and (min-width:768px){.page-header{min-height:20rem}}@media screen and (min-width:1024px){.page-header{min-height:24rem}}.group{display:flex}.group.row{flex-direction:row}.group.column{flex-direction:column}.sub-nav{align-self:flex-start;border-radius:4px;display:flex;justify-content:center;margin-bottom:3.2rem;max-height:5rem;min-width:22.4rem;width:100%;z-index:1}.sub-nav.inline.pinned{position:sticky;top:7.2rem;z-index:1}.sub-nav.inline .inner-container .menu{margin-left:-1px;margin-right:-1px;margin-top:1px}.sub-nav .inner-container{display:flex;flex-direction:column;width:100%}.sub-nav button.link{align-items:center;display:flex;font-family:DM Sans,sans-serif;font-size:1.6rem;gap:1.2rem;height:4.8rem;padding:0 2.4rem 0 4.8rem;position:relative}.sub-nav button:not(.static):hover{cursor:pointer}.sub-nav .contents{align-items:center;display:flex;flex:1 1;gap:1rem;padding:0 2.4rem}.sub-nav .contents span{font-size:1.1rem;font-weight:600;letter-spacing:.2em;line-height:normal;text-transform:uppercase}.sub-nav .contents span:before{content:"";display:block;margin-top:-.3212rem}.sub-nav .contents span:after{content:"";display:block;margin-top:-.341rem}.sub-nav .button-group{display:flex;flex:1 1;gap:.4rem}.sub-nav .button-group button{min-height:4.8rem}.sub-nav .button-group button:first-child{border-radius:4px 0 0 4px}.sub-nav .button-group button:last-child{border-radius:0 4px 4px 0}.sub-nav .button-group button.pin{align-items:center;display:flex;justify-content:center;padding:0;width:4.8rem}.sub-nav .button-group button.pin svg{transform:none;transition-duration:.3s;transition-property:transform,width,height;transition-timing-function:ease-out}.sub-nav .button-group button.pin .active{transform:rotate(45deg)}.sub-nav .link-group{display:flex;flex-direction:column}.sub-nav .link-group button.link:before{border-radius:4px;content:"";height:0;left:2.4rem;opacity:0;position:absolute;width:0}.sub-nav .link-group button.link.active:before,.sub-nav .link-group button.link:before{margin:2px;transition-duration:.15s;transition-property:width,height,left,opacity,background-color;transition-timing-function:ease-out}.sub-nav .link-group button.link.active:before{height:8px;opacity:1;width:8px}.sub-nav button.go-to-top{align-items:center;display:flex;padding:0 2.4rem}.sub-nav button.go-to-top .container{align-items:center;display:flex;font-size:1.6rem;gap:1.2rem}@media screen and (min-width:512px){.sub-nav{margin-bottom:3.6rem}.sub-nav.inline.pinned{top:8rem}}@media screen and (min-width:768px){.sub-nav{margin-bottom:4rem}}@media screen and (min-width:1024px){.sub-nav{max-height:none;padding:.8rem 0}.sub-nav.right-col{border-width:1px;flex:1 1;position:sticky;top:12rem}.sub-nav .contents{min-height:4.8rem;padding:0 3.2rem}.sub-nav .contents span{font-size:1.2rem;line-height:normal}.sub-nav .contents span:before{content:"";display:block;margin-top:-.3504rem}.sub-nav .contents span:after{content:"";display:block;margin-top:-.372rem}.sub-nav button{height:5.6rem}}.group.row .group.sections{flex:3 1}.sections.col-2{margin-right:8rem}.colors .section>div{flex-direction:row}.colors .section header{-webkit-user-select:none;user-select:none}.colors .section .color-container{border-radius:4px;display:flex;flex:1 1;flex-direction:column;font-family:DM Mono;padding:1.6rem 2.4rem}.colors .section .color-container:not(:last-child){margin-right:3.2rem}.colors .section .color-container .whitespace{white-space:pre}.colors .section .color-container .color-row{display:flex;font-size:1.4rem;margin-bottom:.8rem;transition-duration:.15s;transition-property:font-size;transition-timing-function:ease-out}.colors .section .color-container .color-row .color-name{border-radius:4px;margin-right:.4rem;padding:0 .4rem}@media screen and (min-width:768px){.colors .section .color-container{padding:1.6rem 3.2rem}.colors .section .color-container .color-row{font-size:1.6rem}}@keyframes react-loading-skeleton{to{transform:translateX(100%)}}.react-loading-skeleton{--base-color:#ebebeb;--highlight-color:#f5f5f5;--animation-duration:1.5s;--animation-direction:normal;--pseudo-element-display:block;background-color:var(--base-color);border-radius:.25rem;display:inline-flex;line-height:1;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:1}.react-loading-skeleton:after{animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-iteration-count:infinite;animation-name:react-loading-skeleton;animation-timing-function:ease-in-out;background-image:linear-gradient(90deg,var(--base-color),var(--highlight-color),var(--base-color));background-repeat:no-repeat;content:" ";display:var(--pseudo-element-display);height:100%;left:0;position:absolute;right:0;top:0;transform:translateX(-100%)}@media (prefers-reduced-motion){.react-loading-skeleton{--pseudo-element-display:none}}.branch{border-radius:4px;display:flex}.branch .connector-container{align-items:center;display:flex;flex:0 0 auto;flex-direction:column;margin-top:-2px}.branch .connector-container svg.small-circle{position:relative;top:-8px}.branch .connector-container .connector{flex:1 1;margin:0 0 3px}.branch.last-child{margin-bottom:2.4rem}.branch:not(.last-child) .branch-content{padding:0 0 3.2rem}.branch .branch-content{display:flex;flex:1 1;flex-direction:column}.branch .branch-content header{border-radius:4px 4px 0 0;display:flex;flex:2 1;margin:0 1.6rem 0 2.4rem;transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out}.branch .branch-content header .header-text-container{display:flex;flex:1 1;flex-direction:column}.branch .branch-content header .header-text-container .header-group{align-items:baseline;display:flex;margin:0 0 1.6rem}.branch .branch-content header .header-text-container .header-group h3{flex:1 1;font-size:1.6rem;line-height:normal;margin:0}.branch .branch-content header .header-text-container .header-group h3:before{content:"";display:block;margin-top:-.4672rem}.branch .branch-content header .header-text-container .header-group h3:after{content:"";display:block;margin-top:-.496rem}.branch .branch-content header .header-text-container .issue-details{align-items:center;display:flex}.branch .branch-content header .header-text-container .issue-details .label{align-items:center;border-radius:2px;display:flex;font-size:1.2rem;height:2.8rem;line-height:normal;margin-right:4px;padding:0 .8rem}.branch .branch-content header .header-text-container .issue-details .label:before{content:"";display:block;margin-top:-.3504rem}.branch .branch-content header .header-text-container .issue-details .label:after{content:"";display:block;margin-top:-.372rem}.branch .branch-content header .header-text-container .issue-details .issue-number,.branch .branch-content header .header-text-container .issue-details a.external-link{font-size:1.4rem;margin-right:.8rem;padding:0 .4rem}.branch .branch-content .list{flex:3 1}.branch .branch-content .list ul{font-size:1.4rem;padding-left:1.6rem}.branch .branch-content .list>ul{margin:1.6rem 0 0 2.4rem;transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out}.branch .branch-content .list>ul li{margin-bottom:.4rem}.branch .branch-content .list>ul li ul{margin:.4rem 0 .8rem}.branch.loading .branch-content header .header-text-container .header-group h3 span{width:80%}.branch.loading .branch-content header .header-text-container .issue-details .sk-labels{width:20%}.branch.loading .branch-content header .header-text-container .issue-details .sk-issue-number{margin-right:1.6rem;width:10%}@media screen and (min-width:768px){.branch .branch-content{flex-direction:row}.branch .branch-content header{margin-right:1.6rem}.branch .branch-content .list>ul{margin:0}}.deploy{border-radius:4px;display:flex;flex-direction:column;margin:0 0 3.2rem;padding:.8rem;transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out}.deploy>header{display:flex;flex:1 1}.deploy>header .header-text-container{align-items:baseline;display:flex;flex:1 1;flex-direction:column;padding:1.6rem 0}.deploy>header .header-text-container .date-container{align-items:baseline;display:flex;justify-content:space-between;padding-right:2.4rem;width:100%}.deploy>header .header-text-container .date-container span{font-family:DM Mono;font-size:1.4rem;margin-left:1.6rem}.deploy>header .header-text-container h2{font-size:1.8rem;line-height:normal;margin:0}.deploy>header .header-text-container h2:before{content:"";display:block;margin-top:-.5256rem}.deploy>header .header-text-container h2:after{content:"";display:block;margin-top:-.558rem}.deploy>header .header-text-container .label-counts{align-items:center;display:flex;flex-wrap:wrap;margin-top:1.2rem;width:100%}.deploy>header .header-text-container .label-counts div[class$=count]{align-items:center;border:1px solid #ffffff1a;border-radius:2px;display:flex;font-size:1.2rem;height:2.8rem;line-height:normal;margin-bottom:.4rem;padding:0 8px}.deploy>header .header-text-container .label-counts div[class$=count]:before{content:"";display:block;margin-top:-.3504rem}.deploy>header .header-text-container .label-counts div[class$=count]:after{content:"";display:block;margin-top:-.372rem}.deploy>header .header-text-container .label-counts div[class$=count]:not(:last-child){margin-right:.4rem}.deploy>header .header-text-container .label-counts svg{margin:.1rem 1.2rem 0}.deploy>header button{align-items:center;background-color:#0000;border:0;border-radius:4px;box-shadow:none;color:#000;color:initial;cursor:pointer;display:flex;justify-content:center;margin-right:.8rem;padding:0;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out;width:4.8rem}.deploy>.branch-container{margin-top:1.6rem;padding:0 1.6rem;transition-duration:.15s;transition-property:padding;transition-timing-function:ease-out}.deploy.loading>header .header-text-container .label-counts{height:10px}.deploy.loading>header .header-text-container .label-counts .sk-count{width:15%}@media screen and (min-width:768px){.deploy>.branch-container{padding:0 2.4rem 0 5.6rem}}.image-wrapper{border-radius:4px;overflow:hidden;width:100%}.image-wrapper,.image-wrapper .image-container{display:flex;flex-direction:column}.image-wrapper .image-container img{height:auto;opacity:1;transition-duration:.15s;transition-property:opacity;transition-timing-function:ease-out;width:100%}.image-wrapper .image-container img.loading{color:#0000;opacity:0}.image-wrapper .image-container span{border-radius:inherit;display:flex;flex:1 1}.image-wrapper .caption{font-size:1.4rem;margin:1.6rem}.light .card.placeholder .locked svg{filter:none;opacity:.7}.light .card.placeholder:hover .locked svg{filter:none;opacity:.8}.card{border-radius:4px;display:flex;flex:1 1}.card.placeholder .locked svg{filter:drop-shadow(2px 2px 2px rgba(0,0,0,.2));height:2.4rem;opacity:.9;transform:rotate(0) scale(1);transition-duration:.15s;transition-property:filter,transform,opacity;transition-timing-function:ease-out;width:2.4rem}.card.placeholder:hover{cursor:pointer}.card.placeholder:hover .locked svg{filter:drop-shadow(0 4px 6px rgba(0,0,0,.15));opacity:1;transform:rotate(15deg) scale(1.25)}.card .card-text{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;margin:1.6rem 2.4rem 2rem;position:relative}.card .card-text .tag.tab{border-radius:2px 2px 0 0;bottom:100%;position:absolute;z-index:2}.card .card-text .card-name{font-size:2rem;font-weight:700;line-height:1.4;margin-bottom:.8rem}.card .card-text .card-description{font-size:1.4rem}.card .image-wrapper{border-radius:4px 4px 0 0;height:96px;transition:height .15s ease-out}.card .image-wrapper.locked{align-items:center;display:flex;font-size:4.8rem;font-weight:700;justify-content:center}.card .image-wrapper .image-container img{height:100%;object-fit:cover;object-position:top;width:100%}.card .image-wrapper .image-container>span{padding:2px 2px 0}.card.wide{flex-direction:row}.card.wide .image-wrapper{border-radius:4px 0 4px 0;flex:1 1;height:160px;margin-top:4.8rem}.card.wide .image-wrapper .image-container>span{padding:0 2px 2px 0}.card.wide .card-text{margin:4.8rem}.card.wide .card-text .card-name{font-size:2.2rem}.card.narrow{flex-direction:column-reverse}@media screen and (min-width:512px){.card.narrow .image-wrapper{height:128px}}.card-group{display:flex;flex-direction:column;gap:3.2rem;margin-bottom:6.4rem;max-width:1024px;transition-duration:.15s;transition-property:margin-bottom,gap;transition-timing-function:ease-out;width:100%}.card-group .card-group-header{align-items:baseline;display:flex;justify-content:space-between}.card-group .card-group-header a{align-self:center;margin-left:2.4rem}.card-group .card-group-container{display:flex;flex-direction:column;gap:3.2rem;transition-duration:.15s;transition-property:gap;transition-timing-function:ease-out}.card-group.more-projects{padding-top:6.4rem;transition-duration:.15s;transition-property:margin-top,padding-top;transition-timing-function:ease-out}.card-group .filters{display:flex;gap:.8rem}.card-group .filters .filter-tag{align-items:center;border-radius:1.6rem;display:flex;font-family:DM Sans,sans-serif;height:3.2rem;padding:0 1.2rem}.card-group .filters .filter-tag:hover{cursor:pointer}.card-group .filters .filter-tag span{font-size:1.4rem;line-height:normal}.card-group .filters .filter-tag span:before{content:"";display:block;margin-top:-.4088rem}.card-group .filters .filter-tag span:after{content:"";display:block;margin-top:-.434rem}.card-group .overflow-section{display:flex;flex-direction:column;gap:4rem}.card-group .overflow-section .overflow-toggle{display:flex;justify-content:center;position:relative;width:100%}.card-group .overflow-section .overflow-toggle .text-container{align-items:center;display:flex;gap:.8rem}.card-group .overflow-section .overflow-toggle>div.line{height:1px;left:2%;position:absolute;right:2%;top:50%;width:96%}.card-group .overflow-section .overflow-grid{display:flex;flex-direction:row;flex-wrap:wrap}.card-group .overflow-section .overflow-grid>*{width:100%}@media screen and (min-width:512px){.card-group{gap:3.6rem;margin-bottom:7.2rem}.card-group .card-group-container{gap:3.6rem}.card-group.more-projects{padding-top:7.2rem}}@media screen and (min-width:768px){.card-group{gap:4rem;margin-bottom:8rem}.card-group .card-group-container{gap:4rem}.card-group.more-projects{padding-top:8rem}.card-group.more-projects .card-group-container{flex-direction:row}.card-group .overflow-section .overflow-grid>*{width:calc(50% - 2rem)}}.projects .projects-container{display:flex;flex-wrap:wrap}@media screen and (min-width:768px){.projects .projects-container{margin-left:-24px;margin-right:-24px}}.hero{align-items:center;display:flex;height:80vh;justify-content:center;max-width:1024px;transition-duration:.15s;transition-property:height;transition-timing-function:ease-out}.hero .hero-text-container{display:flex;flex:2 1;flex-direction:column;text-align:left;width:100%}.hero .hero-text-container h1{margin:0 0 3.6rem}.hero .hero-text-container h1,.hero .hero-text-container p{transition-duration:.15s;transition-property:all;transition-timing-function:ease-out}.hero .hero-text-container p{font-size:1.6rem;line-height:1.4;margin:0}.hero .hero-text-container p:after,.hero .hero-text-container p:before{content:"";display:block;margin-top:-.56rem}.hero .hero-text-container .hero-tag-container{display:flex;margin-top:1.6rem;transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out}.hero .hero-text-container .hero-tag-container .hero-tags{align-items:baseline;display:flex;transition-duration:.15s;transition-property:font-size;transition-timing-function:ease-out}.hero .hero-text-container .hero-tag-container .hero-tags.block{flex-wrap:wrap;font-size:1.6rem;gap:4px}.hero .hero-text-container .hero-tag-container .hero-tags.block .hero-tag-group{border:1px solid #ffffff1a;border-radius:2px;height:3.2rem;padding:0 8px}.hero .hero-text-container .hero-tag-container .hero-tags.bullet{flex-direction:column;font-size:1.8rem;padding-left:1.6rem}.hero .hero-text-container .hero-tag-container .hero-tags.bullet .hero-tag-group{margin-bottom:1.2rem}.hero .hero-text-container .hero-tag-container .hero-tags .hero-tag-group{align-items:center;display:flex;flex-direction:row-reverse;transition-duration:.15s;transition-property:margin-bottom;transition-timing-function:ease-out}.hero .hero-text-container .hero-tag-container .hero-tags .hero-tag-group>svg{margin-right:.8rem}.hero .hero-text-container .hero-tag-container .hero-tags .child{transition-duration:.15s;transition-property:margin;transition-timing-function:ease-out;white-space:nowrap}@media screen and (min-width:512px){.hero .hero-text-container h1{margin:0 0 3.6rem}.hero .hero-text-container p{font-size:1.8rem;line-height:1.4}.hero .hero-text-container p:after,.hero .hero-text-container p:before{content:"";display:block;margin-top:-.63rem}.hero .hero-text-container .hero-tag-container{margin-top:2.4rem}}@media screen and (min-width:768px){.hero{height:80vh}.hero .hero-text-container{flex:1 1}.hero .hero-text-container h1{margin:0 0 4rem}.hero .hero-text-container p{font-size:2rem;line-height:1.4}.hero .hero-text-container p:after,.hero .hero-text-container p:before{content:"";display:block;margin-top:-.7rem}.hero .hero-text-container .hero-tag-container .hero-tags{flex-direction:row}.hero .hero-text-container .hero-tag-container .hero-tags .hero-tag-group{flex-direction:row;margin-bottom:0}.hero .hero-text-container .hero-tag-container .hero-tags .hero-tag-group>svg{margin:0 1.2rem}.hero .hero-text-container .hero-tag-container .hero-tags .hero-tag-group:last-child svg{display:none}.hero .image-wrapper{flex:1 1;margin-left:3.2rem}}@media screen and (min-width:1024px){.hero .hero-text-container{flex:2 1}.hero .hero-text-container .hero-tag-container .hero-tags{font-size:1.8rem}.hero .image-wrapper{margin-left:4.8rem}}.home{align-items:center}.home,.home .about-brief{display:flex;flex-direction:column}.home .about-brief{gap:3.2rem;margin-bottom:6.4rem;max-width:1024px;transition-duration:.15s;transition-property:margin-bottom,gap;transition-timing-function:ease-out}.home .about-brief header{display:flex}.home .about-brief .inner-container{display:flex;flex-direction:column}.home .about-brief .inner-container .image-wrapper{flex:1 1;margin:0 0 3.2rem;transition-duration:.15s;transition-property:all;transition-timing-function:ease-out}.home .about-brief .inner-container .text-container{align-items:flex-start;display:flex;flex:1 1;flex-direction:column}.home .about-brief .inner-container .text-container p{margin-top:0}.home .about-brief .inner-container .text-container p.callout{font-size:2rem;font-weight:700;line-height:1.4;margin-bottom:2.8rem;padding:.8rem 0}.home .about-brief .inner-container .text-container p.callout:after,.home .about-brief .inner-container .text-container p.callout:before{content:"";display:block;margin-top:-.7rem}.home .about-brief .inner-container .text-container p.excerpt{font-size:1.6rem;line-height:1.8;margin-bottom:2.8rem}.home .about-brief .inner-container .text-container p.excerpt:after,.home .about-brief .inner-container .text-container p.excerpt:before{content:"";display:block;margin-top:-.88rem}@media screen and (min-width:512px){.home .about-brief{gap:3.6rem;margin-bottom:7.2rem}.home .about-brief .inner-container .image-wrapper{margin:0 0 3.6rem}.home .about-brief .inner-container .text-container p.callout{font-size:2.2rem;line-height:1.4;padding-bottom:1.2rem;padding-top:1.2rem}.home .about-brief .inner-container .text-container p.callout:after,.home .about-brief .inner-container .text-container p.callout:before{content:"";display:block;margin-top:-.77rem}}@media screen and (min-width:768px){.home .about-brief{gap:4rem;margin-bottom:8rem}.home .about-brief .inner-container{flex-direction:row}.home .about-brief .inner-container .image-wrapper{align-self:flex-start;margin:0 4rem 0 0}.home .about-brief .inner-container .text-container p.callout{font-size:2.4rem;line-height:1.4;padding-bottom:1.6rem;padding-top:1.6rem}.home .about-brief .inner-container .text-container p.callout:after,.home .about-brief .inner-container .text-container p.callout:before{content:"";display:block;margin-top:-.84rem}}.page.sub.projects{display:flex;flex-direction:column}.page.sub.projects .assets{flex:1 1}.page.sub.projects .icon-category{display:flex;flex-direction:column}.page.sub.projects .icon-category:not(:last-child){margin-bottom:2.4rem}.page.sub.projects .icon-category .icon-category-name{font-size:1.4rem;line-height:normal;margin-bottom:.8rem}.page.sub.projects .icon-category .icon-category-name:before{content:"";display:block;margin-top:-.4088rem}.page.sub.projects .icon-category .icon-category-name:after{content:"";display:block;margin-top:-.434rem}.page.sub.projects .icon-category .icon-group{display:flex;flex:1 1;flex-wrap:wrap;margin:0 -.4rem}.page.sub.projects .icon-category .icon-group .icon-container{display:flex;flex-basis:calc(33.333% - 0.8rem);flex-direction:column;flex-grow:0;flex-shrink:0;margin:.8rem .4rem 0;max-width:calc(33.333% - .8rem);min-height:8.8rem;overflow:hidden;padding:1.6rem}.page.sub.projects .icon-category .icon-group .icon-container svg{height:3.2rem;margin:0 auto 1.2rem;width:3.2rem}.page.sub.projects .icon-category .icon-group .icon-container span{font-size:1.2rem;line-height:normal;overflow-x:clip;text-align:center;text-overflow:ellipsis;white-space:nowrap}.page.sub.projects .icon-category .icon-group .icon-container span:before{content:"";display:block;margin-top:-.3504rem}.page.sub.projects .icon-category .icon-group .icon-container span:after{content:"";display:block;margin-top:-.372rem}@media screen and (min-width:768px){.page.sub.projects .icon-category .icon-group .icon-container{flex-basis:calc(25% - 0.8rem);flex-grow:0;flex-shrink:0;max-width:calc(25% - .8rem)}}#experience .small{font-size:1.4rem}#experience .content{border-radius:4px;gap:2.4rem;padding:2.4rem 2.4rem 3.2rem}#experience .job{display:flex;gap:3.2rem;width:100%}#experience .job .company{align-items:flex-start;display:flex;flex:1 1;flex-direction:column}#experience .job .company .location{margin-top:.4rem}#experience .job .positions{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:1.6rem}#experience .job .positions .position{display:flex;flex-direction:column}#experience .job .positions .position .title{font-weight:500;margin-bottom:.4rem}.about .section .image-wrapper{margin-bottom:3.2rem}.about .section.contact a{margin-bottom:2.4rem}.about .section#colophon li{margin-bottom:1.6rem}@media screen and (min-width:512px){.about .section .image-wrapper{margin-bottom:3.6rem}}@media screen and (min-width:768px){.about .section .image-wrapper{margin-bottom:4rem}}.firebase-emulator-warning{display:none}*{box-sizing:border-box}html{display:flex;flex-direction:column;font-size:62.5%;height:100%;overflow-y:scroll;transition:background-color .15s ease-out}body{font:normal normal normal 1.6rem/1.5 DM Sans,sans-serif;margin:0}#app,body{display:flex;flex:1 1}h1{font-size:2.6rem;line-height:normal;margin:2.4rem 0;transition:all .15s ease-out}h1:before{margin-top:-.7592rem}h1:after,h1:before{content:"";display:block}h1:after{margin-top:-.806rem}h1.display{font-size:3rem;line-height:1.4}h1.display:after,h1.display:before{content:"";display:block;margin-top:-1.05rem}h2{font-size:2rem;line-height:normal;margin:2rem 0;transition:all .15s ease-out}h2:before{margin-top:-.584rem}h2:after,h2:before{content:"";display:block}h2:after{margin-top:-.62rem}h2.small-caps{font-size:1.4rem;letter-spacing:2px;line-height:normal;margin:0;text-transform:uppercase}h2.small-caps:before{content:"";display:block;margin-top:-.4088rem}h2.small-caps:after{content:"";display:block;margin-top:-.434rem}h3{font-size:1.6rem;line-height:normal;margin:1.6rem 0;transition:all .15s ease-out}h3:before{margin-top:-.4672rem}h3:after,h3:before{content:"";display:block}h3:after{margin-top:-.496rem}code{border-radius:4px;font-family:DM Mono,monospace;font-size:1.2rem;padding:.2rem .4rem}.App{display:flex;flex-direction:column;margin:0 auto;width:100%}.App main{display:flex;flex:1 1;justify-content:center;margin:0 3.2rem;transition:margin .3s ease-out}.App .page{display:flex;flex:1 1;flex-direction:column;margin-top:8rem;max-width:1024px}.btn{align-items:center;background-color:#0000;border:0;border-radius:4px;display:flex;font-family:DM Sans,sans-serif;font-size:1.6rem;font-weight:500;height:4.8rem;justify-content:center}.btn.primary{font-weight:700;padding:0 2.4rem}.btn:hover{cursor:pointer}@media screen and (min-width:512px){h1{font-size:3rem;line-height:normal;margin:2.8rem 0}h1:before{margin-top:-.876rem}h1:after,h1:before{content:"";display:block}h1:after{margin-top:-.93rem}h1.display{font-size:3.2rem;line-height:1.4}h1.display:after,h1.display:before{content:"";display:block;margin-top:-1.12rem}h2{font-size:2rem;line-height:normal;margin:2rem 0}h2:before{margin-top:-.584rem}h2:after,h2:before{content:"";display:block}h2:after{margin-top:-.62rem}h3{font-size:1.8rem;line-height:normal;margin:1.8rem 0}h3:before{margin-top:-.5256rem}h3:after,h3:before{content:"";display:block}h3:after{margin-top:-.558rem}.App main{margin:0 4.8rem}}@media screen and (min-width:768px){h1{font-size:3.2rem;line-height:normal;margin:3rem 0}h1:before{margin-top:-.9344rem}h1:after,h1:before{content:"";display:block}h1:after{margin-top:-.992rem}h1.display{font-size:3.6rem;line-height:normal}h1.display:before{content:"";display:block;margin-top:-1.0512rem}h1.display:after{content:"";display:block;margin-top:-1.116rem}h2{font-size:2rem;line-height:normal;margin:2.4rem 0}h2:before{margin-top:-.584rem}h2:after,h2:before{content:"";display:block}h2:after{margin-top:-.62rem}h2.small-caps{font-size:1.6rem;line-height:normal}h2.small-caps:before{content:"";display:block;margin-top:-.4672rem}h2.small-caps:after{content:"";display:block;margin-top:-.496rem}h3{font-size:2rem;line-height:normal;margin:2rem 0}h3:before{margin-top:-.584rem}h3:after,h3:before{content:"";display:block}h3:after{margin-top:-.62rem}.App main{margin:0 6.4rem}}@media screen and (min-width:1024px){h1{font-size:4rem;line-height:normal;margin:3.2rem 0}h1:before{margin-top:-1.168rem}h1:after,h1:before{content:"";display:block}h1:after{margin-top:-1.24rem}h1.display{font-size:4rem;line-height:normal}h1.display:before{content:"";display:block;margin-top:-1.168rem}h1.display:after{content:"";display:block;margin-top:-1.24rem}.App main{margin:0 8rem}}.dark{background-color:#131d26;color:#fff;scrollbar-color:#b7bcc1 #131d26}.dark.no-scroll{scrollbar-color:#0b1116cc #0b1116cc}.dark.no-scroll::-webkit-scrollbar{background-color:#0b1116cc}.dark::-webkit-scrollbar-thumb{background-color:#b7bcc1}.dark::-webkit-scrollbar{background-color:#131d26}.dark ::selection{background-color:#cbd0d4;color:#131d26}.dark .react-tooltip{background-color:#232c35;color:#fff}.dark h2.small-caps{color:#a2a8ae}.dark a:link,.dark a:visited{color:#fff}.dark a:hover{text-decoration-color:#5c66c0}.dark .btn{background-color:#0000;color:#fff;position:relative;text-decoration-color:#0000;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.dark .btn:before{border-radius:inherit;box-shadow:inset 0 0 0 0 #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .btn:focus-visible{outline:none}.dark .btn:focus-visible:before{box-shadow:inset 0 0 0 2px #e1e4e8;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.dark .btn:hover{background-color:#17202a;text-decoration-color:#5c66c0}.dark .btn.primary{background-color:#3e43aa;color:#fff;position:relative}.dark .btn.primary:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .btn.primary:focus-visible{outline:none}.dark .btn.primary:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .btn.primary:hover{background-color:#2f319f;text-decoration:none}.dark .btn.secondary{box-shadow:inset 0 0 0 2px #3e43aa;position:relative}.dark .btn.secondary:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .btn.secondary:focus-visible{outline:none}.dark .btn.secondary:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .btn.secondary:hover{background-color:#3e43aa;text-decoration:none}.dark .btn.nav-btn:not(.auth-btn){-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.dark .btn.nav-btn:not(.auth-btn),.dark .btn.nav-btn:not(.auth-btn):hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .btn.nav-btn:not(.auth-btn):hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.dark .btn.nav-btn:not(.auth-btn):hover:active{text-underline-offset:5px}.dark .btn.nav-btn:not(.name).active{-webkit-text-decoration:solid underline 2px;text-decoration:solid underline 2px;text-decoration-color:#5c66c0;text-underline-offset:5px}.dark .btn svg path{fill:#fff}.dark .divider{background-color:#1f2831}.dark .hero .hero-text-container .hero-tags{color:#a2a8ae}.dark .hero .hero-text-container .hero-tags svg path{fill:#444c55}.dark .hero .hero-text-container .hero-tags a{position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.dark .hero .hero-text-container .hero-tags a,.dark .hero .hero-text-container .hero-tags a:hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .hero .hero-text-container .hero-tags a:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.dark .hero .hero-text-container .hero-tags a:hover:active{text-underline-offset:5px}.dark .hero .hero-text-container .hero-tags a:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .hero .hero-text-container .hero-tags a:focus-visible{outline:none}.dark .hero .hero-text-container .hero-tags a:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .hero .hero-text-container .hero-tags a svg path{fill:#a2a8ae;transition-duration:.15s;transition-property:fill;transition-timing-function:ease-out}.dark .hero .hero-text-container .hero-tags a:hover{color:#fff}.dark .hero .hero-text-container .hero-tags a:hover svg.chevron-right path{fill:#fff}.dark .hero .hero-text-container p{color:#a2a8ae}.dark .menu:not(.fixed){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#17202af5;border:1px solid #273039}.dark .menu:not(.fixed) a:hover,.dark .menu:not(.fixed) button:hover{background-color:#1b242dcc}.dark .sub-nav{background-color:#17202a;border-color:#273039;border-style:solid}.dark .sub-nav.inline:not(.pinned){border-width:1px}.dark .sub-nav.inline.st-active{border-color:#1f2831}.dark .sub-nav.inline button.contents:hover span{color:#cbd0d4}.dark .sub-nav.inline button.contents:hover svg{fill:#cbd0d4}.dark .sub-nav button{background-color:#0000;border:0;color:#fff}.dark .sub-nav button:not(.static):hover{background-color:#1b242d}.dark .sub-nav button.contents svg,.dark .sub-nav button.pin .thumbtack{fill:#a2a8ae}.dark .sub-nav button.pin .thumbtack.active{fill:#7c8ad5}.dark .sub-nav span{color:#a2a8ae}.dark .sub-nav button.link{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.dark .sub-nav button.link,.dark .sub-nav button.link:hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .sub-nav button.link:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.dark .sub-nav button.link:hover:active{text-underline-offset:5px}.dark .sub-nav button.link:hover{background-color:#1b242d}.dark .sub-nav button.link:before{background-color:#0000}.dark .sub-nav button.link.active:before{background-color:#7c8ad5}.dark .sub-nav button.link.go-to-top svg{fill:#fff}.dark header.site-header{background-color:#131d26;border-bottom:1px solid #1f2831}.dark header.site-header.floating{background-color:none;border:0}.dark header.site-header.floating nav{border:1px solid #273039}.dark header.site-header nav{background-color:#131d26}.dark header.site-header nav.menu-nav .icon-btn{border:1px solid #273039;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.dark header.site-header nav.menu-nav .icon-btn:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark header.site-header nav.menu-nav .icon-btn:focus-visible{outline:none}.dark header.site-header nav.menu-nav .icon-btn:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark header.site-header nav.menu-nav .icon-btn.close-btn,.dark header.site-header nav.menu-nav .icon-btn.close-btn:hover,.dark header.site-header nav.menu-nav .icon-btn.menu-btn:hover{background-color:#17202a}.dark header.site-header nav.menu-btn{position:relative}.dark header.site-header nav.menu-btn:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark header.site-header nav.menu-btn:focus-visible{outline:none}.dark header.site-header nav.menu-btn:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .text-link{color:#fff;position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .text-link:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .text-link:focus-visible{outline:none}.dark .text-link:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .text-link:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .text-link:hover:active{text-underline-offset:5px}.dark .text-link.underline{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .text-link.underline:hover{cursor:pointer;text-underline-offset:5px}.dark .text-link.underline:focus{text-underline-offset:3px}.dark .text-link.underline:active{text-underline-offset:5px}.dark .text-link svg path{fill:#fff}.dark .external-link{position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .external-link:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .external-link:focus-visible{outline:none}.dark .external-link:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .external-link:hover{cursor:pointer;text-underline-offset:5px}.dark .external-link:focus{text-underline-offset:3px}.dark .external-link:active{text-underline-offset:5px}.dark .external-link svg path{fill:#a2a8ae}.dark .about #experience .small{color:#a2a8ae}.dark .about #experience .content{background-color:#17202a;border:1px solid #1f2831}.dark .about ul li a.text-link{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .about ul li a.text-link:hover{cursor:pointer;text-underline-offset:5px}.dark .about ul li a.text-link:focus{text-underline-offset:3px}.dark .about ul li a.text-link:active{text-underline-offset:5px}.dark .colors .section .color-container{background-color:#17202a;box-shadow:inset 0 0 0 1px #273039}.dark .colors .color-row .color-name{color:#fff}.dark .colors .color-row.invert-dark .color-name,.dark .colors .color-row.invert-light .color-name{color:#131d26}.dark .card-group.more-projects{border-top:1px solid #273039}.dark .card-group .filters .filter-tag{background-color:#0000;border:1px solid #273039;color:#fff;position:relative;transition-duration:.15s;transition-property:background-color,border-color,color;transition-timing-function:ease-out}.dark .card-group .filters .filter-tag:before{border-radius:2rem;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .card-group .filters .filter-tag:focus-visible{outline:none}.dark .card-group .filters .filter-tag:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .card-group .filters .filter-tag:hover{background-color:#1b242d;border-color:#a2a8ae}.dark .card-group .filters .filter-tag.active{background-color:#e6eaed;border-color:#e6eaed;color:#131d26}.dark .card-group .overflow-section .overflow-toggle{align-items:center;border-radius:2.4rem;display:flex;min-height:4.8rem}.dark .card-group .overflow-section .overflow-toggle:hover{background-color:#1b242d;cursor:pointer}.dark .card-group .overflow-section .overflow-toggle:hover .text-container{background-color:#1b242d}.dark .card-group .overflow-section .overflow-toggle .text-container{background-color:#131d26;padding:0 1.6rem;z-index:2}.dark .card-group .overflow-section .overflow-toggle .text-container svg path{fill:#fff}.dark .card-group .overflow-section .overflow-toggle>div.line{background-color:#273039}.dark .card{background-color:#17202a;position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000}.dark .card:before{box-shadow:inset 0 0 0 0 #0000;content:"";position:absolute;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out}.dark .card:focus-visible{outline:none}.dark .card:focus-visible:before{box-shadow:inset 0 0 0 2px #e1e4e8;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.dark .card .card-name{-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.dark .card .card-name,.dark .card:hover .card-name{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .card:hover .card-name{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.dark .card:hover:active .card-name{text-underline-offset:5px}.dark .card:hover:not(:focus-visible):before{box-shadow:inset 0 0 0 1px #a2a8ae}.dark .card:before{border-radius:4px;box-shadow:inset 0 0 0 1px #273039;height:100%;left:0;top:0;width:100%}.dark .card .card-text .tag.tab{background-color:#273039;border:1px solid #273039}.dark .card .card-text .card-description{color:#a2a8ae}.dark .card .image-wrapper.locked{background-color:#17202a;border:1px solid #273039}.dark .card .image-wrapper.locked svg path{fill:#686f77}.dark .image-wrapper,.dark .video-wrapper{background-color:#232c35;border:1px solid #273039}.dark .thumbnail .thumbnail-inner{color:#fff}.dark .thumbnail .thumbnail-inner .thumbnail-text .thumbnail-details{color:#b7bcc1;font-size:1.4rem;margin-top:4px}.dark .bullet-point{color:#7b8289;margin:0 4px}.dark .page-header .text-container .return-link{color:#a2a8ae}.dark .page-header .text-container .return-link svg path{fill:#a2a8ae}.dark .page-header .text-container .subtitle{color:#a2a8ae}.dark .about-brief .text-link{box-shadow:inset 0 0 0 1px #273039}.dark .project-details>header{background-color:#1b242d;box-shadow:0 0 0 100vmax #1b242d;clip-path:inset(-80px -100vmax 0)}.dark .icon-category .icon-group .icon-container{box-shadow:inset 0 0 0 1px #273039;transition-duration:.15s;transition-property:box-shadow;transition-timing-function:ease-out}.dark .icon-category .icon-group .icon-container:hover{box-shadow:inset 0 0 0 1px #a2a8ae}.dark .icon-category .icon-group .icon-container svg *{fill:#fff}.dark .icon-category .icon-group .icon-container svg.spinner-circle path:first-child{fill:#565e66}.dark .icon-category .icon-group .icon-container span{color:#a2a8ae}.dark .deploy{box-shadow:inset 0 0 0 1px #273039}.dark .deploy>header{color:#fff}.dark .deploy>header .label-counts>div{background-color:#17202a}.dark .deploy>header .date-container span{color:#a2a8ae}.dark .deploy>header button{position:relative}.dark .deploy>header button:before{border-radius:4px;box-shadow:inset 0 0 0 0 #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .deploy>header button:focus-visible{outline:none}.dark .deploy>header button:focus-visible:before{box-shadow:inset 0 0 0 2px #e1e4e8;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.dark .deploy>header button:hover{background-color:#1b242d}.dark .deploy>header button svg path{fill:#fff}.dark .branch .connector-container .connector{border-left:2px dotted #444c55}.dark .branch .connector-container svg>*{fill:#444c55}.dark .branch header .header-text-container .issue-details .label{background-color:#17202a;box-shadow:inset 0 0 0 1px #273039}.dark .branch .header-text-container .header-group>svg path{fill:#273039}.dark code{background-color:#1b242d;box-shadow:inset 0 0 0 1px #232c35}.dark footer{color:#a2a8ae}.dark .pdf-embed-container{background-color:#232c35;border:1px solid #273039}.dark .pdf-embed-container .caption{color:#a2a8ae}.dark .pdf-embed-container .caption a{color:#fff;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.dark .pdf-embed-container .caption a:hover{cursor:pointer;text-underline-offset:5px}.dark .pdf-embed-container .caption a:focus{text-underline-offset:3px}.dark .pdf-embed-container .caption a:active{text-underline-offset:5px}.dark .modal{background-color:#0b1116cc}.dark .modal .container{background-color:#131d26}.dark .modal .container header .close-button{background-color:#0000;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.dark .modal .container header .close-button:before{border-radius:100%;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .modal .container header .close-button:focus-visible{outline:none}.dark .modal .container header .close-button:focus-visible:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.dark .modal .container header .close-button.loading{position:relative}.dark .modal .container header .close-button.loading:before{border-radius:100%;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.dark .modal .container header .close-button.loading:focus{outline:none}.dark .modal .container header .close-button.loading:focus:before{box-shadow:0 0 0 2px #e1e4e8;height:calc(100% + 12px);left:-6px;top:-6px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 12px)}.dark .modal .container header .close-button:hover{background-color:#1b242d}.dark .modal .container header .close-button svg path{fill:#fff}.dark .modal .container header .close-button.loading{background:conic-gradient(#5c66c0 0,#1b242d 0deg);background:conic-gradient(#5c66c0 var(--percent),#1b242d 0deg)}.dark .modal .container header .close-button.loading:hover:after{opacity:.8}.dark .modal .container header .close-button.loading:after{background-color:#131d26}.dark .modal .container div .success .icon-text{border-bottom:1px solid #1f2831;margin-bottom:.8rem;padding-bottom:.8rem}.dark .modal .container div .success .icon-text svg path{fill:#a2a8ae}.dark .modal .container div .success .subtext{color:#a2a8ae}.dark .modal .container div form{border-bottom:1px solid #1f2831;margin:2.4rem 0;padding-bottom:2.4rem}.dark .modal .container div form input{background-color:#131d26;border:1px solid #a2a8ae;color:#fff;outline:2px solid #0000;outline-offset:0;transition-duration:.05s;transition-property:outline,outline-offset;transition-timing-function:ease-out}.dark .modal .container div form input::placeholder{color:#a2a8ae;opacity:1}.dark .modal .container div form input:focus{outline:2px solid #e1e4e8;outline-offset:4px;transition-duration:.15s;transition-property:outline,outline-offset;transition-timing-function:ease-out}.dark .modal .container div form .error-container .error{color:#da5b5d}.dark .modal .container div form .error-container svg path{fill:#da5b5d}.light{background-color:#f1f4f7;color:#232c35;scrollbar-color:#444c55 #f1f4f7}.light.no-scroll{scrollbar-color:#0b1116cc #0b1116cc}.light.no-scroll::-webkit-scrollbar{background-color:#0b1116cc}.light::-webkit-scrollbar-thumb{background-color:#444c55}.light::-webkit-scrollbar{background-color:#f1f4f7}.light ::selection{background-color:#333c45;color:#f1f4f7}.light .react-tooltip{background-color:#e1e4e8;color:#232c35}.light h2.small-caps{color:#565e66}.light a:link,.light a:visited{color:#232c35}.light a:hover{text-decoration-color:#5c66c0}.light .btn{background-color:#0000;color:#232c35;position:relative;text-decoration-color:#0000;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.light .btn:before{border-radius:inherit;box-shadow:inset 0 0 0 0 #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .btn:focus-visible{outline:none}.light .btn:focus-visible:before{box-shadow:inset 0 0 0 2px #232c35;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.light .btn:hover{background-color:#f1f4f7;text-decoration-color:#5c66c0}.light .btn.primary{background-color:#c6d4f9;color:#232c35;position:relative}.light .btn.primary:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .btn.primary:focus-visible{outline:none}.light .btn.primary:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .btn.primary:hover{background-color:#dae6ff;text-decoration:none}.light .btn.secondary{box-shadow:inset 0 0 0 2px #c6d4f9;position:relative}.light .btn.secondary:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .btn.secondary:focus-visible{outline:none}.light .btn.secondary:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .btn.secondary:hover{background-color:#c6d4f9;text-decoration:none}.light .btn.nav-btn:not(.auth-btn){-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.light .btn.nav-btn:not(.auth-btn),.light .btn.nav-btn:not(.auth-btn):hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .btn.nav-btn:not(.auth-btn):hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.light .btn.nav-btn:not(.auth-btn):hover:active{text-underline-offset:5px}.light .btn.nav-btn:not(.name).active{-webkit-text-decoration:solid underline 2px;text-decoration:solid underline 2px;text-decoration-color:#5c66c0;text-underline-offset:5px}.light .btn svg path{fill:#232c35}.light .divider{background-color:#e6eaed}.light .hero .hero-text-container .hero-tags{color:#565e66}.light .hero .hero-text-container .hero-tags svg path{fill:#b7bcc1}.light .hero .hero-text-container .hero-tags a{position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.light .hero .hero-text-container .hero-tags a,.light .hero .hero-text-container .hero-tags a:hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .hero .hero-text-container .hero-tags a:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.light .hero .hero-text-container .hero-tags a:hover:active{text-underline-offset:5px}.light .hero .hero-text-container .hero-tags a:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .hero .hero-text-container .hero-tags a:focus-visible{outline:none}.light .hero .hero-text-container .hero-tags a:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .hero .hero-text-container .hero-tags a svg path{fill:#565e66;transition-duration:.15s;transition-property:fill;transition-timing-function:ease-out}.light .hero .hero-text-container .hero-tags a:hover{color:#232c35}.light .hero .hero-text-container .hero-tags a:hover svg.chevron-right path{fill:#232c35}.light .hero .hero-text-container p{color:#565e66}.light .menu:not(.fixed){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#f1f4f7f5;border:1px solid #dbdfe3}.light .menu:not(.fixed) a:hover,.light .menu:not(.fixed) button:hover{background-color:#ebeff2cc}.light .sub-nav{background-color:#f1f4f7;border-color:#dbdfe3;border-style:solid}.light .sub-nav.inline:not(.pinned){border-width:1px}.light .sub-nav.inline.st-active{border-color:#e6eaed}.light .sub-nav.inline button.contents:hover span{color:#333c45}.light .sub-nav.inline button.contents:hover svg{fill:#333c45}.light .sub-nav button{background-color:#0000;border:0;color:#232c35}.light .sub-nav button:not(.static):hover{background-color:#ebeff2}.light .sub-nav button.contents svg,.light .sub-nav button.pin .thumbtack{fill:#565e66}.light .sub-nav button.pin .thumbtack.active{fill:#7c8ad5}.light .sub-nav span{color:#565e66}.light .sub-nav button.link{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.light .sub-nav button.link,.light .sub-nav button.link:hover{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .sub-nav button.link:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.light .sub-nav button.link:hover:active{text-underline-offset:5px}.light .sub-nav button.link:hover{background-color:#ebeff2}.light .sub-nav button.link:before{background-color:#0000}.light .sub-nav button.link.active:before{background-color:#7c8ad5}.light .sub-nav button.link.go-to-top svg{fill:#232c35}.light header.site-header{background-color:#f1f4f7;border-bottom:1px solid #e6eaed}.light header.site-header.floating{background-color:none;border:0}.light header.site-header.floating nav{border:1px solid #dbdfe3}.light header.site-header nav{background-color:#f1f4f7}.light header.site-header nav.menu-nav .icon-btn{border:1px solid #dbdfe3;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.light header.site-header nav.menu-nav .icon-btn:before{border-radius:10px;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light header.site-header nav.menu-nav .icon-btn:focus-visible{outline:none}.light header.site-header nav.menu-nav .icon-btn:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light header.site-header nav.menu-nav .icon-btn.close-btn,.light header.site-header nav.menu-nav .icon-btn.close-btn:hover,.light header.site-header nav.menu-nav .icon-btn.menu-btn:hover{background-color:#f1f4f7}.light header.site-header nav.menu-btn{position:relative}.light header.site-header nav.menu-btn:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light header.site-header nav.menu-btn:focus-visible{outline:none}.light header.site-header nav.menu-btn:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .text-link{color:#232c35;position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .text-link:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .text-link:focus-visible{outline:none}.light .text-link:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .text-link:hover{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .text-link:hover:active{text-underline-offset:5px}.light .text-link.underline{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .text-link.underline:hover{cursor:pointer;text-underline-offset:5px}.light .text-link.underline:focus{text-underline-offset:3px}.light .text-link.underline:active{text-underline-offset:5px}.light .text-link svg path{fill:#232c35}.light .external-link{position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .external-link:before{border-radius:inherit;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .external-link:focus-visible{outline:none}.light .external-link:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .external-link:hover{cursor:pointer;text-underline-offset:5px}.light .external-link:focus{text-underline-offset:3px}.light .external-link:active{text-underline-offset:5px}.light .external-link svg path{fill:#565e66}.light .about #experience .small{color:#565e66}.light .about #experience .content{background-color:#f1f4f7;border:1px solid #e6eaed}.light .about ul li a.text-link{-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .about ul li a.text-link:hover{cursor:pointer;text-underline-offset:5px}.light .about ul li a.text-link:focus{text-underline-offset:3px}.light .about ul li a.text-link:active{text-underline-offset:5px}.light .colors .section .color-container{background-color:#f1f4f7;box-shadow:inset 0 0 0 1px #dbdfe3}.light .colors .color-row .color-name{color:#232c35}.light .colors .color-row.invert-dark .color-name,.light .colors .color-row.invert-light .color-name{color:#f1f4f7}.light .card-group.more-projects{border-top:1px solid #dbdfe3}.light .card-group .filters .filter-tag{background-color:#0000;border:1px solid #dbdfe3;color:#232c35;position:relative;transition-duration:.15s;transition-property:background-color,border-color,color;transition-timing-function:ease-out}.light .card-group .filters .filter-tag:before{border-radius:2rem;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .card-group .filters .filter-tag:focus-visible{outline:none}.light .card-group .filters .filter-tag:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .card-group .filters .filter-tag:hover{background-color:#ebeff2;border-color:#565e66}.light .card-group .filters .filter-tag.active{background-color:#1f2831;border-color:#1f2831;color:#f1f4f7}.light .card-group .overflow-section .overflow-toggle{align-items:center;border-radius:2.4rem;display:flex;min-height:4.8rem}.light .card-group .overflow-section .overflow-toggle:hover{background-color:#ebeff2;cursor:pointer}.light .card-group .overflow-section .overflow-toggle:hover .text-container{background-color:#ebeff2}.light .card-group .overflow-section .overflow-toggle .text-container{background-color:#f1f4f7;padding:0 1.6rem;z-index:2}.light .card-group .overflow-section .overflow-toggle .text-container svg path{fill:#232c35}.light .card-group .overflow-section .overflow-toggle>div.line{background-color:#dbdfe3}.light .card{background-color:#f1f4f7;position:relative;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000}.light .card:before{box-shadow:inset 0 0 0 0 #0000;content:"";position:absolute;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out}.light .card:focus-visible{outline:none}.light .card:focus-visible:before{box-shadow:inset 0 0 0 2px #232c35;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.light .card .card-name{-webkit-text-decoration:solid underline 0 #0000;text-decoration:solid underline 0 #0000;text-underline-offset:0}.light .card .card-name,.light .card:hover .card-name{transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .card:hover .card-name{-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px}.light .card:hover:active .card-name{text-underline-offset:5px}.light .card:hover:not(:focus-visible):before{box-shadow:inset 0 0 0 1px #565e66}.light .card:before{border-radius:4px;box-shadow:inset 0 0 0 1px #dbdfe3;height:100%;left:0;top:0;width:100%}.light .card .card-text .tag.tab{background-color:#dbdfe3;border:1px solid #dbdfe3}.light .card .card-text .card-description{color:#565e66}.light .card .image-wrapper.locked{background-color:#f1f4f7;border:1px solid #dbdfe3}.light .card .image-wrapper.locked svg path{fill:#8e959b}.light .image-wrapper,.light .video-wrapper{background-color:#e1e4e8;border:1px solid #dbdfe3}.light .thumbnail .thumbnail-inner{color:#232c35}.light .thumbnail .thumbnail-inner .thumbnail-text .thumbnail-details{color:#444c55;font-size:1.4rem;margin-top:4px}.light .bullet-point{color:#7b8289;margin:0 4px}.light .page-header .text-container .return-link{color:#565e66}.light .page-header .text-container .return-link svg path{fill:#565e66}.light .page-header .text-container .subtitle{color:#565e66}.light .about-brief .text-link{box-shadow:inset 0 0 0 1px #dbdfe3}.light .project-details>header{background-color:#ebeff2;box-shadow:0 0 0 100vmax #ebeff2;clip-path:inset(-80px -100vmax 0)}.light .icon-category .icon-group .icon-container{box-shadow:inset 0 0 0 1px #dbdfe3;transition-duration:.15s;transition-property:box-shadow;transition-timing-function:ease-out}.light .icon-category .icon-group .icon-container:hover{box-shadow:inset 0 0 0 1px #565e66}.light .icon-category .icon-group .icon-container svg *{fill:#232c35}.light .icon-category .icon-group .icon-container svg.spinner-circle path:first-child{fill:#a2a8ae}.light .icon-category .icon-group .icon-container span{color:#565e66}.light .deploy{box-shadow:inset 0 0 0 1px #dbdfe3}.light .deploy>header{color:#232c35}.light .deploy>header .label-counts>div{background-color:#f1f4f7}.light .deploy>header .date-container span{color:#565e66}.light .deploy>header button{position:relative}.light .deploy>header button:before{border-radius:4px;box-shadow:inset 0 0 0 0 #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .deploy>header button:focus-visible{outline:none}.light .deploy>header button:focus-visible:before{box-shadow:inset 0 0 0 2px #232c35;height:calc(100% - 8px);left:4px;top:4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% - 8px)}.light .deploy>header button:hover{background-color:#ebeff2}.light .deploy>header button svg path{fill:#232c35}.light .branch .connector-container .connector{border-left:2px dotted #b7bcc1}.light .branch .connector-container svg>*{fill:#b7bcc1}.light .branch header .header-text-container .issue-details .label{background-color:#f1f4f7;box-shadow:inset 0 0 0 1px #dbdfe3}.light .branch .header-text-container .header-group>svg path{fill:#dbdfe3}.light code{background-color:#ebeff2;box-shadow:inset 0 0 0 1px #e1e4e8}.light footer{color:#565e66}.light .pdf-embed-container{background-color:#e1e4e8;border:1px solid #dbdfe3}.light .pdf-embed-container .caption{color:#565e66}.light .pdf-embed-container .caption a{color:#232c35;-webkit-text-decoration:solid none 0 #0000;text-decoration:solid none 0 #0000;-webkit-text-decoration:solid underline 1px #5c66c0;text-decoration:solid underline 1px #5c66c0;text-underline-offset:3px;transition-duration:.15s;transition-property:text-underline-offset,-webkit-text-decoration;transition-property:text-decoration,text-underline-offset;transition-property:text-decoration,text-underline-offset,-webkit-text-decoration;transition-timing-function:ease-out}.light .pdf-embed-container .caption a:hover{cursor:pointer;text-underline-offset:5px}.light .pdf-embed-container .caption a:focus{text-underline-offset:3px}.light .pdf-embed-container .caption a:active{text-underline-offset:5px}.light .modal{background-color:#0b1116cc}.light .modal .container{background-color:#f1f4f7}.light .modal .container header .close-button{background-color:#0000;position:relative;transition-duration:.15s;transition-property:background-color;transition-timing-function:ease-out}.light .modal .container header .close-button:before{border-radius:100%;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .modal .container header .close-button:focus-visible{outline:none}.light .modal .container header .close-button:focus-visible:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 8px);left:-4px;top:-4px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 8px)}.light .modal .container header .close-button.loading{position:relative}.light .modal .container header .close-button.loading:before{border-radius:100%;box-shadow:0 0 0 2px #0000;content:"";height:100%;left:0;position:absolute;top:0;transition-duration:.05s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:100%}.light .modal .container header .close-button.loading:focus{outline:none}.light .modal .container header .close-button.loading:focus:before{box-shadow:0 0 0 2px #232c35;height:calc(100% + 12px);left:-6px;top:-6px;transition-duration:.15s;transition-property:width,height,left,top,box-shadow;transition-timing-function:ease-out;width:calc(100% + 12px)}.light .modal .container header .close-button:hover{background-color:#ebeff2}.light .modal .container header .close-button svg path{fill:#232c35}.light .modal .container header .close-button.loading{background:conic-gradient(#5c66c0 0,#ebeff2 0deg);background:conic-gradient(#5c66c0 var(--percent),#ebeff2 0deg)}.light .modal .container header .close-button.loading:hover:after{opacity:.8}:root{--percent:0%}.light .modal .container header .close-button.loading:after{background-color:#f1f4f7}.light .modal .container div .success .icon-text{border-bottom:1px solid #e6eaed;margin-bottom:.8rem;padding-bottom:.8rem}.light .modal .container div .success .icon-text svg path{fill:#565e66}.light .modal .container div .success .subtext{color:#565e66}.light .modal .container div form{border-bottom:1px solid #e6eaed;margin:2.4rem 0;padding-bottom:2.4rem}.light .modal .container div form input{background-color:#f1f4f7;border:1px solid #565e66;color:#232c35;outline:2px solid #0000;outline-offset:0;transition-duration:.05s;transition-property:outline,outline-offset;transition-timing-function:ease-out}.light .modal .container div form input::placeholder{color:#565e66;opacity:1}.light .modal .container div form input:focus{outline:2px solid #232c35;outline-offset:4px;transition-duration:.15s;transition-property:outline,outline-offset;transition-timing-function:ease-out}.light .modal .container div form .error-container .error{color:#c82a3f}.light .modal .container div form .error-container svg path{fill:#c82a3f}
/*# sourceMappingURL=main.8ecc3a13.css.map*/