*,
*::after,
*::before { box-sizing: border-box; }

body {
    color: #222;
    font-family:
            -apple-system,
            BlinkMacSystemFont,
            'Segoe UI',
            Helvetica,
            Arial,
            sans-serif,
            'Apple Color Emoji',
            'Segoe UI Emoji',
            'Segoe UI Symbol';
    margin: 0;
    padding-bottom: 2em;
}

header {
    background-color: #f1f1f1;
    border-bottom: 1px solid #ccc;
    margin-bottom: 1.5em;
    padding: 1em;
}

section { padding: 0.25em 1em; }

article { margin-bottom: 2.5em; }

h1 { margin: 0; }

h2 { margin: 0 0 0.5em; }

h3,
h4 { margin: 1em 0 0.5em; }

p {
    line-height: 1.4;
    margin: 0.5em 0 0;
}

a:link,
a:visited { color: #1800ee; }

form {
    background-color: #f1f1f1;
    border: 1px solid #ccc;
    margin-bottom: 2em;
    margin-top: 2em;
    padding: 3em 2em;
    position: relative;
    transition: background-color .15s linear;
}

label,
input {
    display: block;
    font-size: 1em;
    margin: .5em 0;
}

label {
    font-size: 1.5em;
    text-align: center;
}

blockquote {
    border-left: 3px solid #ccc;
    color: #666;
    margin: 1em .5em;
    padding: 0 1em;
}

small { padding-left: .25em; }

.help {
    margin-top: 3em;
}

.help h2 { display: flex; }

.flag {
    border-radius: .25em;
    display: block;
    margin: .25em 0;
    padding: .5em .75em;
}

.flag span,
.flag strong {
    display: flex;
    align-items: center;
    min-width: 12em;
}

.default { background-color: #f6f6f6; }
.failure { background-color: #f8d7da; }
.warning { background-color: #fff3cd; }
.success,
.is-dragover { background-color: #d4edda; }

.title {
    display: block;
    font-size: 1.5em;
    font-weight: bold;
    margin: 1.5em 0 .25em;
    padding: 0;
}

.upload-icon {
    width: 100%;
    height: 4em;
    fill: #333;
    display: block;
    margin-bottom: 2em;
}

.upload-input {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

.upload-input + label {
    text-align: center;
}

.upload-input + label strong {
    color: #1800ee;
    text-decoration: underline;
}

.upload-input + label:hover strong,
.upload-input:focus + label strong,
.upload-input.has-focus + label strong {
    color: #001f3f;
    cursor: pointer;
}

.more-info {
    background-color: #0074d9;
    border: 1px solid #0074d9;
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: .85em;
    font-family: serif;
    font-weight: bold;
    width: 1.25em;
    height: 1.25em;
    text-align: center;
    text-decoration: none;
    margin-left: .5em;
}

.more-info:link,
.more-info:visited { color: #fff; }

.more-info:hover,
.more-info:focus {
    background-color: #fff;
    border-color: #0074d9;
    color: #0074d9;
}

@media screen and (min-width: 30em) {
    .flag { display: flex; }

    .title { display: block; }
}

@media screen and (min-width: 64em) {
    header {
        display: flex;
        align-items: baseline;
    }

    .info { padding: 0 2em; }

    .wrap { display: flex; }

    section:first-child { flex-grow: 1; }

    .help {
        flex-shrink: 0;
        margin-top: 2em;
        max-width: 32em;
    }
}