/* Progressive enhancement: content stays readable without animation or JavaScript. */
.motion-word{display:inline-block}
.motion-entered .motion-word{animation:wordArrival .8s cubic-bezier(.16,1,.3,1) var(--word-delay) backwards}
.motion-card.motion-entered{animation:cardArrival .85s cubic-bezier(.16,1,.3,1) var(--card-delay) backwards}
@keyframes wordArrival{from{opacity:.25;transform:translateY(.45em)}to{opacity:1;transform:translateY(0)}}
@keyframes cardArrival{from{opacity:.5;translate:0 22px}to{opacity:1;translate:0 0}}
.kinetic-words{isolation:isolate}
.kinetic-words:before{content:'';position:absolute;z-index:-1;inset:8% 0 2%;border-left:3px solid var(--brand);background:linear-gradient(90deg,#35dfcc18,transparent);transform-origin:left;animation:textHighlight 4s cubic-bezier(.2,.7,.2,1) infinite}
.kinetic-words em{animation-duration:15s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
.kinetic-words em:nth-child(2){animation-delay:5s}.kinetic-words em:nth-child(3){animation-delay:10s}
@keyframes kineticWord{0%{opacity:0;transform:translateY(24%)}4%,29%{opacity:1;transform:translateY(0)}33%,100%{opacity:0;transform:translateY(-24%)}}
@keyframes textHighlight{0%,100%{opacity:.25;transform:scaleX(.15)}18%,76%{opacity:1;transform:scaleX(1)}}
.connection-paths{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.connection-paths path{fill:none;vector-effect:non-scaling-stroke}
.connection-track{stroke:#3fffe44d;stroke-width:1.2;stroke-dasharray:3 4}
.connection-pulse{stroke:var(--cyan);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:9 91;animation:connectionTravel 4s linear infinite}
@keyframes connectionTravel{from{stroke-dashoffset:110;opacity:0}12%,85%{opacity:1}to{stroke-dashoffset:0;opacity:0}}
.connected-geometry .convergence-input,.connected-geometry .convergence-core{animation:none}
.connected-geometry .convergence-input:after,.connected-geometry .convergence-input i,.connected-geometry .convergence-core:before,.connected-geometry .convergence-core:after{display:none}
.connected-geometry .convergence-interface{right:3%;width:34%;animation:none;transform:translateY(-50%)}
.connected-geometry .convergence-core img{animation:logoReceive 4s ease-in-out infinite}
.convergence-slides{position:relative;min-height:240px;aspect-ratio:12/8.8}
.convergence-slide{position:absolute;inset:0;display:flex;flex-direction:column;margin:0;opacity:0;animation:convergenceSlide 18s linear infinite}
.convergence-slide:nth-child(2){animation-delay:-13.5s}
.convergence-slide:nth-child(3){animation-delay:-9s}
.convergence-slide:nth-child(4){animation-delay:-4.5s}
.convergence-slide img{display:block;width:100%;height:auto;aspect-ratio:12/7;object-fit:contain;border:5px solid #fff;border-radius:12px;background:#fff;box-shadow:0 26px 42px -26px #000}
.convergence-slide--qr{--qr-height:clamp(205px,19vw,245px);--qr-half-width:clamp(74px,6.87vw,88.5px)}
.convergence-slide--qr::before{content:'';position:absolute;top:50%;left:-24px;width:calc(50% - var(--qr-half-width) + 24px);border-top:1px dashed rgba(63,255,228,.42);pointer-events:none}
.convergence-slide--qr img{align-self:center;width:auto;max-width:100%;height:var(--qr-height);aspect-ratio:auto;background:#00232c}
.convergence-slide figcaption{min-height:1.5em;margin-top:15px;color:#fff;font-family:var(--mono);font-size:clamp(.7rem,1.05vw,.9rem);font-weight:600;line-height:1.5;text-align:center}
.convergence-type{display:block;width:0;max-width:100%;margin-inline:auto;overflow:hidden;border-right:2px solid var(--cyan);white-space:nowrap;animation:convergenceType 18s steps(var(--characters),end) infinite}
.convergence-slide:nth-child(2) .convergence-type{animation-delay:-13.5s}
.convergence-slide:nth-child(3) .convergence-type{animation-delay:-9s}
.convergence-slide:nth-child(4) .convergence-type{animation-delay:-4.5s}
@keyframes convergenceSlide{0%,22%,100%{opacity:1}25%,97%{opacity:0}}
@keyframes convergenceType{0%{width:0}12.5%,24.9%{width:calc(var(--characters)*1ch)}25%,100%{width:0}}
@keyframes logoReceive{0%,100%{transform:scale(.96);opacity:.85}45%,65%{transform:scale(1.04);opacity:1}}
.button,.text-link,.solution-tile,.eco-panel,.related-card{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s,background-color .35s}
.button span,.text-link span,.related-card b{display:inline-block;transition:translate .3s}
@media(hover:hover) and (pointer:fine){
 .button:hover{transform:translateY(-3px);box-shadow:0 12px 25px -15px #01212b80}
 .button:hover span,.text-link:hover span{translate:3px -2px}
 .solution-tile:hover,.eco-panel:hover,.related-card:hover{transform:translateY(-5px)}
 .related-card:hover b{translate:4px 0}
}
.section-heading .eyebrow:before{transform-origin:left}
.section-heading:has(.motion-entered) .eyebrow:before{animation:eyebrowDraw .8s ease-out}
@keyframes eyebrowDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:640px){
 .connected-geometry .convergence-interface{width:90%;right:5%;top:auto;transform:none}
 .connected-geometry .convergence-input:before{right:calc(50% - 4px);top:auto;bottom:-4px}
 .convergence-slide--qr::before{display:none}
 .motion-entered .motion-word{animation-duration:.6s}
}
@media(prefers-reduced-motion:reduce){
 .convergence-slide{animation:none;opacity:0}.convergence-slide:first-child{opacity:1}
 .convergence-type{width:auto;animation:none;border-right:0}
 .motion-word,.motion-card,.connection-pulse,.connected-geometry .convergence-core img,.kinetic-words:before{animation:none!important}
 .connection-pulse{display:none}.kinetic-words:before{transform:none;opacity:.5}
 .button,.text-link,.solution-tile,.eco-panel,.related-card{transition:none}
}
