html,
body,
#screen {
  width: 100%;
  height: 100%;
  margin: 0;
  background: #020617;
  color: white;
  overflow: hidden;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

#screen {
  position: relative;
  display: grid;
  place-items: center;
}

#stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at top left, #1e293b, #020617 62%);
  overflow: hidden;
}

.player-slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: #020617;
}

.player-slide-bg {
  position: absolute;
  inset: -4%;
  width: 108%;
  height: 108%;
  object-fit: cover;
  object-position: center;
  filter: blur(34px) saturate(1.1);
  transform: scale(1.06);
  opacity: .38;
}

.player-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(2, 6, 23, .05), rgba(2, 6, 23, .55));
  pointer-events: none;
}

.player-slide-fg {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100vw;
  max-height: 100vh;
  object-fit: contain;
  object-position: center;
}

.player-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #020617;
}

.empty {
  text-align: center;
  max-width: 760px;
  padding: 40px;
  z-index: 2;
}

.empty h1 {
  font-size: clamp(2.5rem, 8vw, 7rem);
  letter-spacing: -.07em;
  margin: .1em 0;
}

.empty p {
  color: #cbd5e1;
  font-size: 1.35rem;
}

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .2em;
  color: #5eead4;
  font-weight: 900;
}

#caption {
  position: absolute;
  left: clamp(18px, 2.5vw, 42px);
  right: clamp(18px, 2.5vw, 42px);
  bottom: clamp(16px, 2vw, 34px);
  z-index: 4;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .85);
  font-weight: 800;
  letter-spacing: .02em;
  font-size: clamp(.95rem, 1.1vw, 1.35rem);
  line-height: 1.25;
  padding: 12px 16px;
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(2, 6, 23, .72), rgba(2, 6, 23, .2), rgba(2, 6, 23, 0));
  backdrop-filter: blur(10px);
}

.ppt {
  display: grid;
  place-items: center;
  text-align: center;
  gap: 16px;
  height: 100%;
  width: 100%;
  padding: 8vw;
  background: linear-gradient(135deg, #111827, #312e81, #115e59);
}

.ppt h1 {
  font-size: clamp(2rem, 6vw, 6rem);
  letter-spacing: -.05em;
  margin: 0;
}

.ppt p {
  font-size: 1.4rem;
  color: #dbeafe;
}

.fade {
  animation: fade .45s ease both;
}

@keyframes fade {
  from { opacity: 0; transform: scale(1.01); }
  to { opacity: 1; transform: scale(1); }
}
