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