.form-wrap { max-width: 820px; min-height: calc(100vh - 68px - 140px); padding-bottom: 72px; }
.req { position: relative; margin-top: 24px; scroll-margin-top: 90px; }
.req-progress { height: 4px; background: var(--line); border-radius: 4px; overflow: hidden; margin-bottom: clamp(28px, 5vw, 48px); }
.req-progress i { display: block; height: 100%; width: 6%; background: var(--ember); border-radius: 4px; transition: width .45s cubic-bezier(.2,.8,.2,1); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.q { display: grid; gap: 14px; }
.q.fwd { animation: qin .45s cubic-bezier(.2,.8,.2,1); }
.q.back { animation: qback .45s cubic-bezier(.2,.8,.2,1); }
@keyframes qin { from { opacity: 0; transform: translateY(18px); } }
@keyframes qback { from { opacity: 0; transform: translateY(-18px); } }
@media (prefers-reduced-motion: reduce) { .q.fwd, .q.back { animation: none; } }
.q h1 { font-size: clamp(32px, 5vw, 56px); font-weight: 800; }
.q .hint { color: var(--ink-2); font-size: 18px; max-width: 56ch; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; margin-top: 16px; }
.field { display: grid; gap: 10px; grid-column: 1 / -1; align-content: start; }
.field.half { grid-column: auto; }
@media (max-width: 600px) { .field.half { grid-column: 1 / -1; } }
.fl { font-weight: 600; font-size: 16px; }
.fl small { font-weight: 400; color: var(--muted); }

.opts { display: grid; gap: 10px; }
.opts.two { grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .opts.two { grid-template-columns: 1fr; } }
.opt { display: flex; align-items: center; gap: 14px; text-align: left; padding: 16px 18px; border-radius: 16px; border: 1.5px solid var(--line); background: var(--card); transition: border-color .15s, transform .15s, background .15s; min-height: 64px; }
.opt:hover { border-color: color-mix(in srgb, var(--ink) 40%, var(--line)); transform: translateY(-1px); }
.opt kbd { flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; border: 1px solid var(--line); font: 600 13px/1 var(--body); color: var(--muted); background: var(--paper); }
.opt span { display: grid; gap: 3px; }
.opt b { font-weight: 600; font-size: 17px; }
.opt small { color: var(--muted); font-size: 14.5px; }
.opt[aria-pressed="true"] { border-color: var(--ember); background: color-mix(in srgb, var(--ember) 8%, var(--card)); }
.opt[aria-pressed="true"] kbd { background: var(--ember); border-color: var(--ember); color: #fff; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 11px 16px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--card); font-size: 15.5px; min-height: 44px; transition: border-color .15s, background .15s; }
.chip b { font-weight: 500; }
.chip small { display: none; }
.chip:hover { border-color: color-mix(in srgb, var(--ink) 40%, var(--line)); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.field input, .field textarea { width: 100%; font: 400 18px/1.5 var(--body); color: var(--ink); background: var(--card); border: 1.5px solid var(--line); border-radius: 14px; padding: 14px 16px; transition: border-color .15s, box-shadow .15s; }
.field textarea { resize: vertical; min-height: 160px; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ember) 18%, transparent); }
.field input::placeholder, .field textarea::placeholder { color: color-mix(in srgb, var(--muted) 80%, transparent); }
.count { font-size: 13px; color: var(--muted); justify-self: end; margin-top: -4px; }

.err { color: var(--ember-ink); font-weight: 600; }
.nav-row { display: flex; align-items: center; gap: 12px; margin-top: 18px; flex-wrap: wrap; }
.nav-row .btn[type=submit] { min-width: 160px; }
.nav-row .btn:disabled { opacity: .6; cursor: wait; }
.enter-hint { color: var(--muted); font-size: 14px; }
@media (pointer: coarse) { .enter-hint, .opt kbd { display: none; } }

.review { margin: 0; display: grid; border-top: 1px solid var(--line); }
.rv-row { display: grid; grid-template-columns: 200px 1fr auto; gap: 6px 18px; padding: 14px 0; border-bottom: 1px solid var(--line); align-items: start; }
.rv-row dt { color: var(--muted); font-size: 14.5px; }
.rv-row dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.link { border: 0; background: none; color: var(--ember-ink); font-weight: 600; font-size: 14px; padding: 2px 4px; }
@media (max-width: 600px) { .rv-row { grid-template-columns: 1fr auto; } .rv-row dd { grid-column: 1 / -1; grid-row: 2; } }

.done { text-align: left; }
.done-mark { width: 72px; height: 72px; border-radius: 20px; background: var(--ink); display: grid; place-items: center; margin-bottom: 8px; }
.done-mark svg { width: 44px; }
.done-mark rect { fill: var(--paper); }
.done-mark rect:last-child { fill: var(--ember); animation: climb .8s .2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes climb { from { transform: translateX(-10px); opacity: 0; } }
