:root{
  --deep-plum:#3B245C;--purple:#5B3A82;--violet:#7656A6;--lavender:#B9A7D9;--pale:#F3F0F8;--off:#FAFAFC;
  --charcoal:#242129;--slate:#625B6B;--footer:#2A193F;--header:#2A193F;
  --font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;--hand:'Caveat','Segoe Script','Bradley Hand',cursive;
  --line:1px solid var(--lavender);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--charcoal);background:var(--off);line-height:1.7;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--purple)}
h1,h2,h3{color:var(--deep-plum);line-height:1.25;margin:0 0 .6em}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 14px;z-index:100}.skip:focus{left:8px;top:8px}
:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Header — dark */
.site-header{background:var(--header);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(185,167,217,.25)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.brand img{width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid var(--lavender);object-fit:cover}
.brand .bt{display:block;line-height:1.2}.brand small{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lavender);font-weight:500;margin-top:3px}
.brand b{display:block;font-size:1.05rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.nav{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.nav a{display:block;padding:8px 13px;color:#E6DEF3;text-decoration:none;font-size:.88rem;font-weight:500;border-radius:4px;border-bottom:2px solid transparent}
.nav a:hover{color:#fff;background:rgba(185,167,217,.14)}
.nav a[aria-current=page]{color:#fff;border-bottom-color:var(--lavender)}
.menu-btn{display:none;background:none;border:1px solid var(--lavender);color:#fff;border-radius:4px;padding:6px 12px;font:inherit;cursor:pointer}

/* Hero */
.hero{position:relative;overflow:hidden;text-align:center;background:linear-gradient(180deg,var(--pale),var(--off));padding:96px 0 84px}
.hero .wrap{position:relative;z-index:2;max-width:820px}
.eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--violet);font-weight:600;margin:0 0 20px}
.hero h1{font-size:clamp(2rem,5vw,3.3rem);font-weight:700;margin:0 auto 18px;text-align:center}
.hero p.sub{color:var(--slate);font-size:1.1rem;max-width:640px;margin:0 auto 30px;text-align:center}
.btn{display:inline-block;background:var(--purple);color:#fff;text-decoration:none;font-weight:600;padding:12px 28px;border-radius:4px;transition:background .2s}
.btn:hover{background:var(--deep-plum)}
.deco{position:absolute;z-index:1;color:var(--lavender);opacity:.55;pointer-events:none}

/* Sections */
section.block{padding:72px 0}main{min-height:60vh}
.center{text-align:center}
.rule{width:56px;height:2px;background:var(--lavender);margin:0 auto 28px;border:0}
.prose{max-width:860px;margin:0 auto}
.prose p{margin:0 0 1em;color:var(--charcoal)}
.page-head{background:var(--pale);padding:56px 0 40px;text-align:center;border-bottom:var(--line)}
.page-head h1{font-size:2.2rem;margin:0}
.page-head p{color:var(--slate);margin:.5em 0 0}

/* News */
.news-home{background:var(--pale);border-top:var(--line);border-bottom:var(--line)}
.ticker{text-align:left;position:relative;height:330px;overflow:hidden;max-width:860px;margin:0 auto;border:var(--line);border-radius:6px;background:#fff;
  -webkit-mask-image:linear-gradient(transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(transparent,#000 7%,#000 93%,transparent)}
.ticker-track{animation:scrollUp var(--dur,22s) linear infinite}
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
@keyframes scrollUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.news-item{padding:22px 28px;border-bottom:1px solid var(--pale)}
.news-meta{font-size:.74rem;letter-spacing:.14em;font-weight:600;color:var(--violet);margin:0 0 6px}
.news-meta span{color:var(--slate);font-weight:500}
.news-item h3{font-size:1.05rem;margin:0 0 6px}
.news-item p,.news-item ul{margin:0;color:var(--slate);font-size:.94rem}.news-item ul{padding-left:20px}
.ticker-note{text-align:center;font-size:.78rem;color:var(--slate);margin-top:12px}
.news-list .news-item{background:#fff;border:var(--line);border-radius:6px;margin-bottom:18px}
@media(prefers-reduced-motion:reduce){.ticker{height:auto;max-height:340px;overflow:auto}.ticker-track{animation:none}.ticker-track .dup{display:none}}

/* Research */
.theme{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;padding:48px 0;border-bottom:1px solid var(--pale)}
.theme-img{order:2}
.theme-img img{border:1px solid var(--lavender);border-radius:6px;background:#fff;width:100%}
.num{font-size:.85rem;letter-spacing:.2em;color:var(--violet);font-weight:600}
.theme h2{font-size:1.5rem;margin:.2em 0 .7em}
.theme p{color:var(--slate);margin:0 0 1em}

/* Publications */
.year{font-size:1.3rem;color:var(--purple);margin:44px 0 14px;padding-bottom:6px;border-bottom:var(--line)}
.pub{padding:14px 0;border-bottom:1px solid var(--pale)}
.pub h3{font-size:.98rem;font-weight:600;margin:0 0 4px}
.pub .au{font-size:.88rem;color:var(--slate);margin:0}
.pub .au strong{color:var(--deep-plum)}
.pub .ve{font-size:.88rem;font-style:italic;color:var(--purple);margin:2px 0 0}
.pub .nt{font-size:.8rem;color:var(--slate);font-style:italic;margin:2px 0 0}
.tag{display:inline-block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--lavender);color:var(--violet);border-radius:3px;padding:1px 7px;margin-left:8px;vertical-align:middle;font-weight:600}

/* Team */
.group h2{font-size:1.2rem;color:var(--purple);margin:44px 0 20px;padding-bottom:6px;border-bottom:var(--line)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px}
.card{background:#fff;border:var(--line);border-radius:6px;overflow:hidden;text-align:center}
.card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-bottom:var(--line)}
.card .ph{aspect-ratio:1/1;background:var(--pale);display:grid;place-items:center;font-size:2.4rem;color:var(--lavender);border-bottom:var(--line)}
.card div.t{padding:16px 16px 20px}.card h3{font-size:1.02rem;margin:0 0 2px}
.card .role{font-size:.82rem;color:var(--violet);font-weight:600;margin:0 0 6px}
.card .deg{font-size:.84rem;color:var(--slate);margin:0 0 6px}
.card a{font-size:.82rem;word-break:break-all}
.pi{display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:center;background:#fff;border:var(--line);border-radius:6px;padding:24px}
.pi img{border:var(--line);border-radius:6px;aspect-ratio:1/1;object-fit:cover;width:100%}
.pi h3{font-size:1.4rem;margin:0}.pi .role{color:var(--violet);font-weight:600;margin:0 0 10px}
.pi p{margin:0 0 6px;color:var(--slate);font-size:.94rem}

/* Gallery / contact */
.soon{text-align:center;padding:72px 24px;border:1px dashed var(--lavender);border-radius:6px;background:#fff;max-width:640px;margin:0 auto}
.soon h2{font-size:1.5rem}.soon p{color:var(--slate);margin:0}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:32px}
.gal img{border:var(--line);border-radius:6px;width:100%;aspect-ratio:4/3;object-fit:cover}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-grid dt{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--violet);font-weight:600;margin-top:22px}
.contact-grid dd{margin:4px 0 0;color:var(--charcoal)}
.join{background:#fff;border:var(--line);border-radius:6px;padding:30px}.join h2{font-size:1.4rem}.join p{color:var(--slate)}
.logos{display:flex;gap:32px;align-items:center;flex-wrap:wrap;margin-top:32px}.logos img{height:110px;width:auto;border:0;border-radius:0}

/* Footer */
.site-footer{background:var(--footer);color:#E6DEF3;padding:45px 0 18px;margin-top:0}
.quote{text-align:center;font-style:italic;font-size:1.12rem;max-width:640px;margin:0 auto 40px;color:#F3F0F8}
.foot-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-top:1px solid rgba(185,167,217,.25);padding-top:16px;font-size:.78rem;color:var(--lavender)}
.credits p{margin:0}.credits b{color:#fff;font-weight:600}

@media(max-width:480px){.brand small{font-size:.56rem;letter-spacing:.06em}.brand b{font-size:.95rem}}
@media(max-width:820px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--header);flex-direction:column;padding:8px 24px 16px;border-bottom:1px solid rgba(185,167,217,.25)}
  .nav.open{display:flex}
  .theme,.contact-grid,.pi{grid-template-columns:1fr}.theme:nth-child(even) .theme-img{order:0}
  .pi{text-align:center}.pi img{max-width:240px;margin:0 auto}
  .hero{padding:72px 0 64px}.deco.hide-m{display:none}
  .foot-row{flex-direction:column;align-items:center;text-align:center}
}
