.bio-intro {
  display: grid;
  grid-template-columns: minmax(0, 18rem) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
  padding-block: 3rem;
  border-bottom: 1px solid var(--line);
}
.bio-portrait { width: 100%; height: auto; aspect-ratio: 7 / 6; mix-blend-mode: multiply; }
.bio-intro h1 { margin: 0; font: 400 clamp(2.4rem, 5vw, 4.8rem)/1.1 Georgia, serif; letter-spacing: -0.025em; }
.bio-role { margin: 0 0 1rem; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.12em; }
.bio-credentials { font-size: 1rem; margin: 1rem 0; }
.bio-actions { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 1.75rem; }
.bio-actions a { overflow-wrap: anywhere; text-underline-offset: 0.25em; }
.bio-page .service-content p + p { margin-top: 1rem; }
.bio-qualifications { padding: 1.5rem; background: var(--paper-bright); border: 1px solid var(--line); }
.bio-qualifications section + section { margin-top: 2rem; }
.bio-qualifications ul { padding-left: 1.25rem; margin-bottom: 0; }
.bio-qualifications li { margin-top: 0.65rem; line-height: 1.65; }
@media (max-width: 42rem) {
  .bio-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .bio-portrait { max-width: 15rem; }
}

.bio-position { margin: 0; font-size: 1rem; line-height: 1.5; }
.bio-assignments article { padding-block: 1.4rem; border-bottom: 1px solid var(--line); }
.bio-assignments article:first-of-type { padding-top: 0.25rem; }
.bio-assignments article:last-of-type { border-bottom: 0; padding-bottom: 0; }
.bio-assignments h3 { margin: 0 0 0.65rem; font: 400 1.35rem/1.35 Georgia, serif; color: var(--ink); }

.team-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3.5rem 2rem; padding-block:2rem 4rem; }
.team-directory article { min-width:0; }
.team-card-photo,.team-card-placeholder { display:flex; width:100%; aspect-ratio:7/6; align-items:center; justify-content:center; overflow:hidden; background:var(--paper-bright); }
.team-card-photo img { width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.team-directory h2 { margin:1.25rem 0 .5rem; font:400 clamp(1.5rem,2.5vw,2rem)/1.2 Georgia,serif; }
.team-directory h2 a { text-decoration:none; }
.team-directory p { margin:0 0 .75rem; line-height:1.5; }
.team-profile-link { text-underline-offset:.3em; }
.team-card-placeholder { border:1px solid var(--line); color:var(--ink); }
.team-card-placeholder span { font:400 4rem Georgia,serif; opacity:.4; }
.team-coming-soon { font-size:.9rem; opacity:.75; }
.staff-portrait { aspect-ratio:419/540; max-width:16rem; }
@media(max-width:60rem){.team-directory{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:36rem){.team-directory{grid-template-columns:1fr;gap:2.75rem;}.team-card-photo,.team-card-placeholder{max-width:24rem;}}

/* Keep the full team directory and portrait surrounds clean white. */
.team-directory-page,
.team-directory-page .service-main,
.team-directory-page .team-card-photo,
.team-directory-page .team-card-placeholder { background: #fff; }

/* Give the three CV portraits more breathing room on white surfaces. */
.team-directory .staff-card-photo { padding: .75rem 1.75rem 0; box-sizing: border-box; background: #fff; }
.team-directory .staff-card-photo img { object-fit: contain; object-position: center bottom; filter: brightness(1.035); }
.bio-page .portrait-window.staff-portrait { max-width: 20rem; aspect-ratio: 7 / 6; padding-inline: 1.5rem; box-sizing: border-box; background: #fff; }
.bio-page .staff-portrait .bio-portrait { object-fit: contain; object-position: center bottom; filter: brightness(1.035); }
