@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@200;300;400;500;600;700;800;900&display=swap');

/* || RESET */

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    font-family: 'Unbounded', sans-serif;
}

input, button {
    font: inherit;
}

/* || UTILITIES */

.center {
    text-align: center;
}

.nowrap {
    white-space: nowrap;
}

/* || VARIABLES */

:root {

    /* FONTS */
    --LARGE-FONT: 4rem;
    --MEDIUM-FONT: 2rem;
    --SMALL-FONT: 1.25rem;
    
    /* COLORS */
    --BG-COLOR: #EBF5DF;
    --FORM-COLOR: #BCB6FF;
    --LIGHT-FONT-COLOR: #EBF5DF;
    --DARK-FONT-COLOR:  #1D4E89;
    --INPUT-COLOR: #EBF5DF;
    --BORDER-COLOR: #1D4E89;
    --BUTTON-COLOR: #F29559;
    --BUTTON-SCALE-COLOR: hsl(24, 85%, 55%);

    /* STANDARD PADDING */
    --PADDING: 1em;

    /* STANDARD MARGIN */
    --MARGIN: 1.5rem;

    /* TRANSITION */
    --TRANSITION: 0.3s ease-in-out;
    --SCALE: scale(1.1);
}

/* || GENERAL STYLES */

html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--BG-COLOR);
    color: var(--DARK-FONT-COLOR);
}

/* || HEADER */

header, footer {
    margin: var(--MARGIN);
    padding: var(--PADDING);
}

h1 {
    font-size: var(--LARGE-FONT);
}

/* || FORM */

.container {
    margin: 0 auto;
    padding: var(--PADDING);
    width: clamp(
        min(calc(100% - (var(--MARGIN) * 2)), 310px), 
        85%, 
        800px
    );
    background-color: var(--FORM-COLOR);
    color: var(--LIGHT-FONT-COLOR);
    border-radius: 2rem;
}

h2 {
    margin: var(--MARGIN);
    font-size: var(--MEDIUM-FONT);
}

p {
    margin: var(--MARGIN);
    font-size: var(--SMALL-FONT);
    line-height: 1.5em;
}

hr {
    margin: var(--MARGIN);
    border: 1px solid var(--BORDER-COLOR);
}

form {
    margin: 0 auto;
    padding: var(--PADDING);
    width: clamp(
        min(calc(100% - (var(--PADDING) * 2)), 300px), 
        90%, 
        600px
    );
}

.form-group {
    margin-bottom: var(--MARGIN);

    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;

    color: var(--DARK-FONT-COLOR);
    font-size: var(--SMALL-FONT);
}

label {
    line-height: 1.75em;
}

input {
    height: 2em;
    background-color: var(--INPUT-COLOR);

    border: none;
    border-bottom: 2px solid var(--BORDER-COLOR);

    transition: var(--TRANSITION);
}

input:focus {
    transform: var(--SCALE);
    transition: var(--TRANSITION);
}

.submit {
    margin-top: var(--MARGIN);
    padding: var(--PADDING);

    background-color: var(--BUTTON-COLOR);
    color: var(--DARK-FONT-COLOR);
    font-size: var(--SMALL-FONT);

    border: none;
    border-radius: 1.25rem;

    transition: var(--TRANSITION);
    cursor: pointer;
}

.submit:hover {
    background-color: var(--BUTTON-SCALE-COLOR);
    color: var(--LIGHT-FONT-COLOR);

    transform: var(--SCALE);
    transition: var(--TRANSITION);
}

.mad-lib {
    margin: var(--MARGIN) auto;
    width: clamp(
        min(calc(100% - (var(--PADDING) * 2)), 300px), 
        90%, 
        600px
    );
}

strong {
    color: var(--DARK-FONT-COLOR);
}

/* || FOOTER */

footer a:any-link {
    color: var(--BUTTON-COLOR);
    text-decoration: none;
}

footer a:hover {
    color: var(--FORM-COLOR);
    text-decoration: underline;
}

footer a:active {
    color: var(--DARK-FONT-COLOR);
}

footer img {
    height: 1em;
    width: 1em;
}

/* || SMALL SCREENS */

@media screen and (max-width: 426px) {
    :root {
        --LARGE-FONT: 3rem;
        --MEDIUM-FONT: 1.5rem;
        --SMALL-FONT: 1rem;
    }

    .form-group {
        justify-content: flex-start;
    }

    input {
        width: 100%;
    }
}
