:root { --paper:#f5f4f0; --ink:#121716; --muted:#5f6662; --line:#d5d7d1; --green:#174f47; --mint:#b8d9cf; --white:#fff; --font-serif:Georgia,"Iowan Old Style","Times New Roman",serif; --page:1280px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
#profile,#research,#gallery,#publications,#contact { scroll-margin-top:70px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-serif); }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:sticky; top:0; z-index:30; height:56px; border-bottom:1px solid rgba(18,23,22,.1); background:rgba(245,244,240,.94); backdrop-filter:blur(18px); }
.header-inner { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; max-width:var(--page); height:100%; margin:0 auto; padding:0 28px; }
.wordmark { margin:0; font-size:.95rem; font-weight:700; letter-spacing:-.01em; }
.wordmark a { color:var(--ink); white-space:nowrap; }
.wordmark a:hover { color:var(--green); }
nav { display:flex; justify-content:center; gap:32px; font-size:.9rem; }
nav a,.header-link,.header-search { color:#3f4743; }
nav a:hover,.header-link:hover,.header-search:hover { color:var(--green); }
.header-tools { display:flex; align-items:center; gap:18px; }
.header-search { display:grid; place-items:center; width:28px; height:28px; }
.hero-banner { background:#10201e; line-height:0; }
.hero-art { display:block; width:100%; height:auto; aspect-ratio:4/1; min-height:220px; object-fit:cover; object-position:center; }
.profile-section { position:relative; z-index:2; }
.profile-container { max-width:var(--page); margin:0 auto; padding:0 28px 22px; }
.profile-avatar-wrap { width:228px; height:228px; margin-top:-118px; margin-bottom:14px; overflow:hidden; border:4px solid var(--paper); border-radius:6px; background:#fff; box-shadow:0 4px 16px rgba(18,23,22,.12); }
.profile-avatar { display:block; width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.profile-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,1fr); column-gap:clamp(24px,3.5vw,44px); row-gap:0; align-items:start; }
.profile-role { margin:0 0 8px; color:var(--green); font-size:1.12rem; font-weight:700; }
.profile-affiliation p { margin:0; color:#3a413d; font-size:.92rem; line-height:1.45; }
.profile-secondary { margin-top:-56px; padding:6px 0 2px 32px; border-left:1px solid #cfc9c0; }
.hero-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.hero-stats div { display:flex; flex-direction:column; gap:7px; padding:2px 22px; }
.hero-stats div:first-child { padding-left:0; }
.hero-stats div:last-child { padding-right:0; }
.hero-stats div+div { border-left:1px solid #cfc9c0; }
.hero-stats strong { font-size:clamp(2rem,2.5vw,2.4rem); font-weight:700; line-height:1; font-variant-numeric:tabular-nums; }
.hero-stats .stat-label { color:#4a524e; font-size:.8rem; line-height:1.35; }
.profile-bio { grid-column:1/-1; margin:18px 0 0; padding:0 0 0 16px; border-left:3px solid var(--green); color:#3a413d; font-size:1.02rem; line-height:1.65; }
.profile-ctas { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.btn-primary,.btn-outline { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 22px; border:1px solid var(--green); border-radius:4px; font-size:.88rem; font-weight:650; }
.btn-primary { background:var(--green); color:#fff; }
.btn-primary:hover { background:#123f39; }
.btn-outline { color:var(--green); }
.btn-outline:hover { background:var(--green); color:#fff; }
.overline,.section-label { margin:0; color:var(--green); font-size:.72rem; font-weight:750; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
.archive-section { padding:clamp(78px,10vw,150px) clamp(22px,5vw,78px); }
.profile-heading h2 { margin:0; max-width:760px; font-family:var(--font-serif); font-size:clamp(2rem,3.6vw,3.8rem); font-weight:520; line-height:1.08; }
.archive-heading h2,.impact-heading h2,.research-header h2 { margin:0; font-family:var(--font-serif); font-size:clamp(2.5rem,5vw,5.3rem); font-weight:520; line-height:1.04; }
.research-section { position:relative; isolation:isolate; overflow:hidden; padding:clamp(48px,6vw,80px) clamp(22px,5vw,78px); background:#12332e; color:#fff; }
.research-section::before { content:""; position:absolute; inset:0; z-index:-2; background:url("research-uptake.jpg") center / cover no-repeat; }
.research-section::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(10,28,24,.78) 0%,rgba(10,28,24,.48) 52%,rgba(10,28,24,.28) 100%); }
.section-label.light { color:var(--mint); }
.research-header { display:grid; grid-template-columns:1fr .6fr; gap:8vw; align-items:end; margin:18px 0 40px; }
.research-header p { max-width:440px; margin:0; color:#d4e2de; line-height:1.6; }
.theme-list { border-top:1px solid rgba(255,255,255,.25); }
.theme-list article { display:grid; grid-template-columns:.8fr 1fr; gap:30px; align-items:start; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.25); }
.theme-list h3 { margin:0; font-family:var(--font-serif),serif; font-size:clamp(1.4rem,2.3vw,2.3rem); font-weight:520; }
.theme-list p { max-width:600px; margin:0; color:#d4e2de; line-height:1.6; }
.gallery-section { padding:clamp(36px,4.5vw,64px) 0 0; background:var(--paper); color:var(--ink); }
.gallery-stage { display:grid; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto auto; width:100%; height:calc(100svh - 56px); min-height:560px; background:var(--paper); }
.gallery-stage>img { display:block; grid-area:1/1; width:100%; height:100%; min-height:0; object-fit:contain; background:var(--paper); animation:gallery-fade .5s ease; }
.gallery-overlay { grid-area:2/1; display:grid; gap:4px; max-width:min(920px,100%); padding:16px 28px 8px; }
.gallery-overlay>span { color:var(--green); font-size:.68rem; font-weight:750; text-transform:uppercase; }
.gallery-overlay a { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-family:var(--font-serif),serif; font-size:clamp(.95rem,1.5vw,1.25rem); font-weight:520; line-height:1.35; }
.gallery-overlay a:hover { color:var(--green); text-decoration:underline; text-underline-offset:4px; }
@keyframes gallery-fade { from { opacity:.2; } to { opacity:1; } }
.gallery-thumbnails { grid-area:3/1; display:flex; gap:6px; overflow-x:auto; padding:10px 28px 22px; background:var(--paper); scrollbar-width:thin; }
.gallery-thumbnails button { flex:0 0 78px; height:48px; padding:0; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; opacity:.42; cursor:pointer; }
.gallery-thumbnails button.active { opacity:1; border-bottom-color:var(--green); }
.gallery-thumbnails button:hover { opacity:1; }
.gallery-thumbnails img { display:block; width:100%; height:100%; object-fit:cover; background:var(--paper); }
.impact-section { position:relative; isolation:isolate; overflow:hidden; padding:clamp(36px,3.5vw,52px) clamp(22px,5vw,78px) clamp(78px,8vw,120px); background:#2a1214; color:#fff; }
.impact-section::before { content:""; position:absolute; inset:0; z-index:-2; background:url("journals-bg.jpg") top center / 100% auto no-repeat; }
.impact-section::after { content:""; position:absolute; inset:0; z-index:-1; background:rgba(20,6,8,.08); }
.impact-heading { margin-bottom:36px; }
.impact-heading h2 { margin:16px 0 0; max-width:none; font-size:clamp(2rem,3.35vw,3.5rem); white-space:nowrap; text-shadow:0 2px 16px rgba(20,4,6,.45); }
.impact-ranking { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; background:transparent; }
.impact-ranking li { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:16px; align-items:center; min-height:106px; padding:12px 16px; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:rgba(18,8,10,.58); backdrop-filter:blur(16px); }
.impact-ranking li.featured { grid-template-columns:76px minmax(0,1fr) auto; min-height:138px; background:rgba(28,10,12,.7); }
.impact-ranking img { display:block; width:58px; height:78px; object-fit:cover; border-radius:6px; background:#fff; }
.impact-ranking .featured img { width:76px; height:102px; }
.impact-ranking strong { font-size:.9rem; font-weight:560; line-height:1.28; }
.impact-ranking b { align-self:start; color:#f3cfc8; font-family:var(--font-serif),serif; font-size:1.45rem; font-weight:520; }
.impact-ranking .featured b { font-size:2rem; }
.archive-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:48px; }
.archive-heading h2 { margin-top:20px; }
.archive-heading>p { margin:0 0 8px; color:var(--muted); }
.archive-tools { display:grid; grid-template-columns:1fr 220px auto; gap:16px; align-items:end; padding:22px; background:#e8e9e4; }
.archive-tools label { display:grid; gap:8px; }
.archive-tools label span { color:var(--muted); font-size:.7rem; text-transform:uppercase; }
.archive-tools input,.archive-tools select { width:100%; height:44px; border:0; border-bottom:1px solid #929a94; border-radius:0; outline:0; background:transparent; color:var(--ink); }
.archive-tools input:focus,.archive-tools select:focus { border-color:var(--green); }
.result-count { padding-bottom:14px; color:var(--muted); font-size:.8rem; white-space:nowrap; }
.publication-list { border-top:1px solid var(--ink); }
.publication-row { display:grid; grid-template-columns:150px 42px minmax(0,1fr); gap:22px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); }
.record-cover { display:block; width:150px; height:96px; overflow:hidden; background:#dde1db; }
.record-cover img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.record-cover:hover img { transform:scale(1.035); }
.record-main { min-width:0; }
.record-number { padding-top:4px; color:#959c97; font-size:.7rem; }
.record-main h3 { margin:0 0 10px; max-width:1050px; font-family:var(--font-serif),serif; font-size:clamp(1.05rem,1.7vw,1.5rem); font-weight:560; line-height:1.3; }
.record-main h3 a:hover { color:var(--green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.record-main>p { overflow:hidden; margin:0 0 11px; color:var(--muted); font-size:.78rem; line-height:1.5; white-space:nowrap; text-overflow:ellipsis; }
.record-main>div { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--green); font-size:.76rem; font-weight:650; }
.publication-row>a { font-size:1.15rem; }
.empty-state { padding:40px 0; color:var(--muted); }
.load-more { width:100%; height:58px; margin-top:30px; border:1px solid var(--ink); border-radius:0; background:transparent; cursor:pointer; font-weight:650; }
.load-more:hover { background:var(--ink); color:#fff; }
.load-more span { color:var(--muted); font-weight:400; }
footer { position:relative; isolation:isolate; overflow:hidden; padding:clamp(40px,5vw,68px) clamp(22px,5vw,78px) 24px; background:#102820; color:#fff; }
footer::before { content:""; position:absolute; inset:0; z-index:-2; background:url("footer-np.jpg") center / cover no-repeat; }
footer::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,22,18,.5) 0%,rgba(8,22,18,.18) 52%,rgba(8,22,18,.28) 100%); }
.footer-top { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:22px; }
.footer-copy { max-width:34rem; }
.footer-copy h2 { margin:8px 0 8px; font-family:var(--font-serif),serif; font-size:clamp(2rem,3.6vw,3.1rem); font-weight:520; line-height:1.08; text-shadow:0 2px 16px rgba(8,20,16,.45); }
.footer-copy p:last-child { margin:0; color:#e8f1ed; font-size:.98rem; line-height:1.5; text-shadow:0 1px 10px rgba(8,20,16,.4); }
.footer-email { display:inline-flex; align-items:center; flex-shrink:0; gap:10px; min-height:48px; padding:0 18px 0 12px; border-radius:14px; background:var(--paper); color:var(--ink); font-size:.9rem; font-weight:600; box-shadow:0 10px 28px rgba(8,20,16,.22); }
.footer-email:hover { background:#fff; }
.footer-email img { width:22px; height:22px; flex-shrink:0; object-fit:contain; }
.footer-links { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.footer-links a { display:flex; align-items:center; gap:8px; min-width:0; min-height:48px; padding:10px 12px; border-radius:14px; background:var(--paper); color:var(--ink); font-size:.8rem; font-weight:600; box-shadow:0 8px 20px rgba(8,20,16,.16); }
.footer-links a:hover { background:#fff; color:var(--green); }
.footer-links img { width:20px; height:20px; flex-shrink:0; object-fit:contain; border-radius:4px; }
.footer-links span { overflow:hidden; min-width:0; white-space:nowrap; text-overflow:ellipsis; }
.copyright { margin:18px 0 0; color:#d7ebe4; font-size:.72rem; text-shadow:0 1px 8px rgba(8,20,16,.5); }
@media (max-width:900px) {
  .header-inner { grid-template-columns:auto 1fr; padding:0 20px; }
  .header-tools { display:none; }
  nav { justify-content:flex-end; gap:16px; }
  .profile-container { padding:0 20px 18px; }
  .profile-card { grid-template-columns:1fr; }
  .profile-secondary { margin-top:18px; padding:16px 0 0; border-left:0; border-top:1px solid #cfc9c0; }
  .profile-bio { margin-top:16px; }
  .hero-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gallery-stage { height:auto; min-height:0; }
  .gallery-stage>img { height:auto; max-height:72svh; }
  .gallery-overlay { padding:14px 20px 6px; }
  .gallery-thumbnails { padding:8px 20px 18px; }
  .impact-ranking { grid-template-columns:repeat(2,minmax(0,1fr)); } .impact-ranking li.featured:nth-child(3) { grid-column:1/-1; }
  .impact-section::before { background-size:cover; background-position:top center; }
  .footer-top { flex-direction:column; align-items:stretch; gap:16px; }
  .footer-email { justify-content:center; width:100%; }
  .footer-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:650px) {
  .site-header { height:auto; min-height:52px; }
  .header-inner { padding:10px 16px; }
  nav { gap:12px; font-size:.74rem; }
  .hero-art { min-height:180px; }
  .profile-avatar-wrap { width:132px; height:132px; margin-top:-72px; }
  .hero-stats { grid-template-columns:1fr; gap:0; }
  .hero-stats div { display:flex; flex-direction:row; align-items:baseline; gap:16px; padding:10px 0; border-left:0; }
  .hero-stats div:first-child { padding-left:0; }
  .hero-stats div+div { padding-top:10px; border-left:0; border-top:1px solid #d8d6d0; }
  .hero-stats strong { flex:0 0 5.6rem; font-size:1.5rem; }
  .hero-stats .stat-label { font-size:.86rem; line-height:1.35; }
  .profile-ctas { flex-direction:column; align-items:stretch; }
  .research-header { grid-template-columns:1fr; }
  .theme-list article { grid-template-columns:1fr; gap:8px; } .theme-list p { grid-column:auto; }
  .gallery-stage>img { max-height:62svh; }
  .gallery-overlay { padding:12px 16px 4px; }
  .gallery-overlay a { -webkit-line-clamp:3; font-size:.92rem; }
  .gallery-thumbnails { padding:6px 16px 16px; }
  .gallery-thumbnails button { flex-basis:68px; height:42px; }
  .impact-heading h2 { font-size:2.15rem; white-space:normal; } .impact-ranking { grid-template-columns:1fr; } .impact-ranking li.featured:nth-child(3) { grid-column:auto; }
  .archive-heading { align-items:start; flex-direction:column; }
  .archive-tools { grid-template-columns:1fr; } .result-count { padding:0; }
  .publication-row { grid-template-columns:92px minmax(0,1fr); gap:12px; align-items:start; }
  .record-cover { width:92px; height:72px; grid-column:1; grid-row:1/3; }
  .record-number { display:none; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
