:root {
    --opacity: 0.63;
    --line-color: color(from var(--border-color) srgb r g b / 0.09);

    --accent-color: #000000;
    --background-color: #ffffff;
    --text-color: #202124;
    --secondary-text-color: color(from var(--text-color) srgb r g b / 0.75);
}

@media (prefers-color-scheme: dark) {
    :root {
        --accent-color: #ffffff;
        --background-color: #202124;
        --text-color: #E3E3E3;
        --secondary-text-color: color(from var(--text-color) srgb r g b / var(--opacity));
    }
}

* {
    box-sizing: border-box;
    transition: opacity 108ms ease-in-out;
}

:root {
    font-family: "Public Sans", "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    text-rendering: optimizeLegibility;
}

a {
    color: inherit;
    text-decoration: none;

    &:hover {
        opacity: var(--opacity);
    }
}

body {
    background-color: var(--background-color);
    color: var(--text-color);
    margin: 0;
}

footer {
    color: var(--secondary-text-color);
    display: flex;
    font-size: 0.8rem;
    gap: 1.5rem;
    margin-top: 1rem;
    place-content: center;
    place-items: baseline;
    place-self: end center;
}

.logo {
    place-items: center;
    display: flex;
    gap: 0.48rem;
    margin: 3rem 0 1rem;

    img {
        aspect-ratio: 1;
        height: 2.5rem;
        pointer-events: none;
        user-select: none;
        width: 2.5rem;
    }

    h1 {
        color: var(--accent-color);
        font-size: 1.8rem;
        letter-spacing: 0.1rem;
        margin: 0;
        text-transform: uppercase;
    }

    @media(max-width: 999px) {
        gap: 0.3rem;
        margin-top: 0;

        h1 {
            font-size: 1.5rem;
        }

        img {
            height: 2.1rem;
            width: 2.1rem;
        }
    }
}

#landing-page {
    display: grid;
    grid: auto / 1fr 1.618fr;

    @media (max-width: 999px) {
        display: block;
    }

    main {
        display: grid;
        padding: 1rem;

        @media(max-width:999px) {
            min-height: 100dvh;
        }


        .content {
            place-content: start;
            place-items: center;
            place-self: center;

            @media(max-width: 999px) {
                place-self: start center;
            }

            &>* {
                max-width: 423px;
                width: 100%;
            }

            p {
                line-height: 1.3;
            }

            .download {
                background: var(--accent-color);
                border-radius: 3rem;
                color: var(--background-color);
                display: flex;
                font-weight: 600;
                font-size: 1.1rem;
                gap: 0.6rem;
                margin: 2.1rem 0;
                padding: 0.66rem;
                place-content: center;
                place-items: center;

                img {
                    pointer-events: none;
                    user-select: none;
                    width: 1.7rem;
                }
            }

            p.secondary {
                color: var(--secondary-text-color);
                font-size: 0.8rem;
            }

            .design-tools {
                margin: 2.1rem 0;

                p {
                    text-align: center;
                }

                .logos {
                    display: flex;
                    gap: 1.5rem;
                    margin: 0.5rem 0;
                    opacity: 0.78;
                    place-content: center;

                    svg {
                        color: var(--text-color);
                        height: 1.1rem;

                    }

                    @media(max-width:999px) {
                        gap: 1.2rem;

                        svg {
                            height: 0.96rem;
                        }
                    }
                }
            }
        }
    }

    iframe.video {
        aspect-ratio: 16 /9;
        border: 0;
        width: 100%;

        &.desktop {
            background: #000000;
            height: 100dvh;
        }

        &.mobile {
            border-radius: 0.6rem;
            display: none;
            margin: 1rem 0;
        }

        @media (max-width: 999px) {
            &.desktop {
                display: none;
            }

            &.mobile {
                display: block;
            }
        }
    }
}

.legal {
    font-size: 0.9rem;
    margin: 0 auto;
    max-width: 540px;
    padding: 1rem;

    a {
        text-decoration: underline;
        text-decoration-thickness: 1px;
        text-underline-offset: 0.1rem;

        footer &,
        &.logo {
            text-decoration: none;
        }
    }

    footer {
        margin-top: 3rem;
    }

    h1 {
        font-size: 1.8rem;
    }

    h2 {
        font-size: 1.5rem;
        margin-top: 3rem;
    }

    li+li {
        margin-top: 1rem;
    }

    @media(max-width:999px) {
        footer {
            margin-top: 2.rem;
        }

        h1 {
            font-size: 1.5rem;
        }

        h2 {
            font-size: 1.2rem;
            margin-top: 2.4rem;
        }
    }
}