@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Source+Serif+4:wght@400;600;700&display=swap');

/* THEME TOKENS (整站色调) */
:root{
  /* Global text
     --fg: 主正文颜色（标题/正文）
     --muted: 次级文字（说明/label/注释）
  */
  --fg:#151821;
  --muted:#6f726f;

  /* Brand accent
     --accent: 链接色/可点击强调
     --accent2: 少量点缀色（可选）
  */
  --accent:#5b6651;
  --accent2:#8a6f4d;

  /* Surfaces / borders
     --line: 分割线/边框
     --glass: 毛玻璃卡片底（更透明）
     --glass-strong: 毛玻璃卡片底（更实）
  */
  --line: rgba(40, 40, 34, 0.14);
  --glass: rgba(255, 254, 250, 0.70);
  --glass-strong: rgba(255, 254, 250, 0.82);

  /* Page backgrounds 
     --page-bg: 非 home 页背景
  */
  --page-bg: #f8f6f0;

  /* Home background control
     home-fallback: 背景图加载失败时的底色
     home-veil: 背景图上覆盖的
  */
  --home-fallback: #f8f6f0;
  --home-veil: rgba(248, 246, 240, 0.72);

  /* Metrics palette (卡片内部小块配色) */
  --m-green:#A5B46E;
  --m-gold:#E9C77B;
  --m-red:#9E4A47;

  /* Layout */
  --max: 980px;
  --radius: 12px;
  --shadow: 0 18px 48px rgba(30, 29, 25, 0.10);
  --page-accent: var(--accent);
  --page-accent-soft: rgba(91, 102, 81, 0.12);
}

/* BASE */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  color:var(--fg);
  line-height:1.75;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  background: var(--page-bg);
}

/* Links */
a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; }

.page-about,
.page-research,
.page-publications,
.page-teaching,
.page-service,
.page-contact{
  --page-accent:#5b6651;
  --page-accent-soft:rgba(91,102,81,0.12);
}

body:not(.home) h1{
  color:var(--fg);
}

body:not(.home) .section{
  border-top:1px solid var(--line);
}

body:not(.home) .pills a:hover,
body:not(.home) .tools a:hover{
  border-color:var(--page-accent);
  background:var(--page-accent-soft);
}

/* Layout */
.container{
  width:min(var(--max), calc(100% - 44px));
  margin:0 auto;
}

main{ padding:24px 0 64px; }

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(248,246,240,0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:24px 0;
}

.brand a{
  font-weight:700;
  letter-spacing:0.2px;
  color:var(--fg);
}

.brand .sub{
  display:none;
}

.nav{
  display:flex;
  flex-wrap:nowrap;
  gap:clamp(14px, 2.2vw, 30px);
  justify-content:flex-end;
  align-items:center;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-weight:600;
  white-space:nowrap;
}

.nav-group{
  position:relative;
  display:flex;
  align-items:center;
  gap:4px;
}

.nav a,
.nav-toggle{
  position:relative;
  padding:4px 0 8px;
  border-radius:0;
  color:var(--muted);
  border:0;
  background:transparent;
  box-shadow:none;
  line-height:1.2;
  font:inherit;
  letter-spacing:inherit;
  text-transform:inherit;
}

.nav-toggle{
  width:14px;
  height:22px;
  padding:0;
  cursor:pointer;
}

.nav-toggle::before{
  content:"";
  position:absolute;
  inset:6px 2px auto;
  width:7px;
  height:7px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
}

.nav a.active,
.nav a:hover,
.nav-toggle:hover,
.nav-group.open .nav-toggle{
  color:var(--fg);
  background:transparent;
  text-decoration:none;
}

.nav-top::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:center;
  opacity:0.55;
  transition:transform 180ms ease, opacity 180ms ease;
}

.nav-top.active::after,
.nav-top:hover::after{
  transform:scaleX(1);
}

.dropdown-menu{
  position:absolute;
  top:100%;
  left:50%;
  z-index:20;
  width:max-content;
  min-width:240px;
  max-width:min(430px, calc(100vw - 32px));
  padding:10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,254,250,0.97);
  box-shadow:0 16px 38px rgba(30,29,25,0.13);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%, 8px);
  transition:opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.nav-group:hover .dropdown-menu,
.nav-group:focus-within .dropdown-menu,
.nav-group.open .dropdown-menu{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
}

.nav-group:nth-last-child(-n+2) .dropdown-menu{
  right:0;
  left:auto;
  transform:translate(0, 8px);
}

.nav-group:nth-last-child(-n+2):hover .dropdown-menu,
.nav-group:nth-last-child(-n+2):focus-within .dropdown-menu,
.nav-group:nth-last-child(-n+2).open .dropdown-menu{
  transform:translate(0, 0);
}

.dropdown-menu a{
  display:block;
  padding:8px 10px;
  border-radius:7px;
  color:var(--muted);
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:0.1em;
  line-height:1.45;
  text-transform:none;
  white-space:normal;
}

.dropdown-menu a:hover,
.dropdown-menu a:focus{
  color:var(--fg);
  background:rgba(91,102,81,0.10);
}

.dropdown-menu a::after{
  display:none;
}

/* Typography */
h1,h2,h3{
  font-family: "Source Serif 4", ui-serif, Georgia, "Times New Roman", Times, serif;
  letter-spacing:0.2px;
}

h1{ margin:0 0 8px; font-size:2.2rem; line-height:1.18; }
h2{ margin:0 0 10px; font-size:1.36rem; }
h3{ margin:0 0 8px; font-size:1.06rem; }

.lead{ margin:0 0 14px; color:var(--muted); font-size:1.06rem; }
.small{ color:var(--muted); font-size:0.95rem; }

hr.sep{
  border:0;
  border-top:1px solid var(--line);
  margin:18px 0;
}

/* Footer */
.footer{
  margin-top:26px;
  padding-top:16px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:0.95rem;
}

/* HOME: fixed landscape background + glass foreground */
body.home{
  background: var(--home-fallback);
}

body.home::before{
  content:"";
  position:fixed;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0.22) 100%);
  background-size: cover;
  background-position: center;
  background-repeat:no-repeat;
  transform: translateZ(0);
  z-index:-2;
}

/* Soft veil for readability (driven by --home-veil) */
body.home::after{
  content:"";
  position:fixed;
  inset:0;
  background: var(--home-veil);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index:-1;
}

/* Home stays in one quiet tone across sections. */
body.home[data-tone]{ --home-veil: rgba(248, 246, 240, 0.72); }

/* TOP PROFILE BLOCK (centered) */
.profile{
  margin-top:14px;
  text-align:center;
  padding:18px 14px 16px;
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: var(--glass);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: var(--shadow);
}

.hero-profile{
  padding:24px 18px 22px;
}

.hero-intro{
  width:min(680px, 100%);
  margin:14px auto 0;
  color:var(--fg);
  font-size:1.03rem;
}

.profile .avatar-top{
  width: 132px;
  height: 132px;
  border-radius: 999px; /* circular crop */
  object-fit: cover;
  border:1px solid var(--line);
  box-shadow: 0 10px 26px rgba(16,24,40,0.10);
  display:block;
  margin: 0 auto;
}

.profile .name{
  margin-top:14px;
  margin-bottom:2px;
  font-size:2rem;
}

.profile .role{
  color: var(--muted);
  font-size:1.02rem;
}

.profile .affil{
  margin-top:6px;
  color: var(--muted);
  font-size:0.98rem;
}

.pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top:12px;
}

.pills a{
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,254,250,0.72);
}

.pills a:hover{
  background:rgba(255,255,255,0.88);
  color:var(--fg);
  text-decoration:none;
}

/* GLASS PANELS (home + reusable) */
.panels{
  margin-top:18px;
  padding-bottom: 26px;
  scroll-snap-type: y proximity;
}

.panel{
  scroll-snap-align: start;
  width:min(760px, 100%);
  margin: 18vh auto 0;
  padding: 18px 18px 20px;
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: var(--glass-strong);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 12px 30px rgba(16, 24, 40, 0.10);
}

.panel:first-child{ margin-top: 12vh; }

.kicker{
  font-size:0.92rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color: var(--muted);
  margin-bottom:8px;
}

/* HORIZONTAL SCROLLING GALLERY (inside a panel) */
.gallery{
  margin-top:12px;
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding-bottom:6px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.gallery::-webkit-scrollbar{ height:8px; }
.gallery::-webkit-scrollbar-thumb{
  background: rgba(16,24,40,0.18);
  border-radius:999px;
}

.g-item{
  flex: 0 0 auto;
  width: min(520px, 82vw);
  scroll-snap-align: start;
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  overflow:hidden;
}

.g-item img{
  width:100%;
  height: 300px;
  object-fit: cover;
  display:block;
}

.g-item .cap{
  padding:10px 12px;
  border-top:1px solid var(--line);
  color: var(--muted);
  font-size:0.95rem;
}

/* PUBLICATIONS: mini tools */
.pub{
  padding:12px 0;
  border-top:1px dashed var(--line);
}

.pub:first-of-type{ border-top:none; padding-top:0; }

.pub .tools{
  margin-top:8px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.pub .tools a{
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,255,255,0.70);
}

.pub .tools a:hover{
  background:rgba(255,255,255,0.88);
  color:var(--fg);
  text-decoration:none;
}

.home-band{
  margin-top:18px;
}

.quick-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}

.quick-card{
  display:block;
  min-height:124px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.74);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
  color:var(--fg);
}

.quick-card:hover{
  text-decoration:none;
  background:rgba(255,254,250,0.92);
}

.quick-card strong{
  display:block;
  margin-top:8px;
  line-height:1.45;
}

.home-list-panel{
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.76);
  box-shadow: 0 14px 40px rgba(30, 29, 25, 0.08);
}

.interest-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px 18px;
}

.interest-cards{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}

.interest-card{
  position:relative;
  display:block;
  min-height:168px;
  padding:24px 22px 22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.86);
  box-shadow:0 12px 28px rgba(30,29,25,0.07);
  color:var(--fg);
  text-decoration:none;
  overflow:hidden;
  transition:transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.interest-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:#737b68;
}

.interest-card::after{
  content:"";
  position:absolute;
  left:22px;
  bottom:22px;
  width:38px;
  height:1px;
  background:rgba(91,102,81,0.45);
}

.interest-card:hover,
.interest-card:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(91,102,81,0.42);
  box-shadow:0 16px 34px rgba(30,29,25,0.10);
  text-decoration:none;
}

.interest-number{
  display:block;
  margin-bottom:26px;
  color:var(--accent2);
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:0.82rem;
  letter-spacing:0.12em;
  font-weight:700;
}

.interest-cards h3{
  margin:0;
  max-width:none;
  font-size:1.08rem;
  line-height:1.35;
  overflow-wrap:normal;
  word-break:normal;
}

.placeholder-panel{
  min-height:118px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.78);
}

.placeholder-panel{
  margin-top:18px;
  display:flex;
  align-items:center;
  color:var(--muted);
  border-style:dashed;
}

.placeholder-panel p{
  margin:0;
}

.awards-list{
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,254,250,0.82);
}

.awards-list article{
  display:grid;
  grid-template-columns:128px 1fr;
  gap:22px;
  padding:18px 20px;
  border-top:1px solid var(--line);
}

.awards-list article:first-child{ border-top:0; }

.awards-list time{
  color:var(--accent2);
  font-weight:700;
  letter-spacing:0.03em;
}

.awards-list h3{
  margin:0;
  font-size:1.04rem;
  line-height:1.4;
}

.awards-list p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:0.94rem;
  line-height:1.55;
}

.interest-list li{
  position:relative;
  padding-left:20px;
  color:var(--fg);
  font-weight:600;
  line-height:1.45;
}

.interest-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.75em;
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--accent2);
}

.society-timeline{
  margin-top:18px;
  display:grid;
  gap:12px;
}

.society-timeline article{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:18px;
  padding-top:12px;
  border-top:1px solid var(--line);
}

.society-timeline article:first-child{
  border-top:none;
  padding-top:0;
}

.society-timeline span{
  color:var(--accent);
  font-weight:700;
}

.society-timeline p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
}

.home-showcase{
  display:block;
  padding:20px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.70);
  box-shadow: 0 14px 40px rgba(30, 29, 25, 0.08);
}

.showcase-copy{
  margin-bottom:16px;
}

.showcase-copy h2{
  display:none;
}

.showcase-copy p{
  display:none;
  margin:0;
  color:var(--muted);
}

.gallery-shell{
  position:relative;
}

.photo-gallery{
  display:flex;
  gap:0;
  overflow:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:0;
  scrollbar-width:none;
}

.photo-card{
  flex:0 0 100%;
  position:relative;
  margin:0;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:#f3f0e8;
  scroll-snap-align:start;
  aspect-ratio: 16 / 8.8;
}

.photo-card.tall{
  grid-row:auto;
}

.photo-card img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}

.photo-card figcaption{
  display:none;
}

.gallery-arrow{
  position:absolute;
  top:50%;
  z-index:2;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(40,40,34,0.18);
  background:rgba(255,254,250,0.88);
  color:var(--fg);
  font-size:1rem;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  box-shadow:0 8px 20px rgba(30,29,25,0.10);
}

.gallery-arrow:hover{
  background:#fffefa;
}

.gallery-arrow-left{ left:10px; }
.gallery-arrow-right{ right:10px; }

.home-social-block{
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

.research-overview h2{
  margin-bottom:18px;
}

.research-home-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.research-home-grid article{
  min-height:220px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.76);
}

.research-home-grid span{
  display:block;
  margin-bottom:26px;
  color:var(--accent2);
  font-family:"Source Serif 4", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.6rem;
  font-weight:700;
}

.research-home-grid p{
  margin:0;
  color:var(--muted);
}

.current-work-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-top:14px;
}

.current-work-grid a{
  display:block;
  padding:14px 16px;
  border-top:2px solid rgba(91,102,81,0.38);
  color:var(--fg);
  background:rgba(255,254,250,0.58);
}

.current-work-grid a:hover{
  background:rgba(255,254,250,0.88);
  text-decoration:none;
}

.current-work-grid span{
  display:block;
  margin-bottom:6px;
  color:var(--muted);
  font-size:0.78rem;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

.impact-overview{
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.72);
  box-shadow:0 10px 28px rgba(16,24,40,0.07);
}

.impact-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.impact-heading h2{
  margin-bottom:0;
}

.impact-heading a{
  flex:0 0 auto;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,254,250,0.72);
  font-weight:700;
}

.impact-heading a:hover{
  color:var(--fg);
  background:#fffefa;
  text-decoration:none;
}

.impact-grid{
  display:grid;
  grid-template-columns:260px minmax(0, 1fr);
  gap:22px;
  align-items:stretch;
}

.impact-metrics{
  display:grid;
  gap:10px;
}

.impact-metrics article{
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.78);
}

.impact-metrics span{
  display:block;
  color:var(--muted);
  font-size:0.78rem;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

.impact-metrics strong{
  display:block;
  margin-top:5px;
  color:var(--fg);
  font-family:"Source Serif 4", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:2rem;
  line-height:1;
}

.citation-chart{
  min-height:260px;
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:12px;
  align-items:end;
  padding:20px 16px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:
    linear-gradient(to top, rgba(40,40,34,0.10) 1px, transparent 1px) 0 0 / 100% 25%,
    rgba(255,254,250,0.62);
}

.citation-chart .bar{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
}

.citation-chart .bar::before{
  content:"";
  width:100%;
  max-width:42px;
  height:var(--value);
  min-height:12px;
  border-radius:8px 8px 2px 2px;
  background:linear-gradient(180deg, #8a6f4d, #5b6651);
  box-shadow:0 8px 18px rgba(30,29,25,0.12);
}

.citation-chart span{
  order:-1;
  color:var(--fg);
  font-weight:800;
  font-size:0.9rem;
}

.citation-chart em{
  color:var(--muted);
  font-style:normal;
  font-size:0.82rem;
}

.about-prose{
  font-family:"Source Serif 4", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.22rem;
  line-height:1.9;
  color:#555651;
}

.about-prose p{
  margin:0 0 24px;
}

.about-prose p:last-child{
  margin-bottom:0;
}

.text-highlight{
  color:#a56f37;
}

.event-feature{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(220px, 340px);
  gap:22px;
  align-items:start;
}

.event-feature img{
  width:100%;
  display:block;
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:0 14px 32px rgba(30,29,25,0.12);
}

.colorful-grid .quick-card{
  position:relative;
  overflow:hidden;
}

.colorful-grid .quick-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#8a6f4d;
}

.accent-research,
.accent-publications,
.accent-teaching{ --card-accent:#8a6f4d; }

.theme-list{
  display:grid;
  gap:14px;
}

.theme-list h3{
  margin-bottom:4px;
}

.featured-mini{
  display:grid;
  gap:10px;
}

.featured-mini a{
  display:block;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,255,255,0.64);
  color:var(--fg);
}

.featured-mini a:hover{
  background:rgba(255,255,255,0.88);
  text-decoration:none;
}

.more-link{
  margin-top:14px;
}

.section{
  margin-top:18px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.72);
  box-shadow: 0 10px 28px rgba(16, 24, 40, 0.07);
}

.intro-section,
.contact-panel{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  gap:22px;
}

.contact-redesign{
  grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items:start;
}

.contact-intro{
  max-width:620px;
}

.page-portrait{
  width:154px;
  height:154px;
  border-radius:999px;
  object-fit:cover;
  border:1px solid var(--line);
}

.grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}

.item{
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.62);
}

.item p{
  margin:0;
  color:var(--muted);
}

.research-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.research-strip span{
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,254,250,0.72);
  color:var(--fg);
}

.research-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.theme-card{
  border-top:3px solid color-mix(in srgb, var(--accent) 48%, white);
}

.grant-list,
.service-list{
  display:grid;
  gap:14px;
}

.grant-card,
.service-card,
.feature-pub,
.course-card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.78);
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.06);
}

.grant-card{
  display:grid;
  grid-template-columns: 112px 1fr;
  gap:16px;
  padding:16px;
  color:var(--fg);
  transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.grant-card-structured{
  display:block;
  padding:0;
  overflow:hidden;
}

.grant-title-highlight{
  margin:0 !important;
  padding:14px 16px;
  background:rgba(91,102,81,0.15);
  border-bottom:1px solid rgba(91,102,81,0.18);
  color:#273128;
  font-size:1.08rem;
  font-style:normal;
  font-weight:700;
  line-height:1.42;
}

.grant-card-body{
  padding:14px 16px 16px;
}

.grant-card .grant-funder{
  color:var(--fg);
  font-weight:650;
}

.grant-details{
  display:flex;
  flex-wrap:wrap;
  gap:4px 18px;
  margin-top:8px;
  color:var(--muted);
  font-size:0.92rem;
}

.grant-details span + span::before{
  content:"·";
  margin-right:18px;
  color:rgba(91,102,81,0.58);
}

.grant-card.linked-card:hover,
.grant-card.linked-card:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(91,102,81,0.34);
  box-shadow:0 14px 32px rgba(30,29,25,0.10);
  outline:none;
}

.grant-card h3,
.service-card h3,
.course-card h3,
.feature-pub h3{
  margin-bottom:6px;
}

.grant-card p,
.service-card p,
.course-card p,
.feature-pub p{
  margin:0;
  color:var(--muted);
}

.featured-pubs{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.feature-pub{
  display:grid;
  grid-template-columns:112px 64px minmax(0, 1fr);
  align-items:start;
  gap:22px;
  min-height:180px;
  padding:18px 22px;
  color:var(--fg);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.76);
}

.feature-pub-cover{
  width:112px;
  height:148px;
  overflow:hidden;
  border:1px solid rgba(16,24,40,0.14);
  border-radius:6px;
  background:#fff;
  box-shadow:0 8px 20px rgba(16,24,40,0.12);
}

.feature-pub-cover img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

.feature-pub-cover--wide img{
  object-fit:cover;
  object-position:left top;
}

.feature-journal-panel{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:15px 12px 12px;
  color:#fff;
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  line-height:1.16;
}

.feature-journal-panel span{
  font-size:0.88rem;
  font-weight:700;
}

.feature-journal-panel small{
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,0.45);
  font-family:Inter, ui-sans-serif, system-ui, sans-serif;
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.feature-journal-panel--jeap{
  background:#53634f;
}

.feature-journal-panel--lid{
  background:#6f665b;
}

.feature-journal-panel--jmmd{
  color:#27251f;
  background:#d3bc72;
}

.feature-journal-panel--jmmd small{
  border-top-color:rgba(39,37,31,0.34);
}

.feature-pub-year{
  align-self:start;
  padding-right:16px;
  border-right:1px solid rgba(91,102,81,0.28);
  color:var(--accent2);
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:0.06em;
}

.feature-pub-content{
  min-width:0;
}

.feature-pub h3{
  font-size:1.08rem;
  line-height:1.42;
}

.feature-pub .pub-tags{
  margin-top:12px;
}

.badge{
  display:inline-block;
  margin-bottom:8px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(138,111,77,0.12);
  color:#6d5435;
  font-size:0.8rem;
  font-weight:700;
}

.journal-cover{
  width:104px;
  height:138px;
  object-fit:cover;
  object-position:center;
  align-self:start;
  border-radius:8px;
  border:1px solid rgba(16,24,40,0.16);
  box-shadow:0 10px 22px rgba(16,24,40,0.16);
  background:#fff;
}

.role-image{
  display:block;
  max-width:100%;
  justify-self:center;
  border:1px solid var(--line);
  background:#fff;
  box-shadow:0 8px 18px rgba(16,24,40,0.10);
}

.role-image--cover{
  width:108px;
  height:150px;
  object-fit:contain;
  border-radius:6px;
}

.role-image--logo{
  width:132px;
  height:88px;
  padding:9px;
  object-fit:contain;
  border-radius:8px;
}

.journal-mark{
  width:74px;
  height:96px;
  display:grid;
  place-items:center;
  align-self:start;
  border-radius:8px;
  border:1px solid rgba(16,24,40,0.16);
  box-shadow:0 8px 18px rgba(16,24,40,0.10);
  color:white;
  font-weight:800;
  letter-spacing:0.06em;
}

.journal-mark.system{ background:linear-gradient(145deg, #1f5e4b, #8cb369); }
.journal-mark.relc{ background:linear-gradient(145deg, #345995, #03cea4); }
.journal-mark.elt{ background:linear-gradient(145deg, #7a2e3a, #f4a261); }
.journal-mark.lt{ background:linear-gradient(145deg, #243b53, #7b2cbf); }
.journal-mark.aila{ background:linear-gradient(145deg, #2f3e46, #d9a441); }

.linked-card{
  display:block;
  color:var(--fg);
}

.linked-card:hover{
  text-decoration:none;
  transform:translateY(-1px);
  border-color:rgba(91,102,81,0.26);
  box-shadow:0 12px 30px rgba(16,24,40,0.09);
}

.linked-name{
  color:var(--accent);
  font-weight:700;
  border-bottom:1px solid rgba(91,102,81,0.42);
  transition:color 160ms ease, border-color 160ms ease;
}

.outreach-card:hover .linked-name,
.outreach-card:focus-visible .linked-name{
  color:#414a3a;
  border-bottom-color:currentColor;
}

.feature-pub.linked-card{
  display:grid;
}

.feature-pub a,
.service-card a,
.card-action{
  display:inline-block;
  margin-top:10px;
  font-weight:700;
}

.card-action{
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--accent);
}

.card-action:hover{
  background:var(--page-accent-soft);
  text-decoration:none;
}

.pub-year{
  margin-top:18px;
}

.pub-year:first-of-type{
  margin-top:0;
}

.cite-count{
  display:inline-block;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--page-accent-soft);
  color:var(--page-accent);
  font-weight:700;
  font-size:0.86rem;
}

.pub{
  display:grid;
  gap:8px;
}

.talk-module{
  margin-top:22px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.68);
}

.talk-module:first-of-type{
  margin-top:0;
}

.section-heading-row{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:20px;
}

.section-heading-row h2{
  margin-bottom:0;
}

.publication-topic{
  margin-top:46px;
}

.topic-heading h3{
  scroll-margin-top:120px;
}

.publication-topic:first-of-type{
  margin-top:12px;
}

.topic-heading{
  display:flex;
  align-items:center;
  gap:16px;
  padding:15px 18px;
  border-left:4px solid var(--accent);
  border-radius:0 8px 8px 0;
  background:rgba(91,102,81,0.10);
}

.topic-heading span{
  flex:0 0 auto;
  color:var(--accent2);
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:0.9rem;
  font-weight:700;
  letter-spacing:0.08em;
}

.topic-heading h3{
  margin:0;
  font-size:1.5rem;
  line-height:1.25;
}

.publication-list{
  display:grid;
  gap:0;
  margin-top:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,254,250,0.72);
}

.publication-list .pub{
  padding:18px 20px;
  border-top:1px solid var(--line);
}

.publication-list .pub:first-child{
  border-top:0;
}

.pub h4{
  margin:0;
  font-size:1.03rem;
  line-height:1.45;
}

.pub h4 a{
  color:var(--fg);
  text-decoration-color:transparent;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
  transition:color 160ms ease, text-decoration-color 160ms ease;
}

.pub h4 a:hover,
.pub h4 a:focus-visible{
  color:var(--accent);
  text-decoration:underline;
  text-decoration-color:rgba(91,102,81,0.45);
}

.pub-authors,
.pub-source{
  margin:0;
  color:var(--muted);
  font-size:0.94rem;
  line-height:1.6;
}

.pub-source em{
  color:#4f534f;
}

.publication-notes{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:0.82rem;
}

.publication-notes p{
  margin:3px 0;
}

.section-subhead{
  margin:20px 0 12px;
}

.entry-date{
  color:var(--accent);
  font-weight:800;
}

.pub-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:2px;
}

.tag{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(75,78,72,0.14);
  background:rgba(91,96,88,0.09);
  color:#50544f;
  font-size:0.76rem;
  font-weight:800;
  letter-spacing:0.04em;
}

.tag.citation{
  background:rgba(96,101,96,0.10);
  color:#565b57;
}

.tag.sci{
  border-color:rgba(56,91,124,0.20);
  background:rgba(79,116,151,0.13);
  color:#355b7b;
}

.tag.scopus{
  border-color:rgba(91,96,88,0.20);
  background:rgba(91,96,88,0.11);
  color:#505850;
}

.tag.q1{
  border-color:rgba(73,112,76,0.22);
  background:rgba(83,127,86,0.14);
  color:#3f6843;
}

.tag.q2{
  border-color:rgba(135,112,66,0.22);
  background:rgba(158,132,79,0.14);
  color:#715c30;
}

.tag.if{
  border-color:rgba(153,118,48,0.22);
  background:rgba(185,145,65,0.15);
  color:#75591f;
}

.talk-list{
  display:grid;
  gap:10px;
  margin:0;
  padding-left:20px;
}

.talk-list li{
  color:var(--muted);
}

.card-list{
  padding-left:0;
  list-style:none;
}

.card-list li{
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.72);
}

.page-research .card-list li em{
  color:var(--fg);
}

.course-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
}

.course-card{
  padding:16px;
}

.course-card span{
  display:inline-block;
  margin-bottom:10px;
  color:var(--accent);
  font-weight:800;
  font-size:0.9rem;
}

.classroom-gallery{
  margin-top:18px;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(420px, 52%);
  gap:14px;
  overflow-x:auto;
  padding:2px 2px 12px;
  scroll-snap-type:x proximity;
  scrollbar-color:rgba(91,102,81,0.38) transparent;
}

.classroom-placeholder{
  position:relative;
  min-height:210px;
  padding:20px;
  display:flex;
  align-items:flex-end;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(235,233,225,0.78);
  scroll-snap-align:start;
  overflow:hidden;
}

.classroom-placeholder::before{
  content:"";
  position:absolute;
  inset:18px 18px auto;
  height:1px;
  background:rgba(91,102,81,0.26);
}

.classroom-placeholder::after{
  content:"Photo forthcoming";
  position:absolute;
  top:28px;
  left:20px;
  color:var(--muted);
  font-size:0.75rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

.classroom-placeholder span{
  display:block;
  position:relative;
  color:var(--fg);
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:1.08rem;
  font-weight:800;
}

.classroom-photo{
  margin:0;
  aspect-ratio:4 / 3;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:#f3f0e8;
  scroll-snap-align:start;
}

.classroom-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}

.teaching-gallery-section h2{ margin-bottom:0; }

.teaching-gallery-shell{
  margin-top:18px;
}

.teaching-gallery-shell .classroom-gallery{
  margin-top:0;
  padding-inline:0;
}

.supervision-email{
  display:inline-block;
  margin-left:5px;
  font-weight:700;
}

.service-card{
  padding:16px;
}

.outreach-card,
.event-card{
  display:block;
}

.outreach-card h3,
.event-card h3{
  margin-top:4px;
}

.compact-service-list{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.compact-service-list .service-card h3{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:0.98rem;
}

.service-timeline{
  display:grid;
  gap:0;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,254,250,0.74);
}

.service-timeline article{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:18px;
  padding:14px 16px;
  border-top:1px solid var(--line);
}

.service-timeline article:first-child{
  border-top:none;
}

.service-timeline article > span{
  color:var(--accent);
  font-weight:800;
}

.service-timeline p{
  margin:0;
  color:var(--muted);
}

.entity-name{
  font-weight:700;
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-underline-offset:0.2em;
  text-decoration-skip-ink:auto;
}

.entity-name--journal{
  color:#80623d;
  text-decoration-color:rgba(128,98,61,0.62);
}

.entity-name--institution{
  color:#47675e;
  text-decoration-color:rgba(71,103,94,0.58);
}

.linked-card:hover .entity-name,
.linked-card:focus-visible .entity-name{
  text-decoration-thickness:2px;
}

.service-details{
  margin:12px 0 0;
  padding-left:20px;
  color:var(--muted);
}

.service-details li{
  margin-bottom:8px;
}

.service-card.with-mark{
  display:grid;
  grid-template-columns:142px minmax(0, 1fr);
  gap:22px;
  align-items:center;
  min-height:182px;
}

.left-pills{
  justify-content:flex-start;
}

.publication-callout{
  background:rgba(255,255,255,0.72);
}

.contact-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  min-width:0;
  width:100%;
}

.contact-list div{
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(255,254,250,0.72);
  min-width:0;
}

.contact-list a{
  overflow-wrap:anywhere;
}

.contact-list span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:0.92rem;
}

.social-section{
  text-align:center;
}

.social-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
  margin-top:14px;
}

.social-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#202020;
  color:white;
  font-weight:800;
  letter-spacing:0.02em;
  box-shadow:0 10px 22px rgba(16,24,40,0.14);
}

.social-icon.logo-icon{
  background:white;
  border:1px solid rgba(16,24,40,0.12);
}

.social-icon.logo-icon img{
  width:28px;
  height:28px;
  object-fit:contain;
}

.profile-icons{
  margin-top:18px;
}

.profile-icons .social-icon{
  width:58px;
  height:58px;
}

.profile-icons .social-icon.logo-icon img{
  width:34px;
  height:34px;
}

.profile-icons .muted-icon{
  opacity:1;
  cursor:pointer;
  background:#9b9a96;
}

.social-icon:hover{
  background:var(--page-accent);
  color:white;
  text-decoration:none;
}

.muted-icon{
  opacity:0.45;
  cursor:not-allowed;
}

/* METRICS CARDS (glass + palette trio) */
.metrics{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:16px;
  margin-top:14px;
}

.metric-card{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.28);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  box-shadow: 0 18px 50px rgba(16, 24, 40, 0.14);
  padding:18px;
}

.metric-card h3{
  margin:0 0 12px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-weight:700;
  font-size:1.18rem;
  letter-spacing:0.2px;
  color: var(--fg);
}

.metric-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}

.metric{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.38);
  background: rgba(255,255,255,0.32);
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  padding:14px 12px;
  text-align:center;
  box-shadow: 0 10px 26px rgba(16, 24, 40, 0.10);
}

.metric .num{
  font-size:1.95rem;
  font-weight:750;
  color: var(--fg);
  line-height:1.05;
}

.metric .label{
  margin-top:6px;
  font-size:0.98rem;
  color: rgba(16, 24, 40, 0.62);
}

/* palette accents by position (cards: 1=Scholar, 2=RG; tiles: 1/2) */
.metric-card:nth-child(1) .metric:nth-child(1){
  background: color-mix(in srgb, var(--m-gold) 38%, rgba(255,255,255,0.30));
}
.metric-card:nth-child(1) .metric:nth-child(2){
  background: color-mix(in srgb, var(--m-green) 38%, rgba(255,255,255,0.30));
}
.metric-card:nth-child(2) .metric:nth-child(1){
  background: color-mix(in srgb, var(--m-green) 38%, rgba(255,255,255,0.30));
}
.metric-card:nth-child(2) .metric:nth-child(2){
  background: color-mix(in srgb, var(--m-red) 34%, rgba(255,255,255,0.30));
}

/* fallback for browsers without color-mix */
@supports not (background: color-mix(in srgb, white 50%, black)){
  .metric-card:nth-child(1) .metric:nth-child(1){ background: rgba(233,199,123,0.34); }
  .metric-card:nth-child(1) .metric:nth-child(2){ background: rgba(165,180,110,0.34); }
  .metric-card:nth-child(2) .metric:nth-child(1){ background: rgba(165,180,110,0.34); }
  .metric-card:nth-child(2) .metric:nth-child(2){ background: rgba(158,74,71,0.30); }
}

.metric-note{
  margin-top:12px;
  text-align:center;
  color: rgba(16, 24, 40, 0.62);
  font-size:0.98rem;
}

/* Responsive */
@media (max-width: 900px){
  .panel{ margin-top: 10vh; }
  .g-item img{ height: 240px; }
}

@media (max-width: 860px){
  .metrics{ grid-template-columns: 1fr; }
  .quick-grid,
  .interest-list,
  .interest-cards,
  .grid,
  .research-grid,
  .research-home-grid,
  .current-work-grid,
  .impact-grid,
  .compact-service-list,
  .course-grid,
  .home-showcase,
  .intro-section,
  .contact-panel{
    grid-template-columns:1fr;
  }

  .grant-card,
  .event-feature{
    grid-template-columns:1fr;
  }

  .featured-pubs{
    grid-template-columns:1fr;
  }

  .feature-pub{
    grid-template-columns:88px minmax(0, 1fr);
    gap:7px 16px;
  }

  .feature-pub-cover{
    grid-row:1 / span 2;
    width:88px;
    height:120px;
  }

  .feature-pub-year{
    grid-column:2;
    padding:0 0 6px;
    border-right:0;
    border-bottom:1px solid rgba(91,102,81,0.24);
  }

  .feature-pub-content{
    grid-column:2;
  }

  .grant-title-highlight{
    padding:13px 14px;
    font-size:1rem;
  }

  .grant-card-body{
    padding:13px 14px 15px;
  }

  .grant-details{
    display:grid;
    gap:2px;
  }

  .grant-details span + span::before{
    content:none;
  }

  .service-card.with-mark{
    grid-template-columns:112px minmax(0, 1fr);
    gap:16px;
    min-height:150px;
  }

  .role-image--cover{
    width:88px;
    height:122px;
  }

  .role-image--logo{
    width:104px;
    height:72px;
    padding:7px;
  }

  .society-timeline article{
    grid-template-columns:1fr;
    gap:4px;
  }

  .service-timeline article{
    grid-template-columns:1fr;
    gap:4px;
  }

  .awards-list article{
    grid-template-columns:110px 1fr;
  }

  .photo-card.tall{
    grid-row:auto;
  }

  .page-portrait{
    width:132px;
    height:132px;
  }
}

@media (max-width: 620px){
  .container{
    width:min(100% - 32px, var(--max));
  }

  .header-inner{
    display:flex;
    align-items:center;
    padding:14px 0;
    gap:16px;
  }

  .brand{
    width:auto;
    margin-bottom:0;
    flex:0 0 auto;
  }

  .brand a{
    display:block;
    white-space:nowrap;
  }

  .nav{
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:16px;
    overflow-x:auto;
    padding-bottom:4px;
    -webkit-overflow-scrolling: touch;
    font-size:0.68rem;
    flex:1 1 auto;
  }

  .nav a,
  .nav-toggle{
    flex:0 0 auto;
    padding:4px 0 8px;
  }

  .nav-group{
    flex:0 0 auto;
  }

  .interest-card{
    min-height:145px;
  }

  .awards-list article{
    grid-template-columns:1fr;
    gap:6px;
  }

  .classroom-gallery{
    grid-auto-columns:minmax(260px, 92%);
  }

  .dropdown-menu{
    left:0;
    right:auto;
    min-width:220px;
    transform:translate(0, 8px);
  }

  .nav-group:hover .dropdown-menu,
  .nav-group:focus-within .dropdown-menu,
  .nav-group.open .dropdown-menu{
    transform:translate(0, 0);
  }

  h1{
    font-size:2rem;
  }

  .feature-pub{
    grid-template-columns:72px minmax(0, 1fr);
    gap:6px 13px;
    padding:16px;
  }

  .feature-pub-cover{
    width:72px;
    height:98px;
  }

  .feature-journal-panel{
    padding:10px 8px 8px;
  }

  .feature-journal-panel span{
    font-size:0.66rem;
  }

  .feature-journal-panel small{
    font-size:0.48rem;
  }

  .feature-pub-year{
    padding:0 0 5px;
    font-size:0.82rem;
  }

  .topic-heading{
    align-items:flex-start;
    gap:12px;
    padding:13px 14px;
  }

  .topic-heading h3{
    font-size:1.22rem;
  }

  .publication-topic{
    margin-top:34px;
  }

  .publication-list .pub{
    padding:16px;
  }

  .profile{
    padding:20px 16px;
  }
}

/* 2026 editorial refinements */
.dropdown-menu a{
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:0.1em;
}

body:not(.home) .section > h1,
.home .profile .name{
  margin-bottom:22px;
  font-size:2.35rem;
  line-height:1.14;
}

body:not(.home) .section > h2,
body:not(.home) .section-heading-row h2{
  font-size:1.75rem;
  line-height:1.2;
}

/* First content modules use the same title scale as their sibling modules. */
#projects-grants > h1,
#courses-teaching > h1,
#knowledge-transfer > h1,
#professional-roles > h1{
  font-size:1.75rem;
  line-height:1.2;
}

.section-subhead h2{
  font-size:1.22rem;
  line-height:1.35;
  font-style:normal;
}

.profile-link-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px;
  margin-top:20px;
}

.profile-link{
  display:grid;
  justify-items:center;
  gap:7px;
  min-width:82px;
  color:var(--muted);
  font-size:0.75rem;
  font-weight:600;
}

.profile-link:hover,
.profile-link:focus-visible{
  color:var(--fg);
  text-decoration:none;
}

.profile-link .social-icon{
  width:58px;
  height:58px;
}

.profile-link .logo-icon img{
  width:34px;
  height:34px;
  object-fit:contain;
}

.orcid-icon{
  background:#a6ce39;
  font-family:Arial, Helvetica, sans-serif;
  font-size:1.05rem;
  font-weight:700;
}

.publication-profile-links{
  justify-content:flex-start;
}

.bio-panel{
  padding:2px 0;
}

.bio-panel p{
  max-width:850px;
  margin:0;
  color:#4f534f;
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:1.08rem;
  line-height:1.85;
}

.photo-card figcaption{
  display:block;
  position:absolute;
  right:14px;
  bottom:12px;
  left:14px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,0.48);
  border-radius:6px;
  background:rgba(255,254,250,0.88);
  color:var(--fg);
  font-size:0.78rem;
  font-weight:600;
  backdrop-filter:blur(8px);
}

#projects-grants .grant-list{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:16px;
}

#projects-grants .grant-card{
  width:100%;
}

.feature-pub{
  grid-template-columns:112px minmax(0, 1fr);
}

.feature-pub-content{
  align-self:center;
}

.topic-heading{
  display:block;
  padding:0;
  overflow:hidden;
}

.topic-toggle{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:16px;
  padding:17px 18px;
  border:0;
  background:transparent;
  color:var(--fg);
  text-align:left;
  font:inherit;
  font-size:22px;
  font-weight:700;
  line-height:1.25;
  cursor:pointer;
}

.topic-toggle:hover,
.topic-toggle:focus-visible{
  background:rgba(91,102,81,0.06);
  outline:none;
}

.topic-toggle .topic-number{
  color:var(--accent2);
  font-size:1.25rem;
  font-weight:700;
  letter-spacing:0.08em;
}

.topic-toggle > span:nth-child(2){
  min-width:0;
  color:var(--fg);
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:0;
  line-height:inherit;
}

.topic-chevron{
  width:11px;
  height:11px;
  border-right:2px solid var(--accent);
  border-bottom:2px solid var(--accent);
  transform:rotate(45deg) translateY(-3px);
  transition:transform 180ms ease;
}

.topic-toggle[aria-expanded="true"] .topic-chevron{
  transform:rotate(225deg) translate(-2px, -1px);
}

.publication-topic-panel[hidden]{
  display:none;
}

.guest-lecture-list,
.hosted-talks-list{
  display:grid;
  gap:0;
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:rgba(255,254,250,0.72);
}

.guest-lecture-list article,
.hosted-talks-list article{
  padding:16px 18px;
  border-top:1px solid var(--line);
}

.guest-lecture-list article:first-child,
.hosted-talks-list article:first-child{
  border-top:0;
}

.guest-lecture-list h3,
.hosted-talks-list h3{
  margin:0 0 5px;
  font-size:1.02rem;
}

.guest-lecture-list p,
.hosted-talks-list p{
  margin:0;
  color:var(--muted);
  font-size:0.9rem;
}

.outreach-visual--contain img{
  object-fit:contain;
  padding:18px;
}

.service-group{
  margin-top:24px;
}

.service-group > h3{
  margin:0 0 10px;
  color:var(--accent);
  font-family:Inter, ui-sans-serif, system-ui, sans-serif;
  font-size:0.82rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
}

@media (max-width: 620px){
  .dropdown-menu a{
    font-size:0.82rem;
    letter-spacing:0.08em;
  }

  body:not(.home) .section > h1,
  .home .profile .name{
    font-size:2rem;
  }

  body:not(.home) .section > h2,
  body:not(.home) .section-heading-row h2{
    font-size:1.5rem;
  }

  #projects-grants > h1,
  #courses-teaching > h1,
  #knowledge-transfer > h1,
  #professional-roles > h1{
    font-size:1.5rem;
  }

  .profile-link-row{
    gap:13px;
  }

  .profile-link{
    min-width:68px;
    max-width:78px;
    font-size:0.68rem;
    line-height:1.25;
  }

  .profile-link .social-icon{
    width:50px;
    height:50px;
  }

  .feature-pub{
    grid-template-columns:72px minmax(0, 1fr);
  }

  .topic-toggle{
    gap:12px;
    padding:18px 14px;
    font-size:22px;
  }

  .service-timeline article{
    grid-template-columns:82px minmax(0, 1fr);
    gap:12px;
  }
}

/* Publications: compact metrics */
.pubpage .metrics{
  gap: 12px;
  margin-top: 10px;
}

.pubpage .metric-card{
  padding: 14px;
  box-shadow: 0 12px 34px rgba(16, 24, 40, 0.12);
}

.pubpage .metric-card h3{
  margin: 0 0 10px;
  font-size: 1.02rem;
}

.pubpage .metric-grid{
  gap: 10px;
}

.pubpage .metric{
  padding: 10px 10px;
  border-radius: 14px;
}

.pubpage .metric .num{
  font-size: 1.45rem;
  font-weight: 750;
}

.pubpage .metric .label{
  margin-top: 4px;
  font-size: 0.92rem;
}

.pubpage .metric-note{
  margin-top: 10px;
  font-size: 0.92rem;
}

/* optional: keep cards narrower */
.pubpage .metrics{
  width: min(720px, 100%);
}

/* Publications: center metrics + center note */
.pubpage .metrics{
  width: fit-content;
  margin: 10px auto 0;
  justify-content: center;
  align-content: center;
}

.pubpage .metric-note{
  width: fit-content;
  margin: 10px auto 0;
}

@media (max-width: 860px){
  .pubpage .metrics{
    width: min(520px, 100%);
  }
}

/* Research and teaching galleries */
.research-motion-section h2{
  margin-bottom:0;
}

.research-gallery-shell{
  margin-top:18px;
}

.research-motion-gallery{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(360px, 68%);
  gap:16px;
  overflow-x:auto;
  padding:2px 2px 12px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-color:rgba(91,102,81,0.38) transparent;
}

.research-motion-card{
  position:relative;
  margin:0;
  aspect-ratio:16 / 10;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#ece9df;
  scroll-snap-align:start;
}

.research-motion-card img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}

.research-motion-card--portrait img{
  object-fit:contain;
}

.research-motion-card figcaption{
  position:absolute;
  inset:auto 12px 12px;
  padding:9px 12px;
  border:1px solid rgba(255,255,255,0.54);
  border-radius:6px;
  background:rgba(255,254,250,0.9);
  color:var(--fg);
  font-size:0.82rem;
  font-weight:600;
  line-height:1.35;
  backdrop-filter:blur(8px);
}

/* Outreach editorial cards */
.outreach-showcase-list,
.event-showcase-list{
  display:grid;
  gap:22px;
  margin-top:22px;
}

.outreach-showcase-card,
.event-showcase-card,
.outreach-talks-block{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--glass-strong);
  box-shadow:0 14px 38px rgba(30,29,25,0.07);
}

.outreach-showcase-card{
  display:grid;
  grid-template-columns:minmax(260px, 0.9fr) minmax(0, 1.1fr);
  color:var(--fg);
  transition:transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.outreach-showcase-card:nth-child(even) .outreach-visual{
  order:2;
}

.outreach-showcase-card:nth-child(even) .outreach-content{
  order:1;
}

.outreach-showcase-card.linked-card:hover,
.outreach-showcase-card.linked-card:focus-visible{
  text-decoration:none;
  transform:translateY(-2px);
  border-color:rgba(91,102,81,0.3);
  box-shadow:0 18px 44px rgba(30,29,25,0.11);
}

.outreach-showcase-card:hover .linked-name,
.outreach-showcase-card:focus-visible .linked-name,
.outreach-showcase-card:focus-within .linked-name{
  color:#414a3a;
  border-bottom-color:currentColor;
}

.outreach-visual{
  min-height:270px;
  background:#e9e7de;
}

.outreach-visual img{
  width:100%;
  height:100%;
  min-height:270px;
  display:block;
  object-fit:cover;
}

.outreach-visual-placeholder,
.event-media-placeholder{
  display:grid;
  place-content:center;
  gap:4px;
  padding:30px;
  text-align:center;
  background:
    linear-gradient(rgba(91,102,81,0.08), rgba(91,102,81,0.08)),
    #eeece4;
  color:var(--accent);
}

.outreach-visual-placeholder span,
.event-media-placeholder span{
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-size:1.45rem;
  font-weight:700;
  line-height:1.25;
}

.outreach-visual-placeholder small{
  color:var(--muted);
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.outreach-content,
.event-content{
  padding:26px 28px;
}

.outreach-content h3,
.event-content h3{
  margin:6px 0 12px;
  font-size:1.32rem;
  line-height:1.35;
}

.outreach-content p,
.event-content p{
  margin:8px 0 0;
  color:var(--muted);
}

.outreach-talks-heading{
  padding:24px 28px 18px;
  border-bottom:1px solid var(--line);
}

.outreach-talks-heading h3{
  margin:5px 0 0;
}

.talks-showcase{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.talk-group{
  padding:24px 26px 28px;
}

.talk-group + .talk-group{
  border-left:1px solid var(--line);
}

.talk-group h4{
  margin:0 0 16px;
  color:var(--accent);
  font-family:Inter, ui-sans-serif, system-ui, sans-serif;
  font-size:0.82rem;
  letter-spacing:0.08em;
  line-height:1.45;
  text-transform:uppercase;
}

.talk-entry-list{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}

.talk-entry-list li{
  padding:13px 0;
  border-top:1px solid var(--line);
  line-height:1.5;
}

.talk-entry-list li:first-child{
  padding-top:0;
  border-top:0;
}

.talk-entry-list em{
  display:block;
  color:var(--fg);
  font-family:"Source Serif 4", ui-serif, Georgia, serif;
  font-weight:600;
}

.talk-entry-list span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:0.8rem;
}

.event-showcase-card{
  display:grid;
  grid-template-columns:minmax(280px, 0.92fr) minmax(0, 1.08fr);
}

.event-media{
  min-height:340px;
  color:var(--accent);
  border-right:1px solid var(--line);
  background:#ece9e1;
}

a.event-media:hover,
a.event-media:focus-visible{
  text-decoration:none;
  filter:brightness(0.98);
}

.event-media-grid{
  display:grid;
  grid-template-columns:minmax(120px, 0.78fr) minmax(150px, 1.22fr);
  gap:8px;
  padding:10px;
}

.event-media-grid img{
  width:100%;
  height:100%;
  min-height:320px;
  display:block;
  border-radius:6px;
  background:#e4e0d6;
}

.event-media-grid .event-poster{
  object-fit:contain;
}

.event-media-grid .event-photo{
  object-fit:cover;
}

.event-media-photo{
  display:grid;
  place-items:center;
  padding:10px;
}

.event-media-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:320px;
  max-height:520px;
  border-radius:6px;
  object-fit:contain;
  object-position:center;
  background:#e4e0d6;
}

.event-website-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0 0 8px;
  padding-bottom:2px;
  border-bottom:1px solid rgba(91,102,81,0.44);
  font-size:0.82rem;
  font-weight:700;
}

.event-website-link:hover{
  text-decoration:none;
  border-bottom-color:currentColor;
}

.project-website-link{
  margin-bottom:10px;
}

.event-poster-link{
  display:grid;
  grid-template-columns:150px auto;
  align-items:center;
  gap:16px;
  width:max-content;
  max-width:100%;
  margin:8px 0 18px;
  color:var(--accent);
}

.event-poster-link img{
  width:150px;
  height:212px;
  display:block;
  border:1px solid var(--line);
  border-radius:3px;
  object-fit:contain;
  background:#fff;
  box-shadow:0 4px 10px rgba(30,29,25,0.10);
}

.event-poster-link span{
  padding-bottom:2px;
  border-bottom:1px solid rgba(91,102,81,0.38);
  font-size:0.88rem;
  font-weight:700;
}

.event-poster-link:hover{
  text-decoration:none;
}

.event-poster-link:hover span,
.event-poster-link:focus-visible span{
  border-bottom-color:currentColor;
}

@media (max-width: 860px){
  .research-motion-gallery{
    grid-auto-columns:minmax(300px, 82%);
  }

  .outreach-showcase-card,
  .event-showcase-card{
    grid-template-columns:1fr;
  }

  .outreach-showcase-card:nth-child(even) .outreach-visual,
  .outreach-showcase-card:nth-child(even) .outreach-content{
    order:initial;
  }

  .outreach-visual,
  .outreach-visual img{
    min-height:230px;
  }

  .talks-showcase{
    grid-template-columns:1fr;
  }

  .talk-group + .talk-group{
    border-top:1px solid var(--line);
    border-left:0;
  }

  .event-media{
    min-height:300px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .event-media-grid img{
    min-height:280px;
  }

  .event-media-photo img{
    min-height:280px;
    max-height:440px;
  }
}

@media (max-width: 620px){
  .research-motion-gallery{
    grid-auto-columns:minmax(250px, 88%);
  }

  .research-motion-card{
    aspect-ratio:4 / 3;
  }

  .outreach-content,
  .event-content,
  .outreach-talks-heading,
  .talk-group{
    padding:20px;
  }

  .outreach-visual,
  .outreach-visual img{
    min-height:200px;
  }

  .event-media-grid{
    grid-template-columns:minmax(100px, 0.82fr) minmax(130px, 1.18fr);
  }

  .event-media-grid img{
    min-height:220px;
  }

  .event-media-photo img{
    min-height:220px;
    max-height:360px;
  }

  .event-poster-link{
    grid-template-columns:110px minmax(0, 1fr);
    gap:13px;
  }

  .event-poster-link img{
    width:110px;
    height:156px;
  }

}

/* British Council report: text-led editorial balance with a contained cover. */
.outreach-showcase-card.outreach-showcase-card--report{
  grid-template-columns:minmax(0, 1.35fr) minmax(220px, 0.65fr);
}

.outreach-showcase-card--report .outreach-visual{
  display:grid;
  place-items:center;
  min-height:340px;
  padding:22px;
}

.outreach-showcase-card--report .outreach-visual img{
  width:min(100%, 240px);
  height:auto;
  min-height:0;
  max-height:330px;
  padding:0;
  object-fit:contain;
}

@media (max-width: 860px){
  .outreach-showcase-card.outreach-showcase-card--report{
    grid-template-columns:1fr;
  }

  .outreach-showcase-card.outreach-showcase-card--report .outreach-content{
    order:1;
  }

  .outreach-showcase-card.outreach-showcase-card--report .outreach-visual{
    order:2;
    min-height:0;
    padding:20px;
  }

  .outreach-showcase-card--report .outreach-visual img{
    width:min(100%, 220px);
    max-height:300px;
  }
}
