.floating-orb{pointer-events:none;filter:blur(80px);opacity:.4;border-radius:50%;animation:20s ease-in-out infinite orbFloat;position:absolute}.floating-orb-1{background:color-mix(in oklab, var(--primary) 40%, transparent);width:500px;height:500px;animation-delay:0s;top:10%;left:-10%}.floating-orb-2{background:oklab(65% -.0347296 -.196962/.4);width:400px;height:400px;animation-delay:-7s;top:50%;right:-10%}.floating-orb-3{background:color-mix(in oklab, var(--primary) 25%, transparent);width:600px;height:600px;animation-delay:-14s;bottom:-10%;left:30%}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(60px,-80px)scale(1.15)}66%{transform:translate(-40px,60px)scale(.9)}}.breathing-grid{background-image:linear-gradient(to right, color-mix(in oklab, var(--foreground) 5%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklab, var(--foreground) 5%, transparent) 1px, transparent 1px);pointer-events:none;background-size:44px 44px;animation:8s ease-in-out infinite gridBreath;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}@keyframes gridBreath{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.text-shimmer{background:linear-gradient(90deg, var(--foreground) 0%, var(--foreground) 40%, var(--primary) 50%, var(--foreground) 60%, var(--foreground) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite shimmerSweep}@keyframes shimmerSweep{to{background-position:200%}}.reveal-up{opacity:0;will-change:opacity, transform;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(40px)}.reveal-up.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translate(-50px)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translate(50px)}.reveal-right.visible{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:scale(.9)}.reveal-scale.visible{opacity:1;transform:scale(1)}.magnetic-card{will-change:transform;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}.magnetic-card:hover{box-shadow:0 30px 80px -30px color-mix(in oklab, var(--primary) 60%, transparent)}.shine-button{position:relative;overflow:hidden}.shine-button:before{content:"";background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%), #ffffff40 0%, transparent 40%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.shine-button:hover:before{opacity:1}.counter-animated{font-variant-numeric:tabular-nums;display:inline-block}.title-underline{display:inline-block;position:relative}.title-underline:after{content:"";background:linear-gradient(90deg, var(--primary), transparent);width:0;height:3px;box-shadow:0 0 20px var(--primary);transition:width 1s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-8px;left:0}.title-underline.visible:after{width:100%}.pulse-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;display:inline-block;position:relative}.pulse-dot:after{content:"";background:var(--primary);border-radius:50%;animation:2s cubic-bezier(.4,0,.6,1) infinite pulseRing;position:absolute;inset:0}@keyframes pulseRing{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(3)}}.particle{background:var(--primary);width:3px;height:3px;box-shadow:0 0 10px var(--primary);pointer-events:none;border-radius:50%;animation:linear infinite particleFloat;position:absolute}@keyframes particleFloat{0%{opacity:0;transform:translate(0)scale(0)}10%{opacity:1;transform:translate(0)scale(1)}90%{opacity:1}to{transform:translate(var(--drift-x,50px), -200px) scale(0);opacity:0}}.card-3d{transform-style:preserve-3d;perspective:1000px;transition:transform .4s cubic-bezier(.16,1,.3,1)}.card-3d:hover{transform:perspective(1000px)rotateX(2deg)rotateY(-2deg)translateY(-8px)}.service-card{position:relative;overflow:hidden}.service-card .glow{background:radial-gradient(circle, color-mix(in oklab, var(--primary) 30%, transparent), transparent 70%);pointer-events:none;opacity:0;filter:blur(40px);z-index:0;border-radius:50%;width:300px;height:300px;transition:opacity .4s;position:absolute;transform:translate(-50%,-50%)}.service-card:hover .glow{opacity:1}.service-card>:not(.glow){z-index:1;position:relative}.scroll-indicator{color:var(--muted-foreground);letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;font-size:11px;animation:2s ease-in-out infinite scrollBounce;display:flex;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.scroll-indicator svg{animation:2s ease-in-out infinite scrollArrow}@keyframes scrollBounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}@keyframes scrollArrow{0%,to{opacity:.4}50%{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.8s cubic-bezier(.16,1,.3,1) both fadeInUp}.spin-slow{animation:20s linear infinite spinSlow}@keyframes spinSlow{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.floating-orb,.breathing-grid,.text-shimmer,.pulse-dot:after,.particle,.spin-slow,.scroll-indicator,.scroll-indicator svg{animation:none!important}.reveal-up,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transition:none;transform:none}}
