.reveal{opacity:0;transform:translateY(40px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal-left.visible{opacity:1;transform:translateX(0);}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal-right.visible{opacity:1;transform:translateX(0);}
.reveal-scale{opacity:0;transform:scale(0.85);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal-scale.visible{opacity:1;transform:scale(1);}
.delay-1{transition-delay:0.1s!important;}
.delay-2{transition-delay:0.2s!important;}
.delay-3{transition-delay:0.3s!important;}
.delay-4{transition-delay:0.4s!important;}
.delay-5{transition-delay:0.5s!important;}
.machine-card{animation:float-card 6s ease-in-out infinite;}
.machine-card:nth-child(2){animation-delay:1.5s;}
.machine-card:nth-child(3){animation-delay:3s;}
@keyframes float-card{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes border-glow{0%,100%{box-shadow:0 0 0 0 rgba(0,201,167,0.4);}50%{box-shadow:0 0 0 12px rgba(0,201,167,0);}}
.btn-primary,.btn-accent{animation:border-glow 3s ease-in-out infinite;}
.particle{position:absolute;border-radius:50%;pointer-events:none;animation:particle-float linear infinite;}
@keyframes particle-float{0%{transform:translateY(100vh) rotate(0deg);opacity:0;}10%{opacity:1;}90%{opacity:0.5;}100%{transform:translateY(-100px) rotate(360deg);opacity:0;}}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0;}}
@keyframes step-pulse{0%,100%{box-shadow:0 12px 32px rgba(20,40,160,0.3);}50%{box-shadow:0 12px 48px rgba(0,201,167,0.5);}}
.step-num{animation:step-pulse 3s ease-in-out infinite;}
body{animation:page-in 0.5s ease;}
@keyframes page-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
