:root { --ink:#252525; --muted:#646464; --line:#e5e3df; --paper:#faf9f6; --orange:#bc570e; --magenta:#a51491; --pink:#bd146b; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; scroll-padding-top:100px; }
    body { margin:0; background:white; color:var(--ink); font:16px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
    a { color:inherit; text-decoration:none; }
    a:hover { color:var(--pink); }
    a:focus-visible,button:focus-visible { outline:2px solid var(--pink); outline-offset:6px; }
    img { display:block; max-width:100%; }
    .wrap { width:min(1160px,calc(100% - 96px)); margin:auto; }
    .skip { position:fixed; top:-80px; left:20px; background:white; z-index:10; padding:12px; }
    .skip:focus { top:12px; }
    .e { color:var(--orange); } .morph { color:var(--magenta); } .two { color:var(--pink); }
    .masthead { position:sticky; top:0; z-index:5; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); }
    .header-inner { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
    .identity { display:flex; align-items:center; width:180px; height:40px; flex-shrink:0; }
    .identity .wordmark { font-size:32px; font-weight:750; line-height:40px; letter-spacing:-1.5px; white-space:nowrap; }
    .wordmark sup { font-size:.65em; }
    .wordmark .lab-suffix { color:var(--ink); font-size:.8em; font-weight:450; letter-spacing:-.5px; }
    nav { display:flex; gap:23px; align-items:center; font-size:13px; }
    nav a { padding:8px 0; }
    nav .current { border-bottom:2px solid var(--pink); }
    .menu { display:none; background:none; border:1px solid var(--line); padding:7px 12px; color:var(--ink); font:inherit; cursor:pointer; }
    .hero { padding:79px 0 55px; display:grid; grid-template-columns:1.25fr 1fr; gap:60px; align-items:center; }
    .eyebrow { font-size:11px; font-weight:650; letter-spacing:1.8px; text-transform:uppercase; color:var(--muted); margin:0 0 25px; }
    h1 { margin:0 0 23px; font:clamp(36px,4.25vw,58px)/1.12 Georgia,serif; letter-spacing:-1.9px; }
    h1 .line { display:block; }
    h1 .and { font-style:italic; color:#777; font-size:.72em; }
    .intro { max-width:480px; font-size:17px; line-height:1.8; color:var(--muted); }
    .hero-links { display:flex; flex-wrap:wrap; gap:27px; margin:26px 0 32px; font-size:13px; font-weight:600; }
    .text-link { border-bottom:1px solid var(--ink); padding-bottom:5px; }
    .hero-links .text-link:first-child { color:var(--pink); border-color:var(--pink); }
    .hero-figure { margin:0; align-self:center; }
    .hero-figure img { width:100%; max-height:430px; object-fit:contain; }
    figcaption { margin-top:19px; font-size:11px; color:var(--muted); line-height:1.6; }
    .scroll-hint { display:inline-flex; gap:12px; align-items:center; font-size:11px; color:var(--muted); }
    .scroll-hint span { font-size:21px; color:var(--pink); }
    .about { display:grid; grid-template-columns:1fr 2fr; border-top:1px solid var(--line); padding:41px 0 45px; gap:60px; }
    .about h2 { margin:2px 0; font:30px/1.2 Georgia,serif; letter-spacing:-.7px; }
    .about p { margin:0; max-width:710px; color:var(--muted); }
    .section { padding:53px 0 60px; }
    .research { background:var(--paper); }
    .section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:30px; }
    h2 { font:36px/1.2 Georgia,serif; letter-spacing:-1px; margin:0; }
    .section-heading > a { font-size:12px; border-bottom:1px solid var(--line); white-space:nowrap; }
    .topics { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
    .topic { border-top:1px solid #c7c4bd; padding-top:19px; }
    .number { font-size:11px; color:var(--pink); }
    h3 { font:25px/1.25 Georgia,serif; letter-spacing:-.4px; margin:13px 0; }
    .topic p { font-size:14px; color:var(--muted); margin:0 0 16px; }
    .topic a { font-size:12px; font-weight:600; }
    .work-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
    .featured { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
    .featured figure { margin:0; }
    .featured img { width:100%; height:auto; max-height:230px; object-fit:contain; }
    .featured figcaption { margin-top:12px; }
    .featured h3 { margin-top:0; font-size:25px; }
    .meta { color:var(--pink); font-size:11px; margin:0 0 10px; }
    .featured p:not(.meta) { font-size:13px; color:var(--muted); margin:0 0 13px; }
    .featured .text-link { font-size:12px; }
    .recent { border-left:1px solid var(--line); padding-left:35px; }
    .recent h2 { font-size:27px; margin-bottom:22px; }
    .recent article + article { margin-top:23px; padding-top:20px; border-top:1px solid var(--line); }
    .recent h3 { font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; letter-spacing:0; }
    .recent .meta { margin-bottom:6px; }
    .news-preview { display:flex; flex-direction:column; gap:24px; min-width:0; }
    .news-preview figure { width:100%; margin:0; margin-top:auto; }
    .news-preview figure > a { display:block; }
    .news-preview figcaption { margin-top:12px; }
    .news-preview figcaption a { text-decoration:underline; text-underline-offset:2px; }
    .news-preview img { width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; }
    .news-preview p:not(.meta) { margin:8px 0 0; font-size:13px; line-height:1.65; color:var(--muted); }
    .recent .all-news { display:inline-block; margin-top:24px; font-size:12px; }
    .collection { display:grid; grid-template-columns:1fr 1fr; gap:55px; align-items:center; border-top:1px solid var(--line); padding:45px 0 60px; }
    .collection figure { margin:0; }
    .collection img { width:100%; }
    .collection p:not(.eyebrow) { color:var(--muted); font-size:14px; }
    .collection .text-link { font-size:12px; }
    footer { border-top:1px solid var(--line); padding:30px 0; font-size:12px; color:var(--muted); }
    .footer-inner { display:flex; justify-content:space-between; gap:25px; }
    footer strong { display:block; color:var(--ink); font-weight:600; margin-bottom:3px; }
    @media(max-width:1100px) { nav { gap:15px; font-size:12px; } .wrap { width:calc(100% - 64px); } .hero { gap:30px; } }
    @media(max-width:900px) {
      .header-inner { min-height:74px; flex-wrap:wrap; gap:0; }
      .js .menu { display:block; font-size:12px; }
      .js nav:not(.open) { display:none; }
      nav { display:flex; width:100%; flex-wrap:wrap; gap:10px 23px; padding:8px 0 20px; font-size:14px; }
      nav.open { display:flex; }
      .hero { padding-top:50px; }
      .hero-figure img { max-height:340px; }
      .work-grid { gap:32px; }
      .featured { grid-template-columns:1fr; }
    }
    @media(max-width:620px) {
      .wrap { width:calc(100% - 40px); }
      .hero { grid-template-columns:1fr; padding:38px 0 30px; gap:28px; }
      h1 { font-size:clamp(32px,8vw,48px); letter-spacing:-1px; }
      .eyebrow { font-size:10px; letter-spacing:1.3px; margin-bottom:21px; }
      .intro { font-size:15px; }
      .hero-figure { width:85%; justify-self:center; }
      .hero-figure img { max-height:270px; }
      .hero-links { margin-bottom:19px; }
      .about { grid-template-columns:1fr; gap:18px; padding:30px 0; }
      .about p { font-size:14px; }
      h2 { font-size:30px; }
      .topics,.work-grid,.collection { grid-template-columns:1fr; gap:30px; }
      .section { padding:36px 0 40px; }
      .section-heading { align-items:center; }
      .section-heading > a { font-size:10px; }
      .topic p { max-width:450px; }
      .featured { gap:18px; }
      .featured h3 { font-size:23px; }
      .recent { padding:28px 0 0; border-left:0; border-top:1px solid var(--line); }
      .collection { padding:30px 0 40px; }
      .footer-inner { flex-direction:column; gap:16px; }
    }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }

/* Shared content layouts. The existing homepage composition is retained. */
main { min-height:calc(100svh - 200px); }
.menu { min-height:44px; }
.header-inner nav a { min-height:40px; display:inline-flex; align-items:center; }
.page-head { padding:64px 0 45px; border-bottom:1px solid var(--line); margin-bottom:0; }
.page-head .eyebrow { margin-bottom:17px; }
.page-head h1 { font-size:clamp(40px,5vw,64px); margin-bottom:18px; }
.page-intro { max-width:730px; color:var(--muted); font-size:17px; margin:0; }
.page-content { padding-top:46px; padding-bottom:75px; }
.reading-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:65px; align-items:start; }
.section-index { position:sticky; top:116px; max-height:calc(100svh - 145px); overflow-y:auto; font-size:12px; }
.section-index .eyebrow { font-size:10px; margin-bottom:14px; }
.section-index a { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); line-height:1.5; }
.section-index a span { color:var(--pink); font-size:10px; padding-top:2px; flex-shrink:0; }
.research-article { padding-bottom:42px; margin-bottom:38px; border-bottom:1px solid var(--line); }
.research-article:last-child { border:0; margin:0; padding-bottom:0; }
.research-article h2 { font-size:32px; max-width:680px; margin:0 0 24px; }
.research-article .number { display:block; margin-bottom:15px; }
.prose { color:#505050; font-size:15px; line-height:1.9; }
.prose p { margin:0 0 19px; }
.prose p:last-child { margin-bottom:0; }
.prose a,.publication a,.publication-intro a { text-decoration:underline; text-decoration-color:#bbb; text-underline-offset:3px; overflow-wrap:anywhere; }
.prose b { color:var(--ink); font-weight:600; }
.research-figure { float:right; width:36%; max-width:280px; margin:0 0 25px 30px; }
.research-figure img { width:100%; max-height:290px; object-fit:contain; }
.research-article::after { content:""; display:table; clear:both; }
.research-figure.wide { float:none; width:100%; max-width:none; margin:26px 0 0; }
.research-figure.wide img { max-height:none; }
.group-heading { font-size:30px; margin-bottom:30px; }
.principal { display:grid; grid-template-columns:200px minmax(0,1fr); gap:45px; padding-bottom:43px; margin-bottom:42px; border-bottom:1px solid var(--line); }
.principal img { width:200px; aspect-ratio:1; object-fit:cover; }
.person-name { font-size:29px; margin:0 0 17px; }
.principal .prose { max-width:740px; }
.people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:54px; row-gap:34px; }
.person-profile { display:grid; grid-template-columns:100px minmax(0,1fr); gap:24px; padding-top:27px; border-top:1px solid var(--line); }
.person-profile img { width:100px; aspect-ratio:1; object-fit:cover; object-position:center 30%; }
.person-profile .person-name { font-size:24px; margin-bottom:14px; }
.person-profile .prose { font-size:14px; line-height:1.8; }
.publication-intro { margin:0 0 25px; color:var(--muted); font-size:13px; }
.enhancement { display:none; }
.js .enhancement { display:block; }
.publication-search { margin-bottom:34px; padding:22px 25px; background:var(--paper); }
.publication-search label { display:block; font-size:12px; font-weight:600; margin-bottom:9px; }
.publication-search input { width:100%; min-height:46px; padding:10px 13px; background:white; border:1px solid #bcb9b3; border-radius:0; color:var(--ink); font:inherit; font-size:15px; }
.publication-search input:focus-visible { outline:2px solid var(--pink); outline-offset:3px; }
.search-status { margin:10px 0 0; font-size:12px; color:var(--muted); }
.publication-year { padding-bottom:30px; }
.publication-year > h2 { font-size:30px; color:var(--pink); margin-bottom:8px; }
.year-content { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.publication--with-cover { display:grid; grid-template-columns:minmax(0,1fr) 105px; gap:24px; align-items:start; }
.journal-cover { margin:0; }
.journal-cover > a { display:block; }
.journal-cover figcaption { margin-top:8px; font-size:10px; text-align:center; }
.journal-cover img { width:105px; height:auto; }
.publication { border-bottom:1px solid var(--line); padding:20px 0 23px; }
.publication p { margin:0; font-size:12px; line-height:1.9; color:var(--muted); }
.publication b { display:block; font:21px/1.4 Georgia,serif; color:var(--ink); margin:7px 0; }
.publication a { color:var(--pink); }
.publication-empty { padding:35px 0; color:var(--muted); }
[hidden] { display:none!important; }
.course { display:grid; grid-template-columns:300px minmax(0,1fr); gap:60px; border-top:1px solid var(--line); padding:34px 0 40px; }
.course:first-child { border-top:0; padding-top:0; }
.course h2 { font-size:30px; margin:13px 0 18px; }
.course-term { font-size:12px; color:var(--muted); }
.teaching-note { padding:27px 30px; background:var(--paper); font-size:14px; margin-top:12px; }
.teaching-note p { margin:0; }
.teaching-note a { color:var(--pink); text-decoration:underline; text-underline-offset:3px; }
.news-entry { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:60px; align-items:start; }
.news-entry + .news-entry { margin-top:50px; padding-top:45px; border-top:1px solid var(--line); }
.news-copy h2 { font-size:34px; margin-bottom:24px; }
.news-copy .eyebrow { margin-bottom:18px; }
.news-copy .text-link { display:inline-block; font-size:13px; margin-top:21px; }
.news-figure { margin:0; }
.news-figure img { width:100%; height:auto; }
.news-figure figcaption { margin-top:16px; }
.news-figure figcaption a,.featured figcaption a { text-decoration:underline; text-underline-offset:2px; }
.news-entry--text { grid-template-columns:minmax(0,730px); }
.news-entry--welcome { grid-template-columns:minmax(0,1fr) 240px; }
.news-entry--welcome .prose { max-width:730px; }
@media(max-width:1100px) {
  .reading-layout { grid-template-columns:190px minmax(0,1fr); gap:38px; }
  .people-grid { column-gap:30px; }
  .person-profile { grid-template-columns:85px minmax(0,1fr); gap:18px; }
  .person-profile img { width:85px; }
  .course { grid-template-columns:260px minmax(0,1fr); gap:40px; }
}
@media(max-width:900px) {
  .reading-layout { grid-template-columns:1fr; gap:34px; }
  .section-index { position:static; max-height:none; overflow:visible; }
  .section-index .index-links { display:flex; flex-wrap:wrap; gap:8px 20px; }
  .section-index a { padding:7px 0; }
  .people-grid { grid-template-columns:1fr; gap:25px; }
  .person-profile { grid-template-columns:110px minmax(0,1fr); gap:25px; }
  .person-profile img { width:110px; }
  .course { grid-template-columns:230px minmax(0,1fr); gap:30px; }
  .news-entry { grid-template-columns:1fr; gap:30px; }
  .news-figure { width:100%; max-width:650px; }
  .news-entry--welcome { grid-template-columns:minmax(0,1fr) 200px; gap:32px; }
}
@media(max-width:620px) {
  .page-head { padding:36px 0 30px; }
  .page-head h1 { font-size:42px; }
  .page-intro { font-size:15px; }
  .page-content { padding-top:30px; padding-bottom:45px; }
  .research-article h2 { font-size:28px; }
  .research-figure { float:none; width:70%; margin:0 auto 25px; }
  .prose { font-size:14px; }
  .principal { grid-template-columns:1fr; gap:24px; margin-bottom:30px; padding-bottom:30px; }
  .principal img { width:160px; }
  .person-profile { grid-template-columns:80px minmax(0,1fr); gap:18px; }
  .person-profile img { width:80px; }
  .person-profile .person-name { font-size:23px; }
  .publication-search { padding:18px; }
  .publication--with-cover { grid-template-columns:minmax(0,1fr); gap:16px; }
  .journal-cover { width:105px; }
  .publication b { font-size:20px; }
  .course { grid-template-columns:1fr; gap:15px; padding:28px 0; }
  .course h2 { font-size:28px; margin-bottom:12px; }
  .course-term { margin:0; }
  .teaching-note { padding:22px; }
  .news-copy h2 { font-size:29px; }
  .news-entry--welcome { grid-template-columns:minmax(0,1fr); gap:24px; }
  .news-entry--welcome .news-figure { max-width:200px; }
  .news-entry + .news-entry { margin-top:35px; padding-top:30px; }
  .news-preview { gap:20px; }
}

/* Journal covers expand without leaving the publication list. */
.cover-link { cursor:zoom-in; }
html.cover-viewer-open { overflow:hidden; }
.cover-viewer { width:fit-content; max-width:min(1000px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:20px; border:0; background:white; color:var(--ink); }
.cover-viewer[open] { display:flex; flex-direction:column; gap:16px; }
.cover-viewer::backdrop { background:rgba(0,0,0,.75); }
.cover-viewer-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-shrink:0; }
.cover-viewer-header h2 { max-width:700px; margin:0; font:21px/1.35 Georgia,serif; letter-spacing:0; }
.cover-viewer-close { flex-shrink:0; min-height:44px; padding:8px 12px; border:1px solid var(--line); background:white; color:var(--ink); font:13px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; cursor:pointer; }
.cover-viewer > img { min-height:0; width:auto; height:auto; max-width:100%; max-height:70dvh; object-fit:contain; align-self:center; }
.cover-viewer > .text-link { align-self:flex-start; flex-shrink:0; font-size:13px; }
@media(max-width:620px) {
  .cover-viewer { padding:16px; }
  .cover-viewer-header { gap:16px; }
  .cover-viewer-header h2 { font-size:17px; }
}
