.hero-marquee__track{animation:marquee-scroll 60s linear infinite;will-change:transform}@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(-33.333%)}}.hero-marquee__track:hover{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.hero-marquee__track{animation:none}}.product-selector__carousel-slides{transition:transform .3s ease-in-out;will-change:transform}.product-selector__carousel-slides.dragging{transition:none}.btn,.product-selector__btn{transition:opacity .3s ease,transform .3s ease,color .3s ease,background-color .3s ease;position:relative;overflow:hidden}.btn.state-success,.product-selector__btn.state-success{background-color:var(--color-success,#10b981);color:#fff;animation:button-success 2s ease-in-out forwards}@keyframes button-success{0%{background-color:var(--color-accent,#3b82f6)}10%{background-color:var(--color-success,#10b981)}90%{background-color:var(--color-success,#10b981)}100%{background-color:var(--color-accent,#3b82f6)}}.btn.state-error,.product-selector__btn.state-error{background-color:var(--color-error,#ef4444);color:#fff;animation:button-error 2s ease-in-out forwards}@keyframes button-error{0%{background-color:var(--color-accent,#3b82f6)}10%{background-color:var(--color-error,#ef4444)}90%{background-color:var(--color-error,#ef4444)}100%{background-color:var(--color-accent,#3b82f6)}}.modal{opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.modal.active{opacity:1;visibility:visible}.modal__content{transform:translateY(-20px);transition:transform .3s ease}.modal.active .modal__content{transform:translateY(0)}.slide-in-right{animation:slide-in-right .3s ease-out forwards}.slide-in-left{animation:slide-in-left .3s ease-out forwards}.slide-in-up{animation:slide-in-up .3s ease-out forwards}.slide-in-down{animation:slide-in-down .3s ease-out forwards}.slide-out-right{animation:slide-out-right .3s ease-in forwards}.slide-out-left{animation:slide-out-left .3s ease-in forwards}.slide-out-up{animation:slide-out-up .3s ease-in forwards}.slide-out-down{animation:slide-out-down .3s ease-in forwards}@keyframes slide-in-right{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-left{from{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-up{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-down{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-out-right{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes slide-out-left{from{transform:translateX(0);opacity:1}to{transform:translateX(-100%);opacity:0}}@keyframes slide-out-up{from{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}@keyframes slide-out-down{from{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.loading{position:relative;pointer-events:none}.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fade-in{animation:fade-in .3s ease-out forwards}.fade-out{animation:fade-out .3s ease-in forwards}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.animate-transform{will-change:transform}.animate-opacity{will-change:opacity}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}.header__mobile-menu-main{transition:transform .3s ease}.header__mobile-menu-main--hidden{transform:translateX(-100%)}.header__mobile-menu-submenu{transition:transform .3s ease;transform:translateX(100%)}.header__mobile-menu-submenu--active{transform:translateX(0)}.community-reviews__track{animation:auto-scroll 30s linear infinite;will-change:transform}.community-reviews__track.auto-scroll-paused{animation-play-state:paused}@keyframes auto-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.community-reviews__track:hover{animation-play-state:paused}