:root { color-scheme:light; --paper:#fdfdfc; --ink:#252723; --text:#343630; --muted:#696b64; --accent:#065f8f; }
:root[data-theme="dark"] { color-scheme:dark; --paper:#1d201f; --ink:#ecece6; --text:#d2d4cc; --muted:#a3aaa2; --accent:#9cc6dc; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; color:var(--text); background:var(--paper); font:18px/1.55 "Linux Libertine",serif; -webkit-font-smoothing:antialiased; }
a { color:var(--accent); text-decoration:none; text-underline-offset:3px; }
a:hover { text-decoration:underline; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.skip { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip:focus { width:auto; height:auto; clip-path:none; top:16px; left:20px; padding:8px 12px; background:var(--paper); z-index:2; }
.page { width:min(1120px,calc(100% - 72px)); margin:76px auto 0; display:grid; grid-template-columns:180px minmax(0,1fr); gap:0 64px; align-items:start; }
.sidebar { position:static; }
.portrait { display:block; width:100px; height:110px; object-fit:cover; object-position:center 32%; border-radius:2px; margin:0 0 19px; }
.name { margin:0 0 7px; font-size:30px; font-weight:400; line-height:1.2; color:var(--ink); }
.contact { display:grid; justify-items:start; gap:6px; margin-top:23px; font-size:16px; }
.theme { display:inline-flex; align-items:center; gap:8px; margin:23px 0 0 -8px; padding:8px; min-height:40px; background:none; border:0; color:var(--muted); font:inherit; font-size:14px; cursor:pointer; }
.theme:hover { color:var(--ink); }
.theme-mark { display:inline-grid; width:18px; height:22px; place-items:center; font:400 23px/1 "Linux Libertine",Georgia,serif; }
.theme-mark::before { content:"☾"; }
:root[data-theme="dark"] .theme-mark::before { content:"☼"; }
main { min-width:0; padding:0 0 60px; }
section { scroll-margin-top:38px; }
.bio { max-width:636px; font-size:19px; line-height:1.55; }
.bio p { margin:0 0 15px; }
.bio p:last-child { margin:0; }
h2,h3 { margin:0; color:var(--ink); font-family:inherit; font-weight:400; letter-spacing:0; }
h2 { font-size:25px; line-height:1.25; }
#research { margin-top:35px; }
.section-heading { margin-bottom:20px; }
.papers { list-style:none; margin:0; padding:0; }
.paper { display:grid; grid-template-columns:208px minmax(0,1fr); grid-template-rows:auto 1fr; column-gap:28px; row-gap:7px; align-items:start; padding:0; margin:0; }
.papers .bibliography { list-style:none; margin:0; padding:0; }
.papers .bibliography > li { margin-bottom:38px; }
.papers .bibliography > li:last-child { margin-bottom:0; }
.paper-heading { grid-column:2; grid-row:1; }
.paper h3 { font-size:20px; font-style:italic; line-height:1.4; }
.paper-meta { grid-column:2; grid-row:2; margin:0; font-size:17px; line-height:1.45; }
.paper-authors { margin:7px 0 0; color:var(--text); font-size:15px; line-height:1.5; }
.paper-description { margin:5px 0 0; color:var(--muted); font-size:17px; line-height:1.5; }
.paper-description p { margin:0; }
.paper-note { margin-top:6px; }
.paper-note summary { display:flex; width:36px; align-items:center; justify-content:center; min-height:36px; padding:4px; margin-left:-8px; color:var(--accent); font-size:15px; font-style:italic; cursor:pointer; list-style:none; }
.paper-note summary::-webkit-details-marker { display:none; }
.paper-note summary:hover { color:var(--ink); }
.unfold-mark { width:19px; height:19px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.25; stroke-linecap:round; stroke-linejoin:round; }
.paper-note[open] .unfold-mark { transform:rotate(180deg); }
.paper-venue { margin:0; color:var(--muted); font-size:15px; line-height:1.45; }
.paper-links { display:flex; flex-wrap:wrap; gap:16px; margin-top:6px; font-size:15px; }
#news, #talks { max-width:720px; margin-top:42px; }
.notes { list-style:none; margin:0; padding:0; }
.note { display:grid; grid-template-columns:65px minmax(0,1fr); gap:16px; margin-bottom:12px; font-size:17px; line-height:1.5; }
.note time { color:var(--muted); font-size:14px; padding-top:3px; white-space:nowrap; }
.note p { margin:0; }
.paper-visual { grid-column:1; grid-row:1 / span 2; width:100%; margin:0; }
.paper-visual img { display:block; width:100%; height:auto; }
.paper-art img { aspect-ratio:1 / 1; object-fit:contain; background:var(--paper); }
.paper-authors strong { font-weight:700; }
@media(max-width:900px) { .page { width:calc(100% - 56px); grid-template-columns:148px minmax(0,1fr); gap:0 34px; margin-top:54px; } .paper { grid-template-columns:156px minmax(0,1fr); column-gap:22px; } }
@media(max-width:760px) {
 main { padding-bottom:45px; }
 .page { display:block; width:calc(100% - 44px); margin-top:28px; }
 .sidebar { position:static; display:grid; grid-template-columns:64px minmax(0,1fr); gap:0 17px; margin-bottom:33px; }
 .portrait { width:64px; height:72px; margin:0; grid-column:1; grid-row:1; }
 .identity { grid-column:2; grid-row:1; align-self:center; }
 .name { font-size:28px; margin-bottom:4px; }
 .contact { display:flex; flex-wrap:wrap; gap:8px 18px; grid-column:1 / -1; font-size:15px; }
 .contact a:first-child { flex-basis:100%; }
 .theme { grid-column:1 / -1; justify-self:start; margin:12px 0 -8px -8px; }
 .bio { font-size:18px; line-height:1.55; }
 #research { margin-top:30px; }
 h2 { font-size:24px; }
 .paper h3 { grid-column:2; grid-row:1; font-size:20px; }
 .paper-meta { font-size:17px; }
 .note { grid-template-columns:61px minmax(0,1fr); gap:12px; font-size:16px; }
}
@media(max-width:540px) {
 .papers .bibliography > li { margin-bottom:37px; }
 .paper { grid-template-columns:min(28%,120px) minmax(0,1fr); column-gap:16px; }
 .paper h3 { font-size:19px; }
}

.image-credit { margin:40px 0 0; color:var(--muted); font-size:14px; }
