/* hero-scene.css — ⭐ 原样取自 review/_PROTO-hero-svg.html
   ⛔ 不改几何、⛔ 不改工位名与参数、⛔ 不删 prefers-reduced-motion。
   @keyframes flowmove 留在内联 SVG 自带的 <style> 里（proto 原样），此处不重复定义。 */
.stage{position:relative;margin-top:8px;border:1px solid var(--line);border-radius:12px;
    background:linear-gradient(180deg,var(--surface),transparent 62%);overflow-x:auto}
svg.scene{display:block;width:100%;min-width:980px;height:auto}
.legend{display:flex;gap:18px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.legend b{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}
/* ---- motion ---- */
  .carrier{animation:flowmove 16s linear infinite}
  .flow-dash{stroke-dasharray:14 12;animation:dash 1.6s linear infinite}
  @keyframes dash{to{stroke-dashoffset:-26}}
  .head{animation:headmove 3.4s ease-in-out infinite alternate}
  @keyframes headmove{from{transform:translate(-16px,4px)}to{transform:translate(16px,-4px)}}
  .beam{animation:beam .9s steps(2) infinite}
  @keyframes beam{50%{opacity:.15}}
  .spark{transform-origin:center;animation:spark .9s ease-out infinite}
  @keyframes spark{0%{opacity:.9;r:3}70%{opacity:0;r:11}100%{opacity:0}}
  .jaw{animation:jaw 2.8s ease-in-out infinite}
  @keyframes jaw{0%,100%{transform:translate(0,0)}45%,60%{transform:translate(-22px,10px)}}
  .arm{transform-origin:center;animation:arm 4.2s ease-in-out infinite alternate}
  .hand{transform-origin:center;animation:hand 1.8s ease-in-out infinite alternate}
  @keyframes hand{from{transform:translate(0,0) rotate(0deg)}to{transform:translate(3px,-5px) rotate(-12deg)}}
  @keyframes arm{from{transform:rotate(-7deg)}to{transform:rotate(9deg)}}
  .ekg{stroke-dasharray:46;animation:ekg 2.2s linear infinite}
  @keyframes ekg{from{stroke-dashoffset:46}to{stroke-dashoffset:-46}}
  .ring{opacity:0;transform-origin:center;transform-box:fill-box;animation:ring var(--t,3.6s) ease-out infinite}
  .ring2{animation-delay:calc(var(--t,3.6s) / 2)}
  @keyframes ring{0%{opacity:.75;transform:scale(.5)}70%{opacity:0;transform:scale(2.6)}100%{opacity:0}}
  .tip{opacity:0;pointer-events:none;transition:opacity .18s}
  .hs{cursor:pointer}
  .hs:hover .tip,.hs:focus-within .tip{opacity:1}
  .st{transition:opacity .2s}
  @media (prefers-reduced-motion:reduce){
    .carrier,.flow-dash,.head,.beam,.spark,.jaw,.arm,.ekg,.ring,.hand{animation:none!important}
    .ring{opacity:.35}
  }
