
/* V17.3.23 — corrección definitiva de centrado y barrido glass */
.pm-roster {
  --team-gap: clamp(16px, 1.7vw, 26px);
  display: flex !important;
  flex-flow: row wrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: var(--team-gap) !important;
  width: 100%;
  max-width: 1500px;
  margin: 0 auto !important;
  box-sizing: border-box;
}
.pm-roster .pm-person,
.pm-roster.pm-last-1 .pm-person:last-child,
.pm-roster.pm-last-2 .pm-person:nth-last-child(-n+2),
.pm-roster.pm-last-3 .pm-person:nth-last-child(-n+3) {
  flex: 0 1 calc((100% - 3 * var(--team-gap))/4) !important;
  width: calc((100% - 3 * var(--team-gap))/4) !important;
  min-width: 0 !important;
  max-width: 360px !important;
  margin: 0 !important;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.19) !important;
  background: linear-gradient(155deg,rgba(255,255,255,.10),rgba(255,255,255,.025) 72%) !important;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
.pm-roster .pm-person::before {
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  inset:-65%;
  width:auto;
  height:auto;
  opacity:0;
  background:linear-gradient(115deg,transparent 38%,rgba(252,55,70,.025) 45%,rgba(255,95,110,.29) 50%,rgba(254,45,64,.055) 55%,transparent 63%);
  transform:translateX(-48%) rotate(8deg);
  transition:opacity .3s ease;
  box-shadow:none;
}
.pm-roster .pm-person::after {
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  inset:0;
  width:auto;
  height:auto;
  opacity:0;
  background:radial-gradient(ellipse at 52% 78%,rgba(255,22,45,.26),transparent 70%);
  transform:none;
  transition:opacity .45s ease;
  box-shadow:none;
}
.pm-roster .pm-person:hover,
.pm-roster .pm-person:focus-within {
  transform:translateY(-5px);
  border-color:#fa3446 !important;
  background:linear-gradient(155deg,rgba(255,255,255,.13),rgba(245,21,42,.075)) !important;
  box-shadow:0 0 0 1px rgba(248,27,48,.30),0 0 25px rgba(238,20,42,.35),0 20px 46px rgba(238,20,42,.14),inset 0 0 35px rgba(238,20,42,.13) !important;
}
.pm-roster .pm-person:hover::before,
.pm-roster .pm-person:focus-within::before {
  opacity:1;
  animation:teamGlassSweep 2.6s ease-in-out infinite;
}
.pm-roster .pm-person:hover::after,
.pm-roster .pm-person:focus-within::after {opacity:1;transform:none;box-shadow:none}
@keyframes teamGlassSweep {
  from {transform:translateX(-50%) rotate(8deg)}
  to {transform:translateX(50%) rotate(8deg)}
}
.pm-roster .pm-person > * {position:relative;z-index:1}
.pm-roster .pm-person-inner {background:rgba(10,10,13,.14)}
.pm-roster .pm-person-open::before {display:none !important}
.pm-roster .pm-person-open {background:transparent !important;box-shadow:none !important}
/* Al centrar con flex, 1, 2 o 3 tarjetas se distribuyen simétricamente. */
@media(max-width:1100px) {
  .pm-roster .pm-person,
  .pm-roster.pm-last-1 .pm-person:last-child,
  .pm-roster.pm-last-2 .pm-person:nth-last-child(-n+2),
  .pm-roster.pm-last-3 .pm-person:nth-last-child(-n+3) {
    flex-basis:calc((100% - var(--team-gap))/2) !important;
    width:calc((100% - var(--team-gap))/2) !important;
  }
}
@media(max-width:640px) {
  .pm-roster .pm-person,
  .pm-roster.pm-last-1 .pm-person:last-child,
  .pm-roster.pm-last-2 .pm-person:nth-last-child(-n+2),
  .pm-roster.pm-last-3 .pm-person:nth-last-child(-n+3) {
    flex-basis:100% !important;
    width:100% !important;
    max-width:430px !important;
  }
}
@media(prefers-reduced-motion:reduce){
  .pm-roster .pm-person:hover::before,.pm-roster .pm-person:focus-within::before {animation:none;transform:none}
}
