/* Shared TVP Lab presentation. Existing content remains in its HTML pages. */
/* Reference palette: powder blue, espresso and warm ivory. */
:root{
  --paper:#F8F6EB;
  --ink:#402F20;
  --surface:#F0EDE2;
  --blue:#C1CEE6;
  --muted:rgba(64,47,32,.78);
  --line:rgba(64,47,32,.2);
  --accent:var(--ink);
  --wash:var(--paper);
  --page:1200px;
}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body,body.inner-page{background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.7}
a{color:inherit}a:hover{color:var(--accent)}button,input,textarea{font:inherit}img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.skip-link{position:fixed;top:10px;left:20px;z-index:1000;background:var(--paper);padding:12px 20px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}
.site-header{padding:12px max(28px,calc((100vw - var(--page))/2));height:100px;background:var(--surface);border-bottom:1px solid var(--line);gap:32px;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between}
.site-logo{flex-shrink:0}.site-logo img{height:72px;width:auto}
.site-header .site-nav{display:flex;align-items:center;gap:25px;flex-wrap:nowrap}
.site-header .site-nav a{font-size:14px;line-height:1.4;font-weight:600;margin:0;padding:10px 0;letter-spacing:0;white-space:nowrap;border-bottom:2px solid transparent;color:var(--ink)}
.site-header .site-nav a:hover,.site-header .site-nav a.active{color:var(--accent);border-bottom-color:var(--ink)}
.menu-toggle{display:none;border:1px solid var(--line);border-radius:3px;background:var(--paper);padding:9px 13px;color:var(--ink)}
.content-width{max-width:var(--page);margin:auto;padding-left:32px;padding-right:32px}
h1,h2,h3{color:var(--ink)}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);line-height:1.5;margin-bottom:20px}
.lab-hero{position:relative;height:min(660px,65vw);min-height:490px;max-width:1800px;margin:auto;isolation:isolate;background:var(--ink);overflow:hidden}
.lab-hero-image{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.lab-hero:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(64,47,32,.94),rgba(64,47,32,0) 65%)}
.hero-caption{position:absolute;bottom:44px;left:max(32px,calc((100vw - 1136px)/2));right:32px;z-index:1;color:var(--paper)}
.hero-caption h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(40px,4.8vw,68px);line-height:1.07;letter-spacing:-.035em;color:var(--paper);margin:0 0 16px}
.hero-caption .eyebrow{color:var(--paper);margin-bottom:15px;font-size:12px;letter-spacing:.12em}.hero-caption>p:last-child{font-size:16px;color:var(--paper);letter-spacing:.025em}
.home-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:88px;padding-bottom:88px;align-items:start}
.home-intro h2,.section-top h2{font:400 clamp(30px,3.2vw,43px)/1.18 Georgia,serif;letter-spacing:-.025em;margin:0 0 28px}
.home-intro>div:last-child{padding-top:35px}.home-intro>div:last-child p{font-size:17px;line-height:1.85;color:var(--muted);margin-bottom:18px}
.text-link{display:inline-flex;gap:24px;align-items:center;font-size:14px;font-weight:700;color:var(--accent);border-bottom:2px solid var(--ink);padding-bottom:7px}.text-link:hover{text-decoration:none}
.research-overview{background:var(--wash);padding:78px 0 86px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:42px}.section-top h2{margin-bottom:0}.section-top .eyebrow{margin-bottom:14px}
.research-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.research-tile{display:flex;flex-direction:column;align-items:start;padding:26px 25px 30px;border-right:1px solid var(--line);color:var(--ink);transition:background .2s}.research-tile:first-child{padding-left:0}.research-tile:last-child{border:0;padding-right:0}.research-tile:hover{background:var(--surface);color:var(--ink)}
.tile-number{font-size:13px;color:var(--accent);font-weight:600;margin-bottom:30px}.research-tile h3{font:400 26px/1.2 Georgia,serif;margin-bottom:17px;letter-spacing:-.02em}.research-tile p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:28px}.tile-link{margin-top:auto;color:var(--accent);font-size:14px;font-weight:600;display:flex;justify-content:space-between;gap:20px;width:100%}
.home-news{padding-top:80px;padding-bottom:90px;background:var(--paper);max-width:none;padding-left:max(32px,calc((100vw - 1136px)/2));padding-right:max(32px,calc((100vw - 1136px)/2))}.home-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.home-news-item{border-top:3px solid var(--line);padding-top:24px;display:flex;flex-direction:column;align-items:start}.home-news-item .eyebrow{display:block;color:var(--ink);font-size:12px;margin-bottom:16px}.home-news-item h3{font:400 25px/1.35 Georgia,serif;margin-bottom:26px}.home-news-item:hover h3{color:var(--accent)}
.site-footer{background:var(--surface);color:var(--muted);padding:0;border-top:1px solid var(--line);text-align:left}.footer-content{max-width:var(--page);margin:auto;padding:48px 32px;display:flex;justify-content:space-between;gap:24px}.footer-content strong{font:400 24px/1.4 Georgia,serif;color:var(--ink)}.site-footer .footer-content p{font-size:14px;margin-top:12px;line-height:1.8;color:var(--muted)}.footer-links{display:flex;gap:24px;align-items:start;font-size:14px}.site-footer a{color:var(--accent)}.institution-strip{background:var(--paper);padding:25px max(24px,calc((100vw - 1200px)/2))}.institution-strip img{width:100%;height:auto}.site-footer .copyright{font-size:12px;text-align:center;padding:20px;margin:0;color:var(--muted)}
/* Consistent inner-page hierarchy and readable source content. */
body.inner-page .page-masthead{max-width:none;background:var(--wash);padding:64px max(32px,calc((100vw - 1136px)/2)) 58px;margin:0;text-align:left;border-bottom:1px solid var(--line)}
body.inner-page .page-masthead h1{font:400 clamp(36px,4.5vw,58px)/1.14 Georgia,serif;letter-spacing:-.035em;margin:0 0 24px;color:var(--ink)}
body.inner-page .page-masthead .page-lead{max-width:800px;margin:0;color:var(--muted);font-size:17px;line-height:1.85}
body.inner-page .inner-wrap{max-width:var(--page);padding:60px 32px 80px;margin:auto}
.inner-wrap p,.zw-person-bio,.zw-person-role,.pub-authors,.pub-source,.research-topic-body p,.why-join-card p,.vacancy-entry p{font-size:16px;line-height:1.8}
.inner-wrap h2,.inner-wrap h3{color:var(--ink)}.inner-wrap a.zw-link,.zw-person-link,.pi-link-btn{color:var(--accent)}
.zw-section-label,.zw-team-section-label,.research-topic-meta .topic-tag,.pub-year-heading{color:var(--accent);font-size:14px;font-weight:700}
.research-topic{scroll-margin-top:130px}.topic-area{font-size:14px!important}.research-topic-body h2{font-size:30px;line-height:1.25}.about-pi-block{display:block}.zw-person{padding:26px 0;gap:0}.zw-person-body{padding-left:0}.zw-person-name{font-size:25px}.zw-person-bio{max-width:800px}.zw-person-role{color:var(--accent);font-size:14px}.zw-person--pi{background:var(--wash);padding:30px;border-radius:0}.zw-person--pi .zw-person-body{padding:0}
.btn-apply,.btn-blue{background:var(--ink);color:var(--paper)!important;border:0;border-radius:2px;font-size:15px;min-height:44px;padding:12px 20px}.btn-apply:hover,.btn-blue:hover{background:var(--ink)}.pi-link-btn{border-color:var(--line);font-size:14px}.vacancy-tag{background:var(--wash);font-size:13px;color:var(--accent)}.why-join-card{background:var(--wash);border-color:var(--line)}
.pub-academic-entry h3{font-size:21px;line-height:1.45}.pub-academic-entry p{font-size:15px!important}.pub-year-heading{font-size:28px}.news-entry h3{font-size:26px;line-height:1.35}.news-entry p{font-size:16px}.news-month{font-size:14px;color:var(--accent)}
.contact-explainer{margin:0 0 24px;color:var(--muted)}.contact-explainer a{text-decoration:underline;color:var(--accent)}.form-group input,.form-group textarea{font-size:16px;border-color:var(--line);background:var(--paper);color:var(--ink);width:100%;padding:12px;border-radius:2px}.form-group label{font-size:14px}.contact-info-block p,.contact-info-block address{font-size:16px}.people-table{width:100%;table-layout:auto}.people-table td{overflow-wrap:anywhere;font-size:15px!important}#contact-status{font-size:14px;margin-top:18px}
@media(min-width:1800px){.hero-caption{left:332px}}
@media(max-width:1050px){.site-header{gap:18px;padding:10px 24px;height:86px}.site-logo img{height:62px}.site-header .site-nav{gap:17px}.site-header .site-nav a{font-size:13px}.research-tiles{grid-template-columns:repeat(2,1fr)}.research-tile:nth-child(2){border-right:0}.research-tile:nth-child(3),.research-tile:nth-child(4){border-top:1px solid var(--line)}.research-tile:nth-child(3){padding-left:0}.research-tile:nth-child(4){padding-left:25px}.home-intro{gap:40px}}
@media(max-width:820px){html{scroll-padding-top:90px}.site-header{height:82px}.site-logo img{height:58px}.menu-toggle{display:block}.site-header .site-nav{display:none;position:absolute;top:81px;left:0;right:0;padding:16px 24px 24px;background:var(--surface);box-shadow:0 16px 18px rgba(64,47,32,.12);border-bottom:1px solid var(--line);max-height:calc(100dvh - 82px);overflow-y:auto}.site-header .site-nav.is-open{display:flex;flex-direction:column;gap:0;align-items:stretch}.site-header .site-nav a{font-size:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.lab-hero{height:520px;min-height:0}.hero-caption{bottom:32px;left:24px;right:24px}.hero-caption h1{font-size:47px}.hero-caption .eyebrow{max-width:300px;font-size:11px;line-height:1.7}.lab-hero-image{object-position:50% 40%}.content-width{padding-left:24px;padding-right:24px}.home-intro{grid-template-columns:1fr;gap:10px;padding-top:52px;padding-bottom:52px}.home-intro>div:last-child{padding-top:20px}.home-intro h2{margin-bottom:20px}.research-overview{padding:54px 0}.section-top{align-items:start;gap:22px;flex-direction:column;margin-bottom:30px}.home-news{padding:54px 24px}.home-news-grid{grid-template-columns:1fr;gap:30px}.home-news-item h3{margin-bottom:20px;font-size:26px}.home-news-item .tile-link{justify-content:start}.footer-content{padding:36px 24px;flex-direction:column;gap:28px}.footer-links{flex-wrap:wrap;gap:20px}.institution-strip{padding:20px 16px}
body.inner-page .page-masthead{padding:44px 24px}.page-masthead .page-lead{font-size:16px!important}body.inner-page .inner-wrap{padding:40px 24px 56px}.research-topic{grid-template-columns:1fr!important;gap:18px}.contact-layout-zw{grid-template-columns:1fr!important;gap:44px}.news-entry{grid-template-columns:1fr!important;gap:12px}.news-date-col{padding:0}.zw-person{display:block}.zw-person-name{font-size:23px}.zw-person--pi{padding:22px}.why-join-grid{grid-template-columns:1fr!important}.people-table td:first-child{width:100px!important}.form-row-2{grid-template-columns:1fr!important;gap:18px}.vacancy-actions{flex-wrap:wrap}}
@media(max-width:480px){.lab-hero{height:auto;background:var(--ink)}.lab-hero-image{height:auto;aspect-ratio:3/2;object-fit:contain;display:block}.lab-hero:after{display:none}.hero-caption{position:relative;left:auto;bottom:auto;right:auto;padding:28px 24px 32px}.hero-caption h1{font-size:42px}.research-tiles{grid-template-columns:1fr}.research-tile,.research-tile:first-child,.research-tile:last-child,.research-tile:nth-child(3),.research-tile:nth-child(4){padding:24px 0;border:0;border-bottom:1px solid var(--line)}.research-tile:last-child{border-bottom:0}.tile-number{margin-bottom:16px}.research-tile p{margin-bottom:20px}.home-intro h2,.section-top h2{font-size:32px}.institution-strip{overflow-x:auto}.institution-strip img{min-width:600px;max-width:none}.people-table td:first-child{width:75px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.site-header,.menu-toggle,.footer-links{display:none}.lab-hero{height:400px}.page-masthead{background:var(--paper)!important}.inner-wrap{padding:0!important}}
/* Long author lists and chemical names must wrap on small screens. */
.pub-academic-entry,.pub-academic-entry h3,.pub-academic-entry p{overflow-wrap:anywhere;min-width:0}

/* Warm highlights and consistent colours across the existing inner pages. */
.home-news .text-link{border-bottom-color:var(--ink)}
.home-news .eyebrow,.home-news .tile-link{color:var(--ink)}
.home-news-item:hover h3{color:var(--ink)}
.home-intro .eyebrow{color:var(--ink)}
.hero-caption>p:last-child{color:var(--line)}
.menu-toggle{border-color:var(--line);color:var(--ink)}
.site-header .site-nav a:hover{background:transparent}
.pi-link-btn{border-color:var(--line);background:var(--surface)}
.pi-link-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.zw-person--pi{background:var(--surface);border-left:3px solid var(--line)}
.about-pi-block .pi-title-line{color:var(--ink)}
.why-join-card{background:var(--paper);border-color:var(--line)}
.vacancy-tag{background:var(--surface);color:var(--ink)}
.news-month{color:var(--ink)}

/* Larger type and bilingual navigation — September 2026. */
body,body.inner-page{font-size:1.1875rem;line-height:1.8}
.site-header{height:112px;gap:24px;padding-left:max(28px,calc((100vw - 1360px)/2));padding-right:max(28px,calc((100vw - 1360px)/2))}
.site-logo{order:0}.site-logo img{height:78px}
.site-header .site-nav{order:1;gap:22px;margin-left:auto}
.site-header .site-nav a{font-size:1.0625rem;padding:12px 0}
.language-switch{order:2;display:flex;align-items:center;gap:4px;flex-shrink:0;border:1px solid var(--line);border-radius:4px;padding:3px;background:var(--paper)}
.language-switch a{display:block;font-size:1rem;font-weight:600;line-height:1.4;padding:9px 11px;color:var(--ink);white-space:nowrap}
.language-switch a[aria-current="true"]{background:var(--ink);color:var(--paper);border-radius:2px}
.language-switch a:hover{text-decoration:none;background:var(--surface);color:var(--ink)}
.menu-toggle{order:3;font-size:1rem;min-height:46px}
.eyebrow,.hero-caption .eyebrow,.home-news-item .eyebrow{font-size:.9375rem;line-height:1.65}
.hero-caption h1{font-size:clamp(3rem,5.5vw,5rem)}
.hero-caption>p:last-child{font-size:1.25rem}
.home-intro h2,.section-top h2{font-size:clamp(2.25rem,3.6vw,3.1rem);line-height:1.23}
.home-intro>div:last-child p{font-size:1.25rem;line-height:1.85}
.research-tile h3{font-size:1.75rem;line-height:1.3}
.research-tile p{font-size:1.1875rem;line-height:1.8}
.text-link,.tile-link{font-size:1.0625rem}.tile-number{font-size:1rem}
.home-news-item h3{font-size:1.875rem;line-height:1.4}
.footer-content strong{font-size:1.875rem}.site-footer .footer-content p,.footer-links{font-size:1.0625rem}.site-footer .copyright{font-size:.9375rem}
body.inner-page .page-masthead .page-lead{font-size:1.25rem!important;line-height:1.85;max-width:900px}
.inner-wrap p,.inner-wrap p[style],.research-topic-body p,.zw-person-bio,.vacancy-entry p,.why-join-card p,.contact-info-block p,.contact-info-block address{font-size:1.1875rem!important;line-height:1.9}
.inner-wrap h2,.research-topic-body h2{font-size:2rem;line-height:1.4}
.inner-wrap h3,.news-entry h3,.pub-academic-entry h3{font-size:1.625rem;line-height:1.5}
.zw-person-name{font-size:1.875rem;line-height:1.45}
.zw-person-role,.zw-section-label,.zw-team-section-label,.research-topic-meta .topic-tag,.topic-area,.news-month{font-size:1.0625rem!important}
.pub-academic-entry p,.people-table td{font-size:1.0625rem!important;line-height:1.85}
.inner-wrap .pub-year-heading{font-size:2rem!important}
.form-group label,.form-group input,.form-group textarea,.btn-apply,.btn-blue,.pi-link-btn{font-size:1.125rem}
.vacancy-tag{font-size:1rem}.zw-person-link{font-size:1.0625rem}
.bibliography-note{padding:18px 22px;margin-bottom:32px;background:var(--surface);color:var(--ink)}
html[lang="zh-CN"] body{font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3,html[lang="zh-CN"] .zw-person-name,html[lang="zh-CN"] .footer-content strong{font-family:"Songti SC","Noto Serif CJK SC","SimSun",serif;letter-spacing:.015em;line-height:1.45}
html[lang="zh-CN"] .eyebrow{letter-spacing:.1em}
html[lang="zh-CN"] .hero-caption h1{line-height:1.2;letter-spacing:.035em}
html[lang="zh-CN"] .hero-caption .eyebrow{margin-bottom:18px}
html[lang="zh-CN"] .research-tile h3{font-size:1.75rem}
html[lang="zh-CN"] .home-intro h2,html[lang="zh-CN"] .section-top h2{font-size:clamp(2.25rem,3.1vw,2.75rem)}
html{scroll-padding-top:130px}
@media(max-width:1200px){
 .site-header{height:98px;padding:10px 24px;gap:18px}.site-logo img{height:70px}
 .language-switch{margin-left:auto}.menu-toggle{display:block}
 .site-header .site-nav{display:none;position:absolute;top:97px;left:0;right:0;padding:16px 24px 24px;margin:0;background:var(--surface);box-shadow:0 16px 18px rgba(64,47,32,.12);max-height:calc(100dvh - 98px);overflow-y:auto;border-bottom:1px solid var(--line)}
 .site-header .site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .site-header .site-nav a{font-size:1.125rem;padding:15px 0;border-bottom:1px solid var(--line)}
 .research-tiles{grid-template-columns:repeat(2,1fr)}
 .research-tile:nth-child(2){border-right:0}.research-tile:nth-child(3),.research-tile:nth-child(4){border-top:1px solid var(--line)}
 .research-tile:nth-child(3){padding-left:0}.research-tile:nth-child(4){padding-left:25px}
}
@media(max-width:820px){
 .hero-caption h1{font-size:3.25rem}.hero-caption .eyebrow{font-size:.875rem;max-width:100%}
 .home-intro h2,.section-top h2{font-size:2.25rem}
 .home-news-item h3{font-size:1.75rem}
 body.inner-page .page-masthead h1{font-size:2.75rem}
 .people-table td:first-child{width:100px!important}
}
@media(max-width:600px){
 .site-header{height:90px;padding:10px 14px;gap:10px}.site-logo img{height:auto;width:100px}
 .language-switch{gap:2px;padding:2px}.language-switch a{font-size:1rem;padding:10px 9px}
 .menu-toggle{padding:8px 10px}.site-header .site-nav{top:89px;max-height:calc(100dvh - 90px)}
 .research-tiles{grid-template-columns:1fr}
 .research-tile,.research-tile:first-child,.research-tile:last-child,.research-tile:nth-child(3),.research-tile:nth-child(4){padding:26px 0;border:0;border-bottom:1px solid var(--line)}.research-tile:last-child{border-bottom:0}
 .hero-caption h1{font-size:2.875rem}.hero-caption>p:last-child{font-size:1.125rem}
 .hero-caption .eyebrow{font-size:.875rem}
 html[lang="zh-CN"] .hero-caption h1{font-size:2.5rem}
 .inner-wrap h2,.research-topic-body h2{font-size:1.75rem}
 .inner-wrap h3,.news-entry h3,.pub-academic-entry h3{font-size:1.5rem}
 .zw-person-name{font-size:1.625rem}
 html{scroll-padding-top:110px}
}
@media(max-width:360px){.site-header{gap:7px;padding:10px}.site-logo img{width:80px}.menu-toggle{font-size:.9375rem;padding:8px}.language-switch a{padding:10px 8px}}

/* Native swipe galleries, with progressively enhanced arrow controls. */
.research-showcase{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:stretch}
.research-photo{margin:0;min-width:0;position:relative;background:var(--ink);overflow:hidden}
.research-photo img{display:block;width:100%;height:100%;min-height:440px;object-fit:cover}
.research-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:42px 24px 20px;background:linear-gradient(transparent,var(--ink));color:var(--paper);font-size:1rem}
.research-carousel{min-width:0;display:flex;flex-direction:column}
.carousel-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:5px 4px 16px;scroll-padding-left:4px}
.carousel-track:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.research-tiles.carousel-track{border:0;flex:1;gap:24px}
.research-tiles.carousel-track .research-tile{flex:0 0 100%;min-width:0;padding:22px 24px 26px;border:0;border-top:2px solid var(--ink);scroll-snap-align:start;box-sizing:border-box;background:rgba(248,246,235,.5);text-decoration:none}
.research-tiles.carousel-track .research-tile:hover{background:var(--paper)}
.research-tiles .tile-number{margin-bottom:20px}.research-tiles .tile-link{padding-top:18px}
.carousel-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-top:16px}
.carousel-controls[hidden]{display:none}
.carousel-hint{font-size:.9375rem;color:var(--muted);margin:0}
.carousel-buttons{display:flex;align-items:center;gap:14px;flex-shrink:0}
.carousel-buttons button,.lightbox button{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--ink);border-radius:50%;background:transparent;color:var(--ink);font-size:1.5rem;cursor:pointer;line-height:1}
.carousel-buttons button:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.carousel-buttons button:disabled{opacity:.3;cursor:default}
.carousel-count{font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lab-gallery{padding-top:84px;padding-bottom:84px}
.gallery-intro{max-width:340px;color:var(--muted);font-size:1.1875rem;margin:0}
.gallery-track{gap:26px}
.gallery-card{flex:0 0 calc((100% - 26px)/2);min-width:0;scroll-snap-align:start;background:var(--surface);text-decoration:none}
.gallery-card:nth-child(2){background:var(--paper)}.gallery-card:nth-child(3){background:var(--paper)}
.gallery-card:hover{text-decoration:none;color:var(--ink)}
.gallery-image{aspect-ratio:3/2;position:relative;overflow:hidden;background:var(--ink)}
.gallery-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s}
.gallery-card:last-child .gallery-image img{object-fit:contain}
.gallery-card:hover img{transform:scale(1.025)}
.gallery-expand{position:absolute;bottom:16px;right:16px;width:42px;height:42px;display:grid;place-items:center;background:var(--paper);border-radius:50%;color:var(--ink)}
.gallery-caption{padding:22px 26px 26px}.gallery-caption .eyebrow{display:block;margin-bottom:8px;color:var(--ink)}
.gallery-caption h3{font:400 1.875rem/1.35 Georgia,serif;margin:0 0 14px}.gallery-view{font-size:1rem;color:var(--ink);border-bottom:1px solid var(--line)}
.lightbox{border:0;padding:24px;background:var(--ink);color:var(--paper);width:min(1100px,94vw);max-width:94vw;max-height:94dvh;margin:auto;overflow:auto}
.lightbox::backdrop{background:rgba(64,47,32,.92)}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:20px}
.lightbox-top p{margin:0;color:var(--paper);font-size:1rem}
.lightbox button{border-color:rgba(248,246,235,.5);color:var(--paper);flex-shrink:0}.lightbox button:hover{background:rgba(248,246,235,.12)}
.lightbox figure{margin:0}.lightbox img{display:block;width:100%;height:min(64dvh,720px);object-fit:contain}
.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}
.lightbox figcaption{color:var(--paper);font-size:1.1875rem}.lightbox .carousel-count{color:var(--paper)}
html.lightbox-open{overflow:hidden}
@media(max-width:1000px){.research-showcase{gap:28px}.carousel-controls{flex-wrap:wrap}.carousel-hint{flex:1 1 160px}}
@media(max-width:820px){.research-showcase{grid-template-columns:1fr;gap:26px}.research-photo img{min-height:0;height:auto;aspect-ratio:16/9}.lab-gallery{padding-top:54px;padding-bottom:54px}.gallery-intro{max-width:100%}.gallery-track{gap:18px}.gallery-card{flex-basis:85%}.gallery-caption{padding:20px}.gallery-caption h3{font-size:1.625rem}.lightbox{padding:16px}.lightbox img{height:55dvh}.lightbox-bottom{flex-wrap:wrap}}
@media print{.carousel-track{display:grid;overflow:visible;grid-template-columns:1fr 1fr}.carousel-controls{display:none}.gallery-card{break-inside:avoid}}


/* TVPlab identity and consistent inner-page presentation. */
.site-header{background:var(--paper)}
.site-logo:hover{text-decoration:none}
.wordmark{font:400 2.75rem/1 Georgia,"Times New Roman",serif;letter-spacing:-.055em;color:var(--ink);white-space:nowrap}
.wordmark>span{font-size:.8em;letter-spacing:-.045em}
.research-overview{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.research-tiles.carousel-track .research-tile{background:var(--surface);border-top:1px solid var(--ink)}
.research-tiles.carousel-track .research-tile:hover{background:var(--paper)}
.gallery-card,.gallery-card:nth-child(2),.gallery-card:nth-child(3){background:var(--surface)}
.home-news{background:var(--paper);border-top:1px solid var(--line)}
.home-news-item{border-top:1px solid var(--ink)}
.site-footer{background:var(--surface)}
.institution-strip{background:var(--paper)}
.institution-strip img{mix-blend-mode:multiply}
.language-switch,.menu-toggle,.form-group input,.form-group textarea{background:var(--paper)}
.gallery-expand{background:var(--paper)}
.btn-apply,.btn-blue{background:var(--ink);color:var(--paper)!important}
.inner-wrap :is(p,address,li,td){color:var(--muted)}
.inner-wrap :is(h1,h2,h3,h4,a,label){color:var(--ink)}
.inner-wrap :is(.zw-person-name,.ci-label,.ci-value){color:var(--ink)}
.inner-wrap :is(.research-topic,.news-entry,.vacancy-entry,.zw-team-section,.zw-person,.pub-academic-entry){border-color:var(--line)}
.home-intro .eyebrow{text-transform:none}
@media(max-width:360px){.wordmark{font-size:1.95rem}}

/* Restore the photographic hero; colour blocking follows Kaida's reference. */
.site-header{background:var(--blue)}
.lab-hero:after{background:linear-gradient(0deg,rgba(64,47,32,.94),rgba(64,47,32,.2) 42%,transparent 72%)}
.hero-caption{bottom:28px}
.hero-caption h1{font-size:clamp(2.75rem,4.4vw,4rem);line-height:1.1;margin-bottom:14px}
.hero-caption .eyebrow{font-size:.875rem;margin-bottom:12px}
.hero-caption>p:last-child{color:var(--paper)}
.research-overview,body.inner-page .page-masthead{background:var(--blue)}
.research-photo figcaption{background:linear-gradient(transparent,var(--ink))}
.research-tiles.carousel-track .research-tile{background:var(--paper)}
.research-tiles.carousel-track .research-tile:hover{background:var(--surface)}
.home-news{background:var(--ink);color:var(--paper)}
.home-news :is(h2,h3,a,.eyebrow,.tile-link){color:var(--paper)}
.home-news-item,.home-news .text-link{border-color:rgba(248,246,235,.45)}
.home-news-item:hover h3,.home-news a:hover{color:var(--blue)}
.site-footer{background:var(--ink);color:var(--paper)}
.site-footer :is(.footer-content strong,.footer-content p,.copyright,a){color:var(--paper)}
.site-footer a:hover{color:var(--blue)}
.gallery-card,.gallery-card:nth-child(2),.gallery-card:nth-child(3){background:var(--surface)}
@media(max-width:1200px){.wordmark{font-size:2.5rem}.site-header .site-nav{background:var(--blue)}}
@media(max-width:600px){.wordmark{font-size:2.2rem}.hero-caption h1{font-size:2.875rem}}
@media(max-width:480px){.hero-caption{bottom:auto}.hero-caption h1{font-size:2.75rem}}
@media(max-width:360px){.wordmark{font-size:1.95rem}}
