:root{--page-margin:0%;--font-body:"Noto Serif N", sans-serif;--text-primary:#222;--text-secondary:#666;--text-blue:#112d46;--back-ground:#f7f6f1;--resume-ink:#2d292d;--resume-purple:#413446;--resume-body:#625d61;--resume-muted:#817b80;--resume-line:#d4ced2}body{font-family:var(--font-body);color:var(--text-primary);background-image:url(/background_image3.png);background-color:var(--back-ground)}html,body,#root{min-height:100%;margin:0;padding:0}@font-face{font-family:Handjet;src:url(/fonts/handjet/Handjet-Regular.ttf)format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Handjet;src:url(/fonts/handjet/Handjet-Medium.ttf)format("truetype");font-weight:500;font-style:normal}@font-face{font-family:Handjet;src:url(/fonts/handjet/Handjet-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Noto Serif;src:url(/fonts/noto-serif/NotoSerif-VariableFont_wdth,wght.ttf)format("truetype");font-weight:100 900;font-style:normal}@font-face{font-family:Noto Serif N;src:url(/fonts/noto-serif/NotoSerif-VariableFont_wdth,wght.ttf)format("truetype");font-weight:400;font-style:normal}@font-face{font-family:In Serif;src:url(/fonts/instrumental-serif/InstrumentSerif-Italic.ttf)format("truetype");font-weight:600;font-style:italic}@font-face{font-family:In Serif N;src:url(/fonts/instrumental-serif/InstrumentSerif-Regular.ttf)format("truetype");font-weight:500;font-style:normal}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant_garamond/CormorantGaramond-VariableFont_wght.ttf)format("truetype");font-weight:300 700;font-style:normal}@font-face{font-family:Cormorant Garamond;src:url(/fonts/cormorant_garamond/CormorantGaramond-Italic-VariableFont_wght.ttf)format("truetype");font-weight:300 700;font-style:italic}.header{width:calc(100% - (var(--page-margin) * 2));margin:0 auto;padding-top:.8rem}.header__inner{justify-content:space-between;align-items:center;display:flex}.header__name{color:var(--text-blue);font-family:Cormorant Garamond,serif;font-size:2.4rem;font-style:italic;font-weight:700;text-decoration:none}.header__name:hover{text-decoration:underline}.header__nav{gap:1.5rem;display:flex}.header__nav a{color:gray;font-size:1.1rem;font-weight:400;text-decoration:none}.header__nav a.active{text-underline-offset:3px;text-decoration:underline}@media (width<=600px){.header__nav{gap:.8rem}.header__nav a{font-size:1rem}}.footer{border-top:1px solid #ddd;flex-shrink:0;width:100%}.footer__inner{box-sizing:border-box;justify-content:space-between;align-items:flex-end;width:100%;padding:.2rem 0;display:flex}.footer__contact{flex-direction:column;gap:.45rem;display:flex}.footer__email{color:#555;align-items:center;gap:.4rem;font-size:.85rem;text-decoration:none;display:flex}.footer__email img{opacity:.65;width:16px;height:16px}.footer__links{align-items:center;gap:.8rem;display:flex}.footer__links a{color:#777;align-items:center;gap:.35rem;font-size:.7rem;text-decoration:none;display:flex}.footer__links img{opacity:.6;width:15px;height:15px}.footer__email:hover,.footer__links a:hover{color:var(--text-blue)}.footer__email:hover img,.footer__links a:hover img{opacity:1}.footer__links a[aria-label]:has(img:only-child){padding:.1rem}.footer__right{align-self:flex-end}.footer__right p{color:#aaa;margin:0;font-size:.65rem}.app-shell{flex-direction:column;width:80%;max-width:840px;min-height:100vh;margin:0 auto;display:flex}.app-shell>main{flex:1;min-height:0}@media (width<=600px){.app-shell{width:90%}}.home_outer{padding:0 .7rem}.home_intro{margin-top:1.5rem}.home_inner{margin-bottom:1.2rem}.home_left{max-width:44rem}.home_left p{color:#413446;margin:0;font-size:.95rem;font-weight:300;line-height:1.55}.home_left p+p{margin-top:.6rem}.home_now{margin-top:1.6rem;margin-bottom:1.8rem}.home_now h2{color:#777;letter-spacing:.04em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:600}.home_now p{color:#555;max-width:44rem;margin:0;font-size:.85rem;line-height:1.5}@media (width<=600px){.home_intro{margin-top:1rem}.home_left p{font-size:.85rem}.home_left p+p{margin-top:.5rem}.home_now{margin-top:1.5rem;margin-bottom:1.5rem}}.contact-bar{justify-content:center;align-items:center;gap:1.5rem;padding-top:0;display:flex}.contact-bar a{color:gray;align-items:center;gap:.4rem;font-size:.8rem;text-decoration:none;display:flex}.contact-bar img{opacity:.6;width:18px;height:18px}.contact-bar a:hover{color:#333}.contact-bar a:hover img{opacity:1}@media (width<=600px){.contact-bar a{font-size:.6rem}.contact-bar img{opacity:.6;width:18px;height:18px}}.projects{padding-top:1rem}.project-title{color:#413446;margin:0;font-size:1.15rem;font-weight:500}.project-intro{color:#5a505b;padding-top:.35rem;font-size:.9rem;line-height:1.5}.project-item-container{align-items:flex-start;gap:1rem;padding-top:.75rem;display:flex}.project-item-left{flex-shrink:0}.project-item__image{width:100px;height:auto;display:block}.project-item-right{flex:1;min-width:0}.project-item__content{flex-direction:column;gap:.2rem;display:flex}.project-item__title{color:#413446;margin:0;font-size:.9rem;font-weight:600}.project-item__description{color:#413446;margin:0;font-size:.95rem;font-weight:500;line-height:1.4}.project-item__description a{color:#1248dd;text-underline-offset:2px;font-weight:500;text-decoration:underline}.project-item__content>a{color:#666;width:fit-content;margin-top:.2rem;font-size:.8rem;text-decoration:none}.project-item__content>a:hover{text-decoration:underline}.project-item__image-link,.project-item__title-link{color:inherit;text-decoration:none}.project-item__image-link{display:block}.project-item__title-link{width:fit-content}@media (width<=600px){.project-item-container{gap:.65rem;padding-top:.55rem}.project-item__image{object-fit:contain;width:80px;max-height:90px}.project-item__title{font-size:.85rem}.project-item__description{font-size:.75rem;line-height:1.4}.project-item__content>a{font-size:.75rem}}@media (width<=400px){.project-item__image{width:65px;max-height:75px}.project-item-container{gap:.6rem}.project-item__description{font-size:.75rem}}.blog_outer{flex-direction:column;align-items:center;margin-top:2rem;display:flex}.post-item{align-items:baseline;gap:4rem;text-decoration:none;display:flex}.post-item__title{width:400px;color:var(--text-blue);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;margin:0;font-size:1.5rem;font-weight:500;overflow:hidden}.post-item__date{color:#777;margin:0;font-size:.85rem;font-weight:700}@media (width<=600px){.post-item{gap:1rem}.post-item__title{width:220px;font-size:1rem}.post-item__date{font-size:.75rem}}.resume_outer{color:#2f2c2f;width:calc(100% + 4rem);padding-top:2rem}.resume_header{border-bottom:1px solid var(--resume-line);justify-content:space-between;align-items:flex-start;gap:3rem;margin-bottom:1.5rem;padding-bottom:1.25rem;display:flex}.resume_header__meta{flex-direction:column;gap:.18rem;display:flex}.resume_header__label{color:var(--resume-purple);letter-spacing:-.01em;margin:0 0 .35rem;font-size:.95rem;font-weight:600}.resume_header__meta p{color:#888285;margin:0;font-size:.73rem;line-height:1.4}.resume_header__contact{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.resume_header__contact a{color:#777276;font-size:.72rem;text-decoration:none}.resume_header__contact a:hover{color:var(--text-blue)}.resume-pdf{text-underline-offset:3px;margin-bottom:.3rem;color:#353135!important;-webkit-text-decoration:underline #d0cdcf!important;text-decoration:underline #d0cdcf!important}.resume-pdf:hover{text-decoration-color:#353135!important}.resume_inner{box-sizing:border-box;grid-template-columns:1.7fr .85fr;gap:4rem;width:100%;padding-top:0;display:grid}.left_pane,.right_pane{min-width:0}.right_pane .resume-section{margin-bottom:2.5rem}.resume-education{flex-direction:column;gap:1.1rem;display:flex}.resume-education__item{flex-direction:column;gap:.15rem;display:flex}.resume-education__degree{color:#373337;margin:0;font-size:.78rem;font-weight:500;line-height:1.35}.resume-education__school{color:#8a8789;margin:0;font-size:.69rem;line-height:1.45}.resume-education__detail{color:#817b80;margin:.1rem 0 0;font-size:.7rem;line-height:1.35}.resume-education__recognition{border-top:1px solid #d4ced2;margin-top:.3rem;padding-top:.8rem}.resume-education__school a{color:inherit;text-decoration:none}.resume-education__school a:hover{color:#363236;text-underline-offset:2px;text-decoration:underline}.resume-coursework__list{flex-direction:column;gap:.48rem;display:flex}.resume-coursework__list a{color:#7b787a;font-size:.7rem;line-height:1.4;text-decoration:none}.resume-coursework__list a:hover{color:#363236;text-underline-offset:2px;text-decoration:underline}.resume-tech{flex-direction:column;gap:1rem;display:flex}.resume-tech__group{flex-direction:column;gap:.12rem;display:flex}.resume-tech__group span{color:#575357;text-transform:uppercase;letter-spacing:.06em;font-size:.67rem;font-weight:600;line-height:1.3}.resume-tech__group p{color:#7d797c;margin:0;font-size:.73rem;line-height:1.45}@media (width<=700px){.resume_outer{width:100%;padding-top:1.25rem}.resume_header{flex-direction:column;gap:1.25rem;padding-bottom:2rem}.resume_header__contact{align-items:flex-start}.resume_header__identity h1{font-size:1.55rem}.resume_inner{flex-direction:column;gap:2.25rem;padding-top:.9rem;display:flex}.right_pane{order:1;margin-bottom:0}.left_pane{order:2;margin-top:0;padding-top:0}.right_pane .resume-section{margin-bottom:1.7rem}}.resume-section{margin-bottom:2rem}.resume-section__title{text-transform:uppercase;color:var(--resume-purple);letter-spacing:.11em;margin:0 0 .7rem;font-size:.7rem;font-weight:650}.resume-section__content{border-top:1px solid #ddd9d7;padding-top:.9rem}@media (width<600px){.resume-section{margin-bottom:0}}.resume-work{margin-bottom:2.6rem;position:relative}.resume-work__content{width:100%;min-width:0}.resume-work__header{justify-content:space-between;align-items:baseline;gap:1.5rem;display:flex}.resume-work__company{color:var(--resume-ink);letter-spacing:-.015em;margin:0;font-size:1.1rem;font-weight:550;text-decoration:none}.resume-work__company:hover{color:#353135;text-underline-offset:3px;-webkit-text-decoration:underline #c9c6c8;text-decoration:underline #c9c6c8}.resume-work__role{color:#989497;text-align:right;white-space:nowrap;margin:0;font-size:.7rem;font-weight:400;line-height:1.3}.resume-work__description{color:var(--resume-body);margin:.6rem 0 0;padding-left:1rem;font-size:.79rem;line-height:1.6}.resume-work__company-link{color:inherit;text-decoration:none;position:static}.resume-work__company-link:hover .resume-work__company{color:var(--text-blue)}.resume-work__company-link:hover .resume-work__image{opacity:1}.resume-work__description li{padding-left:.2rem}.resume-work__description li::marker{color:#c5c2c4}.resume-work__description a{color:inherit;text-underline-offset:2px;-webkit-text-decoration:underline #c8c5c7;text-decoration:underline #c8c5c7}.resume-work__description a:hover{color:#353135;text-decoration-color:#353135}.resume-work__image{opacity:.85;width:30px;height:30px;position:absolute;top:.1rem;right:calc(100% + 1rem)}.resume-work__image img{object-fit:contain;width:100%;height:100%}@media (width<=700px){.resume-work{margin-bottom:2.2rem}.resume-work__header{gap:.75rem}.resume-work__company{font-size:.95rem}.resume-work__company--compact{font-size:.9rem}.resume-work__role{font-size:.64rem}.resume-work__description{font-size:.73rem;line-height:1.55}.resume-work__image{display:none}}.resume-project{margin-bottom:2rem;position:relative}.resume-project__content{width:100%;min-width:0}.resume-project__title{color:#2d292d;letter-spacing:-.015em;margin:0;font-size:1rem;font-weight:550;line-height:1.3;text-decoration:none;transition:color .15s;display:inline-block}.resume-project__description{color:#625d61;margin-top:.45rem;font-size:.79rem;line-height:1.58}.resume-project__description ul{margin:0;padding-left:1rem}.resume-project__description li::marker{color:#c5c0c4}.resume-project__image{opacity:.85;width:40px;height:40px;position:absolute;top:.05rem;right:calc(100% + 1rem)}.resume-project__image img{object-fit:contain;width:100%;height:100%;display:block}.resume-project__link{color:inherit;align-items:center;text-decoration:none;display:inline-flex}.resume-project__link:hover .resume-project__title{color:var(--text-blue)}.resume-project__title{color:#2d292d;letter-spacing:-.015em;margin:0;font-size:1rem;font-weight:550;line-height:1.3}@media (width<=700px){.resume-project{margin-bottom:1.7rem}.resume-project__title{font-size:.95rem}.resume-project__description{font-size:.76rem;line-height:1.55}.resume-project__image{display:none}}.blog-post{max-width:700px;margin:0 auto;padding:2rem 1rem 4rem}.blog-post__title{color:var(--text-blue);margin:0;font-size:2rem;font-weight:500}.blog-post__date{color:#999;margin:.3rem 0 2rem;font-size:.8rem;font-weight:600}.blog-post__content{color:#413446;font-size:1rem;line-height:1.7}.blog-post__content p{margin:0 0 1rem}
