:root { color-scheme: light; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #24313c; background: #fff; font-size: 16px; }
* { box-sizing: border-box; }
body { margin: 0; }
main { width: min(100% - 3rem, 940px); margin: 0 auto; padding: 4.5rem 0 4rem; }
header { text-align: center; margin-bottom: 2.5rem; }
h1 { font-family: Georgia, serif; font-weight: 400; font-size: clamp(2.2rem, 7vw, 3.3rem); letter-spacing: -.035em; margin: 0 0 1rem; line-height: 1.15; }
header p { margin: .4rem 0; line-height: 1.5; }
a { color: #24566e; text-decoration-thickness: 1px; text-underline-offset: .2em; overflow-wrap: anywhere; }
a:hover { color: #a44710; }
a:focus-visible { outline: 2px solid #a44710; outline-offset: 5px; }
.portrait { display: block; width: 100%; height: auto; border-radius: 3px; }
.about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); gap: 2rem; align-items: start; margin-bottom: 3rem; }
.bio { font-size: 1rem; line-height: 1.75; }
.bio p { margin: 0 0 1rem; }
.bio p:last-child { margin-bottom: 0; }
.publications { max-width: 760px; margin: 0 auto; }
#publications-title { font-family: Georgia, serif; font-weight: 400; font-size: 1.65rem; text-align: center; margin-bottom: 2rem; }
.year { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; }
.year > h2 { font-size: .875rem; font-weight: 400; margin: .15rem 0; color: #57646e; }
ol { list-style: none; margin: 0; padding: 0 0 0 1rem; border-left: 1px solid #eef0f2; }
li { position: relative; padding-bottom: 1.4rem; }
.kind { color: #687681; font-size: .875rem; }
h3 { margin: .15rem 0 .3rem; font-size: .9375rem; font-weight: 400; line-height: 1.5; }
.citation { margin: 0; font-size: .875rem; color: #5b6771; line-height: 1.7; overflow-wrap: anywhere; }
@media (max-width: 680px) { .about { grid-template-columns: 1fr; gap: 1.25rem; } .portrait { max-width: 420px; } }
@media (max-width: 480px) { main { width: calc(100% - 2rem); padding-top: 2.75rem; } .year { grid-template-columns: 3rem 1fr; gap: .65rem; } ol { padding-left: 1rem; } }
