*,
*:before,
*:after{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
body{
    background-color: #080710;
}
.flash-container {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 1055;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 50px;
}

.flash-message {
  padding: 1rem 1.5rem;
  border-radius: 8px;
  color: white;
  font-weight: bold;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  animation: fadeOut 0.5s ease 14.5s forwards;
}

.flash-message.success {
  background-color: #28a745;
}

.flash-message.error,
.flash-message.danger {
  background-color: #dc3545;
}

.flash-message.warning {
  background-color: #ffc107;
  color: black;
}

/* fade out animation */
@keyframes fadeOut {
  to {
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
  }
}

/*background*/
.area {
  background-color: #000;
  background-size: 400% 400%;
  width: 100%;
  min-height: 100vh;
  animation: gradient 15s ease infinite;
  position: relative; /* Needed for .circles absolute positioning */
  overflow: hidden;
}
  
.form-wrapper {
    max-width: 30rem;
    margin: 40px auto 0 auto;
    padding: 20px;
    display:flex;
}

  
.area:after {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(2, 255, 2, 0);
  opacity: 0;
  z-index: 2;
  pointer-events: none;
}
.area:before {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: linear-gradient(rgba(2, 255, 2, 0) 50%, rgba(0, 206, 0, 0) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
  z-index: 2;
  background-size: 100% 2px, 3px 100%;
  pointer-events: none;
}
  
  @keyframes gradient {
      0% {
          background-position: 0% 50%;
      }
      50% {
          background-position: 100% 50%;
      }
      100% {
          background-position: 0% 50%;
      }
  }
  
  .background_objects {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none; /* optional: prevents blocking clicks */
    z-index: 0;
  }

.main-content {
  position: relative;
  z-index: 1;
  padding: 0px 20px 100px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/*Glitch*/
.glitch {
    color: white;
    font-size: 100px;
    position: relative;
    width: 400px;
    margin: 0 auto;
  }
  
  @keyframes noise-anim {
    0% {
      clip: rect(11px, 9999px, 10px, 0);
    }
    5% {
      clip: rect(36px, 9999px, 91px, 0);
    }
    10% {
      clip: rect(57px, 9999px, 71px, 0);
    }
    15% {
      clip: rect(55px, 9999px, 51px, 0);
    }
    20% {
      clip: rect(14px, 9999px, 9px, 0);
    }
    25% {
      clip: rect(46px, 9999px, 66px, 0);
    }
    30% {
      clip: rect(14px, 9999px, 65px, 0);
    }
    35% {
      clip: rect(86px, 9999px, 55px, 0);
    }
    40% {
      clip: rect(58px, 9999px, 10px, 0);
    }
    45% {
      clip: rect(11px, 9999px, 37px, 0);
    }
    50% {
      clip: rect(82px, 9999px, 3px, 0);
    }
    55% {
      clip: rect(41px, 9999px, 48px, 0);
    }
    60% {
      clip: rect(80px, 9999px, 75px, 0);
    }
    65% {
      clip: rect(3px, 9999px, 97px, 0);
    }
    70% {
      clip: rect(37px, 9999px, 47px, 0);
    }
    75% {
      clip: rect(54px, 9999px, 56px, 0);
    }
    80% {
      clip: rect(42px, 9999px, 21px, 0);
    }
    85% {
      clip: rect(67px, 9999px, 80px, 0);
    }
    90% {
      clip: rect(30px, 9999px, 40px, 0);
    }
    95% {
      clip: rect(25px, 9999px, 87px, 0);
    }
    100% {
      clip: rect(78px, 9999px, 81px, 0);
    }
  }
  .glitch:after {
    content: attr(data-text);
    position: absolute;
    left: 2px;
    text-shadow: -1px 0 red;
    top: 0;
    color: white;
    background: black;
    overflow: hidden;
    clip: rect(0, 900px, 0, 0);
    animation: noise-anim 2s infinite linear alternate-reverse;
  }
  
  @keyframes noise-anim-2 {
    0% {
      clip: rect(42px, 9999px, 2px, 0);
    }
    5% {
      clip: rect(38px, 9999px, 72px, 0);
    }
    10% {
      clip: rect(48px, 9999px, 54px, 0);
    }
    15% {
      clip: rect(18px, 9999px, 3px, 0);
    }
    20% {
      clip: rect(89px, 9999px, 86px, 0);
    }
    25% {
      clip: rect(35px, 9999px, 29px, 0);
    }
    30% {
      clip: rect(41px, 9999px, 13px, 0);
    }
    35% {
      clip: rect(99px, 9999px, 29px, 0);
    }
    40% {
      clip: rect(61px, 9999px, 97px, 0);
    }
    45% {
      clip: rect(80px, 9999px, 81px, 0);
    }
    50% {
      clip: rect(61px, 9999px, 20px, 0);
    }
    55% {
      clip: rect(61px, 9999px, 36px, 0);
    }
    60% {
      clip: rect(11px, 9999px, 43px, 0);
    }
    65% {
      clip: rect(84px, 9999px, 31px, 0);
    }
    70% {
      clip: rect(3px, 9999px, 44px, 0);
    }
    75% {
      clip: rect(74px, 9999px, 72px, 0);
    }
    80% {
      clip: rect(2px, 9999px, 10px, 0);
    }
    85% {
      clip: rect(51px, 9999px, 14px, 0);
    }
    90% {
      clip: rect(55px, 9999px, 16px, 0);
    }
    95% {
      clip: rect(74px, 9999px, 54px, 0);
    }
    100% {
      clip: rect(81px, 9999px, 82px, 0);
    }
  }
  .glitch:before {
    content: attr(data-text);
    position: absolute;
    left: -2px;
    text-shadow: 1px 0 blue;
    top: 0;
    color: white;
    background: black;
    overflow: hidden;
    clip: rect(0, 900px, 0, 0);
    animation: noise-anim-2 3s infinite linear alternate-reverse;
  }

  @import url("https://fonts.cdnfonts.com/css/pixel12x10");
input {
  color: white;
  font-family: "Pixel12x10Mono", sans-serif;
  font-size: 33px;
  text-shadow: 0px 0px 5px #fff;
  margin: 24px 0;
}
input:focus-visible {
  outline: none;
}
input:focus {
  background-color: red;
}
input:after {
  content: "";
  width: 5px;
  height: 100%;
  background-color: white;
  color: white;
}
input[type=text] {
  width: 100%;
  height: 60px;
  padding: 12px 20px;
  display: inline-block;
  border: 1px solid #fff;
  box-sizing: border-box;
  color: white;
  background-color: black;
}
input[type=password] {
  width: 100%;
  height: 60px;
  padding: 12px 20px;
  display: inline-block;
  border: 1px solid #fff;
  box-sizing: border-box;
  color: white;
  background-color: black;
  text-security: square;
}

.container {
  max-width: 30rem;
  max-height: fit-content;
  color: white;
  font-family: "Pixel12x10Mono", sans-serif;
  position: relative;
  animation: initialize 1000ms;
}

.header {
  color: white;
  display: flex;
  align-items: above;
  justify-content: center;
  font-family: "Pixel12x10Mono", sans-serif;
  border: 2px white;
  border-style: solid solid hidden solid;
  position: relative;
  padding-bottom: 20px;
  transform: scale(1.2);
  font-size: 30px;
}
.header > span {
  background-color: black;
  position: absolute;
  top: -15px;
  padding: 6px 11px;
}

.footer {
  color: white;
  font-family: "Pixel12x10Mono", sans-serif;
  border: 2px white;
  border-style: hidden solid solid solid;
  padding-top: 20px;
  transform: scale(1.2);
}

.btnSubmit {
  transition: all 400ms;
  width: 100%;
  height: 50px;
  background-color: #000000ff;
  position: relative;
  box-shadow: inset 0 0 0 0px #ffffff;
  margin: 24px 0;
  color: white;
  font-family: "Pixel12x10Mono", sans-serif;
  font-size: 30px;
  text-shadow: 0px 0px 5px #fff;
}
.btnSubmit:hover {
  transition: all 200ms;
  background-color: #fff;
  color: black;
  cursor: pointer;
}
.btnSubmit:hover:bsdefore {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@keyframes initialize {
  from {
    max-width: 0;
  }
}
@keyframes cursor {
  from {
    color: black;
  }
  to {
    color: white;
  }
}