:root{--ink:#202a39;--muted:#576476;--blue:#204f91;--line:#dfe5ed;--soft:#f5f8fc;--serif:-apple-system,'.SFNSText-Regular','San Francisco',Roboto,'Segoe UI','Helvetica Neue','Lucida Grande',Arial,sans-serif;--sans:-apple-system,'.SFNSText-Regular','San Francisco',Roboto,'Segoe UI','Helvetica Neue','Lucida Grande',Arial,sans-serif}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font:1rem/1.75 var(--sans)}a{color:var(--blue);text-underline-offset:5px}a:hover{text-decoration:underline}a:focus-visible{outline:3px solid #467aca;outline-offset:5px}p{margin:0 0 1rem}h1,h2,h3{line-height:1.3;margin:0;font-weight:500}h1,h2{font-family:var(--serif)}h3{font-size:1.06rem;font-weight:600}strong{font-weight:600}section[id]{scroll-margin-top:30px}.skip{position:absolute;left:12px;top:-100px;padding:8px;background:#fff;z-index:5}.skip:focus{top:8px}.topbar{border-bottom:1px solid var(--line);background:#fff}.nav-wrap{max-width:1120px;margin:auto;padding:22px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px}.wordmark{font:600 1.25rem var(--serif);color:var(--ink);text-decoration:none;white-space:nowrap}.wordmark span{color:var(--blue)}nav{display:flex;gap:27px;flex-wrap:wrap}nav a{font-size:.9rem;color:var(--muted);text-decoration:none}.page{max-width:1120px;margin:auto;padding:0 40px}.intro{display:grid;grid-template-columns:290px 1fr;gap:68px;padding:82px 0 68px}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:650;color:var(--blue);margin-bottom:20px}h1{font-size:3.25rem;letter-spacing:-.035em;margin:0 0 18px}.role{font-size:.94rem;font-weight:600;margin-bottom:5px}.affiliation{color:var(--muted);font-size:.94rem}.profile-links{display:flex;gap:22px;margin-top:26px}.profile-links a{font-size:.94rem;text-decoration:none}.file-type{font-size:.75rem;color:var(--muted);margin-left:3px}.bio h2{font-size:2.1rem;letter-spacing:-.025em;margin:0 0 23px}.bio p{color:#455164}.bio strong{color:var(--ink)}.section{padding:36px 0 40px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:center;gap:16px;margin-bottom:30px}.section-index{font-size:.75rem;color:var(--blue);font-weight:600}.section h2{font-size:1.8rem}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.topic-number{display:block;font:italic 1.4rem var(--serif);color:var(--blue);margin-bottom:12px}.research-grid p{color:var(--muted);margin:9px 0 0;font-size:.94rem}.research-feature{border-left:3px solid var(--blue);padding:24px 28px;background:var(--soft);margin-top:30px}.research-feature .eyebrow{margin-bottom:10px}.research-feature h3{margin-bottom:12px}.research-feature p{margin-bottom:4px;font-size:.9rem}.research-feature p:last-child{margin:0}.venue{color:var(--muted);font-size:.9rem}.publication{display:grid;grid-template-columns:64px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}.publication:first-of-type{padding-top:0}.publication:last-child{border:0;padding-bottom:0}.year{font-size:.9rem;color:var(--blue);font-variant-numeric:tabular-nums}.publication h3{margin-bottom:8px}.publication p{font-size:.9rem;margin-bottom:3px}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.project{padding:0 22px 0 0;border-right:1px solid var(--line)}.project:last-child{border:0;padding-right:0}.project-meta{font-size:.75rem;line-height:1.7;color:var(--muted);letter-spacing:.035em;min-height:42px;margin-bottom:15px}.project h3{font-family:var(--serif);font-size:1.4rem;font-weight:500;margin-bottom:15px}.project>p:not(.project-meta):not(.tools){font-size:.94rem;color:var(--muted)}.project .tools{font-size:.75rem;color:var(--blue);margin:20px 0 0}.tools span{padding:0 9px}.education-row{display:grid;grid-template-columns:180px 1fr;gap:20px;margin-bottom:24px}.education-row:last-child{margin-bottom:0}.date{font-size:.9rem;color:var(--muted)}.education-row p{margin:0}.education-row h3{margin-bottom:4px}.education-row div p{color:var(--muted);font-size:.94rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.details-grid h2{margin-bottom:25px}.award{display:grid;grid-template-columns:60px 1fr;gap:10px}.award p{font-size:.94rem}.skills{margin:0}.skills dt{font-size:.9rem;font-weight:600}.skills dd{margin:0 0 12px;font-size:.94rem;color:var(--muted)}.contact{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:32px 0 44px;border-top:1px solid var(--line)}.contact .eyebrow{margin-bottom:8px}.contact h2{font-size:1.8rem}.contact>a{overflow-wrap:anywhere}footer{background:var(--soft);border-top:1px solid var(--line)}.footer-inner{max-width:1120px;padding:22px 40px;margin:auto;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;color:var(--muted)}.footer-inner a{text-decoration:none}
@media(min-width:48em){html{font-size:18px}}
@media(max-width:850px){.intro{grid-template-columns:240px 1fr;gap:34px;padding-top:55px}.bio h2{font-size:1.8rem}h1{font-size:2.8rem}.projects-grid{grid-template-columns:1fr}.project{border:0;border-bottom:1px solid var(--line);padding:0 0 24px}.project-meta{min-height:0}.research-grid{gap:20px}}
@media(max-width:600px){.nav-wrap{padding:20px 24px;align-items:flex-start;flex-direction:column;gap:12px}nav{gap:10px 20px}nav a{font-size:.875rem}.page{padding:0 24px}.intro{grid-template-columns:1fr;gap:34px;padding:42px 0}.intro .eyebrow{margin-bottom:14px}h1{font-size:3rem}.profile-links{margin-top:18px}.bio h2{font-size:1.8rem}.research-grid{grid-template-columns:1fr;gap:24px}.topic-number{float:left;margin:2px 18px 35px 0;width:20px}.research-feature{padding:22px 20px}.section{padding:30px 0}.section-heading{margin-bottom:25px}.publication{grid-template-columns:42px 1fr;gap:12px}.education-row{grid-template-columns:1fr;gap:4px}.details-grid{grid-template-columns:1fr;gap:0}.contact{align-items:flex-start;flex-direction:column;gap:18px}.footer-inner{padding:22px 24px;flex-direction:column;gap:5px}.contact>a{font-size:.94rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.skip,.contact,footer{display:none}.page{padding:0;max-width:none}.intro{padding:20px 0;gap:25px}.section{break-inside:avoid}.publication,.project{break-inside:avoid}a{color:inherit}}
/* Compact academic layout: biography, research, awards, then experience. */
.page,.nav-wrap,.footer-inner{max-width:980px}.topbar{position:sticky;top:0;z-index:2}.nav-wrap{padding-top:18px;padding-bottom:18px}nav{gap:20px}.intro{display:block;padding:54px 0 28px}.profile-photo{display:block;width:220px;height:220px;object-fit:cover;object-position:28% center;border-radius:50%;margin:0 0 22px;border:1px solid var(--line)}.intro h1{font-family:var(--sans);font-size:2.6rem;font-weight:500;letter-spacing:-.04em;margin-bottom:5px}.intro .affiliation{font-size:1rem;margin-bottom:25px}.bio p{color:var(--ink)}.bio .keywords{margin-top:22px}.profile-links{margin-top:22px;gap:12px}.profile-links span{color:#9ca8b6}.section{padding:28px 0 32px;border-top:0}.section>h2{font:400 1.8rem/1.3 var(--sans);letter-spacing:-.025em;margin-bottom:22px}.section-description{color:var(--muted);margin-top:-6px}.filters{display:flex;flex-wrap:wrap;gap:6px 22px;border-bottom:1px solid var(--line);margin:22px 0 4px}.filters button{font:inherit;font-size:.875rem;padding:10px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);cursor:pointer}.filters button[aria-pressed=true]{border-bottom-color:var(--blue);color:var(--blue)}.filters button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.publication{padding:24px 0;grid-template-columns:54px 1fr;gap:20px}.publication h3 a{color:var(--ink);text-decoration:none}.publication h3 a:hover{color:var(--blue);text-decoration:underline}.publication .paper-description{margin-top:10px;color:var(--muted)}.recognition{color:#9a6515;font-size:.9rem;margin-top:7px}.recognition strong{font-weight:650}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.award-list{padding:0;margin:0;list-style:none}.award-list li{display:grid;grid-template-columns:54px 1fr;align-items:start;gap:20px;margin:0 0 17px}.award-list li>.year,.award-list li>div>strong{display:inline-flex;align-items:center;min-height:1.75rem;line-height:1.2}.award-list p{color:var(--muted);margin:2px 0 0}.projects-grid{grid-template-columns:1fr;gap:22px}.project{border:0;padding:0 0 20px;border-bottom:1px solid var(--line)}.project:last-child{padding-bottom:0}.project-meta{min-height:0;margin-bottom:6px}.project h3{font-family:var(--sans);font-size:1.05rem;font-weight:600;margin-bottom:8px}.project .tools{margin-top:10px}.education-row{margin-bottom:18px}.skills{display:grid;grid-template-columns:160px 1fr;gap:9px 20px}.skills dd{margin:0}.contact{margin-top:20px;padding-bottom:30px}.contact h2{font-family:var(--sans);font-size:1.5rem}
@media(max-width:600px){.topbar{position:static}.nav-wrap{gap:14px}nav{gap:9px 18px}.intro{padding-top:32px}.profile-photo{width:165px;height:165px}.intro h1{font-size:2.3rem}.publication,.award-list li{grid-template-columns:40px 1fr;gap:12px}.filters{gap:4px 16px}.skills{grid-template-columns:1fr;gap:3px}.skills dd{margin-bottom:13px}.section{padding:24px 0}.publication h3{font-size:1rem}}

/* Accessible light/dark theme switcher. */
.nav-wrap{position:relative;padding-right:150px}.theme-toggle{position:absolute;right:40px;top:17px;display:inline-flex;align-items:center;gap:7px;padding:7px 0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.78rem;cursor:pointer}.theme-toggle:hover{color:var(--blue)}.theme-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.theme-icon{font-size:1.25rem;line-height:1}.theme-label{white-space:nowrap}
body.dark{color-scheme:dark;--ink:#edf2f8;--muted:#aeb9c8;--blue:#8fb8ff;--line:#344050;--soft:#1b2430;background:#111820;color:var(--ink)}
body.dark .topbar{background:#111820;border-color:var(--line)}body.dark .wordmark{color:var(--ink)}body.dark nav a{color:var(--muted)}body.dark .bio p{color:var(--ink)}body.dark .bio strong{color:var(--ink)}body.dark .publication h3 a{color:var(--ink)}body.dark .publication h3 a:hover{color:var(--blue)}body.dark .skip{background:#1b2430;color:var(--ink)}body.dark .recognition{color:#e7bd68}body.dark .profile-photo{border-color:var(--line)}body.dark .theme-toggle{color:var(--muted)}body.dark footer{background:var(--soft);border-color:var(--line)}
@media(max-width:600px){.nav-wrap{padding-right:120px}.theme-toggle{right:24px;top:18px}.theme-label{font-size:.72rem}}

/* Research highlights follow the reference site's green light mode and cyan dark mode. */
:root{--highlight:#008f4f}.bio .highlight,.bio a,.profile-links a{color:var(--highlight)}.bio .highlight{font-weight:500}
body.dark{--highlight:#45c9ff}body.dark .bio .highlight{color:var(--highlight)}
.university-link{color:var(--highlight)!important;text-decoration:none!important}.university-link:hover{color:var(--highlight)!important;text-decoration:none!important}a{text-decoration:none}a:hover{text-decoration:none}.publication h3 a:hover{text-decoration:none}
.nav-wrap{padding-right:40px}.theme-toggle{position:static;margin-left:4px;flex:0 0 auto}
@media(max-width:600px){.nav-wrap{padding-right:24px}.theme-toggle{position:absolute;right:24px;top:18px;margin-left:0}}
.theme-toggle{margin-left:auto}.theme-label{display:none}
.nav-wrap{max-width:1120px}
.nav-wrap{max-width:none;width:100%}.theme-toggle{position:absolute;right:24px;top:17px;margin-left:0}
.nav-wrap{justify-content:flex-start}nav{margin-left:auto;margin-right:55px}
@media(max-width:600px){nav{margin-left:0;margin-right:0}}
.nav-wrap{max-width:980px;width:100%;padding-left:20px;padding-right:20px}.theme-toggle{right:80px}nav{margin-right:100px}
@media(max-width:600px){.nav-wrap{max-width:none;padding-left:24px;padding-right:24px}.theme-toggle{right:24px}nav{margin-right:0}}
.theme-toggle{top:13px}
@media(max-width:600px){.theme-toggle{top:14px}}

/* Align the header content with the main page edges. */
.nav-wrap{max-width:980px;padding-left:40px;padding-right:40px}
nav{margin-left:auto;margin-right:0}
.theme-toggle{position:static;margin-left:20px}
@media(max-width:600px){.nav-wrap{padding-left:24px;padding-right:24px}.theme-toggle{position:absolute;right:24px;top:14px;margin-left:0}}



/* Publication figures and clearer project attribution. */
.publication{grid-template-columns:200px minmax(0,1fr);gap:26px;align-items:start}
.paper-side>.year{display:block;margin-bottom:8px}.paper-visual{margin:0}.paper-visual>a{display:block;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}.paper-visual img{display:block;width:100%;height:145px;object-fit:fill;padding:0}.paper-visual figcaption{font-size:.65rem;line-height:1.5;color:var(--muted);margin-top:6px}.authors a{color:var(--highlight)}
.paper-visual img.network-figure{object-fit:contain;padding:6px}
.project .project-date{font-size:.75rem;color:var(--muted);letter-spacing:.025em;margin:0 0 5px}.project .project-client{display:inline-block;font-size:.78rem;font-weight:650;line-height:1.5;color:var(--blue);background:var(--soft);padding:5px 9px;border-left:3px solid var(--blue);margin:0 0 12px}.project h3{margin-bottom:8px}.award-amount{display:inline-block;margin-left:8px;font-size:.85rem;font-weight:600;color:var(--blue);white-space:nowrap}
.project-with-visual{display:grid;grid-template-columns:200px minmax(0,1fr);gap:26px;align-items:start}.project-with-visual .project-visual{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}.project-visual img{display:block;width:100%;height:145px;object-fit:fill}
@media(max-width:600px){.publication{grid-template-columns:110px minmax(0,1fr);gap:15px}.paper-visual img{height:100px}.paper-visual figcaption{font-size:.6rem}.award-amount{margin-left:0;display:block}}
@media(max-width:600px){.project-with-visual{grid-template-columns:110px minmax(0,1fr);gap:15px}.project-visual img{height:100px}}
@media(max-width:420px){.publication,.project-with-visual{grid-template-columns:1fr}.paper-side,.project-visual{max-width:200px}.paper-visual img,.project-visual img{height:125px}}

.publication:first-of-type{padding-top:24px}.project p.project-client{color:var(--blue);font-size:.78rem}.paper-visual figcaption a{color:var(--muted)}

/* Type scale matched to the reference academic homepage. */
body{font-size:1rem;line-height:1.5}
.wordmark{font-family:Georgia,'Times New Roman',serif;font-size:1rem}
nav a{font-size:1rem}
.intro h1{font-size:1.563rem;line-height:48px}
.intro .affiliation{font-size:1rem;line-height:22.5px}
.bio p,.profile-links a{font-size:1rem;line-height:24px}
.section>h2{font-size:1.25rem;line-height:36px}
.section-description{font-size:1rem;line-height:24px}
.filters button{font-size:.75rem}
.publication h3{font-size:1rem;line-height:21px}
.publication p.authors{font-size:1rem;line-height:24px}
.publication p.venue{font-size:.75rem;line-height:22.5px}
.publication p.paper-description,.publication p.recognition{font-size:.75rem;line-height:21px}
.project h3{font-size:1rem;line-height:21px}
.project>p:not(.project-date):not(.project-client):not(.tools){font-size:1rem;line-height:22.5px}
.project .project-date,.project .tools{font-size:.75rem}
.project p.project-client{font-size:.75rem}
.award-list li>div>strong,.award-list p{font-size:1rem;line-height:22.5px}
.award-list .year{font-size:.75rem}
.award-amount{font-size:.75rem}
.skills dt,.skills dd{font-size:1rem;line-height:22.5px}
.contact h2{font-size:1.25rem}
.footer-inner{font-size:.6875rem}
@media(max-width:600px){.publication h3{font-size:1rem}}

/* Research and project entries are text-only. */
.publication{display:block}

/* Icon-led profile links, matching the compact reference list. */
.profile-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;width:auto;max-width:100%}
.profile-links .profile-link{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;color:var(--ink);font-size:1rem;line-height:24px;text-decoration:none}
.profile-link svg{display:block;width:20px;height:20px;overflow:visible}
.profile-link:hover span{text-decoration:underline;text-underline-offset:4px}
.profile-links .profile-link-email,.profile-links .profile-link-cv{color:var(--muted)}
.profile-link-email svg,.profile-link-cv svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.profile-link-scholar svg{fill:#4285f4}
.profile-link-scholar .scholar-medallion{fill:#2b6fd6}
.profile-link-linkedin svg{fill:#0a66c2}
.profile-link-github svg{fill:currentColor}
body.dark .profile-links .profile-link{color:var(--ink)}
body.dark .profile-links .profile-link-email,body.dark .profile-links .profile-link-cv{color:var(--muted)}
/* Academic profile layout inspired by the reference site. */
.site-layout{max-width:1180px;margin:0 auto;padding:38px 40px 0;display:grid;grid-template-columns:260px minmax(0,1fr);gap:52px;align-items:start}
.page{max-width:none;padding:0}
.profile-sidebar{position:sticky;top:88px;padding:4px 0 30px}
.profile-sidebar .profile-photo{width:158px;height:158px;margin:0 0 20px;object-position:center;border-radius:50%}
.profile-sidebar h1{font-family:var(--sans);font-size:1.38rem;line-height:1.3;letter-spacing:-.02em;font-weight:650;margin:0 0 4px}
.profile-role{font-size:.92rem;color:var(--muted);margin:0 0 3px}
.profile-sidebar .affiliation{font-size:.92rem;line-height:1.55;margin:0 0 22px}
.profile-sidebar .profile-links{display:flex;flex-direction:column;align-items:flex-start;gap:11px;margin:0}
.profile-sidebar .profile-link{font-size:.91rem!important;gap:10px!important}
.profile-sidebar .profile-link svg{width:17px;height:17px}
.content-column{min-width:0}
.content-column .intro{display:block;padding:0 0 26px}
.content-column .section{padding:0 0 30px;border:0}
.content-column .section>h2{font-weight:650;border-bottom:1px solid var(--line);padding:0 0 8px;margin:0 0 17px}
.content-column .bio p{font-size:.96rem;line-height:1.62;color:var(--ink);margin-bottom:12px}
.content-column .bio .research-keywords{margin-top:14px}
.content-column .section-description{margin:0 0 12px}
.content-column .filters{margin:10px 0 2px}
.content-column .publication{padding:20px 0}
.content-column .projects-grid{gap:0}
.content-column .project{padding:17px 0;border-bottom:1px solid var(--line)}
.content-column .project:first-child{padding-top:0}
.content-column .project:last-child{padding-bottom:0;border:0}
.content-column .award-list li{margin-bottom:13px}
.content-column .skills{grid-template-columns:130px 1fr}
.content-column .contact{margin-top:0}
footer .footer-inner{max-width:1180px}
body.dark .content-column .bio p{color:var(--ink)}
@media(max-width:800px){.site-layout{grid-template-columns:220px minmax(0,1fr);gap:34px;padding:30px 28px 0}.profile-sidebar .profile-photo{width:136px;height:136px}}
@media(max-width:650px){.site-layout{display:block;padding:26px 24px 0}.profile-sidebar{position:static;border-bottom:1px solid var(--line);padding:0 0 22px;margin-bottom:25px}.profile-sidebar .profile-photo{width:112px;height:112px;margin-bottom:14px}.profile-sidebar .affiliation{margin-bottom:13px}.profile-sidebar .profile-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.content-column .intro{padding-bottom:22px}.content-column .section{padding-bottom:24px}.content-column .skills{grid-template-columns:1fr;gap:2px}.content-column .skills dd{margin:0 0 10px}}

/* Keep each simulation tool on its own unbroken line. */
.simulation-tool{display:block;white-space:nowrap}
@media(min-width:651px) and (max-width:1000px){.content-column .skills{grid-template-columns:1fr;gap:3px}.content-column .skills dd{margin-bottom:10px}}
@media(max-width:650px){.simulation-tool{font-size:clamp(.75rem,3.5vw,1rem)}}
