/* ==== Profil joueur ===================================================== */
.pl-hero { min-height: 100vh; gap: 0; }
.pl-belt-name { color: var(--text-2); }
.pl-level {
  font-size: var(--fs-giant); line-height: 0.82; letter-spacing: -0.07em; margin: 18px 0 0;
}
.pl-belt { width: min(340px, 60vw); height: auto; margin-top: clamp(18px, 3vh, 34px); }
.pl-name { margin-top: clamp(36px, 6vh, 64px); font-size: var(--fs-2xl); font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; }
.pl-org { display: flex; align-items: center; gap: 12px; margin-top: 16px; font-size: var(--fs-lg); color: var(--text-2); }
.pl-org .clogo__mono { font-size: 10px; }
.pl-toeic { margin-top: 10px; font-size: var(--fs-lg); color: var(--text-2); }
.pl-toeic b { color: var(--text); font-weight: 700; }
.pl-toeic em { font-style: normal; color: var(--win); font-weight: 600; }
.pl-hero .btn { margin-top: clamp(36px, 6vh, 60px); }

.pl-wrap { max-width: 1120px; margin: 0 auto; padding: 0 var(--gutter); }
.pl-wrap--center { text-align: center; display: flex; flex-direction: column; align-items: center; }
.pl-lead { margin-top: 18px; }

/* Progression : une piste A1 à C2 par compétence */
.pl-skills { margin-top: clamp(48px, 8vh, 88px); display: grid; gap: 34px; }
.pl-skill__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; }
.pl-skill__name { font-size: var(--fs-lg); font-weight: 600; letter-spacing: -0.02em; }
.pl-skill__lvl { font-size: var(--fs-lg); font-weight: 700; letter-spacing: -0.02em; color: var(--text-2); }
.pl-skill__lvl.is-up { color: var(--team-a); }
.pl-skill__lvl i { font-style: normal; font-weight: 400; color: var(--text-3); margin: 0 4px; }
.pl-track { position: relative; height: 10px; border-radius: 5px; background: var(--bg-sunken); overflow: hidden; }
.pl-track__base, .pl-track__gain { position: absolute; top: 0; bottom: 0; width: 0; transition: width 1400ms var(--ease); }
.pl-track__base { left: 0; background: var(--text); border-radius: 5px 0 0 5px; }
.pl-track__gain { left: var(--l); background: var(--team-a); border-radius: 0 5px 5px 0; transition-delay: 500ms; }
.reveal.is-in .pl-track__base, .reveal.is-in .pl-track__gain { width: var(--w); }
.pl-track__tick { position: absolute; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: var(--bg-alt); }
.pl-scale { display: grid; grid-template-columns: repeat(6, 1fr); font-size: var(--fs-xs); font-weight: 600; color: var(--text-3); margin-top: -12px; }
.pl-scale span { padding-left: 4px; }

/* Badges */
.pl-badges { margin-top: clamp(40px, 7vh, 72px); display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }
.pl-badge {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  padding: 30px; border-radius: var(--radius-lg); background: var(--bg-alt);
}
.pl-badge svg { width: 40px; height: 40px; color: var(--team-a); margin-bottom: 18px; }
.pl-badge b { font-size: var(--fs-md); font-weight: 700; letter-spacing: -0.02em; }
.pl-badge small { font-size: var(--fs-sm); color: var(--text-2); line-height: 1.35; }

/* Part du duel */
.pl-duel .lead { margin-top: 18px; }
.pl-points { display: flex; align-items: baseline; justify-content: center; gap: 16px; margin-top: 12px; font-size: var(--fs-giant); color: var(--team-a); line-height: 0.95; }
.pl-points small { font-size: var(--fs-xl); font-weight: 600; letter-spacing: -0.02em; color: var(--text-2); }
.pl-part { color: var(--text); font-weight: 700; }
.pl-link { margin-top: 36px; font-size: var(--fs-md); }

@media (max-width: 700px) {
  .pl-badges { grid-template-columns: 1fr 1fr; }
  .pl-badge { padding: 22px; }
}
