@keyframes navIndicatorSlide{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes iconBounce{0%{transform:scale(1)}40%{transform:scale(1.2)}70%{transform:scale(.95)}to{transform:scale(1.15)}}@keyframes badgeBounce{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes badgePulseActive{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}}@keyframes modalSpring{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes modalExit{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}@keyframes backdropFade{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px)}}@keyframes rippleExpand{0%{transform:scale(0);opacity:.5}to{transform:scale(4);opacity:0}}.nav-item-hover{transition:transform .2s cubic-bezier(.34,1.56,.64,1),color .2s ease}.nav-item-hover:hover{transform:scale(1.2)}.nav-item-hover:active{transform:scale(.95)}.nav-active-indicator{position:absolute;bottom:0;height:3px;background:currentColor;border-radius:2px 2px 0 0;animation:navIndicatorSlide .3s cubic-bezier(.34,1.56,.64,1) forwards;transform-origin:center}.nav-badge{animation:badgeBounce .5s cubic-bezier(.34,1.56,.64,1) both}.nav-badge-pulse{animation:badgePulseActive 2s ease-in-out infinite}.modal-spring-enter{animation:modalSpring .4s cubic-bezier(.34,1.56,.64,1) forwards;transform-origin:center}.modal-spring-exit{animation:modalExit .3s cubic-bezier(.4,0,1,1) forwards}.modal-backdrop{animation:backdropFade .3s ease forwards}.close-btn-hover{transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s}.close-btn-hover:hover{transform:rotate(90deg) scale(1.2)}.ripple-container{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.3);animation:rippleExpand .6s ease-out forwards;pointer-events:none}@media (prefers-reduced-motion:reduce){.close-btn-hover,.modal-backdrop,.modal-spring-enter,.modal-spring-exit,.nav-active-indicator,.nav-badge,.nav-badge-pulse,.nav-item-hover{animation:none!important;transition:none!important;transform:none!important}}