#celebrationDialog{padding:28px 25px 25px;width:min(480px,94vw);max-height:94dvh;overflow:auto;border:3px solid #e6d7ff;border-radius:28px;background:linear-gradient(160deg,#fffaf1,#f4eaff);color:#533b7b;text-align:center;box-shadow:0 30px 100px #321d5750;font-family:Nunito,system-ui,sans-serif}#celebrationDialog::backdrop{background:#271847a6;backdrop-filter:blur(7px)}.celebration-close{position:absolute;right:13px;top:12px;padding:7px 11px;border:0;background:#eee0ff;color:#9a6cb9;border-radius:50%;font-size:14px}.celebration-kicker{font-size:9px;letter-spacing:1.5px;font-weight:1000;color:#b87b39;margin:8px 20px 12px}#celebrationDialog h2{font-size:28px;line-height:1.1;margin:10px 0;color:#8354bf}.celebration-intro{font-size:13px;color:#ab8dbd;margin:10px 0 0}.celebration-stage{height:265px;position:relative;display:grid;place-items:center;isolation:isolate;overflow:hidden;margin:0 -10px}.celebration-floor{position:absolute;bottom:16px;background:#b699e62e;width:180px;height:20px;border-radius:50%;z-index:-1}.celebration-character{width:min(250px,64vw);max-height:250px;background-repeat:no-repeat;background-size:400% 600%;z-index:1;transform-origin:center 80%;filter:drop-shadow(0 7px 3px #53287915)}.celebration-character.loading{height:220px;display:grid;place-items:center;font-size:12px;color:#a489b9}.celebration-character .buddy-character{display:block;width:140px;height:200px;background-size:contain;background-repeat:no-repeat}#celebrationAction{font-size:12px;color:#9e78b3;min-height:20px;font-weight:800}#celebrationFinal{font-size:21px;line-height:1.2;color:#78529f;margin:13px 0 0}#celebrationLine{font-size:12px;color:#a08aaf;line-height:1.5;margin:8px auto 20px;max-width:320px}.celebration-buttons{display:flex;gap:10px;justify-content:center}.celebration-buttons button{font-size:13px;min-width:100px}.celebration-buttons .primary{min-width:160px}.celebration-particles{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:2}.celebration-particles i{position:absolute;left:calc(8% + var(--i)*7.5%);top:12%;color:#efa740;font-size:calc(12px + var(--i)*1.2px);font-style:normal;transform:translateY(-50px)}.celebration-particles i:nth-child(3n){color:#a872e2}.celebration-particles i:nth-child(3n+1){color:#62c6af}.celebration-particles i:nth-child(3n+2){color:#f389b0}.finale .celebration-particles{opacity:1}.finale .celebration-particles i{animation:celebration-confetti 1.8s ease-out both;animation-delay:calc(var(--i)*.06s)}.celebration-medal{position:absolute;right:15%;top:10%;font-size:55px;opacity:0;z-index:3;transform:rotate(-12deg) scale(.3)}.gold-medal .celebration-medal{animation:medal-in .7s ease-out forwards}.victory-hop.celebration-character{animation:companion-hop .6s ease-in-out 2}.happy-dance.celebration-character{animation:companion-dance .35s ease-in-out 6}.star-party.celebration-character{animation:companion-proud .8s ease-in-out 2}.color-parade.celebration-character{animation:companion-dance .55s ease-in-out 4}.celebration-preview-card button{background:#eee2ff;color:#8954b7;border-color:#d8bcee}.celebration-preview-card p{font-size:13px}@keyframes companion-hop{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(5px) scale(1.03,.97)}60%{transform:translateY(-22px) scale(.97,1.03)}}@keyframes companion-dance{0%,100%{transform:rotate(-6deg) translateX(-7px)}50%{transform:rotate(6deg) translateX(7px)}}@keyframes companion-proud{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes celebration-confetti{0%{transform:translateY(-50px) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(280px) rotate(220deg);opacity:0}}@keyframes medal-in{to{opacity:1;transform:rotate(8deg) scale(1)}}@media(max-width:650px){#celebrationDialog{padding:22px 18px}#celebrationDialog h2{font-size:25px}.celebration-stage{height:245px}.celebration-character{max-height:230px;width:min(230px,65vw)}.celebration-buttons button{padding:12px}.celebration-buttons .primary{min-width:145px}}@media(prefers-reduced-motion:reduce){#celebrationDialog *{animation:none!important;transition:none!important}.finale .celebration-particles{opacity:0}.gold-medal .celebration-medal{opacity:1;transform:scale(1)}}
