  /* ---------- Hero: prancheta sendo escaneada ---------- */
  @keyframes clip-scan-move{
    0%, 100%{ transform: translateY(0); opacity:.4; }
    50%{ transform: translateY(148px); opacity:1; }
  }
  .clip-scan{ animation: clip-scan-move 2.8s ease-in-out infinite; }

  @keyframes pulse-line{
    0%{ stroke-dashoffset: 40; }
    100%{ stroke-dashoffset: 0; }
  }
  .pulse-line{ stroke-dasharray: 40; animation: pulse-line 1.8s linear infinite; }

  @keyframes file-check-appear{
    0%, 50%{ opacity:0; transform: scale(.5); }
    65%{ opacity:1; transform: scale(1.15); }
    75%{ transform: scale(1); }
    92%{ opacity:1; }
    100%{ opacity:0; transform: scale(.5); }
  }
  .file-check-appear{ animation: file-check-appear 2.8s ease-in-out infinite; 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; }

  /* ---------- Segurança: ícone piscando ---------- */
  @keyframes secure-blink{
    0%, 100%{ opacity:1; }
    50%{ opacity:.5; }
  }
  .secure-blink{ animation: secure-blink 2s ease-in-out infinite; }
