/* ================================================================
   Living Organism — animated SVG used on slides 1, 4, 6, 12
   ================================================================ */
.organism{position:relative;width:100%;height:100%;display:grid;place-items:center}
.organism svg{width:100%;height:100%;overflow:visible;display:block}

/* center NS pulse */
.org-core-ring{
  fill:none;stroke:#7AAD00;stroke-width:1.4;opacity:.6;
  transform-origin:center;transform-box:fill-box;
  animation:coreRing 2.4s ease-out infinite;
}
.org-core-ring.r2{animation-delay:.8s;opacity:.4}
.org-core-ring.r3{animation-delay:1.6s;opacity:.25}
@keyframes coreRing{
  0%{transform:scale(1);opacity:.5}
  100%{transform:scale(1.9);opacity:0}
}

/* dashed connection lines */
.org-link{
  fill:none;stroke:#BDBDB4;stroke-width:1;
  stroke-dasharray:4 6;
  animation:dash 1.6s linear infinite;
}
.org-link.live{stroke:#7AAD00;opacity:.85}
@keyframes dash{
  to{stroke-dashoffset:-20}
}

/* travelling particles */
.org-particle{fill:#7AAD00}

/* satellite node */
.org-sat circle.dot{fill:#fff;stroke:#0A0A0A;stroke-width:1.2}
.org-sat text.title{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;letter-spacing:-0.4px;fill:#0A0A0A}
.org-sat text.label{font-family:"Geist Mono",monospace;letter-spacing:1.2px;fill:#5A5A55;text-transform:uppercase}

/* LED — uses CSS var --led-speed for asynchronous blinking */
.org-led{
  fill:#7AAD00;
  animation:ledBlink var(--led-speed,1.4s) ease-in-out infinite;
  transform-origin:center;transform-box:fill-box;
}
@keyframes ledBlink{
  0%,100%{opacity:1;r:3}
  50%{opacity:.25;r:2.2}
}
.org-led.slow{animation-duration:2.4s}
.org-led.amber{fill:#C8B400}

/* live counter overlay */
.org-counter{
  position:absolute;top:14px;right:14px;
  display:inline-flex;align-items:center;gap:10px;
  font-family:"Geist Mono",monospace;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;color:#5A5A55;
  background:#fff;border:1px solid #E8E8E3;
  padding:9px 14px;border-radius:999px;
  box-shadow:0 2px 10px rgba(15,15,10,.05);
}
.org-counter .pulse{
  width:8px;height:8px;border-radius:50%;background:#7AAD00;
  box-shadow:0 0 0 4px rgba(122,173,0,.18);
  animation:pulseDot 1.6s ease-in-out infinite;
}
@keyframes pulseDot{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(.7);opacity:.5}
}
.org-counter .val{color:#0A0A0A;font-weight:500}

/* faded variant for Modalidade A diagram */
.org-sat.muted circle.dot{stroke:#D6D6CF}
.org-sat.muted text.title,.org-sat.muted text.label{fill:#BDBDB4}
.org-sat.muted .org-led{display:none}
.org-link.muted{stroke:#E8E8E3;animation:none;stroke-dasharray:2 4}
