.escom-motion{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 87% 42%,#dcd5fc 0,transparent 52%),linear-gradient(110deg,#faf9ff 10%,#f0edff 65%,#e6e0ff);isolation:isolate}
.escom-motion .city-viewport{position:absolute;inset:38% 0 4%;overflow:hidden;opacity:.48;mask-image:linear-gradient(90deg,transparent 15%,#000 57%),linear-gradient(0deg,transparent,#000 18%);mask-composite:intersect}
.escom-motion .city-pan{display:flex;position:absolute;left:0;bottom:0;width:max-content;height:100%;animation:city-pan 175s linear infinite;will-change:transform}
.escom-motion .city-copy{flex:0 0 auto;width:2800px;height:100%}
.escom-motion .city-copy svg{width:100%;height:100%;display:block;overflow:visible}
.escom-motion .ribbon-parallax{position:absolute;inset:0;transform:translate3d(var(--ribbon-x,0px),var(--ribbon-y,0px),0);will-change:transform}
.escom-motion .flow-ribbon{height:100%;width:100%;overflow:visible;position:absolute;inset:0}
.escom-motion .ribbon-breathe{transform-origin:74% 65%;animation:ribbon-breathe 11s ease-in-out infinite alternate}
.escom-motion .ribbon-back{animation:ribbon-glass 9s ease-in-out infinite alternate}
.escom-motion .flow-trail{stroke-dasharray:10 90;animation:light-flow 9s linear infinite;stroke-linecap:round}
.escom-motion .trail-two{stroke-dasharray:5 95;animation-duration:13s;animation-delay:-4s}
.escom-motion .hero-legibility{position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,249,255,.89) 0%,rgba(250,249,255,.67) 31%,rgba(250,249,255,.07) 59%,transparent 75%)}
.escom-motion.motion-paused *{animation-play-state:paused!important}
@keyframes city-pan{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes light-flow{to{stroke-dashoffset:-100}}
@keyframes ribbon-breathe{from{transform:translateY(5px) scaleY(.98) skewX(-1deg)}to{transform:translateY(-7px) scaleY(1.018) skewX(1deg)}}
@keyframes ribbon-glass{from{opacity:.63}to{opacity:1}}
@media(min-width:1800px){.escom-motion .city-copy{width:3500px}}
@media(max-width:800px){.escom-motion .flow-ribbon{width:140%;left:-10%;opacity:.68}.escom-motion .city-viewport{inset:48% 0 0;opacity:.35}.escom-motion .city-copy{width:2100px}.escom-motion .hero-legibility{background:linear-gradient(90deg,rgba(250,249,255,.92),rgba(250,249,255,.55) 62%,rgba(250,249,255,.2))}}
@media(prefers-reduced-motion:reduce){.escom-motion *{animation:none!important}.escom-motion .ribbon-parallax{transform:none!important}}
