/* /players: card directory and animated spotlight. Loaded after edition.css. */
.edition-player-directory.player-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;perspective:1400px}
.edition-player-directory.player-grid .player,.edition-player-directory.player-grid .player:nth-child(5n+1),.edition-player-directory.player-grid .player:nth-child(5n+2){--c1:#1d3550;--c2:#0b1522;grid-column:auto;position:relative;display:flex;flex-direction:column;border:0;border-radius:18px;overflow:hidden;background:linear-gradient(170deg,var(--c1),var(--c2));color:#fff;box-shadow:0 18px 40px #0a14202e;transition:box-shadow .4s}
.edition-player-directory .player[data-pos=GK]{--c1:#4a3a17;--c2:#160f05}
.edition-player-directory .player[data-pos=DF]{--c1:#1d3a5c;--c2:#08131f}
.edition-player-directory .player[data-pos=MF]{--c1:#1f4a3c;--c2:#07150f}
.edition-player-directory .player[data-pos=FW]{--c1:#5a1f2a;--c2:#18070b}
.edition-player-directory .player:hover{box-shadow:0 30px 60px #0a142055}
.edition-player-directory .player::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(380px circle at var(--glare-x,50%) var(--glare-y,0%),#ffffff26,transparent 45%);opacity:0;transition:opacity .4s}
.edition-player-directory .player:hover::after{opacity:1}
.edition-player-directory .p-media,.edition-player-directory .player:nth-child(3n+2) .p-media,.edition-player-directory .player:nth-child(3n) .p-media{aspect-ratio:3/3.4;background:transparent;overflow:hidden}
.edition-player-directory .p-media::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#ffffff12 50%,transparent 70%) 0 0/200% 100%;animation:p-shimmer 1.4s linear infinite}
.edition-player-directory .p-media.is-loaded::before,.edition-player-directory .p-media.is-failed::before{display:none}
@keyframes p-shimmer{to{background-position:-200% 0}}
.edition-player-directory .p-media img{position:absolute;left:0;right:0;bottom:0;width:100%;height:96%;object-fit:contain;object-position:center bottom;opacity:0;transform:translateY(6%) translateZ(30px);transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 16px 24px #0008)}
.edition-player-directory .p-media.is-loaded img{opacity:1;transform:translateY(2%) translateZ(30px)}
.edition-player-directory .player:hover .p-media.is-loaded img{transform:translateY(0) scale(1.05) translateZ(50px)}
.edition-player-directory .p-num{z-index:0;top:-6px;right:12px;left:auto;font:800 150px/1 'WCU Big Shoulders','Anton',sans-serif;color:transparent;-webkit-text-stroke:1.5px #ffffff26;transition:transform .8s cubic-bezier(.2,.8,.2,1),-webkit-text-stroke-color .4s}
.edition-player-directory .player:hover .p-num{transform:translateY(-8px);-webkit-text-stroke-color:#ffffff55}
.edition-player-directory .p-country{top:16px;left:16px;right:auto;bottom:auto;z-index:2;background:#ffffff1f;backdrop-filter:blur(6px);border-radius:4px;font:800 11px/1 'WCU Big Shoulders','Anton',sans-serif;letter-spacing:.2em;padding:6px 8px}
.edition-player-directory .p-body{position:relative;z-index:2;padding:16px 18px 18px;margin-top:-56px;background:linear-gradient(0deg,var(--c2) 55%,transparent);transform:translateZ(40px)}
.edition-player-directory .p-pos{color:#b8c6d2;font-size:12px}
.edition-player-directory .p-pos .team-flag{width:20px;height:13px;border-radius:2px}
.edition-player-directory .p-name{font:900 23px/1.2 'WCU Big Shoulders','WCU Serif SC','Noto Serif SC','Songti SC','STSong',serif;color:#fff;margin:8px 0 4px;letter-spacing:.02em}
.edition-player-directory .p-stat{font-size:11px;color:#8ea0b0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.edition-player-directory .p-numbers{display:flex;align-items:baseline;gap:16px;margin-top:12px;padding-top:12px;border-top:1px solid #ffffff1a;font-size:11px;color:#8ea0b0}
.edition-player-directory .p-numbers b{font:800 20px/1 'WCU Big Shoulders','Anton',sans-serif;color:#f2c75c;margin-right:4px}
.edition-player-directory .p-go{margin-left:auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ffffff14;color:#fff;transition:background .3s,transform .3s}
.edition-player-directory .player:hover .p-go{background:#f2c75c;color:#1a1204;transform:rotate(45deg)}
.edition-player-directory .p-media.is-failed{background:radial-gradient(circle at 50% 60%,#ffffff12,transparent 60%)}
@media(max-width:1100px){.edition-player-directory.player-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.edition-player-directory.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.edition-player-directory .p-name{font-size:17px}.edition-player-directory .p-num{font-size:96px}.edition-player-directory .p-body{padding:12px}}
@media(prefers-reduced-motion:reduce){.edition-player-directory .p-media::before{animation:none}.edition-player-directory .p-media img{transition:none}}

/* Spotlight: progress bar for auto-advance; motion itself is driven by GSAP in edition.js. */
.edition-spotlight .spotlight-tabs button{position:relative;overflow:hidden}
.edition-spotlight .spotlight-tabs button::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:#f2c75c;transform:scaleX(0);transform-origin:left}
.edition-spotlight .spotlight-tabs button[aria-selected=true]::after{animation:spot-progress var(--spot-interval,7s) linear forwards}
.edition-spotlight.is-paused .spotlight-tabs button[aria-selected=true]::after{animation-play-state:paused}
@keyframes spot-progress{to{transform:scaleX(1)}}
.edition-spotlight .edition-player-figure{perspective:900px}
@media(prefers-reduced-motion:reduce){.edition-spotlight .spotlight-tabs button::after{display:none}}
