:root {
  color-scheme: light;
  --paper:#fefbfc; --ink:#351b2d; --sub:#6b3f56; --line:#edbdd3;
  --dark:#9e145e; --night:#40142e; --lime:#fbd9ea; --wash:#fcebf3;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --mono: ui-monospace, SFMono-Regular, Consolas, monospace;
}
*, *::before, *::after { box-sizing:border-box }
html { scroll-behavior:smooth }
body { margin:0; background:var(--paper); color:var(--ink); font: 16px/1.65 var(--sans); -webkit-font-smoothing:antialiased }
a { color:inherit }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid #b21768; outline-offset:5px; border-radius:2px }
img { max-width:100%; height:auto; display:block }
p { margin:0 0 1em }
h1,h2,h3 { margin:0; line-height:1.06 }
.wrap { width:min(100% - 88px, 1200px); margin-inline:auto }
.skip { position:absolute; top:.75rem; left:.75rem; transform:translateY(-200%); z-index:5; background:var(--lime); color:var(--ink); padding:.55rem .85rem }
.skip:focus { transform:none }
.masthead { border-bottom:1px solid var(--line) }
.masthead::after,.footer::before {
  content:"";
  display:block;
  height:clamp(13px,1.4vw,18px);
  background:#fcebf3 url("rose-ribbon.svg") center / auto 100% repeat-x;
}
.masthead-inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:1.4rem }
.brand { display:inline-flex; align-items:center; gap:.72rem; text-decoration:none; font-weight:750; letter-spacing:-.035em; white-space:nowrap; font-size:1.17rem }
.brand img { border-radius:9px; }
.brand-dot { color:var(--sub); font-weight:550 }
.masthead nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(.85rem,2.3vw,2rem); font-size:.9rem; font-weight:620 }
.masthead nav a, .scholar-nav { text-decoration:none }
.language-picker { position:relative }
.language-picker summary {
  display:flex;
  align-items:center;
  gap:.45rem;
  list-style:none;
  color:var(--dark);
  cursor:pointer;
  white-space:nowrap;
}
.language-picker summary::-webkit-details-marker { display:none }
.language-picker summary::after {
  content:"";
  width:.4rem;
  height:.4rem;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.language-picker[open] summary::after { transform:translateY(2px) rotate(225deg) }
.language-options {
  position:absolute;
  z-index:3;
  inset-inline-end:0;
  inset-block-start:calc(100% + .55rem);
  min-width:10.5rem;
  margin:0;
  padding:.3rem;
  list-style:none;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:0 7px 20px #40142e26;
}
.language-options a { display:block; padding:.32rem .55rem; border-radius:3px; white-space:nowrap }
.language-options a:hover,.language-options a[aria-current="page"] { background:var(--wash); color:var(--dark) }
.masthead a:hover, .footer a:hover { text-decoration:underline; text-underline-offset:5px }
.scholar-nav { font-size:.84rem; border:1px solid var(--line); border-radius:5px; padding:.45rem .8rem; white-space:nowrap; font-weight:650 }
.scholar-nav span { margin-left:.2rem }
.hero { display:grid; grid-template-columns:1fr .96fr; gap:clamp(2.1rem,6vw,6rem); align-items:center; padding-block:clamp(2.8rem,6vw,5.6rem) 2.9rem }
.hero-copy { padding-block:.4rem 1.5rem }
.eyebrow, .link-list small { font: 650 .72rem/1.45 var(--mono); letter-spacing:.1em; display:block }
.hero-label { display:flex; align-items:center; gap:.62rem; margin-bottom:1.5rem; color:var(--sub) }
.dot { width:.58rem; height:.58rem; border-radius:50%; background:#c21878; flex:none }
.hero h1 { font: 820 clamp(5.2rem,9.4vw,8.35rem)/.83 var(--sans); color:#c21878; letter-spacing:-.064em; margin:0 0 1.45rem -.042em }
.surname { display:block }
.hero-period { color:#852650 }
.hero-subtitle { font-size:clamp(1.18rem,2.25vw,1.7rem); line-height:1.2; font-weight:660; letter-spacing:-.045em; margin:0 0 .68rem }
.hero-deck { color:var(--sub); font-size:clamp(1rem,1.5vw,1.13rem); max-width:38ch }
.hero-links { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.5rem; margin-top:1.75rem }
.button,.text-link { display:inline-flex; align-items:center; gap:.55rem; font-weight:700; font-size:.91rem; line-height:1.35; }
.button { padding:.78rem 1rem; border-radius:5px; text-decoration:none }
.primary { color:var(--paper); background:var(--dark) }
.primary:hover { background:#791146 }
.text-link { text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.text-link:hover { text-decoration-thickness:2px }
.hero-figure { width:min(100%,560px); margin:0; align-self:center; justify-self:center; min-width:0 }
.hero-figure img { width:100%; border-radius:7px }
.hero-figure figcaption { display:flex; justify-content:space-between; gap:1rem; padding-top:.65rem; font-size:.75rem; color:var(--sub) }
.hero-figure figcaption span:first-child { font-family:var(--mono); letter-spacing:.11em; flex:none }
.credentials { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line) }
.credentials > div { display:grid; align-content:start; padding:1.2rem 1.25rem 1.35rem; gap:.12rem; line-height:1.4 }
.credentials > div:first-child { padding-left:0 }
.credentials > div + div { border-left:1px solid var(--line) }
.credentials strong { font-size:1.06rem; letter-spacing:-.025em }
.credentials span { color:var(--sub); font-size:.84rem }
.credentials .eyebrow { font-size:.67rem; margin-bottom:.2rem }
.section { display:grid; grid-template-columns:minmax(0,.77fr) minmax(0,1.23fr); gap:clamp(2rem,6.7vw,6.5rem); padding-block:clamp(3.7rem,8.2vw,7.5rem); scroll-margin-top:1rem }
.section-intro p:not(.eyebrow) { max-width:29ch; color:var(--sub); font-size:1.05rem; margin-bottom:1.2rem }
.section-label { margin-bottom:1.1rem; color:var(--sub) }
.section-label span { display:inline-block; margin-right:.45rem; color:var(--ink) }
.section h2 { font:780 clamp(2.8rem,5.8vw,4.9rem)/.94 var(--sans); color:#852650; letter-spacing:-.075em; margin:0 0 .85rem -.035em; }
.feature { padding:clamp(1.35rem,3.4vw,2.4rem); background:var(--wash); border:1px solid #f0ccdf; border-radius:6px }
.feature .eyebrow { color:var(--sub); margin-bottom:.8rem }
.feature h3,.research-feature h3 { font:500 clamp(1.85rem,3vw,2.6rem)/1.05 var(--serif); letter-spacing:-.045em; margin-bottom:.75rem }
.feature p:not(.eyebrow) { max-width:58ch; color:#583048 }
.tag-row { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.2rem }
.tag-row span { padding:.2rem .53rem; border:1px solid #d6a1bc; border-radius:3px; font-size:.74rem; font-weight:640 }
.teach-feature .text-link { margin-top:1rem }
.teaching-notes { display:grid; grid-template-columns:1fr 1fr; gap:1.35rem; margin-top:1.65rem }
.teaching-notes article { border-top:1px solid var(--line); padding-top:1.05rem }
.teaching-notes h3 { font-size:1.06rem; line-height:1.25; margin-bottom:.45rem }
.teaching-notes p { font-size:.92rem; margin:0; color:var(--sub) }
.research-band { background:var(--night); color:#fff5fa }
.research h2 { color:#fff5fa }
.research .section-label,.research .section-intro p:not(.eyebrow) { color:#edbbd4 }
.research .section-label span,.research .text-link { color:var(--lime) }
.research-feature { background:#5d2144; border:1px solid #995f7f; border-radius:6px; padding:clamp(1.35rem,3.4vw,2.4rem); }
.research-feature .eyebrow { color:var(--lime); margin-bottom:.8rem }
.research-feature p:not(.eyebrow) { color:#f7dce9; max-width:58ch; margin-bottom:.8rem }
.link-list { list-style:none; padding:0; margin:0 }
.publications { margin-top:1.5rem }
.link-list a { text-decoration:none; display:flex; gap:1.3rem; justify-content:space-between; align-items:center; border-bottom:1px solid #8b5573; padding:.78rem .1rem; }
.link-list small { color:#edbbd4; font-size:.63rem; margin-bottom:.2rem }
.link-list strong { display:block; font-weight:620; font-size:.96rem; line-height:1.35 }
.link-list a > span:last-child { color:var(--lime); }
.link-list a:hover strong { text-decoration:underline; text-underline-offset:4px }
.coverage { margin-top:1.85rem }
.coverage > p { color:var(--lime); margin-bottom:.38rem }
.print-button { appearance:none; color:var(--ink); font-family:inherit; background:transparent; border:0; padding:0; cursor:pointer; }
.print-button[hidden] { display:none }
.timeline { margin:0; list-style:none; padding:0 }
.timeline li { display:grid; grid-template-columns:6.7rem 1fr; gap:1rem; padding:1.35rem 0; border-top:1px solid var(--line); }
.timeline li:last-child { border-bottom:1px solid var(--line) }
.timeline li > span { color:var(--sub); padding-top:.27rem; white-space:nowrap }
.timeline h3 { font-weight:700; font-size:1.12rem; line-height:1.25; letter-spacing:-.022em }
.timeline .organisation { font-size:.88rem; font-weight:650; color:var(--sub); margin:.2rem 0 .48rem }
.timeline p:not(.organisation) { color:var(--sub); margin:0 0 .42rem; font-size:.93rem; }
.timeline .text-link { font-size:.84rem }
.qualifications { margin-top:1.65rem }
.qualifications > p { color:var(--sub); margin-bottom:.6rem }
.qualifications dl { margin:0 }
.qualifications dl div { border-top:1px solid var(--line); padding:.65rem 0; }
.qualifications dt { font-size:.94rem; font-weight:690 }
.qualifications dd { margin:0; color:var(--sub); font-size:.85rem }
.footer { border-top:1px solid var(--line) }
.footer-inner { min-height:95px; display:flex; justify-content:space-between; align-items:center; gap:1rem }
@media (max-width:900px) {
  .wrap { width:calc(100% - 56px) }
  .hero { gap:2rem }
  .hero h1 { font-size:clamp(4.3rem,9.4vw,6.9rem) }
  .hero-deck { max-width:35ch }
  .section { gap:2rem }
}
@media (max-width:690px) {
  .wrap { width:calc(100% - 36px) }
  .masthead-inner { position:relative; min-height:65px; flex-wrap:wrap; gap:0 1rem; padding-top:.62rem }
  .masthead nav { order:3; width:100%; justify-content:flex-start; gap:.4rem clamp(.75rem,3.4vw,1.35rem); font-size:.84rem; padding:.5rem 0 .68rem }
  .language-picker { position:static }
  .language-options { inset-block-start:calc(100% + .25rem) }
  .scholar-nav { font-size:.75rem }
  .hero { grid-template-columns:1fr; padding-top:2.55rem; padding-bottom:1.8rem; gap:1.4rem }
  .hero-copy { padding-block:0 .4rem }
  .hero-label { margin-bottom:1.15rem; font-size:.67rem }
  .hero h1 { font-size:clamp(3.9rem,15.4vw,7.2rem); margin-bottom:1.24rem }
  .hero-deck { max-width:46ch }
  .hero-links { margin-top:1.2rem }
  .credentials { grid-template-columns:1fr }
  .credentials > div { padding:.72rem 0 }
  .credentials > div + div { border-left:0; border-top:1px solid var(--line) }
  .credentials .eyebrow { margin:0 }
  .section { grid-template-columns:1fr; gap:1.3rem; padding-block:3.15rem }
  .section-intro p:not(.eyebrow) { max-width:43ch; margin-bottom:.55rem }
  .section-label { margin-bottom:.72rem }
  .section h2 { margin-bottom:.68rem }
  .timeline li { grid-template-columns:5.25rem 1fr; gap:.65rem }
}
@media (max-width:370px) {
  .hero h1 { font-size:clamp(3.3rem,15vw,3.9rem) }
  .hero-links { gap:.8rem 1rem }
  .teaching-notes { grid-template-columns:1fr; gap:1rem }
  .footer .brand { font-size:.99rem }
  .footer .text-link { font-size:.78rem; white-space:nowrap }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto } }
@media print {
  @page { margin:15mm }
  :root { --paper:#fff; --ink:#111; --sub:#333; --line:#999; --wash:#fff }
  body { font-size:10.5pt; background:white; color:#111 }
  .wrap { width:100% }
  .masthead,.skip,.hero-figure,.hero-links,.print-button,.footer { display:none }
  .hero,.section { display:block; padding:0 }
  .hero-copy { padding:0 }
  .hero h1 { color:inherit; font-size:32pt; line-height:1; margin:0 0 .2rem; letter-spacing:-.05em }
  .surname { display:inline }
  .hero-label { margin-bottom:.4rem }
  .hero-period { color:inherit }
  .hero-deck,.section-intro p:not(.eyebrow) { max-width:none; font-size:inherit }
  .credentials { margin:0 0 .8rem; grid-template-columns:repeat(3,1fr) }
  .credentials > div { padding:.35rem .45rem }
  .credentials > div + div { border-left:1px solid #999; border-top:0 }
  .section h2 { color:inherit; font-size:22pt; margin:.25rem 0 }
  .section-label { margin:1rem 0 .3rem }
  .section-intro { break-after:avoid }
  .feature,.research-feature { padding:.55rem 0; border:0 }
  .feature h3,.research-feature h3 { font-size:15pt }
  .feature p:not(.eyebrow),.research-feature p:not(.eyebrow) { color:#222 }
  .research-band,.research-feature { background:white; color:#111 }
  .research .section-label,.research .section-intro p:not(.eyebrow),.research .section-label span,.research .text-link,.research-feature .eyebrow,.coverage > p,.link-list small,.link-list a > span:last-child { color:#333 }
  .link-list a,.timeline li { padding:.34rem 0; border-color:#aaa }
  .tag-row,.coverage { display:none }
  .teaching-notes { margin:.35rem 0 0 }
  .teaching-notes article,.timeline li,.qualifications dl div,.link-list li { break-inside:avoid }
  .experience .section-intro > p:not(.eyebrow) { display:none }
}
