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

body {
    width: 100vw;
    height: 100dvh;
}

.flexCenter {
    display: flex;
    justify-content: center;
    align-items: center;
}

#page {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

#titleContainer {
    position: relative;
    margin: 0px auto;
    width: 100%;
    max-width: 500px;
    top: 20%;
    z-index: 2;
}

#titleContainer > h1 {
    width: fit-content;
    margin: 0px auto;
    font-family: 'Courier New', Courier, monospace;
    font-size: clamp(1.5rem, 5vw, 3rem);
}

#titleContainer > p {
    width: 65%;
    margin: 0px auto;
    font-family: monospace;
    font-size: clamp(0.5rem, 2.5vw, 1.25rem);
    text-align: center;
    color: slategrey;
}

.divider {
    width: 30%;
    height: 0;
    margin: 8px auto 16px auto;
    border-bottom: 1px solid slategrey;
}

.titleCover {
    position: absolute;
    width: 50%;
    height: 100%;
    background-color: white;
    animation-name: widthShrink;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    animation-delay: 0.2s;
}

#titleCoverLeft {
    left: 0;
}

#titleCoverRight {
    right: 0;
}

@keyframes widthShrink {
    from {width: 50%;}
    to {width: 0%;}
}

#cover {
    position: absolute;
    width: 100%;
    height: 40%;
    z-index: 1;
    top: 60%;
    background-color: white;
    box-shadow: 0px 10px 40px 20px white;
    animation-name: heightShrink;
    animation-duration: 3s;
    animation-fill-mode: forwards;
    animation-delay: 0.6s;
}

@keyframes heightShrink {
    from {height: 40%;}
    to {height: 0%;}
}