/* =============================================================
   Team — photo avatar
   ============================================================= */

.team-card__avatar--photo {
  position: relative;          /* needed for shine sweep */
  width: 100px;
  height: 100px;
  overflow: hidden;
  padding: 0;
  background: var(--color-mist, #F0F2F6);
  border: 2.5px solid var(--color-border, #E2E6EC);
  border-radius: 50%;
  transition:
    border-color 0.30s ease,
    box-shadow   0.35s ease;
}

.team-card__avatar--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  border-radius: 50%;
  transition: transform 0.45s cubic-bezier(0.34, 1.26, 0.64, 1);
}

/* ── Zoom on hover ─────────────────────────────────── */
.team-card:hover .team-card__avatar--photo img {
  transform: scale(1.12);
}

/* ── Crimson ring glow ──────────────────────────────── */
.team-card:hover .team-card__avatar--photo {
  border-color: var(--color-secondary, #B22234);
  box-shadow:
    0 0 0 4px rgba(178, 34, 52, 0.14),
    0 10px 28px rgba(178, 34, 52, 0.24);
}

/* ── Shine sweep (white light across the circle) ───── */
.team-card__avatar--photo::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(
    115deg,
    rgba(255, 255, 255, 0)    0%,
    rgba(255, 255, 255, 0.36) 48%,
    rgba(255, 255, 255, 0)   100%
  );
  transform: translateX(-130%) skewX(-10deg);
  transition: transform 0.55s ease;
  pointer-events: none;
  z-index: 2;
}

.team-card:hover .team-card__avatar--photo::before {
  transform: translateX(130%) skewX(-10deg);
}

/* ── Past committee section ─────────────────────────── */
.team--past {
  background: var(--color-bg);
}

.team-card--past {
  background: var(--color-card, #FAFBFD);
}

.team-card--past .team-card__avatar--photo {
  filter: grayscale(30%);
  transition:
    filter        0.35s ease,
    border-color  0.30s ease,
    box-shadow    0.35s ease;
}

/* Past: lift grayscale, gold ring on hover */
.team-card--past:hover .team-card__avatar--photo {
  filter: grayscale(0%);
  border-color: var(--color-accent, #D4A843);
  box-shadow:
    0 0 0 4px rgba(212, 168, 67, 0.18),
    0 10px 28px rgba(212, 168, 67, 0.22);
}

/* =============================================================
   Key Milestones — Gravity-well grid
   A canvas draws the grid; an invisible ball moves through it
   on a Lissajous path, bending grid lines toward itself.
   JS: assets/js/gravity.js
   ============================================================= */

.timeline-section {
  position: relative;
  overflow: hidden;
}

.timeline-section .container {
  position: relative;
  z-index: 1;
}

/* Canvas sits behind all content */
.tl-gravity-canvas {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 0;
  display: block;
}

/* Crosshair hints that the section is interactive */
.timeline-section { cursor: crosshair; }

/* Restore default cursor on text/card content */
.timeline__card,
.timeline__card * {
  cursor: auto;
}
