:root{--bg: #0a0a0a;--text: #f2f0eb;--dim: rgba(242, 240, 235, .58);--dimmer: rgba(242, 240, 235, .34);--rule: rgba(242, 240, 235, .12);--body: 14px}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:Inter,Helvetica Neue,Arial,system-ui,sans-serif;font-size:var(--body);line-height:1.5;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#f2f0eb29}a{color:inherit;text-decoration:none}#root{min-height:100%}.home{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;padding:clamp(20px,3vw,40px);gap:clamp(20px,4vh,48px)}.stage{position:relative;flex:1;min-height:240px}.portraitCanvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}.footer{display:flex;flex-direction:column;gap:clamp(14px,2.4vh,24px);color:var(--dim)}.footerBottom{display:flex;align-items:flex-start;justify-content:space-between;gap:clamp(24px,6vw,96px)}.bio{margin:0;max-width:58ch;transition:color .25s ease}.bio:hover{color:var(--text)}.linkRow{display:flex;flex-wrap:wrap;align-items:baseline}.linkRowItem{white-space:nowrap}.dot{padding:0 .65em;color:var(--dimmer)}.footerBottom .linkRow{justify-content:flex-end;flex-shrink:0}.link{color:var(--dim);transition:color .18s ease;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:3px}.link:hover,.bio:hover .link{color:var(--text)}.link:hover{text-decoration-color:#f2f0eb66}.footer>.linkRow .link{color:var(--text)}@media(max-width:720px){.footerBottom{flex-direction:column;gap:16px}.footerBottom .linkRow{justify-content:flex-start}}.subpage{width:100%;max-width:720px;margin:0 auto;padding:clamp(28px,8vh,88px) clamp(20px,5vw,32px) clamp(48px,10vh,96px)}.back{display:inline-block;margin-bottom:clamp(28px,6vh,48px);color:var(--dim);transition:color .18s ease}.back:hover{color:var(--text)}.subpageHeading{margin:0 0 clamp(20px,4vh,32px);font-size:clamp(20px,2.2vw,26px);font-weight:500;letter-spacing:-.02em;color:var(--text)}.filters{display:flex;flex-wrap:wrap;gap:clamp(14px,3vw,22px);margin-bottom:clamp(24px,5vh,36px)}.filter{padding:0;border:0;background:none;font:inherit;color:var(--dimmer);cursor:pointer;transition:color .18s ease}.filter:hover{color:var(--dim)}.filterActive{color:var(--text)}.rows{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.row{padding:clamp(14px,2vh,20px) 0;border-bottom:1px solid var(--rule)}.rowHead{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.rowTitle{color:var(--text)}a.rowTitle{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-color .18s ease}a.rowTitle:hover{text-decoration-color:#f2f0eb66}.rowYear{flex-shrink:0;color:var(--dimmer);font-variant-numeric:tabular-nums}.rowSub{margin:6px 0 0;max-width:62ch;color:var(--dim)}.note{margin-top:clamp(28px,5vh,44px);color:var(--dimmer)}.pubMeta{margin:0 0 clamp(20px,4vh,28px);color:var(--dim)}.pubLinks{display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,26px);margin-bottom:clamp(20px,4vh,28px)}.pdfFrame{width:100%;height:min(78vh,900px);border:1px solid var(--rule);border-radius:2px;background:#111}
