* {
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
}

:root {
    /*
        when changing these values,
        both media queries in dialog.css and video.css
        should be changed accordingly as well.
    */
    --video-card-width: 25em;
    --video-card-gap: 0.5em;
    
    --header-height: 3em;
    --footer-height: 6em;
    --footer-padding: 0.5em;
}

.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    user-select: none;
}

html {
    min-height: 100%;
}

body {
    background-color: #111;
    font-size: 100%;
    display: block;
    min-height: calc(100vh - var(--header-height));
}

header {
    display: absolute;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: rgba(200, 55, 55, 0.9);
    box-shadow: 0 0 0.5em 0.5em rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(5px);
    color: white;
    height: var(--header-height);
    padding: 0 0.25em;
    z-index: 11;
}

header span.material-symbols-outlined {
    font-size: 2em;
    line-height: 3rem;
    float: right;
    padding: 0 0.25em;
    transition: all 0.1s ease-in-out;
}

header span.material-symbols-outlined:hover {
    transform: scale(1.2);
    transition: all 0.1s ease-in-out;
}

#video-container {
    margin-top: var(--header-height);
    margin-bottom: calc(var(--footer-height) + var(--footer-padding) * 2);
}

footer {
    display: grid;
    grid-template-columns: auto 1fr auto auto auto 1fr auto;
    grid-template-rows: auto 1fr;
    grid-template-areas:
        "current-timestamp seekbar seekbar seekbar seekbar seekbar video-length"
        ". . replay pause forward volume-bar volume-bar";
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(17, 17, 17, 0.95);
    box-shadow: 0 0 0.5em 0.5em rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(3px);
    padding: var(--footer-padding);
    z-index: 11;
    height: var(--footer-height);
}

#seekbar {
    --margin: 0.75em;
    grid-area: seekbar;
    align-self: center;
    width: calc(100% - var(--margin) * 2);
    margin: 0.5em var(--margin);
}

#replay {
    grid-area: replay;
    background-color: transparent;
    color: white;
    text-align: right;
    cursor: pointer;
}

#play-pause {
    grid-area: pause;
    background-color: transparent;
    color: white;
    text-align: center;
    margin: 0 0.5em;
    cursor: pointer;
}

#forward {
    grid-area: forward;
    background-color: transparent;
    color: white;
    text-align: left;
    cursor: pointer;
}

#volume-bar {
    --margin: 0.75em;
    grid-area: volume-bar;
    max-width: 15em;
    width: calc(100% - var(--margin) * 2);
    margin: 0 var(--margin);
    justify-self: right;
    align-self: center;
}

#play-pause .material-symbols-outlined {
    font-size: 4rem;
}

#play-pause:disabled,
#replay:disabled,
#forward:disabled {
    color: gray;
}

#current-timestamp {
    grid-area: current-timestamp;
    color: white;
}

#video-length {
    grid-area: video-length;
    color: white;
}

footer .material-symbols-outlined {
    font-size: 2.5rem;
}

input[type="range"] {
    appearance: none;
    height: 0.5em;
    background-color: #333;
    border-radius: 0.25em;
}

input[type="range"]::-webkit-slider-thumb,
input[type="range"]::-moz-range-thumb {
    cursor: pointer;
    appearance: none;
    width: 1.5em;
    height: 1.5em;
    border-radius: 50%;
    background-color: rgb(200, 55, 55);
    border: none;
}