/* A luz conecta visualmente o ecossistema sem interferir nos controles. */
html[data-theme="prisma"] {
  --prisma-thread:#238995;
  --prisma-thread-light:#008878;
  --prisma-thread-accent:#6289b7;
  --prisma-thread-glow:#42bdaa70;
}
html[data-theme="prisma"][data-prisma-mode="dark"] {
  --prisma-thread:#8acede;
  --prisma-thread-light:#b5ffe7;
  --prisma-thread-accent:#b5c5ff;
  --prisma-thread-glow:#70efdfb0;
}
html[data-theme="prisma"] .prisma-icon {
  position:relative;
  --thread-phase:0s;
  animation:prisma-icon-breathe 7s ease-in-out infinite;
  animation-delay:var(--thread-phase);
}
html[data-theme="prisma"] .prisma-icon--alertas { --thread-phase:-1.2s; }
html[data-theme="prisma"] .prisma-icon--phantom { --thread-phase:-3.6s; }
html[data-theme="prisma"] .prisma-icon--forge { --thread-phase:-5s; }
html[data-theme="prisma"] .prisma-icon--cursos { --thread-phase:-2.4s; }
html[data-theme="prisma"] .prisma-icon--comunidade { --thread-phase:-4.8s; }
html[data-theme="prisma"] .prisma-icon--afiliados { --thread-phase:-.6s; }
html[data-theme="prisma"] :is(.prisma-icon-threads,.prisma-thread-network) {
  position:absolute;
  display:block;
  pointer-events:none;
  user-select:none;
  fill:none;
  overflow:visible;
}
html[data-theme="prisma"] .prisma-icon-threads {
  inset:0;
  width:100%;
  height:100%;
}
html[data-theme="prisma"] :is(.prisma-icon-threads,.prisma-thread-network) path {
  fill:none;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
}
html[data-theme="prisma"] .prisma-thread-rail {
  stroke:var(--prisma-thread);
  stroke-width:.8;
  opacity:.32;
}
html[data-theme="prisma"] .prisma-thread-pulse {
  stroke:var(--prisma-thread-light);
  stroke-width:1.65;
  stroke-dasharray:5 95;
  stroke-dashoffset:0;
  filter:drop-shadow(0 0 3px var(--prisma-thread-glow));
  animation:prisma-thread-flow 5.6s linear infinite;
  animation-delay:var(--thread-phase,0s);
}
html[data-theme="prisma"] .prisma-thread--1 .prisma-thread-rail { stroke:var(--prisma-thread-accent); opacity:.25; }
html[data-theme="prisma"] .prisma-thread--1 .prisma-thread-pulse {
  stroke:var(--prisma-thread-accent);
  stroke-width:1.2;
  stroke-dasharray:3 97;
  animation-duration:7.4s;
  animation-direction:reverse;
}
html[data-theme="prisma"] .prisma-shelf { position:relative; }
html[data-theme="prisma"] .prisma-thread-network {
  left:0;
  top:11px;
  z-index:1;
  width:100%;
  height:106px;
  opacity:.75;
  transition:opacity .3s ease;
}
html[data-theme="prisma"] .prisma-thread-network .prisma-thread-rail { opacity:.22; }
html[data-theme="prisma"] .prisma-thread-network .prisma-thread-pulse {
  stroke-width:1.1;
  stroke-dasharray:1.5 48.5;
  animation-duration:9s;
}
html[data-theme="prisma"] .prisma-section:nth-of-type(3) .prisma-thread-network { --thread-phase:-4.5s; }
html[data-theme="prisma"] .prisma-shelf:has(.prisma-module:is(:hover,:focus-visible)) .prisma-thread-network { opacity:1; }
/* A conexão só aparece com os três módulos visíveis, inclusive após uma busca. */
html[data-theme="prisma"] .prisma-shelf:not(:has(.prisma-module:nth-of-type(3))) .prisma-thread-network,
html[data-theme="prisma"] .prisma-shelf:has(.prisma-module[hidden]) .prisma-thread-network { visibility:hidden; }
html[data-theme="prisma"][data-prisma-mode="dark"] .prisma-thread-rail { opacity:.4; }
html[data-theme="prisma"][data-prisma-mode="dark"] .prisma-thread-network .prisma-thread-rail { opacity:.22; }
@keyframes prisma-thread-flow { to { stroke-dashoffset:-100; } }
/* Translate preserva a inclinação original do ícone do Guardian. */
@keyframes prisma-icon-breathe {
  0%,100% { translate:0 0; }
  50% { translate:0 -3px; }
}
@media (max-width:859px) {
  html[data-theme="prisma"] .prisma-thread-network { top:8px; height:98px; }
}
@media (max-width:420px) {
  html[data-theme="prisma"] .prisma-thread-network { top:5px; height:88px; }
}
/* Respeita a preferência do aparelho e mantém o desenho dos fios estático. */
@media (prefers-reduced-motion:reduce) {
  html[data-theme="prisma"] :is(.prisma-icon,.prisma-thread-pulse) { animation:none!important; translate:none; }
  html[data-theme="prisma"] .prisma-thread-pulse { opacity:.5; filter:none; }
  html[data-theme="prisma"] .prisma-thread-network { transition:none; }
}
