/*!
 * Sign-in, sign-up and password screens in the marketing site's look:
 * Space Grotesk, ink pill buttons, soft inputs, and a half-width selling
 * panel on the left with the form on the right.
 */
@font-face { font-family: "Space Grotesk"; src: url("fonts/SpaceGrotesk-latin-ext.woff2") format("woff2"); font-weight: 300 700; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Space Grotesk"; src: url("fonts/SpaceGrotesk-latin.woff2") format("woff2"); font-weight: 300 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD; }

:root {
    --lpa-ink: #0B0B0C; --lpa-green: #122020; --lpa-brand: #127A64; --lpa-lime: #9EFC65;
    --lpa-panel: #F0F0F0; --lpa-muted: #6A6E6E; --lpa-muted-dark: #B7BCBC;
    --default-font-family: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
}
body { font-family: "Space Grotesk", ui-sans-serif, system-ui, sans-serif !important; }

/* A wide photo card on the left, the form on the right. */
.authentication-cover-main { min-height: 100vh; }
@media (min-width: 1200px) {
    .authentication-cover-main > .col-xxl-9.col-xl-9 { flex: 0 0 42%; max-width: 42%; width: 42%; order: 2; }
    .authentication-cover-main > .lp-auth-cover-col { flex: 0 0 58%; max-width: 58%; width: 58%; order: 1; }
}
.authentication-cover-main > .col-xxl-9 > .row > [class*="col-xxl-4"] { flex: 0 0 auto; width: min(500px, 100%); max-width: 100%; }

/* The form card: flat, roomy, rounded. */
.authentication .custom-card { border-radius: 30px !important; }
.authentication .card-body { padding: 44px !important; }
.authentication h4, .authentication .h4 { font-family: "Space Grotesk", sans-serif; font-size: 30px; font-weight: 600; letter-spacing: -.02em; color: var(--lpa-ink); }
.authentication .form-control, .authentication .form-select { border-radius: 14px; min-height: 50px; border-color: rgba(11, 11, 12, .1); background-color: #fff; font-family: inherit; }
.authentication .form-control:focus, .authentication .form-select:focus { border-color: var(--lpa-brand); box-shadow: 0 0 0 4px rgba(18, 122, 100, .12); }
.authentication .input-group .form-control { border-radius: 14px 0 0 14px; }
.authentication .input-group > :last-child:not(.form-control) { border-radius: 0 14px 14px 0; }
.authentication .btn { border-radius: 100px; font-family: inherit; min-height: 50px; transition: transform .2s ease, background .25s ease, box-shadow .25s ease; }
.authentication .btn:active { transform: scale(.97); }
.authentication .btn-primary { background: var(--lpa-ink) !important; border-color: var(--lpa-ink) !important; color: #fff !important; box-shadow: 0 5px 14px rgba(11, 11, 12, .3), 0 14px 40px rgba(11, 11, 12, .2); }
.authentication .btn-primary:hover { background: var(--lpa-brand) !important; border-color: var(--lpa-brand) !important; }
.authentication a { text-decoration: none; }
.authentication .legal-link { text-decoration: none !important; background: linear-gradient(rgba(158, 252, 101, .5), rgba(158, 252, 101, .5)) no-repeat 0 92% / 0 38%; transition: background-size .3s ease; }
.authentication .legal-link:hover { background-size: 100% 38%; opacity: 1 !important; }

/* The selling panel: the hero photo fills the whole left side, edge to edge,
   with the words over a dark fade. */
.lp-auth-cover-col { padding: 0 !important; }
.lp-auth-cover { position: sticky; top: 0; height: 100vh; min-height: 560px; border-radius: 0; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; justify-content: space-between; padding: 44px 48px; color: #fff; background: var(--lpa-green); }
.lp-auth-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.04); animation: lpa-zoom 18s ease-in-out infinite alternate; }
.lp-auth-cover::before { content: ""; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(10, 18, 17, .55) 0%, rgba(10, 18, 17, .05) 28%, rgba(10, 18, 17, .25) 52%, rgba(10, 18, 17, .92) 100%); }
@keyframes lpa-zoom { to { transform: scale(1.12); } }
.lp-auth-cover > * { position: relative; }
.lp-auth-cover > .lp-auth-bg { position: absolute; }
.lp-auth-cover-col { background: var(--lpa-green); align-self: stretch; }
.lp-auth-cover > .lp-auth-copy { margin-top: auto; }
.lp-auth-cover > .lp-auth-float--a { top: 48px; right: 48px; left: auto; }
.lp-auth-cover > .lp-auth-float--b { top: 34%; left: 48px; right: auto; }
.lp-auth-float { position: absolute !important; }
.lp-auth-float--a { left: auto; right: 40px; top: 120px; }
.lp-auth-float--b { left: 48px; right: auto; top: 46%; bottom: auto; }
/* The right side: brand above the form, the moving square pattern behind it. */
.authentication-cover-main { position: relative; }
.authentication-cover-main > .col-xxl-9 { position: relative; z-index: 1; }
.lp-auth-brand--form { position: absolute; z-index: 2; top: 36px; left: 0; right: auto; width: 100%; justify-content: center; color: var(--lpa-ink) !important; }
.lp-auth-brand--form b { color: var(--lpa-brand) !important; }
.lp-auth-squares { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; pointer-events: none; color: rgba(18, 122, 100, .07);
    -webkit-mask-image: radial-gradient(70% 60% at 50% 50%, transparent 30%, #000 85%); mask-image: radial-gradient(70% 60% at 50% 50%, transparent 30%, #000 85%); }
@media (min-width: 1200px) {
    .lp-auth-brand--form { left: 58%; width: 42%; }
    .lp-auth-squares { left: 58%; width: 42%; }
}
.authentication-cover-main > .col-xxl-9 .card-body { padding-top: 96px !important; }
/* Once the script moves it into the card: left-aligned above the heading. */
.lp-auth-brand--form.is-in-card { position: static; width: auto; margin: 0 0 34px; justify-content: flex-start; }
.authentication-cover-main > .col-xxl-9 .card-body:has(.is-in-card) { padding-top: 44px !important; }
[data-theme-mode="dark"] .lp-auth-brand--form { color: #f3f3f1 !important; }
[data-theme-mode="dark"] .lp-auth-brand--form b { color: var(--lpa-lime) !important; }
[data-theme-mode="dark"] .lp-auth-squares { color: rgba(158, 252, 101, .05); }
.authentication .custom-card { background: transparent !important; }
.lp-auth-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font: 600 24px/1 "Space Grotesk", sans-serif; letter-spacing: -.03em; }
.lp-auth-brand b { color: var(--lpa-lime); font-weight: 600; }
.lp-auth-brand img { filter: brightness(1.1); }
.lp-auth-copy { display: flex; flex-direction: column; gap: 16px; max-width: 560px; }
.lp-auth-badge { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 100px; background: rgba(255, 255, 255, .08); font-size: 13px; }
.lp-auth-badge i { width: 6px; height: 6px; border-radius: 50%; background: var(--lpa-lime); }
.lp-auth-copy h2 { font: 600 clamp(32px, 2.8vw, 46px)/1.08 "Space Grotesk", sans-serif; letter-spacing: -.02em; color: #fff; margin: 0; }
.lp-auth-copy p { color: var(--lpa-muted-dark); font-size: 17px; line-height: 1.55; margin: 0; }
.lp-auth-copy p { color: #dfe5e3; }
.lp-auth-badge { background: rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.lp-auth-float { position: absolute; display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 10px; border-radius: 16px; background: rgba(255, 255, 255, .95); color: var(--lpa-ink); box-shadow: 0 16px 40px rgba(0, 0, 0, .25); animation: lpa-bob 6s ease-in-out infinite; }
.lp-auth-float i { width: 32px; height: 32px; border-radius: 10px; background: var(--lpa-lime); display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 13px; }
.lp-auth-float b { display: block; font: 600 14px/1.2 "Space Grotesk", sans-serif; }
.lp-auth-float small { display: block; color: var(--lpa-muted); font-size: 12px; }
.lp-auth-float--b { animation-delay: 1.2s; }
@keyframes lpa-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.lp-auth-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.lp-auth-stats { margin-top: 10px; }
.lp-auth-stats div { padding: 14px 16px; border-radius: 18px; background: rgba(255, 255, 255, .1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.lp-auth-stats b { display: block; font: 600 26px/1 "Space Grotesk", sans-serif; color: var(--lpa-lime); letter-spacing: -.02em; }
.lp-auth-stats small { color: #dfe5e3; font-size: 12px; }
@media (max-height: 720px) { .lp-auth-float { display: none; } }
@media (prefers-reduced-motion: reduce) { .lp-auth-float, .lp-auth-bg { animation: none; } }

/* Dark panel theme, when the app is in dark mode. */
[data-theme-mode="dark"] .authentication h4 { color: #f3f3f1; }
[data-theme-mode="dark"] .authentication .form-control { background-color: #18191b; border-color: rgba(255, 255, 255, .1); color: #f3f3f1; }
