a{font-weight:400;color:var(--indigo-dark);text-decoration:inherit}a:hover{color:var(--indigo-dark)}h1{font-size:2.5em;line-height:1.1}p{font-weight:400}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:var(--indigo-dark)}}:root{font-family:Inter,system-ui,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--resume-background: #FDF7FF;--font-color: #242424;--light-grey: #FDF7FF;--indigo: #2E20CA;--indigo-dark: #2013a7}#root,html,body{margin:0;padding:0;box-sizing:border-box;width:100%;height:100%;color:var(--font-color)}button:disabled{cursor:default}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:9998}.modal-panel{position:fixed;top:50%;left:50%;opacity:0;width:100%;height:90vh;background-color:#fff;z-index:9999;border-radius:12px;box-shadow:0 10px 30px #00000040;pointer-events:none;overflow-y:scroll;transform-origin:center center}.modal-panel:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-color:red;z-index:-1;opacity:0;pointer-events:none}.modal-panel.open{pointer-events:auto}.modal-panel .modal-banner{position:relative}.modal-panel li{max-width:clamp(45em,50%,50ch)}.modal-panel .modal-banner h1{position:absolute;top:23%;bottom:50%;z-index:9999;font-size:4rem;width:100%;text-align:center;transform:translateY(-50%);color:#fff}.modal-panel .modal-banner img{display:block;width:100%;height:40vh;object-fit:cover;border-radius:8px;filter:brightness(.6)}.modal-panel .close-button{position:sticky;top:.5em;float:right;display:flex;align-items:center;justify-content:center;right:-.5rem;margin-top:-3.5em;z-index:10000;background-color:var(--indigo);width:3.5rem;height:3.5rem;transform:translate(-25%,25%)}.modal-panel .close-button:hover{transform:translate(-25%,25%) scale(1.1);transition:transform .2s ease-in-out}.modal-panel .close-button span:first-of-type,.modal-panel .close-button span:last-of-type{position:absolute;width:2rem;height:.3rem;background-color:#fff}.modal-panel .close-button span:first-of-type{transform:rotate(45deg)}.modal-panel .close-button span:last-of-type{transform:rotate(-45deg)}.modal-panel .modal-content-wrapper .modal-content{width:100%;padding:0}.modal-panel .modal-content-wrapper .modal-content .link-wrapper p{margin-bottom:0}.modal-panel .modal-content-wrapper .modal-content ul{display:flex;flex-wrap:wrap;flex-direction:column;margin:0 auto;padding:0;gap:2em;justify-content:center}.modal-panel .modal-content-wrapper .modal-content .list{gap:1em}.modal-panel .modal-content-wrapper .modal-content .list>li:not(:last-of-type) p{margin-bottom:0;margin-top:0}.modal-panel .modal-content-wrapper .modal-content .content-block:not(:has(.image-gallery)){max-width:unset;padding:.5em}.modal-panel .modal-content-wrapper .modal-content .content-block ul.image-gallery{flex-direction:row;margin:1em 0}.modal-panel .modal-content-wrapper .modal-content .content-block ul li{list-style-type:none}.modal-panel .modal-content-wrapper .modal-content .content-block ul li figure{margin:0}.modal-panel .modal-content-wrapper .modal-content .content-block ul li figure img{width:100%;margin-top:.5em;box-shadow:0 4px 6px #0000001a}.modal-panel .modal-content-wrapper .modal-content .content-block ul li figure figcaption{width:100%}.modal-panel .modal-content-wrapper .modal-content .content-block .content-block-image,.modal-panel .modal-content-wrapper .modal-content .content-block video,.modal-panel .modal-content-wrapper .modal-content .content-block img,.modal-panel .modal-content-wrapper .modal-content .content-block figcaption,.modal-panel .modal-content-wrapper .modal-content .content-block .image-wrapper{max-width:35em;width:100%}.modal-panel .modal-content-wrapper .modal-content .content-block .image-wrapper{margin:0}.modal-panel .modal-content-wrapper .modal-content .content-block h2{margin-bottom:0;margin-top:0}.modal-panel .modal-content-wrapper .modal-content .content-block p{margin-top:.5em}.modal-panel .modal-content-wrapper .modal-content .content-block .link-wrapper{margin-bottom:1em}.modal-panel .modal-content-wrapper .modal-content .content-block .link-wrapper a{display:block;text-decoration:underline;width:100%}@media only screen and (min-width: 1024px){.modal-panel{width:90%;height:90vh}.modal-panel .modal-banner h1{font-size:5rem;top:20%}.modal-panel .modal-content-wrapper .modal-content{width:100%;padding:2em 0}.modal-panel .modal-content-wrapper .modal-content .content-block:not(:has(.image-gallery)){max-width:50em;width:100%;margin:0 auto}}@media only screen and (min-width: 768px){.modal-panel{width:90%;height:90vh}.modal-panel .modal-banner h1{font-size:4rem;top:20%}}.navigation-buttons{position:fixed;z-index:9998;display:flex;gap:1em;transform-origin:center;left:50%;bottom:1em;transform:translate(-50%) translateY(0);transition:transform .4s ease,opacity .28s ease;opacity:1;pointer-events:auto}.navigation-buttons button{display:flex;justify-content:center;align-items:center;cursor:pointer;width:4em;height:4em;border-radius:50%;background-color:var(--indigo-dark);transition:background-color .2s ease-in-out,transform .2s ease-in-out}.navigation-buttons button:disabled{cursor:not-allowed;opacity:.3;background-color:var(--indigo-dark);transform:none}.navigation-buttons button:hover{background-color:var(--indigo);transform:scale(1.05)}.navigation-buttons button img{display:block;width:2.5em;height:2.5em;filter:invert(1);transform:translateY(-.15em)}.navigation-buttons button:nth-of-type(1) img,.navigation-buttons button:nth-of-type(3) img{width:2em;height:1.5em;transform:unset}.nav-large-open{transform:translate(-50%) translateY(7em)}.nav-large-closed{transform:translate(-50%) translateY(0)}.nav-mobile-closed{left:auto;bottom:auto;right:1rem;top:1rem;transform:translate(0);opacity:1;pointer-events:auto}.nav-mobile-open{left:auto;bottom:auto;right:1rem;top:1rem;transform:translate(120%,-120%);opacity:0;pointer-events:none}@font-face{font-family:Abril Fatface;src:url(/fonts/AbrilFatface-Regular.ttf) format("truetype")}@font-face{font-family:Lato;src:url(/fonts/Lato-Regular.ttf) format("truetype");font-weight:400}@font-face{font-family:Lato;src:url(/fonts/Lato-Bold.ttf) format("truetype");font-weight:700}.resume section{width:45%;min-width:20rem}p{font-family:Lato;font-weight:400}.resume{display:flex;flex-wrap:wrap;justify-content:space-evenly;width:100%;height:100%;overflow-y:scroll}.resume header{width:100%;display:flex;justify-content:flex-start;align-items:center;background-color:var(--resume-background)}.resume header>div{display:flex;align-items:center;justify-content:center;width:40%;height:100%}.resume header div img{display:block;width:20rem}.resume header>div h1{width:30rem;margin:0 auto;text-align:center;font-family:Abril Fatface}.resume .programs-and-languages{display:flex;flex-direction:column;padding:2rem}.resume .programs-and-languages p{margin-top:0}.resume .programs-and-languages>.icons{width:100%;height:auto;display:flex;flex-wrap:wrap;gap:1rem}.resume .programs-and-languages>.icons div{width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}.resume .programs-and-languages>.icons div img{width:3.5rem;height:auto;filter:grayscale(100%)}.resume .programs-and-languages>.icons div img:hover{transform:scale(1.1);transition:transform .2s ease-in-out;filter:grayscale(0%)}.resume .resume-content{display:flex;flex-wrap:wrap;justify-content:space-between;width:90%;margin:0 auto;padding-bottom:5em}.resume .resume-content section{margin-top:2rem}.work-experience,.education,.internships{flex-direction:column}.work-experience>article,.education>article,.internships>article{display:flex;flex-direction:row;align-items:center}.work-experience>article div{display:flex;flex-direction:column}.work-experience>article div h3,.work-experience>article div p,.education>article div h3,.education>article div p,.internships>article div h3,.internships>article div p{margin-top:.3rem;margin-bottom:.3rem}.work-experience>article figure,.education>article figure,.internships>article figure{display:flex;justify-content:center;width:7rem}.work-experience>article figure img,.education>article figure img{width:100%}.work-experience>article:nth-of-type(1) figure img,.work-experience>article:nth-of-type(2) figure img,.education>article:nth-of-type(1) figure img,.internships>article figure img{width:50%}.education>article:nth-of-type(3) figure img{width:70%}.skills-wrapper{display:flex;flex-wrap:wrap;gap:1rem}.skills-wrapper>figure{display:flex;align-items:center}.skills-wrapper>figure img{width:3rem}.skills-wrapper>figure:last-of-type img{width:4rem}.wrapper{width:100%;display:flex;flex-wrap:wrap;gap:2rem}@media only screen and (max-width: 1024px){.work-experience,.education,.internships{flex-direction:row;justify-content:space-between}.resume .programs-and-languages h1{margin:.25em 0 .25em .25em;font-size:clamp(2rem,5vw,2.5rem)}.resume .programs-and-languages{width:90%;padding:0;margin:0 auto}.resume .programs-and-languages p{width:85%;margin:.75em 0 .75em .75em}.resume .programs-and-languages>.icons{justify-content:flex-start;gap:.5rem;margin-bottom:3rem;width:100%;max-width:50em}.resume .programs-and-languages>.icons div img{filter:unset}.resume header{flex-direction:column;align-items:flex-start}.resume header>div{width:100%;justify-content:flex-start}.resume header>div img{width:15rem;margin:3em}.resume header>div h1{width:auto;text-align:center}.resume section{width:90%;min-width:unset}.resume-content .work-experience>article,.resume-content .education>article,.resume-content .internships>article{flex-direction:column;align-items:flex-start;width:20em;justify-content:space-between}.resume-content .work-experience>article:after,.resume-content .education>article:after,.resume-content .internships>article:after{content:"";width:100%;max-width:20em;height:2px;background-color:var(--font-color);order:2;opacity:.6;margin-top:1em}.resume-content .work-experience>article .dates,.resume-content .education>article .dates,.resume-content .internships>article .dates{display:flex;width:100%;flex-direction:row;order:1}.resume-content .work-experience>article figure,.resume-content .education>article figure,.resume-content .internships>article figure{margin:1em 0;justify-content:flex-start}.resume-content .work-experience>article .dates p:nth-of-type(1):after,.resume-content .education>article .dates p:nth-of-type(1):after,.resume-content .internships>article .dates p:nth-of-type(1):after{content:" - "}.resume-content .work-experience>article .dates p:last-of-type,.resume-content .education>article .dates p:last-of-type,.resume-content .internships>article .dates p:last-of-type{margin-left:.2em}}html,body{background-color:#fff}.slider-wrapper{display:flex;justify-content:center;flex-direction:column;align-items:center;margin:0 auto;width:90%;padding:1em}.slider-wrapper>h2,.slider-wrapper>p,.work-in-progress>h2,.work-in-progress>p{text-align:center}.slider-wrapper>h2{font-size:6em;margin:.25em 0 0}.slider-wrapper>p{width:90%}.project-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(20em,max-content));width:90%;gap:2em;margin-top:2em}.project-tiles article{display:grid;grid-template-rows:auto auto 1fr auto;width:20em;border-radius:1em;background-color:var(--light-grey);box-shadow:1px 1px 1px 1px #000}.project-tiles article:hover{transform:scale(1.02) rotate(.5deg);transition:transform .2s ease-in-out}.project-tiles article div{display:flex;flex-direction:column;justify-content:space-evenly;width:90%;height:100%;padding:0 1em}.project-tiles article div p{margin-top:0}.project-tiles article div h3{margin:.7em 0}.project-tiles article div button{width:9em;margin-bottom:1em;background-color:var(--indigo)}.project-tiles article div button:hover{background-color:var(--indigo-dark);cursor:pointer}.project-tiles article figure{margin:0;padding-bottom:1em}.project-tiles article figure img{display:block;width:100%;height:20vh;border-radius:1em 1em 0 0;object-fit:cover}.project-tiles .tags{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;height:fit-content;gap:.8em;width:90%;font-size:.75em;padding:0 0 1em}.project-tiles .tags span{width:fit-content;height:fit-content;border:1px solid #000;border-radius:.25em;padding:.2em .5em}.work-in-progress{margin-top:2em;width:90%}.work-in-progress h2{margin-top:2em}@media only screen and (max-width: 1024px){.modal-panel{height:100vh}.slider-wrapper>h2{font-size:4em;margin-top:.75em}.project-tiles,.project-tiles article{width:100%}.slider-wrapper,.work-in-progress{padding:unset;width:100%}.modal-panel .modal-content-wrapper .modal-content ul li img{width:100%}}.fullscreen-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;z-index:9000;display:flex;flex-direction:column;overflow-y:auto}.fullscreen-content{width:100%;height:100%}@font-face{font-family:Abril Fatface;src:url(/fonts/AbrilFatface-Regular.ttf) format("truetype")}@font-face{font-family:Lato;src:url(/fonts/Lato-Regular.ttf) format("truetype");font-weight:400}@font-face{font-family:Lato;src:url(/fonts/Lato-Bold.ttf) format("truetype");font-weight:700}h2,h3{font-family:Lato;font-weight:700}.intro-panel{position:fixed;top:0;left:0;width:40%;height:100%;background:var(--light-grey);z-index:1000;padding:0 1em;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Lato;overflow:hidden}.intro-panel>div{display:flex;gap:1em;width:100%;max-width:35em;justify-content:flex-start}.intro-panel .socials{display:flex;gap:1em;flex-wrap:wrap}.intro-panel .socials a img{width:2.5em;height:2.5em;transition:transform .3s ease-in-out}.intro-panel .socials a img:hover{transform:scale(1.1)}.intro-panel .intro-panel-text{flex-direction:column}.intro-panel .intro-panel-text h1{margin-bottom:.1em;color:var(--indigo);font-size:clamp(2rem,3.5vw,2.5rem)}.intro-panel .intro-panel-text h2{font-weight:400;margin:0}.intro-panel .intro-panel-text .intro-panel-buttons{display:flex;gap:2em;justify-content:flex-start;flex-wrap:wrap}.intro-panel .intro-panel-text .intro-panel-buttons button{position:relative;display:flex;align-items:center;height:7vh;background-color:transparent;border:2px solid var(--indigo);color:var(--indigo);border-radius:0;cursor:pointer;box-sizing:border-box;padding:.5em 2em;transition:all .3s ease-in-out}.intro-panel .intro-panel-text .intro-panel-buttons button:before{width:1.5625em;height:2px;background:var(--indigo);top:50%;left:1.5em;position:absolute;transform:translateY(-50%);transform-origin:center;transition:.3s linear,width .3s linear;content:" "}.intro-panel .intro-panel-text .intro-panel-buttons button a,.intro-panel .intro-panel-text .intro-panel-buttons button p{padding-left:2em;transition:all .3s ease-in-out;color:var(--indigo)}.intro-panel .intro-panel-text .intro-panel-buttons button span:nth-of-type(1){width:1.5625em;top:-2px;left:.625em;position:absolute;background-color:var(--light-grey);transition:width .5s ease-out,left .3s ease-out;height:2px}.intro-panel .intro-panel-text .intro-panel-buttons button span:nth-of-type(2){width:1.5625em;right:1.875em;bottom:-2px;position:absolute;background-color:var(--light-grey);transition:width .5s ease-out,right .3s ease-out;height:2px}.intro-panel .intro-panel-text .intro-panel-buttons button span:nth-of-type(3){width:.625em;right:.625em;bottom:-2px;position:absolute;background-color:var(--light-grey);transition:width .5s ease-out,right .3s ease-out;height:2px}.intro-panel .intro-panel-text .intro-panel-buttons button:hover{background:var(--indigo);color:var(--light-grey)}.intro-panel .intro-panel-text .intro-panel-buttons button:hover:before{background-color:var(--light-grey);width:1em}.intro-panel .intro-panel-text .intro-panel-buttons button:hover a,.intro-panel .intro-panel-text .intro-panel-buttons button:hover p{padding-left:1.5em;color:var(--light-grey)}.intro-panel .intro-panel-text .intro-panel-buttons button:hover span:nth-of-type(1){width:0px;left:-2px}.intro-panel .intro-panel-text .intro-panel-buttons button:hover span:nth-of-type(2),.intro-panel .intro-panel-text .intro-panel-buttons button:hover span:nth-of-type(3){width:0;right:0}@media only screen and (max-width: 1024px){.intro-panel{width:100%}.intro-panel .intro-panel-text h1{font-size:clamp(2rem,2.5vw,1.5rem)}.intro-panel .intro-panel-text h2{width:90%}}
