:root {
  --fade-duration: 800ms;
  --offline-bg: rgba(0, 0, 0, 0.65);
  --offline-fg: #f8f8f8;
}

* {
  box-sizing: border-box;
}

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

#player {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background: #000;
}

.media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--fade-duration) ease;
  background: #000;
}

.media.active {
  opacity: 1;
}

.media.fit {
  object-fit: contain;
}

.media.fill {
  object-fit: cover;
}

.media.stretch {
  object-fit: fill;
}

#offline {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 6px 10px;
  border-radius: 16px;
  background: var(--offline-bg);
  color: var(--offline-fg);
  font: 14px/1.2 "Arial", sans-serif;
  opacity: 0;
  transition: opacity 200ms ease;
  pointer-events: none;
}

#offline.visible {
  opacity: 1;
}
