/* ---------- full-screen flows (onboarding, consent) ---------- */
.flow { position: fixed; inset: 0; background: var(--surface); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); z-index: 40; animation: fade 0.2s; }
.flow-l { display: flex; flex-direction: column; padding: 28px 40px; overflow-y: auto; }
.flow-l .brand { display: flex; align-items: center; gap: 9px; font: 650 16px/1 var(--font-display); letter-spacing: -0.02em; }
.flow-l .brand img { width: 22px; }
.flow-form { width: min(400px, 100%); margin: auto; padding: 32px 0; animation: view-in 0.3s var(--ease); }
.flow-form h1 { margin: 0; font: 650 30px/1.1 var(--font-display); letter-spacing: -0.035em; }
.flow-form .sub { margin: 10px 0 28px; color: var(--muted); font-size: 14.5px; line-height: 1.5; }
.flow-form .fld { margin-bottom: 14px; }
.flow-form .btn-lg { width: 100%; margin-top: 8px; }
.flow-form .alt { margin-top: 18px; text-align: center; color: var(--muted); font-size: 12.5px; }
.flow-form .alt a { color: var(--accent-ink); font-weight: 550; }
.progress { display: flex; gap: 6px; margin-bottom: 30px; }
.progress i { height: 3px; flex: 1; border-radius: 3px; background: var(--line); transition: background 0.3s; }
.progress i.on { background: var(--accent); }
.choice-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.choice { display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: var(--r-md); box-shadow: inset 0 0 0 1px var(--line-2); text-align: left; font-weight: 550; font-size: 13px; transition: box-shadow 0.12s, background 0.12s; }
.choice:hover { background: var(--sunken); }
.choice.on { box-shadow: inset 0 0 0 1.5px var(--accent); background: var(--accent-soft); color: var(--accent-ink); }
.choice .ic { width: 28px; height: 28px; border-radius: 8px; background: var(--hover); display: grid; place-items: center; color: var(--ink-2); }
.choice.on .ic { background: var(--surface); color: var(--accent); }
.flow-r { background: var(--canvas); display: grid; place-items: center; padding: 40px; position: relative; overflow: hidden; }
.flow-r .art { width: min(560px, 90%); }
.flow-r .quote { position: absolute; left: 40px; right: 40px; bottom: 36px; display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.brand-preview { border-radius: var(--r-lg); box-shadow: var(--sh-card); padding: 16px; margin-top: 18px; animation: view-in 0.3s var(--ease); }
.brand-preview .row { display: flex; align-items: center; gap: 12px; }
.brand-preview .lm { width: 40px; height: 40px; border-radius: 10px; background: #0e1726; color: #fff; display: grid; place-items: center; font: 700 18px/1 var(--font-display); }
.brand-preview .cols { display: flex; gap: 6px; margin-top: 14px; }
.brand-preview .cols i { flex: 1; height: 30px; border-radius: 6px; }
.shimmer { height: 12px; border-radius: 6px; background: linear-gradient(90deg, var(--hover) 25%, var(--sunken) 50%, var(--hover) 75%); background-size: 200% 100%; animation: shimmer 1.1s infinite linear; }
@keyframes shimmer { to { background-position: -200% 0; } }
.consent { position: fixed; inset: 0; background: var(--canvas); display: grid; place-items: center; z-index: 40; padding: 24px; animation: fade 0.2s; }
.consent .box { width: min(440px, 100%); background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--sh-modal); padding: 30px 28px 22px; animation: pop 0.25s var(--ease); }
.consent .pair { display: flex; align-items: center; justify-content: center; gap: 14px; }
.consent .pair .z { width: 52px; height: 52px; border-radius: 14px; background: var(--accent-soft); display: grid; place-items: center; }
.consent .pair .z img { width: 26px; }
.consent .pair .dots { display: flex; gap: 4px; }
.consent .pair .dots i { width: 4px; height: 4px; border-radius: 50%; background: var(--line-2); }
.consent h1 { text-align: center; margin: 20px 0 6px; font: 650 19px/1.3 var(--font-display); letter-spacing: -0.02em; }
.consent .sub { text-align: center; color: var(--muted); font-size: 13px; margin: 0 0 20px; }
.consent .opts { display: flex; flex-direction: column; gap: 8px; }
.consent .perm { list-style: none; margin: 18px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 9px; }
.consent .perm li { display: flex; gap: 9px; align-items: center; font-size: 12.5px; color: var(--ink-2); }
.consent .perm svg.i { color: var(--green); }
.consent .btns { display: flex; gap: 8px; margin-top: 22px; }
.consent .btns .btn { flex: 1; }
.consent .fine { text-align: center; margin: 14px 0 0; font-size: 11.5px; color: var(--faint); }
