/* Reference motion, adapted to DUCOSOFT's black and white palette.
   Budget: two hero objects, six meteors, eight points. No canvas or video loop. */
.duco-word{display:inline-block;white-space:nowrap}
.duco-letter{display:inline-block;backface-visibility:hidden;animation:duco-letter-from-space .6s ease-out both;animation-delay:var(--letter-delay,0s)}
.hero-brand,.hero-tagline{perspective:1000px}
.hero-tagline .duco-letter{animation-name:duco-reveal-letter}
.duco-motion .hero-description{animation:duco-fade-in-up .8s ease-out .65s both}
.duco-motion .hero-content>.button{animation:duco-fade-in-up .8s ease-out .85s both}
.duco-motion [data-duco-reveal=pending]{opacity:0;transform:translateY(24px)}
.duco-motion .duco-reveal{transition:opacity .7s ease-out var(--reveal-delay,0ms),transform .7s ease-out var(--reveal-delay,0ms)}
.duco-motion [data-duco-reveal=visible]{opacity:1;transform:translateY(0)}
.hero-halo{animation:duco-lights-on 1s ease-out .3s both}
.meteor-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;contain:paint}
.duco-meteor{position:absolute;left:var(--meteor-left);top:var(--meteor-top);width:clamp(45px,8vw,120px);height:1px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(25,25,25,.25));opacity:0;transform:rotate(-32deg);animation:duco-meteor var(--meteor-duration,9s) linear var(--meteor-delay,0s) infinite}
.duco-spark{position:absolute;left:var(--spark-left);top:var(--spark-top);height:2px;width:2px;border-radius:50%;background:#252525;opacity:.12;animation:duco-twinkle var(--spark-duration,5s) ease-in-out var(--spark-delay,0s) infinite}
.duco-cta-stars{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.duco-cta-star-group{position:absolute;left:var(--star-left);top:var(--star-top);width:var(--star-size,24px);height:var(--star-size,24px)}
.duco-cta-star{position:absolute;inset:0;background:linear-gradient(135deg,#191919,#9a9a9a);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:.22;animation:duco-star-spin 8s linear var(--star-delay,0s) infinite,duco-star-twinkle 4s ease-in-out var(--star-delay,0s) infinite}
.duco-cta-orbit{position:absolute;inset:-18px;border:1px solid rgba(25,25,25,.06);border-radius:50%;animation:duco-star-spin 8s linear var(--star-delay,0s) infinite}
.duco-cta-orbit::before,.duco-cta-orbit::after{content:"";position:absolute;left:50%;width:3px;height:3px;border-radius:50%;background:#737373;box-shadow:0 0 9px 2px #11111115;transform:translateX(-50%)}
.duco-cta-orbit::before{top:-2px}.duco-cta-orbit::after{bottom:-2px}
.ref-cta:hover .duco-cta-star,.ref-cta:hover .duco-cta-orbit,.ref-cta:focus-within .duco-cta-star,.ref-cta:focus-within .duco-cta-orbit,.duco-motion-offscreen .duco-cta-star,.duco-motion-offscreen .duco-cta-orbit,.duco-page-hidden .duco-cta-star,.duco-page-hidden .duco-cta-orbit{animation-play-state:paused}
.service-marquee.duco-marquee{display:block;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5% 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5% 95%,transparent)}
.duco-marquee-track{display:flex;width:max-content;animation:duco-marquee 30s linear infinite}
.duco-marquee-group{display:flex;align-items:center;gap:12px;padding-inline-end:12px;flex:none}
.service-marquee:hover .duco-marquee-track,.service-marquee:focus-within .duco-marquee-track{animation-play-state:paused}
.service-marquee:focus-visible,.quote-list:focus-visible{outline:2px solid #333;outline-offset:7px}
.quote-list.duco-quotes{display:block;position:relative;overflow:hidden;height:580px;mask-image:linear-gradient(transparent,#000 8% 92%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 8% 92%,transparent)}
.duco-quotes-track{display:flex;flex-direction:column;animation:duco-quote-scroll 30s linear infinite}
.duco-quotes-group{display:grid;gap:18px;padding-bottom:18px;flex:none}
.duco-quotes-group>.quote-card{margin:0}
.duco-quotes:hover .duco-quotes-track,.duco-quotes:focus-within .duco-quotes-track{animation-play-state:paused}
.process-timeline{--timeline-progress:0}
.process-timeline::after{content:"";position:absolute;top:0;left:var(--timeline-line-left,160px);width:2px;height:calc(var(--timeline-progress) * 100%);background:linear-gradient(#141414,#777);transform:translateX(-50%);pointer-events:none;z-index:0}
.timeline-step{position:relative;z-index:1}
.feature-gauge{position:relative}
.gauge-needle{position:absolute;top:50%;left:14%;width:36%;height:3px;transform-origin:100% 50%;background:linear-gradient(90deg,#252525,#888);border-radius:2px;transform:rotate(125deg);z-index:1}
.gauge-center{z-index:2}
.duco-motion .feature-card[data-duco-reveal=pending] .gauge-needle{transform:rotate(-8deg)}
.duco-motion .feature-card[data-duco-reveal=visible] .gauge-needle{animation:duco-gauge-sweep 1.6s cubic-bezier(.2,.7,.2,1) .2s both}
.duco-motion .feature-card[data-duco-reveal=visible] .feature-bars>span{transform-origin:bottom;animation:duco-bar-grow 1s cubic-bezier(.2,.7,.2,1) both}
.duco-motion .feature-bars>span:nth-child(1){animation-delay:.1s!important}
.duco-motion .feature-bars>span:nth-child(2){animation-delay:.2s!important}
.duco-motion .feature-bars>span:nth-child(3){animation-delay:.3s!important}
.duco-motion .feature-bars>span:nth-child(4){animation-delay:.4s!important}
.duco-motion .feature-bars>span:nth-child(5){animation-delay:.5s!important}
.duco-motion .feature-card[data-duco-reveal=visible] .chart-trend path{stroke-dasharray:400;animation:duco-chart-draw 1.6s ease-out .2s both}
.phone-frame{animation:duco-float-vertical 6s ease-in-out infinite}
.model-visual svg{animation:duco-float-vertical 4s ease-in-out infinite}
.model-card:nth-child(even) .model-visual svg{animation:duco-float-vertical-delayed 5s ease-in-out infinite}
.gauge-dot-one{animation:duco-float-vertical 4s ease-in-out infinite}
.gauge-dot-two{animation:duco-float-vertical-delayed 5s ease-in-out infinite}
.duco-motion-offscreen .hero-object,.duco-motion-offscreen .hero-halo,.duco-motion-offscreen .duco-meteor,.duco-motion-offscreen .duco-spark,.duco-motion-offscreen .duco-marquee-track,.duco-motion-offscreen .duco-quotes-track,.duco-motion-offscreen .phone-frame,.duco-motion-offscreen .model-visual svg,.duco-motion-offscreen .gauge-dot-one,.duco-motion-offscreen .gauge-dot-two{animation-play-state:paused}
.duco-page-hidden .hero-object,.duco-page-hidden .hero-halo,.duco-page-hidden .duco-meteor,.duco-page-hidden .duco-spark,.duco-page-hidden .duco-marquee-track,.duco-page-hidden .duco-quotes-track,.duco-page-hidden .phone-frame,.duco-page-hidden .model-visual svg,.duco-page-hidden .gauge-dot-one,.duco-page-hidden .gauge-dot-two{animation-play-state:paused}
@keyframes duco-letter-from-space{0%{opacity:0;filter:blur(10px);transform:translateY(-50px)translateZ(-100px)rotateX(90deg)scale(.5)}50%{opacity:.7;filter:blur(3px);transform:translateY(-10px)translateZ(-20px)rotateX(45deg)scale(.9)}100%{opacity:1;filter:blur(0);transform:translateY(0)translateZ(0)rotateX(0)scale(1)}}
@keyframes duco-reveal-letter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes duco-fade-in-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes duco-lights-on{from{opacity:0;scale:.75}to{opacity:1;scale:1}}
@keyframes duco-float-dynamic-1{0%,100%{transform:translate(0)rotate(0)scale(1)}20%{transform:translate(15px,-25px)rotate(5deg)scale(1.02)}40%{transform:translate(-10px,-40px)rotate(-3deg)scale(.98)}60%{transform:translate(20px,-20px)rotate(8deg)scale(1.03)}80%{transform:translate(-15px,-10px)rotate(-5deg)scale(.97)}}
@keyframes duco-float-dynamic-2{0%,100%{transform:translate(0)rotate(0)scale(1)}25%{transform:translate(-20px,-30px)rotate(-8deg)scale(1.05)}50%{transform:translate(15px,-50px)rotate(6deg)scale(.95)}75%{transform:translate(-25px,-15px)rotate(-4deg)scale(1.02)}}
@keyframes duco-pulse-glow{0%,100%{opacity:.76}50%{opacity:.92}}
@keyframes duco-float-vertical{0%,100%{translate:0 0}50%{translate:0 -12px}}
@keyframes duco-float-vertical-delayed{0%,100%{translate:0 0}50%{translate:0 -9px}}
@keyframes duco-meteor{0%,68%,100%{opacity:0;transform:translate(0,0)rotate(-32deg)}70%{opacity:.4}83%{opacity:0;transform:translate(-420px,265px)rotate(-32deg)}}
@keyframes duco-twinkle{0%,100%{opacity:.08;scale:.8}50%{opacity:.26;scale:1.2}}
@keyframes duco-star-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes duco-star-twinkle{0%,100%{opacity:.22}50%{opacity:.1}}
@keyframes duco-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes duco-quote-scroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes duco-gauge-sweep{0%{transform:rotate(-8deg)}75%{transform:rotate(138deg)}100%{transform:rotate(125deg)}}
@keyframes duco-bar-grow{from{transform:scaleY(.05);opacity:.35}to{transform:scaleY(1);opacity:1}}
@keyframes duco-chart-draw{from{stroke-dashoffset:400}to{stroke-dashoffset:0}}
@media(max-width:760px){.process-timeline{--timeline-line-left:16px}.quote-list.duco-quotes{height:510px}.duco-meteor{width:65px}.duco-marquee-group{gap:9px;padding-inline-end:9px}}
@media(max-width:760px){.duco-cta-star-group:nth-child(1){left:6%;top:16%}.duco-cta-star-group:nth-child(2){left:88%;top:84%}.duco-cta-star-group:nth-child(n+3){display:none}}
@media(prefers-reduced-motion:reduce){.duco-cta-star,.duco-cta-orbit{animation:none!important}.duco-cta-star{opacity:.16}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.duco-letter,.duco-motion .hero-description,.duco-motion .hero-content>.button,.hero-knot,.hero-orb,.hero-halo,.duco-meteor,.duco-spark,.duco-marquee-track,.duco-quotes-track,.phone-frame,.model-visual svg,.gauge-dot-one,.gauge-dot-two,.duco-motion .gauge-needle,.duco-motion .feature-bars>span,.duco-motion .chart-trend path{animation:none!important}.duco-motion .duco-reveal{opacity:1!important;transform:none!important;transition:none!important}.duco-letter{opacity:1;transform:none;filter:none}.duco-meteor,.duco-spark{display:none}.service-marquee.duco-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.duco-marquee-group[aria-hidden=true],.duco-quotes-group[aria-hidden=true]{display:none}.quote-list.duco-quotes{height:auto;max-height:none;overflow:visible;mask-image:none;-webkit-mask-image:none}.duco-marquee-track,.duco-quotes-track{transform:none}.phone-frame,.model-visual svg,.gauge-dot-one,.gauge-dot-two{translate:none}.process-timeline::after{height:100%}.gauge-needle{transform:rotate(125deg)}.chart-trend path{stroke-dashoffset:0}}
