html {
  font-family: 'DM Sans', sans-serif;
  font-size: 3vmin;
  background-color: black;
}
body {
  margin: 0;
  
}
video {
  z-index: 1;
}
#bgimage {
  z-index: 0;
}
video, #bgimage {
  position: fixed;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

@keyframes fadein {
  0%  { opacity:0; }
  56% { opacity:0; }
  61% { opacity:1; }
  100% { opacity:1; }
}
@keyframes phase10 {
  0%   { opacity:0; }
  5%   { opacity:1; }
  83%  { opacity:1; }
  88%  { opacity:0; }
}
@keyframes phase11 {
  0%   { opacity:0; }
  6%   { opacity:0; }
  11%  { opacity:1; }
  33%  { opacity:1; }
  38%  { opacity:0; }
}
@keyframes phase12 {
  0%   { opacity:0; }
  56%  { opacity:0; }
  61%  { opacity:1; }
  83%  { opacity:1; }
  88%  { opacity:0; }
}
.fadein {
  animation: fadein 18s 1 forwards;
  animation-delay: 5s;
  opacity: 0;
}
.phase10 {
    animation: phase10 18s infinite;
  animation-delay: 5s;
  opacity: 0;
}
.phase11 {
    animation: phase11 18s infinite;
  animation-delay: 5s;
  opacity: 0;
}
.phase12 {
    animation: phase12 18s infinite;
  animation-delay: 5s;
  opacity: 0;
}
.master {
  visibility: hidden;
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
}
.content {
  z-index: 2;
  position: fixed; top: 0; left: 0;

  height: 100%;
  width: 100%;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.shrinkbox {
  height: 30vh;
  margin: 0;
  flex: 4 6 auto;
}
.legendarea {
  position:relative;
  margin-left: 5vw;
  text-align: center; 
    
  flex: 1 0 auto;
}
.title {
  /* height: 1em; */
  width: 90vw;
  
  padding: 0 0 0.6em 0;
  
  font-weight: 700;
  font-size: 320%;
  line-height: 0.95;

  outline: none;
  color: #FFC929;
}
.title.i {
  font-style: italic;
}
.infoarea {
  position:relative;
  margin-left: 5vw;
  text-align: center; 
  
  flex: 6 0 auto;
}
.text {
  /* height: 6em; */
  width: 90vw; 
  
  padding: 0 0 0.6em 0;

  font-weight: 400;
  font-size: 140%;
  font-style: italic;
  line-height: 1.1;
  
  outline: none;
  color: white;
}
p {
  margin: 0 0 0.3em 0;
}
p.tight {
  margin: 0;
}
.nav {
  flex: 0 0 auto;

  padding-left: 5vw;
  padding-top: 3vh
}
.navmenu {
  list-style-type: none;
  margin: 0;
  padding: 0;

  display: flex;
  
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
}
.navitem {
    display: block;  
  position: relative;
  
  padding: 0.6vh 2vw 0.6vh 2vw;
  background-color: white;

  /* border: 1px #00FF0a solid; */
}
.navitem a {
  text-decoration: none;
        
  font-size: 100%;
  font-weight: 400;
  color: #FFC929;
}
.navitem.idle a {
  color: black;
}
.panels {
  position: relative;
  top: 3vh;
  left: 0;
}
@keyframes showpanel {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
.infopanel {
  z-index: 3;
  animation: showpanel 300ms ease-in-out both;
  
  position: absolute;
  top: 0;
  left: 0;
  
  display: block;
  opacity: 1;

  padding: 3vh 3vw 3vh 3vw;
  
  max-height: 82vh;
  overflow: auto;
  box-sizing: border-box;

  color: black;
  background-color: white;
}
.infopanel h1 {
  font-size: 180%;
  font-weight: 400;
  padding: 0 0 0.4em 0;
  margin: 0;
}
.infopanel h2 {
  font-size: 100%;
  font-weight: 700;
  padding: 0 0 0.4em 0;
  
  margin: 0;
}
.hidden {
  display: none;
  opacity: 0;
}
.infopanel p {
  font-size: 100%;
  font-weight: 400;
}

.linkentry {
  padding: 0 0 1em 0;
}
.version  {
  position: absolute;
  display: none;
  top: 0;
  right: 0;
  padding-right: 5px;
  font-size: 100%;
  color: cyan;
  z-index:1000;
}
@media (hover: hover) {
  .navitem a:hover {
    color: darkgrey;
  }
  .infopanel a:hover {
    color: darkgrey;
  }
}