/* ── Team Hero ── */
.team-hero {
  position: relative; min-height: 46vh;
  display: flex; align-items: center; overflow: hidden;
  padding: 5rem 0 3rem;
}
.team-hero-glow {
  position: absolute; top: -20%; left: 50%; transform: translateX(-50%);
  width: 600px; height: 500px; border-radius: 50%; z-index: 0; pointer-events: none;
  background: radial-gradient(circle, rgba(14,165,233,0.1) 0%, rgba(56,189,248,0.04) 50%, transparent 70%);
  animation: heroGlowPulse 7s ease-in-out infinite;
}
.team-hero-content {
  position: relative; z-index: 1; text-align: center;
  max-width: 680px; margin: 0 auto; padding: 0 1.5rem;
}
.team-hero-content h1 { margin-bottom: 1rem; }
.team-hero-content .hero-badge { margin-bottom: 1.25rem; }

/* ── Team Section ── */
.team-section { padding: 3rem 0 5rem; }

.team-empty {
  text-align: center; padding: 5rem 2rem; color: var(--text-secondary);
}
.team-empty-icon { font-size: 3.5rem; margin-bottom: 1rem; }
.team-empty h3 { font-size: 1.3rem; margin-bottom: .5rem; }
.team-empty p  { color: var(--text-muted); }

/* ── Role Group ── */
.role-group { margin-bottom: 4rem; }
.role-group:last-child { margin-bottom: 0; }

.role-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
  position: relative;
}
.role-header::after {
  content: ''; position: absolute; bottom: -1px; left: 0; width: 80px; height: 2px;
  background: var(--role-color, var(--accent-1));
  border-radius: 2px;
  box-shadow: 0 0 10px var(--role-color, var(--accent-1));
  filter: blur(0.5px);
}

.role-header-left { display: flex; align-items: center; gap: 1rem; }

.role-icon-wrap {
  width: 48px; height: 48px; border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  background: color-mix(in srgb, var(--role-color, #0ea5e9) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--role-color, #0ea5e9) 35%, transparent);
  box-shadow: 0 4px 14px color-mix(in srgb, var(--role-color, #0ea5e9) 18%, transparent);
}

.role-title { font-size: 1.35rem; font-weight: 800; margin-bottom: .2rem; }
.role-desc  { font-size: .83rem; color: var(--text-muted); }

.role-count {
  font-size: .78rem; font-weight: 700; padding: .35rem .9rem; border-radius: 20px;
  background: color-mix(in srgb, var(--role-color, #0ea5e9) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--role-color, #0ea5e9) 28%, transparent);
  color: var(--role-color, var(--accent-3));
  white-space: nowrap;
}

/* ── Member Cards Grid ── */
.team-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 1.25rem;
}

/* ── Member Card ── */
.member-card {
  position: relative; overflow: hidden;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 2rem 1.25rem 1.5rem;
  text-align: center;
  transition: transform .3s, border-color .3s, box-shadow .3s;
  cursor: default;
}
.member-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--role-color, #0ea5e9) 60%, transparent), transparent);
  opacity: 0; transition: opacity .3s;
}
.member-card-glow {
  position: absolute; bottom: -40px; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(ellipse, color-mix(in srgb, var(--role-color, #0ea5e9) 20%, transparent) 0%, transparent 70%);
  opacity: 0; transition: opacity .4s;
}
.member-card:hover {
  transform: translateY(-6px);
  border-color: color-mix(in srgb, var(--role-color, #0ea5e9) 35%, transparent);
  box-shadow: 0 14px 40px rgba(0,0,0,.3),
              0 0 30px color-mix(in srgb, var(--role-color, #0ea5e9) 10%, transparent);
}
.member-card:hover::before { opacity: 1; }
.member-card:hover .member-card-glow { opacity: 1; }

/* Avatar */
.member-avatar-wrap {
  position: relative; width: 84px; height: 84px;
  margin: 0 auto 1.1rem; flex-shrink: 0;
}
.member-avatar {
  width: 84px; height: 84px; border-radius: 50%; object-fit: cover;
  position: relative; z-index: 1;
  border: 3px solid color-mix(in srgb, var(--role-color, #0ea5e9) 40%, transparent);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06);
  transition: border-color .3s, box-shadow .3s;
}
.member-avatar-ring {
  position: absolute; inset: -5px; border-radius: 50%; z-index: 0;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    color-mix(in srgb, var(--role-color, #0ea5e9) 60%, transparent) 90deg,
    transparent 180deg
  );
  opacity: 0; transition: opacity .3s;
  animation: ringRotate 4s linear infinite paused;
}
.member-card:hover .member-avatar-ring {
  opacity: 1;
  animation-play-state: running;
}
.member-card:hover .member-avatar {
  box-shadow: 0 0 20px color-mix(in srgb, var(--role-color, #0ea5e9) 35%, transparent);
}

@keyframes ringRotate { to { transform: rotate(360deg); } }

/* Text */
.member-info { position: relative; z-index: 1; }
.member-name {
  font-weight: 700; font-size: .95rem; color: var(--text-primary);
  margin-bottom: .3rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.member-title {
  font-size: .75rem; font-weight: 600;
  color: var(--role-color, var(--accent-3));
  letter-spacing: .02em;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .team-cards-grid { grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); }
  .role-header { flex-direction: column; align-items: flex-start; }
  .role-count  { align-self: flex-start; }
}
@media (max-width: 480px) {
  .team-cards-grid { grid-template-columns: 1fr 1fr; }
  .team-hero { min-height: 38vh; }
}
