/* 로그인·가입: 배경 그라데이션 한 겹 + 가운데 한 줄 (모바일·PC 380px) */
.auth { min-height: 100dvh; display: flex; flex-direction: column; padding: calc(60px + var(--safe-t)) 24px calc(28px + var(--safe-b)); max-width: 428px; margin: 0 auto; }
.auth .brandrow { display: flex; align-items: center; gap: 9px; }
.auth .brandrow .logo { width: 26px; height: 26px; border-radius: 8px; }
.auth .brandrow span:last-child { font-size: 15px; font-weight: 700; color: var(--text); letter-spacing: -.01em; }
.auth .hero { margin-top: 72px; }
.auth .kicker { font-size: 13px; font-weight: 600; color: rgba(245,243,239,.8); letter-spacing: .01em; }
.auth h1 { margin: 12px 0 0; font-size: 34px; line-height: 1.28; font-weight: 500; letter-spacing: -.045em; color: rgba(245,243,239,.72); }
.auth h1 .hl { color: var(--text); font-weight: 600; }
.auth h2 { margin: 0 0 6px; font-size: 22px; font-weight: 800; color: var(--text-2); letter-spacing: -.03em; }
.auth form { margin-top: 40px; display: flex; flex-direction: column; }
.auth .field + .field { margin-top: 8px; }
.auth .eye { color: var(--muted-2); width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 18px; margin-right: -8px; }
.auth .forgot { display: flex; justify-content: flex-end; margin: 10px 2px 14px; }
.auth .btn { width: 100%; }
.auth .or { margin: 16px 0; }
.auth .msg { margin: 0 0 12px; padding: 12px 14px; border-radius: 14px; background: rgba(16,15,20,.5); font-size: 14px; font-weight: 600; color: var(--text-3); }
.auth .msg.bad { color: #FFB0B0; }
.auth .legal { margin-top: 14px; font-size: 12.5px; color: var(--muted); text-align: center; }
.auth .legal a { color: var(--text-3); text-decoration: underline; text-underline-offset: 2px; }
.auth .bottom { margin-top: auto; padding-top: 28px; text-align: center; }
.auth .g { width: 18px; height: 18px; }
@media (min-width: 900px) { .auth { justify-content: center; padding-top: 40px; } .auth .hero { margin-top: 48px; } .auth .bottom { margin-top: 28px; } }
