  /* ---------- Hero: planta se desenrolando e scanner passando ---------- */
  @keyframes unroll-sheet{
    0%{ transform: scaleX(0); opacity:0; }
    20%{ opacity:1; }
    55%{ transform: scaleX(1); opacity:1; }
    90%{ transform: scaleX(1); opacity:1; }
    100%{ transform: scaleX(0); opacity:0; }
  }
  .unroll-sheet{ animation: unroll-sheet 4.4s ease-in-out infinite; transform-origin:left center; }

  @keyframes scan-beam-plant{
    0%, 20%{ transform: translateX(0); opacity:0; }
    28%{ opacity:1; }
    85%{ transform: translateX(178px); opacity:1; }
    95%{ opacity:0; }
    100%{ transform: translateX(178px); opacity:0; }
  }
  .scan-beam-plant{ animation: scan-beam-plant 4.4s ease-in-out infinite; }

  @keyframes roll-pulse{
    0%, 100%{ transform: scale(1); }
    50%{ transform: scale(1.04); }
  }
  .roll-pulse{ animation: roll-pulse 4.4s 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; }

  /* ---------- Acesso remoto: sinal piscando ---------- */
  @keyframes signal-blink{
    0%, 100%{ opacity:1; }
    50%{ opacity:.4; }
  }
  .signal-blink{ animation: signal-blink 1.8s ease-in-out infinite; }

  @keyframes data-link-move{
    0%{ stroke-dashoffset: 24; }
    100%{ stroke-dashoffset: 0; }
  }
  .data-link{ stroke-dasharray: 6 6; animation: data-link-move 1.2s linear infinite; }
