:root{--paper: #eeebe3;--ink: #161616;--muted: #5f5c55;--line: #c9c4b8;--accent: #1f3fd6;--serif: "Newsreader", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--measure: 68ch;--gutter: clamp(16px, 4vw, 48px)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #121212;--ink: #e9e5da;--muted: #9c978c;--line: #34322e;--accent: #8ea2ff}}:root[data-theme=dark]{--paper: #121212;--ink: #e9e5da;--muted: #9c978c;--line: #34322e;--accent: #8ea2ff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.6 var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased}.mono{font-family:var(--mono);font-size:.8125rem;letter-spacing:.01em}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}canvas{display:block;image-rendering:pixelated}.skip{position:absolute;left:-999px}.skip:focus{left:var(--gutter);top:8px;z-index:10;background:var(--paper);padding:4px 8px}.bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px var(--gutter);background:var(--paper);border-bottom:1px solid var(--ink)}.bar a{text-decoration:none}.bar .home{font-weight:500}.bar nav{display:flex;gap:clamp(12px,2.5vw,28px);align-items:center}.theme{font:inherit;font-size:1rem;line-height:1;color:inherit;background:none;border:0;padding:2px;cursor:pointer}.hero{position:relative;border-bottom:1px solid var(--ink)}.field{width:100%;height:clamp(320px,62vh,620px)}.intro{position:absolute;left:var(--gutter);bottom:calc(clamp(24px,6vh,64px) + 2.2em);max-width:min(640px,calc(100% - 2 * var(--gutter)))}.plate{background:var(--paper);border:1px solid var(--ink);padding:clamp(18px,3vw,32px) clamp(20px,3.5vw,40px);box-shadow:6px 6px 0 var(--ink)}.plate h1{margin:0;font-weight:400;font-size:clamp(2.6rem,7vw,5rem);line-height:.95;letter-spacing:-.02em}.plate .role{margin:.5em 0 .9em;font-size:clamp(1.15rem,2.2vw,1.45rem);font-style:italic}.plate .meta{margin:0;color:var(--muted)}.caption{margin:0;padding:8px var(--gutter);border-top:1px solid var(--ink);font-size:.6875rem;color:var(--muted)}.section{padding:clamp(48px,9vh,96px) var(--gutter);max-width:1180px;margin:0 auto}.label{display:flex;gap:12px;align-items:baseline;margin:0 0 32px;padding-bottom:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}.label span{color:var(--muted)}.label.sub{margin-top:56px}.rule{width:100%;height:16px}.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,360px);gap:clamp(32px,6vw,80px);align-items:start}.prose{max-width:var(--measure)}.prose p{margin:0 0 1em;font-size:1.25rem;line-height:1.55}.prose p:first-child{font-size:1.5rem;line-height:1.4}.focus{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:8px}.section>.focus{margin:0}.focus li{border:1px solid var(--ink);padding:3px 10px}.life{margin:0}.life canvas{width:100%;height:auto;aspect-ratio:4 / 5;border:1px solid var(--ink);cursor:crosshair;touch-action:pan-y}.life figcaption{margin-top:8px;color:var(--muted);font-size:.6875rem}.rows{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:24px;padding:22px 0;border-top:1px solid var(--line)}.row:first-child{border-top:0;padding-top:0}.when{color:var(--muted);padding-top:.35em}.row h3{margin:0;font-size:1.3rem;font-weight:500;line-height:1.3}.row .at{font-weight:400;font-style:italic}.row .at:before{content:"· ";font-style:normal;color:var(--muted)}.row .meta{color:var(--muted);margin-top:2px}.row .note{margin:6px 0 0;max-width:var(--measure)}.when+div>.note:first-child{margin-top:0}.more{margin:28px 0 0}.points{margin:10px 0 0;padding-left:1.1em;max-width:var(--measure)}.points li{margin:.25em 0}.points li::marker{content:"▪  ";font-size:.7em}.pubs{list-style:none;margin:0;padding:0;display:grid;gap:26px}.pub h3{font-size:1.2rem}.authors,.venue{color:var(--muted)}.authors strong{color:var(--ink);font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{display:inline-block;padding:1px 8px;border:1px solid var(--ink);background:none;color:inherit;text-decoration:none;cursor:pointer;font-size:.75rem}.chip:hover{background:var(--ink);color:var(--paper)}.bibtex{margin:10px 0 0;padding:12px;overflow-x:auto;border:1px dashed var(--line);font-size:.75rem;line-height:1.5;white-space:pre}.email{margin:0 0 24px;font-size:clamp(1.8rem,6vw,3.6rem);line-height:1.1;letter-spacing:-.01em;overflow-wrap:anywhere}.email a{text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%}.links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 28px}.links a:after{content:" ↗"}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:20px var(--gutter);border-top:1px solid var(--ink);color:var(--muted);font-size:.6875rem}@media(max-width:760px){.bar nav a:not(:last-of-type){display:none}.about{grid-template-columns:1fr}.life{max-width:320px}.row{grid-template-columns:1fr;gap:4px}.when{padding-top:0}.plate{box-shadow:4px 4px 0 var(--ink)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{:root{--paper: #fff;--ink: #000;--muted: #444;--line: #bbb}body{font-size:11pt}.bar,.field,.caption,.rule,.life,.theme,.chip,.skip{display:none!important}.hero{border:0}.intro{position:static;max-width:none}.plate{box-shadow:none;border:0;padding:0 0 12pt;max-width:none}.section{padding:12pt 0}.row{break-inside:avoid}a{text-decoration:none}}
