
.topbar{display:flex;align-items:center;gap:.5rem;font:700 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.topbar .sq{width:.7rem;height:.7rem;background:var(--accent)}
.topbar .call{margin-left:auto;font:600 14px/1 var(--body);letter-spacing:0;text-transform:none}
.hero{padding:2rem 0 0}
.hero h1{font:700 clamp(2rem,6.5vw,3rem)/1.06 var(--body);letter-spacing:-.03em;max-width:16ch}
.hero .lede{font-size:1.08rem;color:var(--ink-2);max-width:38rem;margin:1rem 0 0}
.scan-form{margin-top:1.75rem;padding:1.25rem;border:2px solid var(--ink)}
.scan-form label{display:block;font-weight:700;margin:0 0 .4rem}
.scan-form .field+.field{margin-top:1rem}
.scan-form input,.scan-form select{width:100%;font:inherit;font-size:1.05rem;padding:.7rem .8rem;border:2px solid var(--ink);border-radius:2px;background:#fff;color:var(--ink)}
.scan-form button{margin-top:1.1rem;width:100%;font:inherit;font-weight:700;font-size:1.05rem;padding:.8rem 1.3rem;background:var(--accent);color:var(--ink);border:2px solid var(--ink);border-radius:2px;cursor:pointer}
.scan-form button[disabled]{opacity:.6;cursor:progress}
.scan-form .small{margin:.7rem 0 0}
.err{color:var(--poor);font-weight:600;margin:.85rem 0 0;padding:.6rem .8rem;background:var(--poor-bg);border:1px solid var(--poor)}
.err[hidden],.progress[hidden],.questions[hidden]{display:none}
.progress{margin-top:1.5rem;padding:1rem 1.25rem;background:var(--wash)}
.progress h2{font:700 1.1rem/1.2 var(--body)}
.progress ol{margin:.75rem 0 0;padding-left:1.4rem}
.progress li{padding:.25rem 0;color:var(--na)}
.progress li.done{color:var(--good)}
.progress li.done::marker{content:"✓  "}
.progress li.now{color:var(--ink);font-weight:700}
.progress .queue{color:var(--ink-2);margin:.5rem 0 0}
.questions{margin:1.75rem 0;padding:1.25rem 1.25rem .5rem;border:2px solid var(--ink)}
.questions h2{font:700 1.2rem/1.2 var(--body)}
.questions .small{margin:.4rem 0 0}
.qf{margin:1rem 0 0;padding:.9rem 0 0;border:0;border-top:1px solid var(--rule)}
.qf legend{padding:0;font-weight:600;line-height:1.45}
.qf .qn{font:700 12px/1 var(--mono);color:var(--accent-text);margin-right:.25rem}
.answers{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.answers label{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border:2px solid var(--rule);border-radius:2px;cursor:pointer;font-size:14px}
.answers input{accent-color:var(--ink);margin:0}
.answers label:has(input:checked){border-color:var(--ink);background:var(--wash);font-weight:700}
.q1-text{display:block;margin-top:.7rem;font-size:13.5px;color:var(--ink-2)}
.q1-text textarea{display:block;width:100%;margin-top:.3rem;font:inherit;font-size:15px;padding:.5rem .6rem;border:2px solid var(--rule);border-radius:2px;color:var(--ink)}
.saved{margin:.35rem 0 0;min-height:1.1em;font-size:12.5px;color:var(--good);font-weight:600}
.save{font:inherit;font-weight:700;padding:.55rem 1rem;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:2px;cursor:pointer}
.js .save{display:none}
.areas{margin-top:2.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem}
.areas h2{grid-column:1/-1;font:700 1.3rem/1.2 var(--body)}
.areas h3{font-size:1rem;font-weight:700;padding-top:.6rem;border-top:2px solid var(--ink)}
.areas p{margin:.35rem 0 0;color:var(--ink-2)}
.who{margin-top:2.5rem;padding:1.25rem 1.4rem;background:var(--ink);color:#fff}
.who h2{font:700 1.15rem/1.2 var(--body);color:#fff}
.who p{margin:.5rem 0 0}
.who a{color:#fff}
.prose h1{font:700 2rem/1.15 var(--body);letter-spacing:-.02em;margin-top:1.25rem}
.prose h2{font:700 1.15rem/1.2 var(--body);margin-top:1.75rem}
.prose p,.prose li{max-width:40rem}
.site-foot{margin-top:3rem;padding-top:1rem;border-top:2px solid var(--ink);font-size:13px;color:var(--ink-2)}
.site-foot p{margin:.35rem 0}
.site-foot .links{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}
.notice{margin:.75rem 0 0;padding:.6rem .8rem;font-weight:600;border:1px solid var(--ink);background:var(--wash)}
.n-sent{border-color:var(--good);color:var(--good);background:var(--good-bg)}
.n-failed,.n-invalid,.n-limited{border-color:var(--poor);color:var(--poor);background:var(--poor-bg)}
.full-link{margin:.6rem 0 0;font-weight:700}
.msg{margin-top:1.5rem}
@media (max-width:560px){.areas{grid-template-columns:1fr}.topbar .call{font-size:13px}}
@media (prefers-reduced-motion:no-preference){.progress li.now{animation:pulse 1.4s ease-in-out infinite}}
@keyframes pulse{50%{opacity:.55}}
