.login--mask {
  background-color: #000000b3;
  /* Give the mask a z-index to sit on top of the lines but below content */
  z-index: 2;
}

.loginpage--bg .lines {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  /* No z-index needed, or use a positive one like z-index: 1 */
}

.loginpage--bg .line {
  position: absolute;
  width: 5px;
  height: 100%;
  top: 0;
  left: 50%;
  background: rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

.loginpage--bg .line::after {
  content: "";
  display: block;
  position: absolute;
  height: 15vh;
  width: 100%;
  top: -50%;
  left: 0;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    #ffffff 75%,
    #ffffff 100%
  );
  /* Removed redundant animation-fill-mode */
  animation: drop 7s 0s infinite;
  animation-timing-function: cubic-bezier(0.4, 0.26, 0, 0.97);
  /* Removed negative z-index */
}

/* nth-child styles remain the same */
.loginpage--bg .line:nth-child(1) {
  margin-left: -40%;
}
.loginpage--bg .line:nth-child(1)::after {
  animation-delay: 1s;
}
.loginpage--bg .line:nth-child(3) {
  margin-left: 40%;
}
.loginpage--bg .line:nth-child(3)::after {
  animation-delay: 2s;
}
.loginpage--bg .line:nth-child(4) {
  margin-left: -20%;
}
.loginpage--bg .line:nth-child(4)::after {
  animation-delay: 3s;
}
.loginpage--bg .line:nth-child(5) {
  margin-left: 20%;
}
.loginpage--bg .line:nth-child(5)::after {
  animation-delay: 4s;
}

@keyframes drop {
  0% {
    top: -50%;
  }
  100% {
    top: 110%;
  }
}
/* Login form */
.uk-heading-line > ::after,
.uk-heading-line > ::before {
  border-bottom: 1px solid #ababab;
}
