/* Level 0 — registration and login.
   Terminal face and glow only. No decay, no scanlines, no chromatic split, no
   burn-in. This is the one clean surface in the game; the decay schedule in
   docs/site-design.md starts at Level 1 and never touches this page. */

@font-face {
  font-family: 'VT323';
  src: url('/static/fonts/vt323.woff2') format('woff2');
  font-display: swap;
  font-weight: 400;
  font-style: normal;
}

* { box-sizing: border-box; }

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

body {
  background: #080502;
  color: #ffb642;
  font: 20px/1.4 'VT323', 'Courier New', monospace;
  text-shadow: 0 0 5px rgba(255, 150, 40, .42);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
}

.gate { width: 380px; }

.brand {
  font-size: 40px;
  letter-spacing: .18em;
  color: #ffd08a;
  margin: 0 0 2px;
  font-weight: 400;
}

.sub { color: #9c6a24; }

.rule {
  border-top: 1px solid #6b4715;
  margin: 14px 0 18px;
}

form { margin: 0; }

.field { margin-bottom: 14px; }

label {
  display: block;
  color: #9c6a24;
  letter-spacing: .06em;
}

input {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #6b4715;
  color: #ffb642;
  font: 20px 'VT323', 'Courier New', monospace;
  padding: 3px 0;
  text-shadow: inherit;
}

input:focus {
  outline: 0;
  border-bottom-color: #ffb642;
}

button {
  background: transparent;
  border: 1px solid #6b4715;
  color: #ffd08a;
  font: 20px 'VT323', 'Courier New', monospace;
  padding: 4px 18px;
  cursor: pointer;
  text-shadow: inherit;
  letter-spacing: .08em;
}

button:hover { border-color: #ffb642; }

.actions {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 22px;
}

a { color: #9c6a24; }
a:hover { color: #ffb642; }

.err {
  color: #e0483a;
  margin-bottom: 14px;
}

.hint {
  color: #6b4715;
  font-size: 17px;
  margin-top: 4px;
}

/* The blinking caret is the only motion anywhere in the game. */
.caret {
  display: inline-block;
  width: 10px;
  height: 17px;
  background: currentColor;
  vertical-align: -2px;
  animation: blink 1.1s steps(1) infinite;
}

@keyframes blink { 50% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .caret { animation: none; }
}

/* Story and rules pages sit on the same clean surface as the gate. */
.doc {
  width: 620px;
  max-width: 100%;
}

.doc p, .doc li {
  color: #ffb642;
  margin: 0 0 14px;
}

.doc h2 {
  font-size: 24px;
  color: #ffd08a;
  font-weight: 400;
  letter-spacing: .06em;
  margin: 26px 0 8px;
}

.doc ol, .doc ul { padding-left: 22px; margin: 0 0 14px; }

.doc blockquote {
  margin: 0 0 14px;
  padding: 10px 14px;
  border-left: 1px solid #6b4715;
  color: #c98a30;
}

.doc .back { margin-top: 26px; }

body.page {
  align-items: flex-start;
  justify-content: center;
}
