+
+ {index + 1} / {STEPS.length}
+
+
+
{step.title}
+
{step.body}
+
+ {index > 0 && (
+
+ )}
+
+
+
+ >
+ );
+}
diff --git a/src/index.css b/src/index.css
index 9543eb4..a58afa2 100644
--- a/src/index.css
+++ b/src/index.css
@@ -2377,3 +2377,58 @@ select.studio-input { background: var(--bp-paper); }
color: var(--bp-navy);
}
.cmd-try-hint { color: var(--bp-muted); font-size: 11px; }
+
+/* Onboarding tour */
+.tour-backdrop {
+ position: fixed;
+ inset: 0;
+ background: color-mix(in srgb, var(--bp-navy) 50%, transparent);
+ z-index: 9000;
+ cursor: pointer;
+}
+.tour-spotlight {
+ position: fixed;
+ z-index: 9001;
+ border: 2px solid var(--bp-amber, #d97a00);
+ background: transparent;
+ box-shadow: 0 0 0 9999px color-mix(in srgb, var(--bp-navy) 50%, transparent);
+ pointer-events: none;
+ transition: top 180ms ease, left 180ms ease, width 180ms ease, height 180ms ease;
+}
+.tour-tip {
+ position: fixed;
+ z-index: 9002;
+ width: 320px;
+ background: var(--bp-paper, #fdfaf2);
+ border: 1px solid var(--bp-navy, #1a2740);
+ padding: 14px 16px;
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ box-shadow: 0 8px 24px color-mix(in srgb, var(--bp-navy) 30%, transparent);
+}
+.tour-tip-head { display: flex; align-items: center; justify-content: space-between; }
+.tour-tip-step {
+ font-family: var(--bp-mono);
+ font-size: 10px;
+ letter-spacing: 0.08em;
+ color: var(--bp-muted);
+}
+.tour-tip-skip {
+ background: transparent;
+ border: 0;
+ font-family: var(--bp-mono);
+ font-size: 10px;
+ text-transform: uppercase;
+ letter-spacing: 0.06em;
+ color: var(--bp-muted);
+ cursor: pointer;
+ padding: 0;
+}
+.tour-tip-skip:hover { color: var(--bp-navy); text-decoration: underline; }
+.tour-tip-title { margin: 0; font-size: 14px; font-weight: 700; color: var(--bp-navy); }
+.tour-tip-body { margin: 0; font-size: 12px; line-height: 1.5; color: var(--bp-navy); }
+.tour-tip-actions { display: flex; gap: 6px; justify-content: flex-end; margin-top: 4px; }
+.btn-sm { font-size: 11px; padding: 4px 10px; }
+[data-theme="dark"] .tour-tip { background: #1a2333; border-color: #d97a00; color: #f5e7c8; }
+[data-theme="dark"] .tour-tip-title, [data-theme="dark"] .tour-tip-body { color: #f5e7c8; }