.wm-page .wm-winner-screen{padding:0 0 28px;text-align:center;border-color:var(--yellow);background:#0a172a;overflow:hidden}
.wm-winner-screen>.wm-screen-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wm-winner-screen>.wm-screen-note{padding:0 24px;margin:20px auto;max-width:740px}
.wm-winner-screen .wm-screen-actions{justify-content:center;padding:0 20px}
.wm-victory{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:center;gap:32px;padding:clamp(28px,5vw,64px) clamp(20px,5vw,56px) 24px;min-height:480px;background:#193148;border-bottom:1px solid #365676}
/* Actual opening camera of Star World4, captured without Mario; HUD cropped.
   Keep the platform at the bottom and the original pixel edges intact. */
.wm-victory::after{content:"";position:absolute;z-index:-2;inset:0;background:url('/web-match/assets/a899bd0a2ade/library/assets/winner-star-world-4.webp') center bottom/cover no-repeat;image-rendering:pixelated;pointer-events:none}
.wm-victory::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#06122280,#06122210 70%);pointer-events:none}
.wm-victory-heading{position:relative;min-width:0;text-align:left}
.wm-victory .wm-victory-eyebrow{font-size:clamp(.85rem,1.4vw,1.1rem);font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--yellow);margin:0 0 28px}
.wm-victory-identity{border-left:4px solid var(--yellow);padding:2px 0 2px 22px}
.wm-victory .wm-victory-label{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:700;color:var(--sky)}
.wm-page .wm-victory-name{font-size:clamp(2.6rem,7vw,5rem);line-height:1.02;letter-spacing:.02em;color:var(--blue);text-transform:uppercase;margin:0 0 16px;overflow-wrap:anywhere;text-shadow:none}
.wm-victory .wm-victory-score{color:var(--yellow);font-size:clamp(1.1rem,2vw,1.5rem);font-weight:700;font-variant-numeric:tabular-nums;margin:0}
.wm-victory .wm-victory-reason{display:inline-block;color:var(--paper);background:var(--inset);border:1px solid var(--green);border-radius:4px;padding:4px 12px;margin:16px 0 0}
.wm-victory-gg{margin-top:32px;display:flex;align-items:center;color:var(--yellow)}
.wm-victory-gg img{display:block;width:clamp(160px,22vw,240px);max-width:100%;height:auto;image-rendering:pixelated}
.wm-victory-placement{margin-top:60px;padding-top:16px;border-top:1px solid #365676;text-shadow:0 2px 3px #061222,0 0 8px #061222b3}
.wm-victory-placement .wm-victory-label{margin-bottom:4px}
.wm-victory-placement strong{display:block;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.05;color:var(--yellow);margin-bottom:4px}
@media(min-width:761px){.wm-victory-placement{padding-top:28px}.wm-victory-placement .wm-victory-label{margin-bottom:0}.wm-victory-placement strong{margin-left:-.045em}}
.wm-victory .wm-firework-mute{position:absolute;z-index:2;top:10px;right:12px;width:auto;min-height:36px;padding:6px 10px;font-size:.75rem;line-height:1.2}
.wm-champions{position:relative;display:grid;gap:18px;min-width:0;justify-items:center}
.wm-champion{min-width:0;width:100%;max-width:360px}
.wm-victory-joint{grid-template-columns:minmax(0,1fr);gap:28px}
.wm-victory-joint .wm-victory-heading{text-align:center}.wm-victory-joint .wm-victory-identity{border:0;padding:0}.wm-victory-joint .wm-victory-eyebrow{margin-bottom:20px}.wm-victory-joint .wm-victory-gg{justify-content:center;margin-top:20px}
.wm-victory-joint .wm-champions{display:flex;overflow-x:auto;max-width:100%;padding:6px 6px 18px;scroll-snap-type:x proximity;scrollbar-color:var(--yellow) var(--inset);justify-content:safe center}
.wm-victory-joint .wm-champion{flex:0 0 min(320px,100%);scroll-snap-align:center}
/* Join the score tab to the profile frame with an opaque matching surface,
   so scenery and firework flashes cannot wash out the points or total time. */
.wm-champion-score{position:relative;box-sizing:border-box;width:fit-content;min-width:160px;max-width:calc(100% - 32px);margin:-2px auto 0;padding:10px 20px;border:2px solid #61769c;border-top:0;border-radius:0 0 .65rem .65rem;background:#101e36;box-shadow:0 8px 24px #0004;color:var(--yellow);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4;text-align:center;overflow-wrap:anywhere}
/* Ten shells per12s in each world, with overlapping double-ring bursts.
   Eight crisp flash frames borrow the ROM's $0000/$7EAA/$27FF backdrops:
   black, blue and bright yellow, beneath text and the profile's character. */
.wm-fireworks{--spark-size:3px;--firework-fall:42px;--trail-step:7px;--flash-strength:.7;position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;container-type:inline-size}
.wm-firework{position:absolute;left:var(--firework-x);top:var(--firework-y);width:0;height:0;color:var(--shell-colour);--burst-size:clamp(150px,30cqw,310px);transform:scale(var(--shell-scale))}
.wm-firework::before{content:"";position:absolute;width:var(--spark-size);height:calc(var(--spark-size)*2);background:var(--paper);box-shadow:0 8px 0 -1px currentColor,0 15px 0 -1px currentColor,0 22px 8px currentColor;opacity:0;animation:wm-firework-launch 12s ease-out var(--firework-delay) infinite both}
.wm-firework-sparks{position:absolute;width:var(--burst-size);height:var(--burst-size);left:calc(var(--burst-size)*-.5);top:calc(var(--burst-size)*-.5);opacity:0;filter:drop-shadow(0 0 3px currentColor);animation:wm-firework-burst 12s cubic-bezier(.12,.6,.25,1) var(--firework-delay) infinite both,wm-firework-fall 12s cubic-bezier(.55,0,1,.45) var(--firework-delay) infinite both,wm-firework-fade 12s linear var(--firework-delay) infinite both}
.wm-firework-sparks span{position:absolute;left:50%;top:50%;height:var(--spark-size);width:var(--spark-size);background:var(--paper);box-shadow:0 var(--trail-step) 0 -.25px currentColor,0 calc(var(--trail-step)*2) 0 -.5px currentColor,0 calc(var(--trail-step)*3) 0 -1px currentColor;transform:rotate(var(--ray)) translateY(calc(var(--burst-size)*var(--reach)*-1));border-radius:50%}
.wm-firework-inner{width:calc(var(--burst-size)*.58);height:calc(var(--burst-size)*.58);left:calc(var(--burst-size)*-.29);top:calc(var(--burst-size)*-.29);color:var(--yellow);animation-name:wm-firework-inner,wm-firework-fall,wm-firework-inner-fade}
.wm-firework-inner span{transform:rotate(var(--ray)) translateY(calc(var(--burst-size)*var(--reach)*-.58));background:currentColor}
.wm-firework-flash{position:absolute;inset:0;background:#000;opacity:0;animation:wm-firework-flash 12s steps(1,end) var(--firework-delay) infinite both}
.wm-profile-scene .wm-fireworks-distant{z-index:0;--spark-size:1.5px;--firework-fall:12px;--trail-step:2px;--flash-strength:.78}
.wm-fireworks-distant .wm-firework{--burst-size:clamp(42px,29cqw,94px)}
.wm-fireworks-distant .wm-firework::before{box-shadow:0 3px 0 -.25px currentColor,0 6px 0 -.25px currentColor}
.wm-fireworks-distant .wm-firework-sparks{filter:drop-shadow(0 0 1px currentColor)}
@keyframes wm-firework-launch{0%{opacity:0;transform:translateY(calc(var(--burst-size)*1.1)) scaleY(1.8)}.6%{opacity:1}6%{opacity:1;transform:translateY(0) scaleY(.6)}6.4%,100%{opacity:0;transform:translateY(0) scaleY(.3)}}
/* Each movement has one uninterrupted curve. Intermediate scale/position
   keyframes restart easing and make the fading tail hesitate in chunks. */
@keyframes wm-firework-burst{0%,6%{transform:scale(.02)}26%,100%{transform:scale(1.12)}}
@keyframes wm-firework-inner{0%,6.7%{transform:scale(.02)}24%,100%{transform:scale(1.2)}}
@keyframes wm-firework-fall{0%,6%{translate:0 0}26%,100%{translate:0 var(--firework-fall)}}
@keyframes wm-firework-fade{0%,6%{opacity:0}6.6%{opacity:1}13%{opacity:.95}19%{opacity:.55}26%,100%{opacity:0}}
@keyframes wm-firework-inner-fade{0%,6.7%{opacity:0}7.4%{opacity:1}13.5%{opacity:.9}19%{opacity:.45}24%,100%{opacity:0}}
@keyframes wm-firework-flash{0%,6%{opacity:0}6.15%{opacity:var(--flash-strength);background:#000}6.29%{background:#52adff}6.43%{background:#ffff4a}6.57%{background:#52adff}6.71%{background:#000}6.85%{background:#52adff}6.99%{background:#ffff4a}7.13%{background:#52adff}7.27%,100%{opacity:0}}
@media(max-width:760px){.wm-victory{grid-template-columns:minmax(0,1fr);gap:28px;padding:28px 18px 18px;min-height:0}.wm-victory-heading{text-align:center}.wm-victory-identity{border:0;padding:0}.wm-victory .wm-victory-eyebrow{margin-bottom:22px}.wm-victory-gg{justify-content:center;margin-top:22px}.wm-victory-placement{margin-top:32px;padding-top:12px}.wm-champion{max-width:320px}.wm-winner-screen .wm-screen-actions button{flex:1 1 150px}}
@media(prefers-reduced-motion:reduce){.wm-firework::before,.wm-firework-sparks,.wm-firework-flash{animation:none;opacity:0}}
@media(max-width:760px){
 .wm-victory{padding-top:54px}
 .wm-victory-joint .wm-champions{display:block;overflow:visible;padding:0;width:100%}
 .wm-victory-joint .wm-champion{margin-inline:auto}
 .wm-victory-joint .wm-champion[data-mobile-active=false]{display:none}
}
@media(prefers-reduced-motion:reduce){.wm-victory .wm-firework-mute{display:none}}
@media(prefers-reduced-motion:reduce) and (max-width:760px){.wm-victory{padding-top:28px}}
