* { box-sizing: border-box; }

html,
body {
  margin: 0;
  height: 100%;
  background: #050505;
  color: #fff;
  overflow: hidden;
  font-family: system-ui, sans-serif;
}

.stage {
  height: 100dvh;
  width: min(100vw, 480px);
  margin: 0 auto;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  overscroll-behavior: contain;
  touch-action: pan-y;
  background: #000;
  scrollbar-width: none;
}

.stage::-webkit-scrollbar { display: none; }

.slide {
  position: relative;
  height: 100dvh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  background: #000;
}

.slide video,
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #000;
}

.progress {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  top: env(safe-area-inset-top);
  height: 3px;
  background: rgba(255, 255, 255, 0.28);
}

.progress > span {
  display: block;
  height: 100%;
  width: 0%;
  background: #fff;
}

.sound {
  position: absolute;
  z-index: 2;
  top: calc(14px + env(safe-area-inset-top));
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.sound svg {
  width: 22px;
  height: 22px;
  display: block;
}

.status {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  text-align: center;
}

.status[hidden] { display: none; }

.status { pointer-events: none; }
