@keyframes badge-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.88)}}@keyframes drift-0{from{transform:translate3d(0,0,0) rotate(-10deg) scale(1)}to{transform:translate3d(14px,-22px,0) rotate(-4deg) scale(1.04)}}@keyframes drift-1{from{transform:translate3d(0,0,0) rotate(7deg) scale(1)}to{transform:translate3d(-18px,16px,0) rotate(13deg) scale(.96)}}@keyframes drift-2{from{transform:translate3d(0,0,0) rotate(-4deg) scale(1.02)}to{transform:translate3d(22px,10px,0) rotate(3deg) scale(.97)}}@keyframes drift-3{from{transform:translate3d(0,0,0) rotate(11deg) scale(.97)}to{transform:translate3d(-12px,-20px,0) rotate(5deg) scale(1.04)}}@keyframes float-a{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes float-b{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}.fade-up{visibility:hidden;opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.2, .8, .2, 1),transform .6s cubic-bezier(.2, .8, .2, 1),visibility 0s linear .6s}.fade-up.visible{visibility:visible;opacity:1;transform:translateY(0);transition:opacity .6s cubic-bezier(.2, .8, .2, 1),transform .6s cubic-bezier(.2, .8, .2, 1)}.tile-shape:first-child{animation:20s ease-in-out -2s infinite alternate drift-0}.tile-shape:nth-child(2){animation:24s ease-in-out -8s infinite alternate drift-1}.tile-shape:nth-child(3){animation:22s ease-in-out -14s infinite alternate drift-2}.tile-shape:nth-child(4){animation:18s ease-in-out -5s infinite alternate drift-3}.tile-shape:nth-child(5){animation:26s ease-in-out -11s infinite alternate drift-0}.tile-shape:nth-child(6){animation:21s ease-in-out -17s infinite alternate drift-1}.tile-shape:nth-child(7){animation:23s ease-in-out -3s infinite alternate drift-2}.tile-shape:nth-child(8){animation:19s ease-in-out -9s infinite alternate drift-3}.float-card:first-child{animation:5s ease-in-out infinite float-a}.float-card:nth-child(2){animation:6s ease-in-out -1.5s infinite float-b}.float-card:nth-child(3){animation:4.5s ease-in-out -3s infinite float-a}@keyframes banner-up{from{transform:translateY(110%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}.fade-up{visibility:visible;opacity:1;transform:none;transition:none}.float-card,.hero-badge-dot,.tile-shape{animation:none!important}}