:root { color-scheme: dark; --dark:#071126; --dark-2:#101d37; --white:#fff; --social-cyan:#12e3de; --social-violet:#a378ff; --social-muted:#aebbd5; --line:rgba(174,187,213,.24); --paper:#f3f5fc; --ink:#171229; --muted:#675f7d; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; background:radial-gradient(ellipse at 100% 0,rgba(18,227,222,.08),transparent 45%),var(--dark); color:var(--white); font:15px/1.6 "DM Sans",sans-serif; -webkit-font-smoothing:antialiased; }
main { width:min(100% - 40px,640px); margin:auto; padding:30px 0; }
header { display:flex; justify-content:space-between; align-items:center; gap:20px; }
header img { display:block; width:106px; height:auto; }
a { color:inherit; text-underline-offset:4px; }
.back { color:var(--social-muted); font-size:12px; text-decoration:none; }
.intro { padding:32px 0 25px; }
.eyebrow { color:var(--social-cyan); font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
h1 { font:600 clamp(34px,7vw,45px)/1.08 "Outfit",sans-serif; letter-spacing:-.04em; margin:12px 0 18px; }
.intro>p:last-child { color:var(--social-muted); margin:0; max-width:54ch; }
form { position:relative; padding:26px; border-radius:22px; background:var(--paper); color:var(--ink); color-scheme:light; }
.fields { display:grid; grid-template-columns:1fr 1fr; gap:19px 18px; }
.field { min-width:0; display:flex; flex-direction:column; gap:7px; }
.field-wide { grid-column:1/-1; }
label { font-size:13px; font-weight:700; }
label span { font-size:11px; color:var(--muted); font-weight:400; padding-left:4px; }
input,select,button { font:inherit; }
input,select { display:block; width:100%; min-width:0; border:1px solid #cbc9d7; border-radius:9px; padding:12px; min-height:48px; color:var(--ink); background:var(--white); font-size:16px; }
input::placeholder { color:#797487; font-size:14px; }
.help { color:var(--muted); font-size:11px; line-height:1.5; }
.privacy { font-size:11px; line-height:1.7; color:var(--muted); margin:23px 0 18px; }
.privacy a { color:#5b4397; }
button { width:100%; padding:15px 18px; border:0; border-radius:10px; background:var(--dark); color:var(--white); display:flex; gap:12px; align-items:center; justify-content:space-between; text-align:left; font-weight:600; cursor:pointer; line-height:1.4; }
button:disabled { opacity:.65; cursor:wait; }
button span { color:var(--social-cyan); font-size:20px; }
:focus-visible { outline:3px solid var(--social-violet); outline-offset:3px; }
.error { border-left:3px solid #a02e3d; padding:10px 12px; color:#862433; background:#fbecef; font-size:13px; }
#sending-status:empty { display:none; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.footnote { font-size:12px; color:var(--social-muted); margin-top:22px; }
.footnote p { margin:0 0 12px; }
.footnote a { color:var(--white); }
.success { background:var(--dark-2); border:1px solid var(--line); border-radius:22px; padding:30px; }
.success h2 { font:600 30px/1.2 "Outfit",sans-serif; margin:15px 0; }
.success p { color:var(--social-muted); }
.success-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:var(--dark); background:var(--social-cyan); font-size:23px; }
.protocol { font-size:12px; overflow-wrap:anywhere; }
@media(max-width:560px) { .fields { grid-template-columns:1fr; } form { padding:22px; } }
@media(max-width:360px) { main { width:calc(100% - 32px); } form { padding:18px; } .back { max-width:100px; text-align:right; } }

/* Progressive form: all fields remain readable if JavaScript is unavailable. */
progress.progress { display:block; appearance:none; border:0; width:100%; height:5px; margin:0 0 18px; border-radius:9px; overflow:hidden; background:var(--line); }
progress::-webkit-progress-bar { background:var(--line); }
progress::-webkit-progress-value { background:var(--social-violet); }
progress::-moz-progress-bar { background:var(--social-violet); }
.step-status { margin:0; font-size:11px; color:var(--muted); }
.step { border:0; padding:0; margin:0 0 16px; min-width:0; }
.step legend { padding:0 0 20px; font:600 24px/1.2 "Outfit",sans-serif; letter-spacing:-.02em; }
.step .fields { grid-template-columns:1fr; }
.form-actions { display:flex; gap:12px; align-items:center; }
.form-actions .previous { width:auto; flex-shrink:0; color:var(--ink); background:transparent; padding:12px 4px; font-size:13px; }
#submit-label { font-size:14px; color:var(--white); }
.review { margin-top:24px; padding:17px; border:1px solid #d9d5e6; border-radius:12px; background:#ebe8f3; }
.review h2 { margin:0 0 12px; font:600 17px/1.3 "Outfit",sans-serif; }
.review dl { margin:0; display:grid; gap:12px; }
.review dt { font-size:11px; color:var(--muted); }
.review dd { margin:2px 0 0; font-size:13px; overflow-wrap:anywhere; white-space:pre-line; }
.review p { font-size:11px; color:var(--muted); margin:12px 0 0; }
@media(max-width:360px) { .progress { gap:5px; } .progress li { font-size:10px; gap:4px; } .form-actions { gap:8px; } #submit-label { font-size:13px; } }

.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.step-status { margin-bottom:16px; }
.choices { display:grid; gap:10px; }
.choice { display:flex; align-items:center; gap:12px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--white); cursor:pointer; font-size:14px; font-weight:500; line-height:1.4; }
.choice input { width:19px; height:19px; min-height:0; flex-shrink:0; margin:0; accent-color:var(--ink); }
.choice:has(input:checked) { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.review { margin-top:0; }
.review dl>div { position:relative; padding:0 55px 12px 0; border-bottom:1px solid var(--line); }
.edit-answer { position:absolute; right:0; top:0; width:auto; padding:5px 0 5px 8px; color:var(--ink); background:transparent; font-size:12px; text-decoration:underline; }
