/* ── Reset & Tokens ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#141310;--navy-deep:#0d0c0a;--navy-mid:#1c1a15;
  --gold:#b5502f;--gold-light:#c97250;
  --white:#fdfcf9;--off:#f1efe7;--slate:#6f6a5e;--text:#141310;
  --border:#e1ddd0;--r:0px;--shadow:none;--t:.2s ease;
  --serif:'Fraunces',Georgia,serif;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
}
html{scroll-behavior:smooth}
body{font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--white);line-height:1.7}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.container{max-width:1100px;margin:0 auto;padding:0 2rem}
section{padding:5rem 0}

/* ── Type helpers ── */
.label{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.section-title{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--navy);line-height:1.2;margin-bottom:.9rem;letter-spacing:-.01em}
.section-sub{font-size:1rem;color:var(--slate);max-width:600px;margin-bottom:3rem;line-height:1.75}

/* ── Buttons ── */
.btn{display:inline-block;padding:.75rem 1.5rem;font-family:var(--mono);font-size:.76rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--navy);transition:background var(--t),color var(--t),border-color var(--t)}
.btn-gold{background:var(--navy);color:var(--white)}
.btn-gold:hover{background:var(--gold);border-color:var(--gold)}
.btn-outline-w{border:1px solid rgba(255,255,255,.55);color:var(--white)}
.btn-outline-w:hover{background:rgba(255,255,255,.12)}
.btn-outline-n{border:1px solid var(--navy);color:var(--navy);padding:.65rem 1.3rem}
.btn-outline-n:hover{background:var(--navy);color:var(--white)}

/* ── Nav ── */
#nav{position:sticky;top:0;z-index:1000;background:var(--white);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.nav-brand{display:flex;align-items:center;gap:.7rem}
.brand-mark{width:34px;height:34px;flex-shrink:0;border:1.5px solid var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--navy)}
.brand-text .name{font-family:var(--serif);font-size:1.08rem;font-weight:600;color:var(--navy);line-height:1.2;letter-spacing:-.01em}
.brand-text .sub{font-family:var(--mono);font-size:.62rem;color:var(--slate);letter-spacing:.03em;opacity:.9}
.nav-links{display:flex;gap:1.8rem}
.nav-links a{color:var(--slate);font-size:.85rem;font-weight:500;padding:.25rem 0;border-bottom:2px solid transparent;transition:color var(--t),border-color var(--t)}
.nav-links a:hover,.nav-links a.active{color:var(--navy);border-bottom-color:var(--gold)}
.nav-links .spotlight-link{color:var(--gold)!important}

/* ── Hamburger ── */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:4px;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);transition:all .3s ease}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Page Banner (inner pages) ── */
.page-banner{background:var(--off);padding:3.5rem 0 3rem;border-bottom:1px solid var(--border)}
.page-banner .label{color:var(--gold)}
.page-banner h1{font-family:var(--serif);font-size:2.3rem;font-weight:600;color:var(--navy);margin-bottom:.5rem;letter-spacing:-.01em}
.page-banner p{color:var(--slate);font-size:1.02rem;max-width:600px}

/* ── Photo banner (team page) ── */
.photo-banner{position:relative;height:320px;overflow:hidden;background:var(--navy)}
.photo-banner img{width:100%;height:100%;object-fit:cover;opacity:.4}
.photo-banner-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}
.photo-banner-text h1{font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--white)}
.photo-banner-text p{color:rgba(255,255,255,.8);font-size:1.02rem;margin-top:.6rem}

/* ── Member cards ── */
.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.4rem;margin-bottom:3rem}
.m-card{background:var(--white);padding:1.4rem 1rem;text-align:center;border:1px solid var(--border);transition:border-color var(--t)}
.m-card:hover{border-color:var(--gold)}
.m-avatar{width:68px;height:68px;border-radius:50%;margin:0 auto .9rem;overflow:hidden;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:1rem;color:var(--navy)}
.m-avatar img{width:100%;height:100%;object-fit:cover}
.m-name{font-weight:700;font-size:.9rem;color:var(--navy);line-height:1.3}
.m-role{font-size:.75rem;color:var(--slate);margin-top:.25rem}
.team-heading{font-family:var(--serif);font-size:1.3rem;color:var(--navy);font-weight:600;margin:2.5rem 0 1.2rem;padding-bottom:.45rem;border-bottom:1px solid var(--border)}

/* ── PI card ── */
.pi-card{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:start;background:var(--off);padding:2rem;border:1px solid var(--border);border-left:3px solid var(--gold);margin-bottom:3rem}
.pi-avatar{width:120px;height:120px;border-radius:50%;overflow:hidden;border:2px solid var(--gold);background:var(--white);display:flex;align-items:center;justify-content:center;font-size:3rem}
.pi-avatar img{width:100%;height:100%;object-fit:cover}
.pi-tag{font-family:var(--mono);font-size:.66rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:.35rem}
.pi-name{font-family:var(--serif);font-size:1.55rem;font-weight:600;color:var(--navy)}
.pi-title{font-size:.85rem;color:var(--slate);margin:.25rem 0 .85rem}
.pi-bio{font-size:.9rem;color:var(--text);line-height:1.8;margin-bottom:1rem}
.pi-links{display:flex;gap:1rem;flex-wrap:wrap}
.pi-links a{font-family:var(--mono);font-size:.74rem;font-weight:500;color:var(--navy);background:var(--white);border:1px solid var(--border);padding:.3rem .8rem;transition:all var(--t)}
.pi-links a:hover{border-color:var(--gold);color:var(--gold)}

/* ── Research cards ── */
.research-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
.r-card{background:var(--white);padding:2rem;border:1px solid var(--border);border-top:2px solid var(--gold)}
.r-icon{width:44px;height:44px;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:1.1rem}
.r-card h3{font-family:var(--serif);font-size:1.05rem;color:var(--navy);margin-bottom:.55rem;font-weight:600}
.r-card p{font-size:.87rem;color:var(--slate);line-height:1.75}

/* ── Publications ── */
.pub-card{display:flex;gap:1.4rem;align-items:flex-start;padding:1.2rem 0;border-bottom:1px solid var(--border);transition:opacity var(--t)}
.pub-card:hover{opacity:.75}
.pub-card.featured{border-left:3px solid var(--gold);padding-left:1.2rem;background:var(--off)}
.pub-year{min-width:48px;font-family:var(--mono);font-size:.95rem;font-weight:500;color:var(--gold);padding-top:.15rem}
.pub-body{flex:1}
.pub-journal{display:inline-block;font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);border:1px solid var(--border);padding:.16rem .55rem;margin-bottom:.45rem}
.pub-badge{display:inline-block;font-family:var(--mono);font-size:.66rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin-left:.5rem}
.pub-title{font-size:.98rem;font-weight:600;color:var(--text);line-height:1.5;margin-bottom:.3rem}
.pub-authors{font-size:.81rem;color:var(--slate);font-style:italic;line-height:1.55}
.pub-authors strong{color:var(--navy);font-style:normal;font-weight:700}
.pub-doi{display:inline-flex;align-items:center;gap:.3rem;margin-top:.45rem;font-family:var(--mono);font-size:.74rem;color:var(--gold);font-weight:500}
.pub-doi:hover{text-decoration:underline}

/* ── Contact ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.c-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.4rem}
.c-icon{width:36px;height:36px;background:var(--navy);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;color:var(--white)}
.c-text{font-size:.9rem;line-height:1.6;color:var(--slate)}
.c-text strong{display:block;font-weight:700;color:var(--navy);margin-bottom:.1rem}
.aff-box{background:var(--off);border:1px solid var(--border);padding:2rem;color:var(--text)}
.aff-box h3{font-family:var(--serif);color:var(--navy);margin-bottom:1.2rem;font-weight:600}
.aff-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem;font-size:.88rem;color:var(--text)}
.aff-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}

/* ── Footer ── */
footer{background:var(--off);color:var(--slate);font-size:.82rem;padding:2rem 0;text-align:center;border-top:1px solid var(--border)}
footer a{color:var(--slate);transition:color var(--t)}
footer a:hover{color:var(--gold)}
footer .foot-links{margin-top:.5rem;display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;font-family:var(--mono);font-size:.72rem}

/* ── Reveal ── */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ── Stats band ── */
.stats-band{background:var(--off);padding:2rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.stat-num{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--gold)}
.stat-lbl{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);margin-top:.2rem}

/* ── Group photo section ── */
.group-section{position:relative;overflow:hidden;background:var(--navy-deep)}
.group-section img{width:100%;height:400px;object-fit:cover;object-position:center top;opacity:.4}
.group-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:1.2rem;padding:2rem}
.group-overlay h2{font-family:var(--serif);font-size:1.9rem;color:var(--white);font-weight:600}
.group-overlay p{color:rgba(255,255,255,.78);font-size:1rem;max-width:500px}

/* ── Highlight cards ── */
.highlights-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.hl-card{background:var(--white);padding:1.8rem;border:1px solid var(--border);border-top:2px solid var(--gold)}
.hl-card .hl-tag{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.hl-card h3{font-family:var(--serif);font-size:1.05rem;color:var(--navy);line-height:1.4;margin-bottom:.6rem;font-weight:600}
.hl-card p{font-size:.85rem;color:var(--slate);line-height:1.7;margin-bottom:1rem}
.hl-link{font-family:var(--mono);font-size:.74rem;font-weight:500;color:var(--gold)}
.hl-link:hover{text-decoration:underline}

/* ── Responsive ── */
@media(max-width:900px){
  .highlights-grid,.contact-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:800px){
  .brand-text .sub{display:none}
  .nav-toggle{display:flex}
  .nav-links{display:none;flex-direction:column;gap:0;position:absolute;top:66px;left:0;right:0;background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.5rem 0;z-index:999}
  .nav-links.open{display:flex}
  .nav-links li{width:100%}
  .nav-links a{display:block;padding:.8rem 2rem;font-size:.92rem;border-bottom:none;border-left:3px solid transparent}
  .nav-links a:hover,.nav-links a.active{border-left-color:var(--gold);background:var(--off)}
  .pi-card{grid-template-columns:1fr}
  .pi-avatar{width:100px;height:100px}
  .photo-banner{height:240px}
  .photo-banner-text h1{font-size:1.8rem}
  .group-section img{height:280px}
  .group-overlay h2{font-size:1.5rem}
  section{padding:3.5rem 0}
}
@media(max-width:500px){
  .members-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:1fr 1fr}
}
