:root { color-scheme: light; --ink:#18332b; --cream:#f6f1e7; --green:#1f5949; --lime:#dce86d; --muted:#6d756e; --line:#d8ded8; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; font-family:"DM Sans",sans-serif; color:var(--ink); background:#fff; }
.layout { min-height:100vh; display:grid; grid-template-columns:minmax(320px, .9fr) minmax(480px, 1.1fr); }
.intro { position:relative; padding:46px clamp(36px,6vw,96px); background:var(--green); color:white; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; }
.intro::after { content:""; position:absolute; width:440px; height:440px; right:-250px; bottom:4%; border:90px solid rgba(220,232,109,.13); border-radius:50%; }
.brand { color:white; text-decoration:none; font-size:20px; font-weight:700; letter-spacing:-.02em; }
.brand span { display:inline-grid; place-items:center; width:34px; height:34px; margin-right:9px; border-radius:50%; background:var(--lime); color:var(--green); }
.intro-copy { position:relative; z-index:1; max-width:570px; margin:80px 0; }
.eyebrow,.step { text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:700; color:var(--lime); }
h1,h2 { font-family:"Newsreader",serif; font-weight:600; letter-spacing:-.035em; margin:.35em 0; }
h1 { font-size:clamp(48px,5.3vw,82px); line-height:.93; }
.intro-copy>p:last-child { max-width:470px; font-size:18px; line-height:1.65; color:#d7e2dc; }
.footnote { font-size:13px; color:#afc5bc; }
.form-panel { display:grid; place-items:center; padding:50px clamp(28px,7vw,110px); background:#fcfcfa; }
form { width:min(100%,620px); }
.form-heading { margin-bottom:34px; }
.form-heading .step { color:#56806e; margin-bottom:8px; }
h2 { font-size:clamp(35px,4vw,48px); margin:0 0 8px; }
.form-heading>p:last-child,.privacy { color:var(--muted); font-size:14px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
label { display:grid; gap:8px; margin-bottom:19px; font-size:13px; font-weight:700; }
input,select { width:100%; border:1px solid var(--line); border-radius:8px; background:white; padding:14px 15px; font:inherit; font-size:15px; color:var(--ink); outline:none; transition:.2s; }
input:focus,select:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(31,89,73,.11); }
.hidden-field { position:absolute; left:-9999px; }
button { width:100%; display:flex; justify-content:space-between; align-items:center; border:0; border-radius:8px; padding:16px 20px; background:var(--ink); color:white; font:inherit; font-weight:700; cursor:pointer; transition:.2s; }
button:hover { background:var(--green); transform:translateY(-1px); }
button:disabled { opacity:.65; cursor:wait; transform:none; }
.message { display:none; margin:0 0 16px; padding:12px 14px; border-radius:7px; font-size:14px; }
.message.error { display:block; color:#8d2828; background:#fbe9e7; }
.message.success { display:block; color:#18513e; background:#e5f4eb; }
.privacy { text-align:center; margin:13px 0 0; }
@media (max-width:800px) { .layout { grid-template-columns:1fr; } .intro { min-height:430px; padding:30px 26px; } .intro-copy { margin:65px 0 45px; } .form-panel { padding:48px 24px; } }
@media (max-width:480px) { .field-row { grid-template-columns:1fr; gap:0; } h1 { font-size:48px; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
