@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fabEnter{0%{opacity:0;transform:scale(0) rotate(-180deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes successPop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes glowPulse{0%,to{box-shadow:0 0 20px var(--color-accent-primary-glow)}50%{box-shadow:0 0 40px var(--color-accent-primary-glow)}}.animate-fadeIn{animation:fadeIn var(--transition-normal) ease forwards}.animate-fadeInUp{animation:fadeInUp var(--transition-normal) ease forwards}.animate-scaleIn{animation:scaleIn var(--transition-normal) ease forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shake{animation:shake .5s ease}.animate-bounce{animation:bounce 1s ease infinite}.animate-spin{animation:spin 1s linear infinite}.stagger-children>*{opacity:0;animation:fadeInUp .4s ease forwards}.stagger-children>*:nth-child(1){animation-delay:.05s}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.15s}.stagger-children>*:nth-child(4){animation-delay:.2s}.stagger-children>*:nth-child(5){animation-delay:.25s}.stagger-children>*:nth-child(6){animation-delay:.3s}.stagger-children>*:nth-child(7){animation-delay:.35s}.stagger-children>*:nth-child(8){animation-delay:.4s}.stagger-children>*:nth-child(9){animation-delay:.45s}.stagger-children>*:nth-child(10){animation-delay:.5s}.selection-animate{animation:scaleIn .2s ease}.spinner{width:24px;height:24px;border:3px solid var(--color-bg-tertiary);border-top-color:var(--color-accent-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton 1.5s ease infinite;border-radius:var(--radius-md)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);transform:scale(0);opacity:0;transition:transform .5s,opacity .5s}.ripple:active:after{transform:scale(2);opacity:1;transition:0s}
