/*
 * Shared isometric-world styles for the industry pages: the five-platform world in the Industries hub hero
 * (.hv-wd) and the single-platform scene in the sector page heroes (.hv-is). The markup is drawn by
 * assets/js/industry-world.js. Loads on those pages only, after site.css.
 */
:is(.hv-wd,.hv-is) .world .sat,:is(.hv-wd,.hv-is) .world .hub{transform-box:fill-box;transform-origin:50% 60%;transition:transform 1s cubic-bezier(.22,1,.36,1),opacity .8s;transition-delay:calc(var(--i,0) * 110ms)}
:is(.hv-wd,.hv-is) .world .sat{cursor:pointer;transform:translate(0,0) scale(var(--sc,1))}
:is(.hv-wd,.hv-is) .world:not(.built) .hub{transform:scale(.55);opacity:0}
:is(.hv-wd,.hv-is) .world:not(.built) .sat{transform:translate(var(--fx),var(--fy)) scale(.75);opacity:0}
:is(.hv-wd,.hv-is) .world .sat.dim{opacity:.42}
:is(.hv-wd,.hv-is) .world .sat.hov{--sc:1.07}
:is(.hv-wd,.hv-is) .world .route{fill:none;stroke-linecap:round;stroke-linejoin:round}
:is(.hv-wd,.hv-is) .world .r-base{stroke:#E1E7F5;stroke-width:13}
:is(.hv-wd,.hv-is) .world .r-glow{stroke:#4CC9F0;stroke-width:2;opacity:.35;transition:opacity .5s,stroke-width .5s;stroke-dasharray:1;stroke-dashoffset:1}
:is(.hv-wd,.hv-is) .world.built .r-glow{stroke-dashoffset:0;transition:stroke-dashoffset 1.4s ease .9s,opacity .5s,stroke-width .5s}
:is(.hv-wd,.hv-is) .world .r-flow{stroke:#4361EE;stroke-width:2.5;stroke-dasharray:4 46;opacity:0;animation:w_rflow 2.2s linear infinite;transition:opacity .5s}
:is(.hv-wd,.hv-is) .world .lit .r-glow{opacity:1;stroke-width:3;filter:drop-shadow(0 0 3px rgba(76,201,240,.6))}
:is(.hv-wd,.hv-is) .world .lit .r-flow{opacity:1}
:is(.hv-wd,.hv-is) .world .fl{animation:w_flt 5s ease-in-out infinite alternate;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .bar{transform-box:fill-box;transform-origin:50% 100%;animation:w_barg 2.6s ease-in-out infinite alternate;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .conv{animation:w_conv 3.6s linear infinite;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .arm{transform-box:view-box;transform-origin:var(--ox) var(--oy);animation:w_arm 3.4s ease-in-out infinite alternate;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .rise{animation:w_rise 2.8s ease-in infinite;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .ecg{stroke-dasharray:160;animation:w_ecg 2.4s linear infinite}
:is(.hv-wd,.hv-is) .world .pulse{transform-box:fill-box;transform-origin:center;animation:w_pls 1.8s ease-in-out infinite;animation-delay:var(--dl,0s)}
:is(.hv-wd,.hv-is) .world .spin{transform-box:fill-box;transform-origin:center;animation:w_spn 12s linear infinite}
:is(.hv-wd,.hv-is) .world .hubglow{animation:w_pls 3.6s ease-in-out infinite}
@keyframes w_rflow{to{stroke-dashoffset:-50}}
@keyframes w_flt{to{transform:translateY(-7px)}}
@keyframes w_barg{from{transform:scaleY(.55)}to{transform:scaleY(1)}}
@keyframes w_conv{0%{transform:translate(0,0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translate(var(--tx),var(--ty));opacity:0}}
@keyframes w_arm{from{transform:rotate(-14deg)}to{transform:rotate(16deg)}}
@keyframes w_rise{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(-46px);opacity:0}}
@keyframes w_ecg{from{stroke-dashoffset:160}to{stroke-dashoffset:-160}}
@keyframes w_pls{50%{transform:scale(1.5);opacity:.5}}
@keyframes w_spn{to{transform:rotate(360deg)}}
