[hidden] { display: none !important; }
.login {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 390px);
  justify-content: center;
  align-items: center;
  gap: clamp(24px, 6vw, 80px);
  padding: clamp(24px, 5vw, 72px);
}
.pitch h1 { max-width: 15em; font-size: clamp(32px, 4.8vw, 56px); line-height: 1.05; }
.pitch-lead { max-width: 43ch; font-size: 16px; line-height: 1.6; }
.pitch-points { list-style: none; padding: 0; margin: 24px 0; display: grid; gap: 12px; }
.pitch-points li { border-left: 3px solid var(--accent); padding: 3px 0 3px 14px; }
.pitch-points span { display: block; line-height: 1.55; }
.pitch-note { color: var(--muted); }
@media (max-width: 720px) {
  .login { grid-template-columns: minmax(0, 490px); align-content: start; }
}
.login-card { max-width: 430px; width: 100%; background: white; border: 1px solid var(--line); border-radius: 16px; padding: 32px; }
.login-card p { line-height: 1.6; }
.login-card label, .login-card input { display: block; width: 100%; }
.login-card input { margin: 6px 0 16px; padding: 12px; border: 1px solid #a3afaa; border-radius: 8px; }
.login-card button { margin-bottom: 8px; white-space: normal; }
#login-message { min-height: 1.6em; }
#session-bar { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding: 8px 18px; background: white; }
.setup { max-width: 760px; margin: auto; padding: 24px; }
.setup .login-card { max-width: none; margin: 16px 0; }
.setup select { display: block; max-width: 100%; margin: 8px 0 16px; padding: 8px; }
