.login-page { min-height: 100dvh; display: flex; align-items: center; justify-content: center; background: #0e0e0e; padding: 1.5rem 1.1rem; position: relative; overflow: hidden; } /* Lime radial glow behind logo */ .login-glow { position: absolute; top: -10%; left: 50%; transform: translateX(-50%); width: 500px; height: 380px; background: radial-gradient(ellipse at center, rgba(202, 253, 0, 0.07) 0%, transparent 65%); pointer-events: none; } .login-container { width: 100%; max-width: 390px; display: flex; flex-direction: column; gap: 0; position: relative; z-index: 1; } /* ---- Logo block ---- */ .login-logo-block { text-align: center; margin-bottom: 3rem; } .login-wordmark { font-family: 'Lexend', sans-serif; font-weight: 800; font-size: 3rem; letter-spacing: -0.02em; color: #cafd00; line-height: 1; text-shadow: 0 0 40px rgba(202, 253, 0, 0.35); } .login-tagline { font-family: 'Space Grotesk', monospace; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: #767575; margin-top: 0.5rem; } /* ---- Error ---- */ .login-error { background: rgba(255, 115, 81, 0.1); color: #ff7351; padding: 0.75rem 1rem; border-radius: 4px; font-size: 0.875rem; font-family: 'Plus Jakarta Sans', sans-serif; margin-bottom: 1.5rem; border-left: 3px solid #ff7351; } /* ---- Form ---- */ .login-form { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 1rem; } .login-field { display: flex; flex-direction: column; gap: 0.4rem; } .login-field-label { font-family: 'Space Grotesk', monospace; font-size: 0.7rem; letter-spacing: 0.1em; color: #767575; } .login-input-wrap { position: relative; } .login-input { width: 100%; padding: 0.9rem 1rem; background: #1a1a1a; border: none; border-bottom: 2px solid #262626; border-radius: 4px 4px 0 0; color: #ffffff; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 16px; transition: border-color 150ms ease; outline: none; } .login-input:focus { border-bottom-color: #cafd00; background: #20201f; } .login-input::placeholder { color: #484847; } .login-input-wrap .login-input { padding-right: 3rem; } .login-toggle-pw { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); background: none; border: none; color: #767575; cursor: pointer; padding: 0.25rem; display: flex; align-items: center; transition: color 150ms ease; } .login-toggle-pw:hover { color: #adaaaa; } /* ---- Primary CTA ---- */ .login-btn-primary { margin-top: 0.5rem; width: 100%; padding: 1rem; background: linear-gradient(135deg, #cafd00 0%, #beee00 100%); color: #516700; font-family: 'Lexend', sans-serif; font-weight: 700; font-size: 0.875rem; letter-spacing: 0.1em; text-transform: uppercase; border: none; border-radius: 6px; cursor: pointer; transition: all 150ms ease; box-shadow: 0 4px 20px rgba(202, 253, 0, 0.25); display: flex; align-items: center; justify-content: center; min-height: 52px; } .login-btn-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 6px 28px rgba(202, 253, 0, 0.35); } .login-btn-primary:active:not(:disabled) { transform: translateY(0); } .login-btn-primary:disabled { opacity: 0.6; cursor: not-allowed; } .login-spinner { width: 18px; height: 18px; border: 2px solid rgba(81, 103, 0, 0.3); border-top-color: #516700; border-radius: 50%; animation: spin 0.7s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* ---- Forgot / register link ---- */ .login-forgot { display: block; text-align: center; color: #ff7440; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 0.875rem; text-decoration: none; padding: 0.75rem 0; transition: color 150ms ease; } .login-forgot:hover { color: #ff8c5a; } /* ---- Divider ---- */ .login-divider { display: flex; align-items: center; gap: 1rem; margin: 0.5rem 0; } .login-divider::before, .login-divider::after { content: ''; flex: 1; height: 1px; background: #1f1f1f; } .login-divider span { font-family: 'Space Grotesk', monospace; font-size: 0.7rem; letter-spacing: 0.1em; color: #484847; text-transform: uppercase; } /* ---- Ghost button ---- */ .login-btn-ghost { display: block; width: 100%; padding: 0.9rem; background: transparent; border: 1px solid #262626; border-radius: 6px; color: #adaaaa; font-family: 'Lexend', sans-serif; font-weight: 600; font-size: 0.875rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: center; text-decoration: none; cursor: pointer; transition: all 150ms ease; margin-top: 0.5rem; } .login-btn-ghost:hover { border-color: #484847; color: #ffffff; } /* ---- Footer ---- */ .login-footer { display: flex; align-items: center; justify-content: center; gap: 0.4rem; margin-top: 2.5rem; color: #484847; font-family: 'Space Grotesk', monospace; font-size: 0.7rem; letter-spacing: 0.05em; }