:root{--text:#333;--muted:#888;--faint:#b6b6b6;--line:#e7e7e7;--link:#145da0;--venue:#34764a;--width:970px;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:#fff;margin:0;font-size:17px;line-height:1.5}::selection{background:#dceaf5}h1,h2,h3,p{margin-top:0}a{color:var(--link);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}a:hover{color:#0d4478}a:focus-visible,summary:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:2px}img{max-width:100%;display:block}.skip-link{z-index:100;background:#fff;padding:8px 12px;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.page{width:100%;max-width:var(--width);margin:0 auto;padding:0 15px}.profile{grid-template-columns:210px minmax(0,1fr);align-items:center;gap:40px;max-width:790px;margin:56px auto 48px;display:grid}.portrait{object-fit:cover;border-radius:50%;width:190px;height:190px}.profile h1{letter-spacing:-.025em;margin-bottom:4px;font-size:2.2rem;font-weight:400;line-height:1.15}.profile-copy{min-width:0}.profile p{margin-bottom:13px}.profile .subtitle{color:var(--muted);margin-bottom:14px;font-size:1.05rem;font-style:italic}.profile-links{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:.95rem;display:flex}.profile-links span{white-space:nowrap}hr{border:0;border-top:1px solid var(--line);margin:0 calc(50% - 50vw)}section{margin-top:52px;scroll-margin-top:20px}section h2{letter-spacing:-.02em;margin-bottom:24px;font-size:2rem;font-weight:400;line-height:1.2}section h3{margin-bottom:6px;font-size:1.02rem;font-weight:700;line-height:1.4}.timeline-entry{grid-template-columns:120px minmax(0,1fr);gap:20px;display:grid}.timeline-entry>time{color:var(--faint);text-align:right;padding-top:1px;font-size:.84rem}.timeline-entry>div{border-left:2px solid #ddd;padding:0 0 28px 24px;position:relative}.timeline-entry>div:before{content:"";background:#c6c6c6;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-6px}.timeline-entry:last-child>div{border-left-color:#0000;padding-bottom:0}.timeline-entry p{margin-bottom:12px}.timeline-entry p:last-child{margin-bottom:0}.text-list{border-top:1px solid var(--line)}.text-row{border-bottom:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:20px;padding:10px 0;display:grid}.text-row>time{color:var(--muted);padding-top:2px;font-size:.82rem}.text-row p{margin-bottom:0}.archive{margin-top:8px}.archive>summary{min-height:44px;color:var(--link);cursor:pointer;padding:10px 0;font-size:.9rem}.archive[open]>summary{margin-bottom:4px}.archive .text-list{margin-top:0}.publication-row{border-left:4px solid #aaa;margin-bottom:12px;padding:5px 0 5px 12px;font-size:.9rem}.publication-row p{margin-bottom:2px}.publication-row .venue{color:var(--venue)}.metadata,.section-note{color:var(--muted);font-size:.82rem}.metadata{overflow-wrap:anywhere}.section-note{margin:16px 0 0}.recognition-list,.award-list{max-width:870px}.press-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;display:grid}.press-row{grid-template-columns:1fr;gap:4px;padding:11px 0}.press-meta{color:var(--muted);flex-direction:row;gap:8px;padding-top:2px;font-size:.79rem;line-height:1.35;display:flex}.press-meta span{color:var(--text)}.press-meta time:before{content:"· "}#contact{border-top:1px solid var(--line);margin-top:58px;padding:38px 0 60px}#contact p{margin-bottom:0}@media (width<=760px){body{font-size:16px}.page{padding:0 20px}.profile{grid-template-columns:1fr;gap:24px;margin:38px auto 40px}.portrait{width:150px;height:150px;margin:0 auto}.profile-copy{text-align:center}.profile-copy>p:not(.subtitle){text-align:left}.profile h1{font-size:2rem}.profile-links{justify-content:center;line-height:1.9}section{margin-top:44px}section h2{margin-bottom:20px;font-size:1.8rem}.timeline-entry{grid-template-columns:1fr;gap:5px}.timeline-entry>time{text-align:left}.timeline-entry>div{margin-left:4px;padding:0 0 28px 20px}.text-row,.press-row,.press-list{grid-template-columns:1fr;gap:3px}.press-meta{flex-direction:row;gap:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
