.perspective-1000{perspective:1000px;perspective-origin:50%}.perspective-800{perspective:800px;perspective-origin:50%}.preserve-3d{transform-style:preserve-3d}@keyframes float3d{0%,to{transform:translateY(0)rotateX(0)rotateY(0)}50%{transform:translateY(-10px)rotateX(4deg)rotateY(-3deg)}}@keyframes float3dReverse{0%,to{transform:translateY(0)rotateX(0)rotateY(0)}50%{transform:translateY(8px)rotateX(-3deg)rotateY(4deg)}}@keyframes floatOrb{0%,to{transform:scale(1)translate(0)}33%{transform:scale(1.1)translate(20px,-15px)}66%{transform:scale(.95)translate(-15px,20px)}}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes cardShimmer{0%{transform:translate(-100%)rotate(30deg)}to{transform:translate(200%)rotate(30deg)}}.animate-float-3d{animation:4s ease-in-out infinite float3d}.animate-float-3d-slow{animation:6s ease-in-out infinite float3d}.animate-float-3d-reverse{animation:5s ease-in-out infinite float3dReverse}.animate-float-orb{animation:12s ease-in-out infinite floatOrb}.hero-typewriter-cursor{background-color:var(--color-urgent,#1a64a6);vertical-align:middle;border-radius:2px;width:3px;margin-left:4px;animation:1s ease-in-out infinite cursorBlink;display:inline-block}.card-3d{transition:transform .2s,box-shadow .2s,border-color .2s}.card-3d:hover{transform:translateY(-4px);box-shadow:0 16px 32px -8px #1f6fb226,0 4px 12px -2px #0f172a0f}.shimmer-container{position:relative;overflow:hidden}.shimmer-container:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(60deg,#0000 40%,#ffffff40 50%,#0000 60%);width:200%;height:200%;transition:opacity .2s;position:absolute;top:-50%;left:-50%;transform:translate(-100%)rotate(30deg)}.shimmer-container:hover:after{opacity:1;animation:1.2s cubic-bezier(.4,0,.2,1) cardShimmer}.glass-badge-3d{-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid #fff9;box-shadow:0 10px 25px -5px #1f6fb21f,0 4px 10px -2px #0000000a}@keyframes heroZoomInOut{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.animate-hero-zoom{will-change:transform;animation:10s ease-in-out infinite heroZoomInOut}@media (prefers-reduced-motion:reduce){.animate-hero-zoom{animation:none!important}}
