:root {
  --bg: #FEF8ED; --ink: #3F2052; --accent: #8CDCB4;
  --btn: #8CDCB4; --btn-text: #3F2052;
  --band: #3F2052; --band-text: #FEF8ED; --band-accent: #8CDCB4;
}
* { box-sizing: border-box; }
html { background: var(--bg); color: var(--ink); }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; font: 400 1.125rem/1.6 'Source Serif 4', Georgia, serif; }
main { flex: 1; width: 100%; max-width: 40rem; margin: 0 auto; padding: 2.5rem 1.25rem 3rem; text-align: center; }
.logo { display: block; width: 100%; max-width: 26rem; height: auto; margin: 0 auto 1.5rem; }
h1 { margin: 0 0 .75rem; font: 700 clamp(1.75rem, 5vw, 2.5rem)/1.15 'Libre Caslon Text', Georgia, serif;  }
.lead { margin: 0 auto 2rem; max-width: 32rem; }
.signup { background: var(--band); color: var(--band-text); border-top: 4px solid var(--band-accent); border-radius: 12px; padding: 1.5rem 1.25rem; text-align: left; }
.signup h2 { margin: 0 0 .75rem; font: 700 1.25rem/1.2 'Libre Caslon Text', Georgia, serif;  }
label { display: block; font-weight: 600; margin-bottom: .375rem; }
.row { display: flex; gap: .5rem; flex-wrap: wrap; }
input[type=email] { flex: 1 1 14rem; min-height: 3rem; padding: .625rem .875rem; font: inherit; color: #1a1a1a; background: #fff; border: 2px solid transparent; border-radius: 8px; }
button { flex: 0 0 auto; min-height: 3rem; padding: .625rem 1.25rem; font: 600 1rem/1 'Source Serif 4', Georgia, serif; color: var(--btn-text); background: var(--btn); border: 2px solid var(--band-text); border-radius: 8px; cursor: pointer; }
button[disabled] { opacity: .6; cursor: progress; }
input:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid var(--band-accent); outline-offset: 2px; }
.cf-turnstile iframe { margin-top: .75rem; }
.status { margin: .75rem 0 0; }
.status:empty { margin: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
footer { padding: 1.5rem 1.25rem 2rem; text-align: center; font-size: .9375rem; }
footer p { margin: .25rem 0; }
a { color: var(--ink); }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
