:root {
  --forest: #173f35;
  --forest-deep: #102f29;
  --moss: #58745d;
  --sage: #dfe8dd;
  --sage-light: #f2f6ef;
  --lake: #3e6f73;
  --maize: #ffcb05;
  --ink: #20302a;
  --muted: #66736c;
  --paper: #fcfdf9;
  --soft: #f2f6ef;
  --line: #d5dfd3;
  --accent: #4f6f52;
}

body {
  color: var(--ink);
  background: var(--paper);
  font-size: 1.03rem;
  line-height: 1.68;
}

a { color: #315f56; }
a:hover { color: var(--forest-deep); }

.navbar {
  box-shadow: 0 1px 0 rgba(255,255,255,.10);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar-brand { font-weight: 750; letter-spacing: .01em; }
.navbar-nav .nav-link { font-weight: 550; }

/* Editorial home hero */
.editorial-hero {
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(300px,.94fr);
  min-height:620px;
  margin:0 0 4rem;
  background:#f5f7f1;
  border-bottom:1px solid var(--line);
}
.editorial-hero-copy {
  padding:clamp(3.5rem,8vw,7rem) clamp(1.5rem,6vw,6rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.editorial-hero .eyebrow,
.section-kicker {
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.75rem;
  font-weight:800;
  color:var(--accent);
}
.editorial-hero h1 {
  font-size:clamp(2.8rem,6vw,5.8rem);
  line-height:.98;
  max-width:850px;
  margin:.75rem 0 1.35rem;
  color:var(--forest-deep);
  font-weight:780;
  letter-spacing:-.035em;
}
.editorial-hero .lead {
  max-width:760px;
  font-size:clamp(1.08rem,2vw,1.34rem);
  line-height:1.55;
  color:#46564f;
}
.editorial-hero-media {
  position:relative;
  min-height:420px;
  overflow:hidden;
}
.editorial-hero-media img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-caption {
  position:absolute;
  left:1rem;
  bottom:1rem;
  max-width:80%;
  background:rgba(16,47,41,.82);
  color:#fff;
  padding:.55rem .75rem;
  font-size:.77rem;
  line-height:1.35;
  border-radius:4px;
  backdrop-filter:blur(5px);
}
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.7rem; }
.hero-actions a { text-decoration:none; padding:.69rem 1.02rem; border-radius:999px; font-weight:700; }
.hero-actions .primary { background:var(--forest); color:white; }
.hero-actions .secondary { border:1px solid #9eb0a3; color:var(--forest); background:transparent; }
.hero-actions .secondary:hover { background:#e9eee7; }

.content-block { max-width:1150px; margin-inline:auto; padding-inline:1rem; }
.page-intro { max-width:780px; font-size:1.16rem; color:#4f5f57; margin-bottom:2.8rem; }
.section-title { font-size:clamp(1.8rem,3vw,2.6rem); margin-top:0; }

/* Research themes: less card-like, more editorial */
.research-lines {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 2.5rem;
  margin:1.2rem 0 4rem;
  border-top:1px solid var(--line);
}
.research-line {
  padding:1.6rem 0 1.8rem;
  border-bottom:1px solid var(--line);
}
.research-line h3 { margin:.15rem 0 .55rem; font-size:1.35rem; }
.research-line p { color:var(--muted); margin:0; }
.research-index { color:#7d9582; font-weight:800; font-size:.8rem; letter-spacing:.08em; }

.card-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1rem; margin:1.3rem 0 2rem; }
.topic-card, .project-card, .person-card, .stat-card {
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.88);
  padding:1.25rem;
  box-shadow:0 6px 20px rgba(23,63,53,.045);
}
.topic-card { grid-column:span 6; min-height:210px; border-top:3px solid #8ca38c; }

/* Visual project tiles */
.project-grid { gap:1.4rem; }
.project-card { grid-column:span 6; overflow:hidden; padding:0; transition:transform .18s ease, box-shadow .18s ease; }
.project-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(23,63,53,.12); }
.project-image { width:100%; aspect-ratio:16/9.1; object-fit:cover; display:block; border-bottom:1px solid var(--line); }
.project-card-body { padding:1.25rem 1.35rem 1.45rem; }
.project-card-body h3 { margin:.05rem 0 .5rem; }
.project-card-body p { color:var(--muted); }
.project-card a { font-weight:700; text-decoration:none; }
.project-card .project-meta { text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; color:var(--accent); font-weight:800; }
.project-card .project-links { margin-top:.9rem; font-size:.92rem; }
.project-featured { grid-column:span 12; display:grid; grid-template-columns:minmax(320px,1.05fr) minmax(0,.95fr); }
.project-featured .project-image { height:100%; aspect-ratio:auto; border-bottom:0; border-right:1px solid var(--line); }

/* People */
.person-card { grid-column:span 4; overflow:hidden; }
.person-photo { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:center; border-radius:10px; display:block; margin:0 0 1rem; background:var(--soft); }
.person-photo-placeholder { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--forest),var(--lake)); color:white; font-size:2.4rem; font-weight:800; letter-spacing:.06em; }
.director-card { display:grid; grid-template-columns:minmax(180px,250px) 1fr; gap:1.7rem; align-items:center; }
.director-card .person-photo { margin:0; }
.person-role { color:var(--accent); font-weight:700; margin-top:-.4rem; }
.person-meta { font-size:.9rem; color:var(--muted); }

/* Compact alumni gallery */
.alumni-grid {
  display:grid;
  grid-template-columns:repeat(8,minmax(90px,1fr));
  gap:1.25rem;
  margin:1.3rem 0 3rem;
}
.alumni-card { text-align:center; }
.alumni-photo {
  width:96px;
  height:96px;
  max-width:100%;
  object-fit:cover;
  border-radius:50%;
  display:block;
  margin:0 auto .7rem;
  border:2px solid #e0e7de;
  box-shadow:0 5px 14px rgba(23,63,53,.08);
}
.alumni-name { font-size:.86rem; line-height:1.28; color:#405047; font-weight:650; }

.stat-card { grid-column:span 3; text-align:center; background:var(--soft); }
.card-grid h3 { margin-top:.1rem; }
.card-grid p { color:var(--muted); }
.card-grid .tag {
  display:inline-block;
  font-size:.75rem;
  font-weight:750;
  padding:.26rem .54rem;
  border-radius:999px;
  background:#e7eee4;
  color:#405d47;
  margin:0 .2rem .25rem 0;
}

/* Publications */
.publication-list { margin:1.4rem 0 3rem; border-top:1px solid var(--line); }
.publication-item {
  display:grid;
  grid-template-columns:90px minmax(0,1fr);
  gap:1.4rem;
  padding:1.45rem 0;
  border-bottom:1px solid var(--line);
}
.publication-year { color:#77907c; font-weight:800; font-size:.86rem; padding-top:.15rem; }
.publication-title { font-weight:720; color:#273c33; line-height:1.4; }
.publication-authors { color:var(--muted); margin-top:.28rem; font-size:.94rem; }
.publication-venue { margin-top:.22rem; font-size:.94rem; }
.publication-links { margin-top:.45rem; font-size:.82rem; text-transform:uppercase; letter-spacing:.045em; font-weight:750; }
.publication-links a { margin-right:.85rem; text-decoration:none; }

/* Accent band */
.band {
  background:linear-gradient(180deg,#f1f6ee 0%,#edf3ea 100%);
  margin:3rem calc(50% - 50vw);
  padding:3rem max(1rem, calc((100vw - 1150px)/2));
  border-top:1px solid #dfe8dd;
  border-bottom:1px solid #dfe8dd;
}

.quarto-listing .listing-title { font-weight:750; }
.quarto-listing .listing-description { color:var(--muted); }
.pub-note { color:var(--muted); font-size:.92rem; }
.quarto-title-banner, .quarto-title-block { background:transparent; }
h1, h2, h3 { color:#243b32; }
h2 { margin-top:2.6rem; }
hr { border-color:var(--line); }
footer.footer { background:#eef3eb; border-top:1px solid var(--line); }

@media (max-width: 980px) {
  .editorial-hero { grid-template-columns:1fr; min-height:0; }
  .editorial-hero-media { min-height:420px; }
  .research-lines { grid-template-columns:1fr; }
  .project-featured { grid-template-columns:1fr; }
  .project-featured .project-image { height:auto; aspect-ratio:16/9; border-right:0; border-bottom:1px solid var(--line); }
  .alumni-grid { grid-template-columns:repeat(4,minmax(90px,1fr)); }
}
@media (max-width: 900px) {
  .topic-card, .project-card { grid-column:span 12; }
  .person-card { grid-column:span 6; }
  .stat-card { grid-column:span 6; }
}
@media (max-width: 650px) {
  .director-card { grid-template-columns:1fr; }
  .director-card .person-photo { max-width:260px; }
  .publication-item { grid-template-columns:1fr; gap:.2rem; }
  .publication-year { padding:0; }
}
@media (max-width: 560px) {
  .person-card, .stat-card { grid-column:span 12; }
  .alumni-grid { grid-template-columns:repeat(2,minmax(90px,1fr)); }
  .editorial-hero-copy { padding:3rem 1.25rem; }
  .editorial-hero-media { min-height:320px; }
}
