/* ── Onboarding ── */
#s-onboarding{background:var(--night);min-height:100dvh;position:relative;overflow:hidden}
.ob-screen{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 48px;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s ease;transform:translateX(40px)}
.ob-screen.active{opacity:1;pointer-events:all;transform:translateX(0)}
.ob-screen.exit{opacity:0;transform:translateX(-40px)}
.ob-screen.light{background:var(--pa)}
.ob-screen.light .ob-eyebrow{color:var(--mu)}
.ob-screen.light .ob-headline{color:var(--ink);font-family:var(--serif)}
.ob-screen.light .ob-body{color:var(--ink2)}
.ob-screen.light .ob-dots span{background:var(--ln)}
.ob-screen.light .ob-dots span.on{background:var(--drift0)}
.ob-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ob-content{position:relative;z-index:2;padding:0 28px 0}
.ob-eyebrow{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:20px}
.ob-headline{font-family:var(--serif);font-size:36px;font-weight:400;color:#fff;line-height:1.1;letter-spacing:-.02em;margin-bottom:18px}
.ob-headline em{font-style:italic;opacity:.6}
.ob-body{font-size:15px;color:rgba(255,255,255,.55);line-height:1.75;margin-bottom:32px}
.ob-body strong{color:rgba(255,255,255,.85);font-weight:500}
.ob-body.light-text{color:var(--mu)}
.ob-body.light-text strong{color:var(--ink)}
.ob-dots{display:flex;gap:6px;margin-bottom:28px;padding:0 28px}
.ob-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);transition:all .3s}
.ob-dots span.on{background:#fff;width:18px;border-radius:3px}
.ob-actions{padding:0 28px;display:flex;flex-direction:column;gap:10px}
.ob-btn-primary{width:100%;padding:15px;border-radius:var(--rsm);font-size:15px;font-weight:500;border:none;cursor:pointer;font-family:var(--sans);transition:opacity .15s}
.ob-btn-secondary{width:100%;padding:13px;border-radius:var(--rsm);font-size:14px;font-weight:400;border:none;cursor:pointer;font-family:var(--sans);background:transparent;transition:opacity .15s}
.ob-preview{margin:0 28px 28px;border-radius:var(--r);overflow:hidden;opacity:.7}
/* Heatmap abstract animation */
.ob-heatmap{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;padding:20px;background:rgba(255,255,255,.04);border-radius:var(--r);margin:0 28px 24px}
.ob-hm-cell{height:24px;border-radius:4px;animation:obPulse 3s ease-in-out infinite}
