/* Visible-only decorative loops. Content is static and visible without JS. */
.px-route-light,.px-route-pulse,.px-orbit-two,.launch-art-search i{animation:none}
.px-route-light{stroke-dasharray:none;stroke-opacity:.55}
.px-route-pulse{opacity:0}

/* Paper, a bound spine and restrained foil detail improve the static cover too. */
.launch-workbook .book{isolation:isolate;overflow:hidden;border-radius:2px 5px 5px 2px;border-left:6px solid #a38246;border-right:5px solid #e5ddc8;background:linear-gradient(115deg,#fffcf3 4%,#f6f0df 65%,#e9e0c8);padding:36px 34px 36px 38px;box-shadow:3px 2px 0 #c8bfa8,7px 5px 0 #f3ead8,8px 6px 0 #b4a98d,15px 16px 0 #d9b65a12,0 24px 65px #0006;transform:rotate(-1.8deg);transform-origin:50% 85%}
.launch-workbook .book:before{content:'';position:absolute;inset:0 auto 0 0;width:12px;background:linear-gradient(90deg,#7a60331f,#fff9 55%,transparent);pointer-events:none}
.launch-workbook .book:after{content:'';position:absolute;inset:-15%;background:linear-gradient(115deg,transparent 35%,#fff7 49%,transparent 60%);opacity:.25;pointer-events:none}
.launch-workbook .book-brand{letter-spacing:-.035em;color:#25251f;margin-bottom:32px}
.launch-workbook .book-line{width:66px;background:linear-gradient(90deg,#8c6a2a,#cfad69);box-shadow:0 1px 0 #fff9}
.launch-workbook .book small{color:#625b48;font-size:12px;line-height:1.75}
.launch-workbook .book-foot{border-top-color:#b9aa86;color:#6a6047;line-height:1.5;gap:18px}
.launch-art-workbook>div{position:relative;isolation:isolate;overflow:hidden;border-left:3px solid #9d7a3d;border-right:2px solid #d2c4a5;background:linear-gradient(115deg,#fffbed,#e8dfc9);box-shadow:2px 2px 0 #c4b896,5px 5px 0 #e9dfc9,7px 7px 0 #c4a45b20}
.launch-art-workbook>div:before{content:'';position:absolute;left:5px;top:0;bottom:0;width:1px;background:#a48d572b;pointer-events:none}
.launch-art-workbook>div:after{content:'';position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 38%,#fff9 50%,transparent 62%);opacity:.2;pointer-events:none}
.launch-art-workbook strong{color:#29291f}
.launch-art-workbook small{color:#786745}
.px-workbook-cover{border-left:4px solid #a38246;background:linear-gradient(115deg,#f5f0e3,#e6deca);box-shadow:3px 3px 0 #c3b99d,7px 8px 0 #d9b65a1c}

/* Instances stay mounted and pause in place instead of restarting offscreen. */
.vf-motion-item,.vf-motion-item *,.vf-motion-item:before,.vf-motion-item:after,.vf-motion-item *:before,.vf-motion-item *:after{animation-play-state:paused!important}
.vf-motion-item.vf-running,.vf-motion-item.vf-running *,.vf-motion-item.vf-running:before,.vf-motion-item.vf-running:after,.vf-motion-item.vf-running *:before,.vf-motion-item.vf-running *:after{animation-play-state:running!important}
.px-signal-map.vf-motion-item .px-route-light{animation:vf-route 4.8s linear infinite}
.px-signal-map.vf-motion-item .px-route-pulse{animation:vf-route-dot 4.8s linear infinite}
.px-signal-map.vf-motion-item .px-signal-step{animation:vf-step 4.8s ease-in-out var(--vf-delay,0s) infinite}
.px-art-growth.vf-motion-item .px-orbit-two{animation:vf-orbit 5.2s ease-in-out infinite}
.px-art-growth.vf-motion-item .px-art-core{animation:vf-core 5.2s ease-in-out infinite}
.px-art-growth.vf-motion-item .px-orbit-three:before{animation:vf-gold-glow 5.2s ease-in-out infinite}
.px-art-automation.vf-motion-item .px-node-lines{animation:vf-connector 4.4s ease-in-out infinite}
.px-art-automation.vf-motion-item .px-node{animation:vf-node 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-art-automation.vf-motion-item .px-art-core{animation:vf-core 4.4s ease-in-out infinite}
.px-art-operations.vf-motion-item .px-layer-one{animation:vf-layer-lower 5.2s ease-in-out infinite}
.px-art-operations.vf-motion-item .px-layer-two{animation:vf-layer-middle 5.2s ease-in-out infinite}
.px-art-operations.vf-motion-item .px-layer-three{animation:vf-layer-upper 5.2s ease-in-out infinite}

.px-case-diagram.vf-motion-item>span,.launch-owned-flow.vf-motion-item>span,.px-capability-flow.vf-motion-item>span,.px-stage-sketch.vf-motion-item .px-mini-flow>span,.px-stage-sketch.vf-motion-item .px-rhythm>span{animation:vf-flow-node 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-case-diagram.vf-motion-item>i,.px-capability-flow.vf-motion-item>i,.px-stage-sketch.vf-motion-item .px-mini-flow>i,.px-stage-sketch.vf-motion-item .px-rhythm>i{animation:vf-arrow 4.4s ease-in-out var(--vf-delay,0s) infinite}
.launch-owned-flow.vf-motion-item>i{animation:vf-down 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-stage-sketch.vf-motion-item .px-brief-row i{transform-origin:left;animation:vf-brief-line 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-stage-sketch.vf-motion-item .px-test-grid>span{animation:vf-check-row 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-stage-sketch.vf-motion-item .px-test-grid b{display:inline-block;animation:vf-check 4.4s ease-in-out var(--vf-delay,0s) infinite}
.px-stage-sketch.vf-motion-item .px-rhythm>i:last-child{animation-name:vf-review}

.launch-art-search.vf-motion-item .launch-search-line{transform-origin:left;animation:vf-search-line 4.2s ease-in-out var(--vf-delay,0s) infinite}
.launch-art-search.vf-motion-item>i{animation:vf-search-arrow 4.2s ease-in-out infinite}
.launch-art-calculator.vf-motion-item i{transform-origin:bottom;animation:vf-bar 4.2s ease-in-out var(--vf-delay,0s) infinite}
.launch-art-workbook.vf-motion-item>div,.px-workbook-cover.vf-motion-item{animation:vf-cover-float 5.4s ease-in-out infinite}
.launch-art-workbook.vf-motion-item>div:after,.launch-workbook .book.vf-motion-item:after{animation:vf-paper-light 5.4s ease-in-out infinite}
.launch-workbook .book.vf-motion-item,.dwntwn-toolkit-visual img.vf-motion-item{animation:vf-cover-float 5.4s ease-in-out infinite}

/* Individual translate/scale properties preserve the original node/cover transforms. */
@keyframes vf-route{from{stroke-dasharray:18 82;stroke-dashoffset:100;stroke-opacity:.9}to{stroke-dasharray:18 82;stroke-dashoffset:-100;stroke-opacity:.9}}
@keyframes vf-route-dot{0%{cy:10px;opacity:0}10%,90%{opacity:.95}100%{cy:290px;opacity:0}}
@keyframes vf-step{0%,100%{box-shadow:none}40%{box-shadow:-5px 0 0 -3px #d3b67599}}
@keyframes vf-orbit{0%,100%{transform:rotate(0);border-color:#b99a524d}50%{transform:rotate(50deg);border-color:#cdb376aa}}
@keyframes vf-core{0%,100%{scale:1;box-shadow:0 0 30px #dfbc721c}50%{scale:1.07;box-shadow:0 0 36px #dfbc7255}}
@keyframes vf-gold-glow{0%,100%{box-shadow:0 0 12px #dfbc72}50%{box-shadow:0 0 20px #f1d993}}
@keyframes vf-connector{0%,100%{border-color:#77684477;filter:none}45%{border-color:#cfb47d;filter:drop-shadow(0 0 4px #d9b65a55)}}
@keyframes vf-node{0%,100%{translate:0 0;box-shadow:none}40%{translate:0 -4px;box-shadow:0 0 0 1px #cfb474aa,0 0 16px #d9b65a30}}
@keyframes vf-flow-node{0%,100%{translate:0 0;box-shadow:none}40%{translate:0 -3px;box-shadow:0 0 0 1px #cfb474aa,0 0 16px #d9b65a30}}
@keyframes vf-layer-lower{0%,100%{translate:0 0}50%{translate:0 10px}}
@keyframes vf-layer-middle{0%,100%{translate:0 0;filter:none}50%{translate:0 -2px;filter:brightness(1.2)}}
@keyframes vf-layer-upper{0%,100%{translate:0 0;filter:none}50%{translate:0 -10px;filter:brightness(1.14)}}
@keyframes vf-arrow{0%,100%{translate:0 0;filter:none}40%{translate:5px 0;filter:drop-shadow(0 0 4px #dfbc7277)}}
@keyframes vf-down{0%,100%{translate:0 0;filter:none}40%{translate:0 5px;filter:drop-shadow(0 0 4px #dfbc7277)}}
@keyframes vf-brief-line{0%,100%{transform:scaleX(1);filter:none}25%{transform:scaleX(.78)}55%{transform:scaleX(1);filter:brightness(1.5)}}
@keyframes vf-check-row{0%,100%{border-color:#4d513a;translate:0 0}40%{border-color:#bca365;translate:0 -2px}}
@keyframes vf-check{0%,100%{transform:scale(1);color:#c9b57a}40%{transform:scale(1.22);color:#edda9e}}
@keyframes vf-review{0%,100%{transform:rotate(0)}40%{transform:rotate(60deg)}}
@keyframes vf-search-line{0%,100%{transform:scaleX(1);translate:0 0;filter:none}25%{transform:scaleX(.85);translate:3px 0}55%{transform:scaleX(1);translate:0 0;filter:brightness(1.4)}}
@keyframes vf-search-arrow{0%,100%{translate:0 0}45%{translate:3px -5px}}
@keyframes vf-bar{0%,100%{transform:scaleY(1);filter:none}25%{transform:scaleY(.78)}55%{transform:scaleY(1);filter:brightness(1.4)}}
@keyframes vf-cover-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes vf-paper-light{0%,100%{transform:translateX(-24%);opacity:.08}50%{transform:translateX(24%);opacity:.35}}

.vf-motion-toggle{position:fixed;right:18px;bottom:max(16px,env(safe-area-inset-bottom));z-index:90;max-width:calc(100vw - 32px);min-height:42px;box-sizing:border-box;padding:10px 15px;border:1px solid #938054;border-radius:6px;background:#121a16f2;color:#eadbb4;font:500 12px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.025em;cursor:pointer;box-shadow:0 5px 20px #0004}
.vf-motion-toggle:hover{background:#222b20;border-color:#c3a46a}.vf-motion-toggle:focus-visible{outline:3px solid #edcf88;outline-offset:4px}.vf-motion-toggle[aria-pressed=true]{background:#25271e}.vf-motion-toggle:disabled{cursor:default;color:#d1c7ac}
@media(max-width:780px){.launch-workbook .book{transform:none;padding:32px 28px 32px 32px}.vf-motion-toggle{right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:40px;padding:9px 12px}}
@media(prefers-reduced-motion:reduce){.vf-motion-item,.vf-motion-item *,.vf-motion-item:before,.vf-motion-item:after,.vf-motion-item *:before,.vf-motion-item *:after,.px-route-light,.px-route-pulse,.px-orbit-two,.launch-art-search i{animation:none!important}.px-route-light{stroke-dasharray:none!important}.px-route-pulse{opacity:0!important}}
@media print{.vf-motion-item,.vf-motion-item *,.vf-motion-item:before,.vf-motion-item:after,.vf-motion-item *:before,.vf-motion-item *:after{animation:none!important}.vf-motion-toggle{display:none}}
