/* DEV-21: existing Weboski components, Geist and theme tokens; no new visual direction. */
.team-profile-role { color: var(--dark); margin-bottom: var(--space-16); }
.team-profile-bio .image-text-frame { aspect-ratio: 1; }
.team-profile-bio .image-text-item { align-items: start; }
.team-profile-bio .image-text-content { min-width: 0; }
.team-profile-bio .team-photo-parallax { padding: 0; background: transparent; }
.team-photo-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-24); width: 100%; max-width: 720px; padding: 0; }
.team-profile-bio .team-photo-single { grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 560px; min-height: 0; padding: 0; }
@media (prefers-reduced-motion: no-preference) {
  .js .team-photo-single {
    opacity: 0;
    transform: translateY(var(--space-32));
    transition: opacity var(--dur) var(--ease-out), transform var(--dur-slow) var(--ease-out);
  }
  .js .team-photo-single .media-parallax-photo {
    clip-path: inset(18% 8% 18% 8% round 32px);
    transition: clip-path var(--dur-slow) var(--ease-out);
  }
  .js .team-photo-single.is-photo-visible { opacity: 1; transform: none; }
  .js .team-photo-single.is-photo-visible .media-parallax-photo { clip-path: inset(0% 0% 0% 0% round var(--radius-md)); }
}
/* Keep faces in frame; the existing module animates the photo layers themselves. */
.team-photo-pair .media-parallax-photo img,
.team-photo-single .media-parallax-photo img { position: static; inset: auto; height: 100%; transform: none !important; }
.team-profile-bio .team-photo-portrait { aspect-ratio: 5 / 6; }
.team-profile-bio .team-photo-work { aspect-ratio: 28 / 19; }
@media (min-width: 992px) {
  .team-profile-bio.media-list-refined .image-text-item {
    /* Same column boundary as the specializations in .project-summary. */
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
    gap: 8%;
  }
  .team-photo-pair { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0; }
  .team-photo-portrait { grid-column: 1 / span 9; grid-row: 1; }
  .team-photo-work {
    grid-column: 5 / -1;
    grid-row: 2;
    margin-top: calc(-1 * var(--space-96));
    position: relative;
    z-index: 1;
  }
}
.team-profile-bio .team-profile-no-photo { display: block; }
.team-bio-copy { max-width: 65ch; }
.team-bio-copy p { text-wrap: pretty; }
.team-bio-copy ul, .team-bio-copy ol { padding-left: var(--space-24); margin-block: var(--space-24); }
.team-bio-copy li { font-size: var(--fs-body); line-height: 1.6; margin-bottom: var(--space-8); }
.team-profile-links { display: flex; flex-wrap: wrap; gap: var(--space-16) var(--space-24); margin-top: var(--space-32); }
.team-profile-links a { overflow-wrap: anywhere; }
.team-profile-summary { padding-block: var(--section-y-compact); }
.team-profile-summary dl { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
@media (min-width: 1280px) {
  /* Match the three detail columns: bio spans two, links align with credentials. */
  .team-profile-bio .image-text-content:has(.team-profile-links) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-24);
    align-items: start;
  }
  .team-profile-bio .image-text-content:has(.team-profile-links) > .intro { grid-column: span 2; min-width: 0; }
  .team-profile-bio .team-profile-links {
    grid-column: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-16);
    min-width: 0;
    margin-top: 0;
  }
  .team-profile-links a { max-width: 100%; }
  .team-profile-links svg { flex-shrink: 0; }
}
.team-details-list { list-style: none; margin: 0; padding: 0; }
.team-details-list li + li { margin-top: var(--space-12); }
.team-credential-meta { display: block; color: var(--gray); font-size: var(--fs-caption); }
.team-author { display: flex; align-items: start; gap: var(--space-24); padding-block: var(--section-y-compact); }
.team-author-photo { flex: 0 0 8rem; overflow: hidden; border-radius: var(--radius); }
.team-author-photo:empty { display: none; }
.team-author-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.team-author > div { max-width: 65ch; min-width: 0; }
.team-author-label { color: var(--gray); font-size: var(--fs-caption); margin-bottom: var(--space-12); }
.team-author h2 { font-size: var(--fs-h3); margin-bottom: var(--space-12); }
.team-author p { margin-bottom: var(--space-12); }
.team-network-people li > a { display: flex; flex-direction: column; align-items: center; gap: var(--space-12); }
.team-profile-links a:focus-visible, .team-author a:focus-visible, .team-details-list a:focus-visible, .team-network-people a:focus-visible { outline: 2px solid var(--dark); outline-offset: 4px; }
@media (max-width: 575px) {
  .team-author { flex-direction: column; }
  .team-author-photo { flex-basis: auto; width: 6rem; }
}
