/* login.css —— 登录页(全站唯一公开页面) */
@import url('./base.css');

.login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(560px 420px at 18% 12%, rgb(194 101 82 / 0.13), transparent 65%),
    radial-gradient(640px 480px at 85% 85%, rgb(149 127 109 / 0.16), transparent 65%),
    var(--bg);
}

/* 缓慢漂浮的光斑,给静态页面一点生命 */
.login-shell::before, .login-shell::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(70px);
  pointer-events: none;
}
.login-shell::before {
  width: 340px; height: 340px;
  left: -100px; top: -80px;
  background: rgb(227 183 171 / 0.22);
  animation: drift 14s ease-in-out infinite alternate;
}
.login-shell::after {
  width: 420px; height: 420px;
  right: -140px; bottom: -160px;
  background: rgb(149 127 109 / 0.20);
  animation: drift 18s ease-in-out infinite alternate-reverse;
}
@keyframes drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(40px, 30px) scale(1.12); }
}

.login-card {
  width: 100%;
  max-width: 350px;
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  text-align: center;
  padding: var(--sp-7) var(--sp-6);
  box-shadow: var(--shadow-lg);
  animation: rise 0.7s var(--ease) backwards;
}

.login-card h1 {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  letter-spacing: 0.04em;
  margin: 0;
}
.login-card .muted { margin-bottom: var(--sp-4); }
.login-card .field { text-align: left; margin-top: var(--sp-3); }
.login-card .btn { margin-top: var(--sp-4); }

.error {
  color: #b3372c;
  font-size: var(--fs-s);
  margin: var(--sp-2) 0 0;
}
@media (prefers-color-scheme: dark) {
  .error { color: #e0857a; }
}

@keyframes rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
