
:root{
  --ink:#222;
  --muted:#666;
  --line:#e4e4e4;
  --paper:#fff;
  --soft:#f7f7f5;
  --accent:#7a211c;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:Helvetica,Arial,sans-serif;
  line-height:1.65;
}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
img{display:block;max-width:100%}
.container{width:min(calc(100% - 44px),var(--max));margin:0 auto}

header{
  border-bottom:1px solid var(--line);
  background:#fff;
}
.header-inner{
  min-height:92px;display:flex;justify-content:space-between;align-items:center;gap:28px;
}
.site-id{
  text-transform:uppercase;font-size:.72rem;letter-spacing:.18em;font-weight:700;line-height:1.4
}
nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
nav a{font-size:.77rem;text-transform:uppercase;letter-spacing:.12em}
.menu-btn{display:none;border:0;background:transparent;font-size:1.2rem}

.hero{
  padding:110px 0 84px;
}
.hero h1{
  font-size:clamp(3rem,7vw,6.9rem);
  text-transform:uppercase;
  line-height:.88;
  letter-spacing:-.035em;
  max-width:850px;
  margin:0 0 48px;
  font-weight:800;
}
.hero h1 span{display:block}
.hero-copy{
  display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:start
}
.hero-copy .lead{
  font-size:1.27rem;line-height:1.55;margin:0
}
.hero-copy .meta{
  font-size:.94rem;color:var(--muted);margin:0
}
.hero-image{
  height:500px;
  background:
    linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.14)),
    linear-gradient(145deg,#9cab90 0 25%,#637a64 25% 47%,#354f43 47% 67%,#987c59 67% 78%,#466156 78%);
  position:relative;
}
.placeholder-label{
  position:absolute;left:18px;bottom:18px;background:rgba(255,255,255,.92);padding:9px 11px;
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase
}
section{padding:90px 0}
.section-title{
  text-transform:uppercase;letter-spacing:.09em;font-size:.77rem;font-weight:700;margin-bottom:40px
}
.intro{
  display:grid;grid-template-columns:1fr 1fr;gap:70px;
}
.intro p{font-size:1.1rem;margin-top:0}
.intro p:first-child{font-size:1.35rem;line-height:1.55}
.rule{border-top:1px solid var(--line)}
.research-list{border-top:1px solid var(--line)}
.research-row{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:62px;
  padding:58px 0;border-bottom:1px solid var(--line);align-items:start
}
.research-img{
  aspect-ratio:4/3;
  background:linear-gradient(145deg,#c2c6b4,#7f9179 50%,#4d6055 50%)
}
.research-row h2{
  text-transform:uppercase;letter-spacing:.025em;font-size:1.7rem;line-height:1.1;margin:0 0 18px
}
.research-row p{color:var(--muted);margin:0 0 14px}
.projects-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:54px 34px
}
.project-img{
  aspect-ratio:16/10;background:linear-gradient(140deg,#c8c1a7,#6f8069);margin-bottom:22px;position:relative
}
.project h3{
  text-transform:uppercase;letter-spacing:.035em;font-size:1.2rem;margin:0 0 7px
}
.project .meta{
  font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:700
}
.project p{color:var(--muted)}
.more{display:inline-block;border-bottom:1px solid #444;padding-bottom:2px;font-size:.85rem}
.people-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:50px 28px
}
.person-img{
  aspect-ratio:4/5;background:linear-gradient(160deg,#ddd8ca,#7e8d82);margin-bottom:18px
}
.person h3{text-transform:uppercase;font-size:1.1rem;letter-spacing:.035em;margin:0 0 3px}
.person .role{font-size:.82rem;color:var(--muted);margin-bottom:10px}
.person p{font-size:.93rem;color:var(--muted)}
.publication{
  display:grid;grid-template-columns:80px 1fr;gap:28px;padding:19px 0;border-top:1px solid var(--line)
}
.publication:last-child{border-bottom:1px solid var(--line)}
.year{font-weight:700;color:var(--accent)}
.page-head{
  padding:90px 0 65px;border-bottom:1px solid var(--line)
}
.page-head h1{
  text-transform:uppercase;font-size:clamp(3rem,7vw,6rem);line-height:.92;margin:0;letter-spacing:-.03em
}
.prose{max-width:850px}
.prose h2{text-transform:uppercase;letter-spacing:.03em;font-size:1.35rem;margin-top:48px}
.prose p{font-size:1.04rem;color:#4f4f4f}
.notice{background:var(--soft);border-left:3px solid var(--accent);padding:16px 19px;margin:24px 0}
footer{
  border-top:1px solid var(--line);padding:48px 0 55px;margin-top:30px
}
.footer-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:55px
}
footer .name{text-transform:uppercase;font-size:.9rem;font-weight:700;letter-spacing:.05em}
footer p,footer a{font-size:.85rem;color:var(--muted)}
@media(max-width:820px){
  .menu-btn{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:92px;background:white;border-bottom:1px solid var(--line);padding:24px;flex-direction:column;align-items:flex-start}
  nav.open{display:flex}
  .hero{padding:72px 0 58px}
  .hero-copy,.intro,.research-row,.footer-grid{grid-template-columns:1fr;gap:34px}
  .hero-image{height:360px}
  .projects-grid,.people-grid{grid-template-columns:1fr}
  section{padding:65px 0}
}


/* UCLA-inspired homepage refinements */
header{background:#050505;border-bottom:0;color:#fff}
.header-inner{min-height:78px}
.site-id{color:#fff;font-size:.78rem;letter-spacing:.12em}
nav a{color:#bdbdbd;font-size:.72rem;font-weight:700;text-transform:none;letter-spacing:0}
nav a:hover{color:#fff}
.menu-btn{color:#fff}

body.home{background:#000;color:#fff}
body.home footer{background:#000;color:#fff;border-top:1px solid #252525}
body.home footer p,body.home footer a{color:#aaa}

.home-hero{
  min-height:465px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url('../images/page40.jpg');
  background-size:cover;
  background-position:center center;
}
.home-hero h1{
  margin:0;
  max-width:900px;
  padding:0 28px;
  color:#fff;
  text-align:center;
  text-transform:uppercase;
  font-size:clamp(2.4rem,4.7vw,4.35rem);
  line-height:1.03;
  letter-spacing:.01em;
  font-weight:800;
  text-shadow:0 1px 12px rgba(0,0,0,.12);
}
.home-intro{
  background:#000;
  padding:120px 0 105px;
}
.home-intro .home-copy{
  max-width:1080px;
}
.home-intro p{
  margin:0 0 20px;
  color:#fff;
  font-size:1.08rem;
  line-height:1.72;
  font-weight:400;
}
.home-intro a{
  color:#b8d78f;
  text-decoration:underline;
  text-underline-offset:3px;
}
.home-intro strong{font-weight:700}
@media(max-width:820px){
  .home-hero{min-height:360px;background-position:center}
  .home-intro{padding:72px 0 64px}
  .home-intro p{font-size:1rem;line-height:1.65}
}


/* Rotating image band */
.image-band{
  padding:0;
  background:#000;
  overflow:hidden;
}
.image-band-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
  background:#000;
}
.image-band-frame{
  height:230px;
  overflow:hidden;
  background:#111;
}
.image-band-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:1;
  transform:scale(1.01);
  transition:opacity .65s ease, transform 4.8s ease;
}
.image-band-frame img.band-fade{
  opacity:.08;
}
.image-band-frame img.band-live{
  transform:scale(1.045);
}
@media(max-width:820px){
  .image-band-grid{
    grid-template-columns:1fr 1fr;
  }
  .image-band-frame{
    height:175px;
  }
  .image-band-frame:nth-child(3){
    display:none;
  }
}

.single-image-band {
  width: 100%;
  height: 260px;
  overflow: hidden;
  background: #000;
  padding: 0;
}

.single-image-band img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.25s ease;
}

/* Refined centered rotating gallery */
.single-image-band {
  width: 100%;
  background: #000;
  padding: 45px 0 55px;
  display: flex;
  justify-content: center;
}

.single-image-band img {
  width: min(1100px, 86vw);
  height: 420px;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: 1;
  transition: opacity 0.9s ease-in-out;
}

@media (max-width: 820px) {
  .single-image-band {
    padding: 28px 0 36px;
  }

  .single-image-band img {
    width: 92vw;
    height: 260px;
  }
}

/* Small subtle rotating image window */
.single-image-band {
  width: 100%;
  background: #000;
  padding: 28px 0 45px;
  display: flex;
  justify-content: center;
}

.single-image-band img {
  width: 560px;
  max-width: 80vw;
  height: 240px;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: 1;
  transition: opacity 1.2s ease-in-out;
}

@media (max-width: 820px) {
  .single-image-band img {
    width: 82vw;
    height: 190px;
  }
}

/* Static 4-image gallery */
.static-gallery {
  background: #000;
  padding: 30px 0 50px;
}

.static-gallery-grid {
  width: min(900px, 86vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.static-gallery-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 820px) {
  .static-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.static-gallery {
  background: #000;
  padding: 28px 0 48px;
}

.static-gallery-grid {
  width: min(900px, 86vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.static-gallery-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
}

@media (max-width: 820px) {
  .static-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Research activities page */

.research-activities {
  padding: 45px 0 90px;
}

.research-activity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 65px;
  align-items: center;
  padding: 65px 0;
  border-bottom: 1px solid #e4e4e4;
}

.research-activity.reverse .research-activity-image {
  order: 2;
}

.research-activity.reverse .research-activity-text {
  order: 1;
}

.research-activity-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
}

.research-number {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #777;
  margin-bottom: 12px;
}

.research-activity h2 {
  font-size: 1.75rem;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  margin: 0 0 22px;
}

.research-activity p {
  color: #555;
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 16px;
}

@media (max-width: 820px) {

  .research-activity,
  .research-activity.reverse {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 45px 0;
  }

  .research-activity.reverse .research-activity-image,
  .research-activity.reverse .research-activity-text {
    order: initial;
  }

  .research-activity h2 {
    font-size: 1.45rem;
  }
}

/* Research activities page */

.research-activities {
  padding: 45px 0 90px;
}

.research-activity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 65px;
  align-items: center;
  padding: 65px 0;
  border-bottom: 1px solid #e4e4e4;
}

.research-activity.reverse .research-activity-image {
  order: 2;
}

.research-activity.reverse .research-activity-text {
  order: 1;
}

.research-activity-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
}

.research-number {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #777;
  margin-bottom: 12px;
}

.research-activity h2 {
  font-size: 1.75rem;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  margin: 0 0 22px;
}

.research-activity p {
  color: #555;
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 16px;
}

@media (max-width: 820px) {

  .research-activity,
  .research-activity.reverse {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 45px 0;
  }

  .research-activity.reverse .research-activity-image,
  .research-activity.reverse .research-activity-text {
    order: initial;
  }

  .research-activity h2 {
    font-size: 1.45rem;
  }
}


/* RESEARCH ACTIVITIES START */

.research-activities {
  padding: 35px 0 90px;
}

.research-activity {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 62px;
  align-items: center;

  padding: 58px 0;

  border-bottom: 1px solid #e4e4e4;
}

.research-activity.reverse .research-activity-image {
  order: 2;
}

.research-activity.reverse .research-activity-text {
  order: 1;
}

.research-activity-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #111;
}

.research-activity-image > img {
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  display: block;
}


/* image crossfade */

.research-slider .research-slide {
  position: absolute;
  inset: 0;

  width: 100%;
  height: 100%;

  object-fit: cover;

  opacity: 0;

  transition: opacity 1.8s ease-in-out;
}

.research-slider .research-slide.active {
  opacity: 1;
}


.research-number {
  font-size: 0.70rem;

  font-weight: 700;

  letter-spacing: 0.16em;

  color: #777;

  margin-bottom: 12px;
}


.research-activity h2 {
  font-size: 1.55rem;

  line-height: 1.2;

  text-transform: uppercase;

  letter-spacing: 0.015em;

  margin: 0 0 22px;
}


.research-activity p {
  color: #555;

  font-size: 0.98rem;

  line-height: 1.66;

  margin: 0 0 15px;
}


@media (max-width: 820px) {

  .research-activity,
  .research-activity.reverse {

    grid-template-columns: 1fr;

    gap: 28px;

    padding: 42px 0;
  }

  .research-activity.reverse .research-activity-image,
  .research-activity.reverse .research-activity-text {
    order: initial;
  }

  .research-activity h2 {
    font-size: 1.35rem;
  }

}

/* RESEARCH ACTIVITIES END */

/* Fix research slider stacking */
.research-slider {
  position: relative;
}

.research-slider .research-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 1;
}

.research-slider .research-slide.active {
  opacity: 1;
  z-index: 2;
}

/* More compact project page */

.project-feature {
  grid-template-columns: 220px 1fr;
  gap: 42px;
  padding: 48px 0 62px;
  border-bottom: 2px solid #222;
}

.project-feature.reverse {
  grid-template-columns: 1fr 220px;
}

.project-feature-image {
  width: 220px;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  margin-top: 4px;
}

.project-feature.reverse .project-feature-image {
  justify-self: end;
}

.project-feature h2 {
  font-size: 1rem;
  line-height: 1.15;
  margin: 0 0 14px;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.project-label {
  font-size: .58rem;
  letter-spacing: .12em;
  margin-bottom: 6px;
}

.project-feature .project-intro {
  font-size: .95rem;
}

.project-feature p,
.project-feature li {
  font-size: .88rem;
  line-height: 1.6;
}

.project-feature h3 {
  font-size: .74rem;
}

@media (max-width: 820px) {
  .project-feature,
  .project-feature.reverse {
    grid-template-columns: 1fr;
  }

  .project-feature-image,
  .project-feature.reverse .project-feature-image {
    width: 220px;
    justify-self: start;
  }
}

/* Smaller page title */
.page-head h1 {
  font-size: 2rem;
  line-height: 1.1;
  letter-spacing: -0.01em;
}

@media (max-width: 820px) {
  .page-head h1 {
    font-size: 1.6rem;
  }
}

/* Tighter project spacing */

.project-feature {
  align-items: start;
  padding: 32px 0 38px;
  gap: 34px;
}

.project-feature-image {
  margin-top: 0;
}

.project-feature-text {
  padding-top: 0;
}

.project-feature p {
  margin: 0 0 8px;
}

.project-feature .project-intro {
  margin-bottom: 8px;
}

.project-feature h2 {
  margin-bottom: 10px;
}

.project-feature h3 {
  margin: 16px 0 6px;
}

.project-feature ul {
  margin: 6px 0 14px;
}

.project-feature li {
  margin-bottom: 3px;
}

.project-feature .more {
  margin-top: 4px;
}

.project-feature + .project-feature {
  margin-top: 8px;
}

/* Match project layout to Research Activities */

.project-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 62px;
  align-items: center;

  padding: 58px 0;

  border-bottom: 1px solid #e4e4e4;
}

.project-feature.reverse .project-feature-image {
  order: 2;
}

.project-feature.reverse .project-feature-text {
  order: 1;
}

.project-feature-image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #111;
  margin: 0;
}

.project-feature-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.project-label {
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #777;
  margin-bottom: 12px;
}

.project-feature h2 {
  font-size: 1.05rem;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  margin: 0 0 18px;
}

.project-feature p {
  color: #555;
  font-size: 0.98rem;
  line-height: 1.66;
  margin: 0 0 10px;
}

.project-feature .project-intro {
  color: #555;
  font-size: 0.98rem;
  line-height: 1.66;
  margin-bottom: 10px;
}

.project-feature h3 {
  font-size: 0.78rem;
  margin: 18px 0 7px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.project-feature ul {
  margin: 7px 0 16px;
  padding-left: 18px;
}

.project-feature li {
  font-size: 0.95rem;
  line-height: 1.55;
  margin-bottom: 4px;
  color: #555;
}

.project-feature + .project-feature {
  margin-top: 0;
}

@media (max-width: 820px) {

  .project-feature,
  .project-feature.reverse {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 42px 0;
  }

  .project-feature.reverse .project-feature-image,
  .project-feature.reverse .project-feature-text {
    order: initial;
  }

  .project-feature h2 {
    font-size: 1rem;
  }
}

/* TropSEDs: smaller image, wider text */
.tropseds-project {
  grid-template-columns: 34% 1fr;
  gap: 46px;
}

.tropseds-project .project-feature-image {
  width: 100%;
  max-width: 360px;
}

@media (max-width: 820px) {
  .tropseds-project {
    grid-template-columns: 1fr;
  }

  .tropseds-project .project-feature-image {
    max-width: 100%;
  }
}

/* TropSEDs compact image / wider text */
.project-feature.tropseds-project {
  grid-template-columns: 260px 1fr !important;
  gap: 38px !important;
}

.project-feature.tropseds-project .project-feature-image {
  width: 260px !important;
  max-width: 260px !important;
  aspect-ratio: 4 / 3;
}

@media (max-width: 820px) {
  .project-feature.tropseds-project {
    grid-template-columns: 1fr !important;
  }

  .project-feature.tropseds-project .project-feature-image {
    width: 220px !important;
    max-width: 100% !important;
  }
}

/* PEOPLE PAGE */

.people-kicker {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #777;
  margin-bottom: 8px;
}

.people-intro {
  max-width: 720px;
  color: #555;
  font-size: .95rem;
  line-height: 1.6;
  margin-top: 12px;
}

.people-section {
  padding: 20px 0 80px;
}

.people-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #ddd;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

.person-card {
  background: #fff;
  padding: 26px;
  min-height: 205px;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.person-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #efefef;

  color: #999;
  font-size: .75rem;
  letter-spacing: .12em;

  margin-bottom: 18px;
}

.person-card h2 {
  font-size: .95rem;
  line-height: 1.25;
  margin: 0 0 4px;
}

.person-card p {
  margin: 0;
  color: #777;
  font-size: .82rem;
}

@media (max-width: 900px) {
  .people-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .people-grid {
    grid-template-columns: 1fr;
  }
}

.hero-lab {
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .20em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

/* People bio */

.person-role {
  margin-bottom: 12px !important;
}

.person-bio {
  margin-top: 12px !important;
  color: #555 !important;
  font-size: .84rem !important;
  line-height: 1.55 !important;
}

.person-card:first-child {
  grid-column: span 2;
}

.person-card:first-child .person-placeholder {
  max-width: 300px;
}

@media (max-width: 600px) {
  .person-card:first-child {
    grid-column: span 1;
  }
}

/* People portraits */

.person-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eee;
  margin-bottom: 18px;
}

.person-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Keep lead profile image restrained */
.person-card:first-child .person-photo {
  max-width: 300px;
}

/* Nathan portrait adjustment */
.person-photo-portrait {
  aspect-ratio: 3 / 4;
}

.person-photo-portrait img {
  object-fit: cover;
  object-position: center 20%;
}

/* Portrait-format people photos */
.person-photo-portrait {
  aspect-ratio: 3 / 4;
}

.person-photo-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
}

/* KASAI MAP */

.kasai-intro {
  max-width: 720px;
  color: #555;
  font-size: .95rem;
  line-height: 1.6;
  margin: 10px 0 16px;
}

.kasai-open {
  display: inline-block;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}

.kasai-app-section {
  padding: 10px 0 70px;
}

.kasai-app-container {
  max-width: 1500px;
}

.kasai-app-frame {
  width: 100%;
  height: 78vh;
  min-height: 650px;

  border: 1px solid #ddd;

  display: block;
  background: #f3f3f3;
}

.kasai-app-note {
  margin-top: 10px;
  font-size: .78rem;
  color: #777;
}

@media (max-width: 820px) {

  .kasai-app-frame {
    height: 70vh;
    min-height: 520px;
  }

}

/* Publications first-authored by Van Oost Lab members */

.publication-item[data-team-first="true"] h3 {
  font-weight: 800;
  color: #111;
}

.publication-item[data-team-first="true"] {
  border-left: 3px solid #222;
  padding-left: 16px;
}

.publication-authors strong {
  color: #333;
  font-weight: 700;
}

/* ==========================================
   COMPACT PUBLICATIONS
   ========================================== */

.publications-compact {
  padding: 5px 0 65px;
}

.publication-year-compact {
  display: grid;
  grid-template-columns: 65px 1fr;
  gap: 20px;

  padding: 18px 0 24px;

  border-top: 1px solid #d8d8d8;
}

.publication-year-compact h2 {
  margin: 2px 0 0;

  font-size: .90rem;
  line-height: 1.2;
  font-weight: 700;
}

.publication-list {
  margin: 0;
  padding-left: 18px;
}

.publication-compact {
  padding: 0 0 7px 2px;
  margin: 0;

  color: #555;

  font-size: .81rem;
  line-height: 1.42;
}

.publication-compact strong {
  color: #222;
  font-weight: 700;
}

.pub-title {
  color: #333;
}

.pub-journal {
  white-space: normal;
}

.publication-doi {
  display: inline;
  margin: 0 0 0 3px;

  font-size: inherit;
  white-space: nowrap;
}

.publication-links {
  margin-top: 7px;
}

.publication-intro {
  margin-top: 9px;
  margin-bottom: 0;
}

@media (max-width: 720px) {

  .publication-year-compact {
    grid-template-columns: 1fr;
    gap: 8px;
  }

}

/* Ultra-compact publications */

.publications-section {
  padding-top: 5px;
}

.publication-year-compact {
  display: grid;
  grid-template-columns: 55px 1fr;
  gap: 18px;

  padding: 14px 0 18px;
  border-top: 1px solid #ddd;
}

.publication-year-compact h2 {
  margin: 2px 0 0;
  font-size: .88rem;
}

.publication-list {
  margin: 0;
  padding-left: 18px;
}

.publication-compact {
  margin: 0 0 5px;
  padding: 0;

  font-size: .79rem;
  line-height: 1.35;
  color: #555;
}

.publication-compact strong {
  color: #222;
  font-weight: 700;
}

.publication-compact em {
  color: #444;
}

.publication-doi {
  display: inline;
  margin-left: 2px;
  font-size: inherit;
  white-space: nowrap;
}

.publication-intro {
  margin-top: 8px;
  margin-bottom: 5px;
}

@media (max-width: 720px) {

  .publication-year-compact {
    grid-template-columns: 1fr;
    gap: 5px;
  }

}

/* Two-line site identity in header */

.site-id-stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.05;
}

.site-id-main {
  display: block;
}

.site-id-lab {
  display: block;
  margin-top: 5px;

  font-size: 0.60rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;

  opacity: 0.7;
}

/* Force two-line header branding */

.header-inner .site-id.site-id-stacked {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  line-height: 1.05 !important;
}

.header-inner .site-id-main {
  display: block !important;
}

.header-inner .site-id-lab {
  display: block !important;
  margin-top: 6px !important;

  font-size: 0.64rem !important;
  line-height: 1 !important;

  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;

  opacity: 0.72 !important;
}

/* ======================================
   PRODUCTS
   ====================================== */

.products-intro {
  max-width: 720px;
  margin-top: 10px;
  color: #555;
  font-size: .92rem;
  line-height: 1.55;
}

.products-section {
  padding: 20px 0 80px;
}

.product-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 62px;
  align-items: center;

  padding: 52px 0;

  border-bottom: 1px solid #ddd;
}

.product-item.reverse .product-figure {
  order: 2;
}

.product-item.reverse .product-text {
  order: 1;
}

.product-figure {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.product-figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-placeholder,
.model-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;

  background:
    linear-gradient(
      135deg,
      #ececec,
      #d8d8d8
    );

  text-align: center;
}

.model-placeholder {
  background: #202020;
}

.product-placeholder span,
.model-placeholder span {
  display: block;

  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.product-placeholder small,
.model-placeholder small {
  display: block;

  margin-top: 8px;

  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.product-placeholder small {
  color: #777;
}

.model-placeholder span {
  color: #fff;
}

.model-placeholder small {
  color: #aaa;
}

.product-label {
  margin-bottom: 8px;

  color: #777;

  font-size: .62rem;
  font-weight: 700;

  letter-spacing: .14em;
}

.product-text h2 {
  margin: 0 0 14px;

  font-size: 1.05rem;

  line-height: 1.2;
  text-transform: uppercase;
}

.product-text p {
  margin: 0 0 10px;

  color: #555;

  font-size: .92rem;
  line-height: 1.6;
}

.product-status {
  font-style: italic;
  color: #888 !important;
  font-size: .82rem !important;
}

@media (max-width: 820px) {

  .product-item,
  .product-item.reverse {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .product-item.reverse .product-figure,
  .product-item.reverse .product-text {
    order: initial;
  }

}

/* Smaller product screenshots */
.product-figure-small {
  width: 50% !important;
  justify-self: start;
  aspect-ratio: auto !important;
  background: transparent !important;
}

.product-figure-small img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}

.product-item.reverse .product-figure-small {
  justify-self: end;
}

@media (max-width: 820px) {
  .product-figure-small,
  .product-item.reverse .product-figure-small {
    width: 70% !important;
    justify-self: start;
  }
}

.product-figure-small {
  width: 50% !important;
  aspect-ratio: auto !important;
  justify-self: start;
  background: transparent !important;
}

.product-figure-small img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}

.product-item.reverse .product-figure-small {
  justify-self: end;
}

/* PROJECT FUNDING LOGOS */

.project-logos {
  padding: 30px 0 55px;
  border-top: 1px solid #ddd;
}

.project-logos-label {
  margin-bottom: 18px;

  color: #777;
  font-size: .60rem;
  font-weight: 700;

  letter-spacing: .14em;
  text-transform: uppercase;
}

.project-logos-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;

  gap: 20px 30px;
}

.project-logos-grid img {
  width: auto;
  height: 34px;
  max-width: 115px;

  object-fit: contain;
  display: block;
}

/* Slightly larger for very horizontal logos */
.project-logos-grid img[src*="UCLouvain"],
.project-logos-grid img[src*="ERC"] {
  max-width: 130px;
}

@media (max-width: 700px) {

  .project-logos-grid {
    gap: 16px 22px;
  }

  .project-logos-grid img {
    height: 28px;
    max-width: 100px;
  }
}

/* ==========================================
   COMPACT LAYOUT REFINEMENTS
   ========================================== */


/* ---------- HOMEPAGE ---------- */

/* Make hero less tall so more content is visible */
.hero,
.home-hero {
  min-height: 48vh !important;
  height: 48vh !important;
  max-height: 520px !important;
}

/* If hero uses an image directly */
.hero img,
.home-hero img {
  height: 100% !important;
  object-fit: cover !important;
}

/* Reduce spacing directly below hero */
.home-intro,
.intro-section {
  padding-top: 26px !important;
  padding-bottom: 24px !important;
}

.home-intro p,
.intro-section p {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
}

/* Tighten 4-image grid */
.static-gallery,
.home-gallery {
  margin-top: 18px !important;
  gap: 10px !important;
}



/* ---------- RESEARCH PAGE ---------- */

.research-activities {
  padding-top: 12px !important;
  padding-bottom: 55px !important;
}

.research-activity {
  padding: 30px 0 !important;
  gap: 42px !important;
}

.research-activity h2 {
  margin-bottom: 11px !important;
}

.research-activity p {
  margin-top: 0 !important;
  margin-bottom: 7px !important;
  line-height: 1.52 !important;
}

.research-number {
  margin-bottom: 7px !important;
}

.page-head {
  padding-top: 30px !important;
  padding-bottom: 22px !important;
}



/* ---------- PEOPLE PAGE ---------- */

.people-section {
  padding-top: 5px !important;
  padding-bottom: 55px !important;
}

.people-grid {
  gap: 1px !important;
}

.person-card {
  padding: 18px !important;
  min-height: 0 !important;
}

.person-photo,
.person-placeholder {
  margin-bottom: 12px !important;
}

.person-card h2 {
  margin-bottom: 3px !important;
}

.person-role {
  margin-bottom: 7px !important;
}

.person-bio {
  margin-top: 7px !important;
  margin-bottom: 0 !important;
  line-height: 1.45 !important;
}

.people-intro {
  margin-top: 7px !important;
  line-height: 1.45 !important;
}

.people-kicker {
  margin-bottom: 5px !important;
}


/* slightly less tall portrait cards */
.person-photo-portrait {
  aspect-ratio: 4 / 5 !important;
}


/* Mobile */
@media (max-width: 820px) {

  .hero,
  .home-hero {
    min-height: 42vh !important;
    height: 42vh !important;
  }

  .research-activity {
    padding: 24px 0 !important;
    gap: 22px !important;
  }

  .person-card {
    padding: 15px !important;
  }

}

/* ==========================================
   COMPACT LAYOUT REFINEMENTS
   ========================================== */


/* ---------- HOMEPAGE ---------- */

/* Make hero less tall so more content is visible */
.hero,
.home-hero {
  min-height: 48vh !important;
  height: 48vh !important;
  max-height: 520px !important;
}

/* If hero uses an image directly */
.hero img,
.home-hero img {
  height: 100% !important;
  object-fit: cover !important;
}

/* Reduce spacing directly below hero */
.home-intro,
.intro-section {
  padding-top: 26px !important;
  padding-bottom: 24px !important;
}

.home-intro p,
.intro-section p {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
}

/* Tighten 4-image grid */
.static-gallery,
.home-gallery {
  margin-top: 18px !important;
  gap: 10px !important;
}



/* ---------- RESEARCH PAGE ---------- */

.research-activities {
  padding-top: 12px !important;
  padding-bottom: 55px !important;
}

.research-activity {
  padding: 30px 0 !important;
  gap: 42px !important;
}

.research-activity h2 {
  margin-bottom: 11px !important;
}

.research-activity p {
  margin-top: 0 !important;
  margin-bottom: 7px !important;
  line-height: 1.52 !important;
}

.research-number {
  margin-bottom: 7px !important;
}

.page-head {
  padding-top: 30px !important;
  padding-bottom: 22px !important;
}



/* ---------- PEOPLE PAGE ---------- */

.people-section {
  padding-top: 5px !important;
  padding-bottom: 55px !important;
}

.people-grid {
  gap: 1px !important;
}

.person-card {
  padding: 18px !important;
  min-height: 0 !important;
}

.person-photo,
.person-placeholder {
  margin-bottom: 12px !important;
}

.person-card h2 {
  margin-bottom: 3px !important;
}

.person-role {
  margin-bottom: 7px !important;
}

.person-bio {
  margin-top: 7px !important;
  margin-bottom: 0 !important;
  line-height: 1.45 !important;
}

.people-intro {
  margin-top: 7px !important;
  line-height: 1.45 !important;
}

.people-kicker {
  margin-bottom: 5px !important;
}


/* slightly less tall portrait cards */
.person-photo-portrait {
  aspect-ratio: 4 / 5 !important;
}


/* Mobile */
@media (max-width: 820px) {

  .hero,
  .home-hero {
    min-height: 42vh !important;
    height: 42vh !important;
  }

  .research-activity {
    padding: 24px 0 !important;
    gap: 22px !important;
  }

  .person-card {
    padding: 15px !important;
  }

}

/* ==================================================
   FINAL COMPACT OVERRIDES
   ================================================== */

/* HOMEPAGE */
body .home-hero {
  min-height: 340px !important;
  height: 340px !important;
  max-height: 340px !important;
}

body .home-intro {
  padding: 38px 0 28px !important;
}

body .home-intro p {
  margin: 0 0 10px !important;
  line-height: 1.55 !important;
}

body .static-gallery {
  padding: 14px 0 28px !important;
}

body .static-gallery-grid {
  gap: 6px !important;
}


/* PAGE HEADINGS */
body .page-head {
  padding: 28px 0 20px !important;
}


/* RESEARCH */
body .research-activities {
  padding: 5px 0 45px !important;
}

body .research-activity {
  padding: 26px 0 !important;
  gap: 38px !important;
}

body .research-activity h2 {
  margin: 0 0 10px !important;
}

body .research-activity p {
  margin: 0 0 6px !important;
  line-height: 1.48 !important;
}

body .research-number {
  margin-bottom: 6px !important;
}


/* PEOPLE */
body .people-section {
  padding: 4px 0 45px !important;
}

body .person-card {
  padding: 14px !important;
  min-height: 0 !important;
}

body .person-photo,
body .person-placeholder {
  margin-bottom: 9px !important;
}

body .person-card h2 {
  margin: 0 0 2px !important;
}

body .person-role {
  margin: 0 0 5px !important;
}

body .person-bio {
  margin: 5px 0 0 !important;
  line-height: 1.40 !important;
}

body .people-intro {
  margin-top: 5px !important;
  line-height: 1.42 !important;
}


/* slightly shorter portrait cards */
body .person-photo-portrait {
  aspect-ratio: 4 / 5 !important;
}


/* MOBILE */
@media (max-width: 820px) {

  body .home-hero {
    min-height: 300px !important;
    height: 300px !important;
  }

  body .research-activity {
    padding: 20px 0 !important;
    gap: 20px !important;
  }

}

/* ==================================================
   EXTRA-COMPACT FINAL REFINEMENTS
   ================================================== */

/* Homepage hero even shorter */
body .home-hero,
body .hero {
  height: 285px !important;
  min-height: 285px !important;
  max-height: 285px !important;
}

/* Homepage title */
body .hero-title-stacked {
  margin: 0 !important;
  text-align: center;
  line-height: 1 !important;
}

body .hero-title-main {
  display: block;
  font-size: 2.05rem !important;
  line-height: 1.05 !important;
  letter-spacing: .02em;
}

body .hero-title-sub {
  display: block;
  margin-top: 9px;

  font-size: .72rem !important;
  line-height: 1 !important;

  font-weight: 500;
  letter-spacing: .20em;
}

/* Homepage intro tighter */
body .home-intro,
body .intro-section {
  padding-top: 24px !important;
  padding-bottom: 18px !important;
}

body .home-intro p,
body .intro-section p {
  margin-bottom: 6px !important;
  line-height: 1.45 !important;
}

/* Homepage gallery closer */
body .static-gallery {
  padding-top: 8px !important;
  padding-bottom: 20px !important;
}


/* Research even tighter */
body .page-head {
  padding-top: 20px !important;
  padding-bottom: 14px !important;
}

body .research-activities {
  padding-top: 0 !important;
  padding-bottom: 32px !important;
}

body .research-activity {
  padding: 18px 0 !important;
  gap: 32px !important;
}

body .research-activity h2 {
  margin-bottom: 7px !important;
}

body .research-activity p {
  margin-bottom: 4px !important;
  line-height: 1.42 !important;
}


/* People even tighter */
body .people-section {
  padding-top: 0 !important;
  padding-bottom: 35px !important;
}

body .person-card {
  padding: 11px !important;
}

body .person-photo,
body .person-placeholder {
  margin-bottom: 7px !important;
}

body .person-bio {
  margin-top: 4px !important;
  line-height: 1.36 !important;
}

body .person-photo-portrait {
  aspect-ratio: 4 / 5 !important;
}

@media (max-width: 820px) {

  body .home-hero,
  body .hero {
    height: 250px !important;
    min-height: 250px !important;
  }

  body .hero-title-main {
    font-size: 1.65rem !important;
  }

  body .hero-title-sub {
    font-size: .62rem !important;
  }

}



/* ALUMNI CSS START */

.people-history {
  max-width: 1180px;
  margin: 34px auto 50px;
  padding: 0 24px;
}

.people-history-block {
  margin-top: 32px;
}

.people-history-block h2 {
  font-size: 1.4rem;
  margin: 0 0 14px;
  padding-bottom: 7px;
  border-bottom: 1px solid #d8d8d8;
}

.alumni-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 44px;
}

.alumni-item {
  padding: 8px 0;
  border-bottom: 1px solid #eeeeee;
  line-height: 1.35;
}

.alumni-item strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
}

.alumni-item span {
  display: block;
  margin-top: 2px;
  font-size: 0.87rem;
  color: #555;
}

.phd-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 44px;
}

.phd-list > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 7px 0;
  border-bottom: 1px solid #eeeeee;
  font-size: 0.9rem;
}

.phd-list strong {
  font-weight: 600;
}

.phd-list span {
  color: #666;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .alumni-list,
  .phd-list {
    grid-template-columns: 1fr;
  }

  .people-history {
    padding: 0 18px;
  }
}

/* ALUMNI CSS END */

/* PROFILE GRID CONSISTENCY START */

/* Kristof's lead card uses the same grid width as all other profiles */
.people-grid .person-card:first-child,
.people-grid > article:first-child {
  grid-column: auto !important;
  width: 100% !important;
}

/* PROFILE GRID CONSISTENCY END */

/* HOME INTRO CENTERING */
.home-copy {
  text-align: center;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.home-copy p {
  margin-left: auto;
  margin-right: auto;
}
