@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Montserrat:wght@400;500&family=Poppins:wght@700&family=Schoolbell&display=swap');
:root {
  --accent:#7FA36B;
  --sage:#B7C4A8;
  --cream:#E7DFD1;
  --charcoal:#2D2F33;
  --background:var(--cream);
  --text:var(--charcoal);
  --muted:#62675e;
  --line:rgba(45,47,51,.18);
  --surface:rgba(183,196,168,.38);
}
* { box-sizing:border-box; }
html { background:var(--background); scroll-behavior:smooth; }
body { margin:0; min-width:320px; color:var(--text); background:var(--background); }
main { min-height:100vh; padding:64px 32px; }
.shell { width:min(672px,100%); margin:0 auto; }
.mono { font-family:"Poppins",Arial,sans-serif; }
.nav { display:flex; flex-wrap:wrap; align-items:center; gap:4px; font:14px/20px "Libre Baskerville",Arial,sans-serif; }
.nav a,.social a { color:inherit; font-family:"Libre Baskerville",Georgia,serif; text-decoration:none; padding:0 1px; transition:color .15s,background .15s; }
.nav a:hover,.nav a:focus-visible,.social a:hover,.social a:focus-visible,.nav .active { color:var(--charcoal); background:var(--sage); outline:none; }
.dot { margin:0 1px; }
.nav .dot,.social .dot { visibility:hidden; }
.page { padding-top:40px; }
h1 { margin:0 0 32px; font:500 24px/32px "Poppins",Arial,sans-serif; }
.home h1 { margin-bottom:0; font:700 24px/32px "Poppins",Arial,sans-serif; }
.location { margin:20px 0 0; color:var(--muted); font:14px/20px "Libre Baskerville",Georgia,serif; }
.avatar { display:block; width:min(256px,60vw); max-width:100%; height:auto; aspect-ratio:1; margin:24px 0 0; border-radius:2px; object-fit:cover; }
.copy { margin-top:24px; font:17px/1.65 "Libre Baskerville",Georgia,serif; }
.copy:is(img) { animation:body-copy-reveal 600ms cubic-bezier(.33,1,.68,1) 350ms both; }
.copy > p,
.copy > h2,
.copy > ul > li,
.copy > li,
.copy > .news > h2,
.copy > .news > ul > li {
  animation:body-copy-reveal 600ms cubic-bezier(.33,1,.68,1) both;
  animation-delay:calc(350ms + var(--copy-line, 0) * 110ms);
}
.copy > :nth-child(1),.copy > ul > :nth-child(1) { --copy-line:0; }
.copy > :nth-child(2),.copy > ul > :nth-child(2) { --copy-line:1; }
.copy > :nth-child(3),.copy > ul > :nth-child(3) { --copy-line:2; }
.copy > :nth-child(4),.copy > ul > :nth-child(4) { --copy-line:3; }
.copy > :nth-child(5),.copy > ul > :nth-child(5) { --copy-line:4; }
.copy > :nth-child(6),.copy > ul > :nth-child(6) { --copy-line:5; }
.copy > :nth-child(7),.copy > ul > :nth-child(7) { --copy-line:6; }
.copy > :nth-child(8),.copy > ul > :nth-child(8) { --copy-line:7; }
.copy > :nth-child(9),.copy > ul > :nth-child(9) { --copy-line:8; }
.copy > :nth-child(10),.copy > ul > :nth-child(10) { --copy-line:9; }
.copy > .news > h2 { --copy-line:5; }
.copy > .news > ul > :nth-child(1) { --copy-line:6; }
.copy > .news > ul > :nth-child(2) { --copy-line:7; }
.copy > .news > ul > :nth-child(3) { --copy-line:8; }
.copy > .news > ul > :nth-child(4) { --copy-line:9; }
.copy > .news > ul > :nth-child(5) { --copy-line:10; }
.copy > .news > ul > :nth-child(6) { --copy-line:11; }
.copy > .news > ul > :nth-child(7) { --copy-line:12; }
.copy > .news > ul > :nth-child(8) { --copy-line:13; }
.copy p { margin:0 0 16px; }
.copy a { color:inherit; text-underline-offset:2px; }
.news { margin-top:38px; font:16px/1.6 "Libre Baskerville",Georgia,serif; }
.news h2 { margin:0 0 16px; font:400 22px/1.3 "Montserrat",Arial,sans-serif; }
.news ul { margin:0; padding-left:22px; }
.news li { margin-bottom:12px; }
.news a { color:inherit; text-underline-offset:2px; }
.social { display:flex; justify-content:flex-end; align-items:center; gap:4px; margin-top:12px; font:14px/20px "Montserrat",Arial,sans-serif; }

@keyframes body-copy-reveal {
  from { opacity:0; transform:translateY(-15px); }
  to { opacity:1; transform:translateY(0); }
}

/* Posts */
.empty { color:var(--muted); font:14px/20px "Montserrat",Arial,sans-serif; }
.empty { font-style:italic; }

/* Publications */
.publications-list { list-style:none; margin:0; padding:0; }
.publications-list li { padding:18px 0; border-bottom:1px solid var(--line); }
.publications-list li:first-child { padding-top:0; }
.publication-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin-bottom:6px; color:var(--accent); font:12px/1.5 "Montserrat",Arial,sans-serif; }
.publication-meta time { min-width:36px; }
.publications-list > li > a { color:var(--text); font-weight:700; font-size:15px; line-height:1.55; text-decoration-thickness:1px; text-underline-offset:3px; }
.publications-list > li > a:hover,.publications-list > li > a:focus-visible { background:var(--surface); outline:none; }

/* Talks */
.talks-list { list-style:none; margin:0; padding:0; font:15px/1.55 "Libre Baskerville",Georgia,serif; }
.talks-list li { display:grid; grid-template-columns:112px minmax(0,1fr); gap:16px 24px; padding:18px 0; border-bottom:1px solid var(--line); }
.talks-list li:first-child { padding-top:0; }
.talks-list time { color:var(--accent); font:12px/1.5 "Montserrat",Arial,sans-serif; }
.talks-list strong { display:block; font-weight:700; font-size:15px; }
.talks-list p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.talks-list a { color:inherit; text-underline-offset:2px; }

@media(max-width:639px){
 main{padding:34px 24px}.nav{gap:2px 4px}.nav .dot{display:none}.social .dot{visibility:visible}.page{padding-top:34px}h1{font-size:22px}.copy{font-size:16px}.social{justify-content:flex-start;flex-wrap:wrap}.talks-list{font-size:14px}.talks-list strong{font-size:14px}.talks-list p{font-size:12px}.talks-list time{font-size:11px}.talks-list li{grid-template-columns:1fr;gap:6px}.publications-list > li > a{font-size:14px}
}
@media(max-width:479px){.avatar{display:none}}
@media print{body,html{background:#fff;color:#000}main{padding:0}.nav{display:none}.page{padding-top:0}.place,.date,.topics{color:#444}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.copy,.copy > p,.copy > h2,.copy > ul > li,.copy > li,.copy > .news > h2,.copy > .news > ul > li{animation:none}}
