* { box-sizing: border-box; }
:root { color-scheme: light; font-family: ui-sans-serif, system-ui, sans-serif; color: #233f38; background: #f5f3ec; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
a { color: #285d4e; text-underline-offset: .2em; }
.header, main, footer { width: min(100% - 3rem, 68rem); margin-inline: auto; }
.header { padding-block: 2rem; }
.brand { font-family: Georgia, serif; font-size: 1.8rem; font-weight: bold; text-decoration: none; }
.brand span { display: block; font: .75rem ui-sans-serif, system-ui, sans-serif; letter-spacing: .13em; text-transform: uppercase; margin-top: .4rem; }
main { flex: 1; display: grid; place-items: center; padding-block: 2rem 4rem; }
.card { width: min(100%, 48rem); background: #fffefb; padding: clamp(1.5rem, 6vw, 4rem); border: 1px solid #deded3; border-radius: 1.5rem; }
.hero { padding-block: clamp(3rem, 9vw, 6rem); }
.eyebrow { font-size: .75rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 700; }
h1 { font: 500 clamp(2rem, 5vw, 3.5rem)/1.12 Georgia, serif; margin: 1.2rem 0; letter-spacing: -.025em; overflow-wrap: anywhere; }
p { line-height: 1.7; max-width: 38rem; }
.badge { display: inline-block; background: #e9eee5; border-radius: 2rem; padding: .6rem 1rem; margin-top: 1.5rem; font-size: .8rem; }
.form-card { max-width: 32rem; }
.form-card h1 { font-size: 2.5rem; }
form { margin-top: 1.8rem; }
label { display: block; margin: 1.2rem 0 .45rem; font-weight: 600; font-size: .9rem; }
input { width: 100%; border: 1px solid #83978d; border-radius: .4rem; padding: .8rem; font: inherit; background: #fff; color: inherit; }
button { border: 0; border-radius: .4rem; background: #285d4e; color: white; padding: .9rem 1.4rem; font: 600 .95rem ui-sans-serif, system-ui, sans-serif; cursor: pointer; margin-top: 1.3rem; }
button:hover { background: #1b4338; }
:focus-visible { outline: 3px solid #9c6b19; outline-offset: 4px; }
.error { background: #fff0ee; border-left: 3px solid #a33227; color: #822c23; padding: 1rem; line-height: 1.5; }
.notice { background: #edf1e9; padding: 1.5rem; border-radius: .5rem; margin-top: 2rem; }
.notice p { margin-bottom: 0; }
.back { display: inline-block; margin-top: 1.5rem; font-size: .85rem; }
footer { padding-block: 1.5rem; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #deded3; font-size: .8rem; }
