* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #17191d;
  color: #e7e9ee;
  font-family: Arial, Helvetica, sans-serif;
}

#game-shell {
  width: 100vw;
  height: 100vh;
  display: grid;
  place-items: center;
  position: relative;
}

#game-canvas {
  width: min(100vw, calc(100vh * 16 / 9));
  height: min(100vh, calc(100vw * 9 / 16));
  display: block;
  background: #20242b;
  image-rendering: pixelated;
}

#main-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #000;
  cursor: pointer;
  transition: opacity 760ms ease;
}

#main-menu-overlay.is-revealing {
  opacity: 0;
  pointer-events: none;
}

#main-menu-overlay.is-hidden {
  display: none;
}

#main-menu-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 420ms ease;
}

.main-menu-black {
  position: absolute;
  inset: 0;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 720ms ease;
}

#main-menu-overlay.is-fading .main-menu-black,
#main-menu-overlay.is-revealing .main-menu-black {
  opacity: 1;
}

#main-menu-overlay.is-revealing #main-menu-video {
  opacity: 0;
}

#screen-hint {
  position: absolute;
  left: 16px;
  bottom: 12px;
  padding: 5px 8px;
  background: rgba(20, 22, 26, 0.72);
  color: #b9c0ca;
  font-size: 13px;
  pointer-events: none;
}

.visually-hidden-file-input {
  position: fixed;
  left: 0;
  top: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
