:root {
  --bg: #000;
  --fg: #fff;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  padding: 0;
}

body {
  background: var(--bg);
  color: var(--fg);
  font-family: "Space Grotesk", sans-serif;
}

.gate-shell {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 100vh;
  padding: 1.25rem;
}

.gate-content {
  display: grid;
  gap: 1.2rem;
  max-width: 760px;
  transform: translateY(-6vh);
  width: 100%;
}

.typewriter {
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(1.25rem, 2.7vw, 1.9rem);
  font-weight: 500;
  line-height: 1.58;
  margin: 0;
  min-height: 11.2em;
  white-space: pre-wrap;
}

.enter-btn {
  align-self: start;
  background: transparent;
  border: 1px solid var(--fg);
  color: var(--fg);
  cursor: pointer;
  font-family: "Space Grotesk", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  opacity: 0;
  padding: 0.36rem 0.5rem;
  text-transform: uppercase;
  transform: scale(0.96);
  width: fit-content;
}

.enter-btn.revealed {
  animation: enter-reveal 420ms ease forwards;
}

.enter-btn:hover,
.enter-btn:focus-visible {
  background: #fff;
  color: #000;
  outline: none;
}

@keyframes enter-reveal {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (max-width: 700px) {
  .gate-content {
    transform: translateY(-3vh);
  }
}
