* {
    box-sizing: border-box;
}
:any-link {
	text-decoration: none;
}
html {
	padding: 1vh 1vw;
	overflow-y: auto;
	background-repeat: no-repeat;
	background-color: #FFF000;
	background-image: linear-gradient(#000FFF, #FFF000);
}
body {
	font-family: verdana, arial;
	min-height: 98vh;
	background: #FFFFFF;
}
header {
	text-align: center;
	background-color: gold;
}
h1 {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
}
img, video, object, svg, iframe, audio, figure, .image_frame, .video_frame, .document_frame, .audio_frame {
    -trident-appearance: none;
    -webkit-appearance: none;
    -khtml-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    -o-appearance: none;
    appearance: none;
    border: none;
    max-width: 100vw;
    max-height: 100vh;
    width: 100%;
    display: block;
    height: 100%;
    aspect-ratio: 9/5;
    padding: 0;
    margin: 0 auto;
}

figure, .image_frame, .video_frame, .document_frame, .audio_frame {
    height: auto;
    position: relative;
}
figure figcaption, 
.image_frame .caption, 
.video_frame .caption,
.document_frame .caption,
.audio_frame .caption {
    display: block;
    height: auto;
    position: absolute;
    bottom: 0;
    margin: 0;
    padding: 0.5em 1em;
    left: 0;
    max-width: 100vw;
    max-height: 100vh;
    width: 100%;
    opacity: 1;
    background-color: #AAAAAA;
    transition: opacity 2s;
}
figure:not(:hover) figcaption, figure:not(:focus-within) figcaption,figure:not(:focus) figcaption, 
.document_frame:not(:hover) .caption, .document_frame:not(:focus-within) .caption,.document_frame:not(:focus) .caption, 
.audio_frame:not(:hover) .caption, .audio_frame:not(:focus-within) .caption,.audio_frame:not(:focus) .caption, 
.image_frame:not(:hover) .caption, .image_frame:not(:focus-within) .caption,.image_frame:not(:focus) .caption,
.video_frame:not(:hover) .caption, .video_frame:not(:focus-within) .caption .video_frame:not(:focus) .caption {
    animation: fade ease 2.5s;
    transition: 1s opacity 2s;
    opacity: 1;
}
figure:hover figcaption, figure:focus-within figcaption, figure:focus, 
.document_frame:hover .caption, .document_frame:focus-within .caption, .document_frame:focus, 
.audio_frame:hover .caption, .audio_frame:focus-within .caption, .audio_frame:focus, 
.image_frame:hover .caption, .image_frame:focus-within .caption, .image_frame:focus, 
.video_frame:hover .caption, .video_frame:focus-within .caption, .video_frame:focus {
    animation: fade ease 2.5s reverse;
    opacity: 0;
}
nav {
	background-color: #CFCFFF;
    margin: 0;
    padding: 0.5em;
}
nav li {
    text-align: center;
    border-bottom: 1px solid gold;
}
nav ul{
    list-style: none;
    margin: 0;
    padding-left: 0;
    font-size: 1.2em;
}
main {
	padding: 2em;
}
a, a:visited {
	color: #000FFF;
}
footer {
    font-size: 75%;
    font-style: italic;
    text-align: center;
    vertical-align: bottom;
    padding: 2em;
}
@media screen and (min-width: 600px) {
    nav ul {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-content: space-between;
        justify-content: space-around;
    }
    nav li {
        display: block;
        border-bottom: none;
    }
}
@media screen and (min-width: 1024px) {
    body {
	    display: grid;
	    width: 80%;
	    margin: auto;
    	grid-template-rows: auto 1fr auto;
    	grid-template-columns: 160px 1fr;
    }
    header {
        grid-row: auto;
        grid-column: 1/3;
    }
    nav {
        grid-row: 2/4;
        grid-column: 1/2;
        padding-left: 1em;
    }
    nav ul {
        flex-direction: column;
    }
    nav li {
        text-align: left;
    }
    main {
        grid-row: auto;
        grid-column: 2/3;
    }
    main section div.image_frame {
        display: grid;
        grid-template-rows: auto;
        grid-template-columns: 1fr 1fr;
        gap: 0.5em 1em;
    }
    main section div.image_frame, main section div.video_frame {
        grid-row: auto;
        grid-column: auto;
    }
    footer {
        grid-row: auto;
        grid-column: 2/3; 
    }
}
@keyframes fade {
    0% {
        user-select: all;
        z-index: -999;
    }
    100% {
        user-select: none;
        z-index: 100;
    }
}