| |
| |
| |
| |
|
|
| @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap'); |
|
|
| :root { |
| |
| --xenex-bg: #050608; |
| --xenex-bg-deep: #020203; |
| --xenex-glass-fill: rgba(18, 21, 27, 0.52); |
| --xenex-glass-fill-soft: rgba(255, 255, 255, 0.035); |
| --xenex-glass-border: rgba(255, 255, 255, 0.14); |
| --xenex-glass-highlight: rgba(255, 255, 255, 0.55); |
| --xenex-text-primary: #eef1f5; |
| --xenex-text-secondary: #9aa3b0; |
| --xenex-text-tertiary: #5c6470; |
| --xenex-blue: #3f7cff; |
| --xenex-orange: #ff8a42; |
| --xenex-red: #ff3b4e; |
| --xenex-focus: #7db0ff; |
| --xenex-danger: #ff5468; |
|
|
| |
| --font-display: 'Space Grotesk', 'Segoe UI', system-ui, sans-serif; |
| --font-body: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif; |
|
|
| |
| --xenex-card-radius: 22px; |
| --xenex-field-radius: 12px; |
| --xenex-safe-top: env(safe-area-inset-top, 0px); |
| --xenex-safe-bottom: env(safe-area-inset-bottom, 0px); |
| --xenex-safe-left: env(safe-area-inset-left, 0px); |
| --xenex-safe-right: env(safe-area-inset-right, 0px); |
| } |
|
|
| |
| *, |
| *::before, |
| *::after { |
| box-sizing: border-box; |
| } |
|
|
| html, |
| body { |
| height: 100%; |
| } |
|
|
| body { |
| margin: 0; |
| } |
|
|
| |
| .xenex-body { |
| background: var(--xenex-bg); |
| font-family: var(--font-body); |
| color: var(--xenex-text-primary); |
| min-height: 100vh; |
| min-height: 100dvh; |
| overflow-x: hidden; |
| position: relative; |
| } |
|
|
| |
| |
| |
| .xenex-light-field { |
| position: fixed; |
| inset: 0; |
| overflow: hidden; |
| z-index: 0; |
| background: radial-gradient(120% 90% at 50% 0%, #0a0c10 0%, var(--xenex-bg-deep) 60%); |
| } |
|
|
| .xenex-light { |
| position: absolute; |
| width: 70vmax; |
| height: 70vmax; |
| border-radius: 50%; |
| filter: blur(2px); |
| opacity: 0.55; |
| will-change: transform; |
| animation: xenex-drift 34s ease-in-out infinite alternate; |
| } |
|
|
| .xenex-light--blue { |
| top: -20vmax; |
| left: -18vmax; |
| background: radial-gradient(circle, var(--xenex-blue) 0%, rgba(63, 124, 255, 0) 68%); |
| animation-duration: 38s; |
| } |
|
|
| .xenex-light--orange { |
| bottom: -26vmax; |
| right: -16vmax; |
| background: radial-gradient(circle, var(--xenex-orange) 0%, rgba(255, 138, 66, 0) 65%); |
| animation-duration: 30s; |
| animation-delay: -6s; |
| } |
|
|
| .xenex-light--red { |
| bottom: 10vh; |
| left: 20vw; |
| width: 55vmax; |
| height: 55vmax; |
| background: radial-gradient(circle, var(--xenex-red) 0%, rgba(255, 59, 78, 0) 62%); |
| opacity: 0.4; |
| animation-duration: 42s; |
| animation-delay: -18s; |
| } |
|
|
| @keyframes xenex-drift { |
| 0% { |
| transform: translate3d(0, 0, 0) scale(1); |
| } |
| 50% { |
| transform: translate3d(4vmax, 3vmax, 0) scale(1.08); |
| } |
| 100% { |
| transform: translate3d(-3vmax, 5vmax, 0) scale(0.97); |
| } |
| } |
|
|
| |
| .login-screen { |
| position: relative; |
| z-index: 1; |
| min-height: 100vh; |
| min-height: 100dvh; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| gap: 28px; |
| padding: calc(28px + var(--xenex-safe-top)) calc(20px + var(--xenex-safe-right)) |
| calc(28px + var(--xenex-safe-bottom)) calc(20px + var(--xenex-safe-left)); |
| } |
|
|
| |
| .login-card { |
| position: relative; |
| width: 100%; |
| max-width: 400px; |
| padding: 36px 28px 32px; |
| border-radius: var(--xenex-card-radius); |
| background: |
| linear-gradient(180deg, var(--xenex-glass-fill-soft) 0%, transparent 40%), |
| var(--xenex-glass-fill); |
| border: 1px solid var(--xenex-glass-border); |
| backdrop-filter: blur(22px) saturate(150%); |
| -webkit-backdrop-filter: blur(22px) saturate(150%); |
| box-shadow: |
| inset 0 1px 0 rgba(255, 255, 255, 0.08), |
| inset 0 0 40px rgba(255, 255, 255, 0.015), |
| 0 24px 70px rgba(0, 0, 0, 0.55); |
| } |
|
|
| |
| .login-card::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 12%; |
| right: 12%; |
| height: 1px; |
| background: linear-gradient(90deg, transparent, var(--xenex-glass-highlight), transparent); |
| opacity: 0.6; |
| } |
|
|
| |
| .login-brand { |
| display: flex; |
| align-items: baseline; |
| justify-content: center; |
| gap: 8px; |
| margin-bottom: 22px; |
| font-family: var(--font-display); |
| } |
|
|
| .login-brand__mark { |
| width: 9px; |
| height: 9px; |
| border-radius: 50%; |
| align-self: center; |
| background: linear-gradient(135deg, var(--xenex-blue), var(--xenex-red)); |
| box-shadow: 0 0 10px rgba(63, 124, 255, 0.7); |
| } |
|
|
| .login-brand__name { |
| font-size: 19px; |
| font-weight: 700; |
| letter-spacing: 0.01em; |
| color: var(--xenex-text-primary); |
| } |
|
|
| .login-brand__suffix { |
| font-size: 13px; |
| font-weight: 500; |
| color: var(--xenex-text-secondary); |
| } |
|
|
| |
| .login-heading { |
| font-family: var(--font-display); |
| font-size: 24px; |
| font-weight: 600; |
| line-height: 1.25; |
| text-align: center; |
| margin: 0 0 8px; |
| color: var(--xenex-text-primary); |
| } |
|
|
| .login-description { |
| font-size: 14px; |
| line-height: 1.5; |
| text-align: center; |
| color: var(--xenex-text-secondary); |
| margin: 0 0 28px; |
| } |
|
|
| |
| .login-form { |
| display: flex; |
| flex-direction: column; |
| gap: 16px; |
| } |
|
|
| .login-field { |
| display: flex; |
| flex-direction: column; |
| gap: 7px; |
| } |
|
|
| .login-field__label { |
| font-size: 13px; |
| font-weight: 500; |
| color: var(--xenex-text-secondary); |
| } |
|
|
| .login-field__control { |
| position: relative; |
| display: flex; |
| align-items: stretch; |
| } |
|
|
| .login-field__input { |
| width: 100%; |
| min-height: 48px; |
| padding: 12px 14px; |
| font-family: var(--font-body); |
| font-size: 15px; |
| color: var(--xenex-text-primary); |
| background: rgba(255, 255, 255, 0.04); |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| border-radius: var(--xenex-field-radius); |
| outline: none; |
| transition: border-color 0.15s ease, background-color 0.15s ease; |
| } |
|
|
| .login-field__control .login-field__input { |
| padding-right: 64px; |
| } |
|
|
| .login-field__input::placeholder { |
| color: var(--xenex-text-tertiary); |
| } |
|
|
| .login-field__input:hover { |
| border-color: rgba(255, 255, 255, 0.18); |
| } |
|
|
| .login-field__input:focus-visible { |
| border-color: var(--xenex-focus); |
| background: rgba(255, 255, 255, 0.06); |
| box-shadow: 0 0 0 3px rgba(125, 176, 255, 0.22); |
| } |
|
|
| .login-field__toggle { |
| position: absolute; |
| right: 6px; |
| top: 50%; |
| transform: translateY(-50%); |
| min-width: 44px; |
| min-height: 36px; |
| padding: 0 10px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| background: transparent; |
| border: none; |
| border-radius: 8px; |
| font-family: var(--font-body); |
| font-size: 12.5px; |
| font-weight: 500; |
| color: var(--xenex-text-secondary); |
| cursor: pointer; |
| transition: color 0.15s ease, background-color 0.15s ease; |
| } |
|
|
| .login-field__toggle:hover { |
| color: var(--xenex-text-primary); |
| background: rgba(255, 255, 255, 0.06); |
| } |
|
|
| .login-field__toggle:focus-visible { |
| outline: 2px solid var(--xenex-focus); |
| outline-offset: 2px; |
| } |
|
|
| |
| .login-form__meta { |
| display: flex; |
| justify-content: flex-end; |
| margin-top: -4px; |
| } |
|
|
| .login-link { |
| color: var(--xenex-text-secondary); |
| font-size: 13px; |
| text-decoration: none; |
| border-bottom: 1px solid transparent; |
| transition: color 0.15s ease, border-color 0.15s ease; |
| } |
|
|
| .login-link:hover { |
| color: var(--xenex-focus); |
| border-bottom-color: currentColor; |
| } |
|
|
| .login-link:focus-visible { |
| outline: 2px solid var(--xenex-focus); |
| outline-offset: 3px; |
| border-radius: 2px; |
| } |
|
|
| |
| .login-submit { |
| min-height: 48px; |
| margin-top: 6px; |
| border: 1px solid rgba(255, 255, 255, 0.16); |
| border-radius: var(--xenex-field-radius); |
| background: linear-gradient(180deg, rgba(63, 124, 255, 0.9), rgba(63, 124, 255, 0.72)); |
| color: #f5f8ff; |
| font-family: var(--font-body); |
| font-size: 15px; |
| font-weight: 600; |
| cursor: pointer; |
| transition: transform 0.12s ease, box-shadow 0.15s ease, background 0.15s ease; |
| box-shadow: 0 10px 24px rgba(63, 124, 255, 0.28); |
| } |
|
|
| .login-submit:hover { |
| background: linear-gradient(180deg, rgba(78, 135, 255, 0.95), rgba(63, 124, 255, 0.8)); |
| } |
|
|
| .login-submit:active { |
| transform: translateY(1px); |
| } |
|
|
| .login-submit:focus-visible { |
| outline: 2px solid var(--xenex-focus); |
| outline-offset: 3px; |
| } |
|
|
| |
| .login-signup { |
| text-align: center; |
| font-size: 13.5px; |
| color: var(--xenex-text-secondary); |
| margin: 22px 0 0; |
| } |
|
|
| .login-signup .login-link { |
| color: var(--xenex-text-primary); |
| font-weight: 500; |
| } |
|
|
| |
| .login-footer { |
| position: relative; |
| z-index: 1; |
| display: flex; |
| align-items: center; |
| gap: 10px; |
| } |
|
|
| .login-link--footer { |
| font-size: 12.5px; |
| color: var(--xenex-text-tertiary); |
| } |
|
|
| .login-footer__divider { |
| width: 3px; |
| height: 3px; |
| border-radius: 50%; |
| background: var(--xenex-text-tertiary); |
| } |
|
|
| |
| |
| |
|
|
| |
| @media (max-width: 389px) { |
| .login-card { |
| padding: 28px 20px 26px; |
| border-radius: 18px; |
| } |
|
|
| .login-heading { |
| font-size: 21px; |
| } |
| } |
|
|
| |
| @media (min-width: 700px) { |
| .login-card { |
| max-width: 420px; |
| padding: 44px 40px 38px; |
| } |
|
|
| .login-heading { |
| font-size: 26px; |
| } |
| } |
|
|
| |
| @media (max-height: 480px) and (orientation: landscape) { |
| .login-screen { |
| justify-content: flex-start; |
| padding-top: calc(18px + var(--xenex-safe-top)); |
| padding-bottom: calc(18px + var(--xenex-safe-bottom)); |
| } |
|
|
| .login-card { |
| padding: 22px 26px; |
| } |
|
|
| .login-brand { |
| margin-bottom: 14px; |
| } |
|
|
| .login-description { |
| margin-bottom: 18px; |
| } |
| } |
|
|
| |
| @media (prefers-reduced-motion: reduce) { |
| .xenex-light { |
| animation: none; |
| } |
| } |
|
|