@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Syne:wght@600;700;800&display=swap");

:root {
    --vl-bg: #070709;
    --vl-panel: #0b0b0f;
    --vl-surface: #121216;
    --vl-red: #8e2a36;
    --vl-crimson: #b03a47;
    --vl-burgundy: #5a1822;
    --vl-text: #f5f5f7;
    --vl-muted: #a3a3ad;
    --vl-dim: #73737e;
    --vl-line: #22222a;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
}

body.vl {
    min-height: 100vh;
    background: var(--vl-bg);
    color: var(--vl-text);
    font-family: Inter, system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
}

.vl-shell {
    display: grid;
    grid-template-columns: minmax(0, 0.45fr) minmax(380px, 0.55fr);
    min-height: 100vh;
}

.vl-brand {
    position: relative;
    display: flex;
    align-items: center;
    padding: 56px 56px 48px;
    background: #09090c;
    border-right: 1px solid var(--vl-line);
}

.vl-brand-bg {
    display: none;
}

.vl-brand-inner {
    position: relative;
    z-index: 1;
    max-width: 520px;
}

.vl-lockup {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 28px;
}

.vl-mark {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    background: #b03a47;
    clip-path: polygon(50% 6%, 100% 94%, 76% 94%, 50% 42%, 24% 94%, 0 94%);
}

.vl-wordmark {
    margin: 0;
    color: #fff;
    font-family: Syne, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.42em;
}

.vl-headline {
    margin: 0 0 16px;
    color: #fff;
    font-family: Syne, sans-serif;
    font-size: clamp(32px, 3.8vw, 48px);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.04;
}

.vl-lead {
    margin: 0 0 32px;
    max-width: 38ch;
    color: var(--vl-muted);
    font-size: 15px;
    line-height: 1.7;
}

.vl-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.vl-feature {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 14px;
    color: #ececf1;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.35;
    background: var(--vl-panel);
    border: 1px solid var(--vl-line);
    border-radius: 6px;
}

.vl-feature:hover {
    background: #101014;
}

.vl-feature-icon {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    color: #d7a0a7;
    background: var(--vl-surface);
    border: 1px solid var(--vl-line);
    border-radius: 6px;
}

.vl-feature-icon svg {
    width: 16px;
    height: 16px;
}

.vl-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 28px 0 0;
    color: var(--vl-dim);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.16em;
}

.vl-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ade80;
}

.vl-panel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 32px;
    background: #0a0a0d;
}

.vl-panel-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    padding: 36px 32px 28px;
    background: var(--vl-panel);
    border: 1px solid var(--vl-line);
    border-radius: 6px;
}

.vl-head {
    margin-bottom: 26px;
}

.vl-head h2 {
    margin: 0 0 6px;
    font-family: Syne, sans-serif;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.04em;
}

.vl-head p {
    margin: 0;
    color: var(--vl-muted);
    font-size: 15px;
}

.vl-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 20px;
    padding: 12px 14px;
    color: #f0c9cd;
    font-size: 13px;
    line-height: 1.45;
    background: #1a1012;
    border: 1px solid #5a3038;
    border-radius: 6px;
}

.vl-alert svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-top: 1px;
}

.vl-ok {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 20px;
    padding: 12px 14px;
    color: #cfe8d6;
    font-size: 13px;
    line-height: 1.45;
    background: #101810;
    border: 1px solid #2a4a32;
    border-radius: 6px;
}

.vl-ok svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-top: 1px;
}

.vl-register .vl-head {
    margin-bottom: 20px;
}

.vl-register .vl-field {
    margin-bottom: 14px;
}

.vl-field {
    margin-bottom: 18px;
}

.vl-field label {
    display: block;
    margin-bottom: 8px;
    color: var(--vl-dim);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.vl-input {
    position: relative;
    display: flex;
    align-items: center;
}

.vl-input-icon {
    position: absolute;
    left: 15px;
    width: 17px;
    height: 17px;
    color: var(--vl-dim);
    pointer-events: none;
}

.vl-input input {
    width: 100%;
    height: 48px;
    padding: 0 44px 0 44px;
    color: var(--vl-text);
    font-family: inherit;
    font-size: 15px;
    background: var(--vl-surface);
    border: 1px solid var(--vl-line);
    border-radius: 6px;
    outline: none;
}

.vl-input input::placeholder {
    color: #6d6d78;
}

.vl-input:focus-within .vl-input-icon {
    color: #d7a0a7;
}

.vl-input input:focus {
    background: #16161c;
    border-color: #8e2a36;
}

.vl-eye {
    position: absolute;
    right: 8px;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    color: var(--vl-dim);
    background: transparent;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
}

.vl-eye:hover {
    color: var(--vl-text);
}

.vl-eye svg {
    width: 18px;
    height: 18px;
}

.vl-eye-on {
    display: none;
}

.vl-eye.is-on .vl-eye-off {
    display: none;
}

.vl-eye.is-on .vl-eye-on {
    display: block;
}

.vl-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 22px;
}

.vl-check {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--vl-muted);
    font-size: 13px;
    cursor: pointer;
}

.vl-check input {
    accent-color: var(--vl-crimson);
}

.vl-link,
.vl-foot a {
    color: #d7a0a7;
    font-size: 13px;
    text-decoration: none;
}

.vl-link:hover,
.vl-foot a:hover {
    color: #fff;
}

.vl-submit {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    padding: 14px 18px;
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: #8e2a36;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
}

.vl-submit:hover {
    background: #b03a47;
}

.vl-submit:active {
    background: #5a1822;
}

.vl-submit-spin {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.25);
    border-top-color: #fff;
    border-radius: 50%;
    animation: vl-spin 0.7s linear infinite;
}

.vl-form.is-submitting .vl-submit {
    pointer-events: none;
    opacity: 0.85;
}

.vl-form.is-submitting .vl-submit-label {
    opacity: 0.35;
}

.vl-form.is-submitting .vl-submit-spin {
    display: block;
    position: absolute;
    right: 18px;
}

.vl-foot {
    margin: 24px 0 0;
    color: var(--vl-dim);
    font-size: 13px;
    text-align: center;
}

@keyframes vl-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 1100px) {
    .vl-shell {
        grid-template-columns: minmax(0, 0.38fr) minmax(360px, 0.62fr);
    }

    .vl-brand {
        padding: 40px 32px;
    }

    .vl-features {
        grid-template-columns: 1fr;
    }

    .vl-panel-inner {
        padding: 28px 24px 24px;
    }
}

@media (max-width: 860px) {
    .vl-shell {
        grid-template-columns: 1fr;
    }

    .vl-brand {
        min-height: 0;
        padding: 22px 22px 18px;
        background: #0a0a0d;
        border-right: 0;
        border-bottom: 1px solid var(--vl-line);
    }

    .vl-headline,
    .vl-lead,
    .vl-features,
    .vl-status {
        display: none;
    }

    .vl-lockup {
        margin: 0;
    }

    .vl-panel {
        min-height: calc(100vh - 62px);
        padding: 28px 18px 40px;
    }

    .vl-panel-inner {
        padding: 24px 18px 20px;
    }
}
