/* Marketing motion: source -> interpretation -> agreed work. */
.geo-motion{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
.geo-motion .proof-demo{transform:none;border:0;box-shadow:0 22px 56px -28px #32234e38}
.signal-engine{position:relative;background:var(--ink);color:var(--paper);padding:16px 24px 14px;isolation:isolate;overflow:hidden}
.signal-engine svg{display:block;width:100%;height:auto;overflow:visible}
.engine-wire{fill:none;stroke:#a497bd;stroke-width:1;opacity:.45}
.engine-label{fill:var(--paper);font:12px Onest,sans-serif}
.engine-hub{fill:var(--iris);stroke:#bca4ee;stroke-width:1}
.engine-output{fill:var(--lime)}
.engine-title{fill:var(--white);font:600 18px Onest,sans-serif;letter-spacing:1px}
.engine-packet{fill:var(--lime);animation:signal-transfer 3.6s linear infinite;transform-box:fill-box;transform-origin:center;opacity:0}
.engine-packet.p2{animation-delay:1.2s}.engine-packet.p3{animation-delay:2.4s}
.hub-pulse{fill:none;stroke:var(--lime);opacity:.15;animation:hub-breathe 3.6s var(--ease-in-out) infinite;transform-origin:220px 66px}
.engine-caption{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#d9cfea;padding-top:8px}
.engine-caption strong{font-weight:500;color:var(--lime)}
.demo-playback{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 24px 0;font-size:12px;color:var(--muted)}
.demo-playback button{display:flex;align-items:center;gap:7px;min-height:44px;border:0;background:none;padding:6px;color:var(--iris);font-size:13px}
.demo-playback svg{width:15px;height:15px;fill:currentColor}
.demo-playback .play-icon{display:none}.demo-playback button[aria-pressed=true] .play-icon{display:block}.demo-playback button[aria-pressed=true] .pause-icon{display:none}
.demo-clock{height:2px;background:var(--line);overflow:hidden;margin:0 24px}
.demo-clock span{display:block;width:100%;height:100%;background:var(--iris);transform:scaleX(0);transform-origin:left}
.geo-motion .stage{animation:none}
.geo-motion .stage-tabs{position:relative;isolation:isolate}
.geo-motion .stage-tabs button{position:relative;z-index:1;transition:color 160ms ease,background 160ms ease}
.geo-motion .proof-demo[data-step] .stage-tabs button[aria-selected=true]{background:transparent}
.stage-indicator{display:none;position:absolute;inset:4px auto 4px 4px;width:calc((100% - 16px)/3);border-radius:5px;background:var(--iris);z-index:0;transition:transform 250ms var(--ease-in-out);pointer-events:none}
.proof-demo[data-step] .stage-indicator{display:block}
.geo-motion .proof-demo[data-step="1"] .stage-indicator{transform:translateX(calc(100% + 4px))}
.geo-motion .proof-demo[data-step="2"] .stage-indicator{transform:translateX(calc(200% + 8px))}
.engine-packet,.hub-pulse{animation-play-state:paused}
.proof-demo[data-step]:not(.motion-paused) .engine-packet,.proof-demo[data-step]:not(.motion-paused) .hub-pulse{animation-play-state:running}
.geo-motion .button{transition:background 180ms ease,color 180ms ease,transform 160ms var(--ease-out)}
.geo-motion .button>span{transition:transform 200ms var(--ease-out)}
.geo-motion .text-link{transition:color 160ms ease;text-decoration-color:var(--iris)}
.geo-motion .journey-list li{position:relative}
.journey-progress{display:block;height:2px;background:var(--iris);transform:scaleX(0);transform-origin:left;position:absolute;inset:-1px 0 auto;transition:transform 700ms var(--ease-in-out)}
.journey-list li[data-traced] .journey-progress{transform:scaleX(1)}
.geo-motion .journey-list li[data-traced]>span{color:var(--ink);transition:color 200ms ease}
@keyframes signal-transfer{0%{opacity:0;transform:translateX(0)}8%{opacity:1}72%{opacity:1;transform:translateX(135px)}88%,100%{opacity:0;transform:translateX(135px)}}
@keyframes hub-breathe{0%,100%{opacity:.15;transform:scale(.98)}50%{opacity:.6;transform:scale(1.12)}}
@media(hover:hover) and (pointer:fine){.geo-motion .button:hover>span{transform:translate(3px,-3px)}.geo-motion .button:hover{transform:translateY(-2px)}}
.geo-motion .button:active{transform:scale(.98)}
@media(max-width:440px){.signal-engine{padding:14px 16px}.engine-label{font-size:13px}.engine-caption{font-size:11px}.demo-playback{margin-inline:16px}.demo-clock{margin-inline:16px}}
@media(prefers-reduced-motion:reduce){.engine-packet,.hub-pulse{animation:none!important}.engine-packet{opacity:.7}.stage-indicator{transition:none}.geo-motion .button,.geo-motion .button>span{transform:none!important}.journey-progress{transform:scaleX(1);transition:none}}
