/* ── BADGES extra ── */
.badge-green  { background:rgba(22,163,74,0.1);    color:#166534; border:1px solid rgba(22,163,74,0.2); }
.badge-purple { background:rgba(124,58,237,0.1);   color:#5B21B6; border:1px solid rgba(124,58,237,0.2); }
.badge-gray   { background:rgba(107,114,128,0.1);  color:#374151; border:1px solid rgba(107,114,128,0.2); }

/* ── PERSON CARD ── */
.person-card { transition:all 0.35s cubic-bezier(0.4,0,0.2,1); }
.person-card:hover { transform:translateY(-6px); box-shadow:0 24px 60px rgba(0,63,135,0.15)!important; }
.person-card:hover .person-avatar { transform:scale(1.05); }
.person-avatar { transition:transform 0.3s ease; }

/* ── AVATAR ── */
.avatar-ring {
  width:72px; height:72px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',serif; font-weight:700; font-size:24px;
  border:3px solid rgba(255,255,255,0.8);
  box-shadow:0 4px 15px rgba(0,0,0,0.12);
  position:relative;
}
.avatar-badge {
  position:absolute; bottom:-2px; right:-2px;
  width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:2px solid white;
}

/* ── LOCATION PILL ── */
.location-pill {
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 14px; border-radius:50px; font-size:12px; font-weight:600;
  background:rgba(255,255,255,0.6); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.5); box-shadow:0 2px 8px rgba(0,0,0,0.06);
}

/* ── HERO STAT ── */
.hero-stat {
  padding:16px 24px; border-radius:20px;
  background:rgba(255,255,255,0.15); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.25);
}

/* ── FLAG STRIPE ── */
.flag-stripe {
  height:5px;
  background:linear-gradient(90deg,#007FFF 0%,#007FFF 33%,#F7D117 33%,#F7D117 38%,#CE1126 38%,#CE1126 62%,#F7D117 62%,#F7D117 67%,#007FFF 67%,#007FFF 100%);
}

/* ── ANIMATIONS ── */
@keyframes slideLeft  { from{opacity:0;transform:translateX(30px);}  to{opacity:1;transform:translateX(0);} }
@keyframes slideRight { from{opacity:0;transform:translateX(-30px);} to{opacity:1;transform:translateX(0);} }
.anim-fade-up { animation:fadeUp 0.65s ease both; }
.delay-1 { animation-delay:0.1s; }
.delay-2 { animation-delay:0.2s; }
.delay-3 { animation-delay:0.3s; }
.delay-4 { animation-delay:0.4s; }

/* ── SCROLL REVEAL ── */
.reveal { opacity:0; transform:translateY(20px); transition:opacity 0.6s ease,transform 0.6s ease; }
.reveal.visible { opacity:1; transform:none; }

/* ── QUOTE ── */
.big-quote { font-family:'Cormorant Garamond',serif; font-style:italic; line-height:1.5; }

/* ── ROLE PILL ── */
.role-pill { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:50px; font-size:11px; font-weight:600; }

/* ── VOTE GAUGE ── */
.vote-gauge { height:10px; border-radius:5px; overflow:hidden; background:rgba(0,63,135,0.08); }
.vote-fill  { height:100%; border-radius:5px; transition:width 1.5s cubic-bezier(0.4,0,0.2,1); }

/* ── SECTION DIVIDER ── */
.section-divider { display:flex; align-items:center; gap:16px; margin:40px 0 28px; }
.section-divider::before,
.section-divider::after { content:''; flex:1; height:1px; background:rgba(0,63,135,0.1); }

/* ── PERSONS GRID ── */
.persons-scroll { display:grid; gap:16px; }
@media(min-width:640px)  { .persons-scroll { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .persons-scroll { grid-template-columns:repeat(3,1fr); } }

/* ── PERSON FILTER ── */
.person-filter { cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.person-filter.active { background:#003F87!important; color:white!important; }

/* ── CARD HIDE ── */
.card-hidden { display:none!important; }
