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

body {
  color: #f7f8ff;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
}

.activity-shell {
  position: relative;
  width: 100%;
  height: 100%;
  background: #070b16;
}

.activity-status {
  position: fixed;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  padding: 24px;
  text-align: center;
}

.activity-status__panel {
  width: min(420px, 100%);
}

.activity-status__eyebrow {
  color: #22d3ee;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.activity-status h1 {
  margin: 10px 0;
}

.activity-status__detail {
  color: #a7b2ca;
}

.activity-runtime {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/*
 * Early fallback only. The authoritative copy is imported by the hashed Vite
 * entry and reinforced at runtime, so a stale proxy response cannot strand a
 * player below the fold.
 */
.activity-shell[data-first-orbit-scroll-active="true"] {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.activity-shell[data-first-orbit-scroll-active="true"] > .activity-runtime {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.activity-shell [data-first-orbit-surface="true"] > main {
  --first-orbit-bootstrap-scroll-contract: 2;
  position: absolute;
  inset: 0;
  display: block;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
  max-width: none;
  max-height: none;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: contain;
  touch-action: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: auto;
  scroll-padding-block: 16px;
  scrollbar-color: rgb(255 255 255 / 16%) transparent;
}
