.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-fast{transition:all .15s cubic-bezier(.4,0,.2,1)}.transition-slow{transition:all .5s cubic-bezier(.4,0,.2,1)}.hover-scale{transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.05)}.hover-scale-sm{transition:transform .2s ease-out}.hover-scale-sm:hover{transform:scale(1.02)}.hover-scale-lg{transition:transform .2s ease-out}.hover-scale-lg:hover{transform:scale(1.1)}.btn-press{transition:transform .1s ease-out,box-shadow .2s ease-out}.btn-press:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn-press:active{transform:translateY(1px);box-shadow:0 2px 4px #0000001a}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s ease-out,height .6s ease-out,opacity .6s ease-out;opacity:0;pointer-events:none}.ripple:active:after{width:300px;height:300px;opacity:1;transition:0s}.focus-ring{transition:box-shadow .2s ease-out}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f64d}.focus-ring-brand:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f680}.link-underline{position:relative;text-decoration:none}.link-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:currentColor;transition:width .3s ease-out}.link-underline:hover:after{width:100%}.link-arrow{display:inline-flex;align-items:center;gap:.25rem;transition:gap .2s ease-out}.link-arrow:hover{gap:.5rem}.card-lift{transition:transform .3s ease-out,box-shadow .3s ease-out}.card-lift:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.card-glow{transition:box-shadow .3s ease-out}.card-glow:hover{box-shadow:0 0 24px #3b82f626}.icon-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.icon-bounce{animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-25%)}}.input-focus{transition:border-color .2s ease-out,box-shadow .2s ease-out}.input-focus:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.slide-up{animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-down{animation:slideDown .5s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.slide-left{animation:slideLeft .5s ease-out}@keyframes slideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.slide-right{animation:slideRight .5s ease-out}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.fade-in{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-out{animation:fadeOut .5s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.scale-in{animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.scale-out{animation:scaleOut .3s ease-out}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.2s}.stagger-children>*:nth-child(4){animation-delay:.3s}.stagger-children>*:nth-child(5){animation-delay:.4s}.stagger-children>*:nth-child(6){animation-delay:.5s}.tooltip-arrow{transition:opacity .2s ease-out,transform .2s ease-out;opacity:0;transform:translateY(4px);pointer-events:none}.tooltip-arrow.visible{opacity:1;transform:translateY(0)}.modal-enter{animation:modalEnter .3s ease-out}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-exit{animation:modalExit .2s ease-in}@keyframes modalExit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(-10px)}}.progress-bar{transition:width .5s ease-out}.shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.hover-reveal{transition:opacity .3s ease-out,transform .3s ease-out;opacity:0;transform:translateY(10px)}.hover-reveal-trigger:hover .hover-reveal{opacity:1;transform:translateY(0)}.magnetic{transition:transform .1s ease-out}.tooltip-trigger:hover .tooltip-content{opacity:1;visibility:visible;transform:translateY(0)}.tooltip-content{opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease-out,transform .2s ease-out,visibility .2s ease-out}.parallax-slow{transition:transform .1s ease-out}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton 1.5s infinite}@keyframes skeleton{0%{background-position:-200% 0}to{background-position:200% 0}}.typing-indicator span{animation:typing 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.notification-enter{animation:notificationEnter .3s ease-out}@keyframes notificationEnter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.notification-exit{animation:notificationExit .3s ease-in}@keyframes notificationExit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#888;border-radius:4px;transition:background .2s ease-out}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#555}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
