/* LENVOR motion system , visual elements assemble only while their scene is active. */
.scene.blue::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(158,188,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(158,188,255,.045) 1px,transparent 1px);background-size:72px 72px;opacity:0;transform:scale(1.03);transition:opacity 1.1s ease,transform 1.4s cubic-bezier(.22,1,.36,1)}
.scene.blue.in::before{opacity:1;transform:scale(1)}
.scene .animate{transition-duration:.85s;transition-timing-function:cubic-bezier(.22,1,.36,1)}
.scene .kicker.animate{transform:translateY(12px);transition-delay:.08s}
.scene h1.animate,.scene h2.animate{transform:translateY(34px) scale(.985);transition-delay:.14s}
.scene .lede.animate{transition-delay:.26s}
.scene .visual.animate,.scene .steps.animate,.scene .flow.animate,.scene .two-worlds.animate,.scene .case-grid.animate,.scene .deploy-run.animate{transition-delay:.34s}

/* Shared staged entrances. */
.steps article,.case-grid article,.triptych article{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.scene.in .steps article,.scene.in .case-grid article,.scene.in .triptych article{opacity:1;transform:none}
.steps article:nth-child(1),.case-grid article:nth-child(1),.triptych article:nth-child(1){transition-delay:.42s}
.steps article:nth-child(2),.case-grid article:nth-child(2),.triptych article:nth-child(3){transition-delay:.54s}
.steps article:nth-child(3),.case-grid article:nth-child(3),.triptych article:nth-child(5){transition-delay:.66s}
.steps article:nth-child(4),.case-grid article:nth-child(4){transition-delay:.78s}
.case-grid article:nth-child(5){transition-delay:.9s}.case-grid article:nth-child(6){transition-delay:1.02s}.case-grid article:nth-child(7){transition-delay:1.14s}.case-grid article:nth-child(8){transition-delay:1.26s}
.triptych .arrow{opacity:0;transform:translateX(-10px);transition:opacity .5s ease,transform .6s ease}
.scene.in .triptych .arrow{opacity:1;transform:none}.triptych .arrow:nth-child(2){transition-delay:.5s}.triptych .arrow:nth-child(4){transition-delay:.72s}

/* Company network: hub appears, connection draws, nodes land, bars rise. */
.hub{opacity:0;transform:scale(.72);transition:opacity .55s ease,transform .8s cubic-bezier(.34,1.56,.64,1)}
.scene.in .hub{opacity:1;transform:scale(1);transition-delay:.42s}
.hub-lines{opacity:0;transform:perspective(300px) rotateX(40deg) scaleX(0);transform-origin:center top;transition:opacity .4s ease,transform 1s cubic-bezier(.22,1,.36,1)}
.scene.in .hub-lines{opacity:1;transform:perspective(300px) rotateX(40deg) scaleX(1);transition-delay:.62s}
.company i{transition:transform .6s cubic-bezier(.34,1.56,.64,1),box-shadow .5s ease!important}
.scene.in .company i{box-shadow:0 0 0 8px rgba(8,47,127,.08)}
.company:nth-child(1) i{transition-delay:.62s!important}.company:nth-child(2) i{transition-delay:.72s!important}.company:nth-child(3) i{transition-delay:.82s!important}.company:nth-child(4) i{transition-delay:.92s!important}.company:nth-child(5) i{transition-delay:1.02s!important}
.company .bar{height:0!important;transition:height 1.05s cubic-bezier(.22,1,.36,1)!important}
.scene.in .company .bar{height:var(--h)!important}
.company:nth-child(1) .bar{transition-delay:.48s!important}.company:nth-child(2) .bar{transition-delay:.58s!important}.company:nth-child(3) .bar{transition-delay:.68s!important}.company:nth-child(4) .bar{transition-delay:.78s!important}.company:nth-child(5) .bar{transition-delay:.88s!important}
#s04.scene.in .company:nth-child(1) .bar{height:42px!important}#s04.scene.in .company:nth-child(2) .bar{height:92px!important}#s04.scene.in .company:nth-child(3) .bar{height:30px!important}#s04.scene.in .company:nth-child(4) .bar{height:158px!important}#s04.scene.in .company:nth-child(5) .bar{height:70px!important}
@media(min-width:851px) and (max-height:760px){#s04.scene.in .company:nth-child(1) .bar{height:34px!important}#s04.scene.in .company:nth-child(2) .bar{height:74px!important}#s04.scene.in .company:nth-child(3) .bar{height:24px!important}#s04.scene.in .company:nth-child(4) .bar{height:126px!important}#s04.scene.in .company:nth-child(5) .bar{height:56px!important}}

/* Two-world diagrams converge on the intelligence core. */
.two-worlds .world span{opacity:0;transition:opacity .55s ease,transform .75s cubic-bezier(.22,1,.36,1)}
.two-worlds .world.left span{transform:translateX(-28px)}.two-worlds .world:not(.left) span{transform:translateX(28px)}
.scene.in .two-worlds .world span{opacity:1;transform:none}
.two-worlds .world span:nth-child(1){transition-delay:.42s}.two-worlds .world span:nth-child(2){transition-delay:.52s}.two-worlds .world span:nth-child(3){transition-delay:.62s}.two-worlds .world span:nth-child(4){transition-delay:.72s}.two-worlds .world span:nth-child(5){transition-delay:.82s}
.two-worlds .core{opacity:0;transform:scale(.65) rotate(-8deg);transition:opacity .55s ease,transform .9s cubic-bezier(.34,1.56,.64,1)}
.scene.in .two-worlds .core{opacity:1;transform:scale(1) rotate(0);transition-delay:.78s}

/* Process flows draw in reading order. */
.flow span{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .65s cubic-bezier(.22,1,.36,1)}
.flow i{transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.scene.in .flow span{opacity:1;transform:none}.scene.in .flow i{transform:scaleX(1)}
.flow span:nth-child(1){transition-delay:.38s}.flow i:nth-child(2){transition-delay:.5s}.flow span:nth-child(3){transition-delay:.58s}.flow i:nth-child(4){transition-delay:.7s}.flow span:nth-child(5){transition-delay:.78s}.flow i:nth-child(6){transition-delay:.9s}.flow span:nth-child(7){transition-delay:.98s}.flow i:nth-child(8){transition-delay:1.1s}.flow span:nth-child(9){transition-delay:1.18s}.flow i:nth-child(10){transition-delay:1.3s}.flow span:nth-child(11){transition-delay:1.38s}.flow i:nth-child(12){transition-delay:1.5s}.flow span:nth-child(13){transition-delay:1.58s}.flow i:nth-child(14){transition-delay:1.7s}.flow span:nth-child(15){transition-delay:1.78s}

/* Deployment console activates like a live system. */
.deploy-run{clip-path:inset(0 100% 0 0);transition:clip-path 1s cubic-bezier(.22,1,.36,1),opacity .5s ease!important}
.scene.in .deploy-run{clip-path:inset(0 0 0 0)}
.run-track span{opacity:.28;transition:opacity .3s ease,color .3s ease}
.scene.in .run-track span{opacity:1}.scene.in .run-track span:nth-child(1){transition-delay:.65s}.scene.in .run-track span:nth-child(2){transition-delay:.82s}.scene.in .run-track span:nth-child(3){transition-delay:.99s}.scene.in .run-track span:nth-child(4){transition-delay:1.16s}.scene.in .run-track span:nth-child(5){transition-delay:1.33s}.scene.in .run-track span:nth-child(6){transition-delay:1.5s}
.run-track span:before{transform:scale(0);transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.scene.in .run-track span:before{transform:scale(1);animation:node-live 2.2s 1.7s ease-in-out infinite}
.run-log{opacity:0;transform:translateY(8px);transition:opacity .55s 1.55s ease,transform .55s 1.55s ease}
.scene.in .run-log{opacity:1;transform:none}
@keyframes node-live{50%{box-shadow:0 0 0 12px rgba(158,188,255,0)}}

/* Moat scene: identical intelligence modules share one capability bus. */
.parity-network{width:100%;max-width:1500px;margin:48px auto 0;min-height:250px;display:flex;flex-direction:column;justify-content:center}
.parity-bus{position:relative;height:54px;text-align:center;color:var(--blue);font-size:10px;font-weight:600;letter-spacing:.2em}
.parity-bus span{display:inline-block;background:var(--paper);padding:0 18px;position:relative;z-index:2;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .6s ease}
.parity-bus i{position:absolute;left:3%;right:3%;top:9px;height:1px;background:linear-gradient(90deg,transparent,#94acd6 8%,#94acd6 92%,transparent);transform:scaleX(0);transition:transform 1.1s cubic-bezier(.22,1,.36,1);transform-origin:center}
.scene.in .parity-bus span{opacity:1;transform:none;transition-delay:.45s}.scene.in .parity-bus i{transform:scaleX(1);transition-delay:.58s}
.parity-nodes{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,4vw,70px);position:relative}
.parity-nodes:before{content:"";position:absolute;top:-45px;bottom:auto;left:10%;right:10%;height:45px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),#b6c5e0 calc(12.5% - 1px),#b6c5e0 12.5%,transparent calc(12.5% + 1px),transparent 25%);opacity:.7;clip-path:inset(0 0 100% 0);transition:clip-path .7s .8s ease}
.scene.in .parity-nodes:before{clip-path:inset(0)}
.parity-nodes article{text-align:center;opacity:0;transform:translateY(22px) scale(.94);transition:opacity .55s ease,transform .75s cubic-bezier(.34,1.56,.64,1)}
.scene.in .parity-nodes article{opacity:1;transform:none}.scene.in .parity-nodes article:nth-child(1){transition-delay:.84s}.scene.in .parity-nodes article:nth-child(2){transition-delay:.94s}.scene.in .parity-nodes article:nth-child(3){transition-delay:1.04s}.scene.in .parity-nodes article:nth-child(4){transition-delay:1.14s}.scene.in .parity-nodes article:nth-child(5){transition-delay:1.24s}
.parity-chip{width:clamp(62px,6vw,92px);aspect-ratio:1;margin:0 auto 16px;border:1px solid #9cb1d7;background:#fff;display:grid;place-items:center;position:relative;overflow:hidden;color:var(--blue)}
.parity-chip:before,.parity-chip:after{content:"";position:absolute;inset:10px;border:1px solid #d2dced}.parity-chip:after{inset:20px;background:var(--blue);border:0;transform:scale(0);transition:transform .6s cubic-bezier(.34,1.56,.64,1)}
.scene.in .parity-chip:after{transform:scale(1);transition-delay:1.2s}
.parity-chip b{position:relative;z-index:3;color:#fff;font-size:11px;letter-spacing:.12em;opacity:0;transition:opacity .35s 1.48s ease}
.scene.in .parity-chip b{opacity:1}
.parity-chip span{position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(10,62,255,.13) 50%,transparent 65%);transform:translateX(-120%);z-index:4}
.scene.in .parity-chip span{animation:chip-scan 2.8s 1.65s ease-in-out infinite}
.parity-chip i{position:absolute;width:5px;height:5px;border-radius:50%;right:7px;top:7px;background:#0a3eff;box-shadow:0 0 0 0 rgba(10,62,255,.35);z-index:5}
.scene.in .parity-chip i{animation:chip-pulse 1.8s 1.7s ease-out infinite}
.parity-nodes small{display:block;color:#8a94a6;font-size:8px;letter-spacing:.14em;margin-bottom:5px}.parity-nodes strong{font-size:10px;letter-spacing:.16em;color:var(--muted)}
@keyframes chip-scan{0%,35%{transform:translateX(-120%)}70%,100%{transform:translateX(120%)}}@keyframes chip-pulse{70%{box-shadow:0 0 0 10px rgba(10,62,255,0)}}

@media(max-width:850px){.scene.in .company .bar{height:min(var(--h),165px)!important}.flow i{transform:scaleY(0);transform-origin:top}.scene.in .flow i{transform:scaleY(1)}}
@media(max-width:620px){.parity-network{margin-top:34px;min-height:220px}.parity-nodes{gap:7px}.parity-chip{width:52px;margin-bottom:12px}.parity-chip:before{inset:7px}.parity-chip:after{inset:15px}.parity-nodes small{font-size:5px;letter-spacing:.04em}.parity-nodes strong{font-size:6px;letter-spacing:.06em}.parity-bus{font-size:8px}.parity-nodes:before{top:-38px;height:38px}}
@media(prefers-reduced-motion:reduce){.steps article,.case-grid article,.triptych article,.triptych .arrow,.hub,.hub-lines,.two-worlds .world span,.two-worlds .core,.flow span,.flow i,.deploy-run,.run-track span,.run-track span:before,.run-log,.parity-bus span,.parity-bus i,.parity-nodes:before,.parity-nodes article,.parity-chip:after,.parity-chip b,.parity-chip span,.parity-chip i{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}.company .bar,.scene.in .company .bar{height:var(--h)!important}}
