.confetti-overlay{z-index:50;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-overlay__burst{width:0;height:0;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.confetti-overlay__popper{filter:drop-shadow(0 4px 12px #00000026);font-size:clamp(2.5rem,12vw,4.5rem);animation:.55s cubic-bezier(.22,1,.36,1) forwards confetti-popper-pop;position:absolute;bottom:22%;left:50%;transform:translate(-50%)}.confetti-overlay__particle{width:var(--w,8px);height:var(--h,12px);opacity:0;animation:confetti-fall var(--dur,2.4s) var(--delay,0s) ease-out forwards;border-radius:1px;position:absolute;top:0;left:0}@keyframes confetti-popper-pop{0%{opacity:0;transform:translate(-50%)scale(.2)rotate(-20deg)}60%{opacity:1;transform:translate(-50%)scale(1.15)rotate(8deg)}to{opacity:1;transform:translate(-50%)scale(1)rotate(0)}}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--tx,0), var(--ty,100vh)) rotate(var(--rot,360deg));opacity:0}}@media (prefers-reduced-motion:reduce){.confetti-overlay__particle,.confetti-overlay__popper{opacity:0;animation:none}}
@keyframes fb-line-chart-draw{to{stroke-dashoffset:0}}@keyframes fb-line-chart-peak-pulse{0%,to{opacity:1;filter:drop-shadow(0 0 #e8391d00)}50%{opacity:1;filter:drop-shadow(0 0 6px #e8391d8c)}}.fb-line-chart-path{stroke-dashoffset:var(--fb-line-chart-len,0)}.fb-line-chart-path--animate{animation:1.5s ease-in-out forwards fb-line-chart-draw}.fb-line-chart-peak-dot--animate{animation:1.8s ease-in-out infinite fb-line-chart-peak-pulse}@media (prefers-reduced-motion:reduce){.fb-line-chart-path--animate{stroke-dashoffset:0;animation:none}.fb-line-chart-peak-dot--animate{animation:none}}
@keyframes fb-progress-path-draw{to{stroke-dashoffset:0}}@keyframes fb-progress-path-dot-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.fb-progress-path-stroke{stroke-dashoffset:var(--fb-progress-path-len,0)}.fb-progress-path-stroke--animate{animation:1.5s ease-in-out forwards fb-progress-path-draw}.fb-progress-path-dot--pending{opacity:0;transform:scale(.5)}.fb-progress-path-dot--animate{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.35s ease-out forwards fb-progress-path-dot-in;transform:scale(.5)}@media (prefers-reduced-motion:reduce){.fb-progress-path-stroke--animate{stroke-dashoffset:0;animation:none}.fb-progress-path-dot--pending,.fb-progress-path-dot--animate{opacity:1;animation:none;transform:none}}
