:root{--deep-3:#04153b;--deep-2:#1c2755;--deep-1:#303e77;--text:#1d1d2d;--links:#193e86;--shallow-1:#82a8e5;--shallow-2:#b5d2ff;--white:#fff;--neutral-1:#e7e7ed;--neutral-2:#d6d7e4;--neutral-3:#a9abc2;--subtext:#515661;--radius-sm:10px;--radius-md:25px;--radius-lg:40px;--xxs:5px;--xs:10px;--sm:15px;--md:20px;--md-2:25px;--lg:30px;--xl:40px;--xxl:60px;--card-shadow:2px 4px 4px 0px rgba(0,0,0,.1),0px 6px 10px 0px rgba(0,0,0,.15);--card-shadow-2:1px 2px 2px 0px rgba(0,0,0,.05),0px 3px 5px 0px rgba(0,0,0,.1)}#app{display:flex;flex-direction:column;background-color:var(--deep-2);width:100%}body{background:var(--neutral-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:hidden}a,h1,h2,h3,h4,h5,h6,label,li,p{font-family:Inter;line-height:145%;font-style:normal;letter-spacing:normal;color:var(--text,#1d1d2d);leading-trim:both;text-edge:cap;margin:0}h1{text-transform:uppercase;font-size:50px;letter-spacing:5px}h1,h2{font-weight:700;color:var(--subtext)}h2{font-size:35px;line-height:125%;letter-spacing:.7px;padding-bottom:20px}h3{font-size:25px;font-weight:600}h3,h4{color:var(--subtext)}h4{font-size:var(--md);font-weight:500}h5{font-size:18px}h5,h6{color:var(--subtext);font-weight:400}h6{font-size:14px}p{font-size:16px;font-weight:400;margin-bottom:20px}a{text-decoration:none;font-size:18px}.card-tag,a,button,span{font-weight:500;leading-trim:both;text-align:center;text-edge:cap}.card-tag,button,span{display:flex;padding:var(--xxs) var(--xs);justify-content:center;align-items:center;gap:var(--xs);border-radius:var(--md-2);border:2px solid var(--white);box-shadow:var(--card-shadow-2);background:var(--white);color:var(--deep-1);white-space:nowrap;font-size:15px;font-style:normal;line-height:100%}.card-tag,span{padding:var(--xxs) var(--xs);border-radius:var(--radius-sm);background:var(--neutral-1);color:var(--text);border-color:var(--white);box-shadow:none}.text-link{display:flex;align-items:center;gap:var(--xxs);color:var(--links);leading-trim:both;text-edge:cap;font-size:18px;font-style:normal;font-weight:700;line-height:145%;text-transform:capitalize;text-align:left;svg{width:20px;height:20px;fill:var(--links)}&:hover{text-decoration:underline;color:var(--text);svg{fill:var(--text)}}}footer{display:flex;padding:var(--md) var(--xl);justify-content:space-between;align-items:center;align-content:center;row-gap:var(--lg);align-self:stretch;flex-wrap:wrap;background:var(--neutral-2);p{margin:0}a{color:var(--links);font-size:16px;&:hover{text-decoration:underline;color:var(--deep-1)}}.footer-link{font-size:15px;font-weight:600;& svg{width:15px;height:15px}}}.page-wrap{background:var(--neutral-1);transition:padding-top .3s ease-in-out;margin-top:400px;z-index:100;.page-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:var(--lg) var(--xl) 0}.page-textlink{padding:0 var(--xl) 0}.page-heading{display:flex;justify-content:flex-start;align-items:flex-start;align-content:flex-start;align-self:stretch;flex-wrap:wrap;margin:0;color:var(--subtext);text-align:left;padding-bottom:0}.resume-link{color:var(--links);font-size:16px;&:hover{text-decoration:underline;color:var(--deep-1)}}}.password-page{position:absolute;z-index:10000;width:100vw;height:100vh;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center}.password-card{background:var(--white);padding:var(--md-2);border-radius:var(--md);box-shadow:var(--card-shadow);border:2px solid var(--text);min-width:360px;.pc-header{fill:var(--deep-1);width:100%;display:flex;align-items:flex-start;justify-content:space-between;margin:5px 0 10px;gap:60px;h3{margin:-5px 0 0}}form{display:flex;flex-direction:column;gap:0;input{margin-top:5px;height:50px;border:1px solid var(--subtext);border-radius:5px;padding:0 10px}input::-moz-placeholder{font-size:15px}input::placeholder{font-size:15px}button{background:var(--deep-1);border-radius:30px;border:none;height:50px;color:var(--white)}button:hover{background:var(--deep-3);cursor:pointer}}}.error-text{height:20px;margin:5px 0 15px}.error{color:#b71717}.navbar{background:var(--deep-2);color:var(--neutral-1);display:flex;padding:var(--xl) var(--xl) var(--xxl);flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--xxl);position:fixed;width:calc(100% - 80px);top:0;z-index:0;transition:.3s ease-in-out;.navbarSkinny{flex-direction:row;width:100%;justify-content:space-between;min-height:46px}.brand,.navbarSkinny{display:flex;align-items:center}.brand{gap:var(--md-2)}.navLinks{display:flex;justify-content:flex-end;align-items:flex-start;gap:var(--xxs)}.navLinks a{color:var(--neutral-1);display:flex;padding:var(--sm) var(--xs);justify-content:center;align-items:center;border-bottom:2px solid var(--deep-2,#1c2755);color:var(--shallow-2,#b5d2ff);text-align:center;height:30px;&:hover{border-bottom-color:var(--shallow-2)}&.router-link-exact-active,&:active{border-bottom-color:var(--neutral-1,#e7e7ed);color:var(--neutral-1)}&:active svg{fill:var(--neutral-1)}}.navLinks a,h3{font-weight:700}h3,h4{color:var(--neutral-1)}h4{max-width:620px}.logo{height:36px;path{fill:var(--neutral-1)}}}.shrink{padding:var(--xs) var(--xl) 0 var(--xl);height:54px;overflow:hidden;z-index:101;transition:.2s ease-in-out;h3{transition:.3s ease-in-out;opacity:0}}.navLinks-mobile{display:none}.taglabel-section{display:flex;flex-direction:row;align-items:center;gap:var(--sm);justify-content:flex-start;padding:0;.tags-label{text-align:center;margin:0;white-space:nowrap}.tag-section{background:var(--neutral-1);display:flex;flex-direction:row;justify-content:flex-start;gap:var(--xs);flex-wrap:nowrap;padding-right:5px;button{display:flex;&:hover{border-color:var(--neutral-2);background:var(--white);transition:.1s ease-in-out;transform:translate(1px,2px);cursor:pointer;box-shadow:none;color:var(--text)}}.active{border:2px solid var(--neutral-2);transform:translate(1px,2px);box-shadow:none;background:var(--neutral-2);color:var(--text);&:hover{border-color:var(--neutral-2);background:var(--neutral-1);color:var(--deep-3)}}}}.project-section{display:flex;padding:var(--lg) var(--xl);align-items:flex-start;justify-content:center;align-content:flex-start;align-items:stretch;flex-wrap:wrap;gap:var(--md-2);.project-card{width:calc(33% - var(--sm));border-radius:var(--xl);background:var(--white);border:2px solid var(--white);box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;overflow:hidden;box-shadow:var(--card-shadow);.visual-wrapper{overflow:hidden;display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--neutral-2);.projectCard-visual{display:flex;height:250px;-o-object-fit:cover;object-fit:cover;align-self:center;justify-self:center;min-width:100%}}.projectCard-content{display:flex;padding:var(--sm) var(--md) var(--lg);flex-direction:column;align-items:flex-start;gap:var(--sm);.projectCard-title{color:var(--links);-webkit-line-clamp:1}.projectCard-description,.projectCard-title{display:-webkit-box;-webkit-box-orient:vertical;align-self:stretch;overflow:hidden;text-align:left;margin:0}.projectCard-description{-webkit-line-clamp:3}.card-tags{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:flex-start;width:100%;padding-top:var(--xxs);box-shadow:none}}&:hover{border:2px solid var(--neutral-2);background:var(--white);box-shadow:none;transition:.1s ease-in-out;transform:translate(2px,4px);.projectCard-title{text-decoration:underline;color:var(--deep-2)}}&:active{border:2px solid var(--deep-2);background:var(--neutral-1);box-shadow:none;transition:.1s ease-in-out}}}.project-page{margin-top:64px;h3{margin-bottom:var(--md)}}.navbar:has(+*+.project-page){padding:var(--xs) var(--xl) 0 var(--xl);height:54px;overflow:hidden;z-index:101;transition:.2s ease-in-out;h3{transition:.3s ease-in-out;opacity:0}}.data-header{padding:var(--xl) var(--xl) var(--md);flex-direction:row;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--md);max-width:1200px;margin:0 auto;.header-content{display:flex;max-width:400px;flex-direction:column;justify-content:space-between;align-items:flex-start;flex:1;align-self:stretch;gap:var(--xl)}.data-visual{flex:2;img{width:100%;border-radius:var(--radius-sm);border:1px solid var(--neutral-2)}}}.dataCards-section{display:flex;padding:var(--xl) var(--xl);align-items:flex-start;gap:var(--md);align-items:stretch;max-width:1200px;margin:0 auto;.dataCard{display:flex;padding:var(--sm);flex-direction:column;align-items:flex-start;gap:var(--sm);flex:1;background:var(--neutral-2);.link-text{font-size:16px}ul{padding:0 var(--md) 0;margin:0;li{margin:0 0 20px}}p{margin:0}.dataCard-title{display:flex;align-items:flex-start;gap:var(--xs);align-self:stretch;border-bottom:1px solid var(--neutral-3)}}}#objectives{flex:3}#links{flex:2}.data-section{display:flex;padding:var(--xl) var(--xl);flex-direction:column;align-items:center;gap:var(--xl);border-top:1px solid var(--neutral-2);background:var(--neutral-1);.data-wrap{gap:var(--xl);display:flex;flex-direction:column;align-self:center;max-width:800px;.data-content{display:flex;align-items:flex-start;gap:var(--lg);h3{min-width:115px}p,ul{margin-top:var(--xxs);li{margin-bottom:var(--sm)}}ul{margin-bottom:0}}.data-visual iframe,.data-visual img{height:auto;width:100%;flex:1 0 0;border-radius:var(--radius-sm);border:1px solid var(--neutral-2)}.data-visual iframe{aspect-ratio:16/9}.data-visual p{text-align:center;margin-top:var(--xxs);color:var(--subtext);font-size:14px}}}.resume-page{display:flex;flex-direction:row;padding:var(--md) var(--xl) 0;gap:var(--md);max-width:1200px;h3{margin:var(--md) 0;padding-bottom:var(--xs);border-bottom:2px solid var(--neutral-2)}.resume-left{flex:4;.work-experience{display:flex;flex-direction:row;gap:var(--md);h5{flex:1;align-self:stretch;line-height:125%;padding-top:var(--xxs)}.exp-roles{flex:3;padding-bottom:var(--lg);.exp-role{padding-bottom:var(--sm)}}}.ed-entry{margin:var(--lg) 0;h5,h6{margin:0 0 0 var(--sm)}}}.resume-right{flex:1;h4{margin:var(--lg) 0 var(--xs);line-height:125%}h5{margin:0 0 var(--xxs) var(--sm)}}}.social-links{display:flex;flex-direction:row;gap:var(--xxs);.text-link{flex-direction:column;font-size:14px;font-weight:400;height:30px;svg{width:30px;height:30px;fill:var(--shallow-1)}.link-text{display:none}}}@media only screen and (max-width:992px){.project-section{.project-card{width:calc(50% - var(--sm))}}.data-header{.data-visual{flex:1}}.page-wrap{.page-header{flex-direction:column}}.taglabel-section{margin-top:var(--sm);flex-direction:row;align-items:flex-start;gap:var(--xs);.tag-section{flex-wrap:wrap}.tag-section-label{text-align:left}}}@media only screen and (max-width:768px){:root{--xxs:3px;--xs:8px;--sm:12px;--md:16px;--md-2:20px;--lg:28px;--xl:34px;--xxl:42px}.project-section{.project-card{width:100%}}.navbar{width:calc(100% - var(--md-2));padding:var(--md) var(--md-2) var(--xxl)}.navbar:has(+*+.project-page){padding:var(--sm) var(--md-2) 0;height:51px}.shrink{padding:var(--sm) var(--md-2) 0;height:51px;.brand{align-self:flex-start}}.page-wrap{margin-top:300px}.project-page{margin-top:63px}.taglabel-section{.tag-section-label{text-align:left}}}@media only screen and (max-width:600px){.taglabel-section{.tag-section{padding:10px 0}}.project-section{padding:var(--md-2);.project-card{.visual-wrapper{height:200px;.projectCard-visual{width:100%}}.projectCard-content{padding:var(--sm) var(--md) var(--lg);gap:var(--sm)}}}.data-header{flex-direction:column-reverse;padding:20px 20px 0}.page-wrap{margin-top:240px}.project-page{margin-top:0}.dataCards-section{flex-direction:column;align-items:stretch;gap:10px;padding:20px}.data-section{padding:20px;gap:10px;.data-wrap{gap:15px;.data-content{flex-direction:column;gap:0}}}.resume-page{flex-direction:column;gap:0}.navbar{padding:var(--md-2) var(--md);width:calc(100% - var(--lg));.navLinks{display:none}}.navbar:has(+*+.project-page){padding:var(--md) var(--md) 0;height:51px}.shrink{height:36px;padding:var(--md);.navbarSkinny{min-height:25px}}.navLinks-mobile{display:inline-block;z-index:10000;position:sticky;top:18px;margin:24px 20px;.ham{display:flex;justify-content:flex-end;.bm-menu{background:var(--deep-2);max-width:100%;.bm-cross-button{width:35px;top:15px;right:15px;background:none;border:none;height:45px;.bm-cross{padding:0;border:none;min-height:35px;background:var(--shallow-2)}&:active .bm-cross,&:hover .bm-cross{background:var(--neutral-1)}}}}.bm-burger-button{display:flex;position:sticky;top:10px;right:10px;.bm-burger-bars{border:none;background-color:var(--shallow-2);padding:0;height:3px}&:active .bm-burger-bars,&:hover .bm-burger-bars{background-color:var(--neutral-1)}}a{font-weight:700;letter-spacing:1px;color:var(--neutral-1);display:flex;padding:var(--sm) var(--xs);justify-content:center;align-items:center;border-bottom:2px solid var(--deep-2,#1c2755);color:var(--shallow-2,#b5d2ff);text-align:center;height:30px;&:hover{border-bottom-color:var(--shallow-2)}&.router-link-exact-active,&:active{border-bottom-color:var(--neutral-1,#e7e7ed);color:var(--neutral-1)}&:active svg{fill:var(--neutral-1)}}h3{font-weight:700}h3,h4{color:var(--neutral-1)}h4{max-width:620px}.logo{height:36px;path{fill:var(--neutral-1)}}.bm-item-list{margin:0;display:flex;flex-direction:column;height:calc(100% - 60px);justify-content:space-between;align-items:center;.mobile-links{padding:60px;display:flex;flex-direction:column;gap:40px}.social-links{gap:var(--xxl)}}}.resume-page{margin-top:240px;padding:var(--lg) var(--md)}}.card-tags{display:flex;flex-wrap:wrap}.projectCard-visual,.visual-wrapper{display:flex;align-items:center}.projectCard-content{display:flex}