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 5s alternate infinite; } .glowing span:nth-child(3n + 3) { animation: rotatedots1 11s alternate infinite; } @keyframes fadeaway { 0% { opacity: 1; } 15% { opacity: 1; } 100% { opacity: 0; } } @keyframes rotatedots1 { 0% { transform: rotate(calc(180deg * var(--i))); } 50% { transform: rotate(calc(0deg * var(--i))); } 100% { transform: rotate(calc(360deg * var(--i))); } } @keyframes rotatedots-reverse { 0% { transform: rotate(calc(135deg * var(--i))); } 50% { transform: rotate(calc(-45deg * var(--i))); } 100% { transform: rotate(calc(315deg * var(--i))); } } .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: 40px; 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: 1.3rem; } #login-dialog button{ justify-self: end; font-size: 1.3rem; 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; }