/* Light paths and slow, staggered motion; all text and click targets remain readable. */
.signal-network {position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.75;mask-image:linear-gradient(90deg,transparent 30%,#000 60%)}
.network-wire {fill:none;stroke:#ffa365;stroke-opacity:.15;stroke-width:1}
.network-flow {fill:none;stroke:#ff9c50;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:24 790;stroke-dashoffset:0;filter:drop-shadow(0 0 4px #ff761988)}
.network-node {fill:#ffab70;opacity:.5;transform-box:fill-box;transform-origin:center}
.effects-ready .network-flow {animation:network-travel 13s linear infinite}
.effects-ready .network-node {animation:network-glow 5s ease-in-out infinite}
.effects-ready .banner .is-active .orbit-ring {animation:banner-orbit 22s linear infinite;animation-play-state:running}
.effects-ready .banner .is-active .orbit-ring.second {animation-direction:reverse;animation-duration:17s}
.effects-ready .banner .reform-orbit {animation:reform-breathe 8s ease-in-out infinite}
.effects-ready .banner-grid {animation:grid-drift 26s linear infinite}
.banner-visual .signal-card {backdrop-filter:blur(12px)}
.banner-business .banner-grid {opacity:.6}
.motion-ribbon {background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;overflow:hidden;position:relative}
.ribbon-inner {display:flex;align-items:center;gap:30px}
.ribbon-caption {flex-shrink:0;display:flex;flex-direction:column;gap:8px}
.ribbon-caption>span {font-size:9px;letter-spacing:.16em;color:var(--orange-dark);font-weight:650}
.effects-toggle {align-self:flex-start;padding:5px 9px;border:1px solid var(--line);border-radius:20px;background:var(--mist);color:var(--muted);font:inherit;font-size:10px;line-height:1.6;white-space:nowrap;cursor:pointer}
.effects-toggle:hover {color:var(--orange-dark);border-color:var(--orange-dark)}
.effects-toggle[aria-pressed="true"] {color:var(--orange-dark)}
.effects-toggle:disabled {opacity:1;cursor:default}
.ribbon-window {min-width:0;flex:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ribbon-track {display:flex;width:max-content}
.ribbon-group {display:flex;align-items:center;gap:36px;padding-right:36px;flex-shrink:0}
.ribbon-group span {white-space:nowrap;font-size:clamp(18px,2vw,28px);font-weight:550;letter-spacing:-.035em;color:var(--ink)}
.ribbon-group i {font-style:normal;color:var(--orange);font-size:21px;line-height:1}
.effects-ready .ribbon-track {animation:ribbon-travel 38s linear infinite}
.ribbon-window:hover .ribbon-track {animation-play-state:paused}
.effects-ready .service-explorer .tech-icon {animation:tech-float 5s ease-in-out infinite}
.effects-ready .service-explorer .service-card:nth-child(2n) .tech-icon {animation-delay:-2s}
.effects-ready .service-explorer .service-card:nth-child(3n) .tech-icon {animation-delay:-3s}
.effects-ready .tech-icon-0 b,.effects-ready .tech-icon-4 em {animation:network-glow 3.5s ease-in-out infinite}
.effects-ready .tech-icon-3 i,.effects-ready .tech-icon-3 b,.effects-ready .tech-icon-3 em {transform-origin:bottom;animation:bar-activity 4s ease-in-out infinite}
.effects-ready .tech-icon-3 b {animation-delay:-1s}.effects-ready .tech-icon-3 em {animation-delay:-2s}
.effects-ready .solutions-console i {animation:console-glow 3.6s ease-in-out infinite}
.effects-ready .service-explorer .service-card:after {animation:panel-scan 9s ease-in-out infinite}
.effects-ready .service-explorer .service-card:nth-child(2n):after {animation-delay:-3s}
.effects-ready .service-explorer .service-card:nth-child(3n):after {animation-delay:-6s}
.effects-ready .service-explorer .service-card:hover:after {animation-duration:5s}
.effects-ready .service-explorer .service-card:hover .tech-icon,.effects-ready .service-explorer .service-card:focus-visible .tech-icon {animation-play-state:paused}
.effects-ready .journey-stop.is-current .journey-dot {animation:console-glow 3.6s ease-in-out infinite}
.page-top {position:relative;isolation:isolate;overflow:hidden;background-image:radial-gradient(ellipse at 90% 30%,#ff7f1814,transparent 60%)}
.page-top:after {content:'';position:absolute;right:-130px;top:-120px;width:450px;height:450px;z-index:-1;border:1px solid #ff8b4525;border-radius:50%;box-shadow:0 0 0 65px #ff8b4505,0 0 0 130px #ff8b4503;pointer-events:none}
.effects-ready .page-top:after {animation:reform-breathe 10s ease-in-out infinite}
.footer-bottom {flex-wrap:wrap;padding-bottom:86px}
@keyframes network-travel {to{stroke-dashoffset:-814}}
@keyframes network-glow {0%,100%{opacity:.3}45%{opacity:.95}}
@keyframes reform-breathe {0%,100%{transform:scale(.96) rotate(-30deg);opacity:.6}50%{transform:scale(1.045) rotate(-24deg);opacity:1}}
@keyframes grid-drift {to{background-position:65px 65px}}
@keyframes ribbon-travel {to{transform:translateX(-50%)}}
@keyframes tech-float {0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes bar-activity {0%,100%{transform:scaleY(.7)}50%{transform:scaleY(1)}}
@keyframes console-glow {0%,100%{box-shadow:0 0 0 0 #ff6b1900,0 0 10px #ff6b1940}50%{box-shadow:0 0 0 5px #ff6b1910,0 0 22px #ff6b1990}}
@keyframes panel-scan {0%,65%,100%{top:0;opacity:0}68%{top:0;opacity:.7}88%{top:100%;opacity:0}}
/* The control pauses continuous effects, including the banner's automatic advance. */
html.effects-paused .network-flow,html.effects-paused .network-node,html.effects-paused .banner-grid,html.effects-paused .orbit-ring,html.effects-paused .reform-orbit,html.effects-paused .signal-card,html.effects-paused .banner-media img,html.effects-paused .ribbon-track,html.effects-paused .tech-icon,html.effects-paused .tech-icon *,html.effects-paused .solutions-console i,html.effects-paused .service-card:after,html.effects-paused .journey-dot,html.effects-paused .page-top:after {animation-play-state:paused!important}
html.effects-asleep *,html.effects-asleep *:before,html.effects-asleep *:after {animation-play-state:paused!important}
.effects-ready .banner:not(.motion-in-view) *, .effects-ready .service-explorer:not(.motion-in-view) *, .effects-ready .service-explorer:not(.motion-in-view) .service-card:after,.effects-ready .motion-ribbon:not(.motion-in-view) .ribbon-track,.effects-ready .journey-section:not(.motion-in-view) .journey-dot,.effects-ready .page-top:not(.motion-in-view):after {animation-play-state:paused!important}
@media(max-width:760px) {
 .signal-network {opacity:.42;mask-image:linear-gradient(90deg,transparent,#000)}
 .network-flow {stroke-width:1.2}
 .motion-ribbon {padding:18px 0}
 .ribbon-inner {display:block}
 .ribbon-caption {flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:17px}
 .ribbon-caption>span {font-size:8px}
 .ribbon-group {gap:22px;padding-right:22px}
 .ribbon-group span {font-size:20px}
 .ribbon-group i {font-size:17px}
 .effects-ready .ribbon-track {animation-duration:32s}
 .page-top:after {width:280px;height:280px;right:-130px;top:-80px}
}
@media(prefers-reduced-motion:reduce) {
 .signal-network *,.banner-grid,.orbit-ring,.reform-orbit,.ribbon-track,.tech-icon,.tech-icon *,.solutions-console i,.service-card:after,.journey-dot,.page-top:after {animation:none!important}
 .network-flow {display:none}
}
