html, body {
      margin: 0;
      padding: 0;
      height: 100vh; /* Full viewport height */
      width: 100vw; /* Full viewport width */
      overflow: hidden; /* Prevent scrollbars */
      cursor: pointer;
      font-family: sans-serif;
      color: white;
      position: relative; /* Needed for pseudo-element positioning */
      /* Remove direct transition on background, animation handles movement */
    }

    @keyframes gradientAnimation {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    body {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      /* Set a large background size for the animation to work on */
      background-size: 400% 400%;
      /* Apply the animation */
      animation: gradientAnimation 15s ease infinite; /* Adjust time (15s) for speed */
      /* Initial background - will be replaced by JS */
      background: linear-gradient(45deg, #ff9a9e 0%, #fecfef 50%, #fad0c4 100%);
      /* Add back a transition for the *change* between gradients */
      transition: background 1.2s ease-in-out;
    }

    /* Noise Overlay - remains the same */
    body::after {
      content: "";
      position: fixed; /* Cover viewport */
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(0,0,0,0.03) 1px, rgba(0,0,0,0.03) 2px),
                  repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(0,0,0,0.03) 1px, rgba(0,0,0,0.03) 2px);
      opacity: 0.3; /* Adjust noise intensity */
      pointer-events: none; /* Allow clicks to pass through */
      z-index: 1; /* Sit above the background */
    }


    .gradient-info {
      background-color: rgba(0, 0, 0, 0.35);
      padding: 25px 45px;
      border-radius: 12px;
      text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.8);
      position: relative; /* Ensure content is above the noise overlay */
      z-index: 2;
    }

    h1 {
      margin: 0 0 10px 0;
      font-size: 2.8em;
    }

    p {
      margin: 0;
      font-size: 1.1em;
      opacity: 0.85;
    }
