/* Motion local. Nenhuma regra altera altura, grid, padding ou copy aprovados.
   core.js fornece progresso; enterprise.js desenha nas superfícies existentes. */
.le-premium-motion .liggo-page { --lm-ease: cubic-bezier(.22,.68,0,1); }
.le-premium-motion :is(.le-manual, .le-decision, .le-convergence, .le-cap, .le-plan, .l-features__visual, .l-cta__box) { position: relative; }
.le-premium-motion :is(.lm-packet, .lm-order, .lm-network-packet, .le-pipeline__packet) { pointer-events: none; }
/* Um dono por propriedade: substitui rv/entradas antigas apenas nestes alvos. */
.js.le-premium-motion .l-hero .rv,
.js.le-premium-motion [data-lm-enter].rv,
.js.le-premium-motion .le-decision.rv { opacity: 1; transform: none; transition: none; }
.le-premium-motion .le-manual.is-illustrated li,
.le-premium-motion .le-convergence.is-illustrated :is(.le-channel, .le-convergence__bridge i, .le-convergence__outputs li),
.le-premium-motion .le-pipeline.is-illustrated :is(li, .le-pipeline__packet),
.le-premium-motion .le-architecture.is-illustrated :is(.le-architecture__nodes li, .le-architecture__pulse) { animation: none; }

/* Hero: leitura entra em menos de 0.9s; ações nunca ficam transparentes. */
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion .l-hero .product-hero-brand { animation: lm-rise .42s var(--lm-ease) backwards; }
  .le-premium-motion .l-hero__badge { animation: lm-rise .45s var(--lm-ease) .06s backwards; }
  .le-premium-motion .l-hero__inner > .lead { animation: lm-rise .45s var(--lm-ease) .16s backwards; }
  .le-premium-motion .l-hero__actions { animation: lm-actions .3s var(--lm-ease) .2s backwards; }
  .le-premium-motion .l-hero__glow { animation: lm-light 1.8s ease-out backwards; }
}
.js.le-premium-motion .l-hero [data-split] .wi { transition-duration: .55s; transition-delay: calc(min(var(--i), 18) * .012s + .12s); }
.le-premium-motion .l-hero__glow { transform: translate3d(0, calc(var(--lm-depth, 0) * 1px), 0); }
.js.le-premium-motion .l-hero__mockup-surface { transition-duration: .85s; }
.le-premium-motion .mockup-visual { transition-duration: 1.1s; }
.le-premium-motion .mockup-frame::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(130deg, #00d1ff0c, transparent 40%, #ff9c5308); border: 1px solid #a0f3ff18;
}

/* Trilhas: conexão, estado e pacote. Texto permanece legível durante o scroll. */
.le-premium-motion .le-manual { --lm-accent: var(--le-orange); }
.le-premium-motion .le-pipeline { --lm-accent: var(--cyan); }
.le-premium-motion :is(.le-manual__flow, .le-pipeline ol) { position: relative; }
.le-premium-motion :is(.le-manual__flow, .le-pipeline ol) > li { position: relative; }
.le-premium-motion :is(.le-manual__flow, .le-pipeline ol) > li::before {
  content: ''; position: absolute; top: -1px; left: 0; width: 100%; height: 2px;
  background: var(--lm-accent); transform: scaleX(var(--lm-step-progress, 1)); transform-origin: left; pointer-events: none;
}
.le-premium-motion .le-pipeline li:not(:last-child)::before { width: calc(100% + 22px); }
.le-premium-motion .le-pipeline li > .mono { transition: color .18s, border-color .18s, background-color .18s; }
.le-premium-motion .le-pipeline li.is-lm-active > .mono { color: #fff; border-color: var(--cyan); background: #12425a; }
.le-premium-motion .le-pipeline li.is-lm-done > .mono { color: #a5f5ff; border-color: #308394; background: #10323d; }
.le-premium-motion .le-manual li.is-lm-active > .mono { text-shadow: 0 0 12px #ff9c5355; }
.le-premium-motion .le-manual li.is-lm-done::after { color: var(--le-orange); opacity: .55; }
.le-premium-motion :is(.lm-packet, .le-pipeline__packet) {
  position: absolute; top: -3px; left: -7px; width: 14px; height: 6px; border-radius: 2px;
  background: var(--lm-accent); opacity: .9; box-shadow: 0 0 10px -3px var(--lm-accent);
  z-index: 2; transform: translate3d(0,0,0);
}
.le-premium-motion .le-manual__flow li::before { height: 1px; }
.le-premium-motion .le-manual__flow li > small { position: relative; }
.le-premium-motion .le-manual__flow li > small::after {
  content: ''; position: absolute; right: 0; bottom: -5px; width: 6px; height: 3px;
  background: var(--le-orange); opacity: calc(.1 + var(--lm-step-progress, 1) * .6);
  transform: translateY(-2px); pointer-events: none;
}
/* O mesmo desenho passa do trabalho fragmentado à operação coordenada.
   enterprise.js é o único dono deste progresso; não há entrada vertical nova. */
.le-premium-motion .le-operation .le-manual__flow li {
  transform: translate3d(0, calc(var(--lm-order-progress, 0) * -6px), 0);
}
.le-premium-motion .le-operation.is-coordinated { --lm-accent: var(--cyan); }
.le-premium-motion .le-operation.is-coordinated .le-manual__flow li { border-top-color: #315d74; }
.le-premium-motion .le-operation__result { overflow: clip; }
.le-compact-motion .le-operation .le-manual__flow li,
.le-reduced-motion .le-operation .le-manual__flow li { transform: none; }
/* Fragmentação converge no card existente. SVG de fundo não reserva espaço. */
.le-premium-motion .lm-order { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--cyan); opacity: .12; }
.le-premium-motion .lm-order__line { fill: none; stroke: currentColor; stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--lm-progress, 1)); }
.le-premium-motion .le-decision > :not(.lm-order) { position: relative; z-index: 1; }
.le-premium-motion .le-decision__signal { transform: scaleX(calc(.7 + var(--lm-progress, 1) * .3)); transform-origin: left; }
.le-premium-motion .le-decision__roles > * { transition: border-color .2s; box-shadow: 0 1px #346476; }

/* Canais -> núcleo -> operação. Pulsos só percorrem conexões do diagrama. */
.le-premium-motion .le-convergence__bridge i { position: relative; transform: scaleX(calc(.35 + var(--lm-in-flow, 1) * .65)); transform-origin: left; }
.le-premium-motion .le-convergence__bridge i::after {
  content: ''; position: absolute; left: 0; top: -2px; width: 8px; height: 4px; border-radius: 1px;
  background: var(--cyan); transform: translateX(calc(var(--lm-in-flow, 1) * var(--lm-bridge-distance, 45px)));
  opacity: calc(1 - var(--lm-in-flow, 1)); pointer-events: none;
}
.le-premium-motion .le-convergence__bridge--out i { transform: scaleX(calc(.35 + var(--lm-out-flow, 1) * .65)); }
.le-premium-motion .le-convergence__bridge--out i::after { transform: translateX(calc(var(--lm-out-flow, 1) * var(--lm-bridge-distance, 45px))); opacity: calc(1 - var(--lm-out-flow, 1)); }
.le-premium-motion .le-hub { position: relative; }
.le-premium-motion .le-hub::after { content: ''; position: absolute; inset: -1px; border: 1px solid #75e9ff; border-radius: inherit; opacity: calc(var(--lm-progress, 1) * .4); pointer-events: none; }
.le-premium-motion .le-convergence__outputs li { transition: border-color .18s; }
.le-premium-motion .le-convergence__outputs li.is-lm-done { border-color: #387387; }

/* Conceitos diferentes: multimodal, duplicidade, distribuição e histórico. */
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion .le-inputs.is-illustrated > span { animation: lm-input .65s var(--lm-ease) backwards; animation-delay: calc(var(--step) * .08s); }
  .le-premium-motion .le-inputs.is-illustrated .le-inputs__context { animation: lm-context .5s var(--lm-ease) .28s backwards; }
  .le-premium-motion .le-inputs.is-illustrated .le-wave { animation: lm-wave .9s ease-in-out .15s; }
  .le-premium-motion .le-burst.is-illustrated i { animation: lm-merge .8s var(--lm-ease) backwards; animation-delay: calc(var(--step) * .06s); }
  .le-premium-motion .le-burst.is-illustrated i:nth-child(2) { animation-name: lm-duplicate; }
  .le-premium-motion .le-burst.is-illustrated b { animation: lm-context .5s var(--lm-ease) .55s backwards; }
  .le-premium-motion .le-departments.is-illustrated li { animation: lm-dispatch .5s var(--lm-ease) backwards; }
  .le-premium-motion .le-departments.is-illustrated li:nth-child(2) { animation-delay: .12s; }
  .le-premium-motion .le-departments.is-illustrated li:nth-child(3) { animation-delay: .24s; }
  .le-premium-motion .le-departments.is-illustrated li:nth-child(4) { animation-delay: .36s; }
  .le-premium-motion .le-history.is-illustrated li { animation: lm-record .5s var(--lm-ease) backwards; animation-delay: calc(var(--step) * .12s); }
  .le-premium-motion .le-channel-tags.is-illustrated span { animation: lm-priority .5s var(--lm-ease) backwards; }
  .le-premium-motion .le-channel-tags.is-illustrated span:nth-child(2) { animation-delay: .15s; }
  .le-premium-motion .le-tools.is-illustrated > div { animation: lm-tool .5s var(--lm-ease) backwards; }
  .le-premium-motion .le-tools.is-illustrated > div:nth-child(2) { animation-delay: .12s; }
  .le-premium-motion .le-tools.is-illustrated > div:nth-child(3) { animation-delay: .24s; }
}
.le-premium-motion .le-burst i { background: #3c94a9; }
.le-premium-motion .le-burst i:nth-child(2) { opacity: .3; transform: scaleX(.45); }
.le-premium-motion .le-history li::before { background: #71dbe9; }
.le-premium-motion .le-cap::after, .le-premium-motion .l-card::after {
  content: ''; position: absolute; left: 24px; right: 24px; bottom: 0; height: 1px;
  background: linear-gradient(90deg, transparent, #00d1ff60, transparent);
  opacity: .4; transform-origin: left; pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion :is(.le-cap, .l-card).is-lm-entered::after { animation: lm-trace .7s var(--lm-ease) backwards; }
  .le-premium-motion .l-card.is-lm-entered .l-card__icon-wrap { animation: lm-icon .5s var(--lm-ease) backwards; }
}
/* Demo: única superfície de profundidade, nada nos gestos/mensagens/tempo. */
.le-premium-motion .l-features__visual::before {
  content: ''; position: absolute; inset: -18px; border-radius: 30px;
  background: radial-gradient(ellipse at 65% 20%, #00d1ff12, transparent 65%); pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion .l-features__visual.is-lm-entered { animation: lm-panel .65s var(--lm-ease) backwards; }
}
/* Rede medida no resize. Trajetos terminam nos centros reais dos nós. */
.le-premium-motion .lm-network-line { stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--lm-link, 1)); stroke-width: 1.2; }
.le-premium-motion .lm-network-packet { fill: var(--cyan); }
.le-premium-motion .le-architecture__pulse { opacity: .16; }
.le-premium-motion .le-architecture__nodes li { transition: border-color .18s; }
.le-premium-motion .le-architecture__nodes li.is-lm-active { border-color: #67d9f0; }
.le-premium-motion .le-architecture__nodes li.is-lm-done { border-color: #38788e; }
/* Planos sem scrub: comparação comercial continua tranquila. */
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion .le-plan.is-lm-entered { animation: lm-plan .5s var(--lm-ease) var(--lm-enter-delay, 0s) backwards; }
  .le-premium-motion .le-plan--featured.is-lm-entered::after { animation: lm-light .8s ease-out backwards; }
}
.le-premium-motion .liggo-page :is(.le-plan, .l-card)[data-lm-enter] { transition: transform .22s var(--lm-ease), border-color .22s; }
.le-premium-motion .le-plan--featured::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: linear-gradient(145deg, #00d1ff0b, transparent 65%); border: 1px solid #48d5e626;
}
.le-premium-motion .le-faq__answer { padding: 0; }
.le-premium-motion .lm-faq-content { padding: 0 8px 24px; }
.le-premium-motion .le-faq__item button { transition: color .18s, background-color .18s; }
.le-premium-motion .le-faq__item button:active { background: #10202c; }
/* Continuidade só dentro das margens existentes, nunca com faixas novas. */
.le-premium-motion :is(.le-promise, .le-omni, .le-workflow, .le-integrations, .l-cta)::before {
  content: ''; position: absolute; top: -24px; left: var(--pad); width: 1px; height: 48px;
  background: linear-gradient(transparent, #00d1ff55, transparent); pointer-events: none;
}
.le-premium-motion :is(.le-promise, .le-integrations, .l-cta)::after {
  content: ''; position: absolute; inset: -24px 0 auto; height: 48px;
  background: radial-gradient(ellipse at 70% 50%, #00d1ff08, transparent 70%); pointer-events: none;
}
.le-premium-motion .l-cta__box::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: radial-gradient(ellipse at 0 0, #00d1ff0e, transparent 65%), linear-gradient(115deg, #ff9c5306, transparent); pointer-events: none;
}
.le-premium-motion .l-cta__box > * { position: relative; }
@media (prefers-reduced-motion: no-preference) {
  .le-premium-motion .l-cta__content.is-lm-entered h2 { animation: lm-rise .5s var(--lm-ease) backwards; }
  .le-premium-motion .product-form.is-lm-entered { animation: lm-form .5s var(--lm-ease) .1s backwards; }
}
/* Hover só em mouse; active também oferece feedback em touch/teclado. */
.le-premium-motion .liggo-page .btn { transition-duration: .22s; }
.le-premium-motion .liggo-page .btn .arrow { transition-duration: .22s; }
.le-premium-motion .liggo-page .btn:active { transform: scale(.985); }
.le-premium-motion .liggo-page .link-arrow:active svg { transform: translateX(2px); }
.le-premium-motion .product-form :is(input, select):focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.le-premium-motion .liggo-page :is(.le-cap, .le-plan):focus-within { border-color: #58c6dc; }
@media (hover: hover) and (pointer: fine) {
  .le-premium-motion .liggo-page .l-card:hover { transform: translateY(-3px); }
  .le-premium-motion .liggo-page .le-plan:hover { transform: translateY(-3px); border-color: #39798b; }
  .le-premium-motion .le-cap:hover::after { opacity: .8; }
  .le-premium-motion .le-faq__item button:hover { background: #0b1922; }
}
/* Mobile: sequências finitas substituem scrub em diagramas mais altos. */
.le-compact-motion :is(.lm-packet, .le-pipeline__packet, .lm-network-packet) { display: none; }
@media (max-width: 1023px) and (prefers-reduced-motion: no-preference) {
  .le-premium-motion .le-manual.is-illustrated li { animation: lm-task .5s var(--lm-ease) backwards; animation-delay: calc(var(--step) * .09s); }
  .le-premium-motion .le-pipeline.is-illustrated li > .mono { animation: lm-stage .45s var(--lm-ease) backwards; animation-delay: calc(var(--step) * .1s); }
  .le-premium-motion .le-convergence.is-illustrated .le-channel { animation: lm-dispatch .45s var(--lm-ease) backwards; }
  .le-premium-motion .le-convergence.is-illustrated .le-convergence__outputs li { animation: lm-record .45s var(--lm-ease) .18s backwards; }
  .le-premium-motion .le-architecture.is-illustrated .lm-network-line { animation: lm-line .5s var(--lm-ease) backwards; animation-delay: calc(var(--lm-index) * .08s); }
  .le-premium-motion .le-decision.is-illustrated .lm-order__line { animation: lm-line .7s var(--lm-ease) backwards; }
}
@media (max-width: 700px) {
  .le-premium-motion .le-pipeline li::before { display: none; }
}
@keyframes lm-rise { from { opacity: .5; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes lm-actions { from { transform: translateY(4px); } to { transform: none; } }
@keyframes lm-light { from { opacity: .25; } to { opacity: 1; } }
@keyframes lm-input { from { opacity: .65; transform: translateY(-5px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes lm-context { from { opacity: .65; transform: translateX(-5px); } to { opacity: 1; transform: none; } }
@keyframes lm-wave { 30%, 70% { transform: scaleY(.7); } 50% { transform: scaleY(1.1); } }
@keyframes lm-merge { from { transform: translateX(-7px) scaleX(.6); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes lm-duplicate { 0%, 25% { opacity: .9; transform: scaleX(1); } 100% { opacity: .3; transform: scaleX(.45); } }
@keyframes lm-dispatch { from { transform: translateX(-6px); border-color: #55c6dd; } to { transform: none; } }
@keyframes lm-record { from { opacity: .6; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes lm-priority { from { transform: translateY(5px); } to { transform: none; } }
@keyframes lm-tool { from { opacity: .65; transform: translateX(5px); } to { opacity: 1; transform: none; } }
@keyframes lm-trace { from { transform: scaleX(.1); opacity: 0; } to { transform: scaleX(1); opacity: .4; } }
@keyframes lm-icon { from { transform: scale(.9) rotate(-4deg); } to { transform: none; } }
@keyframes lm-panel { from { opacity: .8; transform: translateY(12px) scale(.995); } to { opacity: 1; transform: none; } }
@keyframes lm-plan { from { opacity: .7; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes lm-form { from { opacity: .8; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@keyframes lm-task { from { transform: translateY(3px); } 45% { transform: none; border-color: #ff9c53; } to { transform: none; } }
@keyframes lm-stage { from { transform: scale(.94); background: #14576c; } to { transform: none; } }
@keyframes lm-line { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
/* Conteúdo e diagrams finais, mesmo sem esperar pelo IntersectionObserver. */
@media (prefers-reduced-motion: reduce) {
  .le-premium-motion .liggo-page *, .le-premium-motion .liggo-page *::before, .le-premium-motion .liggo-page *::after { animation: none !important; transition: none !important; }
  .js.le-premium-motion :is(.l-hero__mockup-surface, .l-hero [data-split] .wi) { clip-path: none !important; transform: none !important; }
  .le-premium-motion :is(.lm-packet, .le-pipeline__packet, .lm-network-packet) { display: none; }
  .le-premium-motion :is(.lm-network-line, .lm-order__line) { stroke-dashoffset: 0; }
  .le-premium-motion .l-hero__glow { transform: none; }
}
.le-reduced-motion .liggo-page *, .le-reduced-motion .liggo-page *::before, .le-reduced-motion .liggo-page *::after { animation: none !important; transition: none !important; }
.le-reduced-motion :is(.lm-packet, .le-pipeline__packet, .lm-network-packet) { display: none; }
.le-reduced-motion :is(.lm-network-line, .lm-order__line) { stroke-dashoffset: 0; }
.le-reduced-motion .l-hero__glow { transform: none; }
.js.le-reduced-motion :is(.l-hero__mockup-surface, .l-hero [data-split] .wi) { clip-path: none !important; transform: none !important; }

/* Passada cinematográfica: GSAP assume só entradas e profundidade.
   Os micro-motions dos recursos e o renderer da conversa continuam locais. */
.lg-cinematic .liggo-page { --lm-ease: cubic-bezier(.16,1,.3,1); }
.js.lg-cinematic .liggo-page .lg-motion-owned.rv,
.js.lg-cinematic .liggo-page .lg-motion-owned[data-reveal] {
  opacity: 1; transform: none; transition: none; animation: none;
}
.lg-cinematic .liggo-page .lg-motion-owned { animation: none !important; }
.js.lg-cinematic .liggo-page .lg-motion-owned[data-split] .wi {
  transform: none; transition: none;
}
.js.lg-cinematic .liggo-page .lg-motion-owned.l-hero__mockup-surface {
  clip-path: none; transition: none;
}
.js.lg-cinematic .liggo-page .lg-motion-owned.mockup-visual,
.js.lg-cinematic .liggo-page .lg-motion-owned.mockup-visual img {
  transform: none; transition: none;
}
.lg-cinematic .liggo-page .l-hero__mockup { perspective: 1200px; }
.lg-cinematic .liggo-page .mockup-frame { transform-origin: center 70%; }
.lg-cinematic .liggo-page .l-features__visual::before { opacity: var(--lg-demo-light, 1); }
.lg-cinematic .liggo-page .lg-motion-owned.stem-rule { transform: none; transition: none; }
.lg-cinematic .liggo-page .lg-ambient { position: relative; isolation: isolate; }
.lg-cinematic .liggo-page .lg-ambient > .wrap { position: relative; z-index: 1; }
.lg-cinematic .liggo-page .lg-ambient::after {
  content: ''; position: absolute; inset: -64px 0 auto; height: 128px;
  background: radial-gradient(ellipse at 75% 50%, #00d1ff13, transparent 68%);
  opacity: calc(.2 + var(--lg-light, 1) * .8); pointer-events: none; z-index: 0;
}
.lg-cinematic .liggo-page .le-problem.lg-ambient::after {
  background: radial-gradient(ellipse at 25% 50%, #ff9c5311, transparent 68%);
}
.lg-cinematic .liggo-page .le-integrations.lg-ambient::after {
  background: radial-gradient(ellipse at 65% 50%, #0066ff1c, transparent 68%);
}
@media (hover: hover) and (pointer: fine) {
  .lg-cinematic .liggo-page .le-cap {
    transition: border-color .35s var(--lm-ease), background-color .35s;
  }
  .lg-cinematic .liggo-page .le-cap:hover { border-color: #3e7187; background-color: #0d1c2a; }
  .lg-cinematic .liggo-page .link-arrow svg { transition: transform .35s var(--lm-ease); }
  .lg-cinematic .liggo-page .link-arrow:hover svg { transform: translateX(5px); }
}
@media (max-width: 1023px) {
  .lg-cinematic .liggo-page .lg-ambient::after { opacity: .45; height: 80px; top: -40px; }
}
@media (prefers-reduced-motion: reduce) {
  .js .liggo-page .lg-motion-owned.rv,
  .js .liggo-page .lg-motion-owned[data-split] .wi {
    opacity: 1 !important; transform: none !important;
  }
  .lg-cinematic .liggo-page .lg-ambient::after { opacity: .6; }
}
