/* ROWING · Jugadores — efectos V01 (aditivo, sin tocar portal.css)
   Solo transform/opacity para el movimiento. Todo vive bajo .portal #page-content y prefijo rcl-.
   Los keyframes definen solo el estado inicial ("from"): el estado final es siempre el natural
   del elemento, así nada puede quedar oculto si una animación se interrumpe o JS falla. */
@media (prefers-reduced-motion:no-preference){

.portal{--rcl-ease:cubic-bezier(.16,1,.3,1);--rcl-ease-soft:cubic-bezier(.22,1,.36,1);--rcl-sky:#13a4cf}

@keyframes rcl-drop{from{opacity:0;transform:translate3d(0,-26px,0) scale(.985)}55%{opacity:1}}
@keyframes rcl-fall{from{opacity:0;transform:translate3d(0,-12px,0)}}
@keyframes rcl-rise{from{opacity:0;transform:translate3d(0,14px,0)}}
@keyframes rcl-pop{from{opacity:0;transform:translate3d(0,8px,0) scale(.9)}}
@keyframes rcl-fade{from{opacity:0}}
@keyframes rcl-flt{from{opacity:0;transform:translate3d(0,-8px,0)}}
@keyframes rcl-grow{from{transform:scaleY(.04)}}
@keyframes rcl-mark{from{opacity:0;transform:rotate(-10deg) scale(.92)}}

/* ---------- Animaciones aplicadas por JS (clases rcl-a-*) ---------- */
.portal #page-content .rcl-a-drop{animation:rcl-drop .62s var(--rcl-ease) var(--rcl-d,0s) backwards}
.portal #page-content .rcl-a-rise{animation:rcl-rise .6s var(--rcl-ease) var(--rcl-d,0s) backwards}
.portal #page-content .rcl-a-pop{animation:rcl-pop .5s var(--rcl-ease) var(--rcl-d,0s) backwards}
.portal #page-content .rcl-a-fade{animation:rcl-fade .5s ease var(--rcl-d,0s) backwards}
.portal #page-content .rcl-a-flt{animation:rcl-flt .26s var(--rcl-ease-soft) var(--rcl-d,0s) backwards}
.portal #page-content .rcl-a-grow{transform-origin:50% 100%;animation:rcl-grow .8s var(--rcl-ease) var(--rcl-d,0s) backwards}

/* Neutraliza pre-ocultamientos de efectos previos sobre nodos que anima este archivo */
.portal #page-content .rcl-a.v146-reveal,.portal #page-content .rcl-a.v150-fx{opacity:1;transform:none}

/* ---------- Listado: encabezado ---------- */
.portal #page-content.rcl-list:not(.rcl-quiet) .p-players-entry-roster{animation:rcl-fall .6s var(--rcl-ease) backwards}
.portal #page-content.rcl-list:not(.rcl-quiet) .p-players-entry-kicker{animation:rcl-fade .6s ease .12s backwards}
.portal #page-content.rcl-list:not(.rcl-quiet) .p-players-entry-roster h1{animation:rcl-fall .7s var(--rcl-ease) .16s backwards}
.portal #page-content.rcl-list:not(.rcl-quiet) .p-players-entry-mark{animation:rcl-mark 1s var(--rcl-ease) .1s backwards}
.portal #page-content.rcl-list:not(.rcl-quiet) .p-players-toolbar{animation:rcl-fall .55s var(--rcl-ease) .22s backwards}

/* ---------- Perfil: cabecera ---------- */
.portal #page-content.rcl-profile .p-player-identity{animation:none}

/* ---------- Tarjetas (jugadores y partidos): hover/foco/presión ---------- */
.portal #page-content.rcl-list .p-player-tile,
.portal #page-content.rcl-profile .p-player-match{position:relative;isolation:isolate;-webkit-tap-highlight-color:transparent;transition:transform .38s var(--rcl-ease-soft),opacity .25s ease,border-color .3s ease,background-color .3s ease}
.portal #page-content.rcl-list .p-player-tile:before,
.portal #page-content.rcl-profile .p-player-match:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--rcl-sky);opacity:0;transform:scaleY(.3);transition:transform .4s var(--rcl-ease-soft),opacity .3s ease;pointer-events:none}
.portal #page-content.rcl-list .p-player-tile:after,
.portal #page-content.rcl-profile .p-player-match:after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;box-shadow:0 18px 30px -18px rgba(8,42,67,.4);opacity:0;transition:opacity .38s ease;z-index:-1;pointer-events:none}
.portal #page-content.rcl-list .p-player-tile .p-player-monogram{transition:transform .38s var(--rcl-ease-soft)}
.portal #page-content.rcl-list .p-player-tile:focus-visible,
.portal #page-content.rcl-profile .p-player-match:focus-visible,
.portal #page-content.rcl-profile .p-back:focus-visible{outline:2px solid var(--rcl-sky);outline-offset:2px}
.portal #page-content.rcl-profile .p-back{transition:transform .3s var(--rcl-ease-soft)}

@media (hover:hover) and (pointer:fine){
  .portal #page-content.rcl-list .p-player-tile:hover,
  .portal #page-content.rcl-list .p-player-tile:focus-visible,
  .portal #page-content.rcl-profile .p-player-match:hover,
  .portal #page-content.rcl-profile .p-player-match:focus-visible{transform:translate3d(0,-3px,0)}
  .portal #page-content.rcl-list .p-player-tile:hover:before,
  .portal #page-content.rcl-list .p-player-tile:focus-visible:before,
  .portal #page-content.rcl-profile .p-player-match:hover:before,
  .portal #page-content.rcl-profile .p-player-match:focus-visible:before{opacity:1;transform:scaleY(1)}
  .portal #page-content.rcl-list .p-player-tile:hover:after,
  .portal #page-content.rcl-list .p-player-tile:focus-visible:after,
  .portal #page-content.rcl-profile .p-player-match:hover:after,
  .portal #page-content.rcl-profile .p-player-match:focus-visible:after{opacity:1}
  .portal #page-content.rcl-list .p-player-tile:hover .p-player-monogram{transform:scale(1.07)}
  .portal #page-content.rcl-profile .p-back:hover{transform:translate3d(-3px,0,0)}
}

/* Presión táctil/click (último para ganar sobre hover) */
.portal #page-content.rcl-list .p-player-tile:active,
.portal #page-content.rcl-profile .p-player-match:active{transform:scale(.982);transition-duration:.12s}
.portal #page-content.rcl-profile .p-metric:active{transform:scale(.985)}
.portal #page-content.rcl-profile .p-tech-profile-actions button:active{transform:scale(.97)}

/* Feedback al navegar desde el listado */
.portal #page-content.rcl-list .rcl-nav .p-player-tile:not(.rcl-chosen){opacity:.55}
.portal #page-content.rcl-list .rcl-nav .p-player-tile.rcl-chosen{transform:scale(.985)}

/* ---------- Perfil: contenido privado (se inserta al pedir una sección) ---------- */
.portal #page-content.rcl-profile .p-player-private-content>*{animation:rcl-rise .55s var(--rcl-ease) var(--rcl-d,0s) backwards}

}

@media print{
  .portal #page-content .rcl-a,.portal #page-content [class*="rcl-a-"],.portal #page-content.rcl-list *,.portal #page-content.rcl-profile *{animation:none!important;transition:none!important}
  .portal #page-content .p-player-tile:before,.portal #page-content .p-player-tile:after,.portal #page-content .p-player-match:before,.portal #page-content .p-player-match:after{display:none}
}


/* V159: do not allow earlier V146 animations to compete on elements now managed by Claude. */
@media (prefers-reduced-motion:no-preference){
  .portal #page-content.rcl-profile .p-player-hero .p-player-monogram.rcl-a-pop{animation:rcl-pop .5s var(--rcl-ease) var(--rcl-d,0s) backwards}
  .portal #page-content.rcl-profile .p-player-season-metrics .p-metric.rcl-a-rise{animation:rcl-rise .6s var(--rcl-ease) var(--rcl-d,0s) backwards}
  .portal #page-content.rcl-profile .p-r144-month-stack.rcl-a-grow{animation:rcl-grow .8s var(--rcl-ease) var(--rcl-d,0s) backwards}
  .portal #page-content.rcl-profile .p-player-private-content>.rcl-a-rise{animation:rcl-rise .55s var(--rcl-ease) var(--rcl-d,0s) backwards}
}
