@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap');

/* =====================================================
   TOKENS
===================================================== */

:root {
    /* Core palette */
    --bg: #F6F7FF;
    --surface: #FFFFFF;
    --surface-tint: #EEF0FF;

    /* Text */
    --ink: #182044;
    --ink-soft: #5B6480;
    --ink-faint: #8A91AA;

    /* Borders */
    --line: #DDE1F2;

    /* Lumen blue → violet */
    --accent: #82B8F5;
    --accent-deep: #6679D8;
    --accent-dark: #4654A8;
    --accent-purple: #6B5FC7;
    --accent-soft: rgba(102, 121, 216, 0.12);

    /* Supporting shades */
    --blue-soft: #E3E9FF;
    --blue-pale: #F3F5FF;

    /* Typography */
    --font-display: "Fraunces", Georgia, sans-serif;
    --font-body: "Inter", "Segoe UI", Arial, sans-serif;
}


/* =====================================================
   RESET
===================================================== */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;

    font-family: var(--font-body);
    background: var(--bg);
    color: var(--ink);

    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}


/* =====================================================
   HERO
===================================================== */

.landing {
    position: relative;

    min-height: 100vh;
    min-height: 100svh;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--bg);

    overflow: hidden;
}


/* Soft blue-violet Lumen glow */

.hero-glow {
    position: absolute;

    top: -20%;
    right: -12%;

    width: 60vw;
    height: 60vw;

    max-width: 780px;
    max-height: 780px;

    background:
        radial-gradient(
            circle,
            rgba(130, 184, 245, 0.26) 0%,
            rgba(107, 95, 199, 0.13) 42%,
            rgba(107, 95, 199, 0) 72%
        );

    filter: blur(2px);

    pointer-events: none;
}
/* =====================================================
   HERO STARS
===================================================== */

.hero-stars {
    position: absolute;
    inset: 0;
    z-index: 3;
}


/* Base star */

.star {
    position: absolute;
    display: block;

    object-fit: contain;

    opacity: 0.9;

    cursor: pointer;

    transition:
        transform 0.25s ease,
        opacity 0.25s ease,
        filter 0.25s ease;
}

/* =====================================================
   EXTENDED STAR FIELD
===================================================== */

.star-1 {
    top: 7%;
    left: 8%;
    width: 72px;
    height: 72px;
}

.star-2 {
    top: 12%;
    right: 9%;
    width: 92px;
    height: 92px;
}

.star-3 {
    top: 38%;
    left: 3%;
    width: 58px;
    height: 58px;
}

.star-4 {
    top: 34%;
    right: 4%;
    width: 78px;
    height: 78px;
}

.star-5 {
    bottom: 8%;
    left: 9%;
    width: 64px;
    height: 64px;
}

.star-6 {
    bottom: 12%;
    right: 10%;
    width: 86px;
    height: 86px;
}


/* Additional stars */

.star-7 {
    top: 22%;
    left: 23%;
    width: 42px;
    height: 42px;
}

.star-8 {
    top: 17%;
    right: 25%;
    width: 54px;
    height: 54px;
}

.star-9 {
    top: 65%;
    left: 17%;
    width: 48px;
    height: 48px;
}

.star-10 {
    top: 62%;
    right: 18%;
    width: 60px;
    height: 60px;
}

.star-11 {
    bottom: 25%;
    left: 30%;
    width: 38px;
    height: 38px;
}

.star-12 {
    bottom: 28%;
    right: 29%;
    width: 46px;
    height: 46px;
}


/* =====================================================
   STAR HOVER
===================================================== */

.star:hover {
    opacity: 1;

    filter:
        drop-shadow(0 0 10px rgba(130, 184, 245, 0.7))
        drop-shadow(0 0 24px rgba(107, 95, 199, 0.45));
}

.star-1:hover {
    transform: scale(1.45) rotate(-15deg);
}

.star-2:hover {
    transform: scale(1.4) rotate(15deg);
}

.star-3:hover {
    transform: scale(1.55) rotate(12deg);
}

.star-4:hover {
    transform: scale(1.4) rotate(-18deg);
}

.star-5:hover {
    transform: scale(1.5) rotate(15deg);
}

.star-6:hover {
    transform: scale(1.4) rotate(-12deg);
}

.star-7:hover {
    transform: scale(1.7) rotate(20deg);
}

.star-8:hover {
    transform: scale(1.6) rotate(-15deg);
}

.star-9:hover {
    transform: scale(1.65) rotate(15deg);
}

.star-10:hover {
    transform: scale(1.5) rotate(-20deg);
}

.star-11:hover {
    transform: scale(1.8) rotate(18deg);
}

.star-12:hover {
    transform: scale(1.65) rotate(-18deg);
}

/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 700px) {

    .star-1 {
        top: 7%;
        left: 5%;

        width: 55px;
        height: 55px;
    }

    .star-2 {
        top: 13%;
        right: 4%;

        width: 48px;
        height: 48px;
    }

    .star-3 {
        top: 47%;
        left: 2%;

        width: 42px;
        height: 42px;
    }

    .star-4 {
        top: 35%;
        right: 2%;

        width: 58px;
        height: 58px;
    }

    .star-5 {
        bottom: 8%;
        left: 5%;

        width: 45px;
        height: 45px;
    }

    .star-6 {
        bottom: 12%;
        right: 5%;

        width: 52px;
        height: 52px;
    }
}
/* =====================================================
   HERO CONTENT
===================================================== */

.hero-content {
    position: relative;

    z-index: 5;

    width: min(700px, 90%);

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    animation: rise 0.6s ease both;
}


/* Logo + eyebrow */

.hero-mark {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 14px;

    margin-bottom: 28px;
.lumen-logo {
    width: 120px;
    height: auto;

    object-fit: contain;
}


}




/* Eyebrow */

.eyebrow {
    font-family: var(--font-body);

    font-size: 0.78rem;
    font-weight: 600;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: var(--accent-purple);
}


/* Main headline */

.tagline {
    font-family: var(--font-display);

    font-size: clamp(2.4rem, 5.4vw, 4rem);
    font-weight: 600;

    font-optical-sizing: auto;

    letter-spacing: -0.01em;
    line-height: 1.08;

    color: var(--ink);
}


/* Hero description */

.hero-text {
    max-width: 520px;

    margin-top: 22px;

    font-size: 1.05rem;
    line-height: 1.65;

    color: var(--ink-soft);

    text-align: center;
}


/* =====================================================
   BUTTONS
===================================================== */

.cta-row {
    display: flex;
    flex-wrap: wrap;

    align-items: center;
    justify-content: center;

    gap: 14px;

    margin-top: 36px;
}

.btn {
    display: inline-flex;
    align-items: center;

    gap: 10px;

    padding: 15px 26px;

    border-radius: 999px;

    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 600;

    text-decoration: none;

    cursor: pointer;

    border: 1px solid transparent;

    transition:
        background 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease,
        box-shadow 0.15s ease;
}


/* Main CTA */

.btn-primary {
    background: var(--accent-dark);
    color: #FFFFFF;

    box-shadow:
        0 4px 14px rgba(70, 84, 168, 0.16);
}

.btn-primary:hover {
    background: var(--accent-purple);

    transform: translateY(-1px);

    box-shadow:
        0 7px 20px rgba(70, 84, 168, 0.22);
}


/* Button used over dark sections */

.btn-on-dark {
    background: var(--accent);
    color: #172044;
}

.btn-on-dark:hover {
    background: #9AC8F8;

    transform: translateY(-1px);
}


/* Secondary button */

.btn-ghost {
    background: transparent;

    color: var(--ink);

    border-color: var(--line);
}

.btn-ghost:hover {
    border-color: var(--accent-deep);

    color: var(--accent-purple);

    background: var(--accent-soft);
}


/* Button arrows */

.arrow,
.button-arrow {
    font-size: 1.05rem;

    transition:
        transform 0.15s ease;
}

.btn:hover .arrow {
    transform: translateX(3px);
}

.btn:hover .button-arrow {
    transform: translateY(2px);
}


/* =====================================================
   FEATURE PILLS
===================================================== */

.pill-row {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 34px;
}

.pill {
    padding: 8px 14px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.86);

    border: 1px solid var(--line);

    color: var(--ink-soft);

    font-size: 0.8rem;
    font-weight: 500;

    letter-spacing: 0.01em;

    box-shadow:
        0 2px 8px rgba(70, 84, 168, 0.05);
}


/* =====================================================
   HOW TO USE LUMEN
===================================================== */

.how-section {
    position: relative;

    display: flex;
    justify-content: center;

    background: var(--surface-tint);

    border-top: 1px solid var(--line);
}

.how-inner {
    width: min(880px, 90%);

    padding: 110px 0;
}

.how-intro {
    max-width: 560px;

    margin-bottom: 56px;
}

.how-intro h2 {
    font-family: var(--font-display);

    font-size: clamp(1.9rem, 3.6vw, 2.6rem);
    font-weight: 600;

    letter-spacing: -0.01em;
    line-height: 1.15;

    margin: 12px 0 16px;

    color: var(--ink);
}

.section-description {
    font-size: 1rem;

    line-height: 1.65;

    color: var(--ink-soft);
}


/* =====================================================
   STEP-BY-STEP GUIDE
===================================================== */

.lumen-steps {
    position: relative;

    list-style: none;

    display: flex;
    flex-direction: column;
}

.lumen-steps::before {
    content: "";

    position: absolute;

    top: 8px;
    bottom: 8px;
    left: 21px;

    width: 1px;

    background: var(--line);
}

.lumen-step {
    position: relative;

    display: flex;
    align-items: flex-start;

    gap: 24px;

    padding: 22px 0;
}

.step-index {
    position: relative;

    z-index: 1;

    flex: 0 0 auto;

    width: 44px;
    height: 44px;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--surface);

    border: 1px solid var(--line);

    font-family: var(--font-body);

    font-size: 0.85rem;
    font-weight: 700;

    color: var(--accent-purple);

    box-shadow:
        0 2px 8px rgba(70, 84, 168, 0.06);
}

.step-body h3 {
    font-family: var(--font-body);

    font-size: 1.05rem;
    font-weight: 700;

    color: var(--ink);

    margin-bottom: 4px;
}

.step-body p {
    font-size: 0.95rem;

    line-height: 1.6;

    color: var(--ink-soft);
}


/* =====================================================
   FINAL CTA
===================================================== */

.final-cta {
    margin-top: 64px;

    padding: 40px;

    border-radius: 20px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    flex-wrap: wrap;

    background:
        linear-gradient(
            135deg,
            #4654A8 0%,
            #5968C5 48%,
            #6B5FC7 100%
        );

    box-shadow:
        0 14px 35px rgba(70, 84, 168, 0.18);
}

.final-cta-eyebrow {
    font-size: 0.78rem;
    font-weight: 600;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #DCE5FF;

    margin-bottom: 8px;
}

.final-cta-heading {
    font-family: var(--font-display);

    font-size: 1.5rem;
    font-weight: 600;

    color: #FFFFFF;
}


/* =====================================================
   HERO ANIMATION
===================================================== */

@keyframes rise {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 700px) {

    .hero-glow {
        width: 90vw;
        height: 90vw;

        right: -30%;
    }


    /* Stars */

    .star-1 {
        top: 13%;
        left: 7%;
    }

    .star-2 {
        top: 11%;
        right: 7%;
    }

    .star-3 {
        top: 35%;
        left: 3%;
    }

    .star-4 {
        top: 34%;
        right: 3%;
    }

    .star-5 {
        bottom: 17%;
        left: 8%;
    }

    .star-6 {
        bottom: 19%;
        right: 8%;
    }


    /* Hero */

    .hero-content {
        width: min(92%, 700px);
    }

    .hero-text {
        font-size: 0.96rem;
    }


    /* How section */

    .how-inner {
        padding: 76px 0;
    }


    /* Steps */

    .lumen-step {
        gap: 16px;
    }

    .step-index {
        width: 36px;
        height: 36px;

        font-size: 0.75rem;
    }

    .lumen-steps::before {
        left: 17px;
    }


    /* Final CTA */

    .final-cta {
        padding: 28px;
    }
}
