.login-bounds { max-width: 500px; padding: 0 2rem; } .form-label { text-transform: uppercase; margin-bottom: 0.5rem; } .form-input { transition: border-color .2s; } .form-input input { border: 0; background: none; width: 100%; height: 5.2rem; font: inherit; outline: none; color: var(--color-text-highlight); } .form-input-icon { width: 2rem; height: 2rem; margin-top: -0.1rem; opacity: 0.5; } .form-input input[type="password"] { letter-spacing: 0.3rem; font-size: 0.9em; } .form-input input[type="password"]::placeholder { letter-spacing: 0; font-size: var(--font-size-base); } .form-input:hover { border-color: var(--color-progress-border); } .form-input:focus-within { border-color: var(--color-primary); transition-duration: .7s; } .login-button { width: 100%; display: block; padding: 1rem; background: none; border: 1px solid var(--color-text-subdue); border-radius: var(--border-radius); color: var(--color-text-paragraph); cursor: pointer; font: inherit; font-size: var(--font-size-h4); display: flex; gap: .5rem; align-items: center; justify-content: center; transition: all .3s, margin-top 0s; margin-top: 3rem; } .login-button:not(:disabled) { box-shadow: 0 0 10px 1px var(--color-separator); } .login-error-message:not(:empty) + .login-button { margin-top: 2rem; } .login-button:focus, .login-button:hover { outline: none; border-color: var(--color-primary); color: var(--color-primary); } .login-button:disabled { border-color: var(--color-separator); color: var(--color-text-subdue); cursor: not-allowed; } .login-button svg { width: 1.7rem; height: 1.7rem; transition: transform .2s; } .login-button:not(:disabled):hover svg, .login-button:not(:disabled):focus svg { transform: translateX(.5rem); } .animate-entrance { animation: fieldReveal 0.7s backwards; animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1); } .animate-entrance:nth-child(1) { animation-delay: .1s; } .animate-entrance:nth-child(2) { animation-delay: .2s; } .animate-entrance:nth-child(4) { animation-delay: .3s; } @keyframes fieldReveal { from { opacity: 0.0001; transform: translateY(4rem); } } .login-error-message { color: var(--color-negative); font-size: var(--font-size-base); padding: 1.3rem calc(var(--widget-content-horizontal-padding) + 1px); position: relative; margin-top: 2rem; animation: errorMessageEntrance 0.4s backwards cubic-bezier(0.34, 1.56, 0.64, 1); } @keyframes errorMessageEntrance { from { opacity: 0; transform: scale(1.1); } } .login-error-message:empty { display: none; } .login-error-message::before { content: ""; position: absolute; inset: 0; border-radius: var(--border-radius); background: var(--color-negative); opacity: 0.05; z-index: -1; } .footer { animation-delay: .4s; animation-duration: 1s; } .toggle-password-visibility { background: none; border: none; cursor: pointer; }