  /* ---------- Hero: scanner de grande formato (plotter) ---------- */
  @keyframes softpulse{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(14,107,88,.6) } 50%{ opacity:.45; box-shadow:0 0 0 6px rgba(14,107,88,0) } }
  .animate-softpulse{ animation:softpulse 1.8s ease-in-out infinite; }

  @keyframes unroll-scroll{ 0%,10%{ transform:scaleY(0); opacity:0 } 30%,90%{ transform:scaleY(1); opacity:1 } 100%{ transform:scaleY(0); opacity:0 } }
  .animate-unroll{ animation:unroll-scroll 4.5s ease-in-out infinite; transform-origin:top; }

  @keyframes plot-sweep{ 0%,8%{ transform:translateX(-100%); opacity:0 } 18%{ opacity:1 } 85%{ transform:translateX(100%); opacity:1 } 95%,100%{ opacity:0 } }
  .animate-plot-sweep{ animation:plot-sweep 4.5s ease-in-out infinite; }

  @keyframes tube-glow{ 0%,80%,100%{ filter:drop-shadow(0 0 0 rgba(242,153,74,0)) } 90%{ filter:drop-shadow(0 0 14px rgba(242,153,74,.6)) } }
  .animate-tube{ animation:tube-glow 4.5s ease-in-out infinite; }

  .fade-step{ opacity:0; transform:translateY(6px); transition:opacity .45s ease, transform .45s ease; }
  .fade-step.show{ opacity:1; transform:translateY(0); }

  /* ---------- Jornada do documento: trilho de progresso, toca 1x ao entrar na tela ---------- */
  .jornada-fill{ transition: width 1.8s cubic-bezier(.22,.9,.3,1); }
  .jornada-trilho.is-filled .jornada-fill{ width:100%; }

  @keyframes jornada-badge-pop{
    0%{ transform:scale(1); box-shadow:0 0 0 0 rgba(14,107,88,0); }
    40%{ transform:scale(1.18); box-shadow:0 0 0 6px rgba(14,107,88,.25); }
    100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(14,107,88,0); }
  }
  .jornada-badge.is-active{ animation: jornada-badge-pop .6s ease-out; }
