.stage-slot{opacity:0;filter:blur(6px);transition:opacity .6s var(--ease-out), filter .6s var(--ease-out)}.stage-slot[data-active]{opacity:1;filter:none}.tab-progress{transform-origin:0;transform:scaleX(0)}.tab-progress[data-state=playing]{animation:tab-fill var(--dur,7s) linear forwards}.tab-progress[data-state=done]{transform:scaleX(1)}.stage[data-paused] .tab-progress[data-state=playing]{animation-play-state:paused}@keyframes tab-fill{to{transform:scaleX(1)}}.stage-slot[data-active] .pop{animation:pop-in .7s var(--ease-out) both;animation-delay:var(--at,0s)}@keyframes pop-in{0%{opacity:0;filter:blur(4px);transform:translateY(14px)scale(.96)}}.lw-after{clip-path:inset(0)}.stage-slot[data-active] .lw-after{animation:lw-reveal 2.6s var(--ease-in-out) .5s both}@keyframes lw-reveal{0%{clip-path:inset(0 100% 0 0)}}.lw-cloth{opacity:0;left:100%}.stage-slot[data-active] .lw-cloth{animation:lw-cloth 2.6s var(--ease-in-out) .5s both}@keyframes lw-cloth{0%{opacity:1;left:0%}90%{opacity:1}to{opacity:0;left:100%}}.route-line{stroke-dasharray:1;stroke-dashoffset:0}.stage-slot[data-active] .route-line{animation:route-draw 2.4s var(--ease-in-out) .3s both}@keyframes route-draw{0%{stroke-dashoffset:1px}}.route-ping{transform-box:fill-box;transform-origin:50%;animation:ping 2.2s var(--ease-out) infinite}@keyframes ping{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(3.2)}}.pay-fill{transform-origin:0;transform:scaleX(1)}.stage-slot[data-active] .pay-fill{animation:pay-fill 1.4s var(--ease-in-out) 1.6s both}@keyframes pay-fill{0%{transform:scaleX(0)}}.pay-label-send{opacity:0;filter:blur(4px)}.pay-label-sent{opacity:1}.stage-slot[data-active] .pay-label-send{animation:label-out .4s var(--ease-out) 1.5s both}.stage-slot[data-active] .pay-label-sent{animation:label-in .4s var(--ease-out) 3s both}.stage-slot[data-active] .pay-button{animation:press .26s var(--ease-out) 1.35s both}@keyframes label-out{0%{opacity:1;filter:none}}@keyframes label-in{0%{opacity:0;filter:blur(4px);transform:translateY(4px)}}@keyframes press{50%{transform:scale(.96)}}.loop-spin{transform-box:view-box;transform-origin:50%;animation:6s linear infinite spin}.loop-node{animation:6s linear infinite node-on;animation-delay:calc(var(--i) * 1s - 6s)}@keyframes node-on{0%,14%{fill:var(--accent);r:9px}18%,to{fill:color-mix(in oklab, var(--accent) 25%, transparent);r:6px}}.loop-word{animation:word-cycle 6s var(--ease-out) infinite;animation-delay:calc(var(--i) * 1s - 6s)}@keyframes word-cycle{0%,14%{opacity:1;filter:none;transform:none}17%,to{opacity:0;filter:blur(4px);transform:translateY(-8px)}}@keyframes spin{to{transform:rotate(360deg)}}.stage-slot[data-active] .deal{animation:deal .9s var(--ease-drawer) both;animation-delay:var(--at,0s)}@keyframes deal{0%{opacity:0;transform:translateY(40%)rotate(0)scale(.9)}}.drift{animation:drift 9s var(--ease-in-out) infinite alternate}@keyframes drift{to{transform:scale(1.06)}}.marquee{-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-track{animation:48s linear infinite marquee}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}[data-js] .draw :is(path,line,circle,rect,polyline,polygon,ellipse){stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.1s var(--ease-in-out);transition-delay:var(--d,0s)}[data-js] .draw[data-drawn] :is(path,line,circle,rect,polyline,polygon,ellipse){stroke-dashoffset:0}@media (hover:hover) and (pointer:fine){.group:hover .draw[data-drawn] :is(path,line,circle,rect,polyline,polygon,ellipse){animation:redraw .8s var(--ease-in-out)}}@keyframes redraw{0%{stroke-dashoffset:1px}}.story-fill{transform-origin:50% 0;transform:scaleY(1)}.story-node{background:var(--accent);box-shadow:0 0 0 6px color-mix(in oklab, var(--accent) 22%, transparent)}@supports (animation-timeline:view()){.story-fill{animation:linear both story-fill;animation-timeline:--story;animation-range:entry 40% exit 60%}.story-list{view-timeline:--story block}.story-step{animation:linear both story-step;animation-timeline:view();animation-range:cover 30% cover 45%}.story-step .story-node{animation:linear both story-node;animation-timeline:view();animation-range:cover 30% cover 45%}}@keyframes story-fill{0%{transform:scaleY(0)}}@keyframes story-step{0%{opacity:.35}}@keyframes story-node{0%{background:color-mix(in oklab, var(--on-brand) 15%, transparent);box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.stage-slot,.stage-slot *{animation:none!important}.marquee-track,.route-ping,.drift{animation:none}[data-js] .draw :is(path,line,circle,rect,polyline,polygon,ellipse){stroke-dashoffset:0;transition:none}.story-fill,.story-step,.story-step .story-node,.loop-spin,.loop-node,.loop-word{animation:none}.loop-word:not(:first-child){opacity:0}.tab-progress[data-state=playing]{animation:none;transform:scaleX(1)}}
