
:root{color-scheme:light;--bg:#ffffff;--soft:#f5f8fb;--ink:#142b45;--muted:#485b71;--stroke:#d9e2ec;--primary:#145b91;--tile:#ffffff;--shadow:0 8px 25px rgba(18,42,65,.055)}
html[data-theme=dark]{color-scheme:dark;--bg:#111d2c;--soft:#18283a;--ink:#f5f8fc;--muted:#c8d2de;--stroke:#354c62;--primary:#a8d6ff;--tile:#192c40;--shadow:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;line-height:1.7}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.wrap{max-width:1160px;margin:auto;padding:0 32px}.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--stroke)}.nav{min-height:84px;display:flex;align-items:center;gap:20px}.brand{margin-right:auto;color:var(--ink);font-size:22px;font-weight:800;line-height:1.2;letter-spacing:-.04em;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:.14em;font-weight:700;color:var(--muted);margin-top:5px}.navlinks{display:flex;align-items:center;gap:19px;white-space:nowrap}.navlinks a{color:var(--ink);font-size:13px;font-weight:650}.navlinks a.current{color:var(--primary);text-decoration:underline;text-underline-offset:9px}.theme-btn,.menu-btn{background:transparent;border:1px solid var(--stroke);color:var(--ink);border-radius:8px;padding:8px 11px;white-space:nowrap;cursor:pointer;font-size:12px;font-weight:700}.menu-btn{display:none}.pagehead{background:var(--soft);border-bottom:1px solid var(--stroke);padding:72px 0 65px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--primary);font-size:11px;font-weight:800}.pagehead h1,.hero h1{font-size:clamp(38px,5vw,68px);line-height:1.12;letter-spacing:-.055em;margin:13px 0 21px}.lead{max-width:760px;font-size:18px;color:var(--muted)}.hero{padding:90px 0 84px}.hero h1{margin-top:12px}.hero-meta{font-weight:650;color:var(--muted);font-size:14px}.btn{display:inline-flex;padding:12px 18px;border:1px solid var(--primary);border-radius:7px;background:var(--primary);color:var(--bg);font-weight:700;font-size:14px}.btn:hover{text-decoration:none;opacity:.88}.outline{color:var(--primary);background:transparent}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:29px}.section{padding:75px 0}.section.soft{background:var(--soft)}.kicker{text-transform:uppercase;font-weight:800;letter-spacing:.17em;font-size:11px;color:var(--primary)}h2{font-size:clamp(27px,3vw,38px);letter-spacing:-.04em;line-height:1.2;margin:12px 0 20px}h3{font-size:20px;line-height:1.3;letter-spacing:-.025em;margin:0 0 12px}p{margin:0 0 16px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.card{background:var(--tile);padding:28px;border:1px solid var(--stroke);border-radius:11px;box-shadow:var(--shadow)}.card h3 a{color:var(--ink)}.card p{font-size:14px;color:var(--muted)}.tagset{display:flex;gap:8px;flex-wrap:wrap;margin-top:19px}.tag{padding:5px 10px;font-size:11px;font-weight:650;color:var(--ink);background:var(--soft);border:1px solid var(--stroke);border-radius:100px}.rowlink{display:inline-block;margin-top:8px;font-size:13px;font-weight:750}.wide{max-width:790px}.stack{display:grid;gap:18px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:45px}.divider{border-top:1px solid var(--stroke);margin:25px 0}.footer{border-top:1px solid var(--stroke);padding:32px 0;color:var(--muted);font-size:12px}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer-links{display:flex;gap:15px;flex-wrap:wrap}.bulletlist{margin:10px 0;padding-left:22px}.bulletlist li{margin:9px 0;color:var(--muted)}
@media(max-width:1120px){.nav{flex-wrap:wrap;padding:15px 0}.brand{margin-right:auto}.navlinks{order:3;width:100%;justify-content:center;flex-wrap:wrap;padding:8px 0}}@media(max-width:650px){.wrap{padding:0 20px}.nav{min-height:70px}.navlinks{display:none;align-items:stretch;flex-direction:column;gap:12px}.navlinks.open{display:flex}.menu-btn{display:inline-flex}.hero{padding:60px 0}.pagehead{padding:55px 0}.section{padding:52px 0}.grid,.cols{grid-template-columns:1fr}.theme-btn{margin-left:auto}}

.biography{max-width:920px;font-size:17px;line-height:1.9}.biography p{margin-bottom:21px}.research-stack{margin-top:34px;display:grid;gap:48px}.pillar{border-top:1px solid var(--stroke);padding-top:30px;scroll-margin-top:120px}.pillar-id{font-size:12px;letter-spacing:.13em;font-weight:800;color:var(--primary)}.pillar-summary{margin-bottom:28px}.subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.subtopic{background:var(--tile);border:1px solid var(--stroke);padding:21px;border-radius:10px}.subtopic h4{font-size:16px;line-height:1.35;margin:0 0 8px}.subtopic p{font-size:14px;color:var(--muted);margin:0}.research-note{margin-top:35px;border-left:3px solid var(--primary);padding:14px 20px;background:var(--soft);color:var(--muted)}.application-guidance{max-width:920px;margin:25px 0 40px}.application-guidance p{margin-bottom:16px}.opening-heading{font-size:28px}.openings-list{display:grid;gap:10px;margin:25px 0}.opening{border:1px solid var(--stroke);border-radius:9px;background:var(--tile)}.opening summary{cursor:pointer;padding:20px 24px;font-weight:750;line-height:1.4;color:var(--ink)}.opening summary:hover{color:var(--primary)}.opening[open] summary{border-bottom:1px solid var(--stroke)}.opening-body{padding:23px 25px;color:var(--muted);font-size:15px}.opening-body p{margin:0}.opening-body strong{color:var(--ink)}@media(max-width:650px){.subgrid{grid-template-columns:1fr}.biography{font-size:15px}.opening summary{padding:16px}.opening-body{padding:18px}}

.profile-extra{margin-top:2rem;padding:1.25rem 1.4rem;border-left:3px solid var(--accent,#1263a0);background:var(--surface,#f5f8fc);border-radius:8px}.profile-extra h3{margin:0 0 .65rem}.subtopic h4{line-height:1.35}.footer-links{display:flex;flex-wrap:wrap;gap:1rem}.hero .actions{flex-wrap:wrap}


/* V14: Contrast, navigation, accessibility and project layout */
:root{--accent-soft:#eaf3fa;--button-text:#fff}html[data-theme="dark"]{--accent-soft:#213d53;--button-text:#102235}
.btn:not(.outline){color:var(--button-text)}html[data-theme="dark"] .btn:not(.outline){color:#102235}
.profile-extra{background:var(--soft);border-left-color:var(--primary);color:var(--ink)}
.bio-section{padding:0 0 20px;margin-bottom:25px;border-bottom:1px solid var(--stroke)}.bio-section h3{font-size:22px;margin:0 0 15px;color:var(--ink)}.bio-section p{color:var(--muted)}
.profile-extra.bio-section{padding:25px;border-radius:12px;border-bottom:0;margin-top:25px}
.research-toc{border:1px solid var(--stroke);border-radius:14px;padding:23px;background:var(--tile);margin:30px 0 40px;box-shadow:var(--shadow)}
.toc-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toc-head span{color:var(--muted);font-size:13px}
.toc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.toc-grid a{border:1px solid var(--stroke);border-radius:9px;padding:13px 15px;color:var(--ink);font-weight:650;line-height:1.4;font-size:13px;background:var(--bg)}.toc-grid a:hover{border-color:var(--primary);text-decoration:none;background:var(--soft)}.toc-grid a span{color:var(--primary);font-size:12px;margin-right:10px}.toc-grid .toc-openings{grid-column:1/-1;background:var(--accent-soft);border-color:var(--primary)}.toc-openings small{color:var(--muted);font-weight:500;margin-left:10px}#openings{scroll-margin-top:100px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:32px}.project-card{display:flex;flex-direction:column;border:1px solid var(--stroke);border-radius:13px;background:var(--tile);padding:29px;box-shadow:var(--shadow)}.project-number{color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.16em;margin-bottom:18px}.project-card h3{font-size:24px;margin-bottom:5px}.project-subtitle{font-weight:650;color:var(--ink)!important}.project-card p{color:var(--muted);font-size:15px}.project-card .tagset{margin:10px 0 21px}.project-action{display:inline-block;font-weight:750;margin-top:auto;padding-top:9px;font-size:14px}
.skip-link{position:absolute;left:12px;top:-100px;z-index:1000;background:var(--bg);color:var(--ink);padding:10px 15px;border:2px solid var(--primary);border-radius:5px}.skip-link:focus{top:10px}
:focus-visible{outline:3px solid var(--primary);outline-offset:3px}html{scroll-padding-top:115px}
@media(max-width:700px){.toc-grid,.project-grid{grid-template-columns:1fr}.toc-grid .toc-openings{grid-column:auto}.research-toc{padding:17px}.project-card{padding:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* V17: portrait, institutional links and responsive hero */
.hero-split{display:grid;grid-template-columns:minmax(0,1fr) 255px;align-items:start;gap:58px}
.hero-copy{min-width:0}.hero-copy .lead{max-width:780px}
.hero-portrait{margin:30px 0 0;text-align:center}
.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:16px;object-fit:cover;border:1px solid var(--stroke);background:var(--soft)}
.hero-portrait figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:10px}
.profile-inline{display:inline-block;margin-top:18px;font-size:13px;font-weight:650}
.about-identity{display:flex;align-items:center;gap:25px;border:1px solid var(--stroke);background:var(--soft);border-radius:13px;padding:20px;margin-bottom:35px}
.about-identity p{color:var(--ink);margin-bottom:9px}.about-identity a{font-size:14px;font-weight:700}
.about-portrait{flex:0 0 120px;margin:0}.about-portrait img{display:block;width:120px;height:120px;object-fit:cover;border-radius:12px;border:1px solid var(--stroke)}
@media(max-width:830px){.hero-split{grid-template-columns:minmax(0,1fr) 175px;gap:26px}.hero-portrait{margin-top:28px}}
@media(max-width:650px){.hero-split{grid-template-columns:1fr}.hero-portrait{grid-row:1;width:155px;margin:0 0 10px}.hero-portrait figcaption{display:none}.about-identity{gap:14px;padding:15px}.about-portrait{flex-basis:90px}.about-portrait img{width:90px;height:90px}}

/* V19: original user-supplied portrait, proportionate crop with no retouching */
.hero-portrait img{aspect-ratio:358 / 391;object-fit:cover;object-position:center top}
.about-portrait img{object-position:center 15%}

/* V20: books and IEEE COINS academic leadership */
.books-section{margin-top:24px}.books-section>.kicker{margin-bottom:10px}.book-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:24px 0}.book-card{display:grid;grid-template-columns:132px minmax(0,1fr);gap:22px;align-items:start;background:var(--tile);border:1px solid var(--stroke);border-radius:12px;padding:19px}.book-card h4{font-size:18px;line-height:1.4;margin:0 0 7px}.book-card p{font-size:14px;line-height:1.6;margin:0 0 9px}.book-card a{font-size:14px;font-weight:700}.book-meta{color:var(--muted);font-weight:700}.book-art{height:174px;border-radius:6px;background:linear-gradient(145deg,#164d75,#102a4c);color:#fff;padding:15px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 6px 16px rgba(0,0,0,.13)}.book-art span{font-size:13px;font-weight:850;line-height:1.3;letter-spacing:.05em}.book-art small{font-size:9px;letter-spacing:.12em;font-weight:750;color:#dbe8f6}.book-more{margin-top:6px;font-weight:700}.contrib-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.contrib-item{border:1px solid var(--stroke);border-radius:12px;background:var(--tile);padding:27px}.contrib-item p{color:var(--muted);font-size:14px}#books,#academic-leadership{scroll-margin-top:120px}@media(max-width:700px){.contrib-grid{grid-template-columns:1fr}.book-card{grid-template-columns:92px 1fr;gap:15px;padding:14px}.book-art{height:135px;padding:10px}.book-art span{font-size:10px}.book-art small{font-size:8px}}

/* V23: compact, unboxed About biography */
.compact-bio{max-width:920px;margin:0 auto 0 0;font-size:17px;line-height:1.85;}
.compact-bio p{margin:0 0 22px;color:var(--ink);}
.compact-bio a{font-weight:600;}
