/** * From justine/02_signup.html — scoped to [data-justine-auth] only. */ [data-justine-auth] { --ink: #1a1a1a; --mid: #6b7280; --muted: #9ca3af; --border: #e5e7eb; --white: #ffffff; --soft: #f5f3ff; --hover: #fafaff; --sans: var(--font-justine-jakarta), "Plus Jakarta Sans", sans-serif; --serif: var(--font-justine-jakarta), "Plus Jakarta Sans", sans-serif; } [data-justine-auth].justine-auth-root { font-family: var(--sans); background: linear-gradient(to bottom, #fafafa, #f5f3ff); min-height: 100vh; color: var(--ink); } [data-justine-auth] .f { font-family: var(--serif); } [data-justine-auth] .justine-auth-nav { background: rgba(250, 250, 250, 0.95); border-bottom: 1px solid var(--border); padding: 0 40px; height: 62px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 50; } @media (max-width: 640px) { [data-justine-auth] .justine-auth-nav { padding: 0 20px; } } [data-justine-auth] .justine-auth-nav-brand { display: flex; align-items: center; gap: 9px; text-decoration: none; } [data-justine-auth] .justine-auth-nav-logo { width: 28px; height: 28px; background: linear-gradient(135deg, #2e2a5e, #4338ca); border-radius: 7px; display: flex; align-items: center; justify-content: center; } [data-justine-auth] .justine-auth-nav-logo span { font-size: 14px; font-weight: 700; color: #ffffff; } [data-justine-auth] .justine-auth-nav-wordmark { font-size: 17px; font-weight: 700; color: var(--ink); letter-spacing: -0.02em; } [data-justine-auth] .justine-auth-nav-aside { font-size: 13.5px; color: var(--muted); } [data-justine-auth] .justine-auth-nav-aside a { color: #6366f1; font-weight: 600; text-decoration: none; } [data-justine-auth] .justine-auth-nav-aside a:hover { text-decoration: underline; } [data-justine-auth] .justine-auth-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 24px; } [data-justine-auth] .justine-auth-inner { width: 100%; max-width: 440px; } [data-justine-auth] .justine-auth-card { background: var(--white); border: 1px solid var(--border); border-radius: 16px; padding: 32px; box-shadow: 0 10px 30px rgba(30, 27, 75, 0.05); } [data-justine-auth] .justine-auth-title { font-size: 23px; font-weight: 700; color: var(--ink); letter-spacing: -0.02em; margin-bottom: 6px; line-height: 1.2; } [data-justine-auth] .justine-auth-sub { font-size: 14px; color: var(--muted); margin-bottom: 22px; line-height: 1.5; } [data-justine-auth] .justine-auth-btn-google { width: 100%; background: transparent; border: 1px solid var(--border); color: var(--ink); border-radius: 10px; padding: 11px; font-family: var(--sans); font-size: 13.5px; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 9px; transition: border-color 0.15s, background 0.15s; } [data-justine-auth] .justine-auth-btn-google:hover:not(:disabled) { border-color: #6366f1; background: var(--hover); } [data-justine-auth] .justine-auth-btn-google:disabled { opacity: 0.5; cursor: not-allowed; } [data-justine-auth] .justine-auth-legal { text-align: center; font-size: 11.5px; color: var(--muted); margin-top: 18px; line-height: 1.5; } [data-justine-auth] .justine-auth-legal a { color: var(--muted); text-decoration: underline; } [data-justine-auth] .justine-auth-legal a:hover { color: var(--mid); } [data-justine-auth] .justine-auth-loading-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 48px 24px; text-align: center; } [data-justine-auth] .justine-auth-spinner { width: 36px; height: 36px; border-radius: 50%; border: 3px solid var(--border); border-top-color: #6366f1; animation: justine-auth-spin 0.75s linear infinite; } @keyframes justine-auth-spin { to { transform: rotate(360deg); } } [data-justine-auth] .justine-auth-loading-text { font-size: 14px; color: var(--muted); }