html,
body {
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

body {
  background: linear-gradient(145deg, #1f2d5a 0%, #2d4178 35%, #e8ecf4 70%, #1f2d5a 100%) !important;
  background-attachment: fixed;
  animation: none !important;
}

.site-animated-background {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

body > *:not(.site-animated-background) {
  position: relative;
  z-index: 1;
}

/* Disable legacy background effects that conflict with the new global animation. */
.fiber-lines,
.fiber-line,
.network-graph,
.pulse,
.ripple,
.connection-line,
.data-packet,
.packet-trail,
.network-node {
  display: none !important;
}

.site-animated-background .square,
.site-animated-background .circle,
.site-animated-background .triangle {
  position: absolute;
  width: 32px;
  height: 32px;
  opacity: 0.22;
  will-change: transform;
}

.site-animated-background .square {
  border-radius: 8px;
  background: linear-gradient(135deg, #2d4178, #1f2d5a);
}

.site-animated-background .circle {
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #4a5f9a, #1f2d5a);
}

.site-animated-background .triangle {
  width: 0;
  height: 0;
  background: transparent;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-bottom: 32px solid #1f2d5a;
}
