/* =========================
   NANOTEK NODES (CONSISTENT TEMPLATE)
   Neon Teal + Magenta scheme (NANOTEK / NT / PRACTICE)
   - Adds: .selected + .applied + swirling dots (anchored to picture::before)
   - Health/Action/Reaction: match Agent template behavior
   ========================= */

.nanotek-1-tier-1,
.nt-2-tier-2,
.nt-3-tier-3,
.nt-4-tier-3,
.nt-health-tier-3,
.nt-5-tier-4,
.nt-6-tier-4,
.nt-action-tier-5,
.nt-reaction-tier-5,
.nt-7-tier-6,
.nt-8-tier-6,
.nt-9-tier-6,
.nt-sub-tier-7,
.nt-2-minor-node-1,
.nt-2-minor-node-2,
.nt-2-minor-node-3,
.nt-2-minor-node-4,
.nt-2-minor-node-5,
.nt-2-minor-node-6,
.nt-2-minor-node-7,
.nt-2-minor-node-8 {
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

/* =========================
   SIZES (match your other classes)
   ========================= */

/* Big nodes (Tier 1 + Tier 7) */
.nanotek-1-tier-1 img,
.nt-sub-tier-7 img {
  width: 38px;
  height: auto;
}

/* Regular nodes */
.nt-2-tier-2 img,
.nt-3-tier-3 img,
.nt-4-tier-3 img,
.nt-5-tier-4 img,
.nt-6-tier-4 img,
.nt-7-tier-6 img,
.nt-8-tier-6 img,
.nt-9-tier-6 img {
  width: 20px;
  height: auto;
}

/* Minor nodes */
.nt-2-minor-node-1 img,
.nt-2-minor-node-2 img,
.nt-2-minor-node-3 img,
.nt-2-minor-node-4 img,
.nt-2-minor-node-5 img,
.nt-2-minor-node-6 img,
.nt-2-minor-node-7 img,
.nt-2-minor-node-8 img {
  width: 6px;
  height: auto;
}

/* Health / Action / Reaction */
.nt-health-tier-3 img {
  width: 17px;
  height: auto;
}

.nt-action-tier-5 img,
.nt-reaction-tier-5 img {
  width: 22px;
  height: auto;
}

/* =========================
   LABELS (Neon Teal + Magenta)
   ========================= */

.nanotek-label {
  margin-top: -4px;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;

  /* Neon Teal text */
  color: rgba(255, 210, 210, 0.98);
  text-shadow:
    0 0 6px rgba(255, 70, 70, 0.32),
    0 0 10px rgba(255, 70, 190, 0.22);

  white-space: nowrap;
  line-height: 1;
  font-size: 5px;
}

.nanotek-1-tier-1 .nanotek-label,
.nt-sub-tier-7 .nanotek-label {
  font-size: 6px;
}

.nt-2-tier-2 .nanotek-label {
  line-height: 5;
}

/* Health/Act/React labels match your standard */
.nt-health-tier-3 .nanotek-label {
  font-size: 3px;
  margin-top: -3px;
  color: rgba(255, 170, 70, 0.95);
  text-shadow: 0 0 6px rgba(255, 120, 40, 0.55);
}

.nt-action-tier-5 .nanotek-label,
.nt-reaction-tier-5 .nanotek-label {
  font-size: 3px;
  margin-top: -5.5px;
  color: rgba(255, 170, 70, 0.95);
  text-shadow: 0 0 6px rgba(255, 120, 40, 0.55);
}

/* =========================
   Anchor dots to ICON (picture), not wrapper
   + stacking context so dots can sit behind icon without vanishing
   ========================= */

.nanotek-1-tier-1 picture,
.nt-2-tier-2 picture,
.nt-3-tier-3 picture,
.nt-4-tier-3 picture,
.nt-health-tier-3 picture,
.nt-5-tier-4 picture,
.nt-6-tier-4 picture,
.nt-action-tier-5 picture,
.nt-reaction-tier-5 picture,
.nt-7-tier-6 picture,
.nt-8-tier-6 picture,
.nt-9-tier-6 picture,
.nt-sub-tier-7 picture,
.nt-2-minor-node-1 picture,
.nt-2-minor-node-2 picture,
.nt-2-minor-node-3 picture,
.nt-2-minor-node-4 picture,
.nt-2-minor-node-5 picture,
.nt-2-minor-node-6 picture,
.nt-2-minor-node-7 picture,
.nt-2-minor-node-8 picture {
  position: relative;
  display: inline-block;
  z-index: 0;
}

.nanotek-1-tier-1 img,
.nt-2-tier-2 img,
.nt-3-tier-3 img,
.nt-4-tier-3 img,
.nt-health-tier-3 img,
.nt-5-tier-4 img,
.nt-6-tier-4 img,
.nt-action-tier-5 img,
.nt-reaction-tier-5 img,
.nt-7-tier-6 img,
.nt-8-tier-6 img,
.nt-9-tier-6 img,
.nt-sub-tier-7 img,
.nt-2-minor-node-1 img,
.nt-2-minor-node-2 img,
.nt-2-minor-node-3 img,
.nt-2-minor-node-4 img,
.nt-2-minor-node-5 img,
.nt-2-minor-node-6 img,
.nt-2-minor-node-7 img,
.nt-2-minor-node-8 img {
  position: relative;
  z-index: 1;
}

/* =========================
   NORMAL NODES: brightness + hover + selected
   ========================= */

.nt-2-tier-2 img,
.nt-3-tier-3 img,
.nt-4-tier-3 img,
.nt-5-tier-4 img,
.nt-6-tier-4 img,
.nt-7-tier-6 img,
.nt-8-tier-6 img,
.nt-9-tier-6 img,
.nanotek-1-tier-1 img,
.nt-sub-tier-7 img {
  filter: brightness(1.2);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-2-tier-2:hover img,
.nt-3-tier-3:hover img,
.nt-4-tier-3:hover img,
.nt-5-tier-4:hover img,
.nt-6-tier-4:hover img,
.nt-7-tier-6:hover img,
.nt-8-tier-6:hover img,
.nt-9-tier-6:hover img,
.nanotek-1-tier-1:hover img,
.nt-sub-tier-7:hover img {
  filter:
    brightness(1.2)
    drop-shadow(0 0 2px rgba(255, 220, 220, 0.25))  /* core edge */
    drop-shadow(0 0 4px rgba(255, 70, 70, 0.60))    /* hot red */
    drop-shadow(0 0 6px rgba(170, 20, 20, 0.38))    /* deep crimson */
    drop-shadow(0 0 8px rgba(255, 70, 190, 0.40));  /* magenta residue */
}

.nt-2-tier-2.selected img,
.nt-3-tier-3.selected img,
.nt-4-tier-3.selected img,
.nt-5-tier-4.selected img,
.nt-6-tier-4.selected img,
.nt-7-tier-6.selected img,
.nt-8-tier-6.selected img,
.nt-9-tier-6.selected img,
.nanotek-1-tier-1.selected img,
.nt-sub-tier-7.selected img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(255, 220, 220, 0.92))  /* core edge */
    drop-shadow(0 0 4px rgba(255, 70, 70, 0.72))    /* hot red */
    drop-shadow(0 0 8px rgba(170, 20, 20, 0.55))    /* deep crimson */
    drop-shadow(0 0 10px rgba(255, 70, 190, 0.60))  /* magenta residue */
    drop-shadow(0 0 12px rgba(255, 130, 50, 0.22)); /* faint ember */
}

/* =========================
   Health / Reaction / Action (match Agent template)
   ========================= */

/* Health base + hover + selected */
.nt-health-tier-3 img {
  filter: brightness(1.8) contrast(.9);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-health-tier-3:hover img {
  filter:
    brightness(1.0)
    drop-shadow(0 0 2px rgba(255, 80, 80, 0.8))
    drop-shadow(0 0 4px rgba(255, 80, 80, 0.4));
}

.nt-health-tier-3.selected img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(205, 57, 57, 1.0))
    drop-shadow(0 0 4px rgba(143, 8, 8, 0.7))
    drop-shadow(0 0 8px rgba(255, 80, 80, 0.5));
}

/* Reaction + Action base */
.nt-reaction-tier-5 img,
.nt-action-tier-5 img {
  filter: brightness(1.7);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-reaction-tier-5:hover img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(77, 81, 193, 0.8))
    drop-shadow(0 0 4px rgba(74, 69, 230, 0.5));
}

.nt-reaction-tier-5.selected img {
  filter:
    brightness(2.0)
    drop-shadow(0 0 2px rgba(77, 81, 193, 0.9))
    drop-shadow(0 0 4px rgba(74, 69, 230, 0.7))
    drop-shadow(0 0 10px rgba(70, 24, 169, 0.6));
}

.nt-action-tier-5:hover img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(255, 170, 70, 0.8))
    drop-shadow(0 0 4px rgba(255, 170, 70, 0.5));
}

.nt-action-tier-5.selected img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(255, 170, 70, 0.7))
    drop-shadow(0 0 4px rgba(255, 170, 70, 0.5))
    drop-shadow(0 0 8px rgba(255, 170, 70, 0.3));
}

/* =========================
   Minor nodes (bright + hover + selected)
   ========================= */

.nt-2-minor-node-1 img,
.nt-2-minor-node-2 img,
.nt-2-minor-node-3 img,
.nt-2-minor-node-4 img,
.nt-2-minor-node-5 img,
.nt-2-minor-node-6 img,
.nt-2-minor-node-7 img,
.nt-2-minor-node-8 img {
  filter: brightness(1.25);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-2-minor-node-1:hover img,
.nt-2-minor-node-2:hover img,
.nt-2-minor-node-3:hover img,
.nt-2-minor-node-4:hover img,
.nt-2-minor-node-5:hover img,
.nt-2-minor-node-6:hover img,
.nt-2-minor-node-7:hover img,
.nt-2-minor-node-8:hover img {
  filter:
    brightness(1.65)
    drop-shadow(0 0 1px rgba(255, 220, 220, 0.55))  /* core edge */
    drop-shadow(0 0 2px rgba(255, 70, 70, 0.50))    /* hot red */
    drop-shadow(0 0 4px rgba(170, 20, 20, 0.38))    /* deep crimson */
    drop-shadow(0 0 6px rgba(255, 70, 190, 0.35));  /* magenta residue */
}

.nt-2-minor-node-1.selected img,
.nt-2-minor-node-2.selected img,
.nt-2-minor-node-3.selected img,
.nt-2-minor-node-4.selected img,
.nt-2-minor-node-5.selected img,
.nt-2-minor-node-6.selected img,
.nt-2-minor-node-7.selected img,
.nt-2-minor-node-8.selected img {
  filter:
    brightness(1.80)
    drop-shadow(0 0 1px rgba(255, 220, 220, 0.75))  /* core edge */
    drop-shadow(0 0 2px rgba(255, 70, 70, 0.60))    /* hot red */
    drop-shadow(0 0 4px rgba(170, 20, 20, 0.45))    /* deep crimson */
    drop-shadow(0 0 5px rgba(255, 70, 190, 0.45))   /* magenta residue */
    drop-shadow(0 0 6px rgba(255, 130, 50, 0.20));  /* faint ember */
}

/* =========================
   APPLIED STATE (breathing + swirling dots)
   ========================= */

/* Normal Nanotek nodes applied */
.nanotek-1-tier-1.applied img,
.nt-2-tier-2.applied img,
.nt-3-tier-3.applied img,
.nt-4-tier-3.applied img,
.nt-5-tier-4.applied img,
.nt-6-tier-4.applied img,
.nt-7-tier-6.applied img,
.nt-8-tier-6.applied img,
.nt-9-tier-6.applied img,
.nt-sub-tier-7.applied img,
.nt-2-minor-node-1.applied img,
.nt-2-minor-node-2.applied img,
.nt-2-minor-node-3.applied img,
.nt-2-minor-node-4.applied img,
.nt-2-minor-node-5.applied img,
.nt-2-minor-node-6.applied img,
.nt-2-minor-node-7.applied img,
.nt-2-minor-node-8.applied img {
  animation: node-breathe-nanotek 3s ease-in-out infinite;
}

/* Health / React / Act applied (Agent exact animations should exist in agent.css) */
.nt-health-tier-3.applied img { animation: node-breathe-health 3s ease-in-out infinite; }
.nt-reaction-tier-5.applied img { animation: node-breathe-react 3s ease-in-out infinite; }
.nt-action-tier-5.applied img { animation: node-breathe-act 3s ease-in-out infinite; }

/* Swirling two-dot overlay (same exact colors as Agent), anchored to picture::before */
.nanotek-1-tier-1.applied picture::before,
.nt-2-tier-2.applied picture::before,
.nt-3-tier-3.applied picture::before,
.nt-4-tier-3.applied picture::before,
.nt-health-tier-3.applied picture::before,
.nt-5-tier-4.applied picture::before,
.nt-6-tier-4.applied picture::before,
.nt-action-tier-5.applied picture::before,
.nt-reaction-tier-5.applied picture::before,
.nt-7-tier-6.applied picture::before,
.nt-8-tier-6.applied picture::before,
.nt-9-tier-6.applied picture::before,
.nt-sub-tier-7.applied picture::before,
.nt-2-minor-node-1.applied picture::before,
.nt-2-minor-node-2.applied picture::before,
.nt-2-minor-node-3.applied picture::before,
.nt-2-minor-node-4.applied picture::before,
.nt-2-minor-node-5.applied picture::before,
.nt-2-minor-node-6.applied picture::before,
.nt-2-minor-node-7.applied picture::before,
.nt-2-minor-node-8.applied picture::before {
  content: '';
  position: absolute;
  inset: -32%;
  background:
    radial-gradient(circle at 80% 50%, rgba(255, 70, 70, 0.90) 1px, transparent 1px),
    radial-gradient(circle at 20% 50%, rgba(255, 70, 190, 0.90) 1px, transparent 1px);
  background-size: 100% 100%;
  animation: two-dot-rotate 3s linear infinite;
  pointer-events: none;
  z-index: 0;
  border-radius: 50%;
}

/* Health+ needs larger radius due to smaller node size */
.nt-health-tier-3.applied picture::before {
  inset: -50%;
}

/* Tier-1 big icon gets a wider orbit so dots are clearly visible */
.nanotek-1-tier-1.applied picture::before {
  inset: -28%;
}

/* =========================
   KEYFRAMES (Nanotek-only)
   Neon Teal + Magenta breathe
   ========================= */

@keyframes node-breathe-nanotek {
  0%, 100% {
    filter:
      brightness(1.20)
      drop-shadow(0 0 1px rgba(255, 220, 220, 0.90))
      drop-shadow(0 0 2px rgba(255, 70, 70, 0.75))
      drop-shadow(0 0 4px rgba(170, 20, 20, 0.55))
      drop-shadow(0 0 6px rgba(255, 70, 190, 0.70))
      drop-shadow(0 0 8px rgba(255, 130, 50, 0.25));
  }
  50% {
    filter:
      brightness(2.2)
      drop-shadow(0 0 2px rgba(255, 220, 220, 0.65))
      drop-shadow(0 0 4px rgba(255, 70, 70, 0.55))
      drop-shadow(0 0 8px rgba(170, 20, 20, 0.35))
      drop-shadow(0 0 10px rgba(255, 70, 190, 0.45))
      drop-shadow(0 0 12px rgba(255, 130, 50, 0.18));
  }
}

@keyframes two-dot-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* =========================
   PLACEMENT
   ========================= */

/* Tier 1 */
.nanotek-1-tier-1 { left: 752px; top: 910px; }

/* Tier 2 */
.nt-2-tier-2 { left: 717px; top: 933px; }

.nt-2-minor-node-1 { left: 709px; top: 929px; }
.nt-2-minor-node-2 { left: 714px; top: 918px; }
.nt-2-minor-node-3 { left: 723px; top: 913px; }
.nt-2-minor-node-4 { left: 733px; top: 915px; }
.nt-2-minor-node-5 { left: 712px; top: 939px; }
.nt-2-minor-node-6 { left: 722px; top: 943px; }
.nt-2-minor-node-7 { left: 731px; top: 942px; }
.nt-2-minor-node-8 { left: 738px; top: 937px; }

/* Tier 3 */
.nt-3-tier-3      { left: 679px; top: 910px; }
.nt-4-tier-3      { left: 680px; top: 947px; }
.nt-health-tier-3 { left: 695px; top: 978px; }

/* Tier 4 */
.nt-5-tier-4 { left: 643px; top: 930px; }
.nt-6-tier-4 { left: 650px; top: 970px; }

/* Tier 5 */
.nt-action-tier-5   { left: 605px; top: 924px; }
.nt-reaction-tier-5 { left: 622px; top: 993px; }

/* Tier 6 */
.nt-7-tier-6 { left: 569px; top: 916px; }
.nt-8-tier-6 { left: 578px; top: 970px; }
.nt-9-tier-6 { left: 595px; top: 1019px; }

/* Tier 7 */
.nt-sub-tier-7 { left: 527px; top: 971px; }

/* ============================================================
   PREMIUM NANOTEK NODES
   ============================================================ */

.nt-10-tier-8,
.nt-health-tier-8,
.nt-11-tier-8,
.nt-12-tier-12,
.nt-reaction-tier-10,
.nt-action-tier-10
{
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.nt-10-tier-8 img,
.nt-11-tier-8 img,
.nt-12-tier-12 img {
  width: 20px;
  height: auto;
}

.nt-health-tier-8 img {
  width: 17px;
  aspect-ratio: 1 / 1;
}

.nt-health-tier-8 .nanotek-label {
  font-size: 3px;
  margin-top: -3px;
  color: rgba(255, 170, 70, 0.95);
  text-shadow: 0 0 6px rgba(255, 120, 40, 0.55);
}

/* NT 12 minor nodes */
.nt-12-minor-node-1,
.nt-12-minor-node-2,
.nt-12-minor-node-3,
.nt-12-minor-node-4 {
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.nt-12-minor-node-1 img,
.nt-12-minor-node-2 img,
.nt-12-minor-node-3 img,
.nt-12-minor-node-4 img {
  width: 6px;
  height: auto;
}

/* Premium utility node sizes */
.nt-action-tier-10 img,
.nt-reaction-tier-10 img {
  width: 22px;
  height: auto;
}

.nt-12-tier-12 .nanotek-label {
  margin-top: 8px;
}

/* Premium utility labels */
.nt-action-tier-10 .nanotek-label,
.nt-reaction-tier-10 .nanotek-label {
  font-size: 3px;
  margin-top: -5.5px;
  color: rgba(255, 170, 70, 0.95);
  text-shadow: 0 0 6px rgba(255, 120, 40, 0.55);
}

/* =========================
   PLACEMENT: NT 10-12 & premium utility
   ========================= */

.nt-10-tier-8        { left: 487px;  top: 968px; }
.nt-health-tier-8    { left: 492px;  top: 992px; }
.nt-11-tier-8        { left: 497px;  top: 1015px; }

.nt-reaction-tier-10 { left: 420px;  top: 992px; }
.nt-action-tier-10   { left: 428px;  top: 1018px; }

.nt-12-tier-12       { left: 354px;  top: 1024px; }
.nt-12-minor-node-1  { left: 348px;  top: 1005px; }
.nt-12-minor-node-2  { left: 366px;  top: 1000px; }
.nt-12-minor-node-3  { left: 357px;  top: 1035px; }
.nt-12-minor-node-4  { left: 374px;  top: 1033px; }

/* =========================
   NT 10-12 VISUAL EMPHASIS
   ========================= */

.nt-10-tier-8 img,
.nt-11-tier-8 img,
.nt-12-tier-12 img {
  filter: brightness(1.2);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-10-tier-8:hover img,
.nt-11-tier-8:hover img,
.nt-12-tier-12:hover img {
  filter:
    brightness(1.3)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.nt-10-tier-8.selected img,
.nt-11-tier-8.selected img,
.nt-12-tier-12.selected img {
  filter:
    brightness(1.4)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* NT 12 minor emphasis */
.nt-12-minor-node-1 img,
.nt-12-minor-node-2 img,
.nt-12-minor-node-3 img,
.nt-12-minor-node-4 img {
  filter: brightness(1.3);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-12-minor-node-1:hover img,
.nt-12-minor-node-2:hover img,
.nt-12-minor-node-3:hover img,
.nt-12-minor-node-4:hover img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.nt-12-minor-node-1.selected img,
.nt-12-minor-node-2.selected img,
.nt-12-minor-node-3.selected img,
.nt-12-minor-node-4.selected img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* Premium ACT+ emphasis */
.nt-action-tier-10 img {
  filter: brightness(1.1);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-action-tier-10:hover img {
  filter:
    brightness(1.3)
    drop-shadow(0 0 2px rgba(255, 170, 70, 0.8))
    drop-shadow(0 0 4px rgba(255, 170, 70, 0.5));
}

.nt-action-tier-10.selected img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(255, 170, 70, 0.7))
    drop-shadow(0 0 4px rgba(255, 170, 70, 0.5))
    drop-shadow(0 0 8px rgba(255, 170, 70, 0.3));
}

/* Premium REACT+ emphasis */
.nt-reaction-tier-10 img {
  filter: brightness(1.1);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-reaction-tier-10:hover img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(77, 81, 193, 0.8))
    drop-shadow(0 0 4px rgba(74, 69, 230, 0.5));
}

.nt-reaction-tier-10.selected img {
  filter:
    brightness(2.0)
    drop-shadow(0 0 2px rgba(77, 81, 193, 0.9))
    drop-shadow(0 0 4px rgba(74, 69, 230, 0.7))
    drop-shadow(0 0 10px rgba(70, 24, 169, 0.6));
}

/* Premium HEALTH+ emphasis */
.nt-health-tier-8 img {
  filter: brightness(1.0) contrast(.9);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.nt-health-tier-8:hover img {
  filter:
    brightness(1.3)
    drop-shadow(0 0 2px rgba(255, 80, 80, 0.6))
    drop-shadow(0 0 4px rgba(255, 80, 80, 0.4));
}

.nt-health-tier-8.selected img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(205, 57, 57, 1.0))
    drop-shadow(0 0 4px rgba(143, 8, 8, 0.7))
    drop-shadow(0 0 8px rgba(255, 80, 80, 0.5));
}

/* =========================
   NT PREMIUM APPLIED STATE
   ========================= */

.nt-10-tier-8.applied img,
.nt-11-tier-8.applied img,
.nt-12-tier-12.applied img,
.nt-12-minor-node-1.applied img,
.nt-12-minor-node-2.applied img,
.nt-12-minor-node-3.applied img,
.nt-12-minor-node-4.applied img {
  animation: node-breathe-nanotek 3s ease-in-out infinite;
}

.nt-reaction-tier-10.applied img {
  animation: node-breathe-react 3s ease-in-out infinite;
}

.nt-action-tier-10.applied img {
  animation: node-breathe-act 3s ease-in-out infinite;
}

.nt-health-tier-8.applied img {
  animation: node-breathe-health 3s ease-in-out infinite;
}

.nt-10-tier-8.applied::before,
.nt-health-tier-8.applied::before,
.nt-11-tier-8.applied::before,
.nt-12-tier-12.applied::before,
.nt-12-minor-node-1.applied::before,
.nt-12-minor-node-2.applied::before,
.nt-12-minor-node-3.applied::before,
.nt-12-minor-node-4.applied::before,
.nt-action-tier-10.applied::before,
.nt-reaction-tier-10.applied::before
{
  content: '';
  position: absolute;
  inset: -32%;
  background:
    radial-gradient(circle at 80% 50%, rgba(58, 24, 194, 0.9) 1px, transparent 1px),
    radial-gradient(circle at 20% 50%, rgba(68, 43, 213, 0.9) 1px, transparent 1px);
  background-size: 100% 100%;
  animation: two-dot-rotate 3s linear infinite;
  pointer-events: none;
  z-index: -1;
  border-radius: 50%;
}

.nt-health-tier-8.applied::before {
  inset: -50%;
}

/* ============================================================
   CORRUPTOR NODES
   ============================================================ */

.corruptor-1-tier-7,
.cr-2-tier-9,
.cr-3-tier-9,
.cr-4-tier-11,
.cr-5-tier-11,
.cr-6-tier-11
{
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.corruptor-1-tier-7 img {
  width: 30px;
  height: auto;
}

.cr-2-tier-9 img,
.cr-3-tier-9 img,
.cr-4-tier-11 img,
.cr-5-tier-11 img,
.cr-6-tier-11 img {
  width: 22px;
  height: auto;
}

/* CR 3 minor nodes */
.cr-3-minor-node-1,
.cr-3-minor-node-2,
.cr-3-minor-node-3,
.cr-3-minor-node-4 {
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.cr-3-minor-node-1 img,
.cr-3-minor-node-2 img,
.cr-3-minor-node-3 img,
.cr-3-minor-node-4 img {
  width: 6px;
  height: auto;
}

.corruptor-1-tier-7 .nanotek-label {
  font-size: 6px;
}

.cr-3-tier-9 .nanotek-label {
  margin-top: 5px;
  margin-left: 9px;
}

/* =========================
   PLACEMENT: CORRUPTOR
   ========================= */

.corruptor-1-tier-7  { left: 511px;  top: 920px; }
.cr-2-tier-9         { left: 442px;  top: 915px; }
.cr-3-tier-9         { left: 444px;  top: 943px; }
.cr-4-tier-11        { left: 375px;  top: 915px; }
.cr-5-tier-11        { left: 375px;  top: 945px; }
.cr-6-tier-11        { left: 382px;  top: 976px; }

.cr-3-minor-node-1   { left: 444px;  top: 955px; }
.cr-3-minor-node-2   { left: 445px;  top: 967px; }
.cr-3-minor-node-3   { left: 470px;  top: 951px; }
.cr-3-minor-node-4   { left: 470px;  top: 962px; }

/* =========================
   CORRUPTOR VISUAL EMPHASIS
   ========================= */

.corruptor-1-tier-7 img,
.cr-2-tier-9 img,
.cr-3-tier-9 img,
.cr-4-tier-11 img,
.cr-5-tier-11 img,
.cr-6-tier-11 img {
  filter: brightness(1.2);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.corruptor-1-tier-7:hover img,
.cr-2-tier-9:hover img,
.cr-3-tier-9:hover img,
.cr-4-tier-11:hover img,
.cr-5-tier-11:hover img,
.cr-6-tier-11:hover img {
  filter:
    brightness(1.3)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.corruptor-1-tier-7.selected img,
.cr-2-tier-9.selected img,
.cr-3-tier-9.selected img,
.cr-4-tier-11.selected img,
.cr-5-tier-11.selected img,
.cr-6-tier-11.selected img {
  filter:
    brightness(1.4)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* CR 3 minor emphasis */
.cr-3-minor-node-1 img,
.cr-3-minor-node-2 img,
.cr-3-minor-node-3 img,
.cr-3-minor-node-4 img {
  filter: brightness(1.3);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.cr-3-minor-node-1:hover img,
.cr-3-minor-node-2:hover img,
.cr-3-minor-node-3:hover img,
.cr-3-minor-node-4:hover img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.cr-3-minor-node-1.selected img,
.cr-3-minor-node-2.selected img,
.cr-3-minor-node-3.selected img,
.cr-3-minor-node-4.selected img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* =========================
   CORRUPTOR APPLIED STATE
   ========================= */

.corruptor-1-tier-7.applied img,
.cr-2-tier-9.applied img,
.cr-3-tier-9.applied img,
.cr-4-tier-11.applied img,
.cr-5-tier-11.applied img,
.cr-6-tier-11.applied img,
.cr-3-minor-node-1.applied img,
.cr-3-minor-node-2.applied img,
.cr-3-minor-node-3.applied img,
.cr-3-minor-node-4.applied img {
  animation: node-breathe-nanotek 3s ease-in-out infinite;
}

.corruptor-1-tier-7.applied::before,
.cr-2-tier-9.applied::before,
.cr-3-tier-9.applied::before,
.cr-3-minor-node-1.applied::before,
.cr-3-minor-node-2.applied::before,
.cr-3-minor-node-3.applied::before,
.cr-3-minor-node-4.applied::before,
.cr-4-tier-11.applied::before,
.cr-5-tier-11.applied::before,
.cr-6-tier-11.applied::before
{
  content: '';
  position: absolute;
  inset: -32%;
  background:
    radial-gradient(circle at 80% 50%, rgba(58, 24, 194, 0.9) 1px, transparent 1px),
    radial-gradient(circle at 20% 50%, rgba(68, 43, 213, 0.9) 1px, transparent 1px);
  background-size: 100% 100%;
  animation: two-dot-rotate 3s linear infinite;
  pointer-events: none;
  z-index: -1;
  border-radius: 50%;
}

/* ============================================================
   AEGIS NODES
   ============================================================ */

.aegis-1-tier-7,
.ae-2-tier-9,
.ae-3-tier-11
{
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.aegis-1-tier-7 img {
  width: 28px;
  height: auto;
}

.ae-2-tier-9 img,
.ae-3-tier-11 img {
  width: 20px;
  height: auto;
}

/* AE 2 minor nodes */
.ae-2-minor-node-1,
.ae-2-minor-node-2,
.ae-2-minor-node-3,
.ae-2-minor-node-4,
.ae-2-minor-node-5,
.ae-2-minor-node-6,
.ae-2-minor-node-7 {
  position: absolute;
  z-index: 9999;
  pointer-events: none;
  text-align: center;
}

.ae-2-minor-node-1 img,
.ae-2-minor-node-2 img,
.ae-2-minor-node-3 img,
.ae-2-minor-node-4 img,
.ae-2-minor-node-5 img,
.ae-2-minor-node-6 img,
.ae-2-minor-node-7 img {
  width: 6px;
  height: auto;
}

.aegis-1-tier-7 .nanotek-label {
  font-size: 6px;
}

.ae-2-tier-9 .nanotek-label {
  margin-top: 12px;
  margin-left: 12px;
}

/* =========================
   PLACEMENT: AEGIS
   ========================= */

.aegis-1-tier-7      { left: 545px;  top: 1035px; }
.ae-2-tier-9         { left: 480px;  top: 1062px; }
.ae-3-tier-11        { left: 412px;  top: 1082px; }

.ae-2-minor-node-1   { left: 469px;  top: 1047px; }
.ae-2-minor-node-2   { left: 480px;  top: 1038px; }
.ae-2-minor-node-3   { left: 475px;  top: 1026px; }
.ae-2-minor-node-4   { left: 493px;  top: 1039px; }
.ae-2-minor-node-5   { left: 484px;  top: 1077px; }
.ae-2-minor-node-6   { left: 495px;  top: 1077px; }
.ae-2-minor-node-7   { left: 504px;  top: 1070px; }

/* =========================
   AEGIS VISUAL EMPHASIS
   ========================= */

.aegis-1-tier-7 img,
.ae-2-tier-9 img,
.ae-3-tier-11 img {
  filter: brightness(1.2);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.aegis-1-tier-7:hover img,
.ae-2-tier-9:hover img,
.ae-3-tier-11:hover img {
  filter:
    brightness(1.3)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.aegis-1-tier-7.selected img,
.ae-2-tier-9.selected img,
.ae-3-tier-11.selected img {
  filter:
    brightness(1.4)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* AE 2 minor emphasis */
.ae-2-minor-node-1 img,
.ae-2-minor-node-2 img,
.ae-2-minor-node-3 img,
.ae-2-minor-node-4 img,
.ae-2-minor-node-5 img,
.ae-2-minor-node-6 img,
.ae-2-minor-node-7 img {
  filter: brightness(1.3);
  transition: none;
  pointer-events: auto;
  cursor: pointer;
}

.ae-2-minor-node-1:hover img,
.ae-2-minor-node-2:hover img,
.ae-2-minor-node-3:hover img,
.ae-2-minor-node-4:hover img,
.ae-2-minor-node-5:hover img,
.ae-2-minor-node-6:hover img,
.ae-2-minor-node-7:hover img {
  filter:
    brightness(1.5)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.85))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.45));
}

.ae-2-minor-node-1.selected img,
.ae-2-minor-node-2.selected img,
.ae-2-minor-node-3.selected img,
.ae-2-minor-node-4.selected img,
.ae-2-minor-node-5.selected img,
.ae-2-minor-node-6.selected img,
.ae-2-minor-node-7.selected img {
  filter:
    brightness(1.7)
    drop-shadow(0 0 2px rgba(40, 160, 255, 0.95))
    drop-shadow(0 0 4px rgba(80, 200, 255, 0.70))
    drop-shadow(0 0 8px rgba(140, 230, 255, 0.50));
}

/* =========================
   AEGIS APPLIED STATE
   ========================= */

.aegis-1-tier-7.applied img,
.ae-2-tier-9.applied img,
.ae-3-tier-11.applied img,
.ae-2-minor-node-1.applied img,
.ae-2-minor-node-2.applied img,
.ae-2-minor-node-3.applied img,
.ae-2-minor-node-4.applied img,
.ae-2-minor-node-5.applied img,
.ae-2-minor-node-6.applied img,
.ae-2-minor-node-7.applied img {
  animation: node-breathe-nanotek 3s ease-in-out infinite;
}

.aegis-1-tier-7.applied::before,
.ae-2-tier-9.applied::before,
.ae-2-minor-node-1.applied::before,
.ae-2-minor-node-2.applied::before,
.ae-2-minor-node-3.applied::before,
.ae-2-minor-node-4.applied::before,
.ae-2-minor-node-5.applied::before,
.ae-2-minor-node-6.applied::before,
.ae-2-minor-node-7.applied::before,
.ae-3-tier-11.applied::before
{
  content: '';
  position: absolute;
  inset: -32%;
  background:
    radial-gradient(circle at 80% 50%, rgba(58, 24, 194, 0.9) 1px, transparent 1px),
    radial-gradient(circle at 20% 50%, rgba(68, 43, 213, 0.9) 1px, transparent 1px);
  background-size: 100% 100%;
  animation: two-dot-rotate 3s linear infinite;
  pointer-events: none;
  z-index: -1;
  border-radius: 50%;
}
