:root{--bg:#FBFBF9;--ink:#1B1B1B;--muted:#5E5E5E;--rule:#D8D6D0;--link:#1D3F8F;--linkline:#C9D2E6;--box:#E7E5DF}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Crimson Pro",Georgia,"Times New Roman",serif;font-size:19px;line-height:1.55;padding-inline:16px}
a{color:var(--link);text-decoration:none;border-bottom:1px solid var(--linkline)}
a:hover{border-bottom-color:var(--link)}
a:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.page{max-width:760px;margin:0 auto;padding-block:36px 48px;display:flex;flex-direction:column;gap:28px}
header.id{display:flex;gap:28px;align-items:center}
header.id img{width:150px;height:185px;object-fit:cover;border:1px solid var(--rule);flex-shrink:0}
header.id h1{margin:0;font-size:42px;font-weight:500;font-variant:small-caps;letter-spacing:.03em;line-height:1.1}
header.id p{margin:6px 0 0;color:var(--ink2)}
header.small h1{margin:0;font-size:28px;font-weight:500;font-variant:small-caps;letter-spacing:.03em}
header.small a{color:var(--ink);border:0}
nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 26px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:10px 0;font-size:18px}
nav a[aria-current="page"]{color:var(--ink);border-bottom:2px solid var(--ink)}
h2{margin:0 0 8px;font-size:24px;font-weight:600}
h3{margin:18px 0 6px;font-size:19px;font-weight:600;color:var(--muted)}
section p{margin:0 0 10px}
ul{margin:0;padding-left:24px}
li{margin:0 0 6px}
.links{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:13px;white-space:nowrap}
.muted{color:var(--muted)}
dl.contact{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px 16px;margin:0}
dl.contact dt{color:var(--muted)}
dl.contact dd{margin:0}
table{border-collapse:collapse;width:100%}
td{padding:6px 12px 6px 0;vertical-align:top;border-bottom:1px solid var(--rule)}
td.when{white-space:nowrap;color:var(--muted);width:130px}
.topbar{display:flex;justify-content:flex-end;font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.topbar b{color:var(--ink)}
.ipa{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted);margin-top:4px}
.abs{font-variant:small-caps;letter-spacing:.04em}
.msc{font-size:16px;color:var(--muted)}
footer{border-top:1px solid var(--rule);padding-top:12px;font-size:15px;color:var(--muted)}
@media (max-width:560px){
  body{font-size:18px}
  header.id{flex-direction:column;align-items:flex-start;gap:16px}
  header.id h1{font-size:34px}
  dl.contact{grid-template-columns:1fr}
  dl.contact dt{margin-top:6px}
  td.when{width:auto}
}

ul.pubs li{margin:0 0 14px}
details{margin-top:4px}
summary{cursor:pointer;font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-size:13px;color:var(--link);width:max-content}
details p{margin:6px 0 0;font-size:17px;line-height:1.5;color:var(--ink2)}
p.small{font-size:15px}
dd.profiles{line-height:1.8;white-space:normal}
dd.profiles a{white-space:nowrap}
section>h3:first-child{margin-top:0}
mjx-container{font-size:95%!important}
/* Theme: follows the OS by default; the toggle sets html[data-theme] (same scheme as andrej.com) */
:root{--ink2:#333}
@media (prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#212121;--ink:#dcdcdc;--ink2:#cfcfcf;--muted:#ababab;--rule:#3a3a3a;--link:#ffb300;--linkline:rgba(255,179,0,.35);--box:#2b2b2b}}
html[data-theme="light"]{color-scheme:light;--bg:#FBFBF9;--ink:#1B1B1B;--ink2:#333;--muted:#5E5E5E;--rule:#D8D6D0;--link:#1D3F8F;--linkline:#C9D2E6;--box:#E7E5DF}
html[data-theme="dark"]{color-scheme:dark;--bg:#212121;--ink:#dcdcdc;--ink2:#cfcfcf;--muted:#ababab;--rule:#3a3a3a;--link:#ffb300;--linkline:rgba(255,179,0,.35);--box:#2b2b2b}
.topbar{align-items:center;gap:14px}
.page{position:relative}
.topbar{position:absolute;top:36px;right:0;margin:0;line-height:1}
header.small h1{font-size:42px;line-height:1.1}
@media (max-width:560px){header.small h1{font-size:34px}}
.theme-toggle{background:none;border:none;padding:0;margin:0;color:var(--ink);cursor:pointer;font:inherit;font-size:15px;line-height:1}
.theme-toggle:hover{color:var(--link)}
.theme-toggle:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.theme-toggle::before{content:"\2600"}
@media (prefers-color-scheme:dark){.theme-toggle::before{content:"\263E"}}
html[data-theme="light"] .theme-toggle::before{content:"\2600"}
html[data-theme="dark"] .theme-toggle::before{content:"\263E"}
