html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #000;
  color: #ddd;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
  overflow: hidden;
  cursor: none;
}

#stage {
  position: fixed;
  inset: 0;
}

.layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity var(--fade, 1500ms) ease-in-out;
}
.layer.active {
  opacity: 1;
}

#overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.85);
  transition: opacity 400ms ease-out;
  z-index: 10;
  cursor: pointer;
}
#overlay.hidden {
  opacity: 0;
  pointer-events: none;
}
#overlay h1 {
  font-weight: 200;
  letter-spacing: 0.4em;
  font-size: 1.5rem;
  text-transform: uppercase;
  margin: 0 0 0.6rem 0;
}
#overlay p {
  margin: 0;
  opacity: 0.6;
  font-size: 0.9rem;
}

#auth-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.92);
  z-index: 20;
  cursor: default;
}
#auth-overlay[hidden] { display: none; }
#auth-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  min-width: 320px;
  max-width: 90vw;
}
#auth-form h1 {
  font-weight: 200;
  letter-spacing: 0.4em;
  font-size: 1.5rem;
  text-transform: uppercase;
  margin: 0;
}
#auth-form p {
  margin: 0;
  opacity: 0.6;
  font-size: 0.9rem;
}
#auth-input {
  width: 100%;
  background: #111;
  color: #ddd;
  border: 1px solid #333;
  border-radius: 6px;
  padding: 0.6rem 0.75rem;
  font: inherit;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.85rem;
  text-align: center;
}
#auth-input:focus { outline: none; border-color: #c89b58; }
#auth-form button {
  background: #c89b58;
  color: #1a1408;
  border: none;
  border-radius: 6px;
  padding: 0.5rem 1.2rem;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.8rem;
}
.auth-error {
  color: #c75450 !important;
  opacity: 1 !important;
}
