:root{
  --bg: #0e0f12;
  --bg-accent: #151821;
  --card-bg: rgba(255,255,255,0.08);
  --border: rgba(255,255,255,0.18);
  --text: #e9edf1;
  --muted: #a9b3c2;
  --brand: #6aa6ff;
  --brand-strong: #3b82f6;
  --error: #ff6b6b;
  --radius: 16px;
  --shadow: 0 8px 26px rgba(0,0,0,0.35);
}

/* ===== Page layout with soft gradient ===== */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font: 15px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  color: var(--text);
  background:
    radial-gradient(1200px 800px at 10% 10%, #1b2333 0%, transparent 60%),
    radial-gradient(1000px 700px at 90% 30%, #12273f 0%, transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, #0b0c0f 100%);
}

/* Center content nicely */
.page{
  min-height: 100%;
  display: grid;
  place-items: center;
  padding: clamp(16px, 3.5vw, 48px);
}

/* ===== Glass / blur card ===== */
.card{
  width: min(760px, 100%);
  background: var(--card-bg);
  border: 1px solid var(--border);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(20px, 3vw, 32px);
}

.card__header{
  margin-bottom: 8px;
}
.title{
  margin: 0 0 6px 0;
  font-weight: 650;
  letter-spacing: 0.2px;
  font-size: clamp(20px, 2.4vw, 28px);
}
.subtitle{
  margin: 0 0 10px 0;
  color: var(--muted);
  font-size: 0.95rem;
}

/* ===== Form fields ===== */
.form{
  display: grid;
  gap: 14px;
}

.field{
  display: grid;
  gap: 8px;
}

label{
  font-size: 0.95rem;
  color: var(--text);
}

input{
  width: 100%;
  appearance: none;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.06);
  color: var(--text);
  border-radius: 12px;
  padding: 12px 14px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease, transform .05s ease;
}

input::placeholder{ color: rgba(233,237,241,0.55); }

/* Focus & hover */
input:hover{
  border-color: rgba(255,255,255,0.24);
  background: rgba(255,255,255,0.08);
}
input:focus{
  border-color: var(--brand);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--brand) 26%, transparent);
}

/* Valid / invalid quick cues (HTML5) */
input:invalid:not(:placeholder-shown){
  border-color: color-mix(in oklab, var(--error) 70%, white 0%);
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--error) 24%, transparent);
}
input:valid{
  border-color: color-mix(in oklab, var(--brand-strong) 60%, white 0%);
}

/* Hints */
.hint{
  color: var(--muted);
  font-size: 0.85rem;
}

/* ===== Button ===== */
.btn{
  margin-top: 6px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: 1px solid rgba(255,255,255,0.14);
  background:
    radial-gradient(240px 120px at 50% 0%, rgba(255,255,255,0.08), transparent 60%),
    linear-gradient(180deg, color-mix(in oklab, var(--brand) 60%, #ffffff 0%) 0%, var(--brand-strong) 100%);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.2px;
  padding: 12px 16px;
  border-radius: 12px;
  cursor: pointer;
  transition: transform .06s ease, filter .2s ease, box-shadow .2s ease;
  box-shadow: 0 8px 18px rgba(59,130,246,0.25);
}
.btn:hover{ filter: brightness(1.06) saturate(1.05); }
.btn:active{ transform: translateY(1px); }

/* ===== Footer ===== */
.footer{
  text-align: center;
  margin-top: 18px;
  color: var(--muted);
  font-size: 0.9rem;
}

/* ===== Small screens ===== */
@media (max-width: 520px){
  .card{ padding: 18px; }
}

/* ===== Reduce motion ===== */
@media (prefers-reduced-motion: reduce){
  *{ transition: none !important; }
}
