.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translateX(-20px);transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,transform}.reveal-left.is-visible{opacity:1;transform:translateX(0)}.reveal-right{opacity:0;transform:translateX(20px);transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,transform}.reveal-right.is-visible{opacity:1;transform:translateX(0)}.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .5s ease-out,transform .5s ease-out;will-change:opacity,transform}.reveal-scale.is-visible{opacity:1;transform:scale(1)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse-custom{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin-custom{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-fade-out{animation:fadeOut .3s ease-out forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.animate-slide-up{animation:slideUp .3s ease-out forwards}.animate-slide-down{animation:slideDown .3s ease-out forwards}.animate-slide-left{animation:slideLeft .3s ease-out forwards}.animate-slide-right{animation:slideRight .3s ease-out forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.animate-scale-in{animation:scaleIn .2s ease-out forwards}.animate-scale-out{animation:scaleOut .2s ease-out forwards}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce-custom{animation:bounce 1s infinite}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none}}.gpu-accelerate{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.contain-layout{contain:layout}.contain-paint{contain:paint}.contain-strict{contain:strict}