@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse-ring{0%{transform:scale(.33)}80%,to{opacity:0}}@keyframes pulse-ring-2{0%{transform:scale(.33)}80%,to{opacity:0}}.animate-slide-in-right{animation:slide-in-right .3s ease-out}.animate-slide-in-left{animation:slide-in-left .3s ease-out}.animate-fade-in-up{animation:fade-in-up .4s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}.animate-bounce-in{animation:bounce-in .4s ease-out}.animate-pulse-ring{animation:pulse-ring 1.25s cubic-bezier(.215,.61,.355,1) infinite}.animate-pulse-ring-2{animation:pulse-ring-2 1.25s cubic-bezier(.215,.61,.355,1) infinite}.haptic-light:active{animation:pulse-ring .3s ease-out}.haptic-success:active{animation:scale-in .3s ease-out,bounce-in .6s ease-out}.haptic-error:active{animation:slide-in-left .3s ease-out,slide-in-right .3s ease-out .2s}@media(hover:none)and (pointer:coarse){.mobile-touch:hover{transform:none}.mobile-touch:active{transform:scale(.95);transition:transform .1s ease-out}}.card-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px #0003}.fab-open{transform:rotate(180deg) scale(1.1)}.fab-close{transform:rotate(0) scale(1)}.skeleton-pulse{background:linear-gradient(90deg,#fff0,#ffffff1a,#fff0);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state-icon{animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.nav-item-active{position:relative}.nav-item-active:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:20px;height:3px;background:linear-gradient(90deg,#ec4899,#8b5cf6);border-radius:2px;animation:slide-in-up .3s ease-out}@keyframes slide-in-up{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:reduce){.animate-slide-in-right,.animate-slide-in-left,.animate-fade-in-up,.animate-scale-in,.animate-bounce-in,.animate-pulse-ring,.animate-pulse-ring-2,.empty-state-icon{animation:none}.nav-item-active:after{animation:none}}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #ec4899;outline-offset:2px;border-radius:4px}
