body, form {
    padding: 0;
    margin: 0;
    height: 100vh;
    width: 100vw;
}

body {
    font-size: 6vh;
    color: rgba(0,0,0,0.8);
}

body:hover div.control.side.active {
    opacity: 1;
}

div.background {
    position: absolute;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    background: no-repeat center;
    background-size: contain;
    transition: opacity 200ms ease-out;
}

div.background.shadow {
    box-shadow: inset 0 0 0.25em black;
    z-index: 101;
}

div.control {
    position: absolute;
    bottom: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
}

div.control.side {
    height: 100vh;
    font-size: 1.5em;
    z-index: 103;
    opacity: 0;
    transition: opacity 200ms ease-out, background-color 200ms ease-out;
    background-color: rgba(255,255,255,0.5);
    box-shadow: 0 0 0.1em rgba(0,0,0,0.5);
}

div.control.side > div {
    padding: 2em 0.25em;
}

div.control.side:hover {
    background-color: rgba(255,255,255,0.7);
}

div.control.side.active {
    cursor: pointer;
}

div.control#left {
    left: 0;
}

div.control#right {
    right: 0;
}

div.control.bottom {
    left: 0;
    width: 100vw;
    justify-content: center;
    margin-bottom: 0.5em;
    z-index: 102;
    opacity: 0;
    transition: opacity 200ms ease-out;
}

div.control.bottom i.fa {
    position: relative;
    top: 0.05em;
    cursor: pointer;
    margin-left: 0.1em;
}

div.control.bottom > div {
    background-color: rgba(255,255,255,0.5);
    box-shadow: 0 0 0.1em rgba(0,0,0,0.5);
}

div.control.bottom > div {
    padding: 0.25em 1em;
    border-radius: 2px;
    display: flex;
    flex-direction: row;
    white-space: nowrap;
}

div.control.bottom > div > div {
    flex: 1 1 auto;
}

div.control.bottom > div > div:first-child,
div.control.bottom > div > div:last-child
{
    width: 1.5em;
}
