:root {
    --bg: #0b0b10;
    --fg: #e9ecf1;
    --muted: #bdbdbd;
    --logo-dur: 500ms;
    --logo-delay: 0ms;
    --intro-dur: 900ms;
    --intro-delay: 500ms;
    --between-delay: 200ms;
    --tag-dur: 800ms;
    --tag-delay: calc(var(--intro-delay) + var(--intro-dur) + var(--between-delay));
    --card: rgba(255,255,255,0.04);
    --card-border: rgba(255,255,255,0.08);
}

html, body {
    height: 100%;
    margin: 0;
    background: var(--bg);
    color: var(--fg);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", "Inter", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: 0.01em;
}

/* Force all links to stay white (no purple visited links) */
a:link,
a:visited {
    color: var(--fg);
}

a:hover,
a:active {
    color: var(--fg);
}

.wrap {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 6vh 5vw 4vh;
}

.brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    max-width: min(1000px, 92vw);
}

    .brand img {
        width: min(560px, 72vw);
        height: auto;
        display: block;
        opacity: 0;
        animation: fadeUp var(--logo-dur) ease-out var(--logo-delay) forwards;
    }

.badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    /* Accent background that pops on dark */
    background: linear-gradient(90deg, rgba(40, 140, 255, 0.26), rgba(120, 70, 255, 0.18) );
    border: 1px solid rgba(255,255,255,0.16);
    color: var(--fg);
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    /* Subtle glow */
    box-shadow: 0 10px 30px rgba(30, 120, 255, 0.12), 0 0 0 1px rgba(255,255,255,0.06) inset;
    opacity: 0;
    animation: fadeUp 600ms ease-out calc(var(--logo-delay) + var(--logo-dur) + 120ms) forwards;
}

    .badge::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: rgba(255,255,255,0.92);
        box-shadow: 0 0 12px rgba(120, 180, 255, 0.55);
        display: inline-block;
    }

.intro {
    max-width: 880px;
    font-size: clamp(14px, 1.6vw, 18px);
    line-height: 1.65;
    opacity: 0;
    animation: fadeUp var(--intro-dur) ease-out var(--intro-delay) forwards;
}

    .intro p {
        margin: 0 0 12px;
    }

.proof {
    opacity: 0;
    animation: fadeUp 650ms ease-out calc(var(--intro-delay) + 150ms) forwards;
    color: var(--muted);
    font-size: clamp(13px, 1.4vw, 16px);
}

    .proof a {
        color: var(--fg);
        text-decoration: none;
        border-bottom: 1px solid rgba(255,255,255,0.18);
    }

        .proof a:hover {
            border-bottom-color: rgba(255,255,255,0.35);
        }

.tagline {
    text-transform: uppercase;
    font-weight: 600;
    font-size: clamp(14px, 2.1vw, 18px);
    letter-spacing: 0.18em;
    line-height: 1.4;
    opacity: 0;
    animation: fadeUp var(--tag-dur) ease-out var(--tag-delay) forwards;
}

.cta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    opacity: 0;
    animation: fadeUp 650ms ease-out calc(var(--tag-delay) + 150ms) forwards;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    border: 1px solid var(--card-border);
    color: var(--fg);
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 0.02em;
}

    .btn:hover {
        background: rgba(255,255,255,0.11);
    }

    .btn.primary {
        background: rgba(255,255,255,0.14);
    }

.waitlist {
    width: min(780px, 92vw);
    margin-top: 10px;
    padding: 16px;
    border-radius: 16px;
    background: var(--card);
    border: 1px solid var(--card-border);
    opacity: 0;
    animation: fadeUp 650ms ease-out calc(var(--tag-delay) + 280ms) forwards;
    text-align: left;
}

    .waitlist h2 {
        margin: 0 0 10px;
        font-size: 16px;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--fg);
    }

    .waitlist .row {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        align-items: center;
    }

.select, .input {
    border-radius: 10px;
    border: 1px solid var(--card-border);
    background: rgba(0,0,0,0.22);
    color: var(--fg);
    padding: 10px 12px;
    outline: none;
}

.input {
    flex: 1 1 240px;
    min-width: 220px;
}

.select {
    flex: 0 0 190px;
}

.waitlist .note {
    margin-top: 10px;
    color: var(--muted);
    font-size: 13px;
}

footer {
    flex: 0 0 auto;
    font-weight: 400;
    font-stretch: condensed;
    letter-spacing: 0.12em;
    color: var(--muted);
    font-size: clamp(11px, 1.6vw, 13px);
    text-align: center;
    padding: 18px 0 24px;
}

.login-link {
    position: fixed;
    top: 16px;
    right: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--card-border);
    text-decoration: none;
    color: var(--fg);
    z-index: 20;
}

    .login-link:hover {
        background: rgba(255,255,255,0.10);
    }

    .login-link svg {
        fill: currentColor;
        opacity: 0.9;
    }

.validation {
    color: #ffb3b3;
    font-size: 13px;
    margin-top: 8px;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .brand img, .intro, .tagline, .cta, .waitlist, .proof {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}
