@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500&display=swap');

:root { color-scheme: light; font-family: 'DM Sans', sans-serif; color: #000; background: #fff; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100svh; display: flex; flex-direction: column; }
a { color: inherit; }
button, input { font: inherit; }
button, a { touch-action: manipulation; }
button:focus-visible, a:focus-visible { outline: 2px solid #000; outline-offset: 4px; }
.page { flex: 1; width: min(100%, 800px); margin: 0 auto; padding: 32px 28px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.flower-figure { width: 100%; margin: 0 0 24px; }
.flower-stage { height: 380px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
#flower { font-family: 'Courier New', monospace; font-size: 7px; line-height: 1; letter-spacing: 0; color: #000; margin: 0; user-select: none; }
h1 { max-width: 650px; margin: 0; text-align: center; font-size: clamp(26px, 3vw, 40px); line-height: 1.2; font-weight: 450; letter-spacing: -.04em; }
.signup { width: min(100%, 390px); margin-top: 30px; }
.input-row { display: flex; border: 1px solid #000; background: #fff; }
.input-row:focus-within { outline: 2px solid #000; outline-offset: 3px; }
input[type=email] { flex: 1; width: 0; min-width: 0; font-family: 'Courier New', monospace; color: #000; background: #fff; border: 0; outline: 0; padding: 15px 16px; font-size: 14px; }
input::placeholder { color: #000; opacity: .65; }
#submit { flex-shrink: 0; cursor: pointer; background: #000; color: #fff; border: 0; padding: 15px 24px; font-size: 14px; }
#submit:hover { background: #fff; color: #000; box-shadow: inset 1px 0 #000; }
#submit:disabled { opacity: .6; cursor: wait; }
.signup-note { font-size: 9px; text-align: center; margin: 12px 0 0; line-height: 1.6; opacity: .65; }
.form-status { font-size: 12px; text-align: center; line-height: 1.5; margin: 12px 0 0; }
.form-status:empty { display: none; }
.footer { width: min(100%, 960px); margin: 0 auto; padding: 22px 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 10px; opacity: .65; }
.footer a { text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.trap, .sr-only { position: absolute; height: 1px; width: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.privacy { max-width: 660px; margin: 0 auto; padding: 45px 28px 80px; }
.privacy h1 { text-align: left; margin: 30px 0; }
.privacy h2 { font-size: 18px; margin-top: 28px; font-weight: 500; }
.privacy p { font-size: 15px; line-height: 1.75; }
@media (max-width: 650px) { .page { padding: 24px; } .flower-stage { height: 300px; } #flower { font-size: clamp(4px, 1.28vw, 7px); } .flower-figure { margin-bottom: 24px; } h1 { max-width: 420px; } .signup { margin-top: 26px; } .footer { padding: 20px 24px; font-size: 9px; gap: 10px; } }
