#app {
    width: 100vw;
    --innerHeight: calc(100dvh - 5rem);
    height: 100dvh;
    overflow: hidden;
    overflow-y: auto;
    user-select: none;

    .index-page {
        width: 100%;
        min-height: var(--innerHeight);
        position: relative;
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        padding: 5rem 0;
        box-sizing: border-box;

        &>img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            position: absolute;
            left: 0;
            top: 0;
            z-index: -1;
        }

        &>h1 {
            font-size: 3.5rem;
            text-align: center;
        }

        &>p {
            width: 85%;
            line-height: 1.5;
            font-size: 1.5rem;
            text-align: center;
        }

        .start-btn {
            background: var(--color-primary);
            padding: 1rem 2rem;
            border-radius: 0.5rem;
            margin: 6rem 0 3rem;
        }
    }

    .page {
        box-sizing: border-box;
        padding: 7rem 10rem;
        text-align: center;

        & h2 {
            font-size: 3rem;
            margin-bottom: 4rem;
        }

        .featured-generators {
            display: grid;
            grid-template-columns: repeat(3, calc(33.33% - 1.35rem));
            gap: 2rem;

            .featured-generator {
                border: 1px solid var(--border-color-darker);
                border-radius: 1rem;
                overflow: hidden;
                padding-bottom: 2rem;
                text-align: start;

                &>img {
                    width: 100%;
                    aspect-ratio: 2 / 1.5;
                    object-fit: cover;
                }

                &>div {
                    box-sizing: border-box;
                    padding: 0 2rem;
                    display: grid;
                    grid-template-rows: auto auto 1fr;

                    &>h3 {
                        max-width: 80%;
                    }

                    .generate-now {
                        background-color: var(--color-primary);
                        padding: 0.5rem 1rem;
                        width: fit-content;
                        color: #fff;
                        border-radius: 0.5rem;
                        cursor: pointer;
                    }
                }
            }
        }

        .ready-to-level {
            position: relative;
            padding: 5rem 0;
            background: linear-gradient(90deg, #024289, #c1deff, #c1deff, #024289);

            &>h2 {
                margin: 0 !important;
            }

            &>p {
                margin: 4rem auto;
                font-size: 1.15rem;
                max-width: 80%;
            }

            .start-generating {
                background: var(--color-primary);
                width: fit-content;
                margin: 0 auto;
                padding: 1rem 1.5rem;
                border-radius: 0.25rem;
                cursor: pointer;
                color: #fff;
            }
        }
    }
}

@media screen and (max-width: 900px) {
    #app {
        .index-page {
            &>h1 {
                font-size: 2rem;
            }

            &>p {
                font-size: 1.15rem;
            }

            .start-btn {
                margin-top: 1rem;
            }
        }

        & .page {
            padding: 2rem .25vw;

            h2 {
                font-size: 1.5rem;
            }

            .featured-generators {
                display: flex;
                flex-direction: column;
                align-items: center;

                .featured-generator {
                    width: 90%;
                }
            }
        }
    }
}