/* Two deliberately different product stories: paper craft and connected finance.
   The host advances data-phase 0–3; no controls, libraries, or SVG SMIL required. */
.pv-bidding .pv-bf-svg,.pv-finance .pv-bf-svg{display:block;width:100%;height:100%;overflow:hidden}
.pv-bidding{background:#f8f3e9}.pv-finance{background:#092740}
.pv-bf-svg text{font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;font-weight:500}
.pv-bid-label{font-size:24px;fill:#254367;letter-spacing:.5px}
.pv-bidding .pv-bf-caption{font-size:27px;fill:#264466;letter-spacing:2px}
.pv-fin-label{font-size:24px;fill:#d3f4ef;letter-spacing:.5px}.pv-fin-service-label{font-size:26px;fill:#d8fff2;letter-spacing:1px}
.pv-finance .pv-bf-caption{font-size:27px;fill:#bcece4;letter-spacing:1px}
.pv-bidding .pv-bf-caption,.pv-finance .pv-bf-caption{opacity:0;transition:opacity .55s ease;pointer-events:none}
.pv-bidding .pv-bf-caption-0,.pv-finance .pv-bf-caption-0{opacity:1}
.pv-bidding[data-phase="1"] .pv-bf-caption-0,.pv-bidding[data-phase="2"] .pv-bf-caption-0,.pv-bidding[data-phase="3"] .pv-bf-caption-0,.pv-finance[data-phase="1"] .pv-bf-caption-0,.pv-finance[data-phase="2"] .pv-bf-caption-0,.pv-finance[data-phase="3"] .pv-bf-caption-0{opacity:0}
.pv-bidding[data-phase="1"] .pv-bf-caption-1,.pv-bidding[data-phase="2"] .pv-bf-caption-2,.pv-bidding[data-phase="3"] .pv-bf-caption-3,.pv-finance[data-phase="1"] .pv-bf-caption-1,.pv-finance[data-phase="2"] .pv-bf-caption-2,.pv-finance[data-phase="3"] .pv-bf-caption-3{opacity:1}

/* A tangible paper workflow, each stage moving the authored document forward. */
.pv-bid-source,.pv-bid-result{transition:transform .85s cubic-bezier(.22,.61,.36,1)}
.pv-bid-scan{opacity:0;transition:opacity .35s ease;animation:pv-bid-scan 2.4s ease-in-out infinite}
.pv-bidding[data-phase="0"] .pv-bid-scan{opacity:1}.pv-bidding[data-phase="0"] .pv-bid-source{transform:translateY(-4px)}
.pv-bid-source-highlights{transition:opacity .5s ease}.pv-bidding[data-phase="0"] .pv-bid-source-highlights{animation:pv-bid-attention 2.5s ease-in-out infinite}
.pv-bid-transfer{opacity:0;transition:opacity .45s ease;animation:pv-bid-transfer 1.5s linear infinite}
.pv-bidding[data-phase="1"] .pv-bid-transfer,.pv-bidding[data-phase="2"] .pv-bid-transfer{opacity:.75}
.pv-bid-outline-box{transition:fill .5s,stroke .5s}.pv-bidding[data-phase="1"] .pv-bid-outline-box{fill:#eaf2ff;stroke:#1769ef}
.pv-bid-outline-row{transition:opacity .5s ease,transform .6s ease;opacity:.85;transform-origin:left center;transform-box:fill-box}
.pv-bidding[data-phase="0"] .pv-bid-outline-row{opacity:.4}
.pv-bidding[data-phase="1"] .pv-bid-outline-row{animation:pv-bid-outline .7s ease both}.pv-bidding[data-phase="1"] .pv-bid-row-2{animation-delay:.16s}.pv-bidding[data-phase="1"] .pv-bid-row-3{animation-delay:.32s}.pv-bidding[data-phase="1"] .pv-bid-row-4{animation-delay:.48s}
.pv-bid-paragraph{opacity:1;transition:opacity .7s ease;transform-origin:left center;transform-box:fill-box}
.pv-bidding[data-phase="0"] .pv-bid-paragraph,.pv-bidding[data-phase="1"] .pv-bid-paragraph{opacity:.25}
.pv-bidding[data-phase="2"] .pv-bid-paragraph{animation:pv-bid-writing 1s cubic-bezier(.22,.61,.36,1) both}.pv-bidding[data-phase="2"] .pv-bid-paragraph-2{animation-delay:.35s}.pv-bidding[data-phase="2"] .pv-bid-paragraph-3{animation-delay:.7s}
.pv-bidding[data-phase="2"] .pv-bid-result,.pv-bidding[data-phase="3"] .pv-bid-result{transform:translateY(-3px)}
.pv-bid-verified{opacity:0;transition:opacity .5s ease}.pv-bidding[data-phase="3"] .pv-bid-verified{opacity:1}
.pv-bid-check{stroke-dasharray:46;stroke-dashoffset:0}.pv-bidding[data-phase="3"] .pv-bid-check{animation:pv-bid-check .7s .15s ease both}
.pv-bid-check-aura{transform-box:fill-box;transform-origin:center}.pv-bidding[data-phase="3"] .pv-bid-check-aura{animation:pv-bid-aura 2.4s ease-in-out infinite}
@keyframes pv-bid-scan{0%,100%{transform:translateY(0)}65%{transform:translateY(150px)}}
@keyframes pv-bid-attention{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes pv-bid-transfer{to{stroke-dashoffset:-145}}
@keyframes pv-bid-outline{from{opacity:0;transform:translateX(-5px)}to{opacity:1;transform:translateX(0)}}
@keyframes pv-bid-writing{from{opacity:.1;transform:scaleX(.25)}to{opacity:1;transform:scaleX(1)}}
@keyframes pv-bid-check{from{stroke-dashoffset:46}to{stroke-dashoffset:0}}
@keyframes pv-bid-aura{0%,100%{transform:scale(.88);opacity:.4}50%{transform:scale(1.12);opacity:1}}

/* Recognizable enterprise, demand and bank nodes form a concrete service chain. */
.pv-fin-route{stroke:#457589;stroke-width:1.7;opacity:.62;transition:stroke .6s,opacity .6s}
.pv-fin-pulse{stroke:#7af4da;stroke-width:3;stroke-dasharray:15 265;stroke-dashoffset:280;opacity:0;transition:opacity .5s;animation:pv-fin-signal 2.5s linear infinite}
.pv-fin-pulse-project{animation-delay:.7s}.pv-fin-pulse-match{stroke-dasharray:16 284;animation-duration:2s}
.pv-fin-pulse-return{stroke-dasharray:18 732;stroke-dashoffset:750;animation-name:pv-fin-tracking;animation-duration:3s}
.pv-fin-windows{transition:stroke .8s}.pv-fin-signal-panel,.pv-fin-demand-diamond,.pv-fin-service-panel{transition:stroke .7s,fill .7s,stroke-width .7s}
.pv-fin-signal-bars rect{transform-box:fill-box;transform-origin:center bottom;transition:fill .6s}
.pv-finance[data-phase="0"] .pv-fin-windows{stroke:#81e8d4}.pv-finance[data-phase="0"] .pv-fin-route-business,.pv-finance[data-phase="0"] .pv-fin-route-project{stroke:#79d6c9;opacity:.95}
.pv-finance[data-phase="0"] .pv-fin-pulse-business,.pv-finance[data-phase="0"] .pv-fin-pulse-project{opacity:1}
.pv-finance[data-phase="0"] .pv-fin-signal-bars rect{animation:pv-fin-bars 1.7s ease-in-out infinite}.pv-finance[data-phase="0"] .pv-fin-signal-bars rect:nth-child(2){animation-delay:.2s}.pv-finance[data-phase="0"] .pv-fin-signal-bars rect:nth-child(3){animation-delay:.4s}.pv-finance[data-phase="0"] .pv-fin-signal-bars rect:nth-child(4){animation-delay:.6s}
.pv-finance[data-phase="1"] .pv-fin-demand-diamond{fill:#1b5c68;stroke:#91ffe2;stroke-width:2.5}.pv-finance[data-phase="1"] .pv-fin-route-project,.pv-finance[data-phase="1"] .pv-fin-route-demand{stroke:#71e4cd;opacity:1}.pv-finance[data-phase="1"] .pv-fin-pulse-project{opacity:1}
.pv-finance[data-phase="2"] .pv-fin-service-panel{stroke:#7ef2d7;stroke-width:2;fill:#175a65}.pv-finance[data-phase="2"] .pv-fin-route-demand,.pv-finance[data-phase="2"] .pv-fin-route-match{stroke:#8fead8;opacity:1}.pv-finance[data-phase="2"] .pv-fin-pulse-match{opacity:1}
.pv-fin-match{opacity:0;transition:opacity .55s}.pv-finance[data-phase="2"] .pv-fin-match,.pv-finance[data-phase="3"] .pv-fin-match{opacity:1}
.pv-fin-match-glow{transform-box:fill-box;transform-origin:center}.pv-finance[data-phase="2"] .pv-fin-match-glow{animation:pv-fin-match 2s ease-in-out infinite}
.pv-fin-tracking{opacity:.35;transition:opacity .7s}.pv-finance[data-phase="3"] .pv-fin-route-return{stroke:#6edfc9;opacity:1}.pv-finance[data-phase="3"] .pv-fin-pulse-return{opacity:1}.pv-finance[data-phase="3"] .pv-fin-tracking{opacity:1}
@keyframes pv-fin-signal{to{stroke-dashoffset:0}}
@keyframes pv-fin-tracking{to{stroke-dashoffset:0}}
@keyframes pv-fin-bars{0%,100%{transform:scaleY(.78);fill:#48d4c2}50%{transform:scaleY(1);fill:#9bffe0}}
@keyframes pv-fin-match{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.16)}}

/* The shared host owns lifecycle and respects the operating system preference. */
.pv-bidding[data-running="false"] *,.pv-finance[data-running="false"] *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
 .pv-bidding *,.pv-finance *{animation:none!important;transition:none!important}
 .pv-bid-scan,.pv-bid-transfer,.pv-fin-pulse{display:none}
 .pv-bidding .pv-bid-paragraph,.pv-bidding .pv-bid-outline-row,.pv-bidding .pv-bid-verified,.pv-finance .pv-fin-match{opacity:1!important}
 .pv-bidding .pv-bf-caption,.pv-finance .pv-bf-caption{opacity:0!important}.pv-bidding .pv-bf-caption-3,.pv-finance .pv-bf-caption-3{opacity:1!important}
}
