.celebration{position:fixed;inset:0;z-index:90;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 38%,#365c46,#17392f 70%);color:#fff5dc;animation:celebrationArrival .55s ease-out;isolation:isolate}.celebration-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.celebration-halo{position:absolute;width:min(90vw,100vh);height:min(90vw,100vh);border:1px solid #eed49e20;border-radius:50%;background:radial-gradient(circle,#eac3741c,transparent 64%);box-shadow:0 0 0 45px #efcb8b04,0 0 0 100px #efcb8b03;animation:haloBloom 5s ease-out both;z-index:0}.celebration-stars{position:absolute;top:7%;left:0;width:100%;text-align:center;font-size:30px;letter-spacing:1em;color:#e8c785;opacity:.7;animation:starArrival 1.2s ease-out both}.celebration-stars>span{font-size:50px;vertical-align:middle}.celebration-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:1000px;width:90%;z-index:2}.celebration-kicker{font-size:10px;letter-spacing:.22em;color:#b5c7a5;margin-bottom:14px;animation:celebrationText .8s .2s both}.celebration-portraits{position:relative;width:min(37vh,360px);height:min(37vh,360px);isolation:isolate;margin-bottom:2px}.celebration-portraits>img{position:absolute;width:100%;height:100%;object-fit:contain;inset:0;filter:drop-shadow(0 20px 25px #041a2755)}.before-portrait{animation:beforeFreedom 4s both}.after-portrait{animation:afterFreedom 4s both}.portrait-rays{position:absolute;inset:-20%;background:conic-gradient(from 0deg,transparent 0deg,#f0c47a15 10deg,transparent 20deg,transparent 40deg,#f0c47a15 50deg,transparent 60deg,transparent 80deg,#f0c47a15 90deg,transparent 100deg,transparent 120deg,#f0c47a15 130deg,transparent 140deg,transparent 160deg,#f0c47a15 170deg,transparent 180deg,transparent 200deg,#f0c47a15 210deg,transparent 220deg,transparent 240deg,#f0c47a15 250deg,transparent 260deg,transparent 280deg,#f0c47a15 290deg,transparent 300deg);mask-image:radial-gradient(circle,#000,transparent 70%);border-radius:50%;animation:raysTurn 30s linear infinite;z-index:-1}.freedom-medallion{position:absolute;bottom:0;right:3%;width:55px;height:55px;border-radius:50%;background:linear-gradient(135deg,#fff2c7,#cfa467);border:4px solid #f0dcad;color:#80653a;box-shadow:0 7px 25px #051c3055;display:grid;place-items:center;font-size:27px;animation:medallionArrival 1s 2s both;z-index:3}.celebration-word{display:block;font:clamp(65px,7vw,112px)/1.1 Georgia,serif;letter-spacing:-.05em;color:#f6dfaa;margin:8px 0 12px;animation:celebrationText 1s 2.1s both}.celebration-content h2{font:clamp(23px,3vw,42px)/1.25 Georgia,serif;letter-spacing:-.02em;margin:0 0 15px;color:#fff4dc;max-width:95%;overflow-wrap:anywhere;animation:celebrationText 1s 2.35s both}.celebration-content p{font-size:15px;line-height:1.7;color:#b5c5a7;margin:0;animation:celebrationText 1s 2.55s both}.celebration-signature{font-size:10px;letter-spacing:.05em;color:#8ca785;margin-top:19px;animation:celebrationText 1s 2.7s both}.celebration-close{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);z-index:6;background:#fff3d712;color:#d9e1c4;border:1px solid #cad7b32a;border-radius:25px;padding:12px 20px;font-size:11px;cursor:pointer;animation:celebrationText .6s 2.7s both;white-space:nowrap;display:flex;gap:20px;align-items:center}.celebration-close:hover{background:#fff3d71c}.celebration-close:focus-visible{outline:3px solid #efc67e;outline-offset:5px}.single-portrait .after-portrait{animation:winnerPortrait 1.3s .2s both}.victory-scene .celebration-word{animation-delay:.55s}.victory-scene .celebration-content h2{animation-delay:.8s}.victory-scene .celebration-content p{animation-delay:1s}.victory-scene .celebration-signature{animation-delay:1.2s}.victory-scene .freedom-medallion{animation-delay:.9s}.victory-scene .celebration-close{animation-delay:1.5s}
@keyframes celebrationArrival{from{opacity:0}to{opacity:1}}@keyframes haloBloom{from{opacity:0;scale:.6}to{opacity:1;scale:1}}@keyframes starArrival{from{opacity:0;translate:0 -15px}to{opacity:.7;translate:0 0}}@keyframes beforeFreedom{0%,30%{opacity:1;transform:scale(.93);filter:saturate(.45) drop-shadow(0 15px 20px #0003)}55%,100%{opacity:0;transform:scale(1.06);filter:brightness(1.6) blur(8px)}}@keyframes afterFreedom{0%,30%{opacity:0;transform:scale(.8);filter:brightness(1.8) blur(8px)}65%,100%{opacity:1;transform:scale(1);filter:brightness(1) drop-shadow(0 15px 25px #0004)}}@keyframes medallionArrival{from{opacity:0;transform:scale(.2) rotate(-35deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes celebrationText{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes winnerPortrait{from{opacity:0;transform:translateY(35px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes raysTurn{to{transform:rotate(360deg)}}
@media(max-width:760px){.celebration-kicker{font-size:7px;letter-spacing:.13em;line-height:1.7;max-width:280px}.celebration-portraits{height:min(33vh,260px);width:min(33vh,260px)}.celebration-stars{font-size:20px;top:7%}.celebration-stars>span{font-size:34px}.celebration-word{font-size:67px;margin-top:15px}.celebration-content h2{font-size:25px;max-width:340px}.celebration-content p{font-size:12px}.celebration-signature{font-size:9px;margin-top:16px}.freedom-medallion{height:43px;width:43px;font-size:22px;border-width:3px}.celebration-close{bottom:5%;font-size:10px}.celebration-content{width:92%}}
@media(prefers-reduced-motion:reduce){.celebration *,.celebration{animation:none!important;transition:none!important}.celebration .before-portrait{display:none}.celebration .after-portrait,.celebration .celebration-word,.celebration h2,.celebration p,.celebration .celebration-signature,.celebration .celebration-close,.celebration .freedom-medallion{opacity:1}.portrait-rays,.celebration-particles{display:none}}
