@keyframes votePop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes confetti{0%{transform:translate(0) rotate(0deg) scale(0);opacity:1}25%{opacity:1;transform:translate(calc(var(--tx) * .5),calc(var(--ty) * .5)) rotate(calc(var(--r) * .5)) scale(var(--scale))}to{transform:translate(var(--tx),var(--ty)) rotate(var(--r)) scale(0);opacity:0}}@keyframes fillBackground{0%{width:0}to{width:100%}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.vote-animation{animation:votePop .4s cubic-bezier(.25,.46,.45,.94) both;transform-origin:center;will-change:transform;position:relative;z-index:2}.confetti{position:fixed;border-radius:4px;pointer-events:none;animation:confetti .6s cubic-bezier(.25,.46,.45,.94) forwards;animation-delay:var(--delay);z-index:50;box-shadow:0 0 4px rgba(0,0,0,.2);background-image:linear-gradient(45deg,hsla(0,0%,100%,.3),hsla(0,0%,100%,0));will-change:transform,opacity}.vote-button-background{position:absolute;left:0;top:0;height:100%;width:0;background:var(--fill-color);border-radius:inherit;transition:all .3s ease-out;z-index:1;opacity:0}.vote-button-background.active{width:100%;opacity:1}.vote-button-background:hover{background:var(--fill-color-hover,var(--fill-color))}.vote-button-ripple{position:absolute;left:var(--click-x);top:var(--click-y);width:100px;height:100px;border-radius:50%;transform-origin:center;animation:ripple .3s ease-out forwards;pointer-events:none;z-index:1}