body.celebration-open{overflow:hidden}
.victory-dialog{position:fixed;inset:0;margin:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;padding:0;background:#133c30;color:#fff2c9;overflow-y:auto;overscroll-behavior:contain}
.victory-dialog::backdrop{background:#133c30}
.victory-dialog:focus{outline:none}
.victory-scene{min-height:100dvh;padding:58px 24px 46px;display:grid;place-items:center;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#a2904255 0,transparent 63%),linear-gradient(150deg,#214d3c,#10382e)}
.victory-rays{position:absolute;left:50%;top:44%;width:max(150vw,150vh);aspect-ratio:1;z-index:-1;background:repeating-conic-gradient(from 0deg,#f1ca6b12 0deg 9deg,transparent 9deg 24deg);mask-image:radial-gradient(circle,#0008,transparent 62%);transform:translate(-50%,-50%);animation:champion-rays 12s ease-out both}
.victory-close{position:absolute;z-index:3;top:28px;right:30px;width:38px;height:38px;border:1px solid #f6e6b94d;background:#173d2c66;border-radius:50%;color:#ffedbc;font-size:27px;line-height:1}
.victory-splash{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;visibility:hidden;animation:champion-splash 1.85s cubic-bezier(.2,.8,.3,1) both}
.victory-splash strong{font:700 clamp(76px,14vw,184px)/.95 'Space Grotesk',sans-serif;letter-spacing:-.065em;color:#ffe398;text-shadow:0 5px 0 #8e6026,0 13px 50px #081e2855;padding:12px 24px 20px}
.victory-splash>span{font-size:46px;color:#f7d16e}.victory-splash em{font:24px Kalam,cursive;color:#e4e3be}
.victory-content{position:relative;z-index:1;width:min(690px,100%);text-align:center;animation:champion-settles .55s 1.55s ease-out both}
.champion-label{font-size:10px;font-weight:700;letter-spacing:3px;color:#ebd89d}
.victory-content h2{font:700 clamp(65px,9vw,110px)/1 'Space Grotesk',sans-serif;letter-spacing:-.065em;color:#ffe398;text-shadow:0 4px 0 #8e6026;margin:15px 0 3px;outline:none}
.victory-caption{font:23px Kalam,cursive;margin:10px 0 11px;color:#f2e9c7}
.victory-final-score{font:12px 'Space Grotesk',sans-serif;color:#bfccb1}.victory-final-score b{font-size:16px;color:#efe7c6}
.victory-reward{animation:prize-spotlight .7s 1.9s cubic-bezier(.2,.8,.3,1) both;margin:19px auto 22px;padding:0 28px;max-width:485px}
.victory-reward .prize-reveal{margin:0;gap:22px}.victory-reward .prize-halo{height:207px;width:124px}.victory-reward .prize-halo .bat-art{height:192px;width:106px;animation:trophy-lift 3.4s 2.6s ease-in-out 2}.victory-reward .prize-copy h3{font-size:25px}.victory-reward .prize-tag{color:#ffda82}.victory-reward .prize-copy p{font-size:11px}.victory-reward .reward-progress{margin-top:13px}
.victory-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:champion-settles .4s 2.25s both}
.victory-actions .primary{background:#ffdc87;color:#28412e;box-shadow:0 4px 0 #ad813b;padding:15px 26px}.victory-actions .primary:hover{background:#ffe6ab}.victory-actions .secondary{color:#f4e6be;border-color:#e9d5a254;padding:15px 26px}
.victory-scorecard{border:0;background:none;color:#d4d7b9;font-size:10px;text-decoration:underline;text-underline-offset:4px;margin:22px 0 0;padding:5px;animation:champion-settles .4s 2.25s both}
.victory-footnote{position:absolute;bottom:24px;left:20px;right:20px;text-align:center;letter-spacing:2.3px;font-size:10px;color:#b6c9a8a6}
.friendly-trophy{font-size:106px;line-height:1.2;color:#f2d180;margin-top:22px;animation:prize-spotlight .7s 1.9s both}.victory-friendly{font:18px Kalam;margin:5px 0 26px;color:#dadcb9}
.victory-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.victory-confetti i{position:absolute;left:var(--x);top:-24px;width:var(--width);height:14px;background:var(--colour);border-radius:1px;opacity:0;animation:champion-confetti var(--fall) var(--delay) cubic-bezier(.18,.56,.65,1) both}.victory-confetti i:nth-child(3n){border-radius:50%;height:8px}
@keyframes champion-splash{0%{visibility:visible;opacity:0;transform:scale(1.65)}16%{opacity:1;transform:scale(.95)}25%,72%{opacity:1;transform:scale(1)}100%{visibility:hidden;opacity:0;transform:scale(.86) translateY(-70px)}}
@keyframes champion-settles{from{opacity:0;visibility:hidden;transform:translateY(15px)}to{opacity:1;visibility:visible;transform:translateY(0)}}
@keyframes champion-rays{from{transform:translate(-50%,-50%) rotate(-18deg)}to{transform:translate(-50%,-50%) rotate(22deg)}}
@keyframes prize-spotlight{from{opacity:0;transform:translateY(25px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes trophy-lift{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@keyframes champion-confetti{0%{opacity:0;transform:translate3d(0,-15px,0) rotate(0)}10%,65%{opacity:.9}100%{opacity:0;transform:translate3d(var(--drift),105dvh,0) rotate(var(--turn))}}
@media(max-width:600px){.victory-scene{padding:65px 24px 50px}.victory-close{top:22px;right:22px;width:32px;height:32px;font-size:23px}.champion-label{font-size:10px;letter-spacing:2px}.victory-content h2{font-size:clamp(58px,18vw,88px);margin-top:18px}.victory-caption{font-size:20px}.victory-final-score{font-size:10px}.victory-final-score b{font-size:13px}.victory-reward{padding:0 12px;margin:23px auto}.victory-reward .prize-reveal{gap:10px}.victory-reward .prize-halo{height:204px;width:90px}.victory-reward .prize-halo .bat-art{height:184px;width:88px}.victory-reward .prize-copy h3{font-size:22px}.victory-reward .prize-copy p{font-size:10px}.victory-actions{gap:10px}.victory-actions .primary,.victory-actions .secondary{font-size:11px;padding:14px 16px}.victory-footnote{font-size:10px;letter-spacing:1.5px}.victory-splash strong{font-size:clamp(64px,19vw,110px)}.victory-splash em{font-size:21px}}
@media(prefers-reduced-motion:reduce){.victory-dialog *{animation:none!important;transition:none!important}.victory-splash,.victory-confetti{display:none}}

.victory-explanation{display:grid;gap:6px;margin:14px auto;color:#ecdfb4;font-size:12px;line-height:1.5;text-wrap:balance}
.victory-explanation strong{font-size:15px;color:#ffe398}.victory-explanation span{display:block}
@media(max-width:1024px) and (max-height:500px) and (orientation:landscape){.victory-explanation{grid-column:1;grid-row:3;font-size:10px;margin:4px 0}.victory-explanation strong{font-size:12px}.victory-content .victory-final-score{grid-row:4}.victory-content .victory-actions{grid-row:5}.victory-content .victory-collection-link{grid-row:6}}

.victory-explanation{font-size:16px;letter-spacing:0}
@media(max-width:1024px){.victory-explanation{font-size:14px}}
