* {
    padding: 0;
    box-sizing: border-box;
}

html {
    overflow-y: scroll;
}

body {
    margin: 0;
    min-height: 100vh;
    overflow: hidden;
}

#bgImage {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    filter: grayscale(1);
    z-index: -1;
}

:root {
    --text-color: #000000;
}

#ocrResult {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: "Helvetica", sans-serif;
    font-size: 24px;
    font-weight: 400;
    text-align: center;
    z-index: 0;
    width: 80%;
    color: var(--text-color);

    /* constrain and scroll */
    max-height: 80vh;
    overflow-y: auto;
    padding: 8px;
}

#ocrResult span {
    display: block;
}

.envelope {
    font-family: "Helvetica", sans-serif;
    font-size: 24px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
        "legible legible legible upload upload upload"
        "description description description . . ."
        "alignment pointsize fontweight fontstyle layout export";
    width: 100%;
    min-height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    color: var(--text-color);
    pointer-events: none;
}

.legible,
.upload,
.description,
.alignment,
.pointsize,
.fontweight,
.fontstyle,
.layout,
.export {
    margin: 24px;
    display: inline;
    pointer-events: auto;
}

.upload:hover,
.alignment:hover,
.pointsize:hover,
.fontweight:hover,
.fontstyle:hover,
.layout:hover,
.export:hover {
    text-decoration: underline;
}

.legible {
    grid-area: legible;
    text-align: left;
}

.upload {
    grid-area: upload;
    text-align: right;
    cursor: pointer;
}

.upload[style*="cursor: default"]:hover {
    color: var(--text-color);
}

.upload.generating {
    pointer-events: none;
}

.upload.generating:hover {
    text-decoration: none;
}

.description {
    grid-area: description;
    text-align: left;
}

.alignment {
    grid-area: alignment;
    cursor: pointer;
}

.pointsize {
    grid-area: pointsize;
    cursor: pointer;
}

.fontweight {
    grid-area: fontweight;
    cursor: pointer;
}

.fontstyle {
    grid-area: fontstyle;
    cursor: pointer;
}

.layout {
    grid-area: layout;
    cursor: pointer;
}

.export {
    grid-area: export;
    text-align: right;
    cursor: pointer;
}

#legibleTitle {
    cursor: default;
    pointer-events: none;
}

#legibleTitle.active {
    cursor: pointer;
    pointer-events: auto;
}

#legibleTitle.active:hover {
    text-decoration: underline;
}

.dots::after {
    content: ".";
    animation: dots 1.5s infinite steps(1);
    display: inline-block;
    width: 1.5ch;
    text-align: left;
}

@keyframes dots {
    0% {
        content: ".";
    }

    33% {
        content: "..";
    }

    66% {
        content: "...";
    }
}