@keyframes move-background{0%{background-position:0 0}40%{background-position:100% 0;animation-timing-function:ease-in-out}50%{background-position:100% 100%;animation-timing-function:ease-in-out}90%{background-position:0 100%;animation-timing-function:ease-in-out}to{background-position:0 0;animation-timing-function:ease-in-out}}.button-bg{position:relative;overflow:hidden;border:2px solid rgba(244,63,94,1)}.button-bg:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:transparent;background-image:radial-gradient(rgba(244,63,94) 1px,transparent 0);background-size:10px 10px;background-position:-4px -4px;opacity:0;transition:opacity 1s ease-in,background-color 1s ease-in;animation:move-background 20s linear infinite;z-index:0}.button-bg:hover:before{opacity:1;background-color:rgba(244,63,94,.1)}.button-bg span{position:relative;z-index:1}.vignette-light{box-shadow:inset 0 0 150px 100px rgba(255,255,255,.5);pointer-events:none}.vignette-dark{box-shadow:inset 0 0 150px 100px rgba(0,0,0,.7);pointer-events:none}@keyframes pattern-drift{0%{transform:translate(0) scale(1)}25%{transform:translate(5px,5px) scale(1.02)}50%{transform:translateY(10px) scale(1.05)}75%{transform:translate(-5px,5px) scale(1.02)}to{transform:translate(0) scale(1)}}@keyframes triangle-scroll{0%{transform:translateX(0)}to{transform:translateX(30px)}}@keyframes triangle-row-scroll{0%{transform:translateX(0)}to{transform:translateX(30px)}}.geometric-pattern{animation:pattern-drift 12s ease-in-out infinite;transform-origin:center}@media (prefers-reduced-motion:no-preference){.triangle-row-1{animation:triangle-scroll 15s linear infinite}.triangle-row-2{animation:triangle-scroll 15s linear infinite reverse}}.rose-backlight{filter:blur(10px);opacity:.3;z-index:-1}