/* Full-screen Little Kids worlds. Family Games has its own untouched result UI. */
#celebration{background:#c8e6ec;backdrop-filter:none;z-index:180;isolation:isolate;overflow:hidden;animation:victory-enter .42s ease-out both;touch-action:manipulation}
#celebration[hidden]{display:none}#celebration.leaving{animation:victory-exit .18s ease-in both;pointer-events:none}body.victory-open{overflow:hidden}
.victory-world,.victory-world>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.victory-world{z-index:0}.victory-animals{position:absolute;inset:0;z-index:2;pointer-events:none}.victory-animal{position:absolute;bottom:15%;width:clamp(130px,19vw,265px);height:clamp(175px,34vh,310px);left:calc(4% + var(--i)*24%);animation:victory-march 1s ease-in-out infinite;animation-delay:var(--delay);transform-origin:50% 95%}.victory-animal>svg{height:100%;width:100%;overflow:visible;filter:drop-shadow(0 8px 4px #53627528)}.victory-animal .doctor-arm{transform-box:fill-box;transform-origin:center top;animation:victory-wave 1.1s ease-in-out infinite alternate;animation-delay:var(--delay)}.held-balloon{position:absolute;right:-16%;top:-28%;width:44%;height:75%;animation:victory-balloon-sway 3s ease-in-out infinite alternate;transform-origin:bottom}.held-balloon svg{height:100%;width:100%}
#celebration[data-party=balloons] .victory-animal{animation-name:victory-jump;animation-duration:1.25s;left:7%;bottom:17%;width:24vw;height:34vh}#celebration[data-party=balloons] .victory-animal:nth-child(2){left:auto;right:7%;bottom:20%}#celebration[data-party=balloons] .victory-animal:nth-child(3){left:38%;bottom:12%;height:27vh}#celebration[data-party=stage] .victory-animal{animation-name:victory-dance;animation-duration:1.4s;bottom:18%;left:calc(7% + var(--i)*23%);height:29vh}#celebration[data-party=stage] .victory-world:after{content:'';position:absolute;inset:20% 10% 16%;background:conic-gradient(from 160deg at 50% 0%,transparent 0deg,#fff7b332 25deg,transparent 50deg);animation:victory-light 5s ease-in-out infinite alternate;pointer-events:none}
#celebration .party-card{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;z-index:3;pointer-events:none;text-align:center;display:block}#celebration .party-card>.eyebrow{position:absolute;top:8%;left:0;width:100%;color:#8f66a9;font-size:14px;letter-spacing:5px}#celebration .party-card>h2{position:absolute;top:10%;left:6%;width:88%;font-size:clamp(34px,6vw,68px);line-height:1.1;color:#8256a2;margin:0;text-shadow:0 3px #fff8e0,0 6px #bfacc03b;font-weight:900;animation:victory-title .8s cubic-bezier(.2,.8,.3,1.3) both}#celebration .victory-message{position:absolute;top:21%;left:10%;width:80%;margin:0;font-size:clamp(14px,2vw,19px);font-weight:800;color:#78648e;text-shadow:0 1px white}
#celebration .sticker-reveal{position:absolute;top:28%;left:50%;transform:translateX(-50%);width:min(300px,42vw);max-width:none;background:none;border:0;box-shadow:none;border-radius:0;padding:0;margin:0;display:flex;align-items:center;flex-direction:column;gap:5px;pointer-events:auto;opacity:0;animation:victory-reward .65s .75s cubic-bezier(.2,.8,.3,1.2) both}#celebration .sticker-reveal[hidden]{display:none}#celebration .sticker-reveal h3{font-size:clamp(16px,2.2vw,23px);color:#8758a2;text-shadow:0 2px white;margin:0}#celebration #new-sticker{position:relative;display:grid;place-items:center;width:100%;padding:8px 0}#celebration #new-sticker:before{content:'';position:absolute;inset:-15px -25px;background:radial-gradient(ellipse,#fff8d9bf,transparent 68%);z-index:-1}#celebration #new-sticker .sticker{width:clamp(125px,22vh,210px);height:clamp(125px,22vh,210px);animation:none;rotate:-4deg;filter:drop-shadow(0 7px 5px #7b649e24)}#celebration .sticker-reveal[data-tier=rare] #new-sticker:before{background:radial-gradient(ellipse,#fff0a2,transparent 70%)}#celebration .sticker-reveal[data-tier=legendary] #new-sticker:before{background:radial-gradient(ellipse,#f6d9ffbb,#bdf1ff44,transparent 72%)}#celebration #sticker-announcement{position:static;margin:0;color:#76528d;font-size:clamp(17px,2.2vw,24px);font-weight:900}#celebration .victory-rarity{border-radius:20px;background:#fff7df;padding:4px 15px;color:#78648e;font-size:13px;font-weight:900}#celebration [data-tier=rare] .victory-rarity{background:linear-gradient(100deg,#e5b559,#fff1a5,#e7b951);color:#81531e}#celebration [data-tier=legendary] .victory-rarity{background:linear-gradient(100deg,#a879c6,#b7bfff,#90dfe9);color:#fff;text-shadow:0 1px #7b5999}#celebration .victory-book-note{font-size:12px;color:#78648e;font-weight:800}#celebration #collect-sticker{min-height:42px;background:#fef7e6;border:2px solid white;box-shadow:0 3px #c6b3ca;padding:7px 18px;border-radius:18px;font-size:14px;color:#805a9b;margin-top:2px}
#celebration .victory-progress{position:absolute;top:38%;left:20%;width:60%;color:#876298;font-weight:800;display:grid;justify-items:center;gap:8px;font-size:clamp(14px,2vw,20px)}#celebration .victory-progress[hidden]{display:none}#victory-stars{display:flex;gap:15px}#victory-stars span{font-size:clamp(38px,6vw,65px);color:#c8bacd;text-shadow:0 3px white}#victory-stars span.earned{color:#f3be5c;animation:victory-star .6s .6s both}#celebration .victory-actions{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:0;width:100%;display:flex;justify-content:center;gap:16px;align-items:center;pointer-events:auto;animation:victory-buttons .35s both}#celebration .victory-actions[hidden]{display:none}#celebration .victory-actions button{border:3px solid white;min-height:60px;min-width:145px;font-size:20px;padding:13px 28px;border-radius:24px;background:linear-gradient(#ffe79b,#ffd575);color:#805b8d;box-shadow:0 5px #cbae75;margin:0}#celebration .victory-actions #party-home{background:linear-gradient(#e8d5f8,#d1b8eb);box-shadow:0 5px #ad91c4}#celebration #admire{font-size:13px;text-decoration:none;min-width:0;background:#fffae6;min-height:45px;padding:8px 12px}
#celebration .victory-quiet{position:absolute;z-index:8;right:max(14px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));border:2px solid #fff9e8;border-radius:20px;background:#fffae9dc;color:#836197;font:inherit;font-size:13px;font-weight:800;min-height:44px;padding:8px 14px}.victory-balloons{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.victory-balloons>span{position:absolute;left:var(--x);bottom:-200px;width:clamp(60px,9vw,130px);height:190px;animation:victory-float var(--time) var(--delay) linear infinite}.victory-balloons svg{width:100%;height:100%}#celebration .confetti{z-index:4;pointer-events:none}#celebration .confetti i{top:-6%;left:var(--x);width:9px;height:17px;background:var(--color);border-radius:3px;animation:victory-confetti 2.8s var(--delay) ease-out both;opacity:0}#celebration .confetti i.star{width:18px;height:18px;clip-path:polygon(50% 0,61% 34%,98% 35%,68% 58%,80% 94%,50% 74%,20% 94%,32% 58%,2% 35%,39% 34%)}
#victory-preview{position:absolute;top:31%;left:50%;translate:-50% 0}#celebration.has-preview:not(.has-reward) .victory-progress{top:53%}#celebration .pizza-finished-preview,#celebration .coloring-finished-preview{position:relative;margin:0;width:clamp(90px,18vh,160px);height:clamp(90px,18vh,160px);max-height:none;box-shadow:0 5px 15px #8c709e26;rotate:-4deg}#celebration.has-reward #victory-preview{left:8%;top:36%;translate:0 0}#celebration.has-reward .victory-animal{height:26vh;bottom:13%}#celebration.has-reward[data-party=balloons] .victory-animal:nth-child(3){left:17%;height:21vh;bottom:16%}
#celebration.quiet .confetti i:nth-child(n+9),#celebration.quiet .victory-balloons>span:nth-child(n+4){display:none}#celebration.quiet .victory-animal{animation-duration:2.8s}#celebration.quiet .victory-world:after{animation:none}#celebration.quiet .held-balloon{animation-duration:5s}#celebration.victory-paused *,#celebration.victory-paused *:before,#celebration.victory-paused *:after{animation-play-state:paused!important}
@keyframes victory-enter{from{opacity:0;scale:1.035}to{opacity:1;scale:1}}@keyframes victory-exit{to{opacity:0;scale:1.02}}@keyframes victory-march{0%,100%{translate:0 0;rotate:-2deg}50%{translate:8px -13px;rotate:2deg}}@keyframes victory-jump{0%,100%{translate:0 0;scale:1.02 .98}45%{translate:0 -35px;scale:.98 1.02}}@keyframes victory-dance{0%,100%{rotate:-6deg;translate:-8px 0}50%{rotate:6deg;translate:8px -10px}}@keyframes victory-wave{to{rotate:-15deg}}@keyframes victory-balloon-sway{to{rotate:8deg}}@keyframes victory-float{to{translate:35px calc(-100vh - 260px);rotate:12deg}}@keyframes victory-confetti{10%{opacity:1}90%{opacity:1}to{translate:var(--drift) 103vh;rotate:540deg;opacity:0}}@keyframes victory-light{to{rotate:8deg;opacity:.55}}@keyframes victory-title{from{opacity:0;translate:0 -25px;scale:.85}to{opacity:1;translate:0 0;scale:1}}@keyframes victory-reward{from{opacity:0;translate:0 25px;scale:.5;rotate:-16deg}to{opacity:1;translate:0 0;scale:1;rotate:0deg}}@keyframes victory-buttons{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}@keyframes victory-star{from{scale:.3}to{scale:1}}
@media(max-width:600px){#celebration .party-card>.eyebrow{top:9%;font-size:11px}#celebration .party-card>h2{top:12%;font-size:36px}#celebration .victory-message{top:19%;font-size:14px;left:8%;width:84%}#celebration .sticker-reveal{top:26%;width:66vw}#celebration #new-sticker .sticker{width:145px;height:145px}#celebration .victory-actions{gap:10px;flex-wrap:wrap;padding:0 12px;box-sizing:border-box}#celebration .victory-actions button{min-width:135px;font-size:18px;padding:12px 20px}#celebration #admire{position:absolute;bottom:74px;font-size:12px;min-height:36px}#celebration .victory-animal{width:31vw;left:calc(-7% + var(--i)*28%);height:24vh;bottom:17%}#celebration[data-party=stage] .victory-animal{left:calc(-5% + var(--i)*27%);height:23vh}#celebration[data-party=balloons] .victory-animal{width:35vw;height:26vh;left:-1%;bottom:19%}#celebration[data-party=balloons] .victory-animal:nth-child(2){right:-1%}#celebration.has-reward #victory-preview{left:2%;top:62%}#celebration .victory-progress{left:10%;width:80%;top:35%}}
@media(orientation:landscape) and (max-height:600px){#celebration .party-card>.eyebrow{top:4%;font-size:10px}#celebration .party-card>h2{top:8%;font-size:32px}#celebration .victory-message{top:19%;font-size:13px}#celebration .sticker-reveal{top:27%;gap:2px}#celebration #new-sticker .sticker{width:100px;height:100px}#celebration .sticker-reveal h3{font-size:15px}#celebration #sticker-announcement{font-size:16px}#celebration .victory-book-note{font-size:10px}#celebration #collect-sticker{min-height:34px;font-size:12px;padding:5px 12px}#celebration .victory-actions button{min-height:45px;padding:8px 22px;font-size:17px}#celebration .victory-actions{bottom:12px}#celebration .victory-quiet{min-height:36px;font-size:11px}#celebration .victory-animal{height:36vh}#celebration.has-reward .victory-animal{height:33vh}#celebration .victory-rarity{padding:2px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){#celebration *,#celebration *:before,#celebration *:after,#celebration{animation:none!important;transition:none!important}#celebration .sticker-reveal{opacity:1}#celebration .confetti{display:none}}
#celebration[data-party=parade] .victory-animals{animation:victory-parade-travel 8s ease-in-out infinite alternate}#celebration.quiet[data-party=parade] .victory-animals{animation-duration:16s}@keyframes victory-parade-travel{from{translate:-2% 0}to{translate:2% 0}}#celebration .doctor-arm+.doctor-arm{animation-direction:alternate-reverse}

/* Two genuine hand poses clap at the chest; no whole-body rubber deformation. */
.lisa-clap-open{opacity:1;animation:victory-clap-open 1.4s var(--clap-delay) ease-in-out infinite}
.lisa-clap-closed{opacity:0;animation:victory-clap-close 1.4s var(--clap-delay) ease-in-out infinite}
@keyframes victory-clap-close{0%,12%,44%,56%,88%,100%{opacity:0}20%,36%,64%,80%{opacity:1}}
@keyframes victory-clap-open{0%,12%,44%,56%,88%,100%{opacity:1}20%,36%,64%,80%{opacity:0}}
#celebration.quiet .lisa-clap-open,#celebration.quiet .lisa-clap-closed{animation-duration:2.8s}
@media(prefers-reduced-motion:reduce){.lisa-clap-open{animation:none;opacity:1}.lisa-clap-closed{animation:none;opacity:0}}
@media(orientation:landscape) and (max-height:430px){#celebration .sticker-reveal{top:26%;gap:1px}#celebration #new-sticker .sticker{width:85px;height:85px}#celebration .victory-book-note{display:none}}

/* Give the earned sticker's Book action a clear silver reward finish. */
#celebration #collect-sticker{
 position:relative;overflow:hidden;isolation:isolate;min-height:50px;
 padding:9px 22px;border:2px solid #fff;border-radius:18px;
 background:linear-gradient(135deg,#f9fcff 0%,#bdc9d9 27%,#f7fbff 49%,#a9b7ca 78%,#eef5fc 100%);
 color:#394a65;font-size:15px;font-weight:900;text-shadow:0 1px #fff;
 box-shadow:0 4px 0 #8995a9,0 0 14px 4px #e9f6ffb8,inset 0 2px 3px #fff;
 animation:book-button-glow 2.4s ease-in-out infinite;
}
#celebration #collect-sticker:before{
 content:'';position:absolute;inset:-50% auto -50% -75%;width:35%;z-index:-1;
 transform:skewX(-25deg);background:linear-gradient(90deg,transparent,#ffffffc7,transparent);
 animation:book-button-shine 3.2s ease-in-out infinite;
}
#celebration #collect-sticker:focus-visible{outline:3px solid #536dc0;outline-offset:3px}
#celebration #collect-sticker:active{translate:0 2px;box-shadow:0 2px 0 #8995a9,0 0 12px 3px #e9f6ffb8}
@keyframes book-button-glow{50%{box-shadow:0 4px 0 #8995a9,0 0 25px 9px #f7fcff,inset 0 2px 3px #fff}}
@keyframes book-button-shine{0%,28%{left:-75%}65%,100%{left:145%}}
@media(prefers-reduced-motion:reduce){#celebration #collect-sticker,#celebration #collect-sticker:before{animation:none}}

/* Idle celebration settles without disabling any reward or navigation control. */
#celebration.victory-resting .victory-animal,#celebration.victory-resting .victory-balloons>span,#celebration.victory-resting .held-balloon,#celebration.victory-resting .victory-world:after,#celebration.victory-resting .lisa-clap-open,#celebration.victory-resting .lisa-clap-closed{animation-play-state:paused!important}
#celebration.victory-resting .confetti{display:none}

/* Painted Home-style scenery and a single continuously animated animal texture.
   No crossfading between different face/body poses during celebration. */
#celebration .victory-scenery{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
#celebration .victory-sunlight{position:absolute;inset:0;background:linear-gradient(#fff6dbb5 0%,#fff8e76b 28%,transparent 65%),radial-gradient(ellipse at 50% 44%,#fff7dc9c,transparent 56%)}
#celebration .victory-world>.victory-bunting{height:19%;filter:drop-shadow(0 4px 3px #55442538);transform-origin:50% 0;animation:victory-banner-breeze 6s ease-in-out infinite}
#celebration .victory-world:after{display:none}
#celebration .victory-animal{animation:victory-gentle-bounce 3.8s var(--delay) ease-in-out infinite;transform-origin:50% 92%;isolation:isolate}
#celebration[data-party=stage] .victory-animal{animation-name:victory-gentle-sway;animation-duration:4.5s}
#celebration[data-party=balloons] .victory-animal{animation-duration:3.4s}
#celebration .victory-animal:before{content:'';position:absolute;bottom:0;left:15%;width:70%;height:8%;border-radius:50%;background:radial-gradient(ellipse,#34412d55,transparent 70%);z-index:-1}
#celebration .victory-animal>svg{position:relative;z-index:1}
#celebration .victory-animal .lisa-character-idle{animation:none!important}
#celebration .lisa-party-motion-layer{filter:drop-shadow(0 7px 4px #34412d30)}
#celebration[data-party=parade] .victory-animals{animation:none}
#celebration.quiet .victory-animal{animation-duration:7s}
.victory-petals{position:absolute;inset:0;overflow:hidden}.victory-petals i{position:absolute;left:calc(8% + var(--i)*15%);top:-5%;width:9px;height:14px;border-radius:70% 15% 70% 15%;background:#fff2ac;animation:victory-petal-drift 15s calc(var(--i)*-2.1s) linear infinite;opacity:.6}
@keyframes victory-petal-drift{to{translate:50px 110vh;rotate:220deg}}
@keyframes victory-banner-breeze{50%{transform:rotate(.5deg) translateY(3px)}}
@keyframes victory-gentle-bounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-9px)}65%{transform:translateY(-3px)}}
@keyframes victory-gentle-sway{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg) translateY(-5px)}}
@media(prefers-reduced-motion:reduce){#celebration .victory-animal,#celebration .victory-bunting,.victory-petals i{animation:none!important}}

/* Three additional Home-style party settings with their own movement accents. */
#celebration[data-party=forest] .victory-scenery{object-position:50% 65%}
#celebration[data-party=forest] .victory-animal{animation-name:victory-gentle-sway;animation-duration:4.8s}
#celebration[data-party=forest] .victory-petals i{background:#e5e9a8;border-radius:70% 5%}
#celebration[data-party=treehouse] .victory-scenery{object-position:50% 55%}
#celebration[data-party=treehouse] .victory-animal:nth-child(even){animation-duration:4.5s}
#celebration[data-party=treehouse] .victory-petals i{background:#ffdeb8}
#celebration[data-party=garden] .victory-scenery{object-position:50% 65%}
#celebration[data-party=garden] .victory-animal{animation-name:victory-gentle-sway;animation-duration:3.9s}
#celebration[data-party=garden] .victory-petals i{background:#ffcde2;border-radius:65% 65% 15% 65%}
#celebration.quiet:is([data-party=forest],[data-party=treehouse],[data-party=garden]) .victory-animal{animation-duration:7s}
