@keyframes nfCloudMove1{0%{transform:translate(-200px)}to{transform:translate(calc(100vw + 200px))}}@keyframes nfCloudMove2{0%{transform:translate(-300px)}to{transform:translate(calc(100vw + 300px))}}@keyframes nfCloudMove3{0%{transform:translate(-150px)}to{transform:translate(calc(100vw + 150px))}}@keyframes nfCraneSwing{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}@keyframes nfCraneCable{0%,to{transform:translateY(0)}50%{transform:translateY(12px)}}@keyframes nfBlink{0%,to{opacity:1}50%{opacity:.2}}@keyframes nfBlinkAlt{0%,to{opacity:.2}50%{opacity:1}}@keyframes nfPulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes nfFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes nfFloatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes nfTruckMove{0%{transform:translate(-100px)}to{transform:translate(calc(100vw + 100px))}}@keyframes nfGearSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes nfGearSpinReverse{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes nfShimmer{0%{background-position:-200%}40%{background-position:200%}to{background-position:200%}}@keyframes nfBounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes nfSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes nfCautionStripe{0%{background-position:0 0}to{background-position:40px 0}}@keyframes nfSpark{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--sx), var(--sy)) scale(0);opacity:0}}@keyframes nfSignalWave{0%{transform:scaleY(.3)}50%{transform:scaleY(1)}to{transform:scaleY(.3)}}.nf-animate-crane-swing{transform-origin:top;animation:6s ease-in-out infinite nfCraneSwing}.nf-animate-crane-cable{animation:3s ease-in-out infinite nfCraneCable}.nf-animate-blink{animation:1s ease-in-out infinite nfBlink}.nf-animate-blink-alt{animation:1s ease-in-out infinite nfBlinkAlt}.nf-animate-pulse-glow{animation:2s ease-in-out infinite nfPulse}.nf-animate-float{animation:3s ease-in-out infinite nfFloat}.nf-animate-float-slow{animation:4s ease-in-out infinite nfFloatSlow}.nf-animate-truck{animation:20s linear infinite nfTruckMove}.nf-animate-gear{animation:8s linear infinite nfGearSpin}.nf-animate-bounce-in{animation:.8s ease-out forwards nfBounceIn}.nf-animate-slide-up{animation:.6s ease-out forwards nfSlideUp}.nf-animate-caution-stripe{animation:1s linear infinite nfCautionStripe}.nf-shimmer-text{background:linear-gradient(90deg,#0d9488 0%,#67e8f9 25%,#fff 50%,#67e8f9 75%,#0d9488 100%) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:8s linear infinite nfShimmer}.nf-construction-scene{width:100%;min-height:100vh;position:relative;overflow:hidden}
