@font-face{font-family:"Noto Sans";src:url("assets/fonts/NotoSans-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Noto Sans";src:url("assets/fonts/NotoSans-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Noto Sans";src:url("assets/fonts/NotoSans-Italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Noto Sans";src:url("assets/fonts/NotoSans-BoldItalic.woff") format("woff");font-weight:700;font-style:italic;font-display:swap;}
:root{--nav:#304a5d;--ink:#28343d;--muted:#5b6871;--link:#315d7a;--line:#d8dfe3;--panel:#f1f3f4}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fff;color:var(--ink);font-family:"Noto Sans",sans-serif;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--link);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration:underline;color:#193e59}a:focus-visible{outline:3px solid #b57828;outline-offset:5px}.skip{position:absolute;left:16px;top:-80px;background:white;padding:10px;z-index:10}.skip:focus{top:10px}.topbar{background:var(--nav);border-bottom:1px solid #233b4d}.topbar nav{max-width:1160px;padding:15px 32px;margin:auto;display:flex;align-items:center;gap:36px}.topbar a{color:#edf2f5;text-decoration:none;font-size:15px}.topbar a:hover{color:white;text-decoration:underline}.topbar .brand{font-size:23px;letter-spacing:.1px;font-weight:400}.layout{max-width:1100px;margin:auto;padding:56px 32px 54px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:64px}.profile{text-align:center}.portrait{display:block;margin:0 auto 23px;width:170px;height:170px;object-fit:cover;border-radius:4px}.profile h1{font-family:"Noto Sans",sans-serif;font-size:28px;line-height:1.2;font-weight:400;margin:0 0 13px;letter-spacing:-.5px}.position{margin:0 0 7px;font-size:16px}.affiliation{margin:0;color:var(--muted);font-size:14px;line-height:1.65}.affiliation span{display:inline-block;margin-top:6px}.profile-links{margin-top:23px;display:flex;justify-content:center;gap:10px;font-size:14px}.profile-links a{text-decoration:none}.email{display:block;max-width:100%;height:auto;margin:22px auto 0}.intro p{margin:0 0 24px}.intro p:last-child{margin-bottom:28px}h2{font-size:18px;line-height:1.35;font-weight:600;margin:0 0 15px;color:var(--nav)}.interests{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px 25px}.interests ul{margin:0;padding-left:19px;font-size:15px}.interests li{padding-left:3px;margin:6px 0}.education{margin-top:28px}.degrees{display:grid;grid-template-columns:1fr 1fr;gap:24px}.degrees p{margin:0;font-size:14px;line-height:1.6}.degrees strong{font-weight:500;display:block}.degrees span{display:block;color:var(--muted);margin-top:5px}.contact{background:#f7f7f7;border-top:1px solid #edf0f2}.contact-inner{max-width:1100px;margin:auto;padding:27px 32px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:64px;align-items:center}.contact h2{font-size:18px;font-weight:600;margin:0}.contact p{margin:0;display:flex;gap:12px;align-items:center;font-size:14px}.contact svg{width:17px;height:22px;flex:none;color:#48545d}.mobile-break{display:none}footer{padding:24px 24px 80px;text-align:center;font-size:12px;color:var(--muted)}footer p{margin:0}.appointment{position:fixed;right:24px;bottom:20px;background:var(--nav);color:#fff;padding:10px 19px;border-radius:5px;font-size:13px;text-decoration:none;box-shadow:0 2px 6px #0002}.appointment:hover{color:white;background:#203c50}.appointment span{margin-left:7px}
@media(max-width:850px){.layout,.contact-inner{gap:32px;grid-template-columns:230px minmax(0,1fr)}.layout{padding-top:40px}.degrees{grid-template-columns:1fr;gap:15px}.profile h1{font-size:26px}}
@media(max-width:720px){.topbar nav{padding:12px 22px;justify-content:space-between;gap:20px}.layout{display:block;padding:32px 24px 36px}.profile{margin-bottom:34px}.portrait{width:130px;height:130px;margin-bottom:18px}.profile h1{font-size:28px}.affiliation br{display:initial}.affiliation span{display:block}.profile-links{margin-top:16px}.email{margin-top:16px}.intro p{font-size:16px}.interests{padding:20px}.contact-inner{display:block;padding:24px}.contact h2{font-size:17px;margin-bottom:12px}.contact p{gap:12px;font-size:13px;line-height:1.6;align-items:flex-start}.mobile-break{display:block}.appointment{position:static;display:table;margin:0 auto 24px;box-shadow:none}footer{padding-bottom:18px}.degrees{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep long institutional text inside narrow screens. */
.content,.profile{min-width:0}.intro,.interests,.contact p{overflow-wrap:break-word}.profile-links{flex-wrap:wrap}

/* Site name is a non-interactive label on the navy navigation bar. */
.topbar .brand{color:#ffffff;cursor:default;text-decoration:none}
