.animate-fade-in{animation:fadeIn 1s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{transform:translateY(30px);opacity:0;transition:transform .6s ease-out,opacity .6s ease-out}.animate-slide-up.in-view{transform:translateY(0);opacity:1}.animate-float{animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-scale-in{transform:scale(.9);opacity:0;transition:transform .5s ease-out,opacity .5s ease-out}.animate-scale-in.in-view{transform:scale(1);opacity:1}.animate-stagger{transition-delay:var(--delay, 0ms)}.portfolio-card,.article-card{transition:transform .3s ease-out}.portfolio-card:hover,.article-card:hover{transform:translateY(-5px)}.service-card{transition:all .3s ease-out}.service-card:hover{transform:translateY(-4px)}a,button{transition:all .3s ease-out}.skeleton{background:linear-gradient(90deg,#fff0,#fff3 20%,#ffffff80 60%,#fff0);background-size:200px 100%;animation:loading 2s ease-in-out infinite}@keyframes loading{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.parallax{transform:translateZ(0)}.clouds-container{position:absolute;inset:0;overflow:hidden;pointer-events:none}.cloud-layer{position:absolute;width:100%;height:100%;will-change:transform}.star-layer{will-change:transform;position:absolute;width:100%;height:100%}.star-layer-background{filter:blur(.3px)}.star-layer-midground{filter:blur(.1px)}.star-layer-foreground{filter:none}.star-layer-foreground .absolute:nth-child(odd){animation:starTwinkle 4s ease-in-out infinite;animation-delay:calc(var(--star-delay, 0) * .5s)}.star-layer-foreground .absolute:nth-child(2n){animation:starTwinkle 6s ease-in-out infinite;animation-delay:calc(var(--star-delay, 1) * .3s)}@keyframes starTwinkle{0%,to{opacity:var(--base-opacity, .8)}50%{opacity:calc(var(--base-opacity, .8) * 1.3)}}.cloud{position:absolute;background:linear-gradient(135deg,#ffffffe6,#fffc,#ffffffb3);border-radius:50px;filter:blur(.3px);will-change:transform;box-shadow:0 2px 8px #ffffff4d,0 4px 16px #fff3}.cloud-small{width:60px;height:30px}.cloud-medium{width:100px;height:50px}.cloud-large{width:160px;height:80px}.cloud-layer-background .cloud{opacity:.6;filter:blur(.8px)}.cloud-layer-midground .cloud{opacity:.8;filter:blur(.4px)}.cloud-layer-foreground .cloud{opacity:1;filter:blur(.2px)}.cloud-bg-1{top:15%;left:10%;animation:cloudFloat 8s ease-in-out infinite}.cloud-bg-2{top:25%;left:70%;animation:cloudFloat 7s ease-in-out infinite 1s}.cloud-bg-3{top:35%;left:30%;animation:cloudFloat 9s ease-in-out infinite 2s}.cloud-bg-4{top:45%;left:85%;animation:cloudFloat 6s ease-in-out infinite 3s}.cloud-mid-1{top:20%;left:20%;animation:cloudFloat 7s ease-in-out infinite .5s}.cloud-mid-2{top:40%;left:60%;animation:cloudFloat 8s ease-in-out infinite 1.5s}.cloud-mid-3{top:10%;left:50%;animation:cloudFloat 6s ease-in-out infinite 2.5s}.cloud-mid-4{top:55%;left:15%;animation:cloudFloat 9s ease-in-out infinite 3.5s}.cloud-fg-1{top:30%;left:5%;animation:cloudFloat 6s ease-in-out infinite}.cloud-fg-2{top:50%;left:75%;animation:cloudFloat 7s ease-in-out infinite 1s}.cloud-fg-3{top:15%;left:40%;animation:cloudFloat 8s ease-in-out infinite 2s}@keyframes cloudFloat{0%,to{transform:translateY(0)}25%{transform:translateY(-8px)}50%{transform:translateY(-4px)}75%{transform:translateY(-12px)}}@media (max-width: 1024px){.cloud-small{width:48px;height:24px}.cloud-medium{width:80px;height:40px}.cloud-large{width:128px;height:64px}.star-layer-foreground .absolute{animation-duration:8s!important}}@media (max-width: 768px){.cloud-small{width:36px;height:18px}.cloud-medium{width:60px;height:30px}.cloud-large{width:96px;height:48px}.cloud{animation-duration:4s!important}.star-layer-background{display:none}.star-layer-foreground .absolute{animation:none!important}}@media (prefers-reduced-motion: reduce){.clouds-container[data-reduce-motion=true]{display:none}.cloud{animation:none!important;opacity:.4}.star-layer-foreground .absolute{animation:none!important}.star-layer-background{opacity:.3}.star-layer-midground{opacity:.5}}
