:root{--duration-75: 75ms;--duration-100: .1s;--duration-150: .15s;--duration-200: .2s;--duration-300: .3s;--duration-500: .5s;--duration-700: .7s;--duration-1000: 1s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.25, .46, .45, .94);--ease-swift: cubic-bezier(.55, 0, .1, 1);--transition-fast: all var(--duration-150) var(--ease-out);--transition-base: all var(--duration-200) var(--ease-in-out);--transition-slow: all var(--duration-300) var(--ease-in-out);--transition-slower: all var(--duration-500) var(--ease-in-out);--transition-colors: color var(--duration-150) var(--ease-in-out), background-color var(--duration-150) var(--ease-in-out), border-color var(--duration-150) var(--ease-in-out);--transition-opacity: opacity var(--duration-150) var(--ease-in-out);--transition-shadow: box-shadow var(--duration-150) var(--ease-in-out);--transition-transform: transform var(--duration-200) var(--ease-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:fadeIn var(--duration-300) var(--ease-in-out)}.animate-slide-in-up{animation:slideInUp var(--duration-300) var(--ease-out)}.animate-slide-in-down{animation:slideInDown var(--duration-300) var(--ease-out)}.animate-slide-in-left{animation:slideInLeft var(--duration-300) var(--ease-out)}.animate-slide-in-right{animation:slideInRight var(--duration-300) var(--ease-out)}.animate-scale-in{animation:scaleIn var(--duration-200) var(--ease-out)}.animate-spin{animation:spin var(--duration-1000) linear infinite}.animate-pulse{animation:pulse var(--duration-1000) cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce var(--duration-1000) infinite}.animate-shake{animation:shake var(--duration-500) var(--ease-in-out)}.skeleton{background:linear-gradient(90deg,var(--gray-200) 0%,var(--gray-100) 50%,var(--gray-200) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.transition-fast{transition:var(--transition-fast)}.transition-base{transition:var(--transition-base)}.transition-slow{transition:var(--transition-slow)}.transition-colors{transition:var(--transition-colors)}
