body {
  margin: 0;
  background: #0d1b12;
}

/* Roulette-table style grid background */
.grid-bg {
  position: fixed;
  inset: 0;

  /* deep green felt */
  background-color: #103b25;

  /* layered gradients for grid */
  background-image:
    linear-gradient(
      rgba(255,255,255,0.6) 2px,
      transparent 2px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,0.6) 2px,
      transparent 2px
    ),

    /* subtle vignette */
    radial-gradient(
      circle at center,
      transparent 40%,
      rgba(0,0,0,0.45) 100%
    );

  background-size:
    80px 80px,
    80px 80px,
    cover;

  animation: scrollGrid 12s linear infinite;

  z-index: -1;
  pointer-events: none;
}

/* soft moving motion */
@keyframes scrollGrid {
  from {
    background-position: 0 0, 0 0, center;
  }

  to {
    background-position: 80px 80px, 80px 80px, center;
  }
}