/* Loops exist only on the single visible, frontmost service scene. */
.live-web-glow{position:absolute;z-index:0;inset:8%;border-radius:50%;background:radial-gradient(ellipse,#ddfb4d55,transparent 68%);pointer-events:none}
.bridge-service-stage .brand-sculpture .sculpture-disc{z-index:1}
.bridge-service-stage.live-scene-active .brand-sculpture .sculpture-disc{animation:bridge-live-sculpture 12s ease-in-out infinite}
.bridge-service-stage.live-scene-active .live-web-glow{animation:bridge-live-glow 4.8s ease-in-out infinite}
.bridge-service-stage.live-scene-active .phone-content{animation:bridge-live-phone 5.6s ease-in-out infinite}
.bridge-service-stage.live-scene-active .browser-concept.live-browser-tilt{transform:perspective(1100px) rotateX(var(--live-browser-rx,0deg)) rotateY(var(--live-browser-ry,0deg));transition:transform .32s cubic-bezier(.2,.8,.2,1);transform-origin:center 60%}
.brand-sculpture.has-motion-film .sculpture-disc,.brand-sculpture.has-motion-film .live-web-glow{visibility:hidden;animation:none!important}
@keyframes bridge-live-sculpture{0%,100%{transform:rotateX(42deg) rotateY(-24deg) rotateZ(-16deg)}50%{transform:rotateX(51deg) rotateY(-16deg) rotateZ(164deg)}}
@keyframes bridge-live-glow{0%,100%{transform:scale(.9);opacity:.55}50%{transform:scale(1.15);opacity:1}}
@keyframes bridge-live-phone{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
/* The transfer is a decorative copy: the original, translated cards stay put. */
.live-hub-columns{position:relative}
.bridge-service-stage .hub-columns article.live-hub-transfer{position:absolute!important;z-index:8;margin:0!important;min-height:0!important;opacity:0;pointer-events:none;box-shadow:0 9px 19px #1c3c202b;border-color:#b8d581;background:#f5fbe8;transform-origin:center center;overflow:hidden}
.bridge-service-stage.live-scene-active .live-hub-transfer{animation:bridge-live-transfer 8.2s cubic-bezier(.4,0,.2,1) infinite}
.live-hub-target{position:relative}
.live-hub-target:after{content:"";position:absolute;inset:-2px;border:2px solid #b7d66e;border-radius:inherit;box-shadow:0 0 0 4px #ddfb4d18;opacity:0;pointer-events:none}
.bridge-service-stage.live-scene-active .live-hub-target:after{animation:bridge-live-hub-highlight 8.2s ease infinite}
.live-hub-metric{position:relative}
.live-hub-sparkline{position:absolute;right:11px;top:15px;width:43%;height:24px;overflow:visible;pointer-events:none}
.live-hub-sparkline path{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.live-spark-track{stroke:#e6eedb}
.live-spark-draw{stroke:#9ebe5b;stroke-dasharray:1;stroke-dashoffset:0}
.bridge-service-stage.live-scene-active .live-spark-draw{animation:bridge-live-spark 5.4s ease-in-out infinite}
@keyframes bridge-live-transfer{0%,11%{opacity:0;transform:translate3d(0,0,0) scale(1)}17%,23%{opacity:1;transform:translate3d(0,-6px,0) scale(1.025)}43%{opacity:1;transform:translate3d(calc(var(--live-transfer-x,0px)*.5),calc(var(--live-transfer-y,0px) - 14px),0) scale(1.04)}58%,66%{opacity:1;transform:translate3d(var(--live-transfer-x,0px),var(--live-transfer-y,0px),0) scale(1)}76%,100%{opacity:0;transform:translate3d(var(--live-transfer-x,0px),var(--live-transfer-y,0px),0) scale(1)}}
@keyframes bridge-live-hub-highlight{0%,54%,82%,100%{opacity:0}62%,71%{opacity:1}}
@keyframes bridge-live-spark{0%,12%{stroke-dashoffset:1;opacity:.4}55%,82%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:.4}}
/* A separate travelling signal leaves the scroll-bound signal untouched. */
.live-flow-signal{position:absolute;left:0;top:-4px;z-index:1;width:9px;height:9px;border-radius:50%;background:#1d5738;box-shadow:0 0 0 5px #ffffff70;opacity:0;pointer-events:none}
.bridge-service-stage.live-scene-active .live-flow-signal{animation:bridge-live-flow 7.2s linear infinite}
.live-flow-icon-core{display:grid;place-items:center;width:100%;height:100%;transform-origin:center}
.bridge-service-stage.live-scene-active .live-flow-icon-core{animation:bridge-live-icon 7.2s ease-in-out infinite}
.bridge-service-stage.live-scene-active .scene-flow-panel.two .live-flow-icon-core{animation-delay:1.9s}
.bridge-service-stage.live-scene-active .scene-flow-panel.three .live-flow-icon-core{animation-delay:3.8s}
.scene-flow-panel:after{content:"";position:absolute;inset:-2px;border:2px solid #c9e68e;border-radius:inherit;opacity:0;box-shadow:0 0 0 5px #ddfb4d1a;pointer-events:none}
.bridge-service-stage.live-scene-active .scene-flow-panel:after{animation:bridge-live-halo 7.2s ease-in-out infinite}
.bridge-service-stage.live-scene-active .scene-flow-panel.two:after{animation-delay:1.9s}
.bridge-service-stage.live-scene-active .scene-flow-panel.three:after{animation-delay:3.8s}
@keyframes bridge-live-flow{0%,12%{opacity:0;transform:translate3d(0,0,0)}15%{opacity:1;transform:translate3d(0,0,0)}77%{opacity:1;transform:translate3d(var(--live-flow-distance,0px),0,0)}83%,100%{opacity:0;transform:translate3d(var(--live-flow-distance,0px),0,0)}}
@keyframes bridge-live-icon{0%,9%,37%,100%{transform:scale(1) rotate(0)}19%{transform:scale(1.1) rotate(-5deg)}25%{transform:scale(1.04) rotate(4deg)}}
@keyframes bridge-live-halo{0%,9%,37%,100%{opacity:0}18%,27%{opacity:1}}
@media(max-width:800px){.live-hub-sparkline{right:6px;top:10px;width:40%;height:17px}.live-flow-signal{width:7px;height:7px;top:-3px;box-shadow:0 0 0 4px #ffffff70}}
@media(hover:none),(pointer:coarse){.bridge-service-stage.live-scene-active .browser-concept.live-browser-tilt{transform:none;transition:none}}
@media(prefers-reduced-motion:reduce){.bridge-service-stage.live-scene-active .sculpture-disc,.bridge-service-stage.live-scene-active .live-web-glow,.bridge-service-stage.live-scene-active .phone-content,.bridge-service-stage.live-scene-active .live-hub-transfer,.bridge-service-stage.live-scene-active .live-hub-target:after,.bridge-service-stage.live-scene-active .live-spark-draw,.bridge-service-stage.live-scene-active .live-flow-signal,.bridge-service-stage.live-scene-active .live-flow-icon-core,.bridge-service-stage.live-scene-active .scene-flow-panel:after{animation:none!important}.live-hub-transfer,.live-flow-signal{display:none!important}.browser-concept.live-browser-tilt{transform:none!important;transition:none!important}}
