.rating{--fx:.54;--rate-h:60px;gap:6px;display:flex}.rate{flex:1;min-width:0;position:relative}.rate>button{width:100%;height:var(--rate-h);position:relative;overflow:visible}.rate>button>b,.rate>button>span:not(.rate-fx){z-index:1;position:relative}.rate>button:before{content:"";border-radius:inherit;opacity:0;pointer-events:none;position:absolute;inset:-1px}.rate[data-r="1"]>button:before{background:var(--rate-sad-bg);border:1px solid var(--rate-sad-line)}.rate[data-r="5"]>button:before{background:var(--rate-love-bg);border:1px solid var(--rate-love-line)}.rate[data-r="2"]>button,.rate[data-r="4"]>button{transform-origin:50% 100%}.rate>button.on{--rate-fg:var(--accent-strong)}.rate-fx{width:0;height:0;transform:scale(var(--fx));transform-origin:0 0;pointer-events:none;z-index:3;position:absolute;top:0;left:50%}.rate-fx.tl{left:0}.rate-fx.tr{left:100%}.rate-fx>*{opacity:0;position:absolute;overflow:visible}.rate-ring{opacity:0;pointer-events:none;border:3px solid #f2b44e;border-radius:10px;position:absolute;inset:0;box-shadow:0 0 0 6px #f2b44e33,0 0 24px #f2b44e73}.rate-confetti{border-radius:1px;width:15px;height:8px;margin:-4px 0 0 -7px}.rate-confetti.round{border-radius:50%;width:11px;height:11px;margin:-5px 0 0 -5px}.rate-cheek{filter:blur(1px);background:#f39aa6;border-radius:50%;width:22px;height:11px}.rate.play>button,.rate.play>button:before{animation:var(--motion-duration-reaction) linear}.rate.play[data-r="1"]>button{animation-name:rate-btn-1}.rate.play[data-r="1"]>button:before{animation-name:rate-tint-1}.rate.play .rate-cloud{animation:rate-cloud var(--motion-duration-reaction) linear}.rate.play .rate-bolt{animation:rate-bolt var(--motion-duration-reaction) linear}.rate.play .rate-drop{animation:rate-drop calc(var(--motion-duration-reaction) * .18) linear calc(var(--motion-duration-reaction) * var(--a)), rate-drop calc(var(--motion-duration-reaction) * .18) linear calc(var(--motion-duration-reaction) * var(--b))}.rate.play[data-r="2"]>button{animation-name:rate-btn-2}.rate.play .rate-tear{animation:rate-tear var(--motion-duration-reaction) linear}.rate.play .rate-tissue{animation:rate-tissue var(--motion-duration-reaction) linear}.rate.play[data-r="3"]>button{animation-name:rate-btn-3}.rate.play .rate-ring{animation:rate-ring var(--motion-duration-reaction) linear}.rate.play .rate-spark{animation:rate-spark calc(var(--motion-duration-reaction) * .42) linear calc(var(--motion-duration-reaction) * var(--st))}.rate.play[data-r="4"]>button{animation-name:rate-btn-4}.rate.play .rate-confetti{animation:rate-confetti var(--motion-duration-reaction) linear}.rate.play[data-r="5"]>button{animation-name:rate-btn-5}.rate.play[data-r="5"]>button:before{animation-name:rate-tint-5}.rate.play .rate-cheek{animation:rate-cheek var(--motion-duration-reaction) linear}.rate.play .rate-heart{animation:rate-heart calc(var(--motion-duration-reaction) * .48) linear calc(var(--motion-duration-reaction) * var(--st))}@media (prefers-reduced-motion:reduce){.rate.play>button{animation-name:none!important}.rate.play[data-r="5"]>button{animation-name:rate-calm-color!important}.rate.play>button:before,.rate.play .rate-cloud,.rate.play .rate-cheek,.rate.play .rate-spark,.rate.play .rate-confetti,.rate.play .rate-heart{animation:rate-calm var(--motion-duration-reaction) linear!important}.rate.play .rate-tear{animation:rate-calm-tear var(--motion-duration-reaction) linear!important}.rate.play .rate-ring{animation:rate-calm-ring var(--motion-duration-reaction) linear!important}.rate.play .rate-bolt,.rate.play .rate-drop,.rate.play .rate-tissue{animation:none!important}.rate-confetti{transform:translate(calc(var(--dx) * 1.9px), calc(var(--dy) * 1.9px)) rotate(calc(var(--rot) * .6deg))}}@keyframes rate-calm{0%{opacity:0;animation-timing-function:var(--motion-easing-in-out)}10%{opacity:1;animation-timing-function:var(--motion-easing-linear)}65%{opacity:1;animation-timing-function:var(--motion-easing-in-out)}75%{opacity:0}to{opacity:0}}@keyframes rate-calm-tear{0%{opacity:0;animation-timing-function:var(--motion-easing-in-out)}10%{opacity:1;animation-timing-function:var(--motion-easing-linear)}50%{opacity:1;animation-timing-function:var(--motion-easing-in-out)}60%{opacity:0}to{opacity:0}}@keyframes rate-calm-ring{0%{opacity:0;animation-timing-function:var(--motion-easing-in-out)}10%{opacity:.9;animation-timing-function:var(--motion-easing-linear)}55%{opacity:.9;animation-timing-function:var(--motion-easing-in-out)}65%{opacity:0}to{opacity:0}}@keyframes rate-calm-color{0%{color:var(--rate-fg,var(--fg));animation-timing-function:var(--motion-easing-in-out)}10%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-linear)}65%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-in-out)}75%{color:var(--rate-fg,var(--fg))}to{color:var(--rate-fg,var(--fg))}}@keyframes rate-btn-1{0%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}14%{transform:translate(0, calc(2px * var(--fx))) rotate(0deg) scale(1, 1);animation-timing-function:var(--motion-easing-linear)}72%{transform:translate(0, calc(2px * var(--fx))) rotate(0deg) scale(1, 1);animation-timing-function:var(--motion-easing-in-out)}90%{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}to{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-tint-1{0%{opacity:0;animation-timing-function:var(--motion-easing-in-out)}14%{opacity:1;animation-timing-function:var(--motion-easing-linear)}72%{opacity:1;animation-timing-function:var(--motion-easing-in-out)}90%{opacity:0;animation-timing-function:var(--motion-easing-linear)}to{opacity:0;animation-timing-function:var(--motion-easing-linear)}}@keyframes rate-cloud{0%{opacity:0;animation-timing-function:var(--motion-easing-back);transform:translateY(8px)rotate(0)scale(.6)}14%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}20%{opacity:1;animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}46%{opacity:1;animation-timing-function:var(--motion-easing-in-out);transform:translateY(4px)rotate(0)scale(1.02,.96)}72%{opacity:1;animation-timing-function:var(--motion-easing-in);transform:translateY(2px)rotate(0)scale(1)}90%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(-6px)rotate(0)scale(.92)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(8px)rotate(0)scale(.6)}}@keyframes rate-bolt{0%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(.8)}38%{opacity:0;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(.8)}42%{opacity:.9;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}50%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-drop{0%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}16.667%{opacity:.9;animation-timing-function:var(--motion-easing-in);transform:translateY(3px)rotate(0)scale(1)}94.444%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(34px)rotate(0)scale(1)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-btn-2{0%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}14%{transform:translate(0, calc(2px * var(--fx))) rotate(-2.5deg) scale(1, 1);animation-timing-function:var(--motion-easing-linear)}50%{transform:translate(0, calc(2px * var(--fx))) rotate(-2.5deg) scale(1, 1);animation-timing-function:var(--motion-easing-in-out)}66%{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(.8deg)scale(1)}80%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}to{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-tear{0%{opacity:0;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(.3)}14%{opacity:1;animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}34%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translateY(16px)rotate(0)scale(1)}50%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translateY(16px)rotate(0)scale(1)}57%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(18px)rotate(0)scale(.5)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(.3)}}@keyframes rate-tissue{0%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(110px,6px)rotate(20deg)scale(1)}30%{opacity:0;animation-timing-function:var(--motion-easing-out);transform:translate(110px,6px)rotate(20deg)scale(1)}44%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translateY(14px)rotate(-6deg)scale(1)}49%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translate(-9px,20px)rotate(5deg)scale(1)}54%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translate(8px,18px)rotate(-7deg)scale(1)}59%{opacity:1;animation-timing-function:var(--motion-easing-in-out);transform:translate(-5px,20px)rotate(3deg)scale(1)}66%{opacity:1;animation-timing-function:var(--motion-easing-in);transform:translateY(16px)rotate(0)scale(1)}84%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(120px,-10px)rotate(24deg)scale(1)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(110px,6px)rotate(20deg)scale(1)}}@keyframes rate-btn-3{0%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}22%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1.07)}50%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(.99)}68%{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}to{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-ring{0%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}6%{opacity:0;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(1)}20%{opacity:.9;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(1.02)}64%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1.2)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-spark{0%{opacity:0;animation-timing-function:var(--motion-easing-back);transform:translate(0)rotate(0)scale(0)}33.333%{opacity:1;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(45deg)scale(1)}to{opacity:0;transform:translate(calc(var(--dx) * 2.4px), calc(var(--dy) * 2.4px)) rotate(90deg) scale(.6, .6);animation-timing-function:var(--motion-easing-linear)}}@keyframes rate-btn-4{0%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}10%{transform:translate(0, calc(3px * var(--fx))) rotate(0deg) scale(1.07, .9);animation-timing-function:var(--motion-easing-out)}26%{transform:translate(0, calc(-28px * var(--fx))) rotate(0deg) scale(.96, 1.06);animation-timing-function:var(--motion-easing-in)}40%{animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(1.07,.92)}48%{transform:translate(0, calc(-6px * var(--fx))) rotate(0deg) scale(1, 1);animation-timing-function:var(--motion-easing-in)}56%{animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1.01,.99)}66%{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}to{animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-confetti{0%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(-24px)rotate(0)scale(.4)}22%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(-24px)rotate(0)scale(.4)}25%{opacity:1;animation-timing-function:var(--motion-easing-out);transform:translateY(-24px)rotate(0)scale(1)}46%{opacity:1;transform:translate(calc(var(--dx) * 1.9px), calc(var(--dy) * 1.9px)) rotate(calc(var(--rot) * .6deg)) scale(1, 1);animation-timing-function:var(--motion-easing-in-out)}78%{opacity:1;transform:translate(calc(var(--dx) * 2.15px), calc(var(--dy) * 1.9px + 50px)) rotate(calc(var(--rot) * 1deg)) scale(1, 1);animation-timing-function:var(--motion-easing-in)}90%{opacity:0;transform:translate(calc(var(--dx) * 2.15px), calc(var(--dy) * 1.9px + 62px)) rotate(calc(var(--rot) * 1deg)) scale(1, 1);animation-timing-function:var(--motion-easing-linear)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translateY(-24px)rotate(0)scale(.4)}}@keyframes rate-btn-5{0%{color:var(--rate-fg,var(--fg));animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}20%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(-1.5deg)scale(1.07)}30%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(1.5deg)scale(1.05)}40%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1.07)}66%{color:var(--rate-love-fg);animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1.07)}92%{color:var(--rate-fg,var(--fg));animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}to{color:var(--rate-fg,var(--fg));animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}}@keyframes rate-tint-5{0%{opacity:0;animation-timing-function:var(--motion-easing-in-out)}20%{opacity:1;animation-timing-function:var(--motion-easing-linear)}66%{opacity:1;animation-timing-function:var(--motion-easing-in-out)}92%{opacity:0;animation-timing-function:var(--motion-easing-linear)}to{opacity:0;animation-timing-function:var(--motion-easing-linear)}}@keyframes rate-cheek{0%{opacity:0;animation-timing-function:var(--motion-easing-out);transform:translate(0)rotate(0)scale(.6)}24%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(1)}66%{opacity:1;animation-timing-function:var(--motion-easing-in-out);transform:translate(0)rotate(0)scale(1)}90%{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(.6)}to{opacity:0;animation-timing-function:var(--motion-easing-linear);transform:translate(0)rotate(0)scale(.6)}}@keyframes rate-heart{0%{opacity:0;animation-timing-function:var(--motion-easing-back);transform:translate(0)rotate(0)scale(0)}20.833%{opacity:1;animation-timing-function:var(--motion-easing-linear);transform:translateY(-12px)rotate(0)scale(1.15)}37.5%{opacity:1;transform:translate(calc(var(--dx) * -.8px), calc(var(--dy) * .55px)) rotate(0deg) scale(1, 1);animation-timing-function:var(--motion-easing-linear)}66.667%{opacity:1;transform:translate(calc(var(--dx) * 1.1px), calc(var(--dy) * 1.1px)) rotate(0deg) scale(1, 1);animation-timing-function:var(--motion-easing-in)}to{opacity:0;transform:translate(calc(var(--dx) * 1.8px), calc(var(--dy) * 1.6px)) rotate(0deg) scale(.85, .85);animation-timing-function:var(--motion-easing-linear)}}
.toaster{z-index:1000;pointer-events:none;flex-direction:column;gap:10px;width:min(520px,100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius);background:var(--inverse-bg);color:var(--inverse-fg);animation:toast-in var(--motion-duration-enter) var(--motion-easing-out) both;align-items:center;gap:12px;padding:12px 12px 12px 14px;font-size:14px;display:flex;box-shadow:0 16px 40px #1e0e0847}.toast.leaving{animation:toast-out var(--motion-duration-rest) var(--motion-easing-in) both}.toast strong{font-weight:600}.toast .small{opacity:.8;overflow-wrap:anywhere}.toast-check{background:var(--ok-dot);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.toast-action{background:var(--accent);border-color:var(--accent);color:#fff;white-space:nowrap;padding:7px 12px}.toast-action:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.toast-close{color:inherit;opacity:.6;background:0 0;border:0;padding:6px 8px}.toast-close:hover{opacity:1;color:inherit;background:0 0}@keyframes toast-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)}}.celebration{z-index:999;pointer-events:none;--burst:calc(var(--motion-duration-peak) * 2);position:fixed;inset:0;overflow:hidden}.cel-x{animation:cel-x var(--burst) cubic-bezier(.15, .7, .35, 1) var(--delay) both;display:block;position:absolute;top:78vh}.cel-x.left{left:-12px}.cel-x.right{right:-12px}.cel-y,.cel-bit{display:block}.cel-y{animation:cel-y var(--burst) linear var(--delay) both}.cel-bit{animation:cel-spin var(--burst) linear var(--delay) both;border-radius:2px}.cel-bit.round{border-radius:50%}@keyframes cel-x{0%{transform:translate(0)}to{transform:translateX(var(--dx))}}@keyframes cel-y{0%{animation-timing-function:var(--motion-easing-out);transform:translateY(0)}40%{transform:translateY(var(--up));animation-timing-function:var(--motion-easing-in)}to{transform:translateY(calc(var(--up) + var(--fall)))}}@keyframes cel-spin{0%{opacity:1;transform:rotate(0)}80%{opacity:1}to{opacity:0;transform:rotate(var(--r))}}@media (prefers-reduced-motion:reduce){.celebration{display:none}.toast,.toast.leaving{animation:toast-fade var(--motion-duration-enter) linear both}.toast.leaving{animation-direction:reverse}}@keyframes toast-fade{0%{opacity:0}to{opacity:1}}
