/* ==========================================================
   PEOPLE PAGE
   ========================================================== */

/* ==========================================================
   PEOPLE / BOARD
   ========================================================== */

.people-section,
.advisor-section {
  border-top: 1px solid var(--ink);
}

.board-list,
.advisor-list {
  width: 100%;
}

.person-row,
.advisor-row {
  display: grid;
  grid-template-columns:
    80px
    minmax(0, 1fr)
    180px;

  gap: 34px;

  padding: 26px 0 28px;

  border-bottom: 1px solid var(--ink);
}


/* INDEX */

.person-index {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.08em;

  opacity: 0.55;
}


/* ROLE */

.person-role {
  margin-bottom: 8px;

  font-family: var(--font-mono);
  font-size: 0.76rem;
  letter-spacing: 0.1em;

  text-transform: uppercase;
}


/* NAME */

.person-main h2 {
  margin: 0 !important;

  font-size: clamp(2rem, 3vw, 3.2rem) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.045em;

  text-transform: uppercase;
}


/* DEGREE / TITLE */

.person-major {
  margin-top: 10px;

  font-family: var(--font-mono);
  font-size: 0.78rem;

  letter-spacing: 0.06em;
}


/* BIO */

.person-bio {
  max-width: 620px;

  margin: 18px 0 0;

  font-family: var(--font-serif);
  font-size: 1.12rem;
  line-height: 1.4;
}


/* LINKS */

.person-links {
  display: flex;
  flex-wrap: wrap;

  gap: 18px;

  margin-top: 20px;
}

.person-link {
  padding-bottom: 2px;

  border-bottom: 1px solid var(--ink);

  font-family: var(--font-mono);
  font-size: 0.78rem;

  letter-spacing: 0.07em;
}


/* PHOTO */

.person-photo-wrap {
  width: 180px;
  aspect-ratio: 4 / 5;

  overflow: hidden;
}

/* PHOTO IMAGE
   The authoritative .person-photo rule appears below the
   compact People intro and includes the grayscale treatment. */


/* FACULTY SECTION */

.advisor-section {
  padding: 70px 0 110px;
}

.advisor-section > .fig-label {
  margin-bottom: 30px;
}


/* EMPTY / ERROR STATES */

.people-loading,
.people-empty,
.people-error {
  padding: 55px 0;

  font-family: var(--font-mono);
  font-size: 0.85rem;

  letter-spacing: 0.1em;
}


/* MOBILE */

@media (max-width: 800px) {

  .person-row,
  .advisor-row {
    grid-template-columns: 50px 1fr;
    gap: 18px;
  }

  .person-photo-wrap {
    grid-column: 2;

    width: 140px;
    margin-top: 12px;
  }

  .person-main h2 {
    font-size: 2rem !important;
  }

}

/* ==========================================================
   PEOPLE INTRO â€” COMPACT
   ========================================================== */

.people-intro {
  padding-top: 60px !important;
  padding-bottom: 60px !important;
  min-height: 0 !important;
}

.people-intro .interior-title {
  margin-bottom: 24px;
}

.people-intro .dek {
  margin-bottom: 0;
}

.person-photo {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  filter: grayscale(100%);
}
