  /* ---------- Hero: ficha do aluno virando registro no sistema ---------- */

  /* Ficha física envelhecida: visível no início do ciclo, depois some */
  @keyframes edu-ficha-cycle{
    0%,28%{ opacity:1; transform:scale(1); }
    42%,100%{ opacity:0; transform:scale(.94); }
  }
  .edu-ficha{ animation: edu-ficha-cycle 6s ease-in-out infinite; transform-origin:230px 150px; }

  /* Feixe de leitura varrendo a ficha, só na fase em que ela está visível */
  @keyframes edu-scan-sweep{
    0%{ transform:translateY(0); opacity:0 }
    4%{ opacity:1 }
    26%{ transform:translateY(96px); opacity:1 }
    30%{ opacity:0 }
    100%{ opacity:0 }
  }
  .edu-scan{ animation: edu-scan-sweep 6s ease-in-out infinite; }

  /* Janela do sistema: aparece depois que a ficha é lida, fica em tela, some no fim do ciclo */
  @keyframes edu-sistema-cycle{
    0%,35%{ opacity:0; transform:scale(.94); }
    50%,88%{ opacity:1; transform:scale(1); }
    100%{ opacity:0; transform:scale(.94); }
  }
  .edu-sistema{ animation: edu-sistema-cycle 6s ease-in-out infinite; transform-origin:230px 150px; }

  @keyframes edu-dot-pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.4 } }
  .edu-status-dot{ animation: edu-dot-pulse 1.8s ease-in-out infinite; }

  /* ---------- 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; }

  /* ---------- Conformidade: selo piscando ---------- */
  @keyframes seal-blink{
    0%, 100%{ opacity:1; }
    50%{ opacity:.45; }
  }
  .seal-blink{ animation: seal-blink 2s ease-in-out infinite; }
