@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-leading:initial;--tw-space-y-reverse:0}}}.resume-wrap{max-width:var(--container-3xl,48rem);padding-inline:calc(var(--spacing,.25rem) * 4);padding-top:calc(var(--spacing,.25rem) * 4);padding-bottom:calc(var(--spacing,.25rem) * 20);margin-inline:auto}.resume-header{margin-bottom:calc(var(--spacing,.25rem) * 12);padding-bottom:calc(var(--spacing,.25rem) * 8);border-bottom:1px solid rgb(var(--color-border))}.resume-eyebrow{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;letter-spacing:.12em;color:rgb(var(--color-text-mute));font-family:IBM Plex Mono,SF Mono,Monaco,monospace}.resume-header-row{margin-top:calc(var(--spacing,.25rem) * 4);justify-content:space-between;align-items:flex-end;gap:calc(var(--spacing,.25rem) * 4);flex-wrap:wrap;display:flex}.resume-header-identity{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.resume-h1{letter-spacing:-.03em;word-spacing:-.25em;color:rgb(var(--color-text-base));font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:clamp(1.875rem,4vw,2.5rem);font-weight:600;line-height:1}.resume-subtitle{font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ))}@media(min-width:640px){.resume-subtitle{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)))}}.resume-subtitle{color:rgb(var(--color-text-mute));font-weight:400}.download-btn{align-items:center;gap:calc(var(--spacing,.25rem) * 2);border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));letter-spacing:.1em;border-width:1px;border-color:rgb(var(--color-border));color:rgb(var(--color-text-base));background:0 0;display:inline-flex}.download-btn:hover{border-color:rgb(var(--color-accent));color:rgb(var(--color-accent));background-color:rgba(var(--color-accent),.06)}.download-btn svg{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.download-btn:disabled{cursor:not-allowed;opacity:.5}.resume-content{gap:calc(var(--spacing,.25rem) * 14);flex-direction:column;display:flex}.resume-section{width:100%;display:block}.section-heading{margin-bottom:calc(var(--spacing,.25rem) * 6);padding-bottom:calc(var(--spacing,.25rem) * 0);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;letter-spacing:.18em;color:rgb(var(--color-text-mute));padding-left:0;position:relative;border-bottom:none!important}.section-heading:after{content:"";background-color:rgb(var(--color-border));width:100%;height:1px;margin-top:.75rem;display:block}.personal-info{gap:calc(var(--spacing,.25rem) * 5);flex-direction:column;display:flex;background:0 0!important}.personal-header .section-title{font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height, 1.2 ));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}@media(min-width:640px){.personal-header .section-title{font-size:var(--text-4xl,2.25rem);line-height:var(--tw-leading,var(--text-4xl--line-height,calc(2.5 / 2.25)))}}.personal-header .section-title{letter-spacing:-.02em;word-spacing:-.25em;color:rgb(var(--color-text-base))!important}.personal-header{margin-bottom:calc(var(--spacing,.25rem) * 2);text-align:left}.job-title{margin-top:calc(var(--spacing,.25rem) * 1);font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height, 1.5 ));color:rgb(var(--color-text-mute))!important;opacity:1!important;font-weight:400!important}.contact-info{column-gap:calc(var(--spacing,.25rem) * 8);row-gap:calc(var(--spacing,.25rem) * 2);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:640px){.contact-info{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-item{align-items:baseline;gap:calc(var(--spacing,.25rem) * 3);display:flex}.contact-label{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;letter-spacing:.08em;min-width:6.5rem!important;color:rgb(var(--color-text-mute))!important;font-weight:500!important}.contact-link{text-decoration:none;transition:opacity .15s;color:rgb(var(--color-accent))!important}.contact-link:hover{text-decoration:underline;-webkit-text-decoration-color:rgb(var(--color-accent));text-decoration-color:rgb(var(--color-accent));text-underline-offset:3px}.summary-text{--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:rgb(var(--color-text-base))!important}.experience-list,.education-list,.projects-list,.publications-list,.awards-list{flex-direction:column;display:flex}.certifications-list{column-gap:calc(var(--spacing,.25rem) * 8);row-gap:calc(var(--spacing,.25rem) * 4);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:640px){.certifications-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.experience-item,.education-item,.project-item,.publication-item,.award-item{gap:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 6);border-top:1px solid rgb(var(--color-border));flex-direction:column;display:flex;border-left:none!important;padding-left:0!important}.experience-item:first-child,.education-item:first-child,.project-item:first-child,.publication-item:first-child,.award-item:first-child{border-top:none;padding-top:0}.certification-item{gap:calc(var(--spacing,.25rem) * 1);padding-block:calc(var(--spacing,.25rem) * 0);flex-direction:column;display:flex;border-left:none!important;padding-left:0!important}.job-details,.education-details,.publication-details{margin-bottom:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 1);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;flex-direction:column;display:flex}@media(min-width:640px){.job-details,.education-details,.publication-details{margin-bottom:calc(var(--spacing,.25rem) * 0)}}.job-details,.education-details,.publication-details{letter-spacing:.08em;flex:0 0 9rem;order:-1;color:rgb(var(--color-text-mute))!important;opacity:1!important;text-align:left!important}.cert-date,.award-year{margin-bottom:calc(var(--spacing,.25rem) * 3);padding-top:calc(var(--spacing,.25rem) * 1);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase}@media(min-width:640px){.cert-date,.award-year{margin-bottom:calc(var(--spacing,.25rem) * 0)}}.cert-date,.award-year{letter-spacing:.08em;flex:0 0 9rem;order:-1;color:rgb(var(--color-text-base))!important;opacity:1!important;font-weight:500!important}.job-dates,.education-dates,.publication-year{color:rgb(var(--color-text-base))!important;opacity:1!important;font-weight:500!important}.job-location,.education-location{margin-top:calc(var(--spacing,.25rem) * .5);color:rgb(var(--color-text-mute))!important;font-weight:400!important}.job-title-company,.degree-info,.publication-title-type,.award-title-org{min-width:calc(var(--spacing,.25rem) * 0);flex:1}.award-org{margin-top:calc(var(--spacing,.25rem) * 1);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:rgb(var(--color-accent))!important;font-weight:500!important}.job-header,.education-header,.cert-header,.publication-header,.award-header{flex-direction:column;width:100%;display:flex}@media(min-width:640px){.job-header,.education-header,.cert-header,.publication-header,.award-header{gap:calc(var(--spacing,.25rem) * 6);flex-direction:row}}.job-position,.degree-title,.cert-name,.project-name,.publication-title,.award-name{font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));line-height:1.3;color:rgb(var(--color-text-base))!important;font-weight:600!important}.company-name,.institution-name,.cert-issuer,.publication-type{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));margin-top:.25rem;color:rgb(var(--color-accent))!important;opacity:1!important;font-weight:500!important}.field-of-study,.cert-id,.award-description{margin-top:calc(var(--spacing,.25rem) * 1);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:rgb(var(--color-text-mute))!important;opacity:1!important}.experience-item>.job-description,.experience-item>.achievements-list,.education-item>.education-achievements,.award-item>.award-description{margin-left:0}@media(min-width:640px){.experience-item>.job-description,.experience-item>.achievements-list,.education-item>.education-achievements,.award-item>.award-description{margin-left:10.5rem}}.project-item{padding-left:0!important}.project-item>*{margin-left:0!important}@media(min-width:640px){.certification-item.has-date>.cert-issuer,.certification-item.has-date>.cert-id{margin-left:10.5rem}}.certification-item.no-date .cert-header{display:block}.certification-item.no-date>.cert-issuer,.certification-item.no-date>.cert-id,.publication-item>p,.publication-item>div:not(.publication-header){margin-left:0}@media(min-width:640px){.publication-item>p,.publication-item>div:not(.publication-header){margin-left:10.5rem}}.job-description,.project-description{margin-top:calc(var(--spacing,.25rem) * 3);--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);color:rgb(var(--color-text-base))!important}.achievements-list,.education-achievements,.project-achievements{margin-top:calc(var(--spacing,.25rem) * 3)}:where(:is(.achievements-list,.education-achievements,.project-achievements)>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing,.25rem) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing,.25rem) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}.achievements-list,.education-achievements,.project-achievements{padding-left:calc(var(--spacing,.25rem) * 0);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:var(--leading-relaxed,1.625);line-height:var(--leading-relaxed,1.625);list-style:none;color:rgb(var(--color-text-base))!important}.achievement-item{padding-left:1.25rem;position:relative}.achievement-item:before{content:"→";color:rgb(var(--color-accent));font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:.875rem;position:absolute;top:0;left:0}.skills-grid{column-gap:calc(var(--spacing,.25rem) * 10);row-gap:calc(var(--spacing,.25rem) * 8);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media(min-width:1024px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.skill-category{gap:calc(var(--spacing,.25rem) * 3);flex-direction:column;display:flex}.skill-category-title{padding-bottom:calc(var(--spacing,.25rem) * 2);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid rgb(var(--color-border));color:rgb(var(--color-text-mute))!important;font-weight:500!important}.skill-tags{gap:calc(var(--spacing,.25rem) * 1.5);flex-wrap:wrap;display:flex}.skill-tag{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));border:1px solid rgb(var(--color-border));align-items:center;display:inline-flex;color:rgb(var(--color-text-base))!important;background:0 0!important;border-radius:0!important}.skill-tag:hover{border-color:rgb(var(--color-accent))!important;color:rgb(var(--color-accent))!important;background-color:rgba(var(--color-accent),.06)!important}.project-technologies{margin-top:calc(var(--spacing,.25rem) * 3);align-items:center;gap:calc(var(--spacing,.25rem) * 2);flex-wrap:wrap;grid-column-start:2;display:flex}.tech-label{margin-right:calc(var(--spacing,.25rem) * 1);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));text-transform:uppercase;letter-spacing:.08em;color:rgb(var(--color-text-mute))!important;font-weight:500!important}.tech-tag{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);font-family:IBM Plex Mono,SF Mono,Monaco,monospace;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));border:1px solid rgb(var(--color-border));align-items:center;display:inline-flex;color:rgb(var(--color-text-base))!important;background:0 0!important;border-radius:0!important}@media print{.resume-eyebrow,.resume-header-row .download-btn{display:none!important}.experience-item,.education-item,.certification-item,.project-item,.publication-item,.award-item{border-top:1px solid #cfcfcf!important}.skill-tag,.tech-tag{border:1px solid #cfcfcf!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}
