.person-card {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
}

.person-portrait {
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
}

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

.person-card-copy { min-width: 0; }

.profile-links {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-top: 1rem;
}

.profile-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--teal);
  background: var(--white);
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
}

.profile-icon-link:hover,
.profile-icon-link:focus-visible {
  color: var(--white);
  background: var(--teal);
  transform: translateY(-1px);
}

.profile-icon-link svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: currentColor;
}

.profile-icon-link .icon-cutout { fill: var(--white); }
.profile-icon-link:hover .icon-cutout,
.profile-icon-link:focus-visible .icon-cutout { fill: var(--teal); }

@media (max-width: 560px) {
  .person-card { grid-template-columns: 5rem minmax(0, 1fr); gap: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .profile-icon-link { transition: none; }
  .profile-icon-link:hover,
  .profile-icon-link:focus-visible { transform: none; }
}
