@font-face{font-family:sans;src:url(../media/geist_latin-s.p.6435ea53.woff2)format("woff2");font-display:swap}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:94.47%;descent-override:27.73%;line-gap-override:0.0%;size-adjust:106.39%}.sans_22ca8e37-module__D9T5wG__className{font-family:sans,sans Fallback}.sans_22ca8e37-module__D9T5wG__variable{--font-sans:"sans","sans Fallback"}
@font-face{font-family:mono;src:url(../media/geist_mono_latin-s.p.dbea232f.woff2)format("woff2");font-display:swap}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.0%;size-adjust:131.49%}.mono_8f398186-module__0qK6dq__className{font-family:mono,mono Fallback}.mono_8f398186-module__0qK6dq__variable{--font-mono:"mono","mono Fallback"}
:root{--header-height:3rem;--hue:0;--sat:0%;--title-color:hsl(var(--hue),var(--sat),20%);--title-color-dark:hsl(var(--hue),var(--sat),0%);--text-color:hsl(var(--hue),var(--sat),46%);--text-color-light:hsl(var(--hue),var(--sat),70%);--body-color:hsl(var(--hue),var(--sat),98%);--container-color:#fff;--infp-color:#6d8d4a;--first-color:#2563eb;--body-font:"Poppins",sans-serif;--big-font-size:3.5rem;--my-name-font-size:3rem;--h1-font-size:2.25rem;--h2-font-size:1.5rem;--h3-font-size:1.25rem;--normal-font-size:1rem;--skill-name-font-size:.9rem;--small-font-size:.875rem;--smaller-font-size:.813rem;--tiny-font-size:.625rem;--font-normal:400;--font-medium:500;--font-semi-bold:600;--mb-0-25:.25rem;--mb-0-5:.5rem;--mb-0-75:.75rem;--mb-1:1rem;--mb-1-5:1.5rem;--mb-2:2rem;--mb-2-5:2.5rem;--mb-3:3rem;--z-tooltip:10;--z-fixed:100;--z-modal:1000}@media screen and (max-width:992px){:root{--big-font-size:2.75rem;--h1-font-size:1.5rem;--h2-font-size:1.25rem;--h3-font-size:1rem;--normal-font-size:.938rem;--small-font-size:.813rem;--smaller-font-size:.75rem}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,button,input,textarea{font-family:var(--body-font);font-size:var(--normal-font-size)}body{background-color:var(--body-color);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{color:var(--title-color);font-weight:var(--font-semi-bold)}ul{list-style:none}a{color:var(--text-color);text-decoration:none}button{cursor:pointer;border:none;outline:none}img{max-width:100%;height:auto}.section{padding:6rem 0 2rem}.section__title{font-size:var(--h1-font-size);color:var(--text-color)}.section__subtitle{font-size:var(--small-font-size);color:var(--text-color);margin:2rem;display:block}.section__title,.section__subtitle{text-align:center}.section__title--left{text-align:left}.container{box-sizing:border-box;min-width:280px;max-width:65%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}.grid{gap:1.5rem;display:grid}.button{background-color:var(--text-color);color:var(--container-color);font-weight:var(--font-medium);border-radius:.8rem;padding:.7rem 1rem;display:inline-block}.button:hover{background-color:var(--title-color-dark)}.button__icon{margin-left:var(--mb-0-5)}.button--flex{align-items:center;display:inline-flex}.header{width:100%;z-index:var(--z-fixed);background-color:var(--body-color);position:fixed;top:0;left:0}.nav{height:calc(var(--header-height) + .5rem);justify-content:space-between;align-items:center;column-gap:1rem;display:flex}.nav__logo,.nav__toggle{color:var(--title-color);font-weight:var(--font-medium)}.nav__list{column-gap:2rem;display:flex}.nav__link{font-size:var(--small-font-size);color:var(--text-color);font-weight:var(--font-medium);flex-direction:column;align-items:center;transition:all .3s;display:flex}.nav__icon,.nav__close,.nav__toggle{display:none}.active-link,.nav__link:hover{color:var(--title-color-dark)}.scroll-header{box-shadow:0 -1px 4px #00000080}.home{align-items:center;min-height:calc(100vh - 3rem);padding-bottom:8rem;display:flex}.home__container{row-gap:7rem}.home__content{grid-template-columns:116px repeat(2,1fr);align-items:center;column-gap:2rem;width:calc(100% + 2rem);margin-left:-1rem;margin-right:-1rem;padding-top:5.5rem}.home__social{grid-template-columns:max-content;row-gap:1rem;margin-left:-.55rem;display:grid}.home__social-icon{color:var(--text-color);font-size:1.25rem}.home__social-icon:hover{color:var(--title-color-dark)}.home__title{font-size:var(--my-name-font-size);margin-bottom:var(--mb-0-25);color:var(--text-color)}.home__subtitle{font-size:var(--h3-font-size);font-weight:var(--font-normal);margin-bottom:var(--mb-0-25);color:var(--text-color);position:relative}.home__description{max-width:400px;margin-bottom:var(--mb-3);font-size:var(--normal-font-size);padding-top:10px}.home__data{margin-left:-3rem}.home__link{color:#06c;text-decoration:none;transition:color .3s}.home__link:hover{color:#0052a3}.home__img{background:50%/cover no-repeat;order:1;justify-self:end;width:300px;height:300px;margin-right:-1rem;animation:8s ease-in-out 1s infinite profile__animate;box-shadow:inset 0 0 0 9px #ffffff4d}@keyframes profile__animate{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}50%{border-radius:30% 60% 70% 40%/50% 60% 30%}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}}.home__scroll{margin-left:9.25rem}.wheel{animation:2s infinite scroll}@keyframes scroll{0%{transform:translateY(0)}30%{transform:translateY(3.75rem)}}.home__scroll-name{color:var(--title-color);font-weight:var(--font-medium);margin-right:var(--mb-0-25);margin-left:2px}.home__scroll-arrow{color:var(--title-color);font-size:1.25rem}.about__container{grid-template-columns:repeat(2,1fr);align-items:center;column-gap:4rem}.about__img{border-radius:1.5rem;justify-self:center;width:350px}.about__info{margin-bottom:var(--mb-2);grid-template-columns:repeat(4,95px);gap:.5rem}.about__box{background-color:var(--container-color);text-align:center;border:1px solid #0000001a;border-radius:.75rem;padding:.5rem .25rem}.about__icon{color:var(--title-color);margin-bottom:.25rem;font-size:1.25rem}.about__title{font-size:var(--smaller-font-size);font-weight:var(--font-medium)}.about__subtitle{font-size:var(--tiny-font-size)}.about__description{margin-bottom:var(--mb-2-5);padding:0 1rem 0 0}.about__details__button{color:var(--title-color);font-size:var(--tiny-font-size);cursor:pointer;align-items:center;column-gap:.25rem;display:inline-flex}.about__details__button-icon{font-size:.75rem;transition:all .3s}.about__details__button:hover .about__details__button-icon{transform:translate(.25rem)}.skills__container{grid-template-columns:repeat(3,350px);justify-content:center;column-gap:1rem}.skills__content{background-color:var(--container-color);border:1px solid #0000001a;border-radius:1.25rem;padding:2rem}.skills__title{font-size:var(--normal-font-size);font-weight:var(--font-medium);text-align:center;margin-bottom:var(--mb-1-5)}.skills__box{justify-content:center;column-gap:2.5rem;display:flex}.skills__group{align-items:flex-start;row-gap:1rem;display:grid}.skills__data{column-gap:.5rem;display:flex}.skills .bx-badge-check{color:var(--title-color);font-size:1rem}.skills__name{font-size:var(--skill-name-font-size);font-weight:var(--font-medium);line-height:18px}.skills__level{font-size:var(--tiny-font-size)}.tech_stack_Img{object-fit:contain;width:40px;height:40px}.work__filters{margin-bottom:var(--mb-2);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.work__filters-icon{color:var(--title-color);font-size:1.1rem}.work__item{cursor:pointer;color:var(--title-color);font-size:var(--smaller-font-size);font-weight:var(--font-medium);text-transform:capitalize;border-radius:.5rem;padding:.2rem .5rem}.work__item:hover{background-color:var(--title-color);color:var(--container-color)}.work__container{flex-direction:column;gap:3rem;min-width:320px;max-width:65%;margin:0 auto;display:flex}.work__card{align-items:center;gap:2rem;margin-bottom:10px;display:flex}.work__img{object-fit:cover;flex-shrink:0;width:200px;height:auto}.work__content{flex:1}.work__header{justify-content:space-between;align-items:baseline;margin-bottom:.25rem;display:flex}.work__title{font-size:var(--small-font-size);font-weight:var(--font-semi-bold);color:var(--first-color);cursor:pointer;margin-bottom:0}.work__date{font-size:var(--smaller-font-size);color:var(--text-color);white-space:nowrap;margin-left:1rem}.work__title a{color:var(--first-color);text-decoration:none}.work__title a:hover{text-decoration:underline}.work__tech{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.work__tech-tag{color:var(--title-color);background-color:var(--container-color);border:1px solid var(--text-color-light);border-radius:1rem;padding:.15rem .45rem;font-size:.7rem;display:inline-block}.work__description{font-size:var(--small-font-size);color:var(--title-color-dark);text-align:justify;margin-bottom:.25rem;line-height:1.6}.work__links{gap:1rem;display:flex}.work__link{color:var(--first-color);font-size:var(--small-font-size);text-decoration:none}.work__link:hover{text-decoration:underline}.active-work{background-color:var(--title-color);color:var(--container-color)}.contact__container{grid-template-columns:repeat(2,max-content);justify-content:center;column-gap:6rem;padding-bottom:3rem}.contact__title{text-align:center;font-size:var(--h3-font-size);font-weight:var(--font-medium);margin-bottom:var(--mb-1-5)}.contact__info{grid-template-columns:300px;row-gap:1rem;display:grid}.contact__card{background-color:var(--container-color);text-align:center;border:1px solid #0000001a;border-radius:.75rem;padding:1rem}.contact__card-icon{color:var(--title-color);margin-bottom:var(--mb-0-25);font-size:2rem}.contact__card-title,.contact__card-data{font-size:var(--small-font-size)}.contact__card-title{font-weight:var(--font-medium)}.contact__card-data{margin-bottom:var(--mb-0-75);display:block}.contact__button{color:var(--text-color);font-size:var(--small-font-size);justify-content:center;align-items:center;column-gap:.25rem;display:inline-flex}.contact__button-icon{font-size:1rem;transition:all .3s}.contact__button:hover .contact__button-icon{transform:translate(.25rem)}.contact__form{width:360px}.contact__form-div{margin-bottom:var(--mb-2);height:4rem;position:relative}.contact__form-input{width:100%;height:100%;color:var(--text-color);z-index:1;background:0 0;border:2px solid #0000004d;border-radius:.75rem;outline:none;padding:1.5rem;position:absolute;top:0;left:0}.contact__form-tag{font-size:var(--smaller-font-size);background-color:var(--body-color);z-index:10;padding:.25rem;position:absolute;top:-.75rem;left:1.25rem}.contact__form-area{height:11rem}.contact__form-area textarea{resize:none}.footer{background-color:var(--container-color);border-top:1px solid #0000001a}.footer__container{padding:2rem 0 6rem}.footer__title,.footer__link{color:var(--title-color)}.footer__title{text-align:center;margin-bottom:var(--mb-2);margin-top:var(--mb-1)}.footer__link:hover{color:var(--title-color-dark)}.footer__list{margin-bottom:var(--mb-2);justify-content:center;column-gap:1.5rem;display:flex}.footer__social{justify-content:center;column-gap:1.25rem;display:flex}.footer__social-link{background-color:var(--title-color);color:var(--container-color);border-radius:.5rem;padding:.4rem;font-size:1.125rem;display:inline-flex}.footer__social-link:hover{background-color:var(--title-color-dark)}.scrollup{background-color:var(--title-color);color:#fff;opacity:.5;z-index:var(--z-tooltip);border-radius:50%;padding:.3rem .5rem;transition:all .4s;position:fixed;bottom:-20%;right:3rem}.scrollup__icon{color:var(--container-color);font-size:2.5rem}.scrollup:hover{background-color:var(--title-color-dark)}.show-scroll{bottom:3rem}.uil-arrow-up{font-size:1.1rem}.services__modal{z-index:var(--z-modal);opacity:0;visibility:hidden;background-color:#00000080;justify-content:center;align-items:center;padding:0 1rem;transition:all .3s;display:flex;position:fixed;inset:0}.services__modal-content{background-color:var(--container-color);border-radius:1.5rem;width:500px;max-height:90vh;padding:4.5rem 2.5rem 2.5rem;position:relative;overflow-y:auto}.services__modal-close{color:var(--title-color);cursor:pointer;font-size:1.5rem;position:absolute;top:1.5rem;right:1.5rem}.services__modal-title,.services__modal-description{text-align:center}.services__modal-title{font-size:var(--h3-font-size);font-weight:var(--font-medium);margin-bottom:var(--mb-1)}.services__modal-description{font-size:var(--small-font-size);margin-bottom:var(--mb-2);padding:0 3.5rem}.services__modal-services{row-gap:.75rem}.services__modal-service{align-items:center;column-gap:.5rem;display:flex}.services__modal-icon{color:var(--title-color);font-size:1.1rem}.services__modal-info{font-size:var(--small-font-size)}.active-modal{opacity:1;visibility:visible}.education__image{min-width:280px;max-width:calc(65% - 2rem);margin:0 auto 2rem;display:block}.education__summary{text-align:justify;min-width:280px;max-width:calc(65% - 2rem);color:var(--text-color);margin:0 auto 2rem;line-height:1.6}.education__highlight{font-weight:600}.timeline{padding-top:2rem;position:relative}.timeline:before{content:"";background-color:var(--text-color-light);width:1px;position:absolute;top:2rem;bottom:3rem;left:calc(2.5rem + 183.5px)}.timeline__item{gap:1.5rem;padding-bottom:3rem;display:flex;position:relative}.timeline__item:last-child{padding-bottom:0}.timeline__date{width:180px;font-size:var(--smaller-font-size);font-weight:var(--font-medium);color:var(--title-color);text-align:right;flex-shrink:0;padding-top:.15rem}.timeline__marker{z-index:1;flex-direction:column;flex-shrink:0;align-items:center;width:7px;display:flex}.timeline__dot{background-color:var(--title-color);border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-top:.35rem}.timeline__content{flex:1}.timeline__degree{font-size:var(--small-font-size);font-weight:var(--font-semi-bold);color:#757575;margin-bottom:.25rem}.timeline__school{font-size:var(--small-font-size);color:var(--text-color);margin-bottom:.25rem}.timeline__location{font-size:var(--small-font-size);color:var(--text-color);margin-bottom:0}.timeline__link{font-size:var(--tiny-font-size);color:var(--first-color);text-decoration:none}.timeline__link:hover{text-decoration:underline}.qualification__link{color:var(--text-color);text-decoration:none;transition:color .3s}.qualification__link:hover{color:var(--title-color-dark);text-decoration:underline}.qualification__description{font-size:var(--small-font-size);color:var(--text-color);margin-top:.5rem;font-style:italic}.qualification__container{max-width:768px}.qualification__sections{grid-template-columns:1fr;display:grid}.qualification__data{grid-template-columns:1fr max-content 1fr;column-gap:1.5rem;display:grid}.qualification__title{font-size:var(--normal-font-size);font-weight:var(--font-medium)}.qualification__subtitle{font-size:var(--small-font-size);margin-bottom:.25rem;display:block}.qualification__calendar{font-size:var(--smaller-font-size);color:var(--text-color)}.qualification__left{text-align:right}.qualification__right{text-align:left}.qualification__rounder{background-color:var(--title-color);z-index:1;border-radius:50%;width:7px;height:7px;display:inline-block;position:relative}.qualification__line{background-color:var(--text-color-light);width:1px;height:100%;display:block;transform:translate(3px)}.activities__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;min-width:280px;max-width:65%;margin:0 auto;display:grid}.activities__card{cursor:pointer;aspect-ratio:4/3;background-color:var(--container-color);border:1px solid #0000001a;border-radius:.75rem;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.activities__card:hover{transform:translateY(-4px);box-shadow:0 4px 20px #0000001a}.activities__img{object-fit:cover;width:100%;height:100%}.activities__overlay{opacity:0;background:linear-gradient(#0000,#000000b3);padding:1rem;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.activities__card:hover .activities__overlay{opacity:1}.activities__card-title{color:#fff;font-size:var(--small-font-size);font-weight:var(--font-medium)}.activities__empty{text-align:center;padding:4rem 2rem}.activities__empty-icon{color:var(--text-color-light);margin-bottom:var(--mb-1);font-size:4rem}.activities__empty-text{font-size:var(--h2-font-size);color:var(--title-color);margin-bottom:var(--mb-0-5)}.activities__empty-hint{font-size:var(--small-font-size);color:var(--text-color)}.activities__empty-hint code{background-color:var(--container-color);font-size:var(--smaller-font-size);border-radius:.25rem;padding:.2rem .4rem}.lightbox{z-index:var(--z-modal);background-color:#000000e6;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox__content{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:1200px;height:100%;display:flex;position:relative}.lightbox__close{color:#fff;cursor:pointer;z-index:10;background:0 0;border:none;padding:.5rem;font-size:2rem;transition:transform .2s;position:absolute;top:1rem;right:1rem}.lightbox__close:hover{transform:scale(1.1)}.lightbox__image-container{justify-content:center;align-items:center;width:100%;height:calc(100% - 100px);display:flex;position:relative}.lightbox__nav{color:#fff;cursor:pointer;z-index:10;background:#ffffff1a;border:none;border-radius:.5rem;padding:1rem .75rem;font-size:2.5rem;transition:background .2s;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{background:#fff3}.lightbox__prev{left:1rem}.lightbox__next{right:1rem}.lightbox__caption{text-align:center;color:#fff;padding:1rem;position:absolute;bottom:1rem}.lightbox__caption h3{color:#fff;font-size:var(--normal-font-size);margin-bottom:.25rem}.lightbox__caption span{font-size:var(--small-font-size);color:#ffffffb3;margin-right:1rem}.lightbox__counter{font-size:var(--smaller-font-size);color:#ffffff80}@media (hover:none){.activities__overlay{opacity:1;background:linear-gradient(#0000 50%,#0009)}}@media screen and (max-width:992px){.container{max-width:85%;margin-left:auto;margin-right:auto}.button{padding:1rem 1.75rem}.button__icon{width:22px;height:22px}.home__content{grid-template-columns:100px repeat(2,1fr);column-gap:1.25rem}.home__subtitle{margin-bottom:var(--mb-1);padding-left:3.75rem}.home__subtitle:before{width:42px;top:.8rem}.home__description{max-width:initial;margin-bottom:var(--mb-2-5)}.home__img{width:250px;height:250px;box-shadow:inset 0 0 0 8px #ffffff4d}.home__scroll{margin-left:7.5rem}.about__container{grid-template-columns:1fr;row-gap:2.5rem}.about__img{width:220px}.about__box{padding:.75rem .5rem}.about__data{text-align:center}.about__info{justify-content:center}.about__description{margin-bottom:2rem;padding:0 5rem}.skills__container{grid-template-columns:max-content;row-gap:2rem}.work__container{gap:2.5rem;max-width:85%}.contact__container{column-gap:3rem}.scrollup{padding:.25rem .4rem;right:2rem}.scrollup__icon{font-size:1.25rem}.services__modal-content{width:450px;padding:3.5rem 2rem 2rem}.services__modal-description{padding:0 2.5rem}.timeline:before{left:calc(2.5rem + 143.5px)}.timeline__date{width:140px;font-size:var(--smaller-font-size)}.education__image{max-width:90%}.education__summary{max-width:90%;margin:0 auto var(--mb-2)}.activities__grid{max-width:85%}}@media screen and (max-width:768px){body{margin:0 0 var(--header-height)}.section{padding:2rem 0 4rem}.section__subtitle{margin-bottom:var(--mb-3)}.header{top:initial;bottom:0}.nav{height:var(--header-height)}.nav__menu{background-color:var(--body-color);border-radius:1.5rem 1.5rem 0 0;width:100%;padding:2rem 1.5rem 4rem;transition:all .3s;position:fixed;bottom:-100%;left:0;box-shadow:0 -1px 4px #00000026}.show-menu{bottom:0}.nav__list{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.nav__icon{font-size:1.2rem}.nav__close{cursor:pointer;color:var(--title-color);font-size:1.5rem;position:absolute;bottom:.5rem;right:1.3rem}.nav__close:hover{color:var(--title-color-dark)}.nav__toggle{cursor:pointer;font-size:1.1rem}.nav__icon,.nav__close,.nav__toggle{display:block}.home__content{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;padding-top:3.5rem;display:flex}.home__social{flex-direction:row;order:3;justify-content:center;gap:1.5rem;margin-top:1rem;display:flex}.home__img{order:1;width:200px;height:200px;box-shadow:inset 0 0 0 6px #ffffff4d}.home__data{text-align:center;order:2;width:100%;margin-left:0}.home__title{text-align:center}.home__description{text-align:center;max-width:100%;margin-left:auto;margin-right:auto}.about__info{justify-content:center}.home__scroll{display:none}.work__container{max-width:90%}.work__card{text-align:center;flex-direction:column;align-items:center}.work__header{flex-direction:column;align-items:center;gap:.25rem}.work__date{margin-left:0}.work__tech{justify-content:center}.work__img{width:100%;max-width:300px}.work__links{justify-content:center}.contact__container{grid-template-columns:1fr;row-gap:3rem}.contact__info{justify-content:center}.contact__form{margin:0 auto}.show-scroll{bottom:4rem}.scrollup{padding:.13rem .35rem;right:1rem}.timeline{padding-top:1rem}.timeline:before{display:none}.timeline__item{text-align:left;border-left:1px solid var(--text-color-light);flex-direction:column;align-items:flex-start;gap:.75rem;padding-bottom:2rem;padding-left:2rem;position:relative}.timeline__item:before{content:"";background-color:var(--title-color);border-radius:50%;width:7px;height:7px;position:absolute;top:.25rem;left:-4px}.timeline__date{text-align:left;width:auto;font-weight:var(--font-semi-bold);color:var(--title-color)}.timeline__marker{display:none}.timeline__content{width:100%}.services__modal-content{width:90%;max-width:400px;padding:3rem 1.5rem 1.5rem}.services__modal-description{padding:0 1.5rem}.about__img{width:200px}.contact__form{width:320px}.activities__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;max-width:90%}.lightbox__nav{padding:.75rem .5rem;font-size:2rem}.lightbox__prev{left:.5rem}.lightbox__next{right:.5rem}}@media screen and (max-width:576px){:root{--big-font-size:2rem;--h1-font-size:1.25rem;--h2-font-size:1rem;--h3-font-size:.875rem;--normal-font-size:.813rem;--small-font-size:.75rem;--smaller-font-size:.688rem}.qualification__data{text-align:left;grid-template-columns:1fr;gap:.5rem;margin-bottom:1.5rem}.qualification__data:last-child{margin-bottom:0}.qualification__left,.qualification__right{text-align:left}.qualification__rounder,.qualification__line,.qualification__data>div:empty,.qualification__data>div:nth-child(2){display:none}.about__info{grid-template-columns:repeat(2,1fr);gap:1rem}.about__description{padding:0}.home__content{flex-direction:column;display:flex}.home__title{font-size:var(--h1-font-size)}.home__description{font-size:var(--small-font-size)}.timeline__item{padding-left:1.5rem}.timeline__degree,.timeline__school,.timeline__location{font-size:var(--smaller-font-size)}.education__image{max-width:100%}.education__summary{font-size:var(--small-font-size);padding:0 .5rem}.work__container{max-width:95%}.work__img{max-width:250px}.work__tech-tag{padding:.1rem .4rem;font-size:.65rem}.work__description{font-size:var(--smaller-font-size)}.skills__container{grid-template-columns:1fr}.skills_content{padding:1.5rem}.contact__info{grid-template-columns:1fr}.contact__form{width:100%}.services__modal-content{width:95%;padding:2.5rem 1rem 1rem}.services__modal-description{padding:0 .5rem}.home__img{width:190px;height:190px}.about__img{width:180px}.activities__icon{font-size:3rem}.activities__description{max-width:100%}}@media screen and (max-width:480px){.home__content{flex-direction:column;display:flex}.home__title{font-size:var(--h1-font-size)}.home__img{width:180px;height:180px}.home__hand{width:22px;height:22px}.home__social{gap:1rem}.home__description{font-size:var(--smaller-font-size)}.about__info{grid-template-columns:repeat(2,1fr)}.about__box{padding:.75rem}.about__img{width:160px}.work__img{max-width:200px}.work__card{gap:1rem}.work__title{font-size:var(--smaller-font-size)}.work__date{font-size:.7rem}.activities__grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-width:95%}.lightbox__nav{padding:.5rem;font-size:1.5rem}.lightbox__caption h3{font-size:var(--small-font-size)}}@media screen and (max-width:320px){:root{--big-font-size:2.25rem;--my-name-font-size:2.25rem}.container{max-width:100%;min-width:unset;margin-left:auto;margin-right:auto;padding-left:.75rem;padding-right:.75rem}.home__container{padding-left:0;padding-right:0}.home__content{flex-direction:column;align-items:center;display:flex}.education__image{max-width:95%;min-width:unset}.nav__menu{padding:2rem .25rem 4rem}.nav__list{column-gap:0}.about__info{grid-template-columns:repeat(2,1fr);gap:.5rem}.about__box{padding:.5rem}.about__title{font-size:var(--smaller-font-size)}.home__img{width:150px;height:150px}.home__social{gap:.75rem}.timeline__item{padding-bottom:1.5rem;padding-left:1rem}.timeline__item:before{width:6px;height:6px;left:-4px}.timeline__date{font-size:var(--smaller-font-size)}.timeline__degree{font-size:var(--small-font-size)}.education__summary{font-size:var(--smaller-font-size)}.skills__box{column-gap:.5rem}.skills__name,.work__item{font-size:var(--small-font-size)}.work__filters{column-gap:.25rem}.scrollup{padding:.1rem .28rem;right:.5rem}.scrollup__icon,.uil-arrow-up{font-size:1rem}.services__modal-content{padding:2rem .75rem .75rem}.services__modal-description{padding:0}.about__img{width:140px}.work__img{max-width:100%}.work__container{gap:2rem}.work__tech-tag{font-size:.6rem}.work__link{font-size:var(--smaller-font-size)}.activities__icon{font-size:2.5rem}}
:root{--page-width:1320px;--page-gutter:10%;--type-page:clamp(28px,2.25vw,32px);--type-section:24px;--type-entry:21px;--type-subheading:17px;--type-subtitle:14px;--type-body:14px;--type-meta:12px;--type-nav:14px;--type-brand:20px;--type-eyebrow:11px}html{scrollbar-gutter:stable}@media (max-width:999px){:root{--page-gutter:32px}}@media (max-width:760px){:root{--page-gutter:20px;--type-page:22px;--type-section:18px;--type-entry:16px;--type-subheading:14px;--type-subtitle:12px;--type-brand:18px;--type-body:12px}}body{--body-font:var(--font-sans),Arial,sans-serif;--title-color:#111925;--text-color:#515a68;--body-color:#fdfdfc;--first-color:#0055c9;font-size:var(--type-body);margin:0;line-height:1.5}:focus-visible{outline-offset:5px;outline:2px solid #0055c9}button:focus-visible{outline:2px solid #0055c9}.scrollup{right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));color:#515a68;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;background:#fdfdfc;border:1px solid #d7dbe0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:opacity .16s,transform .16s,visibility .16s,background-color .16s,border-color .16s,color .16s;display:grid;transform:translateY(6px);box-shadow:0 2px 8px #1119250d}.scrollup.show-scroll{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.scrollup:hover,.scrollup:focus-visible{color:var(--first-color);background:#edf4fd;border-color:#a8c5ec}@media (max-width:760px){.scrollup{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}}a{transition:color .16s,background-color .16s}.portfolio-shell{width:calc(100% - var(--page-gutter)*2);max-width:var(--page-width);margin-inline:auto}.skip-link{z-index:1000;color:#0055c9;background:#fff;padding:12px 20px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{background:var(--body-color)}.site-header__inner{justify-content:space-between;align-items:center;gap:32px;min-height:52px;display:flex}.site-name{font-size:var(--type-brand);letter-spacing:-.7px;color:var(--title-color);white-space:nowrap;font-weight:650}.site-navigation{align-items:center;gap:38px;display:flex}.site-navigation a{font-size:var(--type-nav);white-space:nowrap;border-bottom:2px solid #0000;padding-block:5px}.site-navigation a:hover,.site-navigation a[aria-current=page]{color:var(--first-color)}.site-navigation a[aria-current=page]{border-color:var(--first-color)}.mobile-menu-toggle{display:none}.mobile-menu{width:min(320px,100vw - 48px);max-width:100vw;height:100dvh;max-height:100dvh;padding:max(16px,env(safe-area-inset-top))max(20px,env(safe-area-inset-right))max(24px,env(safe-area-inset-bottom))20px;background:var(--body-color);color:var(--title-color);border:0;border-left:1px solid #d7dbe0;margin:0;position:fixed;inset:0 0 0 auto;overflow-y:auto;box-shadow:-8px 0 32px #1119251a}.mobile-menu[open]{flex-direction:column;animation:.18s ease-out mobile-menu-enter;display:flex}.mobile-menu::backdrop{background:#11192552}.mobile-menu__header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.mobile-menu__header h2{font-size:var(--type-brand);font-weight:600}.mobile-menu-toggle,.mobile-menu-close{color:#27374a;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;width:44px;height:44px;padding:0}.mobile-menu-close{display:grid}.mobile-menu-close:focus-visible{color:var(--first-color);background:#edf4fd;outline:none}.mobile-menu-toggle:hover,.mobile-menu-close:hover{color:var(--first-color);background:#edf4fd}.mobile-menu__links{flex-direction:column;gap:6px;display:flex}.mobile-menu__links a{min-height:48px;font-size:var(--type-nav);border-left:2px solid #0000;border-radius:3px;align-items:center;padding:12px 14px;display:flex}.mobile-menu__links a:hover,.mobile-menu__links a[aria-current=page]{color:var(--first-color);background:#edf4fd}.mobile-menu__links a[aria-current=page]{border-left-color:var(--first-color);font-weight:500}@keyframes mobile-menu-enter{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.portfolio-hero{border-bottom:1px solid #d7dbe0;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;padding:32px 0;display:grid}.hero-copy{min-width:0}.eyebrow{font-family:var(--font-mono),monospace;text-transform:uppercase;font-size:var(--type-eyebrow);letter-spacing:1.5px;color:#737d8c;margin-bottom:16px;font-weight:400;line-height:1.5}.portfolio-hero h1{font-size:var(--type-page);letter-spacing:-.4px;font-weight:600;line-height:1.25}.hero-actions{flex-wrap:wrap;gap:16px;display:flex}.portfolio-button{color:#27374a;font-size:var(--type-body);border:1px solid #9da8b7;border-radius:5px;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-weight:450;display:inline-flex}.portfolio-button i{color:var(--first-color);font-size:18px}.portfolio-button:hover{border-color:var(--first-color);background-color:#edf4fd}.portfolio-button--primary{color:#fff;background:#0055c9;border-color:#0055c9}.portfolio-button--primary i{color:#fff}.portfolio-button--primary:hover{color:#fff;background:#0047a8}.selected-work{padding-block:24px 30px;scroll-margin-top:25px}.selected-work__heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px;display:flex}.selected-work__heading .eyebrow{margin-bottom:6px}.selected-work__heading h2{font-size:var(--type-section);letter-spacing:-.4px;font-weight:600;line-height:1.25}.selected-work__heading>a{white-space:nowrap;margin-bottom:8px}.text-link{color:var(--first-color);font-size:var(--type-body);align-items:center;gap:8px;font-weight:500;display:inline-flex}.text-link:hover{color:#00397f;text-underline-offset:5px;text-decoration:underline}.text-link i{font-size:18px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.featured-project{flex-direction:column;align-items:start;min-width:0;display:flex}.project-visual{aspect-ratio:62/27;background:#f1f5f9;width:100%;margin-bottom:17px;display:block;overflow:hidden}.project-visual img{object-fit:contain;width:100%;height:100%;transition:transform .25s;display:block}.project-visual:hover img{transform:scale(1.025)}.featured-project h3{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.featured-project h3 a{color:var(--title-color)}.featured-project h3 a:hover{color:var(--first-color)}.project-subtitle{font-size:var(--type-subtitle);color:#354152;margin-top:2px;line-height:1.4}.project-description{font-size:var(--type-body);margin-top:4px;line-height:1.5}.project-evidence{font-size:var(--type-meta);align-items:center;gap:10px;margin-top:12px;margin-bottom:15px;line-height:1.5;display:flex}.status-dot{background:#6ca7f4;border-radius:50%;flex:none;width:11px;height:11px}.project-evidence--metrics{flex-wrap:wrap;gap:20px}.project-evidence--metrics>span{align-items:center;gap:12px;display:flex}.project-evidence--metrics>span+span{border-left:1px solid #a9b2be;padding-left:20px}.project-evidence i{color:var(--first-color);font-size:19px}.project-evidence strong{color:var(--title-color)}.featured-project>.text-link{margin-top:auto}.behind-work{border-top:1px solid #d7dbe0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;margin-top:8px;padding:24px 0 28px;display:flex}.behind-work .eyebrow{font-size:var(--type-eyebrow);margin-bottom:10px}.home-education-heading{font-size:var(--type-section);letter-spacing:-.4px;margin-bottom:6px;font-weight:600;line-height:1.25}.behind-work p{font-size:var(--type-body);margin:0;line-height:1.5}.behind-work .background-summary{font-size:var(--type-body);color:#354152;margin:0;font-weight:500;line-height:1.5}.behind-work .home-scholarship{color:var(--first-color);font-weight:500}.background-summary a{color:inherit;align-items:center;gap:6px;display:inline-flex}.background-summary a svg{flex-shrink:0}.background-summary a:hover{color:var(--first-color);text-underline-offset:4px;text-decoration:underline}.home-contact{align-items:center;display:flex}.home-contact a{font-size:var(--type-body);color:#27374a;white-space:nowrap;align-items:center;gap:10px;padding:4px 20px;line-height:1.5;display:inline-flex}.home-contact a:first-child{padding-left:0}.home-contact a:last-child{padding-right:0}.home-contact a+a{border-left:1px solid #d7dbe0}.home-contact a:hover{color:var(--first-color)}.home-contact i{font-size:23px}.main>.section{padding-top:52px}.page-intro{margin-bottom:35px}.page-intro h1{font-size:var(--type-page);letter-spacing:-.4px;margin-bottom:12px;line-height:1.25}.page-intro>p:not(.eyebrow){max-width:65ch;font-size:var(--type-body)}.projects-overview{padding-top:24px}.projects-overview .selected-work{padding-top:0}.archive-heading{border-top:1px solid #d7dbe0;padding-top:35px}.archive-heading h2{font-size:var(--type-section);letter-spacing:-.4px}.archive-heading p{margin-top:8px}.work__item{background:0 0;font-family:inherit}.case-study{padding-top:24px;padding-bottom:64px}.case-study__hero{padding:34px 0 20px}.case-study__hero h1{font-size:var(--type-page);letter-spacing:-.4px;line-height:1.25}.case-study__hero>p:not(.eyebrow){font-size:var(--type-body);max-width:780px;margin-top:16px}.case-study__meta{font-size:var(--type-meta);border-bottom:1px solid #e3e7ec;flex-wrap:wrap;gap:10px 28px;padding-bottom:16px;display:flex}.case-study__meta+.case-study__body section{margin-top:28px}.case-study__figure{max-width:780px;margin:28px 0}.case-study__figure img{width:100%;height:auto;display:block}.case-study__figure figcaption{font-size:var(--type-meta);color:#697383;margin-top:12px}.case-study__body{max-width:780px}.case-study__body section{margin-top:38px}.case-study__body h2{font-size:var(--type-section);letter-spacing:-.4px;margin-bottom:14px}.case-study__body p{font-size:var(--type-body);margin-bottom:15px;line-height:1.7}.case-study__body ul,.case-study__body ol{padding-left:23px;list-style:outside}.case-study__body ol{list-style:decimal}.case-study__body li{margin-bottom:12px;padding-left:4px;line-height:1.7}.case-study__body strong{color:var(--title-color);font-weight:600}.case-study__next{border-top:1px solid #d7dbe0;margin-top:48px;padding-top:28px}@media (max-width:1150px){.site-navigation{gap:23px}.site-navigation a{font-size:var(--type-nav)}.project-evidence--metrics{gap:8px}.project-evidence--metrics>span+span{border:0;padding-left:0}}@media (max-width:1100px){.portfolio-hero{grid-template-columns:minmax(0,1fr);gap:22px}}@media (max-width:760px){.site-header__inner{gap:12px;min-height:68px;padding-block:8px}.site-name{font-size:var(--type-brand)}.site-navigation{display:none}.mobile-menu-toggle{display:grid}.portfolio-hero{padding-top:28px;padding-bottom:28px}.portfolio-hero h1{font-size:var(--type-page);letter-spacing:-.4px;line-height:1.25}.hero-break{display:none}.hero-actions{gap:8px}.portfolio-button{font-size:var(--type-body);gap:6px;min-height:36px;padding:7px 10px}.portfolio-button i{font-size:14px}.eyebrow{font-size:var(--type-eyebrow)}.selected-work__heading{flex-direction:column;align-items:start;gap:12px}.selected-work__heading h2{font-size:var(--type-section)}.selected-work__heading>a{margin-bottom:0}.featured-grid{grid-template-columns:1fr;gap:34px}.home-page .featured-grid>.featured-project:first-child,.projects-overview .featured-grid>.featured-project:first-child{border-bottom:1px solid #d7dbe0;padding-bottom:24px}.featured-project h3{font-size:var(--type-entry)}.project-subtitle{font-size:var(--type-subtitle)}.project-description{font-size:var(--type-body)}.project-evidence--metrics{flex-direction:column;align-items:start}.behind-work{gap:18px;margin-top:0;padding-block:22px}.home-contact a{font-size:var(--type-body);gap:7px;padding-inline:12px}.page-intro h1{font-size:var(--type-page)}.case-study__hero>p:not(.eyebrow){font-size:var(--type-body)}.case-study__meta{flex-direction:column;gap:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.supporting-work{border-top:1px solid #d7dbe0;padding:32px 0 56px}.supporting-work__heading{margin-bottom:26px}.supporting-work__heading .eyebrow{margin-bottom:6px}.supporting-work__heading h2{font-size:var(--type-section);letter-spacing:-.4px;margin-bottom:10px;line-height:1.25}.supporting-work__heading>p:last-child{max-width:65ch}.supporting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;display:grid}.supporting-project{border-top:1px solid #e0e3e7;grid-template-columns:132px minmax(0,1fr);align-items:start;gap:18px;min-width:0;padding:24px 0;scroll-margin-top:24px;display:grid}.supporting-work>.supporting-grid>.supporting-project:first-child,.project-archive__body>.supporting-grid>.supporting-project:first-child{border-top:0}@media (min-width:901px){.supporting-work>.supporting-grid>.supporting-project:nth-child(2),.project-archive__body>.supporting-grid>.supporting-project:nth-child(2){border-top:0}}.supporting-project__image{aspect-ratio:8/5;background:#f0f3f6;border-radius:4px;display:block;overflow:hidden}.supporting-project__image img{object-fit:contain;width:100%;height:100%;display:block}.supporting-project__content{min-width:0}.supporting-project__meta{font-size:var(--type-meta);color:#687383;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px;line-height:1.5;display:flex}.supporting-project h3{font-size:var(--type-entry);letter-spacing:-.4px;margin-bottom:10px;line-height:1.25}.supporting-project h3 a{color:var(--title-color)}.supporting-project h3 a:hover{color:var(--first-color)}.supporting-project__content>p{font-size:var(--type-body);line-height:1.65}.supporting-project__tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.supporting-project__tags li{font-size:var(--type-meta);color:#48576c;overflow-wrap:anywhere;background:#eef2f7;border-radius:3px;padding:3px 8px;line-height:1.5}.supporting-project__links{flex-wrap:wrap;gap:16px;margin-top:14px;display:flex}.supporting-project__links a{color:var(--first-color);font-size:var(--type-body);align-items:center;gap:5px;font-weight:500;display:inline-flex}.supporting-project__links a:hover{text-underline-offset:4px;text-decoration:underline}.project-archive{border-top:1px solid #d7dbe0;margin-top:30px}.project-archive>summary{cursor:pointer;color:var(--first-color);font-size:var(--type-subheading);padding:20px 0;font-weight:600}.project-archive>summary:hover{color:#00397f}.project-archive>summary span{color:#687383;font-size:var(--type-meta);white-space:nowrap;margin-left:12px;font-weight:400}.project-archive__body{padding:0 0 24px}.project-archive__intro{margin-bottom:18px}.archive-filters{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.archive-filters button{color:#515a68;font:inherit;font-size:var(--type-meta);background:0 0;border:1px solid #d7dbe0;border-radius:4px;min-height:30px;padding:4px 10px}.archive-filters button:hover{color:var(--first-color);border-color:var(--first-color)}.archive-filters button[aria-pressed=true]{background:var(--first-color);border-color:var(--first-color);color:#fff}.archive-empty{padding:24px 0}@media (max-width:760px){.archive-filters{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;max-width:300px;display:grid}.archive-filters button{white-space:nowrap;min-width:0;min-height:28px;padding:3px 2px;font-size:11px}}@media (max-width:1150px){.supporting-project{grid-template-columns:104px minmax(0,1fr);gap:14px}.supporting-grid{column-gap:24px}}@media (max-width:900px){.supporting-grid{grid-template-columns:1fr}.supporting-project{grid-template-columns:132px minmax(0,1fr);gap:20px}}@media (max-width:480px){.supporting-work{padding-block:26px 40px}.supporting-work__heading h2{font-size:var(--type-section)}.supporting-project{grid-template-columns:1fr;gap:14px}.supporting-project__image{width:100%;max-height:180px}.supporting-project h3{font-size:var(--type-entry)}.project-archive>summary{font-size:var(--type-subheading)}}.professional-role{font-size:var(--type-meta);color:#27374a;margin-bottom:7px;font-weight:600;line-height:1.5}.professional-sdk{border-top:1px solid #d7dbe0;padding:32px 0 28px}.professional-sdk>h2{font-size:var(--type-section);letter-spacing:-.4px;margin-bottom:10px;line-height:1.25}.professional-sdk .supporting-project{border-top:0;max-width:850px}@media (max-width:480px){.professional-sdk>h2{font-size:var(--type-section)}}.projects-overview>.page-intro{margin-bottom:16px}.selected-work__heading>h2{margin:0}.achievements-page{padding-block:24px 48px}.achievements-page>h1,.projects-overview>h1{font-size:var(--type-page);letter-spacing:-.4px;margin-bottom:28px;font-weight:600;line-height:1.25}.achievement-section-title{font-size:var(--type-section);letter-spacing:-.4px;margin-bottom:18px;font-weight:600;line-height:1.25}.recognition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}.recognition-card{flex-direction:column;align-items:stretch;min-width:0;display:flex}.recognition-image{cursor:zoom-in;background:#f1f4f7;border:1px solid #e2e6eb;border-radius:3px;width:100%;height:220px;margin-bottom:16px;display:block;position:relative;overflow:hidden}.recognition-image img{object-fit:contain}.recognition-image--document img{object-fit:contain;padding:10px}.recognition-card__heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.recognition-card h3{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.recognition-card time,.achievement-date{font-size:var(--type-meta);color:#687383;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.achievement-issuer{font-size:var(--type-subtitle);color:#354152;margin-top:5px}.recognition-detail{font-size:var(--type-meta);color:#0055c9;margin-top:10px;font-weight:550}.achievement-description{font-size:var(--type-body);max-width:76ch;margin-top:8px;line-height:1.65}.achievement-links{flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:12px;display:flex}.achievement-links .text-link,.achievement-evidence{font-size:var(--type-body);min-height:32px;line-height:1.5}.achievement-evidence{text-align:left;background:0 0;border:0;padding:0}.recognition-card>.achievement-links{margin-top:auto;padding-top:12px}.achievement-section{border-top:1px solid #d7dbe0;margin-top:28px;padding-top:24px}.achievement-rows{gap:24px;display:grid}.achievement-row{grid-template-columns:240px minmax(0,1fr);align-items:center;gap:16px 28px;display:grid}.achievement-row__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;display:flex}.achievement-row h3{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.achievement-row .achievement-links{margin-top:6px}.achievement-preview{aspect-ratio:3/2;cursor:zoom-in;background:#f1f4f7;border:1px solid #e2e6eb;border-radius:3px;width:100%;display:block;position:relative;overflow:hidden}.achievement-preview img{object-fit:contain;padding-bottom:26px}.achievement-preview--document img{padding:8px 10px 30px}.achievement-preview__caption{color:#687383;background:#f1f4f7;justify-content:flex-end;align-items:center;gap:6px;min-height:26px;padding:4px 8px;font-size:11px;line-height:18px;display:flex;position:absolute;inset:auto 0 0}.achievement-open-icon{flex-shrink:0;width:12px;height:12px}.achievement-preview:hover,.recognition-image:hover{border-color:#9da8b7}.achievement-viewer{color:#111925;background:#fdfdfc;border:1px solid #d7dbe0;border-radius:6px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;margin:auto;padding:0}.achievement-viewer::backdrop{background:#0a121dcc}.achievement-viewer__content{padding:16px 20px}.achievement-viewer header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.achievement-viewer h2{font-size:var(--type-subheading);line-height:1.25}.achievement-viewer button{color:#687383;background:0 0;border:0;border-radius:50%;flex-shrink:0;min-width:44px;min-height:44px;padding:6px 12px;font-size:14px;transition:color .16s,background-color .16s}.achievement-viewer button:hover{color:#27374a;background:#27374a0d}.achievement-viewer .achievement-viewer__close{background:0 0;border:0;padding:0;font-size:28px}.achievement-viewer__controls button{padding:6px;font-size:20px}.achievement-viewer__image{background:#edf0f3;height:min(68dvh,720px);position:relative}.achievement-viewer__image img{object-fit:contain}.achievement-viewer footer{font-size:var(--type-body);color:#515a68;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;padding-top:12px;display:flex}.achievement-viewer footer a{color:#0055c9;align-items:center;gap:6px;padding-block:10px;display:inline-flex}.achievement-viewer__controls{align-items:center;gap:4px;display:flex}.achievement-viewer__counter{text-align:center;color:#687383;min-width:42px;font-size:var(--type-meta);font-variant-numeric:tabular-nums}@media (max-width:760px){.achievements-page{padding-block:24px 36px}.achievements-page>h1,.projects-overview>h1{font-size:var(--type-page);margin-bottom:24px}.recognition-grid{grid-template-columns:minmax(0,1fr);gap:28px}.recognition-card+.recognition-card,.achievement-row+.achievement-row{border-top:1px solid #d7dbe0;padding-top:24px}.recognition-image{height:220px}.achievement-row{grid-template-columns:180px minmax(0,1fr);gap:16px}.achievement-viewer__content{padding:12px}.achievement-viewer h2{font-size:var(--type-subheading)}.achievement-viewer__image{height:60dvh}}@media (max-width:560px){.achievement-row{grid-template-columns:minmax(0,1fr);gap:12px}.achievement-preview{aspect-ratio:auto;height:200px}.achievement-rows{gap:28px}}@media (max-height:600px){.achievement-viewer__image{height:max(100px,min(50dvh,94dvh - 180px))}}.education-page{padding-block:24px 48px}.education-page__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:30px;display:flex}.education-page h1{font-size:var(--type-page);letter-spacing:-.4px;font-weight:600;line-height:1.25}.education-page .text-link{font-size:var(--type-body);min-height:32px}.education-page svg{flex-shrink:0}.education-record__heading{grid-template-columns:minmax(0,1fr) 14rem;align-items:baseline;gap:8px 30px;display:grid}.education-record h2{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.education-record__specialization{color:#354152;font-size:var(--type-subtitle);margin-top:5px}.education-record__school{font-size:var(--type-subtitle);color:#354152;margin-top:12px}.education-record__context,.education-record__date{font-size:var(--type-meta);color:#687383;line-height:1.6}.education-record__context{margin-top:4px}.education-record__date{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.education-scholarship{background:#f3f6fa;border-radius:4px;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:24px;margin-top:24px;padding:18px;display:grid}.education-scholarship__image{background:#e9edf2;height:164px;display:block;position:relative}.education-scholarship__image img{object-fit:contain;padding:6px}.education-scholarship__open{color:#687383;background:#f3f6fa;padding:4px;display:inline-flex;position:absolute;bottom:4px;right:4px}.education-scholarship h3,.education-teaching h3{font-size:var(--type-subheading);font-weight:600;line-height:1.25}.education-scholarship p,.education-teaching p{font-size:var(--type-body);max-width:76ch;margin-top:6px;line-height:1.65}.education-scholarship .education-scholarship__terms{color:#0055c9;font-weight:500}.education-scholarship .text-link,.education-teaching .text-link{margin-top:8px}.education-teaching{padding-top:24px}.education-teaching p{max-width:none}.education-coursework{padding-top:28px}.education-coursework>h3{font-size:var(--type-subheading);font-weight:600;line-height:1.25}.education-coursework__intro{font-size:var(--type-body);color:#687383;margin-top:6px}.education-coursework__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin-top:20px;display:grid}.education-coursework h4{font-size:var(--type-body);color:#354152;margin-bottom:10px;font-weight:600}.education-coursework ul{gap:8px;list-style:none;display:grid}.education-coursework li{font-size:var(--type-body);line-height:1.5}.education-university-link{margin-top:6px}.education-record--earlier{border-top:1px solid #d7dbe0;margin-top:24px;padding-top:24px}.education-record--earlier h2{font-size:var(--type-entry)}.education-record__status{font-size:var(--type-body);margin-top:12px}@media (max-width:760px){.education-page{padding-block:24px 36px}.education-page h1{font-size:var(--type-page)}.education-record__heading{grid-template-columns:minmax(0,1fr);gap:8px}.education-record__date{text-align:left}.education-record h2{font-size:var(--type-entry)}.education-coursework__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.education-scholarship{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.education-scholarship__image{height:180px}.education-coursework__grid{grid-template-columns:minmax(0,1fr)}}@media print{.education-page{width:100%;max-width:none;padding:0}.education-page__heading>a,.education-scholarship__image,.education-university-link{display:none}.education-record,.education-scholarship,.education-coursework__grid>div{break-inside:avoid}.education-scholarship{grid-template-columns:1fr}}.experience-page{--career-date-width:14rem;padding-block:24px 48px}.experience-page-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:30px;display:flex}.experience-section-title{font-size:var(--type-page);letter-spacing:-.4px;font-weight:600;line-height:1.25}.experience-page-heading>.text-link{font-size:var(--type-body)}.experience-page-heading>.text-link i{font-size:18px}.career-role{border-top:1px solid #d7dbe0;padding-block:28px}.career-role:first-of-type{border-top:0;padding-top:0}.career-role__identity,.career-brief__header{grid-template-columns:minmax(0,1fr)var(--career-date-width);align-items:baseline;gap:12px 30px;display:grid}.career-role__identity h2{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.career-role__company{font-size:var(--type-subtitle);color:#354152;margin-top:5px;line-height:1.5}.career-role__period{font-size:var(--type-meta);color:#687383;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.6}.career-role__details{max-width:920px}.career-contributions{font-size:var(--type-body);margin-top:17px;padding-left:19px;line-height:1.7;list-style:outside}.career-contributions li{padding-left:3px}.career-contributions li+li{margin-top:7px}.career-contributions li::marker{color:#8491a2}.career-contributions strong{color:#27374a;font-weight:600}.career-role__ongoing{color:#687383;font-size:var(--type-meta);margin-top:14px}.experience-links{flex-wrap:wrap;gap:10px 24px;margin-top:16px;display:flex}.experience-links .text-link{font-size:var(--type-body)}.experience-links .text-link i{font-size:19px}.career-progression{grid-template-columns:minmax(0,1fr)var(--career-date-width);font-size:var(--type-meta);color:#687383;align-items:baseline;gap:2px 30px;margin-top:10px;line-height:1.6;display:grid}.career-secondary{border-top:1px solid #d7dbe0;margin-top:4px;padding-block:26px}.career-secondary .experience-section-title{font-size:var(--type-section);margin-bottom:22px}.career-secondary__grid{grid-template-columns:minmax(0,1fr);gap:24px;display:grid}.career-brief{min-width:0}.career-brief h3{font-size:var(--type-entry);letter-spacing:-.4px;font-weight:600;line-height:1.25}.career-brief__description{font-size:var(--type-body);max-width:80ch;margin-top:10px;line-height:1.7}.teaching-courses{margin-top:12px}.teaching-courses li{grid-template-columns:minmax(0,1fr)var(--career-date-width);font-size:var(--type-body);align-items:baseline;gap:2px 30px;padding-block:5px;line-height:1.5;display:grid}@media (max-width:760px){.experience-page{padding-block:24px 36px}.experience-page-heading{margin-bottom:24px}.experience-section-title{font-size:var(--type-page)}.career-role{padding-block:24px}.career-role__identity,.career-brief__header,.career-progression,.teaching-courses li{grid-template-columns:minmax(0,1fr);gap:4px}.career-role__period{text-align:left}.teaching-courses li{padding-block:8px}.career-role__identity h2{font-size:var(--type-entry)}.career-contributions{line-height:1.65}.career-brief+.career-brief{border-top:1px solid #e0e3e7;padding-top:20px}}@media print{.site-header,.scrollup,.skip-link,.experience-page-heading>a{display:none}.experience-page{width:100%;max-width:none;padding:0}.career-role,.career-brief{break-inside:avoid}.career-contributions,.career-brief__description{font-size:11pt}.experience-page a{color:#27374a}}@media (min-width:1000px){.home-page .portfolio-hero{grid-template-columns:minmax(0,1fr) auto;gap:24px;padding-block:14px 16px}.home-page .portfolio-hero .eyebrow{font-size:var(--type-eyebrow);margin-bottom:6px}.home-page .portfolio-hero h1{font-size:var(--type-page);letter-spacing:-.4px;line-height:1.12}.home-page .hero-actions{gap:12px}.home-page .portfolio-button{font-size:var(--type-body);gap:8px;padding:7px 12px}.home-page .portfolio-button i{font-size:16px}.home-page .selected-work{padding-block:12px}.home-page .selected-work__heading{align-items:center;margin-bottom:12px}.home-page .selected-work__heading h2{font-size:var(--type-section);letter-spacing:-.4px}.home-page .selected-work__heading>a{margin-bottom:0}.home-page .text-link{font-size:var(--type-body);gap:6px}.home-page .text-link i{font-size:18px}.home-page .featured-grid{gap:28px}.home-page .project-visual{aspect-ratio:auto;height:clamp(80px,100dvh - 520px,250px);margin-bottom:8px}.home-page .professional-role{font-size:var(--type-meta);margin-bottom:4px;line-height:1.5}.home-page .featured-project h3{font-size:var(--type-entry);letter-spacing:-.4px}.home-page .project-description{font-size:var(--type-body);margin-top:4px;line-height:1.5}.home-page .project-evidence{font-size:var(--type-meta);gap:8px;margin-block:6px;line-height:1.5}.home-page .project-evidence i{font-size:19px}.home-page .project-evidence--metrics{gap:12px}.home-page .project-evidence--metrics>span{gap:6px}.home-page .project-evidence--metrics>span+span{padding-left:12px}.home-page .status-dot{width:8px;height:8px}.home-page .featured-project>.text-link{padding-top:4px}.home-page .behind-work{gap:12px 24px;margin-top:0;padding-block:8px}.home-page .behind-work .eyebrow{font-size:var(--type-eyebrow);margin-bottom:4px}.home-page .behind-work p,.home-page .behind-work .background-summary{font-size:var(--type-body)}.home-page .home-contact a{font-size:var(--type-body);gap:7px;padding-inline:14px}.home-page .home-contact a:first-child{padding-left:0}.home-page .home-contact a:last-child{padding-right:0}.home-page .home-contact i{font-size:19px}}
