[data-animate]{opacity:0;transition:opacity .3s ease}[data-animate].animate-in{opacity:1}[data-animate=fade-up].animate-in{animation:fadeInUp .5s ease-out forwards}[data-animate=fade-in].animate-in{animation:fadeIn .5s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}[data-animate=slide-left].animate-in{animation:slideInLeft .5s ease-out forwards}[data-animate=slide-right].animate-in{animation:slideInRight .5s ease-out forwards}[data-animate=slide-down].animate-in{animation:slideInDown .5s ease-out forwards}[data-animate=slide-up].animate-in{animation:slideInUp .5s ease-out forwards}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}[data-animate=fade-slide-left].animate-in{animation:fadeSlideLeft .5s ease-out forwards}[data-animate=fade-slide-right].animate-in{animation:fadeSlideRight .5s ease-out forwards}@keyframes fadeSlideLeft{0%{opacity:0;transform:translateX(-80px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeSlideRight{0%{opacity:0;transform:translateX(80px)}to{opacity:1;transform:translateX(0)}}[data-animate=scale-in].animate-in{animation:scaleIn .4s ease-out forwards}[data-animate=zoom-in].animate-in{animation:zoomIn .45s ease-out forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}[data-animate=rotate-in].animate-in{animation:rotateIn .5s ease-out forwards}@keyframes rotateIn{0%{opacity:0;transform:rotate(-180deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}[data-animate=bounce-in].animate-in{animation:bounceIn .5s cubic-bezier(.68,-.55,.265,1.55) forwards}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}[data-animate=flip-in].animate-in{animation:flipIn .5s ease-out forwards}@keyframes flipIn{0%{opacity:0;transform:perspective(400px) rotateY(90deg)}to{opacity:1;transform:perspective(400px) rotateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-float{animation:float 3s ease-in-out infinite}.text-gradient-animate{background:linear-gradient(90deg,#ef4444,#f97316,#ef4444);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textGradient 3s linear infinite}@keyframes textGradient{0%{background-position:0}to{background-position:200%}}.gallery-scroll-container,.gallery-scroll-container-reverse{width:100%;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.gallery-scroll-track{display:flex;gap:2rem;animation:scroll-left 40s linear infinite;will-change:transform}.gallery-scroll-track-reverse{display:flex;gap:2rem;animation:scroll-right 40s linear infinite;will-change:transform}.gallery-scroll-container-reverse:hover .gallery-scroll-track-reverse,.gallery-scroll-container:hover .gallery-scroll-track{animation-play-state:paused}.gallery-scroll-item{flex:0 0 400px;height:300px;position:relative;border-radius:1rem;overflow:hidden;cursor:pointer;transition:transform .3s ease}.gallery-scroll-item:hover{transform:scale(1.05);z-index:10}@keyframes scroll-left{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes scroll-right{0%{transform:translateX(-50%)}to{transform:translateX(0)}}@media (max-width:768px){.gallery-scroll-item{flex:0 0 280px;height:220px}.gallery-scroll-track,.gallery-scroll-track-reverse{gap:1rem;animation-duration:30s}}@media (prefers-reduced-motion:reduce){.gallery-scroll-track,.gallery-scroll-track-reverse{animation:none}}