@font-face {
    font-family: 'VT323';
    src: url('./fonts/cool_font.woff2') format('woff2');
}
:root {
    --bg-color: rgb(22, 21, 21);
    --bg-accent-color: #1e1e1e;
}
body.green-theme {
    --accent-color: rgb(74, 246, 38);
    --hue-shift: 50deg;
}
body.yellow-theme {
    --accent-color: yellow;
    --hue-shift: 0deg;
}
body.pink-theme {
    --accent-color: rgb(246, 38, 129);
    --hue-shift: 290deg;
}
body {
    text-align: center;
    font-family: 'VT323';
    background-color: var(--bg-color);
    color: white;
    font-size: 1.2rem;
}
.content-section {
    background-color: var(--bg-accent-color);
    border-radius: 0.5rem;
    padding: 0.5rem;
}
#mainContainer:fullscreen .content-section {
    background: none;
}
#headerContainer {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-bottom: 2rem;
    font-weight: bold;
    color: var(--accent-color);
}
.endLetters {
    font-size: 5rem;
    margin-bottom: -0.35rem;
}
#y {
    margin-left: -0.1rem;
}
#verticalHeaders {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 3.25rem;
}
#subHead {
    font-size: 1.5rem;
    margin-bottom: -0.8rem;
    color: white;
    letter-spacing: 0.5rem;
}
#mainHead {
    word-spacing: -0.5rem;
}
#mainContainer {
    display: inline-flex;
    flex-direction: column;
    position: relative;
    align-items: center;
    justify-content: center;
}
#themeContainer {
    position: fixed;
    display: flex;
    gap: 0.5rem;
    z-index: 2;
    bottom: 4%;
    left: 3%;
}
#themeContainer > div {
    width: 0.75rem;
    height: 0.75rem;
    border: 0.125rem solid grey;
}
#themeContainer > div:hover {
    cursor: pointer;
}
#greenTheme {
    background-color: rgb(74, 246, 38);
}
#yellowTheme {
    background-color: yellow;
}
#pinkTheme {
    background-color: rgb(246, 38, 129);
}
.selectedTheme {
    border: 0.125rem solid white !important;
}
#videoElement {
    border: 0.125rem solid var(--accent-color);
    border-radius: 0.5rem;
    width: 60vw;
    height: auto;
    aspect-ratio: 16/9;
}
#videoBackgroundOverlay {
    position: absolute;
    border-radius: 0.5rem;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    pointer-events: none;
    transition: opacity 0.5s ease;
}
.slide-out-up {
  transform: translateY(-100%);
}
.slide-out-down {
  transform: translateY(100%);
}
.slide-transition {
    transition: transform 0.5s ease;
}
#customControls {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
    width: 100%;
    z-index: 2;
}
.visible {
    pointer-events: auto !important;
    opacity: 1 !important;
}
.hidden {
    opacity: 0 !important;
    pointer-events: none;
}
#progressContainer {
    position: absolute;
    bottom: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.3);
    height: 2vw;
}
#progressContainer > div {
    position: absolute;
    width: 0%;
    height: 15%;
    transition: width 0.25s linear;
    top: 50%;
    transform: translateY(-50%);
}
#progressBar {
    background-color: white;
    z-index: 2;
}
#loadingProgressBar {
    background-color: grey;
    z-index: 1;
}
.center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
#pauseplayButton {
    height: 4vw;
    width: 4vw;
    filter: invert(1);
}
#mainContainer:fullscreen #pauseplayButton {
    height: 6vw;
    width: 6vw;
}
#loader {
    height: 4vw;
    width: 4vw;
    border-radius: 50%;
    border: 2px solid var(--accent-color);
    box-shadow: 0 0 0.5rem 0.5rem var(--bg-color);
    animation: spin 1.5s ease-in-out infinite;
}
#mainContainer:fullscreen #loader {
    height: 6vw;
    width: 6vw;
}
#exitFullscreen {
    position: absolute;
    height: 4vw;
    width: 4vw;
    top: 9%;
    right: 2%;
    filter: invert(1);
    cursor: pointer;
    display: none;
}
#mainContainer:fullscreen #exitFullscreen {
    display: block;
}
#mainContainer:fullscreen #videoElement{
    height: 100%;
    width: 100%;
    border: none;
}
.videoMeta{
    position: absolute;
    bottom: 102%;
}
#mainContainer:fullscreen .videoMeta{
    bottom: auto;
    top: 0;
}
#videoIndex{
    right: 0.5rem;
}
#playerDate{
    left: 0;
    right: 0;
}
#playerBoard {
    position: absolute;
    display: flex;
    top: 0;
    right: 102%;
    text-align: left;
    width: fit-content;
}
#mainContainer:fullscreen #playerBoard{
    left: 0%;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
}
.padRight {
    padding-right: 0.5rem;
}
#ratings {
    position: absolute;
    left: 102%;
    top: 0;
    text-align: left;
}
#ratings th {
    text-align: right;
}
#mainContainer:fullscreen #ratings{
    left: auto;
    right: 0;
    bottom: 5%;
    top: auto;
}
.smallRatingIcon {
    height: 1rem;
    width: auto;
    filter: hue-rotate(var(--hue-shift))
}
#mainContainer:fullscreen .smallRatingIcon{
    height: 1.5vw;
}
.flexCell {
    display: flex;
    justify-content: left;
    align-items: center;
}
#submitRatings {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 0.5vw;
    left: 105%;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}
#mainContainer:fullscreen #submitRatings{
    flex-direction: column;
    top: 50%;
    transform: translateY(-50%);
    left: auto;
    right: 0%;
}
#mainContainer:fullscreen .overlay {
    background: rgba(0, 0, 0, 0.3);
    padding: 0.5rem;
    font-size: 2vw;
    transition: opacity 0.5s ease;
    z-index: 2;
}
#mainContainer:fullscreen #videoIndex {
    padding: 0.5rem;
    font-size: 2vw;
}
.rating {
    background-image: url('./images/empty-star.png');
    background-size: cover;
    height: 4vw;
    width: 4vw;
    cursor: pointer;
    filter: hue-rotate(var(--hue-shift));
}
.selectedRating {
    z-index: 2;
    animation: grow-and-shake 0.8s linear;
}
.rating:hover, .rating:hover ~ .rating{
    background-image: url('./images/star.png');
    filter: hue-rotate(var(--hue-shift))
}
.rated {
    background-image: url('./images/star.png');
    filter: hue-rotate(var(--hue-shift))
}
.selectedPlayer{
    color: var(--accent-color);
    font-weight: bold;
}
.selected {
    color: white;
    font-weight: bold;
}
#actionsContainer {
    position: absolute;
    top: 102%;
    left: 0;
    right: 0;
}
.actions{
    display: flex;
    color: var(--accent-color);
    justify-content: center;
}
#iterationModes {
    display: flex;
    justify-content: center;
    white-space: nowrap;
    gap: 2%;
    padding-right: 4%;
    padding-left: 4%;
}
#mainContainer:fullscreen #iterationModes{
    position: absolute;
    bottom: 5vw;
}
#about {
    position: fixed;
    display: flex;
    flex-direction: column;
    bottom: 1%;
    right: 2%;
    text-align: right;
}
#signature {
    color: var(--accent-color);
}
#videoCountContainer{
    position: fixed;
    display: flex;
    bottom: 1%;
    left: 2%;
}
.clickableText {

}
.clickableText:hover {
    text-decoration: underline;
    cursor: pointer;    
}
#fsButtonContainer {
    position: absolute;
    top: 4.6%;
    right: 2.8%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
#mainContainer:fullscreen #fsButtonContainer {
    display: none;
}
#fsButton {
    width: 2vw;
    height: 2vw;
    filter: invert(1);
    cursor: pointer;
}
#fsHelp {
    font-size: 1vw;
}
#newFeatures {
    position: absolute;
    display: flex;
    flex-direction: column;
    top: 110%;
    gap: 0.5rem;
    margin-top: 1rem;
}
#newFeatures div {
    text-align: left;
    margin-left: 3vw;
    margin-right: 3vw;
}
#newFeatures summary {
    font-size: 1.4rem;
}
a {
    color: inherit;
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
th {
    font-weight: normal;
}
@keyframes spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes grow-and-shake {
    0% { transform: none; }
    25% { transform: scale(1.1); }
    50% { transform: scale(1.2); }
    75% { transform: scale(1.3)}
    80% { transform: scale(1.32) rotate(0deg); }
    85% { transform: scale(1.34) rotate(-5deg); }
    90% { transform: scale(1.36) rotate(0deg); }
    95% { transform: scale(1.38) rotate(5deg); }
    100% { transform: scale(1.4) rotate(0deg); }
}
@media screen and (max-width: 768px) {
    body {
        font-size: 15px;
        margin-left: 0;
        margin-right: 0;
    }
    #mainContainer {
        display: flex;
    }
    #videoBackgroundOverlay {
        border-radius: 0;
    }
    #themeContainer {
        gap: 0.75vw;
    }
    #videoElement {
        width: 100%;
        border-left: none;
        border-right: none;
        border-radius: 0;
    }
    #progressContainer {
        height: 3.5vw;
    }
    #playerBoard {
        top: 115%;
        left: 3vw;
    }
    #submitRatings {
        flex-direction: row-reverse;
        top: 118%;
        left: 50%;
        transform: translateX(-50%);
    }
    .rating {
        height: 8vw;
        width: 8vw;
    }
    #ratings {
        top: 115%;
        right: 3vw;
        left: auto;
    }
    #fsButton {
        width: 5vw;
        height: 5vw;
    }
    #fsHelp {
        font-size: 2vw;
    }
    #loader, #pauseplayButton {
        width: 8vw;
        height: 8vw;
    }
    #newFeatures {
        top: 160%
    }
    #newFeatures summary {
        font-size: 1.2rem;
    }
}