@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,600;1,600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital@0;1&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat&family=PT+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');

:root {
    --primary-text-color: #000000;
    --primary-accent-color: #597266;
    --primary-background-color: #ffffff;
}

html {
    height: 100%;
    display: flex;
}

body {
    margin: 0;
    display: flex;
    align-items: center;
    flex-flow: row;
    flex-grow: 1;
    color: var(--primary-text-color);

    main {
        display: flex;
        flex-flow: column;
        font-family: "Montserrat", sans-serif;
        font-optical-sizing: auto;
        font-weight: 400;
        font-style: normal;
        text-align: center;
        position: relative;
        overflow-x: hidden;
        overflow-y: hidden;
        background: var(--primary-background-color);
        padding: 4em 2em;
        justify-content: space-between;

        span {
            text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white;
            font-size: 1.5em;
            line-height: 1.5em;
            letter-spacing: 0.04em;
            word-wrap: break-word;
        }

        .message-welcome {
            font-weight: 600;
        }

        .message-summary {
            font-size: 1.6em;
        }

        footer {
            display: flex;
            flex-flow: column;

            span:first-of-type {
                font-size: 1.6em;
            }

            span {
                font-family: "PT Serif", serif;
                font-weight: 400;
                font-style: normal;
                text-transform: uppercase;
                color: var(--primary-accent-color);
            }
        }

        button {
            font-family: "PT Serif", serif;
            font-weight: 400;
            font-size: 1.4em;
            text-transform: uppercase;
            color: var(--primary-accent-color);
            margin: 0 3em;
            padding: 1em;
            border: 1px solid var(--primary-accent-color);
            letter-spacing: 0.05em;
            background: rgba(89, 114, 102, 0.1);
            box-shadow:
              inset 0px 4px 6px -1px rgba(0, 0, 0, 0.2);
            cursor: pointer;
            backdrop-filter: blur(3px);
        }
    }

    main::before,
    main::after {
        content: "";
        position: absolute;
        pointer-events: none;
        background-repeat: no-repeat;
        background-size: contain;
        z-index: 0;
    }

    main::before {
        --scale-factor: 0.35;
        top: 0;
        left: 0;
        width: calc(391px * var(--scale-factor));
        height: calc(1364px * var(--scale-factor));
        background-image: url("/images/leaves-top.webp");
        opacity: 0.4;
    }

    main::after {
        --scale-factor: 0.4;
        bottom: 0px;
        right: 0px;
        width: calc(466px * var(--scale-factor));
        height: calc(1317px * var(--scale-factor));
        background-image: url("/images/leaves-bottom.webp");
        opacity: 0.7;
    }

    main > * {
        position: relative;
        z-index: 1;
    }
}

.page-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;

    min-height: 100vh;
    padding: 10vh 0;
    box-sizing: border-box;

    background: #e0e0e0;
}

.page-a4 {
    aspect-ratio: 1 / 1.4142;

    height: 80vh;
    width: auto;
    max-width: calc(80vh / 1.4142);

    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
}

@media (max-width: 600px) {
    .page-wrapper {
        padding: 0;
        min-height: 100dvh;
    }

    .page-a4 {
        width: 100%;
        height: 100dvh;
        aspect-ratio: unset;
        max-width: unset;
        box-shadow: none;
    }

    body {
        main {
            justify-content: space-evenly;
            padding: 2em 0.5em;

            span {
                font-size: 1.2em;
            }

            .message-summary {
                font-size: 1.3em;
            }

            footer {
                display: flex;
                flex-flow: column;

                span:first-of-type {
                    font-size: 1.4em;
                }

                margin: 1em 0;
            }

            button {
                font-size: 1.2em;
                margin: 1em 1em;
            }
        }
    }
}
