@keyframes float{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-20px) translateZ(0)}}@keyframes float-delayed{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-15px) translateZ(0)}}@keyframes pulse-slow{0%,to{opacity:.3;transform:scale(1) translateZ(0)}50%{opacity:.5;transform:scale(1.05) translateZ(0)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animate-float{animation:float 6s ease-in-out infinite}.animate-float,.animate-float-delayed{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0)}.animate-float-delayed{animation:float-delayed 8s ease-in-out infinite;animation-delay:2s}.animate-pulse-slow{animation:pulse-slow 4s ease-in-out infinite;will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(0)}.animate-gradient{background-size:200% 200%;animation:gradient 8s ease infinite;will-change:background-position}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-loader{background:linear-gradient(90deg,rgba(0,0,0,.05) 25%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.05) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;will-change:background-position}.dark .skeleton-loader{background:linear-gradient(90deg,rgba(255,255,255,.05) 25%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.05) 75%);background-size:200% 100%}.sidebar-transition{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden}button{transform:translateZ(0);backface-visibility:hidden}button,input,textarea{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,textarea{will-change:auto}.overlay{will-change:opacity}.modal-content,.overlay{backface-visibility:hidden;-webkit-backface-visibility:hidden}.modal-content{will-change:transform,opacity;transform:translateZ(0)}.hover-scale{transition:transform .2s ease;will-change:transform}.hover-scale:hover{transform:scale(1.05) translateZ(0)}.async-content-placeholder{min-height:100px;contain:layout style}.scrollable{will-change:scroll-position;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.contain-layout{contain:layout}.contain-paint{contain:paint}.contain-strict{contain:strict}@font-face{font-display:swap}.aspect-video{aspect-ratio:16/9}.aspect-square{aspect-ratio:1/1}.aspect-auto{aspect-ratio:auto}