/* Readability, responsive layout and progressive navigation. */
:root {
  color-scheme: light;
  --muted: #53645e;
  --accent: #3c6755;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html { scroll-padding-top: 88px; }
a, button { -webkit-tap-highlight-color: transparent; }
section:focus, main:focus { outline: none; }
a:focus-visible, button:focus-visible { outline-color: var(--accent); }
h2, .work-detail h4 { text-wrap: pretty; }
.header-inner { min-height: 88px; }
.brand-caption { font-size: 11px; }
.header nav { font-size: 14px; gap: 23px; }
.header nav > a { display: inline-flex; align-items: center; min-height: 44px; }
.hero { grid-template-columns: minmax(0, 1fr) 350px; gap: 90px; min-height: 710px; padding-top: 76px; padding-bottom: 82px; }
.eyebrow { font-size: 12px; letter-spacing: 1.45px; line-height: 1.65; }
h1 { font-size: clamp(76px, 7.8vw, 110px); line-height: 1.02; letter-spacing: -4.5px; }
.other-name { font-size: 16px; }
.hero-role { font-size: 19px; }
.hero-affiliation { font-size: 15px; }
.hero-text { max-width: 560px; line-height: 1.7; text-wrap: pretty; }
.hero-actions { gap: 18px 27px; }
.button { min-height: 54px; font-size: 14px; border-radius: 3px; }
.text-link, .work-detail .text-link, .press-card .text-link, .programme .text-link {
  align-items: center; min-height: 44px; font-size: 14px; line-height: 1.5; padding-bottom: 0;
}
.identity-panel { padding: 27px 29px 28px; border-color: #c7d3c3; background: #edf1e5; }
.panel-heading { color: var(--muted); font-size: 11px; letter-spacing: 1.1px; }
.identity-art::after { content: ""; position: absolute; width: 174px; height: 174px; border: 1px solid #d3ddca; border-radius: 50%; }
.identity-place { font-size: 14px; }
.identity-since { font-size: 13px; line-height: 1.65; }
.record-stat { gap: 20px; }
.record-stat strong { font-size: 66px; }
.record-stat span { max-width: 170px; font-size: 14px; line-height: 1.55; }
.identity-panel .text-link { font-size: 13px; }
.section { padding-block: 84px; }
.section-head { max-width: 800px; margin-bottom: 42px; }
h2 { line-height: 1.2; letter-spacing: -1.4px; }
.section-intro { max-width: 690px; font-size: 16px; line-height: 1.8; }
.body-copy p { color: #354f48; line-height: 1.9; }
.about-layout { gap: 80px; }
.timeline-row { padding-block: 24px; }
.timeline-row > span { font-size: 14px; }
.timeline-row h3 { font-size: 16px; }
.timeline-row p { font-size: 14px; line-height: 1.65; }
.theme-row { grid-template-columns: 58px 1fr 1.1fr; gap: 26px; padding-block: 31px; }
.theme-icon { width: 38px; height: 38px; color: var(--accent); }
.theme-row h3 { font-size: 27px; line-height: 1.3; }
.theme-row p { color: #354f48; font-size: 15px; line-height: 1.85; }
.work { grid-template-columns: 270px minmax(0, 1fr); gap: 48px; padding-block: 36px; }
.work-index { font-size: 12px; }
.work-event h3 { font-size: 15px; }
.work-event > p { font-size: 14px; line-height: 1.8; }
.work-type { font-size: 12px; line-height: 1.65; letter-spacing: .75px; }
.work-detail h4 { font-size: 27px; line-height: 1.4; }
.work-authors { margin: 16px 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.work-authors strong { color: var(--ink); font-weight: 650; }
.work-note { color: #354f48; font-size: 14px; line-height: 1.8; }
.programme { grid-template-columns: 270px minmax(0, 1fr); }
.programme .eyebrow { font-size: 11px; letter-spacing: .75px; color: #cfddbd; }
.programme-date { font-size: 14px; line-height: 1.75; color: #d4dfd0; }
.programme > div > p:not(.eyebrow):not(.programme-date) { font-size: 15px; color: #e0e7dc; }
.programme a:focus-visible { outline-color: #cfddbd; }
.education-section { border-top: 1px solid var(--line); }
.education-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 80px; }
.education-layout .section-head { margin-bottom: 0; }
.education-layout h2 { font-size: 42px; }
.credentials { border-top: 1px solid var(--line); }
.credential { display: grid; grid-template-columns: 65px minmax(0, 1fr); gap: 22px; padding: 25px 0; border-bottom: 1px solid var(--line); }
.credential-year { padding-top: 3px; color: var(--accent); font-size: 14px; font-weight: 650; }
.credential h3 { margin: 0 0 9px; font: 400 25px/1.3 var(--serif); letter-spacing: -.3px; }
.credential p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; }
.credential .credential-provider { margin-bottom: 7px; color: #354f48; font-weight: 600; }
.credential ul { margin: 9px 0 0; padding-left: 18px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.credential li + li { margin-top: 5px; }
.press-meta { color: var(--muted); font-size: 14px; line-height: 1.7; }
.press-card h3 { font-size: 29px; line-height: 1.35; }
.profiles { grid-template-columns: 1.15fr 1fr; gap: 80px; }
.profiles h2 { max-width: 540px; font-size: 43px; }
.profiles > div > p:not(.eyebrow) { max-width: 510px; font-size: 16px; line-height: 1.85; }
.profile-links a > div { font-size: 15px; }
.profile-label { font-size: 21px; }
.footer-inner { font-size: 12px; line-height: 1.75; }
.footer span { color: #bccfbe; }
section[id] { scroll-margin-top: 24px; }

@media (max-width: 1080px) {
  .brand-caption { display: none; }
  .header nav { gap: 19px; }
  .hero { grid-template-columns: minmax(0, 1fr) 315px; gap: 44px; padding-top: 62px; }
  .about-layout, .profiles { gap: 50px; }
  .work, .programme { grid-template-columns: 230px minmax(0, 1fr); gap: 34px; }
  .education-layout { grid-template-columns: 280px minmax(0, 1fr); gap: 48px; }
  .education-layout h2 { font-size: 39px; }
  .theme-row { grid-template-columns: 43px 1fr 1.1fr; gap: 22px; }
}

@media (max-width: 860px) {
  html { scroll-padding-top: 78px; }
  html:not(.js) { scroll-padding-top: 0; }
  html:not(.js) .header { position: static; }
  .shell { width: calc(100% - 44px); }
  .header-inner { min-height: 78px; flex-wrap: wrap; gap: 0; padding-block: 12px; }
  .brand { gap: 13px; }
  .brand-caption { display: flex; font-size: 10px; }
  .brand-mark { font-size: 33px; }
  .menu-toggle { display: none; }
  .header nav { display: flex; position: static; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0; margin-top: 12px; padding: 10px 0 0; border-top: 1px solid var(--line); border-bottom: 0; }
  .header nav > a { min-height: 48px; padding: 8px 0; font-size: 15px; }
  .language { margin-top: 5px; margin-left: 0; padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .js .header-inner { flex-wrap: nowrap; padding-block: 0; }
  .js .menu-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; width: 48px; height: 48px; margin-left: auto; padding: 10px; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
  .menu-toggle span { width: 24px; height: 2px; background: currentColor; transition: transform .15s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  .js .header nav { display: none; position: absolute; top: 78px; left: 0; right: 0; margin: 0; padding: 15px 22px 23px; border-top: 0; border-bottom: 1px solid var(--line); background: var(--paper); }
  .js .header nav.open { display: flex; }
  .hero { grid-template-columns: 1fr; gap: 38px; min-height: auto; padding-top: 47px; padding-bottom: 58px; }
  .hero-copy { max-width: 650px; }
  h1 { font-size: clamp(70px, 11vw, 96px); letter-spacing: -3.7px; line-height: 1.02; }
  .hero-text { max-width: 590px; }
  .hero-actions > .text-link { font-size: 14px; }
  .identity-panel { display: grid; grid-template-columns: minmax(0, 1fr) 122px; gap: 0 18px; max-width: 600px; padding: 24px; }
  .panel-heading { grid-column: 1 / -1; margin-bottom: 15px; }
  .identity-art { grid-row: 2 / 4; grid-column: 2; height: 120px; margin: 0; }
  .identity-art::after { width: 112px; height: 112px; }
  .art-circle { width: 96px; height: 96px; }
  .art-square { width: 82px; height: 82px; }
  .art-monogram { font-size: 53px; letter-spacing: -6px; }
  .identity-art i { width: 165px; }
  .identity-place { grid-column: 1; margin-top: 18px; align-self: end; font-size: 14px; }
  .identity-since { grid-column: 1; margin-bottom: 18px; font-size: 13px; }
  .record-stat { grid-column: 1 / -1; margin-top: 16px; margin-bottom: 12px; padding-top: 18px; }
  .record-stat strong { font-size: 59px; }
  .record-stat span { max-width: 235px; font-size: 14px; }
  .identity-panel > .text-link { grid-column: 1 / -1; font-size: 14px; }
  .section { padding-block: 62px; }
  .section-head { margin-bottom: 32px; }
  .eyebrow { font-size: 11px; letter-spacing: 1px; }
  h2 { font-size: 37px; letter-spacing: -1px; }
  .about-layout { grid-template-columns: 1fr; gap: 32px; }
  .body-copy p { font-size: 16px; }
  .theme-row { grid-template-columns: 40px minmax(0, 1fr); gap: 8px 18px; padding-block: 27px; }
  .theme-icon { grid-row: 1 / 3; width: 32px; height: 32px; }
  .theme-row h3 { max-width: 600px; font-size: 27px; }
  .theme-row p { grid-column: 2; max-width: 600px; font-size: 15px; }
  .work { grid-template-columns: 1fr; gap: 22px; padding-block: 30px; }
  .work-event { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 2px 14px; }
  .work-index { grid-row: 1 / 3; margin: 0; padding-top: 2px; }
  .work-event h3 { font-size: 15px; }
  .work-event > p { grid-column: 2; font-size: 14px; }
  .work-detail h4 { font-size: 26px; letter-spacing: -.2px; }
  .work-type { font-size: 12px; }
  .work-note { font-size: 14px; }
  .programme { grid-template-columns: 1fr; gap: 24px; padding: 30px 26px; margin-top: 30px; }
  .programme > div > p:not(.eyebrow):not(.programme-date) { font-size: 15px; }
  .education-layout { grid-template-columns: 1fr; gap: 34px; }
  .education-layout .section-head { max-width: 620px; }
  .education-layout h2 { font-size: 37px; }
  .press-grid { grid-template-columns: 1fr; gap: 34px; }
  .press-meta { font-size: 14px; }
  .press-card h3 { max-width: 660px; font-size: 28px; margin: 22px 0 18px; }
  .profiles { grid-template-columns: 1fr; gap: 35px; }
  .profiles h2 { max-width: 610px; font-size: 37px; }
  .profiles > div > p:not(.eyebrow) { font-size: 16px; }
  .footer-inner { flex-direction: column; gap: 9px; font-size: 13px; }
  section[id] { scroll-margin-top: 20px; }
}

@media (max-width: 420px) {
  .shell { width: calc(100% - 36px); }
  .brand-caption { font-size: 9px; }
  .brand { gap: 11px; }
  .hero { padding-top: 39px; gap: 33px; }
  h1 { font-size: clamp(62px, 19vw, 79px); letter-spacing: -3px; }
  .other-name { font-size: 15px; }
  .hero-role { font-size: 17px; }
  .hero-affiliation { font-size: 14px; }
  .hero-text { font-size: 17px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 10px; }
  .hero-actions .button { padding-inline: 19px; font-size: 14px; }
  .identity-panel { grid-template-columns: minmax(0, 1fr) 96px; gap: 0 12px; padding: 20px; }
  .panel-heading { font-size: 10px; letter-spacing: .65px; }
  .identity-art { height: 110px; }
  .identity-art::after { width: 96px; height: 96px; }
  .art-circle { width: 84px; height: 84px; }
  .art-square { width: 72px; height: 72px; }
  .art-monogram { font-size: 47px; }
  .identity-place { font-size: 13px; }
  .identity-since { font-size: 12px; line-height: 1.7; }
  .section { padding-block: 54px; }
  h2, .education-layout h2, .profiles h2 { font-size: 33px; }
  .section-intro, .body-copy p, .profiles > div > p:not(.eyebrow) { font-size: 15px; }
  .theme-row { grid-template-columns: 30px minmax(0, 1fr); gap: 8px 14px; }
  .theme-icon { width: 27px; height: 27px; }
  .theme-row h3 { font-size: 25px; }
  .work-detail h4 { font-size: 25px; }
  .work-authors { font-size: 13px; }
  .programme { padding: 26px 22px; }
  .credential { grid-template-columns: 49px minmax(0, 1fr); gap: 14px; }
  .credential h3 { font-size: 23px; }
  .credential-year { font-size: 13px; }
  .press-meta { flex-wrap: wrap; gap: 4px 20px; font-size: 13px; }
  .press-card h3 { font-size: 26px; }
  .profile-links a > div { font-size: 14px; }
}

@media print {
  body { background: white; color: black; font-size: 11pt; }
  .shell { width: 100%; }
  .header, .hero-actions, .identity-panel, .skip-link { display: none; }
  .hero { min-height: 0; grid-template-columns: 1fr; padding-top: 0; padding-bottom: 25pt; }
  h1 { font-size: 40pt; letter-spacing: -1pt; }
  h2, .education-layout h2, .profiles h2 { font-size: 23pt; }
  .section { padding-block: 22pt; }
  .section-head { margin-bottom: 18pt; }
  .research-section, .coverage-section, .programme { background: white; color: black; }
  .programme > div > p:not(.eyebrow):not(.programme-date), .programme-date, .programme .eyebrow { color: black; }
  .work, .credential, .press-card { break-inside: avoid; }
  .footer { background: white; color: black; border-top: 1px solid #aaa; }
  .footer span { color: black; }
}
