* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  height: 100vh; display: flex; align-items: center; justify-content: center;
  background: #0d0d0d; font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  user-select: none;
}
body::before {
  content: ''; position: fixed; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(184,169,201,0.06) 0%, transparent 60%);
}
.box { position: relative; z-index: 1; text-align: center; padding: 48px 40px; }
.logo { font-size: 2.8rem; color: #e8dfd0; font-weight: 300; letter-spacing: 0.06em; margin-bottom: 8px; }
.sub { font-size: 0.85rem; color: rgba(180,170,155,0.5); margin-bottom: 36px; letter-spacing: 0.1em; }
.input {
  width: 260px; padding: 14px 18px; border: 1px solid rgba(200,190,175,0.25); border-radius: 10px;
  background: rgba(255,255,255,0.03); color: #e8dfd0; font-size: 1rem; font-family: inherit;
  text-align: center; letter-spacing: 0.08em; outline: none; transition: border-color 0.3s;
}
.input:focus { border-color: rgba(200,180,160,0.5); }
.input::placeholder { color: rgba(150,140,120,0.35); }
.btn {
  display: block; margin: 16px auto 0; padding: 10px 40px; border: none; border-radius: 8px;
  background: rgba(184,169,201,0.2); color: #c4b5d4; font-size: 0.9rem; font-family: inherit;
  letter-spacing: 0.06em; cursor: pointer; transition: all 0.3s;
}
.btn:hover { background: rgba(184,169,201,0.35); }
.error { color: rgba(220,140,140,0.7); font-size: 0.8rem; margin-top: 12px; display: none; }
.error.show { display: block; }
