*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: #0f0f0f;
  color: #e8e8e8;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  min-height: 100vh;
}

.dot { color: #7eb8f7; }

/* ── Page layout ── */
.page {
  max-width: 520px;
  margin: 0 auto;
  padding: 2rem 1.5rem 4rem;
}

/* ── Header ── */
.site-header {
  padding-bottom: 2.5rem;
}

.site-name {
  font-size: 1.1rem;
  font-weight: 300;
  letter-spacing: 0.08em;
  color: #fff;
  text-decoration: none;
  transition: color 0.2s;
}

.site-name:hover { color: #a8d0ff; }

/* ── Headings & intro ── */
main h1 {
  font-size: 1.8rem;
  font-weight: 300;
  color: #fff;
  margin-bottom: 0.4rem;
}

.subtitle {
  color: #777;
  font-size: 0.9rem;
  margin-bottom: 2rem;
}

/* ── Form ── */
.form-group {
  margin-bottom: 1.4rem;
}

label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.82rem;
  color: #aaa;
  letter-spacing: 0.03em;
}

.req { color: #7eb8f7; }

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  width: 100%;
  background: #161616;
  border: 1px solid #2a2a2a;
  color: #e8e8e8;
  padding: 0.7rem 0.9rem;
  border-radius: 4px;
  font-size: 0.95rem;
  font-family: inherit;
  transition: border-color 0.2s;
  resize: vertical;
}

input:focus,
textarea:focus {
  outline: none;
  border-color: #7eb8f7;
}

textarea { min-height: 100px; }

/* ── CAPTCHA ── */
.captcha-label { margin-bottom: 0.6rem; }

.captcha-container {
  position: relative;
  width: 320px;
  max-width: 100%;
  border-radius: 4px;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
}

.captcha-bg {
  display: block;
  width: 100%;
  height: auto;
}

.captcha-piece {
  position: absolute;
  cursor: grab;
  border-radius: 2px;
  transition: box-shadow 0.15s;
}

.captcha-piece:active  { cursor: grabbing; }
.captcha-piece.snapped { box-shadow: 0 0 0 2px #7eb8f7; }

/* ── Submit button ── */
button[type="submit"] {
  display: block;
  width: 100%;
  padding: 0.85rem;
  background: #7eb8f7;
  color: #0f0f0f;
  border: none;
  border-radius: 4px;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 0.5rem;
}

button[type="submit"]:hover    { background: #a8d0ff; }
button[type="submit"]:disabled { background: #2a2a2a; color: #555; cursor: not-allowed; }

/* ── Messages ── */
.form-message {
  margin-top: 1rem;
  font-size: 0.9rem;
  min-height: 1.2em;
}

.form-message.error { color: #f77; }

.success-msg {
  margin-top: 2rem;
  font-size: 1.05rem;
  color: #7eb8f7;
  letter-spacing: 0.02em;
}

/* ── Version ── */
.version {
  position: fixed;
  bottom: 0.9rem;
  right: 1rem;
  color: #333;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
