@keyframes float{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes growBar{to{opacity:1}}.hero:before{content:"";position:absolute;width:150%;height:150%;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");animation:float 20s linear infinite}.animate-fadeInUp{animation:fadeInUp .8s ease}.animate-fadeInUp-delay-200{animation:fadeInUp .8s ease .2s both}.animate-fadeInUp-delay-400{animation:fadeInUp .8s ease .4s both}.animate-fadeInUp-delay-600{animation:fadeInUp .8s ease .6s both}.bar{opacity:0;animation:growBar 1s ease forwards}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#4ecdc4,#45b7d1,#667eea);transform:translateX(-100%);transition:transform .3s ease}.feature-card:hover:before{transform:translateX(0)}.testimonial-card:before{content:'"';position:absolute;top:-10px;left:30px;font-size:60px;color:#667eea;opacity:.3}