/* Splash UnionHub: marca de nodos centralizándose (index.html y auth.html). */
:root {
  --uh-bg: #FFFFFF;
  --uh-ink: #1C2128;
  --uh-muted: #5C6B66;
  --uh-node: #0C3A2E;
  --uh-green: #4DA138;
  --uh-leaf-top: #61B046;
  --uh-leaf-base: #4DA138;
}
@media (prefers-color-scheme: dark) {
  :root {
    --uh-bg: #1B2622;
    --uh-ink: #E7EEEA;
    --uh-muted: #9AADA4;
    --uh-node: #FFFFFF;
    --uh-green: #61B046;
    --uh-leaf-top: #96D260;
    --uh-leaf-base: #61B046;
  }
}
html, body { margin: 0; height: 100%; background: var(--uh-bg); }
#uh-splash {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 24px;
  background: var(--uh-bg);
  font-family: Roboto, "Segoe UI", system-ui, sans-serif;
  text-align: center;
  transition: opacity 200ms ease-out;
}
#uh-splash.uh-out { opacity: 0; pointer-events: none; }
#uh-splash svg { width: 56px; height: 56px; overflow: visible; }
#uh-splash .uh-title {
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.2px;
  color: var(--uh-ink);
}
#uh-splash .uh-detail {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--uh-muted);
}
.uh-node { transform-origin: 50px 57px; animation: uh-gather 1.8s infinite; }
.uh-node:nth-of-type(2) { animation-delay: 0.108s; }
.uh-node:nth-of-type(3) { animation-delay: 0.216s; }
.uh-node:nth-of-type(4) { animation-delay: 0.324s; }
.uh-node:nth-of-type(5) { animation-delay: 0.432s; }
.uh-hub, .uh-halo, .uh-leaf {
  animation: uh-pulse 1.8s infinite ease-in-out;
}
.uh-hub { transform-origin: 50px 57px; }
.uh-halo { transform-origin: 50px 57px; opacity: 0; animation-name: uh-halo; }
.uh-leaf { transform-origin: 50px 36px; }
@keyframes uh-gather {
  0% { transform: scale(1); animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1); }
  42% { transform: scale(0.5); }
  56% { transform: scale(0.5); animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1); }
  100% { transform: scale(1); }
}
@keyframes uh-pulse {
  0%, 36% { transform: scale(1); }
  54% { transform: scale(1.12); }
  72%, 100% { transform: scale(1); }
}
@keyframes uh-halo {
  0%, 36% { opacity: 0; transform: scale(0.9); }
  54% { opacity: 0.22; transform: scale(1.3); }
  72%, 100% { opacity: 0; transform: scale(0.9); }
}
@media (prefers-reduced-motion: reduce) {
  .uh-node, .uh-hub, .uh-halo, .uh-leaf { animation: none; }
}
