body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff}body,p{margin:0;padding:0}p{font-size:var(--p-text-size);line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit}.subtle-text{color:var(--subtle-text-color);font-size:var(--h2-text-size)}.divider{background-color:var(--border-color)}*{--border-color:#b9b9b9;--subtle-text-color:#87867f;--code-text-color:#74736e;--black-color:#1f1e21;--cream-color:#f7f1ea;--gray-color:#f5f5f5;--link-color:#006ed4;--red-color:#f43407;--main-body-color:#fff;--border-radius:1.5rem;--large-border-radius:50px;--button-border-radius:0.5rem;--h1-text-size:1.15em;--h2-text-size:1.05rem;--p-text-size:1rem;--small-text-size:0.95rem;--gilda-font-family:"Gilda Display",serif;color:var(--black-color);font-family:DM Sans,sans-serif;font-size:400;margin:0}body{background-color:var(--main-body-color);overscroll-behavior-y:none}.App,body{min-height:100vh}.App{display:flex;flex-direction:column;height:100%;width:100%}code{background-color:rgba(129,139,152,.122);border-radius:6px;font-family:DM Mono,monospace;font-size:85%;padding:.2em .4em}.main-page{flex:1 1;margin:6rem 0 0;row-gap:5.5rem}.main-page,.main-page .projects-list-container{align-items:center;display:flex;flex-direction:column}.main-page .projects-list-container{width:100%}.main-page .placeholder-separator{background-color:var(--cream-color);height:4rem;margin-top:4rem;width:100%}.main-page .placeholder-separator div{background-color:var(--main-body-color);border-radius:0 0 var(--large-border-radius) var(--large-border-radius);height:100%;width:100%}.intro{display:flex;flex-direction:column;max-width:525px;row-gap:1.5rem;scroll-margin-top:6rem;width:100%}.intro .intro-name-text{font-size:var(--h1-text-size);font-weight:500}.intro .intro-name{display:flex;flex-direction:column;row-gap:.25rem}.intro .intro-description{display:flex;flex-direction:column;row-gap:1rem}.achievements{align-items:center;display:flex;flex-direction:column;row-gap:2.5rem;width:100%}.achievements .achievements-title{font-size:var(--h1-text-size);font-weight:500;max-width:525px;width:100%}.achievements .achievement-list{column-gap:2rem;display:flex;flex-direction:row;justify-content:center;margin:0 100rem;width:100%}.achievements .achievement-item{display:flex;flex-direction:column;height:25rem;justify-content:flex-end;max-width:525px;row-gap:.5rem;width:100%}.achievements .achievement-item .achievement-item-image{background-color:var(--cream-color);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:var(--border-radius);height:100%;width:100%}.achievements .achievement-item:first-child .achievement-item-image{background-size:40%}.achievements .achievement-item:nth-child(2) .achievement-item-image{background-size:18%}.achievements .achievement-item p{color:var(--subtle-text-color);font-size:var(--small-text-size)}.divider{background-color:#e3e3e3;height:1px;width:100%}.projects{display:flex;flex-direction:column;max-width:525px;row-gap:2.5rem;width:100%}.projects .projects-title{font-size:var(--h1-text-size);font-weight:500}.projects .projects-container{display:flex;flex-direction:column;row-gap:1.25rem;width:100%}.projects .projects-container .project-card{align-items:center;cursor:pointer;display:flex;flex-direction:row;justify-content:space-between;transition:all .3s ease;width:100%}.projects .projects-container .project-card .project-card-content{display:flex;flex-direction:column;row-gap:.25rem}.projects .projects-container .project-card .arrow-icon{font-size:1.25rem}.projects .projects-container .project-card .arrow-icon svg{height:1em;transform:rotate(-45deg);transition:all .3s ease;width:1em}.projects .projects-container .project-card:hover .arrow-icon svg{transform:rotate(0deg)}.projects .projects-container .project-card-description{color:var(--subtle-text-color);font-size:var(--small-text-size)}.projects .projects-container:has(.project-card:hover) .project-card{opacity:.4}.projects .projects-container:has(.project-card:hover) .project-card:hover{opacity:1}nav{align-items:center;display:flex;justify-content:center;margin-top:3rem;width:100%}.logo-text{width:5.5rem}.gallery{align-items:center;background-color:var(--cream-color);display:flex;flex-direction:column;margin:0;padding:7rem 0 5rem;width:100%}.gallery-title{font-size:var(--h1-text-size);font-weight:500;line-height:1.2;margin:0 0 2.5rem;max-width:525px;width:100%}.gallery-grid{--gallery-grid-gap:9px;--gallery-grid-width:100%;column-count:2;column-gap:var(--gallery-grid-gap);margin-inline:auto;max-width:77.5rem;position:relative;width:var(--gallery-grid-width)}@media(min-width:768px){.gallery-grid{--gallery-grid-gap:clamp(10px,1.05vw,16px);--gallery-grid-width:min(72vw,65rem);column-count:3}}@media(min-width:1180px){.gallery-grid{--gallery-grid-gap:clamp(11px,0.8vw,18px);--gallery-grid-width:min(68vw,82.5rem);column-count:4;left:50%;margin-left:calc(var(--gallery-grid-width)/-2);max-width:none;position:relative;width:var(--gallery-grid-width)}}.gallery-actions{display:flex;justify-content:center;margin-top:6rem;width:100%}.bottom-sheet-portal{inset:0;isolation:isolate;position:fixed;z-index:4000}.bottom-sheet-backdrop{background:#05050585;border:0;cursor:pointer;inset:0;opacity:0;position:absolute}.bottom-sheet{background:var(--main-body-color);border-radius:var(--border-radius) var(--border-radius) 0 0;bottom:0;box-shadow:0 -24px 80px #0000002e;display:flex;flex-direction:column;height:97dvh;left:0;overflow:hidden;position:absolute;right:0;transform:translateY(100%)}.bottom-sheet-mobile-handle{-webkit-appearance:none;appearance:none;background:#0000;border:0;cursor:grab;left:0;position:absolute;top:0;width:100%;z-index:2}.bottom-sheet-mobile-handle:before{background:color-mix(in srgb,var(--black-color) 18%,#0000);border-radius:999px;content:"";height:.27rem;left:50%;position:absolute;top:10px;transform:translateX(-50%);width:42px}.bottom-sheet-desktop-handle{-webkit-appearance:none;appearance:none;background:#0000;border:0;cursor:grab;height:44px;left:0;position:absolute;top:0;width:100%;z-index:2}.bottom-sheet-desktop-handle:before{background:color-mix(in srgb,var(--black-color) 18%,#0000);border-radius:999px;content:"";height:4px;left:50%;position:absolute;top:10px;transform:translateX(-50%);width:42px}.bottom-sheet-scroll{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;overscroll-behavior:contain;padding:72px 24px 40px;position:relative}@media(min-width:768px){.bottom-sheet-scroll{padding-inline:clamp(24px,5vw,80px)}}.bottom-sheet-header{margin:0 auto;max-width:525px}.bottom-sheet-title{color:var(--black-color);font-size:var(--h1-text-size);font-weight:500;line-height:1.25;margin:0}.bottom-sheet-subtitle{color:var(--subtle-text-color);font-size:var(--small-text-size);line-height:1.45;margin-top:.65rem}body.bottom-sheet-open{overflow:hidden}body.bottom-sheet-open .App{transform-origin:50% 0;will-change:transform,border-radius}.button{background-color:#0000;border:1px solid var(--subtle-text-color);border-radius:var(--border-radius);color:var(--subtle-text-color);cursor:pointer;font-size:var(--small-text-size);padding:1rem 1.75rem;text-align:center;transition:all .3s ease}.button:hover:not(.hide-border){padding:1rem 2.25rem}.gallery-tile{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:var(--border-radius);break-inside:avoid;color:inherit;cursor:pointer;display:block;margin:0 0 var(--gallery-grid-gap);outline:none;overflow:visible;padding:0;page-break-inside:avoid;position:relative;text-align:left;width:100%;z-index:0}.gallery-tile[data-selected=true] .gallery-tile-shell{visibility:hidden}@media(hover:hover)and (pointer:fine){.gallery-grid:not([data-viewer-active=true]) .gallery-tile:hover .gallery-media{box-shadow:inset 0 0 0 1px #ffffff14,inset 0 1px 0 #ffffff1c,0 10px 15px #0000001a}}.gallery-tile .gallery-media,.gallery-tile .gallery-tile-shell{border-radius:inherit;display:block}.gallery-tile .gallery-media{--gallery-aspect-ratio:4/5;aspect-ratio:var(--gallery-aspect-ratio);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(145deg,#fff3,#ffffff14),#2c2c2c;box-shadow:inset 0 0 0 1px #ffffff12,inset 0 1px 0 #ffffff14;overflow:hidden;position:relative;transform:translateZ(0);transition:box-shadow .14s ease;width:100%}.gallery-tile .gallery-media img{display:block;height:100%;object-fit:cover;opacity:0;transition:opacity .1s ease;width:100%}.gallery-tile .gallery-media img.is-loaded{opacity:1}.gallery-viewer{inset:0;isolation:isolate;overflow:hidden;position:fixed;visibility:hidden;z-index:5000}.gallery-viewer[data-visible=true]{visibility:visible}body.gallery-viewer-open,body.gallery-viewer-open .bottom-sheet-scroll{overflow:hidden}.gallery-viewer-scrim{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#050505b3;border:0;cursor:pointer;inset:0;opacity:0;position:absolute}.gallery-viewer-stage{inset:0;pointer-events:none;position:absolute}.gallery-viewer-card{background:#0000;box-shadow:none;overflow:visible;pointer-events:auto;will-change:top,left,width,height,border-radius}.gallery-viewer-media{background:#2c2c2c;border-radius:inherit;height:100%;overflow:hidden;width:100%}.gallery-viewer-media img{background:#0000;display:block;height:100%;object-fit:cover;width:100%}.gallery-viewer-caption{color:#fff;left:0;pointer-events:auto;position:absolute;text-align:left;top:calc(100% + .75rem);width:100%;z-index:1}.gallery-viewer-caption-link{color:#fff;display:block;text-decoration:none}.gallery-viewer-caption-link:hover{opacity:.82}.gallery-viewer-title{color:#fff;font-size:var(--small-text-size);letter-spacing:.01em;line-height:1.35;margin:0}.gallery-viewer-description{color:#ffffffb8;font-size:var(--small-text-size);line-height:1.45;margin:.35rem 0 0}.button-list{-webkit-overflow-scrolling:touch;align-items:center;background-color:var(--gray-color);border-radius:var(--border-radius);display:inline-flex;gap:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:.5rem;position:relative;scrollbar-width:none;-webkit-user-select:none;user-select:none;width:-webkit-max-content;width:max-content}.button-list::-webkit-scrollbar{display:none}.button-list-indicator{background-color:color-mix(in srgb,var(--border-color) 30%,#0000);border-radius:calc(var(--border-radius) - .5rem);left:0;pointer-events:none;position:absolute;top:0;z-index:0}.button-list-item{background:#0000;border:none;cursor:pointer;font-family:inherit;font-size:var(--small-text-size);padding:.75rem 1.25rem;position:relative;transition:color .3s ease;white-space:nowrap;z-index:1}.button-list-item.is-highlighted{color:var(--main-body-color)}.button-list-item .button-list-label{position:relative;z-index:1}.gallery-full-list{align-items:center;display:flex;flex-direction:column;justify-content:center;position:relative;row-gap:2rem;width:100%}.gallery-full-list .gallery-grid{margin-top:2.5rem}.gallery-full-list .gallery-filters{bottom:1rem;box-sizing:border-box;display:flex;justify-content:center;padding-inline:.5rem;pointer-events:none;position:-webkit-sticky;position:sticky;transform:translateZ(0);width:100%;z-index:1}.gallery-full-list .gallery-filters .button-list{max-width:min(100%,100vw - 2rem);pointer-events:auto}@media(max-width:767px){.gallery-full-list .gallery-filters{-webkit-mask-image:linear-gradient(90deg,#0000,#000 1.25rem,#000 calc(100% - 1.25rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 1.25rem,#000 calc(100% - 1.25rem),#0000)}}footer{grid-row-gap:2rem;align-items:center;background-color:var(--cream-color);display:grid;display:flex;flex-direction:column;font-size:1rem;justify-content:center;padding:8rem 15rem 3rem;row-gap:2rem}.footer-center-email a{font-size:2.25rem;text-align:center}.footer-center-email a .bracket{color:inherit;padding:0 1rem;transition:all .3s ease}.footer-center-email a:before{content:"(";margin-right:1rem;transition:all .3s ease}.footer-center-email a:after{content:")";margin-left:1rem;transition:all .3s ease}.footer-center-email a:hover:before{margin-right:2rem}.footer-center-email a:hover:after{margin-left:2rem}.footer-center-copyright{color:var(--black-color);font-size:.8rem;text-align:center}.footer-center-copyright a{color:var(--black-color);text-decoration:underline;text-underline-offset:2px}.error{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;margin-bottom:6rem;row-gap:1rem}.error .error-text{color:var(--red-color);font-family:Caveat,cursive;font-size:25rem;font-weight:800;line-height:1.1}.error .error-message{color:var(--black-color);font-size:var(--font-size-small);margin-bottom:2rem}.project{background-color:#fff;flex:1 1;justify-content:center;margin-bottom:8rem}.project,.project .project-header{align-items:center;display:flex;flex-direction:column}.project .project-header{margin:6rem 0;padding:0 4rem;row-gap:1.75rem}.project .project-header .project-header-title-container{align-items:center;display:flex;flex-direction:column;justify-content:center;row-gap:.5rem}.project .project-header .case-study-text{color:var(--subtle-text-color);font-size:var(--small-text-size)}.project .project-header .project-title{font-size:4rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.project .project-header .project-description{align-items:flex-end;color:var(--subtle-text-color);display:flex;flex-direction:row;justify-content:space-between;max-width:700px;text-align:center}.project .project-header .project-description:before{content:"";flex:2 1}.project .project-header .button-container{margin-top:1rem}.project .project-image{background-color:"red";background-position:top;background-repeat:no-repeat;background-size:cover;border-radius:var(--border-radius);height:45rem;margin-bottom:2rem;width:65%}.project-content-container{background-color:#fff;padding:0;width:100%;z-index:1}.project-content-container .project-content-container-background{background-color:#fff;height:4rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.project-content-container .project-data{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 750px 1fr}.project-content-container .project-content-navigation{align-items:flex-end;display:flex;flex-direction:column}.project-content-container .project-content-navigation .navigation-container{display:flex;flex-direction:column;float:left;height:-webkit-min-content;height:min-content;justify-content:space-between;position:-webkit-sticky;position:sticky;row-gap:.75rem;top:calc(4rem + 5px);z-index:2}.project-content-container .project-content-navigation .add-top-position{top:10rem}.project-content-container .project-content-navigation button{background-color:#0000;border:none;color:var(--subtle-text-color);cursor:pointer;font-size:.9rem;padding:0 0 0 1rem;position:relative;text-align:left}.project-content-container .project-content-navigation button:before{background:#fff;border-radius:50%;content:"";height:.25rem;left:0;position:absolute;top:50%;transform:translateY(-50%);width:.25rem}.project-content-container .project-content-navigation .active{color:var(--black-color)}.project-content-container .project-content-navigation .active:before{background:var(--black-color)}.project-content-sections{display:flex;flex-direction:column;gap:1rem}.project-content-sections .project-content:not(:first-child) .project-content-heading{margin-top:1rem}.project-content{display:flex;flex-direction:column;row-gap:1rem;width:100%}.project-content .chart-container{padding:1rem 0}.project-content .chart-container .chart-canvas{border-radius:var(--border-radius);height:25rem}.project-content .code-content,.project-content .short-display{font-size:.975rem;margin:0 3rem}.project-content .caption{color:var(--subtle-text-color);font-size:.85rem;font-weight:500;margin-top:.5rem;text-align:center}.project-content .caption .caption-credits{color:var(--subtle-text-color);font-size:.8rem;font-weight:800}.project-content .project-dynamic-content{margin-bottom:.5rem;margin-top:.5rem}.project-content .footer-container{display:flex;flex-direction:column;gap:.5rem;margin-top:4rem;padding:0 3rem}.project-content .footer-container a,.project-content .footer-container p{font-size:.9rem}.project-content .footer-container p{color:var(--subtle-text-color)}.project-content .footer-container .footer-links{column-gap:2rem;display:flex;flex-direction:row;flex-wrap:wrap;margin-top:.5rem;row-gap:.5rem}.project-content .footer-container .footer-links a{align-items:center;display:flex;flex-direction:row;gap:.5rem}.project-content .footer-container .footer-links i{font-size:.7rem}.project-content .footer-container .footer-links a,.project-content .footer-container .footer-links i{color:var(--link-color)}.project-content .project-content-heading{display:flex;flex-direction:column;gap:.5rem}.project-content .project-content-title{font-size:1.25rem;font-weight:600}.project-content .project-content-subheading{font-size:1.05rem;font-weight:600}.project-content .project-context-small-text{display:inline-block;font-size:.9rem;font-weight:600;padding-top:.5rem}.project-content .project-content-text a{color:var(--link-color)}.project-content .project-content-text ol{padding-left:2rem}.project-content .project-content-text ol li{padding-left:.5rem}.project-content .project-content-text ol li:not(:last-child){margin-bottom:.5rem}.image-container{column-gap:2rem;display:flex;justify-content:center}.code-content{background:var(--gray-color);border-radius:var(--border-radius);padding:1.5rem}.code-content pre{color:var(--code-text-color);font-size:.9rem;white-space:pre}.benchmark-table{border-collapse:initial;border-spacing:0;color:#222;font-family:Inter,sans-serif;padding:1rem 0;table-layout:fixed;width:100%}.benchmark-table td,.benchmark-table th{border-top:.5px solid var(--border-color);font-size:.85rem;font-weight:400;text-align:center;vertical-align:middle;white-space:normal;word-break:break-word}.benchmark-table td,.benchmark-table th:not(.group-row th){padding:1rem .75rem}.benchmark-table tr td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.benchmark-table tbody th{text-align:left}.benchmark-table thead th{border-top:none}.benchmark-table .group-row th{background:#0000;border:none;color:var(--subtle-text-color);padding-bottom:.75rem}.benchmark-table thead th span{color:var(--subtle-text-color);display:block;font-weight:400;margin-top:.35rem}.benchmark-table .section td{background:var(--cream-color);color:var(--code-text-color);padding:.5rem .75rem;text-align:left}.benchmark-table small{color:var(--subtle-text-color);display:block;font-size:.85rem;margin-top:.3rem}
/*# sourceMappingURL=main.43a936d9.css.map*/