/* kgraph.css: */

#kgraph {
	width: 100%;
	height: 100%;
	background-color: inherit;
}

text {
	fill: black;
	font-weight: bold;
	font-size: 20px; /* Standard-Schriftgröße, z.B. für Level 0 */
	pointer-events: none; /* Wichtig: Text kann nicht geklickt werden, Klicks gehen an den Kreis/Link */
}

/* Spezifische Schriftgrößen für Level 1 und Level 2 Texte */
.text-level-0 {
    font-size: 20px; /* Level 0 Text (Root) */
}

.text-level-1 {
    font-size: 18px; /* Schriftgröße für data_1 Texte */
}

.text-level-2 {
    font-size: 12px; /* Schriftgröße für data_2 Texte */
}

/* WICHTIG: Transition für 'r' beibehalten, damit das Starten/Stoppen der Pulsation sanft ist */
.node circle {
	transition: r 0.3s ease-out, filter 0.3s ease-out, stroke 0.3s ease-out, stroke-width 0.3s ease-out;
}

/* Hover-Effekte für Knoten (Neon-Leuchten und Rand) */
.node.hovered circle {
	filter: drop-shadow(0 0 25px #00ffff); /* Neonblaues Leuchten */
	stroke: #00ffff; /* Randfarbe */
	stroke-width: 2.1; /* Dicke des Randes */
}

/* Hover-Effekte für Linien */
.edge {
    transition: stroke 0.3s ease-out, stroke-width 0.3s ease-out, stroke-opacity 0.3s ease-out;
}

.edge.hovered {
    stroke: #00ffff; /* Farbe der verbundenen Linie */
    stroke-width: 1.8; /* Dicke der verbundenen Linie */
    stroke-opacity: 1.0; /* Volle Deckkraft */
	filter: drop-shadow(0 0 25px #00ffff); /* Neonblaues Leuchten */
}

/* Circular Pulse Effect */

@keyframes pulrad-animation-0 {
  0.0% { transform: scale(1.0000); }
  6.67% { transform: scale(1.0203); }
  13.33% { transform: scale(1.0372); }
  20.0% { transform: scale(1.0476); }
  26.67% { transform: scale(1.0497); }
  33.33% { transform: scale(1.0433); }
  40.0% { transform: scale(1.0294); }
  46.67% { transform: scale(1.0104); }
  53.33% { transform: scale(0.9896); }
  60.0% { transform: scale(0.9706); }
  66.67% { transform: scale(0.9567); }
  73.33% { transform: scale(0.9503); }
  80.0% { transform: scale(0.9524); }
  86.67% { transform: scale(0.9628); }
  93.33% { transform: scale(0.9797); }
  100.0% { transform: scale(1.0000); }
}
@keyframes pulrad-animation-1 {
  0.0% { transform: scale(1.0372); }
  6.67% { transform: scale(1.0476); }
  13.33% { transform: scale(1.0497); }
  20.0% { transform: scale(1.0433); }
  26.67% { transform: scale(1.0294); }
  33.33% { transform: scale(1.0104); }
  40.0% { transform: scale(0.9896); }
  46.67% { transform: scale(0.9706); }
  53.33% { transform: scale(0.9567); }
  60.0% { transform: scale(0.9503); }
  66.67% { transform: scale(0.9524); }
  73.33% { transform: scale(0.9628); }
  80.0% { transform: scale(0.9797); }
  86.67% { transform: scale(1.0000); }
  93.33% { transform: scale(1.0203); }
  100.0% { transform: scale(1.0372); }
}
@keyframes pulrad-animation-2 {
  0.0% { transform: scale(1.0497); }
  6.67% { transform: scale(1.0433); }
  13.33% { transform: scale(1.0294); }
  20.0% { transform: scale(1.0104); }
  26.67% { transform: scale(0.9896); }
  33.33% { transform: scale(0.9706); }
  40.0% { transform: scale(0.9567); }
  46.67% { transform: scale(0.9503); }
  53.33% { transform: scale(0.9524); }
  60.0% { transform: scale(0.9628); }
  66.67% { transform: scale(0.9797); }
  73.33% { transform: scale(1.0000); }
  80.0% { transform: scale(1.0203); }
  86.67% { transform: scale(1.0372); }
  93.33% { transform: scale(1.0476); }
  100.0% { transform: scale(1.0497); }
}
@keyframes pulrad-animation-3 {
  0.0% { transform: scale(1.0294); }
  6.67% { transform: scale(1.0104); }
  13.33% { transform: scale(0.9896); }
  20.0% { transform: scale(0.9706); }
  26.67% { transform: scale(0.9567); }
  33.33% { transform: scale(0.9503); }
  40.0% { transform: scale(0.9524); }
  46.67% { transform: scale(0.9628); }
  53.33% { transform: scale(0.9797); }
  60.0% { transform: scale(1.0000); }
  66.67% { transform: scale(1.0203); }
  73.33% { transform: scale(1.0372); }
  80.0% { transform: scale(1.0476); }
  86.67% { transform: scale(1.0497); }
  93.33% { transform: scale(1.0433); }
  100.0% { transform: scale(1.0294); }
}
@keyframes pulrad-animation-4 {
  0.0% { transform: scale(0.9896); }
  6.67% { transform: scale(0.9706); }
  13.33% { transform: scale(0.9567); }
  20.0% { transform: scale(0.9503); }
  26.67% { transform: scale(0.9524); }
  33.33% { transform: scale(0.9628); }
  40.0% { transform: scale(0.9797); }
  46.67% { transform: scale(1.0000); }
  53.33% { transform: scale(1.0203); }
  60.0% { transform: scale(1.0372); }
  66.67% { transform: scale(1.0476); }
  73.33% { transform: scale(1.0497); }
  80.0% { transform: scale(1.0433); }
  86.67% { transform: scale(1.0294); }
  93.33% { transform: scale(1.0104); }
  100.0% { transform: scale(0.9896); }
}
@keyframes pulrad-animation-5 {
  0.0% { transform: scale(0.9567); }
  6.67% { transform: scale(0.9503); }
  13.33% { transform: scale(0.9524); }
  20.0% { transform: scale(0.9628); }
  26.67% { transform: scale(0.9797); }
  33.33% { transform: scale(1.0000); }
  40.0% { transform: scale(1.0203); }
  46.67% { transform: scale(1.0372); }
  53.33% { transform: scale(1.0476); }
  60.0% { transform: scale(1.0497); }
  66.67% { transform: scale(1.0433); }
  73.33% { transform: scale(1.0294); }
  80.0% { transform: scale(1.0104); }
  86.67% { transform: scale(0.9896); }
  93.33% { transform: scale(0.9706); }
  100.0% { transform: scale(0.9567); }
}
@keyframes pulrad-animation-6 {
  0.0% { transform: scale(0.9524); }
  6.67% { transform: scale(0.9628); }
  13.33% { transform: scale(0.9797); }
  20.0% { transform: scale(1.0000); }
  26.67% { transform: scale(1.0203); }
  33.33% { transform: scale(1.0372); }
  40.0% { transform: scale(1.0476); }
  46.67% { transform: scale(1.0497); }
  53.33% { transform: scale(1.0433); }
  60.0% { transform: scale(1.0294); }
  66.67% { transform: scale(1.0104); }
  73.33% { transform: scale(0.9896); }
  80.0% { transform: scale(0.9706); }
  86.67% { transform: scale(0.9567); }
  93.33% { transform: scale(0.9503); }
  100.0% { transform: scale(0.9524); }
}
@keyframes pulrad-animation-7 {
  0.0% { transform: scale(0.9797); }
  6.67% { transform: scale(1.0000); }
  13.33% { transform: scale(1.0203); }
  20.0% { transform: scale(1.0372); }
  26.67% { transform: scale(1.0476); }
  33.33% { transform: scale(1.0497); }
  40.0% { transform: scale(1.0433); }
  46.67% { transform: scale(1.0294); }
  53.33% { transform: scale(1.0104); }
  60.0% { transform: scale(0.9896); }
  66.67% { transform: scale(0.9706); }
  73.33% { transform: scale(0.9567); }
  80.0% { transform: scale(0.9503); }
  86.67% { transform: scale(0.9524); }
  93.33% { transform: scale(0.9628); }
  100.0% { transform: scale(0.9797); }
}

/* --- */

circle {
  transform-origin: center;
}
.pulrad-class-0 {
  animation: pulrad-animation-0 2s infinite;
}
.pulrad-class-1 {
  animation: pulrad-animation-1 2s infinite;
}
.pulrad-class-2 {
  animation: pulrad-animation-2 2s infinite;
}
.pulrad-class-3 {
  animation: pulrad-animation-3 2s infinite;
}
.pulrad-class-4 {
  animation: pulrad-animation-4 2s infinite;
}
.pulrad-class-5 {
  animation: pulrad-animation-5 2s infinite;
}
.pulrad-class-6 {
  animation: pulrad-animation-6 2s infinite;
}
.pulrad-class-7 {
  animation: pulrad-animation-7 2s infinite;
}

/* Circular Color Effect */

@keyframes nodecol-animation-0 {
  0% { fill: rgba(254, 249, 0, 0.750); }
  6% { fill: rgba(254, 249, 0, 0.846); }
  13% { fill: rgba(254, 249, 0, 0.927); }
  20% { fill: rgba(254, 249, 0, 0.981); }
  26% { fill: rgba(254, 249, 0, 1.000); }
  33% { fill: rgba(254, 249, 0, 0.981); }
  40% { fill: rgba(254, 249, 0, 0.927); }
  46% { fill: rgba(254, 249, 0, 0.846); }
  53% { fill: rgba(254, 249, 0, 0.750); }
  60% { fill: rgba(254, 249, 0, 0.654); }
  66% { fill: rgba(254, 249, 0, 0.573); }
  73% { fill: rgba(254, 249, 0, 0.519); }
  80% { fill: rgba(254, 249, 0, 0.500); }
  86% { fill: rgba(254, 249, 0, 0.519); }
  93% { fill: rgba(254, 249, 0, 0.573); }
  100% { fill: rgba(254, 249, 0, 0.654); }
}
@keyframes nodecol-animation-1 {
  0% { fill: rgba(161, 29, 255, 0.927); }
  6% { fill: rgba(161, 29, 255, 0.981); }
  13% { fill: rgba(161, 29, 255, 1.000); }
  20% { fill: rgba(161, 29, 255, 0.981); }
  26% { fill: rgba(161, 29, 255, 0.927); }
  33% { fill: rgba(161, 29, 255, 0.846); }
  40% { fill: rgba(161, 29, 255, 0.750); }
  46% { fill: rgba(161, 29, 255, 0.654); }
  53% { fill: rgba(161, 29, 255, 0.573); }
  60% { fill: rgba(161, 29, 255, 0.519); }
  66% { fill: rgba(161, 29, 255, 0.500); }
  73% { fill: rgba(161, 29, 255, 0.519); }
  80% { fill: rgba(161, 29, 255, 0.573); }
  86% { fill: rgba(161, 29, 255, 0.654); }
  93% { fill: rgba(161, 29, 255, 0.750); }
  100% { fill: rgba(161, 29, 255, 0.846); }
}
@keyframes nodecol-animation-2 {
  0% { fill: rgba(254, 0, 0, 1.000); }
  6% { fill: rgba(254, 0, 0, 0.981); }
  13% { fill: rgba(254, 0, 0, 0.927); }
  20% { fill: rgba(254, 0, 0, 0.846); }
  26% { fill: rgba(254, 0, 0, 0.750); }
  33% { fill: rgba(254, 0, 0, 0.654); }
  40% { fill: rgba(254, 0, 0, 0.573); }
  46% { fill: rgba(254, 0, 0, 0.519); }
  53% { fill: rgba(254, 0, 0, 0.500); }
  60% { fill: rgba(254, 0, 0, 0.519); }
  66% { fill: rgba(254, 0, 0, 0.573); }
  73% { fill: rgba(254, 0, 0, 0.654); }
  80% { fill: rgba(254, 0, 0, 0.750); }
  86% { fill: rgba(254, 0, 0, 0.846); }
  93% { fill: rgba(254, 0, 0, 0.927); }
  100% { fill: rgba(254, 0, 0, 0.981); }
}
@keyframes nodecol-animation-3 {
  0% { fill: rgba(32, 255, 0, 0.927); }
  6% { fill: rgba(32, 255, 0, 0.846); }
  13% { fill: rgba(32, 255, 0, 0.750); }
  20% { fill: rgba(32, 255, 0, 0.654); }
  26% { fill: rgba(32, 255, 0, 0.573); }
  33% { fill: rgba(32, 255, 0, 0.519); }
  40% { fill: rgba(32, 255, 0, 0.500); }
  46% { fill: rgba(32, 255, 0, 0.519); }
  53% { fill: rgba(32, 255, 0, 0.573); }
  60% { fill: rgba(32, 255, 0, 0.654); }
  66% { fill: rgba(32, 255, 0, 0.750); }
  73% { fill: rgba(32, 255, 0, 0.846); }
  80% { fill: rgba(32, 255, 0, 0.927); }
  86% { fill: rgba(32, 255, 0, 0.981); }
  93% { fill: rgba(32, 255, 0, 1.000); }
  100% { fill: rgba(32, 255, 0, 0.981); }
}
@keyframes nodecol-animation-4 {
  0% { fill: rgba(0, 152, 255, 0.750); }
  6% { fill: rgba(0, 152, 255, 0.654); }
  13% { fill: rgba(0, 152, 255, 0.573); }
  20% { fill: rgba(0, 152, 255, 0.519); }
  26% { fill: rgba(0, 152, 255, 0.500); }
  33% { fill: rgba(0, 152, 255, 0.519); }
  40% { fill: rgba(0, 152, 255, 0.573); }
  46% { fill: rgba(0, 152, 255, 0.654); }
  53% { fill: rgba(0, 152, 255, 0.750); }
  60% { fill: rgba(0, 152, 255, 0.846); }
  66% { fill: rgba(0, 152, 255, 0.927); }
  73% { fill: rgba(0, 152, 255, 0.981); }
  80% { fill: rgba(0, 152, 255, 1.000); }
  86% { fill: rgba(0, 152, 255, 0.981); }
  93% { fill: rgba(0, 152, 255, 0.927); }
  100% { fill: rgba(0, 152, 255, 0.846); }
}
@keyframes nodecol-animation-5 {
  0% { fill: rgba(255, 127, 0, 0.573); }
  6% { fill: rgba(255, 127, 0, 0.519); }
  13% { fill: rgba(255, 127, 0, 0.500); }
  20% { fill: rgba(255, 127, 0, 0.519); }
  26% { fill: rgba(255, 127, 0, 0.573); }
  33% { fill: rgba(255, 127, 0, 0.654); }
  40% { fill: rgba(255, 127, 0, 0.750); }
  46% { fill: rgba(255, 127, 0, 0.846); }
  53% { fill: rgba(255, 127, 0, 0.927); }
  60% { fill: rgba(255, 127, 0, 0.981); }
  66% { fill: rgba(255, 127, 0, 1.000); }
  73% { fill: rgba(255, 127, 0, 0.981); }
  80% { fill: rgba(255, 127, 0, 0.927); }
  86% { fill: rgba(255, 127, 0, 0.846); }
  93% { fill: rgba(255, 127, 0, 0.750); }
  100% { fill: rgba(255, 127, 0, 0.654); }
}
@keyframes nodecol-animation-6 {
  0% { fill: rgba(56, 227, 210, 0.500); }
  6% { fill: rgba(56, 227, 210, 0.519); }
  13% { fill: rgba(56, 227, 210, 0.573); }
  20% { fill: rgba(56, 227, 210, 0.654); }
  26% { fill: rgba(56, 227, 210, 0.750); }
  33% { fill: rgba(56, 227, 210, 0.846); }
  40% { fill: rgba(56, 227, 210, 0.927); }
  46% { fill: rgba(56, 227, 210, 0.981); }
  53% { fill: rgba(56, 227, 210, 1.000); }
  60% { fill: rgba(56, 227, 210, 0.981); }
  66% { fill: rgba(56, 227, 210, 0.927); }
  73% { fill: rgba(56, 227, 210, 0.846); }
  80% { fill: rgba(56, 227, 210, 0.750); }
  86% { fill: rgba(56, 227, 210, 0.654); }
  93% { fill: rgba(56, 227, 210, 0.573); }
  100% { fill: rgba(56, 227, 210, 0.519); }
}
@keyframes nodecol-animation-7 {
  0% { fill: rgba(255, 105, 248, 0.573); }
  6% { fill: rgba(255, 105, 248, 0.654); }
  13% { fill: rgba(255, 105, 248, 0.750); }
  20% { fill: rgba(255, 105, 248, 0.846); }
  26% { fill: rgba(255, 105, 248, 0.927); }
  33% { fill: rgba(255, 105, 248, 0.981); }
  40% { fill: rgba(255, 105, 248, 1.000); }
  46% { fill: rgba(255, 105, 248, 0.981); }
  53% { fill: rgba(255, 105, 248, 0.927); }
  60% { fill: rgba(255, 105, 248, 0.846); }
  66% { fill: rgba(255, 105, 248, 0.750); }
  73% { fill: rgba(255, 105, 248, 0.654); }
  80% { fill: rgba(255, 105, 248, 0.573); }
  86% { fill: rgba(255, 105, 248, 0.519); }
  93% { fill: rgba(255, 105, 248, 0.500); }
  100% { fill: rgba(255, 105, 248, 0.519); }
}

/* --- */

.nodecol-class-0 {
  animation: nodecol-animation-0 2s infinite;
}
.nodecol-class-1 {
  animation: nodecol-animation-1 2s infinite;
}
.nodecol-class-2 {
  animation: nodecol-animation-2 2s infinite;
}
.nodecol-class-3 {
  animation: nodecol-animation-3 2s infinite;
}
.nodecol-class-4 {
  animation: nodecol-animation-4 2s infinite;
}
.nodecol-class-5 {
  animation: nodecol-animation-5 2s infinite;
}
.nodecol-class-6 {
  animation: nodecol-animation-6 2s infinite;
}
.nodecol-class-7 {
  animation: nodecol-animation-7 2s infinite;
}

/* Circle Pulse Animation Small */

@keyframes pradsmall-animation-0 {
  0.0% { transform: scale(1.0000); }
  25.0% { transform: scale(1.1000); }
  50.0% { transform: scale(1.0000); }
  75.0% { transform: scale(0.9000); }
  100.0% { transform: scale(1.0000); }
}
@keyframes pradsmall-animation-1 {
  0.0% { transform: scale(1.1000); }
  25.0% { transform: scale(1.0000); }
  50.0% { transform: scale(0.9000); }
  75.0% { transform: scale(1.0000); }
  100.0% { transform: scale(1.1000); }
}
@keyframes pradsmall-animation-2 {
  0.0% { transform: scale(1.0000); }
  25.0% { transform: scale(0.9000); }
  50.0% { transform: scale(1.0000); }
  75.0% { transform: scale(1.1000); }
  100.0% { transform: scale(1.0000); }
}
@keyframes pradsmall-animation-3 {
  0.0% { transform: scale(0.9000); }
  25.0% { transform: scale(1.0000); }
  50.0% { transform: scale(1.1000); }
  75.0% { transform: scale(1.0000); }
  100.0% { transform: scale(0.9000); }
}
@keyframes pradsmall-animation-4 {
  0.0% { transform: scale(1.0000); }
  25.0% { transform: scale(1.1000); }
  50.0% { transform: scale(1.0000); }
  75.0% { transform: scale(0.9000); }
  100.0% { transform: scale(1.0000); }
}

/* --- */

.pradsmall-class-0 {
  animation: pradsmall-animation-0 2s infinite;
}
.pradsmall-class-1 {
  animation: pradsmall-animation-1 2s infinite;
}
.pradsmall-class-2 {
  animation: pradsmall-animation-2 2s infinite;
}
.pradsmall-class-3 {
  animation: pradsmall-animation-3 2s infinite;
}
.pradsmall-class-4 {
  animation: pradsmall-animation-4 2s infinite;
}
