/* ============================================================================
   PASA MUSIK — CARROUSEL DU ROSTER
   ----------------------------------------------------------------------------
   Une bande éditoriale sombre en ouverture de page : les photographies des
   artistes y gagnent la profondeur et le contraste qu'un fond blanc leur
   refusait, et le lecteur Spotify s'y intègre sans jamais couvrir les visages.

   Sommaire
     00. Jetons propres au carrousel
     01. La bande
     02. En-tête de section (titre + flèches)
     03. Zone de défilement
     04. Carte artiste
     05. Bouton et lecteur Spotify
     06. Pied de section
     07. Entrée en scène
     08. Responsive
     09. prefers-reduced-motion
   ========================================================================== */

/* ===========================================================================
   00. JETONS
   =========================================================================== */
.pm-roster {
  --rc-gap:    20px;
  --rc-w:      clamp(244px, 22.5vw, 324px);
  --rc-radius: 18px;
  --rc-pad:    clamp(20px, calc((100vw - 1240px) / 2), 240px);

  --rc-ink:    #06161d;
  --rc-ink-2:  #0a222c;
  --rc-mist:   rgba(255, 255, 255, .62);
  --rc-mist-2: rgba(255, 255, 255, .40);
  --rc-hair:   rgba(255, 255, 255, .13);
  --rc-green:  #1DB954;
}

/* ===========================================================================
   01. LA BANDE
   =========================================================================== */
.pm-hero.pm-hero--roster { background: var(--rc-ink); }

.pm-roster {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(40px, 5.2vw, 76px) 0 clamp(26px, 3vw, 40px);
  background: var(--rc-ink);
  color: #fff;
}

/* Halo très diffus repris de la palette du logo : la bande n'est jamais
   un aplat noir mort. */
.pm-roster__aura {
  position: absolute;
  inset: -30% -10% auto -10%;
  height: 120%;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(54% 48% at 18% 8%,  rgba(243, 175, 32, .16) 0%, transparent 62%),
    radial-gradient(48% 44% at 62% 0%,  rgba(239, 68, 36, .14)  0%, transparent 60%),
    radial-gradient(62% 56% at 92% 22%, rgba(4, 115, 145, .30)  0%, transparent 64%);
  filter: blur(6px);
}

/* Liseré de marque en pied de bande : la signature chromatique du logo. */
.pm-roster::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #F3AF20 0%, #EF4424 34%, #8B4A7D 68%, #1C6FB8 100%);
  opacity: .9;
}

/* ===========================================================================
   02. EN-TÊTE DE SECTION
   =========================================================================== */
.pm-roster__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 32px;
  padding: 0 var(--rc-pad) clamp(26px, 3vw, 38px);
}

.pm-roster__headings { max-width: 46ch; }

.pm-roster__eyebrow {
  margin: 0 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
}
.pm-roster__eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, #F3AF20, #EF4424);
}

.pm-roster__title.pm-roster__title {
  margin: 0;
  color: #fff;
  font-size: clamp(27px, 3.5vw, 44px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.pm-roster__tools {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-left: auto;
}

.pm-roster__hint {
  margin: 0;
  max-width: 30ch;
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .46);
}

/* Aucune commande de navigation : ni flèche, ni point de pagination. Le
   mouvement continu EST la présentation ; le lien en pied de bande mène à la
   liste complète. */

/* ===========================================================================
   03. LA BANDE EN MOUVEMENT
   =========================================================================== */
.pm-roster__viewport {
  /* Plus aucun défilement : la bande avance d'elle-même, il n'y a donc rien à
     faire défiler. C'est aussi ce qui garantit qu'aucune barre, aucun rebond
     et aucun geste parasite ne vient perturber le mouvement. */
  overflow: hidden;
  /* Les cartes s'effacent en douceur aux deux bords : la bande n'a ni début
     ni fin, elle traverse la page. */
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 3.5%, #000 96.5%, transparent 100%);
  /* L'arrêt au survol se lit comme une intention, pas comme une panne : la
     bande s'éclaircit très légèrement au moment où elle s'immobilise. */
  transition: filter .5s cubic-bezier(.4, 0, .2, 1);
}
@media (hover: hover) {
  .pm-roster__viewport:hover { filter: saturate(1.05) brightness(1.03); }
}

.pm-roster__track {
  display: flex;
  margin: 0;
  /* AUCUNE marge intérieure horizontale, et AUCUN « gap » : l'écart est porté
     par chaque carte (margin-right), la dernière comprise. La largeur de la
     bande vaut alors exactement deux séquences, et le pas de la boucle vaut
     exactement une séquence. C'est cette égalité qui rend le raccord
     invisible ; un « gap » laisserait un demi-écart de décalage à chaque tour,
     et une marge intérieure ramènerait un trou au début de chaque boucle. */
  padding: 6px 0 10px;
  list-style: none;
  width: max-content;
}

/* LE MOUVEMENT.
   Une seule animation, confiée au compositeur graphique : la bande se
   translate d'exactement une séquence, puis repart de zéro. À cet instant,
   l'image affichée est rigoureusement celle du départ — d'où l'absence de
   retour en arrière et de vide entre deux répétitions.
   Elle n'est armée qu'une fois le pas mesuré par le script (--rc-pitch) :
   jamais de première boucle approximative. */
.pm-roster--flow .pm-roster__track {
  animation: pm-roster-flow 180s linear infinite;
  will-change: transform;
}
@keyframes pm-roster-flow {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-1 * var(--rc-pitch, 50%)), 0, 0); }
}

/* --- Ce qui suspend le mouvement ---------------------------------------- */
/* Le survol et le focus clavier, sur les appareils dotés d'un pointeur fin.
   Sur téléphone et tablette, rien de ceci ne s'applique : la bande continue
   d'avancer, puisque c'est elle qui présente le roster. */
@media (hover: hover) {
  .pm-roster__viewport:hover .pm-roster__track,
  .pm-roster__viewport:focus-within .pm-roster__track { animation-play-state: paused; }
}
/* Un lecteur Spotify ouvert (on n'écoute pas une carte qui s'échappe), la
   bande hors de l'écran, ou l'onglet passé en arrière-plan. */
.pm-roster--hold .pm-roster__track,
.pm-roster--rest .pm-roster__track { animation-play-state: paused; }

/* ===========================================================================
   04. CARTE ARTISTE
   =========================================================================== */
.pm-rcard {
  position: relative;
  flex: 0 0 auto;
  width: var(--rc-w);
  margin-right: var(--rc-gap);
  aspect-ratio: 3 / 4;
  border-radius: var(--rc-radius);
  background: #0e2730;
  scroll-snap-align: center;
}

.pm-rcard__link {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: inherit;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .07) inset,
              0 16px 40px rgba(0, 0, 0, .34);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1),
              box-shadow .5s cubic-bezier(.16, 1, .3, 1);
}
.pm-rcard__link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

.pm-rcard__frame { position: absolute; inset: 0; display: block; overflow: hidden; }

/* La photographie est le sujet : jamais déformée, toujours cadrée sur le
   visage grâce au point de focalisation propre à chaque image. */
.pm-rcard__img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 32%;             /* remplacé image par image en ligne */
  transform: scale(1.012);
  transition: transform 1.1s cubic-bezier(.16, 1, .3, 1),
              filter .6s cubic-bezier(.16, 1, .3, 1);
  will-change: transform;
}

/* Dégradé de lisibilité : opaque en bas, totalement transparent sur le haut
   de l'image, là où se trouvent les visages. */
.pm-rcard__veil {
  position: absolute;
  inset: 0;
  display: block;
  background: linear-gradient(to top,
              rgba(4, 18, 24, .93) 0%,
              rgba(4, 18, 24, .72) 14%,
              rgba(4, 18, 24, .34) 32%,
              rgba(4, 18, 24, .08) 50%,
              rgba(4, 18, 24, 0)   68%);
  transition: opacity .5s cubic-bezier(.16, 1, .3, 1);
}

.pm-rcard__meta {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  display: block;
  padding: 22px 22px 20px;
  transition: opacity .35s ease, transform .45s cubic-bezier(.16, 1, .3, 1);
}
/* Place réservée pour le bouton Spotify : un nom long ne passe jamais dessous. */
.pm-rcard--spotify .pm-rcard__meta { padding-right: 72px; }

.pm-rcard__name {
  display: block;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -.015em;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .55), 0 2px 22px rgba(0, 0, 0, .55);
}

.pm-rcard__go {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 9px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .78);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .4s ease, transform .45s cubic-bezier(.16, 1, .3, 1);
}
.pm-rcard__go svg { width: 15px; height: 15px; }

/* --- Survol : l'image respire, le libellé se révèle --- */
@media (hover: hover) {
  .pm-rcard__link:hover { transform: translateY(-6px); box-shadow: 0 1px 0 rgba(255,255,255,.1) inset, 0 28px 60px rgba(0, 0, 0, .5); }
  .pm-rcard__link:hover .pm-rcard__img { transform: scale(1.07); }
  .pm-rcard__link:hover .pm-rcard__veil { opacity: .96; }
  .pm-rcard__link:hover .pm-rcard__go,
  .pm-rcard__link:focus-visible .pm-rcard__go { opacity: 1; transform: none; }
}

/* ===========================================================================
   05. BOUTON ET LECTEUR SPOTIFY
   =========================================================================== */
.pm-rcard__play {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 18px;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 50%;
  background: rgba(7, 18, 23, .66);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
          backdrop-filter: blur(12px) saturate(140%);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .34);
  transition: background-color .3s ease, border-color .3s ease,
              transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s ease;
}
.pm-rcard__play svg { width: 23px; height: 23px; display: block; }
.pm-rcard__play:hover,
.pm-rcard__play:focus-visible {
  background: var(--rc-green);
  border-color: var(--rc-green);
  transform: scale(1.09);
  box-shadow: 0 10px 26px rgba(29, 185, 84, .44);
}
.pm-rcard__play:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.pm-rcard__play:active { transform: scale(1.01); }

/* Petit égaliseur affiché pendant l'écoute. */
.pm-rcard__play-wave { display: none; align-items: flex-end; gap: 2px; height: 15px; }
.pm-rcard__play-wave i {
  width: 2.5px;
  border-radius: 2px;
  background: currentColor;
  animation: pm-rc-wave .9s ease-in-out infinite;
}
.pm-rcard__play-wave i:nth-child(1) { height: 42%; animation-delay: 0s; }
.pm-rcard__play-wave i:nth-child(2) { height: 92%; animation-delay: .18s; }
.pm-rcard__play-wave i:nth-child(3) { height: 62%; animation-delay: .36s; }
.pm-rcard__play-wave i:nth-child(4) { height: 100%; animation-delay: .1s; }
@keyframes pm-rc-wave {
  0%, 100% { transform: scaleY(.42); }
  50%      { transform: scaleY(1); }
}

.pm-rcard--playing .pm-rcard__play {
  background: var(--rc-green);
  border-color: var(--rc-green);
}
.pm-rcard--playing .pm-rcard__play > svg { display: none; }
.pm-rcard--playing .pm-rcard__play-wave { display: flex; }

/* --- Le lecteur : en bas de carte seulement --- */
.pm-rcard__player {
  position: absolute;
  z-index: 4;
  left: 10px;
  right: 10px;
  bottom: 10px;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(6, 17, 22, .80);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
          backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, .15);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .5);
  animation: pm-rc-rise .42s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes pm-rc-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

.pm-rcard__playerbar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 7px 7px 13px;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
}
.pm-rcard__playerlabel {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .56);
  white-space: nowrap;
}
.pm-rcard__playerlink {
  margin-left: auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rc-green);
  text-decoration: none;
  white-space: nowrap;
  transition: color .25s ease;
}
.pm-rcard__playerlink:hover { color: #3ee57a; text-decoration: underline; }
.pm-rcard__close {
  flex: none;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .09);
  color: rgba(255, 255, 255, .8);
  cursor: pointer;
  transition: background-color .25s ease, color .25s ease;
}
.pm-rcard__close svg { width: 13px; height: 13px; }
.pm-rcard__close:hover { background: rgba(255, 255, 255, .2); color: #fff; }

.pm-rcard__embed { line-height: 0; }
.pm-rcard__embed iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 152px;
  border: 0;
}

/* Pendant l'écoute, le nom s'efface : il est déjà dans le lecteur, et la
   photographie reste dégagée. */
.pm-rcard--playing .pm-rcard__meta { opacity: 0; transform: translateY(10px); }
.pm-rcard--playing .pm-rcard__link { transform: translateY(-6px); }
.pm-rcard--playing .pm-rcard__img { transform: scale(1.05); }

/* ===========================================================================
   06. PIED DE SECTION
   =========================================================================== */
.pm-roster__sr {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.pm-roster__foot {
  padding: clamp(22px, 2.6vw, 34px) var(--rc-pad) 0;
}
.pm-roster__all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 24px;
  border: 1px solid var(--rc-hair);
  border-radius: 999px;
  background: rgba(255, 255, 255, .04);
  color: rgba(255, 255, 255, .92);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .3s ease, border-color .3s ease,
              color .3s ease, transform .3s cubic-bezier(.16, 1, .3, 1);
}
.pm-roster__all svg {
  width: 16px; height: 16px;
  transition: transform .3s cubic-bezier(.16, 1, .3, 1);
}
.pm-roster__all:hover,
.pm-roster__all:focus-visible {
  background: #fff;
  border-color: #fff;
  color: var(--rc-ink);
  transform: translateY(-2px);
}
.pm-roster__all:hover svg { transform: translateX(4px); }

/* ===========================================================================
   07. ENTRÉE EN SCÈNE
   =========================================================================== */
.pm-roster .pm-roster__headings,
.pm-roster .pm-roster__tools,
.pm-roster .pm-roster__foot {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .8s cubic-bezier(.16, 1, .3, 1),
              transform .8s cubic-bezier(.16, 1, .3, 1);
}
.pm-roster .pm-rcard {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .75s cubic-bezier(.16, 1, .3, 1),
              transform .75s cubic-bezier(.16, 1, .3, 1);
}
.pm-roster--in .pm-roster__headings,
.pm-roster--in .pm-roster__tools,
.pm-roster--in .pm-roster__foot,
.pm-roster--in .pm-rcard { opacity: 1; transform: none; }

.pm-roster--in .pm-roster__tools { transition-delay: .08s; }
.pm-roster--in .pm-roster__foot  { transition-delay: .18s; }
.pm-roster--in .pm-rcard:nth-child(1) { transition-delay: .06s; }
.pm-roster--in .pm-rcard:nth-child(2) { transition-delay: .12s; }
.pm-roster--in .pm-rcard:nth-child(3) { transition-delay: .18s; }
.pm-roster--in .pm-rcard:nth-child(4) { transition-delay: .24s; }
.pm-roster--in .pm-rcard:nth-child(5) { transition-delay: .30s; }
.pm-roster--in .pm-rcard:nth-child(6) { transition-delay: .36s; }
.pm-roster--in .pm-rcard:nth-child(7) { transition-delay: .42s; }
.pm-roster--in .pm-rcard:nth-child(n+8) { transition-delay: .46s; }

/* ===========================================================================
   08. RESPONSIVE
   =========================================================================== */
@media (max-width: 1024px) {
  .pm-roster { --rc-w: clamp(232px, 36vw, 288px); --rc-gap: 16px; --rc-pad: 24px; }
  .pm-roster__tools { width: 100%; justify-content: space-between; margin-left: 0; }
  .pm-roster__hint { max-width: 38ch; }
}

@media (max-width: 680px) {
  .pm-roster {
    --rc-w: min(76vw, 310px);
    --rc-gap: 14px;
    --rc-pad: 20px;
    --rc-radius: 16px;
  }
  .pm-roster__head { padding-bottom: 22px; }
  .pm-roster__hint { display: none; }
  .pm-rcard__meta { padding: 18px 18px 16px; }
  .pm-rcard--spotify .pm-rcard__meta { padding-right: 66px; }
  .pm-rcard__play { width: 42px; height: 42px; right: 13px; bottom: 15px; }
  .pm-rcard__play svg { width: 21px; height: 21px; }
  .pm-roster__all { width: 100%; justify-content: center; }
}

/* ===========================================================================
   08 bis. VERSION IMMOBILE
   ---------------------------------------------------------------------------
   Quand le mouvement est refusé (prefers-reduced-motion), la bande ne doit pas
   devenir une impasse : elle redevient une liste que l'on parcourt soi-même,
   au doigt comme au clavier, avec accroche sur les cartes.
   =========================================================================== */
.pm-roster--static .pm-roster__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
  filter: none;
}
.pm-roster--static .pm-roster__viewport::-webkit-scrollbar { display: none; height: 0; }
.pm-roster--static .pm-roster__track {
  animation: none !important;
  transform: none !important;
  will-change: auto;
  padding-left: var(--rc-pad);
  padding-right: var(--rc-pad);
}

/* ===========================================================================
   09. MOUVEMENT RÉDUIT
   =========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .pm-roster .pm-roster__headings,
  .pm-roster .pm-roster__tools,
  .pm-roster .pm-roster__foot,
  .pm-roster .pm-rcard {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .pm-rcard__img,
  .pm-rcard__link,
  .pm-rcard__veil,
  .pm-rcard__go,
  .pm-rcard__meta { transition: none !important; }
  .pm-rcard__link:hover { transform: none; }
  .pm-rcard__link:hover .pm-rcard__img { transform: scale(1.012); }
  .pm-rcard__player { animation: none; }
  .pm-rcard__play-wave i { animation: none; }
  .pm-roster__track { animation: none !important; transform: none !important; }
}

/* ===========================================================================
   15. PRIORITÉ SUR LES STYLES DE BOUTONS DU THÈME
   ---------------------------------------------------------------------------
   Le thème impose à tout <button> le rouge de la marque et des angles droits.
   Les commandes du carrousel ne sont pas des boutons d'action : ce sont des
   surfaces de navigation posées sur la photographie. On rétablit donc leur
   apparence propre, sans toucher aux vrais boutons du site.
   =========================================================================== */

.pm-rcard .pm-rcard__play,
.pm-rcard .pm-rcard__close {
  background-image: none !important;
  box-shadow: none;
  text-shadow: none;
  font-size: 0;
  line-height: 0;
}

.pm-rcard .pm-rcard__play {
  background-color: rgba(7, 18, 23, .66) !important;
  border: 1px solid rgba(255, 255, 255, .24) !important;
  border-radius: 50% !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .34);
}
.pm-rcard .pm-rcard__play:hover,
.pm-rcard .pm-rcard__play:focus-visible,
.pm-rcard.pm-rcard--playing .pm-rcard__play {
  background-color: var(--rc-green) !important;
  border-color: var(--rc-green) !important;
  color: #fff !important;
}

.pm-rcard .pm-rcard__close {
  background-color: rgba(255, 255, 255, .09) !important;
  border: 0 !important;
  border-radius: 50% !important;
  color: rgba(255, 255, 255, .8) !important;
}
.pm-rcard .pm-rcard__close:hover {
  background-color: rgba(255, 255, 255, .22) !important;
  color: #fff !important;
}

/* Le libellé du bouton « passer »/pied de section garde sa taille propre. */
.pm-rcard .pm-rcard__play svg,
.pm-rcard .pm-rcard__close svg { font-size: initial; line-height: initial; }

/* ===========================================================================
   16. PRIORITÉ SUR LES STYLES D'IMAGES ET DE LIENS DU THÈME
   ---------------------------------------------------------------------------
   Deux règles globales du thème cassaient les cartes :
     • `.elementor img { height: auto }` empêchait la photographie de remplir
       la carte : elle s'arrêtait à mi-hauteur, laissant un bloc vide.
     • `a { color: <orange de marque> }` repeignait les libellés posés sur la
       photographie, qui doivent rester blancs.
   =========================================================================== */

.pm-roster .pm-rcard .pm-rcard__img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: cover !important;
}

.pm-roster .pm-rcard__link,
.pm-roster .pm-rcard__link:visited,
.pm-roster .pm-rcard__link:hover,
.pm-roster .pm-rcard__name,
.pm-roster .pm-rcard__go { color: #fff !important; }
.pm-roster .pm-rcard__go  { color: rgba(255, 255, 255, .8) !important; }

.pm-roster .pm-roster__all,
.pm-roster .pm-roster__all:visited { color: rgba(255, 255, 255, .92) !important; }
.pm-roster .pm-roster__all:hover,
.pm-roster .pm-roster__all:focus-visible {
  color: var(--rc-ink) !important;
  background-color: #fff !important;
  border-color: #fff !important;
}

.pm-roster .pm-rcard__playerlink,
.pm-roster .pm-rcard__playerlink:visited { color: var(--rc-green) !important; }
