/* Viewport rewards deliberately sit outside the game's oval and shell. */
.lw-celebration{
 position:fixed;inset:0;z-index:10000;overflow:hidden;
 pointer-events:none!important;user-select:none;contain:strict;
}
.lw-celebration *{pointer-events:none!important}
.lw-confetti,.lw-balloon{position:absolute;top:0;left:0;opacity:0}
.lw-confetti{
 width:var(--piece-width);height:calc(var(--piece-width)*1.55);
 background:var(--festive-color);border-radius:2px;
 animation:lw-confetti-flight var(--duration) var(--delay) linear both;
}
.lw-confetti--dot{height:var(--piece-width);border-radius:50%}
.lw-confetti--ribbon{width:calc(var(--piece-width)*.65);height:calc(var(--piece-width)*2.5);border-radius:5px}
.lw-balloon{
 width:var(--balloon-width);height:calc(var(--balloon-width)*1.24);
 animation:lw-balloon-flight var(--duration) var(--delay) linear both;
}
.lw-balloon-body{
 display:block;position:absolute;inset:0;
 width:100%;height:100%;min-width:0;min-height:0;margin:0;padding:0;border:0;
 appearance:none;-webkit-appearance:none;touch-action:none;cursor:pointer;
 border-radius:49% 49% 46% 46%;
 background:radial-gradient(ellipse at 29% 22%,#ffffff7a 0,transparent 36%),var(--festive-color);
 box-shadow:inset -7px -10px 0 #0000000a,inset 0 0 0 1px #ffffff45;
}
.lw-celebration .lw-balloon-body{pointer-events:auto!important}
.lw-balloon-body:focus-visible{outline:3px solid #526cb0;outline-offset:5px}
.lw-balloon-body:before{
 content:"";position:absolute;left:20%;top:15%;width:15%;height:23%;
 border-radius:50%;background:#ffffff96;transform:rotate(28deg);
}
.lw-balloon-body:after{
 content:"";position:absolute;left:calc(50% - 6px);top:calc(100% - 1px);
 width:12px;height:10px;background:var(--festive-color);
 clip-path:polygon(50% 0,100% 100%,0 100%);
}
.lw-balloon-string{
 position:absolute;top:calc(100% + 8px);left:50%;
 width:18px;height:calc(var(--balloon-width)*1.05);
 border-left:1.5px solid #6b687461;border-radius:45% 0 0 35%;
}
.lw-celebration .lw-balloon--popped .lw-balloon-body{pointer-events:none!important}
.lw-balloon--popped .lw-balloon-body{animation:lw-balloon-pop 180ms ease-out both}
.lw-balloon--popped .lw-balloon-string{animation:lw-pop-fade 120ms linear both}
.lw-balloon-burst{position:absolute;inset:0;pointer-events:none}
.lw-pop-speck{
 position:absolute;left:50%;top:50%;width:7px;height:11px;border-radius:3px;
 background:var(--festive-color);opacity:0;
 animation:lw-pop-speck 360ms ease-out both;
}
@keyframes lw-balloon-pop{
 0%{opacity:1;transform:scale(1)}
 40%{opacity:1;transform:scale(1.12)}
 100%{opacity:0;transform:scale(.3)}
}
@keyframes lw-pop-speck{
 0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--pop-angle)) translateY(-8px) scale(.5)}
 65%{opacity:1}
 100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--pop-angle)) translateY(calc(var(--balloon-width)*-.75)) scale(.3)}
}
@keyframes lw-pop-fade{from{opacity:1}to{opacity:0}}
@keyframes lw-confetti-flight{
 0%{opacity:0;transform:translate3d(var(--origin-x),var(--origin-y),0) rotate(var(--spin-start)) scale(.8)}
 3%{opacity:1}
 27%{opacity:1;transform:translate3d(var(--peak-x),var(--peak-y),0) rotate(var(--spin-middle)) scale(1)}
 67%{opacity:1;transform:translate3d(var(--fall-x),var(--fall-y),0) rotate(var(--spin-end)) scale(.9)}
 88%{opacity:1}
 100%{opacity:0;transform:translate3d(var(--end-x),var(--end-y),0) rotate(calc(var(--spin-end) + 180deg)) scale(.8)}
}
@keyframes lw-balloon-flight{
 0%{opacity:0;transform:translate3d(var(--origin-x),var(--origin-y),0) translateX(-50%) rotate(var(--spin-start))}
 7%{opacity:var(--balloon-opacity)}
 28%{opacity:var(--balloon-opacity);transform:translate3d(var(--drift-x),var(--drift-y),0) translateX(-50%) rotate(var(--spin-middle))}
 64%{opacity:var(--balloon-opacity);transform:translate3d(var(--peak-x),var(--peak-y),0) translateX(-50%) rotate(calc(var(--spin-middle)*-.7))}
 90%{opacity:var(--balloon-opacity)}
 100%{opacity:0;transform:translate3d(var(--end-x),-42vh,0) translateX(-50%) rotate(var(--spin-end))}
}
@keyframes lw-festive-still{
 0%{opacity:0}
 12%,70%{opacity:.95}
 100%{opacity:0}
}
.lw-celebration--reduced .lw-confetti,.lw-celebration--reduced .lw-balloon{
 transform:translate3d(var(--rest-x),var(--rest-y),0) translateX(-50%);
 animation:lw-festive-still 1100ms linear both;
}
.lw-celebration--reduced .lw-balloon--popped .lw-balloon-body{animation:lw-pop-fade 120ms linear both}
.lw-celebration--reduced .lw-pop-speck{animation:none}
@media(prefers-reduced-motion:reduce){
 .lw-celebration .lw-confetti,.lw-celebration .lw-balloon{
  transform:translate3d(var(--rest-x),var(--rest-y),0) translateX(-50%);
  animation:lw-festive-still 1100ms linear both;
 }
 .lw-celebration .lw-balloon--popped .lw-balloon-body{animation:lw-pop-fade 120ms linear both}
 .lw-celebration .lw-pop-speck{animation:none}
}
