:root {
  color-scheme: dark;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #000;
}

body {
  user-select: none;
  overscroll-behavior: none;
}

body.is-cover-visible {
  cursor: auto;
}

body.is-locked {
  cursor: none;
}

body.is-unlocked {
  cursor: auto;
}

.page {
  position: relative;
  width: 100%;
  height: 100%;
  background: #000;
}

.cover {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  cursor: pointer;
  background:
    radial-gradient(circle at 50% 25%, rgba(255, 232, 150, 0.2), transparent 35%),
    linear-gradient(180deg, rgba(20, 0, 0, 0.2), rgba(0, 0, 0, 0.55));
}

.cover[hidden] {
  display: none;
}

.cover:focus-visible {
  outline: 0;
}

.cover-image {
  width: 100vw;
  height: 100vh;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.45));
  pointer-events: none;
}

.player {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
}

body.is-started .player,
body.is-unlocked .player {
  opacity: 1;
}

body.is-unlocked .player {
  pointer-events: auto;
}

body.is-locked .player::-webkit-media-controls {
  display: none !important;
}

body.is-locked .player::-webkit-media-controls-enclosure {
  display: none !important;
}
