
/* Animated SVG scenes */
.jv-jhv{display:block;width:100%;height:auto;font-family:Inter,system-ui,sans-serif}
.jvs-row{opacity:0;transform:translateX(-24px);animation:jvsRow .55s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:var(--d,0s)}
.jvs-pop{opacity:0;transform:translateY(14px);animation:jvsRow .5s ease forwards;animation-delay:var(--d,0s)}
.jvs-bar{transform-box:fill-box;transform-origin:left center;transform:scaleX(0);animation:jvsBar .8s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:var(--d,0s)}
.jvs-seg{stroke-dasharray:0 100;animation:jvsSeg .9s ease forwards;animation-delay:var(--d,0s)}
.jvs-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:jvsDraw 1.6s ease forwards;animation-delay:var(--d,.2s)}
.jvs-draw--b{animation-delay:.9s}
.jvs-fade{opacity:0;animation:jvsFade 1s ease .9s forwards}
.jvs-dot{animation:jvsDot 2s ease-in-out 1.8s infinite;transform-box:fill-box;transform-origin:center}
.jvs-pulse,.jvs-pulse-btn{animation:jvsPulse 2.4s ease-in-out 1.6s infinite;transform-box:fill-box;transform-origin:center}
.jvs-scan{animation:jvsScan 5s ease-in-out 1.6s infinite}
.jvs-typed{opacity:0;animation:jvsFade .1s ease .6s forwards}
@keyframes jvsRow{to{opacity:1;transform:none}}
@keyframes jvsBar{to{transform:scaleX(1)}}
@keyframes jvsSeg{to{stroke-dasharray:var(--len,20) 100}}
@keyframes jvsDraw{to{stroke-dashoffset:0}}
@keyframes jvsFade{to{opacity:1}}
@keyframes jvsDot{50%{transform:scale(1.6);opacity:.5}}
@keyframes jvsPulse{50%{transform:scale(1.04)}}
@keyframes jvsScan{0%{transform:translateY(0);opacity:0}15%{opacity:.14}50%{transform:translateY(560px);opacity:.1}100%{transform:translateY(560px);opacity:0}}
@media (prefers-reduced-motion:reduce){.jvs-row,.jvs-pop,.jvs-bar,.jvs-draw,.jvs-fade,.jvs-typed{animation:none;opacity:1;transform:none;stroke-dashoffset:0}.jvs-seg{animation:none;stroke-dasharray:var(--len,20) 100}.jvs-dot,.jvs-pulse,.jvs-pulse-btn,.jvs-scan{animation:none}}
