  /* ---------- Hero: scanner ADF industrial ---------- */
  @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 feed-in{ 0%{ transform:translateY(-70px); opacity:0 } 12%{ opacity:1 } 46%{ transform:translateY(0); opacity:1 } 54%{ opacity:0 } 100%{ opacity:0 } }
  .feed-1{ animation:feed-in 1.6s linear infinite; }
  .feed-2{ animation:feed-in 1.6s linear infinite; animation-delay:.53s; }
  .feed-3{ animation:feed-in 1.6s linear infinite; animation-delay:1.06s; }

  @keyframes read-sweep{ 0%,100%{ opacity:.35 } 50%{ opacity:1 } }
  .animate-read{ animation:read-sweep 1s ease-in-out infinite; }

  @keyframes pdf-out{ 0%{ transform:translate(0,0) scale(.7); opacity:0 } 8%{ opacity:1 } 55%{ transform:translate(70px,-60px) scale(1); opacity:1 } 78%{ transform:translate(130px,-118px) scale(.8); opacity:1 } 100%{ transform:translate(150px,-140px) scale(.5); opacity:0 } }
  .pdf-1{ animation:pdf-out 1.6s ease-out infinite; }
  .pdf-2{ animation:pdf-out 1.6s ease-out infinite; animation-delay:.53s; }
  .pdf-3{ animation:pdf-out 1.6s ease-out infinite; animation-delay:1.06s; }

  .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; }
