:root{color-scheme:light;--text: #333333;--muted: #6f777d;--border: #e5e5e5;--link: #2b6ca3;--link-hover: #1f4f78;--page: #ffffff;--soft: #f7f7f7;--code: #f2f4f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--page);color:var(--text);font-size:16px;line-height:1.65;margin:0}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}button{font:inherit}h1,h2,h3,p{margin-top:0}.site-header{align-items:center;background:#fff;border-bottom:1px solid var(--border);display:flex;gap:24px;justify-content:space-between;min-height:62px;padding:0 max(24px,calc((100vw - 1180px)/2))}.brand{color:#2f3b45;font-size:1rem;font-weight:700;white-space:nowrap}nav{display:flex;flex-wrap:wrap;gap:0 20px;justify-content:flex-end}nav a{color:#56616a;font-size:.88rem;font-weight:700;line-height:62px}nav a:hover{color:#111;text-decoration:none}nav a.active,nav a[aria-current=page]{color:#111}.page-shell{display:grid;gap:48px;grid-template-columns:245px minmax(0,1fr);margin:0 auto;max-width:1180px;padding:42px 24px 64px}.author-sidebar{align-self:start;color:var(--muted);position:sticky;top:28px}.portrait{align-items:center;aspect-ratio:1;background:var(--soft);border:1px solid var(--border);border-radius:50%;display:grid;justify-items:center;margin-bottom:18px;max-width:190px;overflow:hidden;position:relative;width:100%}.portrait img{height:100%;inset:0;object-fit:cover;object-position:center top;position:absolute;width:100%;z-index:2}.portrait img.missing{display:none}.portrait span{color:#6a737b;font-size:3.6rem;font-weight:700;letter-spacing:0;position:relative;z-index:1}.author-sidebar h2{color:#222;font-size:1.35rem;line-height:1.25;margin-bottom:8px}.author-bio{font-size:.95rem;line-height:1.5;margin-bottom:18px}.author-links,.contact-list{display:grid;gap:8px}.author-links a,.author-links span,.contact-list a,.contact-list span{align-items:center;display:flex;gap:8px;min-width:0}.author-links svg,.contact-list svg,.subheading svg,.site-footer svg{color:#7a8288;flex:0 0 auto}.page-content{max-width:860px;min-width:0}.intro{border-bottom:1px solid var(--border);margin-bottom:30px;padding-bottom:20px}.intro h1{color:#222;font-family:Georgia,Times New Roman,serif;font-size:2.15rem;font-weight:400;line-height:1.18;margin-bottom:12px}.intro p{color:#444;font-size:1rem;max-width:760px}.section{border-bottom:1px solid var(--border);margin:0 0 30px;padding:0 0 26px;scroll-margin-top:78px}.section-heading{margin-bottom:16px}.section-heading span{display:none}.section-heading h2{color:#222;font-family:Georgia,Times New Roman,serif;font-size:1.62rem;font-weight:400;line-height:1.25;margin-bottom:0}.interest-list{margin:0;padding-left:22px}.interest-list li{margin-bottom:6px}.publication-list,.timeline-list,.service-stack{display:grid;gap:14px}.news-list{display:grid;gap:12px}.news-item{display:grid;gap:14px;grid-template-columns:64px minmax(0,1fr)}.news-item time{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.84rem;padding-top:2px}.news-item h3{font-size:1rem;line-height:1.4;margin-bottom:2px}.news-item p,.more-link{color:var(--muted);font-size:.92rem;line-height:1.55;margin-bottom:0}.more-link{margin-top:14px}.publication-item{display:grid;gap:13px;grid-template-columns:48px minmax(0,1fr)}.publication-id{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;padding-top:2px}.publication-item h3,.timeline-item h3,.service-group h3{color:#222;font-size:1rem;font-weight:700;line-height:1.42;margin-bottom:4px}.authors,.venue,.publication-meta,.timeline-item p,.detail,.legend,.muted{color:var(--muted);font-size:.92rem;line-height:1.55}.authors,.venue{margin-bottom:3px}.authors strong{color:#222}sup{color:#9a6700;font-weight:700}.venue strong{color:#444}.publication-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.publication-meta span{background:var(--code);border-radius:3px;color:#5f6b72;padding:1px 6px}.publication-meta .highlight{background:#fff8e6;color:#805a00}.year-group{display:grid;gap:16px;grid-template-columns:66px minmax(0,1fr);margin-top:18px}.year-group>h3{color:#555;font-family:Georgia,Times New Roman,serif;font-size:1.18rem;font-weight:400;line-height:1.3}.timeline-item{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 122px}.timeline-item p{margin-bottom:0}.detail{margin-top:4px}.timeline-item time{color:var(--muted);font-size:.88rem;text-align:right}.subheading{align-items:center;color:#333;display:flex;font-size:1.02rem;gap:8px;margin:0 0 12px}.subheading.spaced{margin-top:22px}.service-group{border-left:3px solid var(--border);padding-left:14px}.contact-section{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(240px,.75fr)}.contact-section p{color:var(--muted);margin-bottom:0}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin:0 auto;max-width:1180px;padding:18px 24px 34px}.site-footer div{align-items:center;display:flex;gap:8px}@media(max-width:900px){.site-header{align-items:flex-start;flex-direction:column;gap:0;padding:14px 20px}nav{gap:0 16px;justify-content:flex-start}nav a{line-height:34px}.page-shell{grid-template-columns:1fr;padding:28px 20px 48px}.author-sidebar{border-bottom:1px solid var(--border);display:grid;gap:0 18px;grid-template-columns:110px minmax(0,1fr);padding-bottom:22px;position:static}.portrait{grid-row:span 3;max-width:110px}.portrait span{font-size:2.3rem}.author-links{grid-column:2}.contact-section{grid-template-columns:1fr}}@media(max-width:620px){body{font-size:15px}.brand{white-space:normal}.author-sidebar,.news-item,.publication-item,.timeline-item,.year-group{grid-template-columns:1fr}.portrait{grid-row:auto;max-width:128px}.author-links,.timeline-item time{text-align:left}}@media print{body{color:#000;font-size:11px}.site-header,.author-sidebar,.site-footer{display:none}.page-shell{display:block;max-width:none;padding:0}.page-content{max-width:none}.section,.intro{break-inside:avoid;margin-bottom:16px;padding-bottom:12px}.publication-item,.timeline-item,.year-group{break-inside:avoid}}
