.gpu-accelerated{transform:translateZ(0);will-change:transform}@keyframes slideInRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInLeft{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fabScaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes refreshSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.skeleton{animation:shimmer 2s linear infinite;background:linear-gradient(90deg,hsl(var(--muted)) 0,hsl(var(--muted-foreground)/.1) 50%,hsl(var(--muted)) 100%);background-size:1000px 100%}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:1023px){.page-transition{animation:slideInRight .3s cubic-bezier(.4,0,.2,1)}.modal-transition{animation:slideInUp .3s cubic-bezier(.4,0,.2,1)}.fab-appear{animation:fabScaleIn .2s cubic-bezier(.4,0,.2,1)}html{scroll-behavior:smooth}*{-webkit-tap-highlight-color:transparent}}@supports (-webkit-touch-callout:none){.scroll-container{-webkit-overflow-scrolling:touch}.no-bounce{overscroll-behavior-y:contain}}.will-animate{will-change:transform,opacity}.will-scroll{will-change:scroll-position}.animation-complete{will-change:auto}@keyframes ripple-animation{0%{width:0;height:0;opacity:.3}to{width:300px;height:300px;opacity:0}}.animate-ripple{animation:ripple-animation .6s ease-out}