.perspective-container{perspective:1500px;transform-style:preserve-3d}.transform-3d{transform-style:preserve-3d}.ambient-bg{background:linear-gradient(135deg,#e5e7eb,#f3f4f6,#d8dadf,#e5e7eb) 0 0/400% 400%;animation:15s infinite gradientFlow}@keyframes gradientFlow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.noise-overlay{opacity:.05;mix-blend-mode:multiply;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}.stroke-draw{stroke-dasharray:200;stroke-dashoffset:200px;animation:3s cubic-bezier(.4,0,.2,1) infinite alternate forwards drawLine}@keyframes drawLine{0%{stroke-dashoffset:200px}to{stroke-dashoffset:0}}.dot-pulse{transform-origin:50%;animation:2s infinite alternate pulseScale}@keyframes pulseScale{0%{opacity:.8;transform:scale(1)}to{opacity:1;transform:scale(1.4)}}.bar-anim{transform-origin:bottom;animation:2s ease-in-out infinite alternate bounceBar}.bar-anim:nth-child(2n){animation-duration:2.5s;animation-delay:.3s}.bar-anim:nth-child(3n){animation-duration:1.8s;animation-delay:.7s}@keyframes bounceBar{0%{transform:scaleY(.6)}to{transform:scaleY(1.1)}}
