html {
    font-family: sans-serif;
    font-size: 16px;
    margin: 0;
    padding: 0;
}

body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    background: -webkit-radial-gradient(32% -30%, circle, rgba(0, 0, 0, 0.013) 52%, transparent 1%),
    -webkit-radial-gradient(-14% -80%, circle, rgba(0, 0, 0, 0.013) 57%, transparent 1%),
    -webkit-radial-gradient(-71% 9%, circle, rgba(0, 0, 0, 0.013) 52%, transparent 1%);
    /*-webkit-radial-gradient(hsl(911, 100%, 15%), hsl(911, 100%, 15%));*/
    background: -o-radial-gradient(32% -30%, circle, rgba(0, 0, 0, 0.013) 52%, transparent 1%),
    -o-radial-gradient(-14% -80%, circle, rgba(0, 0, 0, 0.013) 57%, transparent 1%),
    -o-radial-gradient(-71% 9%, circle, rgba(0, 0, 0, 0.013) 52%, transparent 1%);
    /*-o-radial-gradient(hsl(911, 100%, 15%), hsl(911, 100%, 15%));*/
    background: radial-gradient(circle at 32% -30%, rgba(0, 0, 0, 0.013) 52%, transparent 1%),
    radial-gradient(circle at -14% -80%, rgba(0, 0, 0, 0.013) 57%, transparent 1%),
    radial-gradient(circle at -71% 9%, rgba(0, 0, 0, 0.013) 52%, transparent 1%);
    /*radial-gradient(hsl(911, 100%, 15%), hsl(911, 100%, 15%));*/
    background-attachment: fixed;
    background-color: ghostwhite;
    color: #23333a;
}

h1 {
    margin-top: 0;
    margin-bottom: 2em;
}

h2 {
    margin-top: 0;
    margin-bottom: 2rem;
}

fieldset {
    border-color: rgba(0, 0, 0, 0.2);
}

legend {
    padding: 0 .5rem;
}

.content-container {
    padding: 8vh 2vw;
    overflow-x: hidden;
}

.flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 0 -2rem;
}

a {
    color: rgb(21, 104, 101);
}

form {
    -webkit-box-flex: 0;
    -ms-flex: 0 1 460px;
    flex: 0 1 460px;
    margin: 0 2rem 2rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

form + div {
    -webkit-box-flex: 1;
    -ms-flex: 1 auto;
    flex: 1 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

form + div > section {
    margin: 0 2rem 2rem;
    -webkit-box-flex: 1;
    -ms-flex: 1 320px;
    flex: 1 320px;
}

.color-container {
    display: -ms-grid;
    display: grid;
    grid-gap: 1rem;
    -ms-grid-columns: (15rem) [ auto-fill ];
    grid-template-columns: repeat(auto-fill, 10rem);
    margin: 1rem 0;
    opacity: 0;
    -webkit-animation: fade-in-top ease 0.4s forwards;
    animation: fade-in-top ease 0.4s forwards;
}

.color-box {
    border-radius: .2rem;
    background: white;
    font-size: .8rem;
    -webkit-box-shadow: 0 0 1.2rem rgba(0,0,0,.1);
    box-shadow: 0 0 1.2rem rgba(0,0,0,.1);
    border-bottom: .5rem solid white;
}

#fails .color-box {
    border-bottom: .5rem solid #79081b;
}

.color-box > div {
    padding: .5rem;
}

form > * {
    margin-bottom: 1rem;
}
form > h2 {
    margin-bottom: 2rem;
}

textarea {
    width: 100%;
    max-width: 100%;
    resize: vertical;
}

label {
    display: inline-block;
    font-weight: bold;
}

.errors {
    color: darkred;
    font-size: .8rem;
}

.progress {
    overflow: hidden;
    -webkit-box-shadow: inset 0 0 2px rgba(0,0,0,.5);
    box-shadow: inset 0 0 2px rgba(0,0,0,.5);
    height: .5rem;
    border-radius: .2rem;
}

.progress > span {
    background-color: rgb(37, 186, 181);
    display: block;
    height: 100%;
    width: 0;
    -webkit-transition: height .5s ease-in-out, width .01s ease-in;
    -o-transition: height .5s ease-in-out, width .01s ease-in;
    transition: height .5s ease-in-out, width .01s ease-in;
}

.colors {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin: 1rem -.5rem;
}

.colors > div {
    border-radius: 50%;
    height: 4rem;
    width: 4rem;
    margin: .5rem;
    opacity: 0;
    -webkit-animation: fade-in-top ease 0.4s forwards;
    animation: fade-in-top ease 0.4s forwards;
}

@-webkit-keyframes fade-in-top {
    from {
        opacity: 0;
        -webkit-transform: translateY(-15px);
        transform: translateY(-15px);
    }
    to {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}

@keyframes fade-in-top {
    from {
        opacity: 0;
        -webkit-transform: translateY(-15px);
        transform: translateY(-15px);
    }
    to {
        opacity: 1;
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}