/* The results stay readable and interactive while only transform/opacity animate. */
.victory-card{isolation:isolate;position:relative;overflow:hidden;padding:clamp(26px,4vw,44px) 20px;color:#414631}
.victory-trophy{position:relative;display:block;width:clamp(132px,24vw,205px);aspect-ratio:1;margin:0 auto 12px;animation:victory-enter .45s cubic-bezier(.2,.75,.3,1) both;z-index:1}
.victory-trophy img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 8px #8d632b20)}
.victory-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;mask:url('victory-trophy.png') center/contain no-repeat;-webkit-mask:url('victory-trophy.png') center/contain no-repeat}
.victory-shine:after{content:'';position:absolute;inset:-12% -60%;background:linear-gradient(110deg,transparent 43%,#fff8d699 49%,transparent 56%);opacity:0;transform:translateX(-65%);animation:victory-sheen .75s ease-in-out .55s both}
.victory-card .victory-title,.victory-card .victory-names,.victory-card .victory-points{position:relative;z-index:2;animation:victory-text .3s ease-out both}
.victory-card .victory-title{animation-delay:.12s;line-height:1.5}.victory-card .victory-names{animation-delay:.22s;overflow-wrap:anywhere}.victory-card .victory-points{animation-delay:.32s}
.victory-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.victory-sparkles i{position:absolute;top:12%;left:calc(50% + var(--x));color:#d4a550;font-style:normal;font-size:var(--size);opacity:0;animation:victory-sparkle 1.2s ease-out .25s both}
.victory-sparkles i:nth-child(1){--x:-112px;--size:15px}.victory-sparkles i:nth-child(2){--x:-82px;--size:10px;top:27%}.victory-sparkles i:nth-child(3){--x:-52px;--size:12px;top:5%}.victory-sparkles i:nth-child(4){--x:80px;--size:13px}.victory-sparkles i:nth-child(5){--x:112px;--size:10px;top:27%}.victory-sparkles i:nth-child(6){--x:54px;--size:10px;top:5%}
@keyframes victory-enter{from{opacity:0;transform:translateY(12px) scale(.83)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes victory-text{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes victory-sheen{0%{opacity:0;transform:translateX(-65%)}25%{opacity:.75}100%{opacity:0;transform:translateX(65%)}}
@keyframes victory-sparkle{0%{opacity:0;transform:translateY(8px) scale(.7)}35%{opacity:.7}100%{opacity:0;transform:translateY(-12px) scale(1)}}
@media(max-width:650px){.victory-trophy{width:clamp(140px,42vw,190px)}}
body.tv-mode .victory-trophy{width:clamp(150px,14vw,230px)}
@media(prefers-reduced-motion:reduce){.victory-trophy,.victory-card .victory-title,.victory-card .victory-names,.victory-card .victory-points,.victory-shine:after,.victory-sparkles i{animation:none!important;transform:none!important;opacity:1}.victory-sparkles,.victory-shine{display:none!important}}
html.reduce-motion .victory-trophy,html.reduce-motion .victory-card .victory-title,html.reduce-motion .victory-card .victory-names,html.reduce-motion .victory-card .victory-points{animation:none!important;transform:none!important;opacity:1}html.reduce-motion .victory-sparkles,html.reduce-motion .victory-shine{display:none!important}

/* Falling confetti is anchored to the cup and lasts exactly three seconds. */
.victory-fireworks{position:absolute;inset:-22px -55px -65px;z-index:5;pointer-events:none;overflow:visible}
.victory-fireworks i{position:absolute;top:var(--offset);left:var(--x);width:7px;height:11px;border-radius:2px;background:var(--color);opacity:0;animation:confetti-fall 3s linear both;will-change:transform,opacity}
.victory-fireworks i:nth-child(3n){width:9px;height:9px;border-radius:50%}
@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-10px,0) rotate(0deg)}10%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),220px,0) rotate(var(--turn))}}
@media(prefers-reduced-motion:reduce){.victory-fireworks{display:none!important}}
html.reduce-motion .victory-fireworks{display:none!important}

.celebration-replay{display:block;margin:0 auto 20px;padding:8px 20px;border:1px solid #d8c6a4;border-radius:999px;background:#fffaf0;color:#536347;font-size:15px;font-weight:700;min-height:44px}.celebration-replay:active{transform:scale(.97)}
