/* Shared academic pages: Fraunces headings, Source Sans text, existing accent. */
[hidden] { display: none !important; }
:root {
  --global-text-color: #252326;
  --global-text-color-light: #68616a;
  --academic-rule: #e2dfe3;
}

/* Reading paths and the interactive population illustration. */
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 1100; padding: .75rem 1rem; background: var(--global-bg-color); }
.skip-link:focus { top: .5rem; }
main.container { min-height: calc(100vh - 220px); }
.home-intro { display: grid; grid-template-columns: minmax(0,1fr) 132px; gap: 1.5rem; align-items: start; margin-bottom: .75rem; }
.home-intro > div { grid-column: 1; grid-row: 1; }
.home-intro > figure { grid-column: 2; grid-row: 1; }
.home-portrait { margin: .4rem 0 0; }
.home-portrait img { width: 100%; height: auto; border-radius: 50%; }
.research-lead { font-family: "Fraunces", Georgia, serif; font-size: clamp(1.65rem,3vw,2rem); font-weight: 500; line-height: 1.3; letter-spacing: -.02em; text-wrap: pretty; }
.identity-line { font-size: .95rem; color: var(--global-text-color-light); }
.short-bio { font-size: .95rem; margin-top: .75rem; }
.short-bio summary { cursor: pointer; padding: .4rem 0; color: var(--global-text-color-light); }
.short-bio p { margin-top: .75rem; }
.home-research, .home-selected, .contact-section { margin: 3.5rem 0; }
.research-questions { margin: 1.25rem 0 0; }
.question-row { padding: 1.35rem 0; border-top: 1px solid var(--academic-rule); }
.question-row h3 { font-family: "Source Sans 3", sans-serif; font-weight: 600; font-size: 1.3rem; margin-bottom: .4rem; line-height: 1.4; }
.question-row h3 a { color: var(--global-text-color); }
.question-row h3 a:hover { color: var(--global-theme-color); }
.question-row p { margin-bottom: .5rem; }
.question-papers { font-size: .95rem; }
.question-papers a { display: inline-block; padding: .3rem 0; }
.page-lead { font-size: 1.25rem; line-height: 1.55; }
.section-jumps { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; padding: 1rem 0; border-bottom: 1px solid var(--academic-rule); }
.section-jumps a { padding: .5rem 0; font-size: .95rem; text-decoration: underline; }
.academic-content .research-theme { margin: 3.5rem 0; }
.research-theme h2 { max-width: 28ch; text-wrap: pretty; }
.theme-evidence { list-style: none; padding: 0; margin: 1.5rem 0; }
.theme-evidence > li { padding: 1rem 0; border-bottom: 1px solid var(--academic-rule); }
.theme-evidence p { margin: .4rem 0; }
.open-question { margin: 1.5rem 0; }
.open-question h3 { font-size: 1rem; }
.open-question p { font-family: "Fraunces", Georgia, serif; font-size: 1.2rem; line-height: 1.5; }
.study-index section { border-top: 1px solid var(--academic-rule); padding-top: 1rem; }
.breadcrumbs { color: var(--global-text-color-light); font-size: .95rem; margin-bottom: 2rem; }
.study-finding { font-size: 1.2rem; font-weight: 500; }
.related-reading { border-top: 1px solid var(--academic-rule); padding-top: 2rem; }
.related-reading li { margin: .6rem 0; }
.academic-footer a { display: inline-block; padding: .4rem 0; margin-left: .4rem; }

.population-lab { margin: 3.5rem 0; padding: 2rem 0; border-top: 1px solid var(--academic-rule); border-bottom: 1px solid var(--academic-rule); scroll-margin-top: 6rem; }
.population-lab > h2 { margin: 0 0 1rem; }
.lab-presets { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }
.lab-presets button { background: transparent; color: var(--global-text-color); border: 1px solid var(--global-text-color-light); border-radius: 4px; font: inherit; font-size: .95rem; padding: .6rem .85rem; min-height: 44px; cursor: pointer; }
.lab-presets button[aria-pressed=true] { border-color: var(--global-theme-color); color: var(--global-bg-color); background: var(--global-theme-color); }
.lab-presets button:hover { text-decoration: underline; text-underline-offset: .2em; }
.lab-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin: 1.5rem 0; }
.lab-controls label { font-size: 1rem; font-weight: 600; display: block; }
.lab-controls output { float: right; font-weight: 400; color: var(--global-text-color-light); }
.lab-controls input { display: block; width: 100%; min-height: 44px; margin: .25rem 0 0; accent-color: var(--global-theme-color); cursor: pointer; }
.lab-controls label > span { font-weight: 400; font-size: .875rem; color: var(--global-text-color-light); }
.lab-plots { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.lab-plots figure { min-width: 0; margin: 0; }
.lab-plots h3 { font-family: "Source Sans 3", sans-serif; font-size: 1.05rem; font-weight: 600; }
.lab-plots svg { display: block; width: 100%; height: auto; overflow: visible; }
.lab-plots figcaption { color: var(--global-text-color-light); font-size: .875rem; line-height: 1.5; padding: .5rem 0; }
.plot-axis { stroke: var(--global-text-color-light); stroke-width: 1; }
.plot-label { fill: var(--global-text-color-light); font-size: 11px; font-family: "Source Sans 3", sans-serif; }
.plot-connector { stroke: var(--global-text-color-light); stroke-width: 1; }
.plot-target { fill: var(--global-bg-color); stroke: var(--global-text-color-light); stroke-width: 1.2; }
.plot-person { fill: var(--global-theme-color); }
.lab-reading { font-weight: 600; margin-top: 1.25rem; min-height: 3.5em; }
.lab-static { margin-top: 1.5rem; }
.lab-method { margin: 1rem 0; font-size: .95rem; }
.lab-method summary { cursor: pointer; padding: .6rem 0; }
.lab-method p { padding-top: .5rem; }
.text-button { border: 0; background: transparent; color: var(--global-theme-color); font: inherit; font-size: .95rem; padding: .5rem 0; min-height: 44px; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }
.text-button:hover { color: var(--global-text-color); }

.publication-filters { display: grid; grid-template-columns: 1.3fr 1fr .7fr; gap: 1rem; padding: 1.5rem 0; border-top: 1px solid var(--academic-rule); border-bottom: 1px solid var(--academic-rule); margin-bottom: 1rem; }
.publication-filters label { display: block; font-size: .95rem; font-weight: 600; margin-bottom: .4rem; }
.publication-filters input, .publication-filters select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--global-text-color-light); border-radius: 4px; padding: .6rem; font: inherit; font-size: .95rem; color: var(--global-text-color); background: var(--global-bg-color); }
.publication-filters input::placeholder { color: var(--global-text-color-light); opacity: 1; }
.publication-filters .text-button { justify-self: start; }
.citation-tools { margin-top: .4rem; font-size: .9rem; }
.citation-feedback { padding-left: .75rem; }
.citation-fallback { display: block; width: 100%; min-height: 8rem; margin-top: .5rem; padding: .75rem; background: var(--global-bg-color); color: var(--global-text-color); border: 1px solid var(--global-text-color-light); }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--global-theme-color); outline-offset: 3px; }
@media (max-width: 767px) {
  .home-intro { grid-template-columns: minmax(0,1fr) 108px; gap: 1.5rem; }
  .publication-filters { grid-template-columns: 1fr 1fr; }
  .search-field { grid-column: 1 / -1; }
}
@media (max-width: 575px) {
  main.container.mt-5 { margin-top: 2rem !important; }
  .home-intro { display: flow-root; margin-bottom: .75rem; }
  .home-portrait { width: 84px; float: right; margin: .25rem 0 .75rem 1rem; }
  .home-research, .home-selected, .contact-section { margin: 2.5rem 0; }
  .lab-controls, .lab-plots { grid-template-columns: 1fr; gap: 1rem; }
  .lab-presets button { flex: 1 1 140px; }
  .lab-reading { min-height: 0; }
  .population-lab { padding: 1.5rem 0; margin: 2.5rem 0; }
  .question-row h3 { font-size: 1.2rem; }
  .publication-filters { grid-template-columns: 1fr; }
}
html[data-theme=dark] {
  --global-text-color: #e8e8e8;
  --global-text-color-light: #b8b2ba;
  --academic-rule: #49434c;
}
body { font-size: 1.0625rem; font-weight: 400; line-height: 1.65; padding-bottom: 0; }
.container { max-width: 880px; padding-left: 24px; padding-right: 24px; }
body > .container { min-height: calc(100vh - 220px); }
.post-header { margin-bottom: 2rem; }
.post-title { font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.post-header .desc, .post-description { color: var(--global-text-color-light); font-size: 1rem; line-height: 1.55; margin-top: .75rem; }
.post h2 { font-size: 1.85rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.25; }
.post article > h2 { margin: 3rem 0 1rem; }
.post h2 a, .academic-publication h3 a { color: var(--global-text-color); }
.post h2 a:hover, .academic-publication h3 a:hover { color: var(--global-theme-color); }
.post p { max-width: 75ch; }
.post a { text-underline-offset: .18em; }
.post a:hover { text-decoration: underline; }
::selection { background: var(--global-theme-color); color: var(--global-bg-color); }
html { scrollbar-color: var(--global-text-color-light) var(--global-bg-color); }
.navbar { opacity: 1; }
.navbar .navbar-brand { font-family: "Fraunces", Georgia, serif; font-size: 1.1rem; letter-spacing: -.02em; }
.navbar .nav-link, .navbar .dropdown-item { min-height: 44px; display: flex; align-items: center; }
#light-toggle, .navbar-toggler { min-width: 44px; min-height: 44px; }
.profile.float-right { margin: 0 0 1.5rem 2rem; width: 26%; }
.profile .address { font-family: inherit; font-size: .9rem; line-height: 1.5; }
.profile .address p { color: var(--global-text-color-light); }
.profile img { aspect-ratio: 1; object-fit: cover; }
.social { margin: 2rem 0; }
.social .contact-icons { font-size: 1.6rem; display: flex; justify-content: center; gap: .75rem; }
.social .contact-icons a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.academic-footer { border-top: 1px solid var(--academic-rule); padding: 1.25rem 0; margin-top: 3rem; font-size: .875rem; }
.academic-footer .container { color: var(--global-text-color-light); }
.academic-intro { line-height: 1.75; }
.academic-contact { margin-top: 1.5rem; }
.academic-content { font-size: 1rem; line-height: 1.65; }
.academic-content section { margin: 2.5rem 0; }
.academic-content h2 { margin-bottom: 1.25rem; }
.academic-content h3, .academic-publications h3 { font-family: "Source Sans 3", sans-serif; font-size: 1.2rem; font-weight: 600; line-height: 1.4; margin: 0 0 .4rem; text-wrap: pretty; }
.academic-entry { margin: 1.5rem 0; }
.entry-heading { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem 1.5rem; flex-wrap: wrap; }
.entry-date, .academic-note, .paper-venue { color: var(--global-text-color-light); font-size: .9rem; }
.entry-context { margin-bottom: .5rem; }
.academic-publications, .mentoring-list { list-style: none; margin: 0; padding: 0; }
.academic-publication { margin: 0; padding: 1.75rem 0; border-bottom: 1px solid var(--academic-rule); scroll-margin-top: 6rem; }
.academic-publication:first-child { padding-top: .5rem; }
.academic-publication [id], .academic-content section[id] { scroll-margin-top: 6rem; }
.academic-publication p { margin: .35rem 0; }
.paper-authors { font-size: .95rem; line-height: 1.6; overflow-wrap: anywhere; color: var(--global-text-color-light); }
.paper-takeaway { font-size: 1.0625rem; line-height: 1.65; font-weight: 500; }
.academic-publication .paper-takeaway { margin: .8rem 0; }
.research-project { padding: 0 0 2.25rem; border-bottom: 1px solid var(--academic-rule); }
.research-project h2 { margin: 0 0 .4rem; font-size: 2.2rem; }
.project-theme { font-size: .95rem; color: var(--global-text-color-light); margin: 0 0 1.25rem; }
.project-question { font-size: 1.25rem; line-height: 1.5; }
.project-role { margin-top: 1.2rem; }
.project-archive { margin: 2rem 0; }
.project-archive summary { cursor: pointer; font-size: 1rem; padding: .65rem 0; }
.project-archive ul { margin-top: 1rem; }
.calendar-disclosure > summary { display: list-item; padding: 1rem 1.5rem; cursor: pointer; font-size: 1.1rem; }
.calendar-disclosure > summary span { font-size: .9rem; margin-left: 1rem; color: var(--global-text-color-light); }
.calendar-disclosure[open] > summary { border-bottom: 1px solid var(--global-divider-color); }
.pub-label { font-family: inherit; font-size: .85rem; font-weight: 400; color: var(--global-text-color-light); white-space: nowrap; }
.paper-links { display: flex; gap: .25rem 1.25rem; flex-wrap: wrap; margin-top: .7rem; font-size: .95rem; font-weight: 600; }
.paper-links a { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; }
.paper-abstract { margin-top: .75rem; }
.paper-abstract summary { cursor: pointer; color: var(--global-theme-color); padding: .5rem 0; }
.paper-abstract p { padding-top: .5rem; }
.mentoring-list > li { margin: 1rem 0 1.5rem; }
.academic-service { padding-left: 1.25rem; }
.academic-service li { margin: .6rem 0; }
.academic-service .entry-date { display: inline-block; min-width: 5.5rem; }
.academic-download { font-weight: 600; margin-right: 1rem; }
.news .table-responsive { max-height: none; }
.news th { min-width: 7rem; font-size: .9rem; font-weight: 400; color: var(--global-text-color-light); font-variant-numeric: tabular-nums; }
.news td { font-size: 1rem; font-weight: 400; }
.news td, .news th { padding-top: .6rem; padding-bottom: .6rem; }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 2px solid var(--global-theme-color); outline-offset: 4px; }
@media (max-width: 767px) {
  .navbar .navbar-collapse { width: 100%; }
  .navbar .nav-link { justify-content: flex-end; }
  .profile.float-right { float: none !important; display: flex; align-items: center; gap: 1.5rem; width: 100%; margin: 0 0 2rem; }
  .profile figure { flex: 0 0 104px; margin: 0; }
  .profile .address p { display: block; }
}
@media (max-width: 575px) {
  .container { padding-left: 22px; padding-right: 22px; }
  body > .container.mt-5 { margin-top: 2rem !important; }
  .post-title { overflow-wrap: anywhere; }
  .post-header .desc { font-size: .95rem; }
  .academic-contact a { display: inline-block; padding: .4rem 0; }
  .academic-content section { margin: 2rem 0; }
  .entry-heading { display: block; }
  .entry-date { display: block; margin-bottom: .5rem; }
  .academic-service .entry-date { display: inline; }
  .news th { min-width: 5.5rem; }
  .calendar-disclosure > summary { padding: 1rem; }
  .calendar-disclosure > summary span { display: block; margin: .25rem 0 0 1rem; }
  .calendar-card__embed { min-height: 420px; }
}

/* Home prioritizes academic evidence and scanability. */
.academic-home .post-header { margin-bottom: 1.25rem; }
.academic-home .post-title { font-size: clamp(2.1rem,4vw,2.6rem); }
.academic-home .home-interests p { max-width: none; margin-bottom: .75rem; }
.academic-home .home-contact { margin: .75rem 0 1.5rem; font-size: .95rem; }
.academic-home .home-contact a { display: inline-block; padding: .25rem 0; }
.academic-home article > h2 { margin: 1.75rem 0 .6rem; }
.academic-home .news td, .academic-home .news th { padding-top: .25rem; padding-bottom: .25rem; }
.academic-home .home-selected { margin: 1.75rem 0; }
.academic-home .section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; margin-bottom: .75rem; }
.academic-home .section-heading h2 { margin: 0; }
.academic-home .section-heading > a { font-size: .9rem; }
.academic-home .academic-publication { padding: 1rem 0; }
.academic-home .academic-publication h3 { font-size: 1.12rem; }
.academic-home .academic-publication .paper-takeaway { font-size: .98rem; font-weight: 400; margin: .4rem 0; }
.academic-home .paper-links { margin-top: .2rem; gap: .25rem 1rem; }
.academic-home .paper-links a { min-height: 32px; }
.academic-home .home-project-links { margin: 2rem 0; }
.home-project-links li { margin: .5rem 0; }
