/* Public pages: homepage, terms, privacy. Loaded after auth.css, which sets the tokens. */
body.plain { min-height: 100vh; display: flex; flex-direction: column; justify-content: center;
             background: radial-gradient(ellipse at 50% -20%, rgba(42, 120, 214, 0.10), transparent 60%), var(--page); }
.site { max-width: 640px; margin: 0 auto; padding: 8px 0 40px; width: 100%; }
.site.plain { padding: 40px 0; }
.site .mast { text-align: center; margin-bottom: 36px; }
.site .wordmark { font: 600 34px/1.15 "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
                  letter-spacing: -0.01em; color: var(--ink); }
.site .tag { margin: 8px 0 0; color: var(--ink-2); font-size: 15px; }
.site header:not(.mast) { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; }
.site header .brand { font: 600 20px/1.2 "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; color: var(--ink); text-decoration: none; }
.site header nav { margin: 0; }
.site h1 { font-size: 28px; line-height: 1.2; margin: 0 0 8px; }
.site h2 { font-size: 17px; margin: 0 0 8px; }
.site p, .site li { font-size: 15px; line-height: 1.55; color: var(--ink); }
.site .muted { color: var(--muted); font-size: 13px; }
.site a { color: var(--accent); }
.site .signup { padding: 22px; }
.site .signup h2 { margin-bottom: 6px; }
.site .signup > p { margin: 0 0 14px; color: var(--ink-2); }
.site form { margin-top: 4px; }
.site .consent { flex-direction: row; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--ink); }
.site .consent input { margin-top: 3px; }
.site .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.site footer { margin-top: 36px; padding-top: 14px; border-top: 1px solid var(--grid); font-size: 13px; color: var(--muted);
               display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.site.plain footer { border-top: 0; }
.site footer a { color: var(--ink-2); text-decoration: none; }
.site footer a:hover { text-decoration: underline; }
.site .legal p, .site .legal li { font-size: 14px; }
.site .legal h2 { font-size: 16px; margin-top: 26px; }
.site .legal footer { justify-content: flex-start; }
