/* Contributors — the index grid and a person's page. Reuses the program-page
 * header/grid shell (.ps-head, .ps-body, .ps-grid) so the library feels like
 * one system. */

.pc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-5); }
@media (max-width: 1100px) { .pc-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .pc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pc-grid { grid-template-columns: 1fr; } }

.pc-card {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: var(--sp-5) var(--sp-4); background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow); text-decoration: none; color: inherit;
  transition: box-shadow 140ms, transform 140ms;
}
.pc-card:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.pc-card__frame {
  width: 7rem; height: 7rem; border-radius: 50%; padding: 4px;
  background: linear-gradient(150deg, var(--gold), var(--gold-soft));
  box-shadow: var(--shadow); margin-bottom: var(--sp-4);
}
.pc-card__frame > div,
.pc-portrait > div {
  position: relative; width: 100%; height: 100%; border-radius: 50%;
  overflow: hidden; background: var(--mist); display: grid; place-items: center;
}
.pc-card__frame img, .pc-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pc-card__name { font-size: var(--text-base); margin: 0 0 var(--sp-1); line-height: 1.3; }
.pc-card__role { font-size: var(--text-sm); color: var(--ink-soft); margin: 0 0 var(--sp-2); }
.pc-card__count { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-deep); margin: auto 0 0; }

.pc-portrait {
  flex: none; width: 10rem; height: 10rem; border-radius: 50%; padding: 5px;
  background: linear-gradient(150deg, var(--gold), var(--gold-soft)); box-shadow: var(--shadow-lift);
}
@media (max-width: 820px) { .pc-portrait { width: 7rem; height: 7rem; } }

.pc-bio {
  background: var(--card); border-left: 3px solid var(--gold);
  border-radius: var(--radius); padding: var(--sp-4) var(--sp-5);
  margin-bottom: var(--sp-6); color: var(--ink-soft); max-width: 46rem;
}
.pc-bio p:last-child { margin-bottom: 0; }

.pc-section { margin-bottom: var(--sp-7); }
.pc-section .ps-toolbar h2 { font-size: var(--text-xl); }
.pc-section .ps-toolbar h2 a { text-decoration: none; color: var(--ink); }
.pc-section .ps-toolbar h2 a:hover { color: var(--navy); }
