:root {
    --space-black: #000000;
    --deep-space: #000002;
    --midnight: #060120;
    --nebula-purple: #a0299a;
    --cosmic-pink: #d31c85;
    --plum: #7b1863;
    --star-cyan: #6df6fb;
    --steel-blue: #5e728f;
    --text: #f7fbff;
    --muted: #c5d3e8;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    overflow-x: hidden;
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
    background:
        radial-gradient(circle at 18% 20%, rgba(109, 246, 251, 0.18), transparent 28rem),
        radial-gradient(circle at 82% 18%, rgba(211, 28, 133, 0.28), transparent 24rem),
        radial-gradient(circle at 50% 78%, rgba(160, 41, 154, 0.3), transparent 26rem),
        linear-gradient(145deg, var(--deep-space), var(--midnight) 45%, var(--space-black));
}

body::before,
body::after {
    position: fixed;
    inset: 0;
    pointer-events: none;
    content: "";
}

body::before {
    opacity: 0.62;
    background-image:
        radial-gradient(circle, rgba(255, 255, 255, 0.92) 0 1px, transparent 1.4px),
        radial-gradient(circle, rgba(109, 246, 251, 0.8) 0 1px, transparent 1.5px),
        radial-gradient(circle, rgba(211, 28, 133, 0.72) 0 1px, transparent 1.6px);
    background-position: 0 0, 4rem 6rem, 9rem 2rem;
    background-size: 8rem 8rem, 11rem 11rem, 14rem 14rem;
}

body::after {
    background:
        linear-gradient(115deg, transparent 0 42%, rgba(109, 246, 251, 0.08) 48%, transparent 56%),
        linear-gradient(70deg, transparent 0 52%, rgba(211, 28, 133, 0.1) 57%, transparent 64%);
    filter: blur(2px);
}

.coming-soon {
    position: relative;
    display: grid;
    min-height: calc(100vh - 4.5rem);
    place-items: center;
    padding: 3rem 1.25rem 1.5rem;
    isolation: isolate;
}

.coming-soon::before {
    position: absolute;
    width: min(52rem, 78vw);
    height: min(52rem, 78vw);
    border: 1px solid rgba(109, 246, 251, 0.18);
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(109, 246, 251, 0.12), transparent 58%),
        conic-gradient(from 160deg, rgba(109, 246, 251, 0.18), rgba(160, 41, 154, 0.08), rgba(211, 28, 133, 0.18), rgba(109, 246, 251, 0.18));
    box-shadow:
        0 0 5rem rgba(109, 246, 251, 0.16),
        inset 0 0 5rem rgba(211, 28, 133, 0.12);
    content: "";
    filter: blur(0.2px);
    z-index: -2;
}

.hero {
    position: relative;
    width: min(100%, 58rem);
    padding: clamp(2rem, 5vw, 4rem) 1rem;
    text-align: center;
    text-shadow: 0 0 1.5rem rgba(0, 0, 2, 0.88);
}

.hero::before {
    position: absolute;
    inset: 8% 0 auto;
    width: min(32rem, 78vw);
    height: min(32rem, 78vw);
    margin: auto;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(109, 246, 251, 0.2), transparent 56%),
        radial-gradient(circle at 55% 45%, rgba(211, 28, 133, 0.36), transparent 36%);
    content: "";
    filter: blur(2.5rem);
    z-index: -1;
}

.brand-logo {
    display: block;
    width: min(18rem, 70vw);
    height: auto;
    margin: 0 auto 1.5rem;
    filter:
        drop-shadow(0 0 1rem rgba(109, 246, 251, 0.62))
        drop-shadow(0 0 2.4rem rgba(211, 28, 133, 0.42));
}

.eyebrow {
    display: inline-block;
    margin: 0 0 0.95rem;
    padding: 0.5rem 0.85rem;
    border: 1px solid rgba(109, 246, 251, 0.34);
    border-radius: 999px;
    color: var(--star-cyan);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(6, 1, 32, 0.66);
    box-shadow: 0 0 1.2rem rgba(109, 246, 251, 0.12);
}

h1 {
    max-width: 15.5ch;
    margin: 0 auto;
    font-size: clamp(2.55rem, 7vw, 5.8rem);
    line-height: 0.98;
    letter-spacing: 0;
    text-align: center;
    text-wrap: balance;
    overflow-wrap: normal;
}

.subheading {
    max-width: 42rem;
    margin: 1.35rem auto 0;
    color: var(--muted);
    font-size: clamp(1.08rem, 2.6vw, 1.55rem);
    line-height: 1.5;
}

.message {
    max-width: 37rem;
    margin: 0.85rem auto 0;
    color: rgba(247, 251, 255, 0.82);
    font-size: clamp(0.98rem, 2.2vw, 1.15rem);
    line-height: 1.65;
}

.journey-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25rem;
    margin-top: 2rem;
    padding: 0.9rem 1.4rem;
    border: 1px solid rgba(109, 246, 251, 0.72);
    border-radius: 999px;
    color: var(--deep-space);
    font-weight: 800;
    text-decoration: none;
    background:
        linear-gradient(135deg, var(--star-cyan), #ffffff 44%, var(--cosmic-pink));
    box-shadow:
        0 0 1.2rem rgba(109, 246, 251, 0.42),
        0 0 2.4rem rgba(211, 28, 133, 0.32);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.journey-link:hover,
.journey-link:focus-visible {
    transform: translateY(-2px);
    box-shadow:
        0 0 1.5rem rgba(109, 246, 251, 0.62),
        0 0 3rem rgba(211, 28, 133, 0.45);
}

.journey-link:focus-visible {
    outline: 3px solid var(--star-cyan);
    outline-offset: 4px;
}

.stars {
    position: absolute;
    width: 0.35rem;
    height: 0.35rem;
    border-radius: 50%;
    background: var(--star-cyan);
    box-shadow:
        9vw 18vh 0 rgba(255, 255, 255, 0.9),
        16vw 69vh 0 rgba(211, 28, 133, 0.8),
        29vw 28vh 0 rgba(109, 246, 251, 0.95),
        72vw 22vh 0 rgba(255, 255, 255, 0.85),
        84vw 65vh 0 rgba(160, 41, 154, 0.95),
        92vw 38vh 0 rgba(109, 246, 251, 0.9);
    opacity: 0.76;
    z-index: -1;
}

.stars-two {
    transform: translate(3rem, 2rem) scale(0.65);
    opacity: 0.55;
    box-shadow:
        8vw 48vh 0 rgba(255, 255, 255, 0.75),
        21vw 14vh 0 rgba(109, 246, 251, 0.85),
        42vw 76vh 0 rgba(211, 28, 133, 0.85),
        63vw 17vh 0 rgba(255, 255, 255, 0.75),
        77vw 82vh 0 rgba(94, 114, 143, 0.9),
        95vw 58vh 0 rgba(109, 246, 251, 0.8);
}

.site-footer {
    position: relative;
    min-height: 4.5rem;
    padding: 1.4rem 1rem 2rem;
    color: rgba(247, 251, 255, 0.72);
    font-size: 0.9rem;
    text-align: center;
}

@media (max-width: 640px) {
    .coming-soon {
        min-height: calc(100vh - 5rem);
        padding-top: 1.25rem;
    }

    .hero {
        padding-block: 1.75rem;
    }

    .brand-logo {
        width: min(14rem, 74vw);
        margin-bottom: 1.15rem;
    }

    h1 {
        max-width: 12ch;
        font-size: clamp(2.35rem, 14vw, 4.2rem);
    }

    .journey-link {
        width: min(100%, 17rem);
    }
}
