:root {
    /* Colors */
    --background-color: black;
    --subtitleColor: white;

    /* Font facts */
    --subtitle-font: "subtitles-default";

    /* Font modifiers */
    --subtitle-font-adjust: 0;
  }

/* Font definitions */
@font-face {
    font-family: "annotation-default";
    src: url("../_fonts/OpenSans-Regular.ttf");
}
@font-face {
    font-family: "subtitles-default";
    src: url("../_fonts/OpenSans-Regular.ttf");
}

body,html {
    margin: 0;
    padding: 0;
    background: var(--background-color);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    height: 100vh;
}
.align-center {
    transform: translate(-50%, 0);
}
.align-right {
    transform: translate(-100%, 0);
}
.annotation {
    user-select: none;
    cursor: none;
}

#imageOverlay {
    width: 100vw;
    height: 100vh;
    position: absolute;
    line-height: 100%;
    top: 0px;
    left: 0px;
    opacity: 0;
    margin: 0;
    padding: 0;
    cursor: none;
}
#fullscreenImage {
    max-width: 100vw;
    max-height: 100vh;
    vertical-align: middle;
    margin: 0;
    padding: 0;
    user-select: none;
    webkit-user-select: none;
}
#modelOverlay {
    width: 100vw;
    height: 100vh;
    position: absolute;
    top: 0px;
    left: 0px;
    opacity: 0;
    cursor: none;
}
#modelViewer {
    width: 100%;
    height: 100%;
}
#videoOverlay {
    width: 100vw;
    height: 100vh;
    position: absolute;
    top: 0px;
    left: 0px;
    opacity: 0;
    cursor: none;
}
#fullscreenVideo {
    width: 100%;
    height: 100%;
    user-select: none;
    webkit-user-select: none;
}
#fullscreenVideo::cue {
    font-size: calc(6vh + var(--subtitle-font-adjust) * 1vmax);
    font-family: var(--subtitle-font);
    color: var(--subtitleColor);
}
#watermark {
    position: absolute;
    object-fit: contain;
}