/* PRODUCT-165: podium players appear once, outside the continuous ranking list. */
html body .leaderboard-page--listing .leaderboard-podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 8px; padding-top: 24px; }
html body .leaderboard-page--listing .leaderboard-podium__player { display: grid; justify-items: center; gap: 8px; min-width: 0; padding: 16px 6px; border: 1px solid #a6a8cb; border-radius: 14px 14px 0 0; background: #0a0d1e; text-align: center; overflow-wrap: anywhere; }
html body .leaderboard-page--listing .leaderboard-podium__player--1 { grid-column: 2; grid-row: 1; min-height: 240px; border-color: #ffe033; background: linear-gradient(#2b2111, #0a0d1e); }
html body .leaderboard-page--listing .leaderboard-podium__player--2 { grid-column: 1; grid-row: 1; min-height: 210px; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { grid-column: 3; grid-row: 1; min-height: 190px; border-color: #b96b42; }
html body .leaderboard-page--listing .leaderboard-podium__rank { font: 800 1.8rem/1.2 var(--font-body); color: #ffe033; }
html body .leaderboard-page--listing .leaderboard-podium__avatar { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; object-fit: contain; font: 800 1.4rem/1 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-podium__player :is(strong, b) { max-width: 100%; font: 800 .8rem/1.5 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-podium__player small { font: 400 .7rem/1.4 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-podium__player b { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; }
html body .leaderboard-page--listing .leaderboard-panel { padding: 0; border-radius: 0 0 12px 12px; overflow: hidden; margin-top: 0; }
html body .leaderboard-page--listing .leaderboard-list { display: grid; gap: 0; }
html body .leaderboard-page--listing .leaderboard-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) minmax(70px, 30%); gap: 8px; padding: 14px 10px; margin: 0; border: 0; border-bottom: var(--border-structural); border-radius: 0; background: #050b16; }
html body .leaderboard-page--listing .leaderboard-row:last-child { border-bottom: 0; }
html body .leaderboard-page--listing .leaderboard-row.is-current { background: #211031; box-shadow: inset 3px 0 #a85ff7; }
html body .leaderboard-page--listing .leaderboard-podium__player.is-current { box-shadow: none; }
html body .leaderboard-page--listing .leaderboard-player span { font: 700 .9rem/1.4 var(--font-body); overflow-wrap: anywhere; }
html body .leaderboard-page--listing .leaderboard-player small { font: 400 .75rem/1.4 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-player img { width: 24px; height: 24px; object-fit: contain; }
html body .leaderboard-page--listing .leaderboard-score { text-align: right; }
html body .leaderboard-page--listing .leaderboard-score strong { display: flex; justify-content: end; align-items: center; gap: 4px; font: 800 .9rem/1.4 var(--font-body); overflow-wrap: anywhere; }
html body .leaderboard-page--listing .leaderboard-score span { font: 400 .65rem/1.4 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-you { display: block; color: #d8a8ff; }
/* Reset legacy card positioning/ellipsis for the podium and dense rows. */
html body .leaderboard-page--listing .leaderboard-podium__rank { position: static; transform: none; }
html body .leaderboard-page--listing .leaderboard-podium__player strong { white-space: normal; overflow: visible; text-overflow: clip; }
html body .leaderboard-page--listing .leaderboard-row > * { grid-column: auto; grid-row: auto; }
html body .leaderboard-page--listing .leaderboard-score { align-self: center; justify-self: end; }
html body .leaderboard-page--listing .market-summary p { font: 400 .85rem/1.6 var(--font-body); }
:is(html body .leaderboard-page--listing .market-summary p):where(p) { font-size: calc(.85rem + 3px); }
html body .leaderboard-page--listing .heading-subtitle { color: var(--color-secondary); }
html body .leaderboard-page--listing .heading-description { color: #fff; }
html body:has(.leaderboard-page--listing) .app-coin-counter strong { font: 800 .9rem/1.2 var(--font-body); white-space: nowrap; }

/* Reference-inspired perspective: silver runner-up, bronze third, gold champion. */
html body .leaderboard-page--listing .leaderboard-podium { perspective: 900px; gap: 10px; padding-inline: 5px; }
html body .leaderboard-page--listing .leaderboard-podium__player--1 { border: 2px solid #ffe033; box-shadow: 0 0 16px rgb(255 224 51 / 20%); }
html body .leaderboard-page--listing .leaderboard-podium__player--2 { border: 2px solid #c5ccdd; transform: rotateY(10deg) rotateZ(-2deg); transform-origin: right bottom; background: linear-gradient(#151c32, #080d18); }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { border: 2px solid #b96b42; transform: rotateY(-10deg) rotateZ(2deg); transform-origin: left bottom; background: linear-gradient(#2b1b15, #080d18); }
html body .leaderboard-page--listing .leaderboard-podium__player--2 .leaderboard-podium__rank { color: #c5ccdd; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 .leaderboard-podium__rank { color: #b96b42; }
html body .leaderboard-page--listing .leaderboard-list-heading,
html body .leaderboard-page--listing .leaderboard-row { grid-template-columns: 38px minmax(0, 1fr) minmax(12px, 12%) minmax(90px, 25%); }
html body .leaderboard-page--listing .leaderboard-list-heading { display: grid; align-items: center; gap: 8px; padding: 12px 10px; border: 0; background: #080d18; color: #fff; text-transform: uppercase; font: 700 .7rem/1.4 var(--font-body); }
html body .leaderboard-page--listing .leaderboard-list-heading > :last-child { text-align: right; }
html body .leaderboard-page--listing .leaderboard-style-slot { min-width: 0; }
html body .leaderboard-page--listing .leaderboard-rank { font: 800 .9rem/1.4 var(--font-body); }
@media (min-width: 700px) {
    html body .leaderboard-page--listing .leaderboard-list-heading,
    html body .leaderboard-page--listing .leaderboard-row { grid-template-columns: 64px minmax(0, 1fr) minmax(80px, 22%) minmax(100px, 20%); }
}
html body .leaderboard-page--listing .leaderboard-player > span { white-space: normal; overflow: visible; text-overflow: clip; }
html body .leaderboard-page--listing .leaderboard-list-heading > span { font: 700 .75rem/1.4 var(--font-body); }

html body .leaderboard-page--listing .leaderboard-rank { width: auto; height: auto; padding: 0; border: 0; border-radius: 0; background: none; color: #fff; box-shadow: none; }
html body .leaderboard-page--listing .leaderboard-player { display: flex; align-items: center; gap: 8px; min-width: 0; }
html body .leaderboard-page--listing .leaderboard-player__identity { min-width: 0; }
html body .leaderboard-page--listing .leaderboard-player__identity > span { display: block; white-space: normal; overflow: visible; text-overflow: clip; }
html body .leaderboard-page--listing .leaderboard-player > .player-avatar { font: 800 1rem/1 var(--font-body); overflow-wrap: normal; }
/* The legacy arcade panel/first-row spotlight belongs to the old card layout. */
html body .leaderboard-page--listing .leaderboard-panel { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
html body .leaderboard-page--listing .leaderboard-panel::before,
html body .leaderboard-page--listing .leaderboard-panel::after { content: none; }
html body .leaderboard-page--listing .leaderboard-list-heading { background: transparent; box-shadow: none; border-radius: 0; }
html body .leaderboard-page--listing .leaderboard-row:nth-child(1) { background: #050b16; }
html body .leaderboard-page--listing .leaderboard-row.is-current { background: #211031; }
html body .leaderboard-page--listing .leaderboard-rank { text-shadow: none; filter: none; }

/* Native border-only light sweep; no script or external asset. */
html body .leaderboard-page--listing .leaderboard-podium__player { position: relative; --leaderboard-shine: #ffe033; }
html body .leaderboard-page--listing .leaderboard-podium__player--2 { --leaderboard-shine: #c5ccdd; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { --leaderboard-shine: #b96b42; }
html body .leaderboard-page--listing .leaderboard-row.is-current { position: relative; --leaderboard-shine: #a85ff7; box-shadow: inset 0 0 0 2px #a85ff7; }
html body .leaderboard-page--listing .leaderboard-podium__player::after,
html body .leaderboard-page--listing .leaderboard-row.is-current::after {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    padding: 2px;
    pointer-events: none;
    --shine-width: 2px;
    --shine-gradient: linear-gradient(110deg, transparent 38%, var(--leaderboard-shine) 46%, #fff 50%, var(--leaderboard-shine) 54%, transparent 62%);
    background-image: var(--shine-gradient), var(--shine-gradient), var(--shine-gradient), var(--shine-gradient);
    background-size: 300% var(--shine-width), 300% var(--shine-width), var(--shine-width) 300%, var(--shine-width) 300%;
    background-repeat: no-repeat;
    background-position: 100% 0, 100% 100%, 0 100%, 100% 100%;
    animation: leaderboard-border-shine 5s ease-in-out infinite;
}
html body .leaderboard-page--listing .leaderboard-row.is-current::after { inset: 0; }
/* Different cycle lengths prevent the podium and own-row sweeps staying in sync. */
html body .leaderboard-page--listing .leaderboard-podium__player--1 { border-color: #ffdf00; box-shadow: 0 0 20px rgb(255 223 0 / 35%), inset 0 0 10px rgb(255 223 0 / 12%); }
html body .leaderboard-page--listing .leaderboard-podium__player--1::after {
    inset: -3px;
    padding: 3px;
    --shine-width: 3px;
    --shine-gradient: linear-gradient(110deg, transparent 32%, #ffdf00 43%, #fff59a 50%, #ffdf00 57%, transparent 68%);
    animation: leaderboard-gold-shine 6.7s ease-in-out -0.4s infinite;
}
html body .leaderboard-page--listing .leaderboard-podium__player--2::after { animation: leaderboard-silver-shine 9.3s ease-in-out -3.1s infinite; }
html body .leaderboard-page--listing .leaderboard-podium__player--3::after { animation: leaderboard-bronze-shine 12.7s ease-in-out -7.6s infinite; }
@keyframes leaderboard-gold-shine {
    0% { background-position: 100% 0, 100% 100%, 0 100%, 100% 100%; }
    30%, 100% { background-position: 0% 0, 0% 100%, 0 0%, 100% 0%; }
}
@keyframes leaderboard-silver-shine {
    0%, 12% { background-position: 100% 0, 100% 100%, 0 100%, 100% 100%; }
    37%, 100% { background-position: 0% 0, 0% 100%, 0 0%, 100% 0%; }
}
@keyframes leaderboard-bronze-shine {
    0%, 20% { background-position: 100% 0, 100% 100%, 0 100%, 100% 100%; }
    40%, 100% { background-position: 0% 0, 0% 100%, 0 0%, 100% 0%; }
}
@keyframes leaderboard-border-shine {
    0%, 15% { background-position: 100% 0, 100% 100%, 0 100%, 100% 100%; }
    65%, 100% { background-position: 0% 0, 0% 100%, 0 0%, 100% 0%; }
}
@media (prefers-reduced-motion: reduce) {
    html body .leaderboard-page--listing .leaderboard-podium__player::after,
    html body .leaderboard-page--listing .leaderboard-row.is-current::after { animation: none; content: none; }
}

html body .leaderboard-page--listing .leaderboard-player__identity { align-self: center; }
html body .leaderboard-page--listing .leaderboard-player__identity > span { margin: 0; line-height: 1.4; }
html body .leaderboard-page--listing .leaderboard-row .leaderboard-player { align-self: center; }

html body .leaderboard-page--listing .leaderboard-row { align-items: center; }
html body .leaderboard-page--listing .leaderboard-row > * { align-self: center; }
html body .leaderboard-page--listing .leaderboard-row { grid-template-rows: auto; }

/* Compact podium: side places recede and open outward around the champion. */
html body .leaderboard-page--listing .leaderboard-podium { perspective: 700px; perspective-origin: 50% 65%; }
html body .leaderboard-page--listing .leaderboard-podium__player { min-height: 0; gap: 6px; padding: 12px 6px 14px; align-content: center; }
html body .leaderboard-page--listing .leaderboard-podium__player--1 { min-height: 184px; transform: translateZ(18px); z-index: 2; }
html body .leaderboard-page--listing .leaderboard-podium__player--2 { min-height: 158px; transform: translateZ(-24px) rotateY(-12deg); transform-origin: right bottom; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { min-height: 150px; transform: translateZ(-24px) rotateY(12deg); transform-origin: left bottom; }
html body .leaderboard-page--listing .leaderboard-podium__player::before {
    content: '';
    position: absolute;
    inset: -2px -1px;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent, var(--leaderboard-shine), transparent) top center / 100% 2px no-repeat,
        linear-gradient(90deg, transparent, var(--leaderboard-shine), transparent) bottom center / 100% 3px no-repeat;
    filter: drop-shadow(0 0 4px var(--leaderboard-shine)) drop-shadow(0 0 8px var(--leaderboard-shine));
}

/* Clear height hierarchy, with tighter secondary-place content. */
html body .leaderboard-page--listing .leaderboard-podium__player--2 { min-height: 144px; gap: 4px; padding-block: 8px; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { min-height: 122px; gap: 3px; padding-block: 6px; }
html body .leaderboard-page--listing .leaderboard-podium__player--2 .player-avatar { width: 42px; height: 42px; font-size: 1.2rem; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 .player-avatar { width: 36px; height: 36px; font-size: 1rem; }
html body .leaderboard-page--listing .leaderboard-podium__player--2 .leaderboard-podium__rank { font-size: 1.6rem; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 .leaderboard-podium__rank { font-size: 1.4rem; }

html body .leaderboard-page--listing .leaderboard-score .mvp-coin-icon { --coin-icon-size: 28px; align-self: center; }
html body .leaderboard-page--listing .leaderboard-score strong { align-items: center; gap: 6px; }
html body .leaderboard-page--listing .leaderboard-score .leaderboard-score__amount { font: inherit; color: inherit; }

html body .leaderboard-page--listing .leaderboard-explanation { border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 24px 10px; gap: 12px; }
html body .leaderboard-page--listing .leaderboard-explanation::before,
html body .leaderboard-page--listing .leaderboard-explanation::after { content: none; }
html body .leaderboard-page--listing .leaderboard-explanation h2 { margin: 0; color: #fff; font: 700 1rem/1.4 var(--font-body); text-shadow: none; }
html body .leaderboard-page--listing .leaderboard-explanation .dashboard-share-link { justify-self: start; width: auto; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font: 600 .75rem/1.4 var(--font-body); }

/* Presentation batches: hidden must override the row's explicit grid display. */
html body .leaderboard-page--listing .leaderboard-row[hidden] { display: none; }
.leaderboard-reveal-sentinel:not([hidden]) { height: 1px; }

/* Court motion on all podium places, retaining their medal colours. */
html body .leaderboard-page--listing .leaderboard-podium__player { isolation: isolate; overflow: visible; --podium-rgb: 255 223 0; --leaderboard-shine: #ffdf00; }
html body .leaderboard-page--listing .leaderboard-podium__player--2 { --podium-rgb: 197 204 221; --leaderboard-shine: #c5ccdd; }
html body .leaderboard-page--listing .leaderboard-podium__player--3 { --podium-rgb: 185 107 66; --leaderboard-shine: #b96b42; }
html body .leaderboard-page--listing .leaderboard-podium__player::after {
    inset: 0; padding: 0; --shine-width: 3px;
    --shine-gradient: linear-gradient(110deg, transparent 32%, var(--leaderboard-shine) 43%, #fff 50%, var(--leaderboard-shine) 57%, transparent 68%);
    animation: leaderboard-podium-shine 3.8s linear infinite;
}
html body .leaderboard-page--listing .leaderboard-podium__player--1::after {
    --shine-gradient: linear-gradient(110deg, transparent 32%, #ffdf00 43%, #fff59a 50%, #ffdf00 57%, transparent 68%);
}
html body .leaderboard-page--listing .leaderboard-podium__player::before {
    inset: -10px; z-index: -1;
    background-image:
        radial-gradient(ellipse, rgb(var(--podium-rgb) / 85%), rgb(var(--podium-rgb) / 35%) 40%, transparent 72%),
        radial-gradient(ellipse, rgb(var(--podium-rgb) / 75%), rgb(var(--podium-rgb) / 30%) 40%, transparent 72%),
        radial-gradient(ellipse, rgb(var(--podium-rgb) / 70%), rgb(var(--podium-rgb) / 30%) 40%, transparent 72%),
        radial-gradient(ellipse, rgb(var(--podium-rgb) / 75%), rgb(var(--podium-rgb) / 30%) 40%, transparent 72%);
    background-size: 60% 24px, 60% 24px, 24px 60%, 24px 60%;
    background-repeat: no-repeat;
    animation: leaderboard-podium-aura 4.6s ease-in-out infinite;
}
@keyframes leaderboard-podium-shine {
    from { background-position: 100% 0, 100% 100%, 0 100%, 100% 100%; }
    to { background-position: 0% 0, 0% 100%, 0 0%, 100% 0%; }
}
@keyframes leaderboard-podium-aura {
    0%, 100% { background-position: 0% 0, 100% 100%, 0 100%, 100% 0%; opacity: .55; filter: blur(6px); }
    50% { background-position: 100% 0, 0% 100%, 0 0%, 100% 100%; opacity: .95; filter: blur(11px); }
}
@media (prefers-reduced-motion: reduce) {
    html body .leaderboard-page--listing .leaderboard-podium__player::before,
    html body .leaderboard-page--listing .leaderboard-podium__player::after { content: none; animation: none; }
}

/* Dense player listing: reduce only each row's vertical padding. */
html body .leaderboard-page--listing .leaderboard-row { padding-block: 10px; }
