body {
    display: flex; 
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 100vh;
    background: #000;
    overflow: hidden;
    font-family: sans;
}

.glowing {
    position: absolute;
    width: 60vw;
    height: 100vh;
    transform-origin: right;
    animation: colorChange 5s linear infinite;
    animation: fadeaway 30s forwards; 
    left: calc(50%);
    transform: translateX(-50%);
}

.glowing:nth-child(even) {
    transform-origin: left;
}

@keyframes colorChange {
    0% { filter: hue-rotate(0deg); }
    100% { filter: hue-rotate(360deg); }
}

.glowing span {
    position: absolute;
    top: calc(80px * var(--i));
    left: calc(80px * var(--i));
    bottom: calc(80px * var(--i));
    right: calc(80px * var(--i));
    filter: blur(2px);
}

.glowing span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -8px;
    width: 10px;
    height: 10px;
    background: #f00;
    border-radius: 50%;
}

.glowing span:nth-child(3n + 1)::before {
    background: rgba(134,255,0,1);
    box-shadow: 0 0 20px rgba(134,255,0,1),
    0 0 40px rgba(134,255,0,1),
    0 0 60px rgba(134,255,0,1),
    0 0 80px rgba(134,255,0,1),
    0 0 0 8px rgba(134,255,0,.1);
}

.glowing span:nth-child(3n + 2)::before {
    background: rgba(0,255,183,1);
    box-shadow: 0 0 20px rgba(0,255,183,1),
    0 0 40px rgba(0,255,183,1),
    0 0 60px rgba(0,255,183,1),
    0 0 80px rgba(0,255,183,1),
    0 0 0 8px rgba(0,255,183,.1);
}

.glowing span:nth-child(3n + 3)::before {
    background: rgba(0,226,255,1);
    box-shadow: 0 0 20px rgba(0,226,255,1),
    0 0 40px rgba(0,226,255,1),
    0 0 60px rgba(0,226,255,1),
    0 0 80px rgba(0,226,255,1),
    0 0 0 8px rgba(0,226,255,.1);
}

.glowing span:nth-child(3n + 1) {
    animation: rotatedots1 15s alternate infinite;
}

.glowing span:nth-child(3n + 2) {
    animation: rotatedots-reverse 9s alternate infinite;
}

.glowing span:nth-child(3n + 3) {
    animation: rotatedots1 15s alternate infinite; 
}
        
@keyframes fadeaway {
    0% { opacity: 1; }
    15% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes rotatedots1 {
    0% { transform: rotate(calc(180deg * var(--i))); scale:20%;}
    25% { transform: rotate(calc(90deg * var(--i))); scale:100%;}
    50% { transform: rotate(calc(0deg * var(--i)));  scale:80%;}
    100% { transform: rotate(calc(360deg * var(--i))); scale:50%;}
}


@keyframes rotatedots-reverse {
  0%   { transform: rotate(calc(135deg * var(--i))); scale:20%;}
  25%  { transform: rotate(calc(45deg * var(--i))); scale:100%;}
  50%  { transform: rotate(calc(-45deg * var(--i))); scale:80%;}
  100% { transform: rotate(calc(315deg * var(--i))); scale:50%;}
}   




.logointro{
    filter: blur(14px);
    opacity: 0;
    animation: logoanim 5s ease-out forwards; /* runs once */
    will-change: filter, opacity;
    color: #FFF;
    position: absolute;
    text-shadow: 3px -3px 5px #C5F7FF;
}

@keyframes logoanim{
    0%   { filter: blur(14px); opacity: 0; transform: scale(0.1) }
    100% { filter: blur(0);    opacity: 1; transform: scale(0.7)  }
}
    
@keyframes startbtnanim{
    0%   { opacity: 0; }
    40%   { opacity: 0.8; }
    100% { opacity: 1;   }
}

#startbtn{
    cursor: default;
    position: absolute;
    bottom: 15vh;
    color: aliceblue;
    font-style: italic;
    font-size: 1.5rem;
    border-radius: 100px;
    padding: 5px 40px;
    background: radial-gradient(#82cc50, #0a8200);
    box-shadow: 2px 2px 10px #BAFFEF, -2px -2px 10px #BAFFEF, -2px 0 10px #BAFFEF, 0 -2px 10px #BAFFEF;
    animation: startbtnanim 5s ease-out forwards;
}

#startbtn[disabled]{
    filter: brightness(.3);
}

#login-dialog{
    width: 22rem;
    z-index: 99;
    border-radius: 1rem;
    box-shadow: 2px 2px 10px #BAFFEF, -2px -2px 10px #BAFFEF, -2px 0 10px #BAFFEF, 0 -2px 10px #BAFFEF;
    background: radial-gradient(#82cc50, #0a8200);
    padding: 2rem 3rem 1rem 3rem;
    margin-top: -68vh;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease;
    font-size: 1.3rem;
    transform: perspective(200px) rotateY(0deg) rotateX(6deg) rotateZ(0deg);
    transform-style: preserve-3d;
}
#login-dialog.show {
    opacity: 1;
    visibility: visible;
}
#login-dialog > div.cols2{
    display: grid !important;
    grid-gap: 10px;
    grid-template-columns: 7rem 15rem;
}
#login-dialog > div{
    margin-bottom: 1rem;
}
#login-dialog input{
    line-height: 2rem;
    width: 15rem;
    border-radius: 5px;
    border: none;
    font-size: 1rem;
}
#login-dialog button{
    justify-self: end;
    font-size: 1rem;
    float: right;
}
#login-dialog div.loginerr{
    background-color: #326A1E;
    font-size: 1rem;
    color: #FFF;
    padding: .1rem .5rem;
    border-radius: 5px;
    text-align: center;
    display:none; 
}
#login-dialog div.loginerr.show{
    display:block!important; 
}