  /* ---------- Hero: caminhão em movimento gerando arquivos na nuvem ---------- */
  @keyframes truck-bounce{
    0%, 100%{ transform: translateY(0); }
    50%{ transform: translateY(-4px); }
  }
  .truck-bounce{ animation: truck-bounce 1.8s ease-in-out infinite; }

  @keyframes wheel-spin{
    0%{ transform: rotate(0deg); }
    100%{ transform: rotate(360deg); }
  }
  .wheel-spin{ animation: wheel-spin 1.2s linear infinite; transform-origin:center; }

  @keyframes motion-line{
    0%{ transform: translateX(0); opacity:.7; }
    100%{ transform: translateX(-18px); opacity:0; }
  }
  .motion-line-1{ animation: motion-line 1s ease-out infinite; }
  .motion-line-2{ animation: motion-line 1s ease-out infinite; animation-delay:.2s; }
  .motion-line-3{ animation: motion-line 1s ease-out infinite; animation-delay:.4s; }

  @keyframes box-launch{
    0%{ transform: translate(0,0) scale(1); opacity:1; }
    35%{ transform: translate(40px,-30px) scale(.9); opacity:1; }
    70%{ transform: translate(110px,-60px) scale(.5); opacity:.4; }
    100%{ transform: translate(110px,-60px) scale(.5); opacity:0; }
  }
  .box-1{ animation: box-launch 2.6s ease-in infinite; animation-delay:0s; }
  .box-2{ animation: box-launch 2.6s ease-in infinite; animation-delay:.7s; }
  .box-3{ animation: box-launch 2.6s ease-in infinite; animation-delay:1.4s; }

  @keyframes cloud-glow-pulse{
    0%, 100%{ opacity:.3; }
    50%{ opacity:.65; }
  }
  .cloud-glow{ animation: cloud-glow-pulse 2.6s ease-in-out infinite; }

  @keyframes cloud-file-appear{
    0%, 30%{ opacity:0; transform: scale(.6); }
    45%{ opacity:1; transform: scale(1.1); }
    55%{ transform: scale(1); }
    85%{ opacity:1; }
    100%{ opacity:0; transform: scale(.6); }
  }
  .cloud-file-1{ animation: cloud-file-appear 2.6s ease-in-out infinite; animation-delay:.5s; transform-origin:center; }
  .cloud-file-2{ animation: cloud-file-appear 2.6s ease-in-out infinite; animation-delay:1.2s; transform-origin:center; }
  .cloud-file-3{ animation: cloud-file-appear 2.6s ease-in-out infinite; animation-delay:1.9s; transform-origin:center; }

  /* ---------- Cards: hover ---------- */
  .doc-card{ transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
  .doc-card:hover{ transform: translateY(-6px); box-shadow: 0 20px 40px -12px rgba(22,35,61,.15); border-color:#0E6B58; }

  /* ---------- Velocidade/OCR: cursor digitando ---------- */
  @keyframes type-caret{
    0%, 100%{ opacity:1; }
    50%{ opacity:0; }
  }
  .type-caret{ animation: type-caret 1s step-end infinite; }

  @keyframes result-appear{
    0%, 45%{ opacity:0; transform: translateY(6px); }
    60%{ opacity:1; transform: translateY(0); }
    92%{ opacity:1; }
    100%{ opacity:0; transform: translateY(6px); }
  }
  .result-appear{ animation: result-appear 3s ease-in-out infinite; }
