:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;--text-primary: #142c3e;--text-secondary: #344b5c;--text-muted: #586c79;--surface: #fcfdfd;--surface-subtle: #f0f5f5;--border: #d4dfe2;--accent: #086d70;--accent-soft: #e4f1ef;--interactive: #125d63;--interactive-hover: #0a454c;color:var(--text-primary);background:var(--surface)}*{box-sizing:border-box}body,p,h1,h2,h3{margin:0}a{color:var(--interactive);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--interactive-hover)}button,.button{font:inherit;cursor:pointer}button{border:0}a,button,summary{transition:color .15s ease,background-color .15s ease,border-color .15s ease}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.site-top,.web-resume{max-width:1244px;margin:0 auto;padding:0 32px}.site-top{display:flex;justify-content:space-between;align-items:center;padding-top:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}.site-top>a{display:flex;gap:8px;align-items:center;color:var(--text-primary);font-size:16px;text-decoration:none;font-weight:650}.site-top>a span{color:var(--text-muted);margin-left:-8px;font-weight:400}.site-top>span{color:var(--text-muted);font-size:11px;letter-spacing:.12em}.hero{padding-top:54px}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.15em;color:var(--text-muted)}h1{font-size:clamp(44px,5.5vw,76px);letter-spacing:-.055em;line-height:1.08;margin-top:17px;font-weight:750}.role-title{font-size:clamp(25px,3vw,34px);letter-spacing:-.025em;color:var(--accent);margin-top:16px;font-weight:650}.headline{color:var(--text-secondary);font-size:18px;line-height:1.6;margin-top:7px}.role-picker{margin:30px 0 25px}.role-picker>p{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--text-secondary)}.segmented{display:inline-flex;padding:5px;border:1px solid var(--border);background:var(--surface-subtle);border-radius:10px;gap:5px}.segmented button{border-radius:6px;padding:15px 27px;color:var(--text-secondary);background:transparent;font-size:15px;font-weight:650;min-height:48px}.segmented button:hover{background:var(--accent-soft);color:var(--interactive)}.segmented button[aria-pressed=true]{background:var(--interactive);color:var(--surface)}.summary{font-size:20px;line-height:1.6;max-width:890px;text-wrap:pretty}.hero-bottom{margin-top:22px}address{font-style:normal;display:flex;flex-wrap:wrap;gap:10px 23px;color:var(--text-secondary);font-size:16.5px;line-height:1.6}address a{color:inherit;text-decoration:none}address a:hover{color:var(--interactive);text-decoration:underline}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:25px}.button,.primary{display:inline-flex;align-items:center;gap:22px;padding:13px 20px;border-radius:5px;font-size:14px;font-weight:650;text-decoration:none;border:1px solid var(--border);color:var(--text-primary);background:var(--surface)}.primary{background:var(--text-primary);color:var(--surface);border-color:var(--text-primary)}.primary:hover{background:var(--interactive-hover);color:var(--surface)}.background-link{font-size:14px;font-weight:650;text-decoration:none}.background-link:hover{text-decoration:underline}.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:32px 0;margin-top:38px;border-top:1px solid var(--border)}.capabilities>div{border-top:3px solid var(--accent);padding-top:15px}.capabilities h2{font-size:16px;letter-spacing:.025em;line-height:1.4;text-transform:uppercase}.capabilities p{color:var(--text-secondary);font-size:16.5px;line-height:1.8;margin-top:9px}.resume-section{display:grid;grid-template-columns:165px minmax(0,1fr);column-gap:42px;border-bottom:1px solid var(--border);padding:44px 0;scroll-margin-top:20px}.resume-section>h2{font-size:16px;font-weight:750;text-transform:uppercase;letter-spacing:.065em;line-height:1.6;color:var(--accent)}.entry+.entry{margin-top:32px}.entry-heading{display:flex;justify-content:space-between;gap:20px;align-items:baseline}h3{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.4}h3 a{color:inherit;text-decoration:none}h3 a:hover{color:var(--accent);text-decoration:underline}.organization,.subtitle{font-size:17.5px;margin-top:5px;line-height:1.6;color:var(--text-secondary)}.organization{font-weight:600}.organization span{color:var(--text-secondary);font-weight:400}.date{color:var(--text-secondary);font-size:15px;font-weight:550;line-height:1.6;white-space:nowrap;text-align:right}.bullets{font-size:18.5px;line-height:1.6;padding-left:19px;margin:13px 0 0}.bullets li{padding-left:4px;margin-top:7px;text-wrap:pretty}.bullets li::marker{color:var(--accent);font-size:.8em}.bullets strong{font-weight:650}.more-details{display:none;margin-top:12px}.more-details summary{cursor:pointer;color:var(--interactive);font-size:13px;font-weight:650;width:fit-content;padding:5px 0}.project h3{font-size:29px;letter-spacing:-.035em}.external{display:inline-block;color:var(--accent);font-size:.8em}.project .subtitle{font-size:16px;color:var(--text-muted)}.technologies{margin-top:16px;font-size:15px;line-height:1.7;color:var(--text-secondary)}.project+.project{margin-top:38px;padding-top:34px;border-top:1px solid var(--border)}.skill-groups{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 35px}.skill-groups dt{font-size:17.5px;font-weight:700;color:var(--text-primary)}.skill-groups dd{margin:7px 0 0;color:var(--text-secondary);font-size:17.5px;line-height:1.65}.skill-groups dd strong{color:var(--text-primary);font-weight:650}.gpa{font-size:14px;color:var(--text-muted);font-weight:500;margin-left:7px;white-space:nowrap}.credential+.credential{margin-top:16px}.credential p,.recognition{color:var(--text-secondary);font-size:16.5px;line-height:1.8;margin-top:5px}.recognition{margin-top:18px}.web-resume .recognition>span{display:block;margin-top:8px}.web-resume .recognition>.separator{display:none}.publications .entry>p{font-size:17px;line-height:1.7;margin-top:8px}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 0 18px;font-size:13px}footer p{color:var(--text-muted)}footer a{font-weight:600;text-decoration:none}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{display:block;padding:14px;background:var(--surface)}#print-resume{display:none}@media (max-width: 1050px){.resume-section{grid-template-columns:150px minmax(0,1fr);gap:28px}.entry-heading{flex-wrap:wrap;gap:7px 18px}.date{text-align:left}}@media (max-width: 800px){.desktop-bullet{display:none}.more-details{display:block}.site-top,.web-resume{padding-left:24px;padding-right:24px}.hero{padding-top:36px}.resume-section{grid-template-columns:1fr;gap:23px;padding:32px 0}.capabilities{gap:20px}.capabilities h2{font-size:14px}.segmented{display:flex}.segmented button{flex:1;padding:14px 15px}}@media (max-width: 520px){.site-top,.web-resume{padding-left:20px;padding-right:20px}.site-top>span{display:none}.headline{font-size:16px}.summary{font-size:18px}.segmented{gap:3px;padding:4px}.segmented button{min-width:0;padding:12px 6px;font-size:12px;line-height:1.5}.capabilities{grid-template-columns:1fr;gap:20px;margin-top:30px}.capabilities>div{padding-top:12px;border-top-width:2px}.capabilities h2{font-size:16px}.capabilities p{margin-top:5px}.skill-groups{grid-template-columns:1fr;gap:22px}.bullets{font-size:17.5px}.actions{gap:20px}h3{font-size:19px}.project h3{font-size:27px}footer{flex-direction:column}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.visitor-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-top:8px;color:var(--text-muted);font-size:12px;line-height:1.6}.visitor-total{display:flex;align-items:baseline;gap:4px}.visitor-total strong{font-size:inherit;font-weight:600;font-variant-numeric:tabular-nums}.visitor-detail{min-width:0}.visitor-countries{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;margin:0;padding:0}@page{size:letter;margin:.4in .5in}.print-resume{--print-ink: #152c3c;--print-secondary: #263d4b;--print-rule: #748a94;color:var(--print-ink);background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.24}.print-resume h1,.print-resume h2,.print-resume h3{color:var(--print-ink)}.print-resume h1{text-transform:uppercase;font-size:26pt;letter-spacing:-.7pt;margin:0;line-height:1.06}.print-focus{font-size:11.5pt;line-height:1.25;margin:4pt 0;font-weight:700;letter-spacing:.4pt;text-transform:uppercase;color:var(--print-secondary)}.print-resume address{font-size:9pt;gap:3pt 0;line-height:1.3;color:var(--print-secondary)}.print-resume address>*+*:before{content:"·";margin:0 7pt}.print-summary{margin-top:6pt;font-size:10pt;line-height:1.27}.print-resume .resume-section{display:block;padding:0;margin-top:5.5pt;border:0}.print-resume h2{font-size:10pt;line-height:1.2;text-transform:uppercase;letter-spacing:.8pt;border-bottom:.7pt solid var(--print-rule);margin:0 0 4pt;padding-bottom:2pt;break-after:avoid}.print-resume h3{font-size:10.5pt;line-height:1.2;letter-spacing:0}.print-resume .entry{break-inside:avoid}.print-resume .entry+.entry{margin-top:4pt}.print-resume .entry-heading{display:flex;flex-wrap:nowrap;align-items:baseline;gap:8pt;break-after:avoid}.print-resume .date{font-size:9pt;font-weight:600;line-height:1.2;padding:0;text-align:right;color:var(--print-secondary)}.print-resume .organization,.print-resume .subtitle{font-size:9pt;font-weight:400;line-height:1.2;margin-top:1pt;color:var(--print-secondary)}.print-resume .organization span{color:inherit}.print-resume .bullets{font-size:10pt;line-height:1.24;margin:2pt 0 0;padding-left:11pt}.print-resume .bullets li{padding-left:1pt;margin-top:1.5pt;orphans:2;widows:2;text-wrap:wrap}.print-resume .bullets strong{font-weight:700}.print-resume .bullets li::marker{color:var(--print-ink)}.print-resume .project h3,.print-resume .project .subtitle{display:inline}.print-resume .project .subtitle:before{content:" — "}.print-resume .project+.project{border:0;padding-top:0;margin-top:4pt}.print-resume a{color:inherit;text-decoration:none}.print-resume .external{display:none}.print-resume .skill-groups{display:block}.print-resume .skill-groups>div{margin-top:2pt;font-size:9.5pt;line-height:1.24}.print-resume dt,.print-resume dd{display:inline;font-size:9.5pt;color:var(--print-ink);line-height:1.24;margin:0}.print-resume dt:after{content:": "}.print-resume .education h3,.print-resume .education .organization{display:inline}.print-resume .education .organization:before{content:" · "}.print-resume .gpa{color:var(--print-secondary);font-size:9pt}.print-resume .credential{break-inside:avoid;margin-top:3pt}.print-resume .credential h3,.print-resume .credential p{display:inline;font-size:9pt;line-height:1.24;color:var(--print-ink)}.print-resume .credential h3:after{content:" — "}.print-resume .recognition{font-size:9pt;line-height:1.24;margin-top:3pt;color:var(--print-secondary)}.print-project-page{break-before:page}.continuation{font-size:10pt;border-bottom:.7pt solid var(--print-rule);padding-bottom:5pt;margin-bottom:12pt}.print-project-page .entry+.entry{margin-top:13pt}.print-project-page .bullets{line-height:1.4}.print-resume .publications .entry h3{line-height:1.16}.print-resume .publications .publication-meta{color:var(--print-secondary);font-size:9pt;line-height:1.2;margin-top:1pt}body.print-preview .web-resume,body.print-preview .site-top,body.print-preview .skip-link{display:none}body.print-preview #print-resume{display:block;width:8.5in;margin:24px auto}@media screen{body.print-preview{overflow-x:auto;background:var(--surface-subtle)}.print-page{width:8.5in;min-height:11in;padding:.4in .5in;background:#fff;box-shadow:0 2px 18px #152c3c18}.print-page+.print-page{margin-top:24px}}#print-toolbar:not([hidden]){max-width:864px;margin:20px auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}@media screen and (max-width: 640px){#print-toolbar:not([hidden]){flex-wrap:wrap}#print-toolbar>span{display:none}body.print-preview #print-resume{margin:20px 0}}@media print{body{margin:0;background:#fff}body>*:not(#print-resume){display:none!important}#print-resume,body.print-preview #print-resume{display:block;width:auto;max-width:none;padding:0;margin:0;box-shadow:none}.print-resume *{animation:none!important;transition:none!important}}
