/* Each original scene has one action and a long hold. No image/video payload. */
.process-visual{background:#edf0e8;contain:paint}
.process-visual>svg{display:block;width:100%;height:100%;overflow:visible;font-family:Albert,Helvetica,sans-serif}
.visual-build{background:#e8ede5}.visual-launch{background:#eeeee5}.visual-support{background:#eeeee7}
.process-art-title{font-size:14px;font-weight:550;fill:#2d3b27;letter-spacing:-.2px}
.process-art-caption{font-size:12px;fill:#59694e}
.process-art-stroke{fill:none;stroke:#526b3d;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.strategy-cursor,.support-typing{opacity:0}
.build-signal{stroke-dasharray:17 100;stroke-dashoffset:0;opacity:0}
.launch-check{stroke-dasharray:1;stroke-dashoffset:0}
.process-visual[data-motion] .strategy-selection{animation:strategy-select 8s ease infinite;transform-box:fill-box;transform-origin:center}
.process-visual[data-motion] .strategy-cursor{animation:strategy-cursor 8s cubic-bezier(.22,1,.36,1) infinite}
.process-visual[data-motion] .strategy-booked{animation:strategy-booked 8s cubic-bezier(.22,1,.36,1) infinite}
.process-visual[data-motion] .build-signal{animation:build-signal 8s linear infinite}
.process-visual[data-motion] .signal-in-two{animation-delay:.5s}
.process-visual[data-motion] .signal-out{animation-delay:1.6s}
.process-visual[data-motion] .build-core-halo{animation:build-core 8s ease infinite;transform-box:fill-box;transform-origin:center}
.process-visual[data-motion] .build-complete{animation:build-complete 8s ease infinite;transform-box:fill-box;transform-origin:center}
.process-visual[data-motion] .launch-check{animation:launch-check 8s ease infinite}
.process-visual[data-motion] .launch-fill{animation:launch-fill 8s ease infinite}
.process-visual[data-motion] .launch-two{animation-delay:.65s}
.process-visual[data-motion] .launch-three{animation-delay:1.3s}
.process-visual[data-motion] .launch-ready{animation:launch-ready 8s cubic-bezier(.22,1,.36,1) infinite}
.process-visual[data-motion] .support-question{animation:support-question 9s cubic-bezier(.22,1,.36,1) infinite}
.process-visual[data-motion] .support-typing{animation:support-typing 9s linear infinite}
.process-visual[data-motion] .support-typing circle{animation:typing-dot .8s ease-in-out infinite}
.process-visual[data-motion] .typing-dot-two{animation-delay:.16s}
.process-visual[data-motion] .typing-dot-three{animation-delay:.32s}
.process-visual[data-motion] .support-answer{animation:support-answer 9s cubic-bezier(.22,1,.36,1) infinite}
.process-visual[data-motion=paused] *{animation-play-state:paused!important}
.process-visual[data-motion=still] *{animation:none!important}
@keyframes strategy-select{0%,15%{opacity:0;transform:scale(.88)}22%,87%{opacity:1;transform:scale(1)}96%,100%{opacity:0;transform:scale(1)}}
@keyframes strategy-cursor{0%,5%{opacity:0;transform:translate(26px,24px)}13%,20%{opacity:1;transform:translate(0,0)}24%{opacity:1;transform:translate(-2px,-2px)}33%,100%{opacity:0;transform:translate(8px,8px)}}
@keyframes strategy-booked{0%,24%{opacity:0;transform:translateY(8px)}36%,87%{opacity:1;transform:translateY(0)}96%,100%{opacity:0;transform:translateY(0)}}
@keyframes build-signal{0%,8%{stroke-dashoffset:117;opacity:0}12%{opacity:1}42%{stroke-dashoffset:-17;opacity:1}47%,100%{stroke-dashoffset:-17;opacity:0}}
@keyframes build-core{0%,18%,82%,100%{opacity:.25;transform:scale(.94)}28%,43%{opacity:.9;transform:scale(1.06)}58%{opacity:.4;transform:scale(1)}}
@keyframes build-complete{0%,36%{opacity:.15;transform:scale(.85)}49%,88%{opacity:1;transform:scale(1)}98%,100%{opacity:.15;transform:scale(.85)}}
@keyframes launch-check{0%,9%{stroke-dashoffset:1}20%,77%{stroke-dashoffset:0;opacity:1}84%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes launch-fill{0%,9%{opacity:0}19%,77%{opacity:1}84%,100%{opacity:0}}
@keyframes launch-ready{0%,39%{opacity:0;transform:translateY(7px)}50%,86%{opacity:1;transform:translateY(0)}96%,100%{opacity:0;transform:translateY(0)}}
@keyframes support-question{0%{opacity:0;transform:translateY(9px)}10%,88%{opacity:1;transform:translateY(0)}98%,100%{opacity:0;transform:translateY(0)}}
@keyframes support-typing{0%,13%{opacity:0}17%,34%{opacity:1}39%,100%{opacity:0}}
@keyframes typing-dot{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-3px)}}
@keyframes support-answer{0%,37%{opacity:0;transform:translateY(7px)}48%,88%{opacity:1;transform:translateY(0)}98%,100%{opacity:0;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.process-visual *{animation:none!important}}
