:root {
  --bg: #090e16;
  --surface: #101923;
  --text: #eef3f9;
  --muted: #aab9ca;
  --accent: #93caff;
  --line: #2b3b4d;
  --ok: #8de0b4;
  --error: #ffacb7;
  color-scheme: dark;
}

* { box-sizing: border-box; }

/* `form { display: grid }` would otherwise override the hidden attribute. */
[hidden] { display: none !important; }

html, body { margin: 0; background: var(--bg); color: var(--text); }

body {
  font: 1rem/1.6 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

a { color: var(--accent); }

.page { width: 100%; max-width: 44rem; margin: 0 auto; padding: 3rem 1rem; flex: 1; }
.brand img { max-width: 100%; height: auto; }
h1 { font-size: clamp(1.5rem, 4vw, 2.1rem); line-height: 1.25; }
h2 { font-size: 1.2rem; margin-top: 2rem; }
.intro p, .hint { color: var(--muted); }

form { display: grid; gap: 1rem; margin-top: 1rem; }
label { display: grid; gap: .35rem; font-weight: 600; }
input, textarea {
  font: inherit; color: var(--text); background: var(--surface);
  border: 1px solid var(--line); border-radius: .5rem; padding: .7rem .8rem;
}
input:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
button {
  justify-self: start; font: inherit; font-weight: 600; cursor: pointer;
  color: var(--bg); background: var(--accent); border: 0; border-radius: .5rem; padding: .7rem 1.2rem;
}
button:disabled { opacity: .6; cursor: progress; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.status:empty { display: none; }
.status-ok { color: var(--ok); }
.status-error { color: var(--error); }
.notice { border-left: 3px solid var(--accent); padding-left: 1rem; }
.legal p { color: var(--text); }

.footer {
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between;
  max-width: 44rem; width: 100%; margin: 0 auto; padding: 1.5rem 1rem;
  border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem;
}
.footer nav { display: flex; gap: 1rem; }
