/* All moving objects share the original scene's coordinate system. */
.living-hero.home-hero{position:relative;isolation:isolate;overflow:hidden;background:#031a30;min-height:0;padding-bottom:0;color:#fff;container-type:inline-size}
.hero-stage{position:relative;width:100%;height:max(177.7vw,calc(100svh - 92px));overflow:hidden}
.living-scene{display:block;width:100%;height:100%;overflow:visible;stroke:none;fill:none}
.scene-plate{pointer-events:none}
.hero-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#00172d30 0%,transparent 38%,transparent 89%,#03182b 100%);z-index:1}
.living-mobile-header{position:absolute;z-index:4;top:3.6cqw;left:4.8%;right:4.8%;display:flex;align-items:center;justify-content:space-between}
.living-brand{display:block;width:39cqw;background:transparent;padding:0}
.living-brand img{display:block;width:100%;height:auto}
.living-mobile-header>div{display:flex;align-items:center;gap:1.4cqw}
.living-language{font-size:3.2cqw;letter-spacing:.05em;border-left:1px solid #ffffff45;padding-left:3cqw;margin-right:1.5cqw}
.living-menu{display:flex;width:44px;height:44px;min-width:44px;flex-direction:column;justify-content:center;gap:6px;border:0;background:transparent;padding:8px}
.living-menu span{height:1px;width:28px;background:#fff}
.living-menu span:nth-child(2){width:21px}
.living-copy{position:absolute;left:5.4%;top:12.3%;z-index:3;width:89%;pointer-events:none}
.living-copy a{pointer-events:auto}
.living-eyebrow{display:flex;align-items:center;gap:8px;font-size:2.25cqw;letter-spacing:.23em;font-weight:500;line-height:1.3;margin:0 0 2cqw;color:#e0edf7}
.living-eyebrow>span{width:16px;height:1px;background:#009ee3}
.living-copy h1{font-size:7.7cqw;line-height:1.02;letter-spacing:-.045em;font-weight:800;text-transform:uppercase;margin:0 0 2.5cqw;text-shadow:0 2px 18px #00122666}
.living-copy h1 em{font-style:normal;color:#009ee3}
.living-description{font-size:2.9cqw;line-height:1.48;max-width:72%;color:#eef4f7;margin:0 0 3cqw;text-shadow:0 2px 8px #00152b}
.living-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:3cqw;min-height:44px;padding:1.8cqw 3cqw;border:1px solid #009ee3;border-radius:9px;background:linear-gradient(130deg,#00416da6,#032445dd);box-shadow:inset 0 0 16px #009ee326,0 0 16px #009ee333;color:#fff;font-size:2.8cqw;line-height:1.3;transition:background .25s,box-shadow .25s}
.living-cta>span{font-size:6cqw;line-height:.7;color:#45bdff}
.living-cta:hover{background:#064b7d;box-shadow:0 0 24px #009ee36b}
.living-desktop-links{display:none}
.service-hotspots{position:absolute;inset:0;pointer-events:none;z-index:2}
.service-hotspot{position:absolute;display:grid;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;border-radius:50%;-webkit-tap-highlight-color:transparent}
.service-hotspot[hidden],.service-detail[hidden]{display:none}
.hotspot-orb{position:relative;display:grid;place-items:center;box-sizing:border-box;width:18px;height:18px;border:1.5px solid #c4d7f4;border-radius:50%;background:radial-gradient(circle at 35% 28%,#1354aa,#063881 65%,#022357);box-shadow:0 2px 6px #00142d99}
.hotspot-orb:before,.hotspot-orb:after{content:"";position:absolute;inset:-1px;border:1px solid #4488da;border-radius:50%;pointer-events:none;animation:hotspot-radio 3.2s linear infinite;animation-delay:var(--phase)}
.hotspot-orb:after{animation-delay:calc(var(--phase) - 1.6s)}
.hotspot-orb>span{display:block;width:30%;height:30%;border-radius:50%;background:#fff;box-shadow:0 0 5px #ffffff66}
.service-hotspot:hover .hotspot-orb,.service-hotspot[aria-expanded="true"] .hotspot-orb{background:#073d8d;box-shadow:0 0 0 2px #2866b84d,0 0 10px #146bc366}
.service-hotspot:focus-visible{outline:2px solid #fff;outline-offset:1px;background:#00315599}
.service-detail{position:absolute;z-index:7;box-sizing:border-box;width:max-content;max-width:min(186px,calc(100% - 24px));padding:10px 32px 10px 11px;border:1px solid #3bbdff88;border-radius:9px;color:#fff;background:linear-gradient(135deg,#082648f7,#03172cf7);box-shadow:0 16px 45px #0007,inset 0 1px 0 #89dcff26;backdrop-filter:blur(14px)}
.service-detail h2{font-size:11px;line-height:1.3;letter-spacing:-.015em;margin:0 0 4px;color:#fff}
.service-detail ul{padding:0;margin:0;list-style:none;display:grid;gap:1px;font-size:10px;line-height:1.45;color:#daeaf5}
.service-detail li:before{content:"";display:inline-block;width:4px;height:4px;background:#009ee3;border-radius:50%;margin:0 5px 2px 0}
.service-close{position:absolute;right:-6px;top:-6px;display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:0;border-radius:50%;font:19px/1 Arial,sans-serif;color:#d7f2ff;cursor:pointer}
.service-close:hover{background:#009ee326}
.service-close:focus-visible{outline:2px solid white;outline-offset:-5px}
.scene-actors .is-highlighted{filter:drop-shadow(0 0 7px #55c8ff9c)}
@keyframes hotspot-breathe{0%,100%{transform:scale(.98)}50%{transform:scale(1.03)}}
@keyframes hotspot-ripple{0%{transform:scale(.95);opacity:0}25%{opacity:.45}100%{transform:scale(1.3);opacity:0}}
.scene-controls{pointer-events:auto}
.living-controls{position:absolute;z-index:5;left:4%;bottom:15px;display:flex;flex-direction:column;align-items:flex-start;gap:7px;max-width:40%}
.living-scene-note{font-size:7px;color:#d3e4ef;line-height:1.3;text-shadow:0 2px 6px #000}
.living-discover{position:absolute;z-index:4;bottom:17px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:4px;min-width:44px;min-height:44px;color:#edf8ff}
.living-discover span{font-size:10px;letter-spacing:.18em}
.living-discover svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;animation:discover-drift 3s ease-in-out infinite}
.living-menu:focus-visible,.living-brand:focus-visible,.living-cta:focus-visible,.living-discover:focus-visible{outline:2px solid white;outline-offset:4px}
.machine-beacon{animation:beacon-turn 2.8s ease-in-out infinite}
.mixer-chassis{transform:none}
.drum-brand{transform-origin:195px 164px;animation:drum-brand-turn 6.4s linear infinite}
.drum-reflection{animation:drum-light 5.4s linear infinite;opacity:.4}
.concrete-flow{stroke-dasharray:7 4;animation:concrete-pour 1.7s linear infinite}
.forklift-operation [data-reversing="true"] .forklift-reverse-light{opacity:.9}
.parked-headlight{animation:parked-light 18s ease-in-out infinite}
.worker-body{transform-box:fill-box;transform-origin:50% 100%;animation:worker-weight 2.1s ease-in-out infinite;animation-delay:var(--phase)}
.worker-finish>.worker-body{animation:worker-rake 3.7s ease-in-out infinite;animation-delay:var(--phase)}
.worker-inspect>.worker-body{animation:worker-inspect 8s ease-in-out infinite;animation-delay:var(--phase)}
.worker-step{animation:worker-walk 18s ease-in-out infinite;animation-delay:var(--phase)}
.worker-patrol{animation:worker-patrol 23s ease-in-out infinite;animation-delay:var(--phase)}
.worker-leg-front{transform-origin:88px 185px;animation:worker-leg 1.4s ease-in-out infinite;animation-delay:var(--phase)}
.worker-leg-back{transform-origin:120px 184px;animation:worker-leg 1.4s ease-in-out infinite reverse;animation-delay:var(--phase)}
.worker-arm-left{transform-origin:42px 88px;animation:worker-arm 1.4s ease-in-out infinite;animation-delay:var(--phase)}
.worker-arm-right{transform-origin:145px 90px;animation:worker-arm 1.4s ease-in-out infinite reverse;animation-delay:var(--phase)}
.rake-arms{transform-origin:237px 108px;animation:rake-pull 3.7s ease-in-out infinite;animation-delay:var(--phase)}
.lamp-aura{animation:lamp-glow 8s ease-in-out infinite;animation-delay:var(--phase)}
.lamp-core{opacity:.9}
.sun-breath{animation:sun-glow 12s ease-in-out infinite}
.water-glint{stroke:#ffce7e;stroke-width:1;stroke-linecap:round;opacity:.3;animation:water-drift 7s ease-in-out infinite;animation-delay:var(--phase)}
.dust-mote{fill:#ffd38e;opacity:0;animation:dust-rise 14s ease-in-out infinite;animation-delay:var(--phase)}
.living-hero[data-motion="paused"] *, .living-hero[data-motion="paused"] *:before,.living-hero[data-motion="paused"] *:after{animation-play-state:paused!important}
@keyframes engine-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(.65px)}}
@keyframes beacon-turn{0%,100%{opacity:.25}50%{opacity:.95}}
@keyframes drum-brand-turn{0%{transform:translateY(59px) scaleY(.16);opacity:0}15%{opacity:.85}50%{transform:translateY(0) scaleY(1);opacity:.95}85%{opacity:.8}100%{transform:translateY(-58px) scaleY(.16);opacity:0}}
@keyframes drum-light{0%{transform:translateX(-140px);opacity:0}30%,70%{opacity:.55}100%{transform:translateX(140px);opacity:0}}
@keyframes concrete-pour{to{stroke-dashoffset:-22}}
@keyframes parked-light{0%,14%,35%,100%{opacity:.15}18%,29%{opacity:.7}}
@keyframes worker-weight{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-.8px)}}
@keyframes worker-rake{0%,100%{transform:rotate(-4deg) translate(0,0)}50%{transform:rotate(5deg) translate(-2px,1px)}}
@keyframes worker-inspect{0%,25%,100%{transform:rotate(0)}48%,70%{transform:rotate(3deg)}}
@keyframes worker-walk{0%,15%,100%{transform:translate(0,0)}50%,65%{transform:translate(-17px,11px)}}
@keyframes worker-patrol{0%,12%,100%{transform:translate(0,0)}48%,64%{transform:translate(22px,12px)}}
@keyframes worker-leg{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes worker-arm{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes rake-pull{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}
@keyframes lamp-glow{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes sun-glow{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes water-drift{0%,100%{transform:translateX(-4px);opacity:.15}50%{transform:translateX(7px);opacity:.55}}
@keyframes dust-rise{0%{transform:translate(0,5px);opacity:0}20%,70%{opacity:.5}100%{transform:translate(15px,-31px);opacity:0}}
@keyframes discover-drift{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
@media(min-width:769px){
  .living-hero.home-hero{min-height:850px;height:clamp(850px,calc(100svh - 86px),1100px);background:radial-gradient(ellipse at 68% 35%,#0a3049 0%,#041b2d 48%,#021624 100%);padding:0}
  .living-hero:before{content:none}
  .hero-stage{position:absolute;inset:0 0 0 auto;width:min(73%,1100px);height:100%}
  .scene-world{mask:url(#scene-edge)}
  .living-scene,.service-hotspots{transform:none}
  .hero-vignette{background:linear-gradient(90deg,#031a2d 0%,#031a2deb 21%,#031a2d28 39%,transparent 60%),linear-gradient(0deg,#03182b 0%,transparent 10%)}
  .living-mobile-header{display:none}
  .living-copy{top:8%;left:max(5.8%,calc((100vw - 1400px)/2));width:41%;max-width:670px}
  .living-eyebrow{font-size:10px;letter-spacing:.23em;margin-bottom:22px;gap:12px}
  .living-eyebrow>span{width:25px}
  .living-copy h1{font-size:clamp(46px,4.55vw,84px);line-height:1.03;text-transform:none;letter-spacing:-.055em;font-weight:650;margin-bottom:27px}
  .living-description{font-size:14px;line-height:1.85;max-width:340px;margin-bottom:32px;color:#d2e0eb}
  .living-cta{font-size:11px;min-height:44px;border-radius:8px;padding:10px 16px;gap:20px}
  .living-cta>span{font-size:25px}
  .living-desktop-links{display:flex;align-items:flex-start;flex-direction:column;gap:28px;margin-top:23px;pointer-events:auto}
  .living-desktop-links a{font-size:12px;color:#eef8ff;display:flex;gap:30px;align-items:center}
  .living-desktop-links a span{color:#009ee3;font-size:19px}
  .living-desktop-links p{font-size:10px;letter-spacing:.06em;color:#8eacbf;padding-top:22px;border-top:1px solid #9ac9df2b;min-width:250px}
  .living-controls{left:max(5.8%,calc((100vw - 1400px)/2));bottom:36px;gap:12px}
  .living-scene-note{font-size:9px}
  .living-discover{bottom:35px;left:48%}
  .living-discover span{font-size:9px}
  body[data-page="/"] .site-header{background:#031a2d;border-bottom:1px solid #64b5dc25}
}
@media(min-width:769px) and (max-width:1100px){.living-hero .hero-stage{right:0;width:72%}}
@media(min-width:1101px){.living-hero .scene-actors{mask:url(#motion-scene-boundary)}}
@media(min-width:769px) and (max-width:1100px){.living-copy{width:42%;left:4%;top:8%}.living-copy h1{font-size:44px}.living-description{max-width:265px;font-size:12px}.hero-stage{right:-7%;width:78%}.living-signature{right:4%;font-size:26px}.living-hero.home-hero{height:830px;min-height:830px}}
@media(max-width:768px){body[data-page="/"] .site-header{display:none}body[data-page="/"] .living-hero.home-hero{padding-bottom:0}.living-controls{bottom:14px}.living-discover{bottom:16px}.living-hero .hero-stage{height:max(177.7vw,100svh)}.living-copy{top:9.3%}.living-signature{top:9.8%}}
@media(prefers-reduced-motion:reduce){.living-scene,.service-hotspots{transform:none!important;transition:none}.living-hero *,.living-hero *:before,.living-hero *:after{animation:none!important}.hotspot-orb:before,.hotspot-orb:after{display:none}}
@media print{.service-detail,.living-hero .hero-stage,.living-mobile-header,.living-controls,.living-discover,.living-signature{display:none}.living-hero.home-hero{height:auto;min-height:0;padding:30px;background:#fff;color:#000}.living-copy{position:static;width:100%;max-width:none}.living-copy h1{font-size:40px}.living-description{font-size:15px;color:#222}}
.worksite-layer{pointer-events:none;overflow:hidden}
.worksite-canvas{width:100%;height:100%;pointer-events:none}
.worksite-ready .worksite-fallback{display:none}
.road-car-layer{overflow:hidden;pointer-events:none;visibility:hidden}
.road-car-ready .road-car-layer{visibility:visible}
[data-road-car-canvas]{width:100%;height:100%;pointer-events:none}
.road-car-ready .road-car-fallback{display:none}

[data-person] .worker-body,[data-person] .worker-route,[data-person] .worker-leg-front,[data-person] .worker-leg-back,[data-person] .worker-arm-left,[data-person] .worker-arm-right,[data-person] .rake-arms{animation:none!important;transform-box:view-box;transform-origin:0 0}

@keyframes hotspot-radio{0%{transform:scale(1);opacity:.75}80%{opacity:.18}100%{transform:scale(2.8);opacity:0}}
@media(max-width:768px){.hotspot-orb{width:13px;height:13px;border-width:1.2px}.living-cta{position:relative;min-height:34px;padding:6px 9px;font-size:9.5px;gap:6px;border-radius:7px}.living-cta:before{content:"";position:absolute;inset:-5px 0}.living-cta>span{font-size:16px}.service-detail{max-width:174px;padding:9px 30px 9px 10px}.service-detail h2{font-size:10px}.service-detail ul{font-size:9.5px}}
.yard-truck-layer{pointer-events:none;overflow:hidden}[data-yard-truck-canvas]{width:100%;height:100%}.yard-truck-ready>[data-truck-scale]{display:none}
.yard-truck-ready>.yard-truck-preview{display:none}
/* Desktop refinement: preserve the mobile composition and all world-space routes. */
@media(min-width:1101px){
 .living-hero.home-hero{background:#031a30}
 .living-hero:before{content:none;filter:none;background:none}
 .living-hero .hero-stage{width:100%;max-width:none;height:108%;top:-2%;right:0;bottom:auto}
 .living-hero .living-copy h1{font-size:clamp(41.4px,4.095vw,75.6px);line-height:1.06;margin-bottom:24px;text-shadow:0 2px 12px #031a3026}
 .living-hero .living-eyebrow{margin-bottom:20px}
 .living-hero .living-description{max-width:360px;line-height:1.75;margin-bottom:28px;text-shadow:none}
 .living-hero .living-cta{box-shadow:inset 0 1px #ffffff0d;background:#07314a}
 .living-hero .living-cta:hover{background:#094361;box-shadow:none}
 .living-hero .living-desktop-links{margin-top:20px;gap:24px}
 .living-hero .living-desktop-links p{padding-top:19px}
 .living-hero .service-hotspot .hotspot-orb{width:20px;height:20px;border:1.5px solid #e0f3ff;background:radial-gradient(circle at 35% 28%,#1266b4,#06418c 65%,#032958);box-shadow:0 0 0 3px #031a3059,0 2px 7px #00142499;opacity:1;transition:transform .22s ease,box-shadow .22s ease}
 .living-hero .hotspot-orb:before,.living-hero .hotspot-orb:after{display:block;inset:-2px;border:1px solid #66bfff;animation:hotspot-desktop-radio 3.8s ease-out infinite;animation-delay:var(--phase)}
 .living-hero .hotspot-orb:after{animation-delay:calc(var(--phase) - 1.9s)}
 .living-hero .hotspot-orb>span{width:5px;height:5px;background:#fff;box-shadow:0 0 4px #ffffff66}
 .living-hero .service-hotspot:is(:hover,:focus-visible,[aria-expanded="true"]) .hotspot-orb{transform:scale(1.12);background:#0756a0;box-shadow:0 0 0 3px #031a3073,0 0 0 5px #69caff40,0 2px 8px #00142499}
 /* Grade only the moving render surfaces; the registered brand overlays stay untouched. */
 .living-hero .worksite-canvas>canvas{filter:brightness(.94) saturate(.85) sepia(.06) drop-shadow(0 1px .65px #03122030)}
 .living-hero [data-yard-truck-canvas]>canvas{filter:brightness(.94) saturate(.9) sepia(.05) drop-shadow(0 1px .65px #03122038)}
 .living-hero [data-road-car-canvas]>canvas{filter:brightness(.98) saturate(.94)}
}

@keyframes hotspot-desktop-radio{0%{transform:scale(1);opacity:0}15%{opacity:.45}100%{transform:scale(1.9);opacity:0}}
@media(min-width:1101px) and (prefers-reduced-motion:reduce){.living-hero .service-hotspot .hotspot-orb{transition:none}.living-hero .hotspot-orb:before,.living-hero .hotspot-orb:after{display:none}}

/* One continuous desktop world, including the landscape left of the original plate. */
.scene-desktop-environment{display:none;pointer-events:none}
@media(max-width:768px){.living-hero .scene-plate{mask:url(#mobile-sky-blend)}}
@media(min-width:1101px){
 .living-hero .scene-world{mask:none}
 .living-hero .scene-plate{mask:url(#scene-edge)}
 .living-hero .scene-desktop-environment{display:block}
 .living-hero .hero-vignette{background:linear-gradient(90deg,#031a3080 0%,#031a305c 24%,#031a301f 40%,transparent 58%),linear-gradient(0deg,#031a3066,transparent 9%)}
 .living-hero .living-copy{left:clamp(48px,5.8vw,112px);width:35%;max-width:600px;top:clamp(140px,20vh,210px)}
 .living-hero .living-copy h1{font-weight:650;text-shadow:0 2px 18px #00132655}
 .living-hero .living-description{max-width:365px;color:#ebf3f8;text-shadow:0 1px 6px #00132666}
 .living-hero .living-eyebrow{color:#dbeef6}
 .living-hero .living-desktop-links p{color:#c1d7e5}
 .living-hero .living-discover{left:50%}
}

/* Keep the whole service yard in the first desktop viewport. */
@media(min-width:769px){
 .living-hero.home-hero{height:100svh;min-height:620px;max-height:1100px}
 .living-hero .hero-stage{height:100%;top:0;bottom:0}
}
@media(min-width:1101px) and (max-height:740px){
 .living-hero .living-copy{top:118px}
 .living-hero .living-copy h1{font-size:clamp(40px,4.095vw,64px);margin-bottom:20px}
 .living-hero .living-description{margin-bottom:22px}
 .living-hero .living-desktop-links{gap:15px;margin-top:16px}
 .living-hero .living-desktop-links p{padding-top:12px}
 .living-hero .living-discover{bottom:18px}
}
/* Keep the scroll cue on the open street, clear of both the contact bar and
   the front-gate service target. The three-column contact bar stays unchanged. */
@media(max-width:600px){
 .living-hero .living-discover{left:12%;bottom:calc(72px + env(safe-area-inset-bottom));gap:2px}
}
@media(min-width:601px) and (max-width:768px){
 .living-hero .living-cta{min-height:40px;padding:9px 13px;gap:13px;font-size:12px}
 .living-hero .living-cta>span{font-size:20px}
 .living-hero .hotspot-orb{width:18px;height:18px;border-width:1.5px}
}
