.home-page .hero{padding-bottom:110px}
.crawler-show{position:absolute;inset:auto 0 0;height:145px;z-index:3;pointer-events:none;overflow:hidden}
.crawler-track{position:absolute;bottom:2px;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#ff6600 15%,#ff6600 85%,transparent);opacity:.65}
.crawler-actor{position:absolute;left:100%;bottom:4px;width:110px;height:74px;animation:crawler-trip 19s linear infinite;transform-origin:50% 80%}
.crawler-actor>img{width:110px;height:74px;object-fit:contain;display:block}
.crawler-camera{position:absolute;left:8px;top:30px;width:25px;height:25px;border:3px solid #aeb7bc;border-radius:50%;background:radial-gradient(circle,#68b8cf 0 15%,#172d3c 20% 43%,#070c12 50% 65%,#c6c9cb 70%);box-shadow:0 0 0 2px #25282a;opacity:0;transform:scaleX(.1);animation:camera-turn 19s linear infinite}
.crawler-camera::after{content:'';position:absolute;inset:-12px;border-radius:50%;background:radial-gradient(circle,#fff 0 12%,#fffbe4 20%,#fff8cb99 35%,transparent 70%);opacity:0;animation:camera-flash 19s linear infinite}
.crawler-glare{position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse at 50% 85%,#fffef0cf,transparent 65%);opacity:0;animation:viewer-flash 19s linear infinite}
.crawler-toggle{position:absolute;right:22px;bottom:38px;z-index:5;background:#080b09bb;color:#edf0ec;border:1px solid #7a837b;border-radius:3px;padding:5px 9px;font:12px Roboto,Arial,sans-serif;cursor:pointer}
.crawler-paused .crawler-actor,.crawler-paused .crawler-camera,.crawler-paused .crawler-camera::after,.crawler-paused .crawler-glare{animation-play-state:paused}
@keyframes crawler-trip{0%,5%{left:100%;transform:translateY(0) rotate(0)}35%,47%{left:50%;transform:translateY(0) rotate(0)}56%{left:40%;transform:translateY(0) rotate(0)}61%{left:32%;transform:translateY(-25px) rotate(12deg)}66%{left:23%;transform:translateY(-30px) rotate(-5deg)}71%{left:14%;transform:translateY(-25px) rotate(6deg)}77%{left:5%;transform:translateY(-8px) rotate(-12deg)}84%,100%{left:-130px;transform:translateY(0) rotate(0)}}
@keyframes camera-turn{0%,35%{opacity:0;transform:scaleX(.1)}38%,44%{opacity:1;transform:scaleX(1)}47%,100%{opacity:0;transform:scaleX(.1)}}
@keyframes camera-flash{0%,40%{opacity:0;transform:scale(.5)}41%{opacity:1;transform:scale(3)}43%,100%{opacity:0;transform:scale(3.5)}}
@keyframes viewer-flash{0%,40%{opacity:0}41%{opacity:.65}43%,100%{opacity:0}}
@media(max-width:650px){.crawler-actor,.crawler-actor>img{width:85px;height:60px}.crawler-camera{left:6px;top:23px;width:21px;height:21px}.crawler-toggle{bottom:54px;right:12px}.home-page .hero{padding-bottom:125px}}
@media(prefers-reduced-motion:reduce){.crawler-show,.crawler-glare,.crawler-toggle{display:none}}
.crawler-actor{width:135px;height:60px}.crawler-actor>img{width:135px;height:60px}.crawler-camera{left:6px;top:20px;width:25px;height:25px}@media(max-width:650px){.crawler-actor,.crawler-actor>img{width:110px;height:50px}.crawler-camera{left:5px;top:16px;width:22px;height:22px}}
.crawler-actor{animation-name:crawler-trip;animation-direction:normal;animation-duration:19s}@keyframes crawler-trip{0%,5%{left:calc(100% + 10px);transform:translateY(0) rotate(0)}35%,47%{left:calc(50% - 67px);transform:translateY(0) rotate(0)}56%{left:40%;transform:translateY(0) rotate(0)}61%{left:32%;transform:translateY(-25px) rotate(12deg)}66%{left:23%;transform:translateY(-30px) rotate(-5deg)}71%{left:14%;transform:translateY(-25px) rotate(6deg)}77%{left:5%;transform:translateY(-8px) rotate(-12deg)}84%,100%{left:-150px;transform:translateY(0) rotate(0)}}
.crawler-actor{bottom:22px}.crawler-cable{position:absolute;left:91%;top:57%;width:120vw;height:3px;background:#ff6600;border-radius:3px;box-shadow:0 0 4px #ff660055;z-index:-1;transform:rotate(1deg);transform-origin:left center}.crawler-wheel{position:absolute;top:50%;width:23px;height:23px;border:3px solid #202225;border-radius:50%;background:conic-gradient(#ff6600 0deg 45deg,#45484a 45deg 65deg,#ff6600 65deg 165deg,#45484a 165deg 185deg,#ff6600 185deg 285deg,#45484a 285deg 305deg,#ff6600 305deg);box-shadow:inset 0 0 0 2px #d3d7d9;animation:wheel-roll 19s linear infinite}.crawler-wheel::after{content:"";position:absolute;inset:6px;background:#c4c8ca;border:1px solid #222;border-radius:50%}.wheel-front{left:31%}.wheel-rear{left:78%}.crawler-paused .crawler-wheel{animation-play-state:paused}@keyframes wheel-roll{0%,5%{transform:rotate(0)}35%,47%{transform:rotate(-1080deg)}84%,100%{transform:rotate(-2880deg)}}@keyframes crawler-trip{0%,5%{left:calc(100% + 10px);transform:translateY(0) rotate(0)}35%,47%{left:calc(50% - 67px);transform:translateY(0) rotate(0)}60%{left:34%;transform:translateY(0) rotate(0)}64%{left:29%;transform:translateY(-2px) rotate(3deg)}69%{left:21%;transform:translateY(0) rotate(-2deg)}74%{left:12%;transform:translateY(-2px) rotate(2deg)}84%,100%{left:-150px;transform:translateY(0) rotate(0)}}@media(max-width:650px){.crawler-actor{bottom:25px}.crawler-wheel{width:19px;height:19px}.crawler-wheel::after{inset:4px}}@media(prefers-reduced-motion:reduce){.crawler-wheel{animation:none}}
.crawler-actor{bottom:-1px}@media(max-width:650px){.crawler-actor{bottom:0}}@keyframes crawler-trip{0%,5%{left:calc(100% + 10px);transform:none}35%,47%{left:calc(50% - 67px);transform:none}60%{left:34%;transform:none}74%{left:12%;transform:none}84%,100%{left:-150px;transform:none}}
.crawler-actor{bottom:-3px}.crawler-actor>img{position:relative;z-index:1}.ground-cable{position:absolute;left:91%;bottom:4px;width:120vw;height:24px;overflow:visible;z-index:0}.ground-cable path{fill:none;stroke:#ff6600;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}@media(max-width:650px){.crawler-actor{bottom:-2px}.ground-cable{bottom:3px;height:20px}}
.crawler-actor,.crawler-camera,.crawler-camera::after,.crawler-glare,.crawler-wheel{animation-duration:30s}.crawler-wheel{z-index:2;top:50%;width:23px;height:23px;box-shadow:inset 0 0 0 2px #e0a044;background:conic-gradient(#ff7a00 0deg 35deg,#3b3e40 35deg 48deg,#ff7a00 48deg 155deg,#3b3e40 155deg 168deg,#ff7a00 168deg 275deg,#3b3e40 275deg 288deg,#ff7a00 288deg)}.crawler-wheel::after{inset:6px}.wheel-front{left:31%}.wheel-rear{left:78%}@media(max-width:650px){.crawler-wheel{width:19px;height:19px}.crawler-wheel::after{inset:4px}}
.crawler-wheel{top:60%;width:23px;height:23px;margin-left:-11.5px;margin-top:-11.5px}.wheel-front{left:39%}.wheel-rear{left:86%}@media(max-width:650px){.crawler-wheel{top:60%;width:19px;height:19px;margin-left:-9.5px;margin-top:-9.5px}}

/* Shared 48-second timeline: crawler, drop camera, repeat. */
.crawler-actor,.crawler-camera,.crawler-camera::after,.crawler-glare,.crawler-wheel{animation-duration:48s}
@keyframes crawler-trip{0%,3.125%{left:calc(100% + 10px);transform:none}21.875%,29.375%{left:calc(50% - 67px);transform:none}37.5%{left:34%;transform:none}46.25%{left:12%;transform:none}52.5%,100%{left:-150px;transform:none}}
@keyframes camera-turn{0%,21.875%{opacity:0;transform:scaleX(.1)}23.75%,27.5%{opacity:1;transform:scaleX(1)}29.375%,100%{opacity:0;transform:scaleX(.1)}}
@keyframes camera-flash{0%,25%{opacity:0;transform:scale(.5)}25.625%{opacity:1;transform:scale(3)}26.875%,100%{opacity:0;transform:scale(3.5)}}
@keyframes viewer-flash{0%,25%{opacity:0}25.625%{opacity:.65}26.875%,100%{opacity:0}}
@keyframes wheel-roll{0%,3.125%{transform:rotate(0)}21.875%,29.375%{transform:rotate(-1080deg)}52.5%,100%{transform:rotate(-2880deg)}}
.drop-stage{position:absolute;top:0;bottom:0;right:38px;width:80px;z-index:3;pointer-events:none;animation:drop-visibility 48s linear infinite}
.drop-camera-actor{position:absolute;left:0;top:-150px;width:80px;height:140px;animation:drop-descent 48s linear infinite}
.drop-camera-actor img{display:block;width:80px;height:140px;object-fit:contain}
.drop-umbilical{position:absolute;top:0;left:39px;width:3px;height:0;background:#ff6600;box-shadow:0 0 4px #ff660066;animation:cable-descent 48s linear infinite}
.drop-light{position:absolute;left:30px;bottom:12px;width:23px;height:23px;border-radius:50%;background:radial-gradient(circle,#fff 0 12%,#fffad9dd 25%,#fff4ad66 45%,transparent 70%);box-shadow:0 0 16px 5px #fff4bc66;animation:drop-flash 2s ease-in-out infinite}
@keyframes drop-visibility{0%,61%{opacity:0}62.5%,96%{opacity:1}99%,100%{opacity:0}}
@keyframes drop-descent{0%,62.5%{top:-150px}94%,100%{top:calc(100% - 140px)}}
@keyframes cable-descent{0%,62.5%{height:0}94%,100%{height:calc(100% - 125px)}}
@keyframes drop-flash{0%,65%,100%{opacity:.1;transform:scale(.8)}78%{opacity:1;transform:scale(2.6)}}
.crawler-paused .drop-stage,.crawler-paused .drop-camera-actor,.crawler-paused .drop-umbilical,.crawler-paused .drop-light{animation-play-state:paused}
@media(max-width:650px){.drop-stage{right:12px}}
@media(prefers-reduced-motion:reduce){.drop-stage{display:none}}
/* Left-side lowering and retrieval with fixed opening. */
.drop-stage{left:34px;right:auto}
.drop-stage::before{content:"";position:absolute;top:-7px;left:9px;width:62px;height:20px;border:5px solid #9da8ac;border-bottom-color:#434b4f;border-radius:50%;background:#111b21;box-shadow:0 2px 0 #080b09;z-index:2}
.drop-camera-actor{height:116px;overflow:hidden}
.drop-camera-actor img{height:140px;transform:translateY(-24px)}
.drop-light{bottom:12px}
@keyframes drop-descent{0%,62.5%{top:-116px}78%,82%{top:calc(100% - 116px)}98%,100%{top:-116px}}
@keyframes cable-descent{0%,62.5%{height:0}78%,82%{height:calc(100% - 110px)}98%,100%{height:0}}
@keyframes drop-visibility{0%,61%{opacity:0}62.5%,98%{opacity:1}99%,100%{opacity:0}}
@media(max-width:650px){.drop-stage{left:22px;right:auto}}
/* Three-stage 68-second cycle: crawler 30s, drop camera 18s, drone 20s. */
.crawler-actor,.crawler-camera,.crawler-camera::after,.crawler-glare,.crawler-wheel,.drop-stage,.drop-camera-actor,.drop-umbilical{animation-duration:68s}
@keyframes crawler-trip{0%,2.206%{left:calc(100% + 10px);transform:none}15.441%,20.735%{left:calc(50% - 67px);transform:none}26.471%{left:34%;transform:none}32.647%{left:12%;transform:none}37.059%,100%{left:-150px;transform:none}}
@keyframes camera-turn{0%,15.441%{opacity:0;transform:scaleX(.1)}16.765%,19.412%{opacity:1;transform:scaleX(1)}20.735%,100%{opacity:0;transform:scaleX(.1)}}
@keyframes camera-flash{0%,17.647%{opacity:0;transform:scale(.5)}18.088%{opacity:1;transform:scale(3)}18.971%,100%{opacity:0;transform:scale(3.5)}}
@keyframes wheel-roll{0%,2.206%{transform:rotate(0)}15.441%,20.735%{transform:rotate(-1080deg)}37.059%,100%{transform:rotate(-2880deg)}}
@keyframes viewer-flash{0%,17.647%{opacity:0}18.088%{opacity:.65}18.971%,84.7%{opacity:0}85.3%{opacity:.6}86.2%,100%{opacity:0}}
@keyframes drop-visibility{0%,43.1%{opacity:0}44.118%,69.176%{opacity:1}69.882%,100%{opacity:0}}
@keyframes drop-descent{0%,44.118%{top:-116px}55.059%,57.882%{top:calc(100% - 116px)}69.176%,100%{top:-116px}}
@keyframes cable-descent{0%,44.118%{height:0}55.059%,57.882%{height:calc(100% - 110px)}69.176%,100%{height:0}}
.drone-stage{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.drone-actor{position:absolute;left:calc(100% + 150px);top:38%;width:115px;height:115px;animation:drone-flight 68s linear infinite;transform-origin:center}
.drone-actor img{display:block;width:100%;height:100%;object-fit:contain}
.drone-light{position:absolute;left:34%;top:53%;width:23px;height:23px;border-radius:50%;background:radial-gradient(circle,#fff 0 15%,#fff8ccdd 30%,transparent 72%);animation:drone-flash 68s linear infinite;opacity:0}
@keyframes drone-flight{0%,70.588%{left:calc(100% + 150px);top:38%;transform:rotate(-8deg) scale(.85)}74%{left:85%;top:26%;transform:rotate(5deg) scale(.85)}77.5%{left:66%;top:45%;transform:rotate(-5deg) scale(.9)}81%,87%{left:calc(50% - 57px);top:34%;transform:rotate(0) scale(1)}90%{left:31%;top:22%;transform:rotate(-6deg) scale(.9)}94%{left:12%;top:43%;transform:rotate(5deg) scale(.85)}98%,100%{left:-150px;top:28%;transform:rotate(-5deg) scale(.85)}}
@keyframes drone-flash{0%,84.7%{opacity:0;transform:scale(.5)}85.3%{opacity:1;transform:scale(5)}86.2%,100%{opacity:0;transform:scale(5.5)}}
.crawler-paused .drone-actor,.crawler-paused .drone-light{animation-play-state:paused}
@media(max-width:650px){.drone-actor{width:85px;height:85px}}
@media(prefers-reduced-motion:reduce){.drone-stage{display:none}}
