:root {
  color-scheme: dark;
  font: 16px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
  background: #050807;
  color: #dceee6;
}
* { box-sizing: border-box; }
body {
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  display: grid;
  align-items: center;
  padding: 24px clamp(22px, 9vw, 140px);
  background: radial-gradient(ellipse at 14% 50%, #102019 0%, #050807 65%);
}
.terminal { width: min(100%, 31rem); }
.address, #reply { margin: 0; color: #aac0b5; font-size: .84rem; }
h1 { color: #a8ffe0; font-size: 1.18rem; font-weight: 500; margin: .35rem 0 1.35rem; }
.cursor { margin-left: .45ch; animation: blink 1.25s steps(2, jump-none) infinite; }
@keyframes blink { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }
form { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: .55rem .85rem; }
label { color: #a8ffe0; font-size: .88rem; }
input, button { font: inherit; min-height: 44px; border: 1px solid #385448; border-radius: 3px; }
input { min-width: 0; padding: .45rem .65rem; color: inherit; background: #0d1712; }
button { grid-column: 2; justify-self: start; padding: .36rem .9rem; color: #a8ffe0; background: #12241b; cursor: pointer; }
button:disabled { opacity: .65; cursor: wait; }
:focus-visible { outline: 2px solid #a8ffe0; outline-offset: 2px; }
#reply { margin-top: .9rem; min-height: 1.5em; }
#reply[data-error] { color: #ffbccd; }
