 :root{color-scheme:light dark;--bg:#fafafa;--fg:#20252b;--muted:#5d6570;--link:#185ea8;--line:#dfe3e8} @media(prefers-color-scheme:dark){:root{--bg:#15181c;--fg:#e3e7ec;--muted:#a2acb8;--link:#8bbcff;--line:#343b45}}:root[data-theme=light]{color-scheme:light;--bg:#fafafa;--fg:#20252b;--muted:#5d6570;--link:#185ea8;--line:#dfe3e8}:root[data-theme=dark]{color-scheme:dark;--bg:#15181c;--fg:#e3e7ec;--muted:#a2acb8;--link:#8bbcff;--line:#343b45}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font:1.0625rem/1.7 system-ui,sans-serif;max-width:70ch;margin:auto;padding:0 1.25rem}a{color:var(--link);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:5px}nav{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--line)}nav a{text-decoration:none}nav [aria-current]{color:var(--fg);font-weight:600}button{margin-left:auto;background:none;border:1px solid var(--line);color:var(--fg);border-radius:6px;font-size:1.25rem;min-width:44px;min-height:44px;cursor:pointer}main{padding:2.6rem 0}h1,h2,h3{line-height:1.25;font-weight:600;letter-spacing:-.025em}h1{font-size:2.5rem;margin:0 0 .5rem}h2{font-size:1.55rem;margin:0 0 1rem}h3{font-size:1.12rem;margin-top:1.8rem}.role{color:var(--muted);margin-top:0;font-size:1.12rem}.intro{padding-bottom:1rem}.social{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem}section+section{margin-top:3rem}footer{border-top:1px solid var(--line);padding:1.5rem 0 2rem;display:flex;flex-wrap:wrap;gap:1.5rem;font-size:.85rem}table{width:100%;border-collapse:collapse;font-size:.9rem;table-layout:fixed}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.8rem .5rem;overflow-wrap:anywhere}th:first-child{width:27%}td a{display:inline-block;max-width:100%}li{margin:.6rem 0}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:var(--bg)}@media(max-width:400px){nav{gap:1rem}h1{font-size:2rem}body{padding:0 1rem}}
.intro h1{font-size:2rem}@media(max-width:400px){.intro h1{font-size:1.75rem}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

table tbody tr:last-child td{border-bottom:0}


.page-content h2:not(:first-child){margin-top:3rem}

.publications h2{font-size:1.2rem;font-weight:600;line-height:1.45;margin-bottom:.5rem}.publication-meta{color:var(--muted);font-size:.95rem;margin-top:0}
footer{justify-content:flex-end}
footer a{text-decoration:none}footer a:hover{text-decoration:underline}
