
:root {
  --ink: #13203a;
  --muted: #5d6b80;
  --bg: #fff8ef;
  --paper: rgba(255,255,255,.86);
  --pink: #ff4fa3;
  --cyan: #20c7d6;
  --yellow: #ffd166;
  --green: #76e39e;
  --violet: #8557ff;
  --blue: #2374ff;
  --shadow: 0 28px 80px rgba(19,32,58,.14);
  --radius: 30px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.singlecell-theme {
  margin: 0;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 10% 12%, rgba(255,79,163,.26), transparent 28%),
    radial-gradient(circle at 92% 8%, rgba(32,199,214,.22), transparent 26%),
    radial-gradient(circle at 48% 90%, rgba(255,209,102,.32), transparent 32%),
    linear-gradient(180deg, #fff8ef 0%, #f7fbff 100%);
  min-height: 100vh;
}
body.singlecell-theme:before {
  content:""; position:fixed; inset:0; pointer-events:none; opacity:.22; z-index:-1;
  background-image: radial-gradient(circle, rgba(19,32,58,.22) 1.5px, transparent 1.5px);
  background-size: 38px 38px;
  mask-image: linear-gradient(180deg, #000, transparent 80%);
}
.site-header {
  position: sticky; top: 0; z-index: 30;
  display:flex; justify-content:space-between; align-items:center; gap:22px;
  padding: 16px clamp(18px,5vw,72px);
  background: rgba(255,248,239,.78); backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(19,32,58,.08);
}
.brand { color:var(--ink); text-decoration:none; font-weight:950; letter-spacing:-.045em; font-size:1.22rem; }
.brand-mark { color:var(--pink); filter: drop-shadow(0 0 10px rgba(255,79,163,.65)); }
.site-nav { display:flex; flex-wrap:wrap; gap: 14px 20px; align-items:center; }
.site-nav a { color:var(--ink); font-weight:800; text-decoration:none; font-size:.96rem; }
.site-nav a:hover { color:var(--pink); }
.nav-pill { padding:9px 13px; border-radius:999px; background:white; box-shadow: 0 8px 24px rgba(19,32,58,.08); }
main.site-main { width:min(1180px, calc(100% - 38px)); margin:0 auto; padding:48px 0 92px; }
.hero {
  position:relative; overflow:hidden; padding:clamp(44px,8vw,96px); border-radius:42px;
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.62)),
              radial-gradient(circle at 18% 26%, rgba(255,79,163,.26), transparent 34%),
              radial-gradient(circle at 82% 18%, rgba(32,199,214,.28), transparent 34%);
  box-shadow: var(--shadow); border:1px solid rgba(19,32,58,.08);
}
.hero:after { content:""; position:absolute; width:320px; height:320px; right:-100px; bottom:-120px; border-radius:50%; background:conic-gradient(from 60deg,var(--pink),var(--cyan),var(--yellow),var(--violet),var(--pink)); opacity:.24; animation:spin 18s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.hero.compact { padding:46px; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; color:var(--pink); font-weight:950; font-size:.76rem; margin:0 0 12px; }
h1 { font-size:clamp(2.45rem,7vw,5.8rem); line-height:.94; letter-spacing:-.075em; margin:.05em 0 .25em; }
h2 { font-size:clamp(1.35rem,3vw,2.35rem); letter-spacing:-.045em; line-height:1.02; }
h3 { font-size:1.35rem; letter-spacing:-.025em; }
.lead, .rich-intro { font-size:clamp(1.08rem,2vw,1.42rem); color:var(--muted); max-width:780px; }
.grid { display:grid; gap:24px; margin-top:28px; }
.grid.two { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.grid.three { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.card, .person-card, .news-card, .publication-card, .software-card {
  padding:28px; border-radius:var(--radius); background:var(--paper); box-shadow:var(--shadow); border:1px solid rgba(19,32,58,.08);
}
.feature { background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,255,255,.66)), radial-gradient(circle at top left, rgba(118,227,158,.28), transparent 38%); }
.button { display:inline-flex; align-items:center; justify-content:center; padding:13px 19px; margin:10px 10px 0 0; border-radius:999px; font-weight:950; color:var(--ink); background:#fff; border:1px solid rgba(19,32,58,.1); text-decoration:none; }
.button.primary { color:white; background:linear-gradient(135deg,var(--pink),var(--violet)); border:0; }
.button.cta { color:white; background:linear-gradient(135deg,var(--cyan),var(--blue)); border:0; }
.people-grid, .list-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:24px; margin-top:28px; }
.person-card img, .profile-photo { width:100%; max-width:330px; aspect-ratio:1/1; object-fit:cover; border-radius:28px; box-shadow:var(--shadow); background:#fff; }
.person-card h2 { margin:.15em 0; }
.profile { display:grid; grid-template-columns:minmax(220px,350px) 1fr; gap:36px; align-items:center; }
.profile-links, .tag-row { display:flex; flex-wrap:wrap; gap:10px; }
.tag { display:inline-flex; padding:7px 11px; border-radius:999px; font-weight:850; background:rgba(133,87,255,.1); color:var(--violet); }
.meta { color:var(--muted); font-weight:750; }
a { color:var(--violet); }
.footer { width:min(1180px, calc(100% - 38px)); margin:0 auto 34px; padding:28px; border-radius:30px; background:rgba(255,255,255,.62); color:var(--muted); }
.searchbox { width:100%; max-width:520px; padding:14px 18px; border-radius:999px; border:1px solid rgba(19,32,58,.16); font:inherit; box-shadow:0 10px 28px rgba(19,32,58,.06); }

.people-hero {
  padding-top: 32px;
  padding-bottom: 32px;
  min-height: auto;
}

.people-hero h1 {
  font-size: clamp(2.2rem, 5vw, 4rem);
  margin-bottom: 12px;
}

.people-hero .lead,
.people-hero p {
  margin-bottom: 0;
}

.people-grid {
  margin-top: 24px;
}

.back-row {
  margin: 0 0 24px;
}

.back-row .button {
  font-size: 0.95rem;
}

.page-hero,
.people-hero,
.research-hero,
.software-hero,
.publications-hero,
.news-hero {
  padding-top: 32px;
  padding-bottom: 32px;
  min-height: auto;
}

.page-hero h1,
.people-hero h1,
.research-hero h1,
.software-hero h1,
.publications-hero h1,
.news-hero h1 {
  font-size: clamp(2.2rem, 5vw, 4rem);
  margin-bottom: 12px;
}

.page-hero .lead,
.page-hero p,
.people-hero .lead,
.people-hero p,
.research-hero .lead,
.research-hero p,
.software-hero .lead,
.software-hero p,
.publications-hero .lead,
.publications-hero p,
.news-hero .lead,
.news-hero p {
  margin-bottom: 0;
}

.people-grid,
.software-list,
.publication-list,
.news-list,
.grid {
  margin-top: 24px;
}


@media (max-width:780px){ .site-header{align-items:flex-start; flex-direction:column;} .profile{grid-template-columns:1fr;} .hero{border-radius:28px;} }

/* BEGIN SCIENTIFIC FIGURES */

.scientific-figures {
  margin-top: 1.5rem;
}

.scientific-figure {
  margin: 1.75rem 0 0;
}

.scientific-figure + .scientific-figure {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(127, 127, 127, 0.3);
}

.scientific-figure__image {
  margin-bottom: 0.85rem;
  text-align: center;
}

.scientific-figure__img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

.scientific-figure__caption {
  line-height: 1.5;
}

.scientific-figure__caption-text {
  margin: 0;
}

.scientific-figure__legend {
  margin-top: 0.6rem;
}

.scientific-figure__credit {
  margin-top: 0.6rem;
  margin-bottom: 0;
  font-size: 0.92em;
}

/* END SCIENTIFIC FIGURES */
