.ecosystem-tools{z-index:2}
.eco-proximity-enabled .ecosystem-tool:not(.ecosystem-center){opacity:min(1,calc(var(--eco-proximity,.65) + var(--eco-energy,0) * .38))}
.eco-proximity-enabled .ecosystem-tile::after{opacity:min(1,calc(var(--eco-proximity,.65) + var(--eco-energy,0) * .55))}
.eco-proximity-enabled .ecosystem-tool:is(:hover,:focus){opacity:1}
.eco-shared-wave{position:absolute;left:50%;top:50%;width:70%;aspect-ratio:1;border:1px solid #57caff35;border-radius:50%;pointer-events:none;z-index:1;opacity:0}
.eco-pulse-active.eco-in-view .eco-shared-wave{animation:eco-shared-pulse var(--eco-pulse-duration,2.2s) ease-out infinite}
.eco-pulse-active.eco-in-view .ecosystem-hub{animation:eco-source-pulse var(--eco-pulse-duration,2.2s) ease-out infinite}
.ecosystem-center:focus{outline:none}
.ecosystem-center:focus-visible .ecosystem-hub{outline:2px solid #69d3f5;outline-offset:5px}
@keyframes eco-shared-pulse{0%{transform:translate(-50%,-50%) scale(.1);opacity:.25}12%{opacity:.75}90%,100%{transform:translate(-50%,-50%) scale(1.6);opacity:0}}
@keyframes eco-source-pulse{0%,70%,100%{filter:brightness(1)}12%{filter:brightness(1.4)}}
@media(prefers-reduced-motion:reduce){
 .eco-shared-wave,.eco-pulse-active .ecosystem-hub{animation:none!important}
}
