/* V2 is an isolated, reversible presentation study. No product claims are added. */
.motion-v2 { scrollbar-color: #608ea8 #edf5fa; }
.motion-v2 .hero-product > img {
  z-index: 2;
  mix-blend-mode: normal;
  animation: motion-product-float 6.4s ease-in-out infinite;
  animation-play-state: paused;
  transform: perspective(1100px) rotateX(var(--pointer-ry, 0deg)) rotateY(var(--pointer-rx, 0deg));
  transition: transform 320ms var(--motion-arrive);
}
.motion-v2 .hero-product:hover > img { transform: perspective(1100px) rotateX(var(--pointer-ry, 0deg)) rotateY(var(--pointer-rx, 0deg)); }
.motion-signal-orbit { position: absolute; z-index: 1; width: min(610px, 85%); aspect-ratio: 1; overflow: visible; pointer-events: none; }
.motion-signal-orbit circle { fill: none; stroke: #0878b9; stroke-width: 1.8; stroke-linecap: round; }
.motion-signal-orbit .motion-trace-outer { stroke-dasharray: 108 892; animation: motion-signal-trace 12s linear infinite; animation-play-state: paused; }
.motion-signal-orbit .motion-trace-inner { stroke: #d6ad00; stroke-width: 1.5; stroke-dasharray: 52 948; animation: motion-signal-trace 16s linear infinite reverse; animation-play-state: paused; }
.motion-v2 .hero-integration-line path { stroke-dasharray: .17 .12; animation: motion-connector-flow 3s linear infinite; animation-play-state: paused; }
.motion-v2 .home-hero.is-motion-visible .hero-product > img,
.motion-v2 .home-hero.is-motion-visible .motion-ambient { animation-play-state: running; }

.motion-v2 .home-system-chain { position: relative; isolation: isolate; }
.motion-system-circuit { position: absolute; z-index: 3; inset: -3px; width: calc(100% + 6px); height: calc(100% + 6px); overflow: visible; pointer-events: none; }
.motion-system-circuit rect { fill: none; stroke: #0878b9; stroke-width: 1.5; vector-effect: non-scaling-stroke; stroke-dasharray: 95 905; animation: motion-signal-trace 8s linear infinite; animation-play-state: paused; }
.motion-v2 .home-system-chain.is-motion-visible .motion-ambient { animation-play-state: running; }
.motion-v2 .feature-media > img { translate: var(--pointer-x, 0px) var(--pointer-y, 0px); transition: translate 280ms var(--motion-arrive), transform 280ms var(--motion-arrive); }

/* Shared product-family motion: decorative paths always sit below real imagery. */
.motion-product-surface { position: relative; isolation: isolate; }
.motion-v2 .motion-product-surface > img { position: relative; z-index: 2; mix-blend-mode: normal; }
.motion-product-flow { position: absolute; z-index: 1; left: 50%; top: 50%; width: min(88%, 460px); aspect-ratio: 1; transform: translate(-50%, -50%); overflow: visible; pointer-events: none; }
.motion-product-flow :is(circle, path, rect) { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.motion-product-flow .motion-flow-track { stroke: #b1d4e6; stroke-width: 1; }
.motion-product-flow .motion-flow-primary { stroke: #0878b9; stroke-dasharray: 150 850; animation: motion-signal-trace 11s linear infinite; animation-play-state: paused; }
.motion-product-flow .motion-flow-secondary { stroke: #c29c00; stroke-dasharray: 65 935; animation: motion-signal-trace 15s linear infinite reverse; animation-play-state: paused; }
.motion-product-surface.is-motion-visible > .motion-product-flow .motion-ambient { animation-play-state: running; }
.motion-gallery-main > .motion-product-flow { width: min(94%, 320px); }
.motion-product-flow[data-motion-family="control"] .motion-flow-primary { animation-duration: 12s; }
.motion-v2:has(.motion-lightbox[open]) .motion-product-flow .motion-ambient { animation-play-state: paused !important; }
.motion-v2 .motion-cta { transition: scale 140ms var(--motion-arrive), transform 180ms var(--motion-arrive), background 180ms ease-out, color 180ms ease-out; }
.motion-v2 .motion-cta > :is(svg, span[aria-hidden="true"]) { display: inline-block; transition: translate 180ms var(--motion-arrive); }
html:not([data-motion-reduced="true"]) .motion-v2 .motion-cta:is(:hover, :focus-visible) > :is(svg, span[aria-hidden="true"]) { translate: 5px 0; }
html:not([data-motion-reduced="true"]) .motion-v2 .motion-cta:active { scale: .985; }

.motion-reading-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 10001; background: #0878b9; pointer-events: none; transform: scaleX(var(--reading-progress, 0)); transform-origin: left; }
.motion-v2 .motion-gallery-main { overflow: hidden; }
.motion-v2 .motion-lightbox::backdrop { animation: motion-backdrop-arrive 260ms ease-out both; }
.motion-v2 .submit-button[aria-busy="true"] { gap: 14px; }
.motion-v2 .submit-button[aria-busy="true"]::after { content: ''; width: 16px; height: 16px; flex: none; border: 2px solid #ffffff66; border-top-color: #fff; border-radius: 50%; animation: motion-submit-turn 900ms linear infinite; animation-play-state: paused; }
.motion-v2 .is-motion-visible .submit-button[aria-busy="true"]::after { animation-play-state: running; }

html[data-motion-backgrounded="true"] .motion-v2 *,
html[data-motion-backgrounded="true"] .motion-v2 *::before,
html[data-motion-backgrounded="true"] .motion-v2 *::after { animation-play-state: paused !important; }

@keyframes motion-product-float { 0%, 100% { translate: 0 7px; } 50% { translate: 0 -7px; } }
@keyframes motion-signal-trace { to { stroke-dashoffset: -1000; } }
@keyframes motion-connector-flow { to { stroke-dashoffset: -.58; } }
@keyframes motion-backdrop-arrive { from { background-color: #041a2800; } to { background-color: #041a28c7; } }
@keyframes motion-submit-turn { to { transform: rotate(360deg); } }
@media(max-width:600px) { .motion-signal-orbit { width: 86%; } .motion-signal-orbit circle { stroke-width: 2; } .motion-gallery-main > .motion-product-flow { width: min(92%, 240px); } }
@media(prefers-reduced-motion:reduce) {
  .motion-v2 .hero-product > img, .motion-v2 .motion-ambient, .motion-v2 .submit-button::after, .motion-v2 .motion-lightbox::backdrop { animation: none !important; }
  .motion-v2 .hero-product > img, .motion-v2 .hero-product:hover > img { transform: none; translate: none; }
  .motion-v2 .feature-media > img { translate: none; }
}
