:root { --bg:#140a1f; --panel:#1e1030; --violet:#b98cff; --violet-2:#7a3cff; --text:#efe9f7; }
* { box-sizing: border-box; }
body {
  margin: 0; min-height: 100vh; font-family: system-ui, sans-serif; color: var(--text);
  background: radial-gradient(120% 80% at 50% -10%, #2a1350 0%, var(--bg) 60%);
  display: grid; place-items: center; padding: 2rem 1rem;
}
.hero { max-width: 34rem; text-align: center; }
.logo { font-size: clamp(2.5rem, 8vw, 5rem); letter-spacing: .15em; margin: 0 0 .5rem;
  background: linear-gradient(90deg, var(--violet), #fff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tagline { color: #cbb9e6; margin: 0 0 2rem; }
.signup { display: grid; gap: .75rem; justify-items: center; }
.signup input {
  width: 100%; padding: .8rem 1rem; border-radius: .6rem; border: 1px solid #3a2358;
  background: var(--panel); color: var(--text); font-size: 1rem;
}
.signup button {
  width: 100%; padding: .8rem 1rem; border: 0; border-radius: .6rem; cursor: pointer;
  font-size: 1rem; font-weight: 600; color: #fff;
  background: linear-gradient(90deg, var(--violet-2), var(--violet));
}
.signup button:hover { filter: brightness(1.1); }
#form-status { min-height: 1.2em; margin: .25rem 0 0; font-size: .95rem; }
#form-status.ok { color: #7CFFB2; }
#form-status.err { color: #ff8a8a; }
.consent { font-size: .8rem; color: #9c86bd; margin: .25rem 0 0; }
.links { margin-top: 2rem; display: flex; gap: 1rem; justify-content: center; align-items: center; flex-wrap: wrap; }
.links a { color: var(--violet); text-decoration: none; }
.btn-discord { padding: .6rem 1.1rem; border: 1px solid var(--violet); border-radius: .6rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
