:root {
  --ink: #0b0907;
  --bronze: #c4a46a;
  --bronze-deep: #8a6f3d;
  --sand: #d8c7a0;
  --muted: #9a8d76;
  --ring: #6d5838;
}

* { box-sizing: border-box; }

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

body {
  min-height: 100vh;
  color: var(--sand);
  font-family: "Cormorant Garamond", Georgia, serif;
  background:
    linear-gradient(180deg, rgba(8, 7, 5, 0.28) 0%, rgba(8, 7, 5, 0.55) 55%, rgba(8, 7, 5, 0.78) 100%),
    url("/bg-login.jpg?v=1") center 40% / cover no-repeat fixed #080705;
}

a { color: var(--bronze); text-decoration: none; }
a:hover { color: #ead8a8; }

.gate {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 18px 48px;
}

.crest {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  margin-bottom: 18px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
  display: block;
}

.kicker {
  font-family: Cinzel, serif;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--bronze);
  font-size: 11px;
  margin: 0 0 8px;
}

h1 {
  font-family: Cinzel, serif;
  font-weight: 700;
  letter-spacing: 0.18em;
  font-size: clamp(28px, 6vw, 42px);
  margin: 0 0 8px;
  color: #f3e6c4;
  text-align: center;
}

.lead {
  margin: 0 0 22px;
  text-align: center;
  max-width: 420px;
  font-size: 18px;
  color: #ead8a8;
}

.card {
  width: min(420px, 100%);
  padding: 26px 24px 22px;
  background: rgba(12, 10, 8, 0.78);
  border: 1px solid rgba(196, 164, 106, 0.28);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(8px);
}

.stack { display: flex; flex-direction: column; gap: 14px; }

label {
  display: block;
  font-family: Cinzel, serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}

input {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid rgba(196, 164, 106, 0.28);
  background: #0f0c0a;
  color: #f3e6c4;
  font: 18px "Cormorant Garamond", Georgia, serif;
}

input:focus {
  outline: none;
  border-color: var(--bronze);
}

.err {
  min-height: 1.2em;
  margin: 0;
  color: #e07a68;
  font-size: 16px;
}

button, .btn {
  font-family: Cinzel, serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 12px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid var(--bronze);
  cursor: pointer;
}

button {
  color: #1a140c;
  background: linear-gradient(180deg, #e4c98a, #8a6f3d);
}

.back {
  display: inline-block;
  margin-top: 18px;
  font-family: Cinzel, serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

@media (max-width: 800px) {
  body { background-attachment: scroll; }
}
