body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    max-width: 900px;
    margin: auto;
}

.page_title {

}

.page_gap {
    flex-grow: 1;
}

.page_footer {
    text-align: center;
    color: gray;
    margin-top: 48px;
}

.page_content-container {
    padding: 32px 24px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.page_project-link {

}

.generator {

}

.generator_viewport {
    background-color: white;
    border: 1px solid lightgray;
}

.generator_viewport > * {
    margin: auto;
    display: block;
}

.generator_button {
    border: none;
    font-size: 18px;
    padding: 0.5em 1em;
    background-color: rgb(41, 111, 151);
    color: white;
    transition: 160ms;
    cursor: pointer;
    margin-top: 12px;
}

@media (max-width: 599px) {
    .generator_button {
        width: 100%;
    }
}

.generator_button:hover:not(:active) {
    background-color: rgb(56, 130, 173);
}

.link:not(:hover) {
    text-decoration: none;
}

