:root {
  color-scheme: light dark;
  --paper: #f5f4ef;
  --surface: #fffefa;
  --ink: #202b28;
  --muted: #53635d;
  --line: #d8ddd5;
  --green: #245d4a;
  --green-dark: #174737;
  --gold: #c28a42;
  --soft-green: #e7eee8;
  --shadow: 0 18px 45px rgba(31, 50, 43, .09);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Aptos", "Segoe UI", sans-serif; font-size: 1rem; line-height: 1.65; }
a { color: var(--green-dark); text-underline-offset: .2em; }
a:hover { color: #873f21; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; border-radius: 2px; }
img { max-width: 100%; }
.wrap { width: min(1120px, calc(100% - 3rem)); margin-inline: auto; }
.skip-link { position: absolute; z-index: 10; top: .75rem; left: .75rem; padding: .6rem 1rem; transform: translateY(-160%); background: var(--ink); color: white; }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); }
.site-header { border-bottom: 1px solid var(--line); background: var(--surface); }
.header-inner { width: min(1280px, calc(100% - 3rem)); min-height: 82px; margin: auto; display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.wordmark { display: flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--ink); }
.wordmark-mark { display: block; width: 48px; height: 48px; flex: 0 0 auto; }
.wordmark-lockup { display: block; width: clamp(118px, 16vw, 160px); max-height: 54px; flex: 0 1 auto; object-fit: contain; object-position: left center; }
.site-nav ul { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 2rem); margin: 0; padding: 0; list-style: none; }
.site-nav a { display: inline-block; padding: .6rem 0; color: var(--muted); font-size: .91rem; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--green-dark); }
.site-nav a[aria-current="page"] { box-shadow: inset 0 -2px var(--green); }
.site-main { min-height: 70vh; }
.hero { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 4rem; min-height: 530px; padding-block: 5rem; }
.hero-copy { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 .75rem; color: var(--green-dark); font-size: .73rem; font-weight: 700; letter-spacing: .13em; line-height: 1.5; text-transform: uppercase; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; line-height: 1.15; }
h1 { max-width: 700px; margin: .2rem 0 1.2rem; font-size: clamp(3rem, 7vw, 5.55rem); letter-spacing: -.055em; }
.hero-tagline { max-width: 560px; margin: 0 0 1rem; color: var(--green-dark); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.2rem, 2.1vw, 1.6rem); line-height: 1.35; }
.hero-intro { max-width: 590px; margin: 0 0 2rem; color: var(--muted); font-size: 1.05rem; }
.button-link { display: inline-flex; align-items: center; gap: 1.3rem; padding: .82rem 1.1rem; background: var(--green-dark); color: white; font-size: .92rem; font-weight: 600; text-decoration: none; }
.button-link:hover { background: #103c2d; color: white; }
.hero-brand { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; aspect-ratio: 1; width: min(100%, 430px); justify-self: end; margin: 0; border-radius: 50%; background: radial-gradient(circle at center, rgba(216, 226, 216, .92), rgba(232, 236, 225, .4) 55%, rgba(245, 244, 239, 0) 72%); }
.hero-brand img { display: block; width: clamp(220px, 68%, 290px); height: auto; filter: drop-shadow(var(--shadow)); }
.hero-brand figcaption { color: var(--muted); font-size: .76rem; letter-spacing: .025em; }
.team-page-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; }
.team-page-lockup { display: block; width: clamp(120px, 15vw, 150px); height: auto; }
.keyword-band { background: var(--soft-green); border-block: 1px solid var(--line); }
.keyword-inner { display: flex; align-items: center; gap: 2.5rem; min-height: 88px; }
.keyword-inner .eyebrow { flex: 0 0 auto; margin: 0; }
.keyword-inner ul { display: flex; flex-wrap: wrap; gap: .55rem 1.8rem; margin: 0; padding: 0; list-style: none; }
.keyword-inner li { color: var(--green-dark); font-family: Georgia, serif; font-size: 1.08rem; }
.section { padding-block: 5rem; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.5rem; }
.section-heading h2, .team-section > h2, .event-section > h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
.section-heading .eyebrow { margin-bottom: .45rem; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; font-size: .92rem; font-weight: 650; text-decoration-thickness: 1px; }
.news-list { border-top: 1px solid var(--line); }
.news-item { display: grid; grid-template-columns: 145px 1fr 25px; align-items: start; gap: 1.5rem; padding: 1.35rem .25rem; border-bottom: 1px solid var(--line); }
.news-item time { padding-top: .22rem; color: var(--muted); font-size: .85rem; }
.news-item h3 { margin: 0 0 .35rem; font-size: 1.28rem; }
.news-item h2 { margin: 0 0 .35rem; font-size: 1.28rem; }
.news-item h3 a { color: var(--ink); text-decoration: none; }
.news-item h2 a { color: var(--ink); text-decoration: none; }
.news-item h3 a:hover { color: var(--green-dark); text-decoration: underline; }
.news-item h2 a:hover { color: var(--green-dark); text-decoration: underline; }
.news-item p { margin: 0; color: var(--muted); }.news-source-link { display: inline-flex; margin-top: .45rem; font-size: .84rem; font-weight: 650; }
.news-arrow { color: var(--green); }
.closing-note { padding-block: 2.5rem; background: #e9e8df; }
.closing-inner { display: grid; grid-template-columns: 180px 1fr; gap: 2rem; }
.closing-inner .eyebrow { margin: .25rem 0 0; }
.closing-inner p:last-child { max-width: 750px; margin: 0; color: #3d4c45; }
.page-hero { padding-block: 5rem 3rem; }
.page-hero h1 { margin-bottom: .8rem; font-size: clamp(3rem, 7vw, 4.5rem); }
.page-hero > p:last-child { max-width: 660px; margin: 0; color: var(--muted); font-size: 1.12rem; }
.research-overview-title { max-width: 800px; margin: .2rem 0 1rem; color: var(--green-dark); font-size: clamp(1.45rem, 3vw, 2rem); }
.legal-content { max-width: 820px; padding-bottom: 6rem; }
.legal-content > section, .legal-content .legal-card { margin-block: 0 1.25rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.legal-content h2 { margin: 0 0 .9rem; color: var(--green-dark); font-size: clamp(1.35rem, 3vw, 1.7rem); }
.legal-content h3 { margin: 1.5rem 0 .5rem; font-size: 1.15rem; }
.legal-content p { margin: .45rem 0 1rem; }
.legal-content ul { margin: .5rem 0 0; padding-left: 1.3rem; }
.legal-content li { padding-left: .2rem; margin-block: .45rem; }
.legal-content .legal-intro { margin: 0 0 1.5rem; padding: 1.25rem 1.5rem; border-left: 3px solid var(--gold); background: var(--soft-green); color: var(--ink); }
.contact-section { display: grid; grid-template-columns: .8fr 1.2fr; align-items: start; gap: clamp(2rem, 6vw, 5rem); padding-bottom: 6rem; }
.contact-copy h2 { margin-top: 0; font-size: 1.8rem; }
.contact-copy p { color: var(--muted); }
.contact-form { display: grid; gap: 1.15rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.form-field { display: grid; gap: .4rem; }
.form-field label { font-size: .9rem; font-weight: 650; }
.form-field input, .form-field textarea { width: 100%; padding: .7rem .8rem; border: 1px solid #929e94; border-radius: 3px; background: var(--paper); color: var(--ink); font: inherit; }
.form-field textarea { min-height: 10rem; resize: vertical; }
.form-field input:focus-visible, .form-field textarea:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-color: var(--green-dark); }
.contact-form button { justify-self: start; border: 0; cursor: pointer; font: inherit; }
.research-section { padding-top: 2rem; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 1.25rem; }
.project-card { display: flex; flex-direction: column; min-height: 100%; padding: clamp(1.4rem, 3vw, 2.1rem); border: 1px solid var(--line); border-top: 3px solid var(--green); border-radius: 3px; background: var(--surface); box-shadow: var(--shadow); }
.project-card-primary { border-top-width: 5px; }
.project-card-logo { display: flex; align-items: center; min-height: 122px; margin-bottom: 1.1rem; }
.project-card-logo img { display: block; width: auto; max-width: min(290px, 100%); height: 78px; object-fit: contain; object-position: left center; }
.project-card-primary .project-card-logo img { height: 120px; }
.project-card-logo img[src*="knowledge-in-crisis"] { width: min(255px, 100%); max-width: 100%; height: auto; max-height: 58px; }
.project-card > .eyebrow { margin-bottom: .55rem; }
.project-card h2 { margin: 0 0 .9rem; font-size: clamp(1.7rem, 3vw, 2.15rem); }
.project-summary { margin: 0; color: var(--muted); }
.project-involvement { margin-top: 1.5rem; padding: 1rem 1.1rem; border-left: 3px solid var(--gold); background: var(--soft-green); }
.project-involvement h3 { margin: 0 0 .35rem; font-family: inherit; font-size: .83rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-involvement p { margin: 0; color: var(--ink); font-size: .94rem; }
.related-publications { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.related-publications h3 { margin: 0 0 .5rem; font-family: inherit; font-size: .84rem; font-weight: 700; }
.related-publications ul { margin: 0; padding-left: 1.1rem; font-size: .9rem; }
.related-publications li + li { margin-top: .35rem; }
.project-site-link { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; margin-top: auto; padding-top: 1.4rem; font-size: .92rem; font-weight: 650; }
.publication-years { padding-top: 1rem; }
.year-group { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 1.75rem; margin-bottom: 2rem; align-items: start; }
.year-group > h2 { margin: .15rem 0; color: var(--green-dark); font-size: 1.35rem; }
.year-group > div { display: grid; gap: 1rem; min-width: 0; }
.publication-entry { padding: 1.35rem 1.5rem; margin: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 3px; }
.publication-authors { margin: 0 0 .25rem; color: var(--muted); font-size: .88rem; }
.publication-entry h3 { margin: 0; font-size: 1.35rem; }
.publication-venue { margin: .4rem 0 .7rem; color: var(--muted); font-size: .92rem; }
.publication-summary { max-width: 72ch; margin: 0 0 1rem; color: var(--muted); line-height: 1.65; }
.action-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.action-links .text-link { font-size: .85rem; }
.news-sources { display: grid; gap: .55rem; margin: .8rem 0 0; padding: .75rem 0 0; border-top: 1px solid var(--line); list-style: none; }
.news-sources li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .6rem; font-size: .86rem; }
.news-sources a { font-weight: 650; }
.news-sources span { color: var(--muted); }
.team-section { padding-top: 2rem; }
.team-section > h2 { padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; padding-top: 1.5rem; }
.person-card { overflow: hidden; background: var(--surface); border: 1px solid var(--line); }
.person-image-link, .person-image { display: block; overflow: hidden; background: #e6eae2; }
.person-card img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: var(--portrait-position, 50% 50%); transform: scale(var(--portrait-scale, 1)); transform-origin: var(--portrait-origin, 50% 50%); transition: transform .25s ease; }
.person-image-link:hover img { transform: scale(calc(var(--portrait-scale, 1) + .025)); }
.person-info { padding: 1.15rem 1.25rem 1.4rem; }
.person-info .eyebrow { margin-bottom: .45rem; font-size: .68rem; }
.person-info h3 { margin: 0 0 .5rem; font-size: 1.4rem; }
.person-info h3 a { color: var(--ink); text-decoration: none; }
.person-info h3 a:hover { color: var(--green-dark); text-decoration: underline; }
.person-bio { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.6; }
.person-bio p { margin: 0; }
.person-bio p + p { margin-top: .9rem; }
.alumni-section { padding-top: 1rem; }
.alumni-section .person-card { display: grid; grid-template-columns: 115px 1fr; }
.alumni-section .person-card img { height: auto; aspect-ratio: 3 / 4; }
.alumni-section .person-info { align-self: center; padding: 1rem; }
.event-section { padding-top: 1rem; }
.event-section > h2 { padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.event-list { display: grid; }
.event-card { display: grid; grid-template-columns: 90px 1fr; gap: 1.5rem; padding: 1.6rem .3rem; border-bottom: 1px solid var(--line); }
.event-card .event-schedule { display: flex; flex-direction: column; align-items: flex-start; color: var(--green-dark); line-height: 1.3; }
.event-card .event-schedule span { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.event-card .event-schedule strong { font-family: Georgia, serif; font-size: 1.2rem; font-weight: 500; }
.event-card time { display: flex; flex-direction: column; align-items: flex-start; color: var(--green-dark); line-height: 1.3; }
.event-card time span { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.event-card time strong { font-family: Georgia, serif; font-size: 2.3rem; font-weight: 500; }.event-card time.date-range strong { font-size: 1.65rem; }
.event-card h3 { margin: 0 0 .2rem; font-size: 1.45rem; }
.event-card p { margin: .35rem 0; color: var(--muted); }
.event-card .event-place { color: var(--ink); font-size: .9rem; font-weight: 650; }
.event-card .text-link { margin-top: .55rem; }
.past-events { padding-top: 1rem; padding-bottom: 6rem; }
.past-events .event-card { opacity: .86; }
.empty-state { padding: 1.5rem 0; color: var(--muted); }
.site-footer { padding-block: 2.5rem; border-top: 1px solid var(--line); background: #e9e8df; }
.footer-inner { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2rem 3rem; width: min(1120px, calc(100% - 3rem)); margin: auto; }
.footer-inner p { margin: .2rem 0; color: #394840; font-size: .88rem; }
.footer-inner .footer-label { color: var(--ink); font-family: Georgia, serif; font-size: 1.15rem; }
.footer-contact > a { font-weight: 650; }
.footer-contact .draft-note { max-width: 640px; margin-top: .6rem; font-size: .78rem; }
.footer-sponsors, .footer-legal { grid-column: 1 / -1; }
.footer-sponsors { padding-top: 1.5rem; }
.footer-sponsors .eyebrow { margin-bottom: 1rem; }
  .sponsor-list { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1.75rem 3.25rem; margin: 0; padding: 0; list-style: none; }
  .sponsor-list li { display: grid; place-items: center; min-width: 180px; min-height: 116px; }
  .sponsor-list a { display: grid; place-items: center; min-height: 116px; }
  .sponsor-list img { display: block; width: auto; max-width: 300px; height: auto; max-height: 100px; object-fit: contain; }
  .sponsor-list .sponsor-university img { width: 250px; max-width: min(250px, 75vw); max-height: none; }
  .sponsor-list .sponsor-erc img { max-width: 118px; max-height: 112px; }
  .sponsor-list .sponsor-fwf img { max-width: 310px; max-height: 78px; }
.footer-legal { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .55rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.footer-legal a { padding: .42rem .75rem; border: 1px solid rgba(57, 72, 64, .24); border-radius: 3px; background: rgba(255, 255, 255, .18); color: #394840; font-size: .78rem; text-decoration: none; transition: background-color .18s ease, border-color .18s ease, color .18s ease; }
.footer-legal a:hover, .footer-legal a:focus-visible { border-color: var(--green-dark); background: var(--soft-green); color: var(--ink); }
.footer-meta { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .5rem; padding-top: .25rem; color: var(--muted); font-size: .78rem; }
.footer-meta a { color: inherit; text-underline-offset: .18em; }
.footer-meta a:hover { color: var(--green-dark); }
.footer-home-link { display: inline-flex; align-items: center; gap: .35rem; }
.footer-separator-logo { display: block; width: 15px; height: 15px; transform: translateY(1px); }

@media (prefers-color-scheme: dark) {
  :root { --paper: #151d19; --surface: #1c2721; --ink: #edf0e9; --muted: #bdc8be; --line: #3a4940; --green: #a4cbb0; --green-dark: #a7d2b4; --gold: #e0b570; --soft-green: #202f27; --shadow: 0 18px 45px rgba(0, 0, 0, .28); }
  .wordmark, .site-nav a, .news-item h3 a, .news-item h2 a, .person-info h3 a { color: var(--ink); }
  .wordmark-mark { filter: invert(1); }
  .footer-separator-logo { filter: invert(1); }
  .team-page-lockup { filter: invert(1); }
  .hero-brand img { filter: invert(1) drop-shadow(var(--shadow)); }
  .hero-brand { background: radial-gradient(circle at center, rgba(59, 82, 65, .8), rgba(37, 52, 42, .42) 55%, rgba(21, 29, 25, 0) 72%); }
  .button-link { background: #9ac4a6; color: #14241a; }
  .button-link:hover { background: #b1d5ba; color: #14241a; }
  .closing-note, .site-footer { background: #202a24; }
  .closing-inner p:last-child, .footer-inner p { color: #c3cec4; }
  .footer-inner .footer-label { color: var(--ink); }
  .footer-legal a { border-color: var(--line); background: rgba(255, 255, 255, .025); color: #c3cec4; }
  .footer-meta { color: #c3cec4; }
}
@media (max-width: 760px) {
  .wrap, .header-inner, .footer-inner { width: min(100% - 2rem, 600px); }
  .header-inner { align-items: flex-start; flex-direction: column; gap: .35rem; padding-block: .8rem .25rem; }
  .site-nav { width: 100%; overflow-x: auto; }
  .site-nav ul { justify-content: space-between; gap: 1.2rem; min-width: max-content; }
  .site-nav a { padding-block: .48rem .7rem; font-size: .86rem; }
  .hero { grid-template-columns: 1fr; gap: .5rem; min-height: auto; padding-block: 4rem 3rem; }
  .hero-brand { width: min(77vw, 330px); justify-self: center; margin-top: 1rem; }
  .keyword-inner { align-items: flex-start; flex-direction: column; gap: .5rem; padding-block: 1.25rem; }
  .keyword-inner ul { gap: .25rem 1rem; }
  .section { padding-block: 3.5rem; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .news-item { grid-template-columns: 1fr 20px; gap: .15rem 1rem; }
  .news-item time { grid-column: 1; }
  .news-item > div { grid-column: 1; }
  .news-arrow { grid-column: 2; grid-row: 1 / span 2; }
  .closing-inner, .footer-inner { grid-template-columns: 1fr; gap: .6rem; }
  .footer-sponsors, .footer-legal, .footer-meta { grid-column: 1; }
    .sponsor-list { gap: 1rem 1.5rem; }
    .sponsor-list li { min-width: 135px; min-height: 96px; }
    .sponsor-list a { min-height: 96px; }
    .sponsor-list .sponsor-university img { width: 210px; }
    .sponsor-list .sponsor-erc img { max-width: 94px; max-height: 90px; }
    .sponsor-list .sponsor-fwf img { max-width: 235px; max-height: 64px; }
  .page-hero { padding-block: 3.5rem 2rem; }
  .team-page-hero { grid-template-columns: 1fr; gap: 1rem; }
  .team-page-lockup { width: 105px; }
  .contact-section { grid-template-columns: 1fr; gap: 1rem; }
  .project-grid { grid-template-columns: 1fr; }.event-card time.date-range strong { font-size: 1.5rem; }
  .year-group { grid-template-columns: 1fr; gap: .65rem; }
  .publication-entry { padding: 1.15rem; }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .person-info { padding: .9rem; }
  .person-info h3 { font-size: 1.2rem; }
  .person-info .eyebrow { letter-spacing: .08em; }
  .alumni-section .person-card { grid-template-columns: 95px 1fr; }
}
@media (max-width: 430px) {
  .team-grid { grid-template-columns: 1fr; }
  .person-card { display: grid; grid-template-columns: 110px 1fr; align-items: center; }
  .person-card img { height: auto; min-height: 0; aspect-ratio: 3 / 4; }
  .person-info { padding: .8rem; }
  .person-info .eyebrow { font-size: .61rem; }
  .person-info h3 { font-size: 1.12rem; }
  .person-info > p:last-child { font-size: .85rem; }
  .event-card { grid-template-columns: 65px 1fr; gap: .9rem; }
  .event-card.recurring-event { grid-template-columns: 100px 1fr; }
  .event-card time strong { font-size: 2rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
