:root { --paper:#f2f3f2; --ink:#24282c; --navy:#354653; --accent:#687f91; --muted:#6c7378; --line:#d0d4d5; --serif:Georgia,"Times New Roman",serif; --sans:"Helvetica Neue",Arial,sans-serif; --max:980px; }
[data-palette="oxford"] { --paper:#f2f5f8; --ink:#172536; --navy:#183f68; --accent:#4679a8; --muted:#647282; --line:#ced8e1; }
[data-palette="forest"] { --paper:#f2f4ee; --ink:#1d2922; --navy:#28503b; --accent:#9a603d; --muted:#68736a; --line:#cdd4ca; }
[data-palette="plum"] { --paper:#f6f1f4; --ink:#2b222b; --navy:#583858; --accent:#9d586d; --muted:#766b74; --line:#dbced6; }
[data-palette="graphite"] { --paper:#f2f3f2; --ink:#24282c; --navy:#354653; --accent:#687f91; --muted:#6c7378; --line:#d0d4d5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.site-header { max-width:var(--max); margin:0 auto; padding:24px 28px; display:flex; justify-content:flex-end; align-items:center; border-bottom:1px solid var(--line); }
nav { display:flex; gap:28px; font-size:13px; }
main { max-width:var(--max); margin:0 auto; padding:0 28px; }
.intro { padding:64px 0 76px; display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(42px,6vw,72px); align-items:start; }
.portrait-wrap img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:4px; filter:saturate(.86); }
@media(min-width:761px){.portrait-wrap{margin-top:48px}}
h1 { margin:0 0 22px; color:var(--navy); font:400 clamp(28px,3.5vw,38px)/1.06 var(--serif); letter-spacing:-.025em; }
h1 em { color:var(--accent); font-weight:400; }
.intro-copy>p { margin:0 0 18px; max-width:620px; font:400 16px/1.72 var(--sans); }
.intro-copy .lead { font:400 17px/1.68 var(--sans); color:var(--ink); }
.intro-copy p a { color:var(--accent); border-bottom:1px solid currentColor; }
.profile-links { margin-top:28px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:14px 24px; font-size:12px; font-weight:600; }
.section { padding:68px 0 78px; border-top:1px solid var(--navy); }
.section-header { display:grid; grid-template-columns:150px 1fr; margin-bottom:44px; }
.section-header>p { margin:8px 0 0; color:var(--accent); font-size:11px; }
h2 { margin:0; color:var(--navy); font:400 clamp(26px,3.2vw,34px)/1.08 var(--serif); letter-spacing:-.025em; }
.note { margin:12px 0 0; color:var(--muted); font-size:11px; }
.topic { display:grid; grid-template-columns:150px 1fr; }
.topic>h3 { margin:24px 30px 0 0; color:var(--accent); font:600 11px/1.45 var(--sans); text-transform:uppercase; letter-spacing:.09em; }
.publication { grid-column:2; display:grid; grid-template-columns:52px 1fr 74px; gap:22px; padding:20px 0 24px; border-top:1px solid var(--line); }
.topic:last-child .publication:last-child { border-bottom:1px solid var(--line); }
.pub-year { color:var(--muted); font:400 13px var(--serif); }
.publication h4 { margin:-3px 0 8px; color:var(--navy); font:400 clamp(18px,2.2vw,23px)/1.28 var(--serif); letter-spacing:-.015em; }
.authors { margin:0 0 8px; color:var(--muted); font-size:12px; line-height:1.6; }
.authors strong { color:var(--ink); }
.venue { margin:0; color:var(--accent); font-size:11px; font-weight:600; letter-spacing:.025em; }
.pub-links { display:flex; flex-direction:column; align-items:flex-start; gap:7px; font-size:11px; }
.pub-links a { border-bottom:1px solid var(--line); }
.roles { margin-left:150px; }
.role { display:grid; grid-template-columns:150px 1fr; gap:22px; padding:22px 0 25px; border-top:1px solid var(--line); }
.role:last-child { border-bottom:1px solid var(--line); }
.role p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }
.role .role-years { margin-top:3px; color:var(--accent); font:400 13px var(--serif); }
.role h3 { margin:0; color:var(--navy); font:400 20px/1.25 var(--serif); }
.role h3 span { color:var(--muted); font-size:14px; }
.role a { color:var(--ink); font-weight:600; }
.role .role-note { max-width:610px; margin-top:10px; }
footer { max-width:var(--max); margin:0 auto; padding:28px 28px 38px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:11px; color:var(--muted); }
footer p { margin:0; }
footer p:last-child { text-align:right; }
@media(max-width:760px){.site-header{padding:20px}nav{gap:20px}main{padding:0 20px}.intro{padding:48px 0 62px;grid-template-columns:1fr;gap:32px}.portrait-wrap{max-width:230px}h1{font-size:32px}.section{padding:56px 0 64px}.section-header{grid-template-columns:40px 1fr;margin-bottom:36px}.topic{grid-template-columns:1fr}.topic>h3{margin:28px 0 12px}.publication{grid-column:1;grid-template-columns:42px 1fr;gap:14px}.pub-links{grid-column:2;flex-direction:row;margin-top:2px}.roles{margin-left:0}.role{grid-template-columns:90px 1fr;gap:14px}footer{padding:24px 20px 32px}}
@media(max-width:420px){.portrait-wrap{max-width:210px}h1{font-size:28px}.profile-links{display:grid;grid-template-columns:1fr 1fr}.section-header{grid-template-columns:1fr;gap:12px}.section-header>p{margin:0}.publication{grid-template-columns:1fr}.pub-year,.pub-links{grid-column:1}.pub-links{flex-direction:row}.role{grid-template-columns:1fr;gap:8px}}
