{"id":15681,"date":"2026-03-25T15:09:54","date_gmt":"2026-03-25T13:09:54","guid":{"rendered":"https:\/\/angeingabire.com\/?page_id=15681"},"modified":"2026-04-13T13:19:30","modified_gmt":"2026-04-13T11:19:30","slug":"ortive-ai-product-studio-build-monetize-ai-products","status":"publish","type":"page","link":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/","title":{"rendered":"Ortive \u2014 AI Product Studio | Build &#038; Monetize AI Products"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15681\" class=\"elementor elementor-15681\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ebd758 e-flex e-con-boxed e-con e-parent\" data-id=\"8ebd758\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5d0d07 elementor-widget elementor-widget-html\" data-id=\"a5d0d07\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\"\/>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\"\/>\n<title>Ortive Studio<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,400&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&family=IBM+Plex+Mono:wght@400;500;600&display=swap\" rel=\"stylesheet\"\/>\n<style>\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n:root{\n  --ink:#111110;--ink2:#3D3C3A;--ink3:#6B6966;--ink4:#A39F9B;\n  --surface:#FAFAF8;--s2:#F3F2EE;--s3:#E8E6E0;--s4:#D9D6CE;\n  --gold:#8B6914;--gold-s:#FBF5E6;--gold-b:#E8D99A;\n  --teal:#0E6B5E;--teal-s:#EAF5F3;--teal-b:#9ED4CC;\n  --navy:#1A3A5C;--navy-s:#EBF0F7;--navy-b:#9BB8D4;\n  --rust:#7A2010;--rust-s:#FBF0EC;\n  --white:#FFFFFF;\n  --side:#16150F;\n  --r:10px;--rl:16px;\n  --shadow:0 1px 3px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.04);\n  --shadow-md:0 2px 8px rgba(0,0,0,.08),0 8px 32px rgba(0,0,0,.06);\n}\n\nhtml,body{width:100%;min-height:100vh;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased}\n::-webkit-scrollbar{width:4px;height:4px}\n::-webkit-scrollbar-track{background:transparent}\n::-webkit-scrollbar-thumb{background:var(--s3);border-radius:4px}\n\n\/* \u2500 LAYOUT \u2500 *\/\n.wrap{display:flex;min-height:100vh}\n.side{width:244px;flex-shrink:0;background:var(--side);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:20px 12px 20px;z-index:100;transition:transform .28s cubic-bezier(.4,0,.2,1)}\n.main{flex:1;margin-left:244px;padding:40px 44px;min-height:100vh;max-width:1140px}\n\n\/* \u2500 SIDEBAR \u2500 *\/\n.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px;padding:2px 6px}\n.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--gold);display:grid;place-items:center;flex-shrink:0}\n.brand-name{font-family:'Fraunces',serif;font-weight:800;font-size:18px;letter-spacing:-.3px;color:var(--white)}\n.brand-name em{font-style:normal;color:var(--gold)}\n.brand-sub{font-size:11px;font-weight:400;color:rgba(255,255,255,.28);margin-left:4px;font-family:'IBM Plex Mono',monospace;letter-spacing:.04em}\n\n.nav-section{font-family:'IBM Plex Mono',monospace;font-size:8.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.22);padding:0 6px;margin:18px 0 6px}\n.nav-item{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;cursor:pointer;transition:all .15s;width:100%;border:none;background:transparent;text-align:left}\n.nav-item:hover .nav-label{color:rgba(255,255,255,.72)}\n.nav-item.on{background:rgba(255,255,255,.07)}\n.nav-item.on .nav-label{color:var(--white);font-weight:600}\n.nav-item.on .nav-num{border-color:var(--gold);color:var(--gold)}\n.nav-item.done .nav-num{background:var(--gold);border-color:var(--gold);color:var(--side)}\n.nav-num{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.14);display:grid;place-items:center;font-family:'IBM Plex Mono',monospace;font-size:8px;font-weight:600;color:rgba(255,255,255,.25);flex-shrink:0;transition:all .2s}\n.nav-label{font-size:12px;font-weight:500;color:rgba(255,255,255,.38);line-height:1;transition:color .15s}\n.nav-dot{margin-left:auto;width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:0;flex-shrink:0;transition:opacity .2s}\n.nav-item.on .nav-dot{opacity:1}\n.nav-divider{height:1px;background:rgba(255,255,255,.07);margin:14px 6px}\n.nav-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.07);padding-top:12px;display:flex;align-items:center;gap:9px;padding-left:4px}\n.nav-avi{width:28px;height:28px;border-radius:8px;background:var(--gold);display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:800;font-size:12px;color:var(--side);flex-shrink:0}\n.nav-foot-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.62)}\n.nav-foot-sub{font-size:10px;color:rgba(255,255,255,.25);margin-top:1px}\n\n\/* \u2500 VIEWS \u2500 *\/\n.view{display:none}\n.view.on{display:block;animation:up .3s ease both}\n@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}\n@keyframes in{from{opacity:0}to{opacity:1}}\n@keyframes spin{to{transform:rotate(360deg)}}\n@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}\n@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}\n\n\/* \u2500 PAGE HEADER \u2500 *\/\n.kicker{display:flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}\n.kicker-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);animation:pulse 2s infinite}\n.pg-h1{font-family:'Fraunces',serif!important;font-size:28px!important;font-weight:800!important;letter-spacing:-.5px!important;line-height:1.18!important;color:#111110!important;margin-bottom:7px!important;display:block!important;visibility:visible!important;opacity:1!important}\n.pg-sub{font-size:13.5px;color:var(--ink3);line-height:1.65;max-width:500px}\n\n\/* \u2500 CARDS \u2500 *\/\n.card{background:var(--white);border:1px solid var(--s3);border-radius:var(--rl);padding:22px;box-shadow:var(--shadow)}\n.card-sm{background:var(--white);border:1px solid var(--s3);border-radius:var(--r);padding:16px}\n.inset{background:var(--s2);border:1px solid var(--s3);border-radius:var(--r);padding:14px}\n.inset-gold{background:var(--gold-s);border:1px solid var(--gold-b);border-radius:var(--r);padding:14px}\n\n\/* \u2500 GRIDS \u2500 *\/\n.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}\n.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}\n.col{display:flex;flex-direction:column}\n.row{display:flex;align-items:center}\n.between{display:flex;justify-content:space-between;align-items:center}\n.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap14{gap:14px}.gap16{gap:16px}.wrap{flex-wrap:wrap}\n\n\/* \u2500 TYPOGRAPHY \u2500 *\/\n.ct{font-family:'Fraunces',serif;font-weight:700;font-size:14.5px;letter-spacing:-.15px;color:var(--ink)}\n.cs{color:var(--ink3);font-size:12.5px;margin-top:2px;line-height:1.5}\n.lbl{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink4);display:block;margin-bottom:6px}\n.body{font-size:13px;color:var(--ink2);line-height:1.72}\n.mono{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink2)}\n\n\/* \u2500 BADGES \u2500 *\/\n.badge{display:inline-flex;align-items:center;border-radius:5px;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;padding:3px 8px;letter-spacing:.06em;text-transform:uppercase}\n.bg{background:var(--gold-s);color:var(--gold);border:1px solid var(--gold-b)}\n.bt{background:var(--teal-s);color:var(--teal);border:1px solid var(--teal-b)}\n.bn{background:var(--navy-s);color:var(--navy);border:1px solid var(--navy-b)}\n.bi{background:var(--s2);color:var(--ink3);border:1px solid var(--s3)}\n\n\/* \u2500 BUTTONS \u2500 *\/\n.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:13px;border:none;cursor:pointer;transition:all .18s;border-radius:9px;padding:9px 18px;letter-spacing:-.1px}\n.btn-dark{background:var(--ink);color:var(--white)}\n.btn-dark:hover{background:#2A2924;transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.18)}\n.btn-dark:disabled{background:var(--s3);color:var(--ink4);transform:none;box-shadow:none;cursor:not-allowed}\n.btn-ghost{background:var(--white);border:1.5px solid var(--s3);color:var(--ink3)}\n.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}\n.btn-gold{background:var(--gold);color:var(--white)}\n.btn-gold:hover{background:#7A5C0F;transform:translateY(-1px)}\n.btn-full{width:100%;padding:12px;font-size:13.5px;border-radius:10px}\n.btn-sm{padding:5px 11px;font-size:11.5px;border-radius:7px}\n.btn-xl{padding:13px 26px;font-size:14px;border-radius:11px}\n\n\/* \u2500 INPUTS \u2500 *\/\ninput[type=text],input[type=email],textarea,select{\n  background:var(--white);border:1.5px solid var(--s3);border-radius:9px;padding:9px 13px;\n  color:var(--ink);font-family:'DM Sans',sans-serif;font-size:13px;outline:none;width:100%;transition:border-color .18s\n}\ninput:focus,textarea:focus,select:focus{border-color:var(--gold)}\ninput::placeholder,textarea::placeholder{color:var(--ink4)}\ntextarea{resize:vertical;min-height:96px;line-height:1.62}\nselect{background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%236B6966' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 11px center;-webkit-appearance:none;padding-right:34px}\ninput[type=range]{width:100%;accent-color:var(--gold);cursor:pointer;margin:4px 0}\n\n\/* \u2500 CHIP SELECTOR \u2500 *\/\n.chip-group{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}\n.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1.5px solid var(--s3);border-radius:8px;cursor:pointer;background:var(--white);font-size:11.5px;font-weight:600;color:var(--ink3);transition:all .15s;-webkit-tap-highlight-color:transparent;font-family:'DM Sans',sans-serif}\n.chip svg{width:12px;height:12px;stroke:var(--ink4);flex-shrink:0;transition:stroke .15s;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n.chip:hover{border-color:var(--gold);color:var(--ink)}\n.chip:hover svg{stroke:var(--gold)}\n.chip.on{border-color:var(--gold);background:var(--gold-s);color:var(--ink)}\n.chip.on svg{stroke:var(--gold)}\n\n\/* \u2500 PRODUCT TYPE CARD \u2500 *\/\n.ptype{background:var(--white);border:1.5px solid var(--s3);border-radius:var(--rl);padding:20px 18px;cursor:pointer;transition:all .2s;position:relative;box-shadow:var(--shadow)}\n.ptype:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--s4)}\n.ptype.sel{border-color:var(--gold);background:var(--gold-s)}\n.ptype.sel::after{content:'';position:absolute;top:10px;right:10px;width:8px;height:8px;background:var(--gold);border-radius:50%}\n.ptype-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px}\n.ptype-name{font-family:'Fraunces',serif;font-weight:700;font-size:14px;color:var(--ink);margin-bottom:5px;letter-spacing:-.1px}\n.ptype-desc{font-size:11.5px;color:var(--ink3);line-height:1.55}\n\n\/* \u2500 OUTPUT TABS \u2500 *\/\n.out-tabs{display:flex;border-bottom:1px solid var(--s3);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}\n.out-tabs::-webkit-scrollbar{display:none}\n.out-tab{padding:11px 14px;font-size:11.5px;font-weight:600;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;background:none;border-top:none;border-left:none;border-right:none;transition:all .15s;font-family:'DM Sans',sans-serif}\n.out-tab:hover{color:var(--ink)}\n.out-tab.on{color:var(--ink);border-bottom-color:var(--gold)}\n.out-tab-push{flex:1}\n.dl-btn{display:flex;align-items:center;gap:5px;padding:5px 11px;background:var(--ink);color:var(--white);border:none;border-radius:6px;font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0;font-family:'DM Sans',sans-serif;transition:all .15s;margin:auto 0}\n.dl-btn:hover{background:#2A2924}\n.out-pane{display:none;padding:22px}\n.out-pane.on{display:block}\n\n\/* \u2500 RESULT SECTIONS \u2500 *\/\n.rsec{background:var(--s2);border:1px solid var(--s3);border-radius:10px;padding:16px;margin-bottom:10px}\n.rsec-lbl{font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink4);margin-bottom:10px;display:block}\n.rsec-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:4px}\n.rsec ul{list-style:none}\n.rsec ul li{font-size:12.5px;color:var(--ink2);line-height:1.72;padding:2px 0 2px 13px;position:relative}\n.rsec ul li::before{content:'';position:absolute;left:0;top:9px;width:4px;height:4px;background:var(--gold);border-radius:50%}\n.code-wrap{background:var(--side);border-radius:10px;padding:16px;margin-bottom:10px}\n.code-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}\n.code-lbl{font-family:'IBM Plex Mono',monospace;font-size:9px;color:rgba(255,255,255,.4);letter-spacing:.12em;text-transform:uppercase}\n.code-pre{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:rgba(255,255,255,.82);white-space:pre-wrap;word-break:break-word;line-height:1.65}\n.copy-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.45);font-size:9px;font-weight:600;padding:3px 8px;border-radius:5px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s}\n.copy-btn:hover{background:rgba(255,255,255,.16);color:var(--white)}\n\n\/* \u2500 STEP FLOW \u2500 *\/\n.flow-step{display:flex;gap:11px;margin-bottom:9px}\n.flow-n{width:24px;height:24px;min-width:24px;background:var(--ink);color:rgba(255,255,255,.7);border-radius:7px;display:grid;place-items:center;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600}\n.flow-txt{flex:1;background:var(--s2);border:1px solid var(--s3);border-radius:7px;padding:8px 11px;font-size:12.5px;color:var(--ink2);line-height:1.5}\n\n\/* \u2500 TOGGLE \u2500 *\/\n.tgl{width:32px;height:17px;border-radius:9px;cursor:pointer;position:relative;flex-shrink:0;transition:background .18s}\n.tgl-k{position:absolute;top:2px;width:13px;height:13px;border-radius:7px;background:var(--white);transition:left .18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}\n.cap-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--s3)}\n.cap-row:last-child{border-bottom:none;padding-bottom:0}\n.cap-label{font-size:12.5px;color:var(--ink2)}\n\n\/* \u2500 RULE ROW \u2500 *\/\n.rule-r{display:flex;gap:8px;margin-bottom:7px;align-items:flex-start}\n.rule-ic{width:16px;height:16px;border-radius:5px;background:var(--gold-s);display:grid;place-items:center;flex-shrink:0;margin-top:2px}\n.rule-txt{flex:1;background:var(--s2);border:1px solid var(--s3);border-radius:7px;padding:6px 10px;font-size:12px;color:var(--ink2);line-height:1.5}\n\n\/* \u2500 TIER CARD \u2500 *\/\n.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}\n.tier-card{border-radius:10px;padding:16px;position:relative}\n\n\/* \u2500 SKEL \/ SPINNER \u2500 *\/\n.skel{background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:200% 100%;animation:shimmer 1.4s ease infinite;border-radius:8px;margin-bottom:7px}\n.spin{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--white);border-radius:50%;animation:spin .6s linear infinite}\n.spin-d{border-color:rgba(0,0,0,.1);border-top-color:var(--ink)}\n\n\/* \u2500 EMPTY STATE \u2500 *\/\n.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;gap:10px;color:var(--ink4);font-size:13px;text-align:center}\n.empty span{max-width:200px;line-height:1.58}\n\n\/* \u2500 TOAST \u2500 *\/\n#toast{position:fixed;bottom:22px;right:22px;background:var(--ink);color:var(--white);border-radius:9px;padding:11px 18px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow-md);transform:translateY(56px);opacity:0;transition:all .26s;z-index:9999;pointer-events:none}\n\n\/* \u2500 POPUP \u2500 *\/\n.overlay{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:9999;display:flex;align-items:center;justify-content:center;animation:in .2s ease}\n.popup{background:var(--white);border:1px solid var(--s3);border-radius:20px;padding:36px;width:400px;max-width:90vw;animation:up .28s ease;box-shadow:0 24px 64px rgba(0,0,0,.14);text-align:center}\n.popup-icon{width:52px;height:52px;border-radius:14px;background:var(--gold-s);display:grid;place-items:center;margin:0 auto 16px}\n.popup-title{font-family:'Fraunces',serif;font-weight:800;font-size:21px;color:var(--ink);margin-bottom:8px;letter-spacing:-.3px}\n.popup-sub{color:var(--ink3);font-size:13px;line-height:1.65;margin-bottom:22px}\n.popup-form{display:flex;gap:8px}\n.popup-note{font-size:10.5px;color:var(--ink4);margin-top:8px}\n\n\/* \u2500 MOBILE \u2500 *\/\n.mob-bar{display:none;position:fixed;top:0;left:0;right:0;height:52px;background:var(--side);z-index:150;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.07)}\n.mob-brand{display:flex;align-items:center;gap:8px}\n.mob-mark{width:26px;height:26px;border-radius:7px;background:var(--gold);display:grid;place-items:center}\n.mob-name{font-family:'Fraunces',serif;font-weight:800;font-size:16px;color:var(--white)}\n.mob-name em{font-style:normal;color:var(--gold)}\n.mob-step{font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:rgba(255,255,255,.35);letter-spacing:.07em}\n.mob-menu{width:34px;height:34px;border-radius:7px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);display:grid;place-items:center;cursor:pointer}\n.mob-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:199;animation:in .2s}\n.mob-overlay.on{display:block}\n\n@media(max-width:900px){.side{width:206px}.main{margin-left:206px;padding:28px 22px}.g4{grid-template-columns:repeat(2,1fr)}}\n@media(max-width:680px){\n  .mob-bar{display:flex}\n  .side{transform:translateX(-100%);width:252px;z-index:200}\n  .side.open{transform:translateX(0)}\n  .main{margin-left:0;padding:68px 14px 28px}\n  .g2,.g3,.g4{grid-template-columns:1fr}\n  .pg-h1{font-size:22px!important}\n  .pg-sub{font-size:12.5px}\n  .card{padding:16px}\n  .tier-grid{grid-template-columns:1fr}\n  input,textarea,select{font-size:14px}\n}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"mob-overlay\" id=\"mob-ov\" onclick=\"closeSide()\"><\/div>\n<div class=\"mob-bar\">\n  <div class=\"mob-brand\">\n    <div class=\"mob-mark\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#16150F\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg><\/div>\n    <span class=\"mob-name\">Ort<em>ive<\/em><\/span>\n  <\/div>\n  <span class=\"mob-step\" id=\"mob-label\">Build &middot; Step 1<\/span>\n  <div class=\"mob-menu\" onclick=\"openSide()\"><svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"rgba(255,255,255,.6)\" stroke-width=\"2\" stroke-linecap=\"round\"><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"\/><\/svg><\/div>\n<\/div>\n\n<div class=\"wrap\">\n<aside class=\"side\" id=\"side\">\n  <div class=\"brand\">\n    <div class=\"brand-mark\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#16150F\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg><\/div>\n    <span class=\"brand-name\">Ort<em>ive<\/em><span class=\"brand-sub\">Studio<\/span><\/span>\n  <\/div>\n\n  <div class=\"nav-section\">Build<\/div>\n  <button class=\"nav-item on\" data-v=\"b1\" onclick=\"nav('b1',this)\"><div class=\"nav-num\" id=\"nn-b1\">1<\/div><span class=\"nav-label\">Product Type<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"b2\" onclick=\"nav('b2',this)\"><div class=\"nav-num\" id=\"nn-b2\">2<\/div><span class=\"nav-label\">Define + Blueprint<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"b3\" onclick=\"nav('b3',this)\"><div class=\"nav-num\" id=\"nn-b3\">3<\/div><span class=\"nav-label\">Capabilities<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"b4\" onclick=\"nav('b4',this)\"><div class=\"nav-num\" id=\"nn-b4\">4<\/div><span class=\"nav-label\">Workflow<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"b5\" onclick=\"nav('b5',this)\"><div class=\"nav-num\" id=\"nn-b5\">5<\/div><span class=\"nav-label\">Deployment Manual<\/span><div class=\"nav-dot\"><\/div><\/button>\n\n  <div class=\"nav-divider\"><\/div>\n\n  <div class=\"nav-section\">Monetize<\/div>\n  <button class=\"nav-item\" data-v=\"m1\" onclick=\"nav('m1',this)\"><div class=\"nav-num\" id=\"nn-m1\">A<\/div><span class=\"nav-label\">Define Offer<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"m2\" onclick=\"nav('m2',this)\"><div class=\"nav-num\" id=\"nn-m2\">B<\/div><span class=\"nav-label\">Sales Package<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"m3\" onclick=\"nav('m3',this)\"><div class=\"nav-num\" id=\"nn-m3\">C<\/div><span class=\"nav-label\">Landing Page<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"m4\" onclick=\"nav('m4',this)\"><div class=\"nav-num\" id=\"nn-m4\">D<\/div><span class=\"nav-label\">Outreach<\/span><div class=\"nav-dot\"><\/div><\/button>\n  <button class=\"nav-item\" data-v=\"m5\" onclick=\"nav('m5',this)\"><div class=\"nav-num\" id=\"nn-m5\">E<\/div><span class=\"nav-label\">Revenue Model<\/span><div class=\"nav-dot\"><\/div><\/button>\n\n  <div class=\"nav-foot\"><div class=\"nav-avi\">O<\/div><div><div class=\"nav-foot-name\">Ortive Studio<\/div><div class=\"nav-foot-sub\">Early Access<\/div><\/div><\/div>\n<\/aside>\n\n<main class=\"main\">\n\n<!-- B1: PRODUCT TYPE -->\n<div class=\"view on\" id=\"v-b1\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Build &mdash; Step 1 of 5<\/div>\n    <h1 class=\"pg-h1\">What are you building?<\/h1>\n    <p class=\"pg-sub\">Select a product type. Your blueprint structure, capability modules, and deployment manual all adapt to this choice.<\/p>\n  <\/div>\n  <div class=\"g4\" id=\"type-grid\"><\/div>\n  <div style=\"margin-top:22px;display:flex;justify-content:flex-end\">\n    <button class=\"btn btn-dark btn-xl\" id=\"btn-next-type\" onclick=\"nav('b2')\" disabled>\n      Continue to Blueprint\n      <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n    <\/button>\n  <\/div>\n<\/div>\n\n<!-- B2: DEFINE + BLUEPRINT -->\n<div class=\"view\" id=\"v-b2\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Build &mdash; Step 2 of 5<\/div>\n    <h1 class=\"pg-h1\">Define &amp; Generate Blueprint<\/h1>\n    <p class=\"pg-sub\">Fill in the specifics. The richer your input, the deeper the output \u2014 system prompts, tech stack, pricing tiers, cold email, and more.<\/p>\n  <\/div>\n  <div class=\"g2\" style=\"gap:20px\">\n    <div class=\"col gap14\">\n      <div class=\"card\">\n        <div class=\"row gap10\" style=\"margin-bottom:16px\">\n          <div id=\"b2-type-icon\" style=\"width:38px;height:38px;border-radius:10px;background:var(--s2);display:grid;place-items:center;flex-shrink:0\"><\/div>\n          <div><div class=\"ct\" id=\"b2-type-lbl\">Selected Type<\/div><div class=\"cs\" id=\"b2-type-desc\">Configure below<\/div><\/div>\n        <\/div>\n        <div id=\"b2-mode-chips\"><\/div>\n        <div id=\"b2-fields\"><\/div>\n        <button class=\"btn btn-dark btn-full\" style=\"margin-top:12px\" id=\"btn-gen-bp\" onclick=\"genBlueprint()\">\n          <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>\n          Cast Blueprint\n        <\/button>\n      <\/div>\n    <\/div>\n    <div class=\"card\" id=\"b2-out\" style=\"min-height:380px;padding:0;overflow:hidden\">\n      <div class=\"empty\" style=\"padding:24px\">\n        <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--s4)\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg>\n        <span>Your blueprint will appear here &mdash; architecture, scripts, workflow logic, and monetization.<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\">\n    <button class=\"btn btn-dark\" onclick=\"nav('b3')\" style=\"padding:10px 22px;gap:8px\">Next: Capabilities <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button>\n  <\/div>\n<\/div>\n\n<!-- B3: CAPABILITIES -->\n<div class=\"view\" id=\"v-b3\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Build &mdash; Step 3 of 5<\/div>\n    <h1 class=\"pg-h1\">Capability Modules<\/h1>\n    <p class=\"pg-sub\">Toggle what your product can do. Your deployment manual references everything active here.<\/p>\n  <\/div>\n  <div class=\"card\" style=\"margin-bottom:14px\">\n    <div class=\"between\"><div><div class=\"ct\">Active modules<\/div><div class=\"cs\">Mix freely across categories<\/div><\/div><span class=\"badge bg\" id=\"cap-badge\">0 active<\/span><\/div>\n  <\/div>\n  <div class=\"g2\" id=\"cap-grid\"><\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\">\n    <button class=\"btn btn-dark\" onclick=\"nav('b4')\" style=\"padding:10px 22px;gap:8px\">Build Workflow <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button>\n  <\/div>\n<\/div>\n\n<!-- B4: WORKFLOW -->\n<div class=\"view\" id=\"v-b4\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Build &mdash; Step 4 of 5<\/div>\n    <h1 class=\"pg-h1\">Product Workflow<\/h1>\n    <p class=\"pg-sub\">End-to-end execution flow, delivery channels, and behavior rules.<\/p>\n  <\/div>\n  <div class=\"card\" style=\"margin-bottom:14px\">\n    <div class=\"between\"><div><div class=\"ct\">Auto-generated from your configuration<\/div><div class=\"cs\">Updates when capabilities or channels change<\/div><\/div>\n      <button class=\"btn btn-ghost btn-sm\" onclick=\"buildWorkflow()\">\n        <svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"23 4 23 10 17 10\"\/><polyline points=\"1 20 1 14 7 14\"\/><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\/><\/svg>\n        Regenerate\n      <\/button>\n    <\/div>\n  <\/div>\n  <div class=\"g2\" style=\"gap:18px\">\n    <div class=\"col gap14\">\n      <div class=\"card\"><div class=\"ct\" style=\"margin-bottom:14px\">Execution Flow<\/div><div id=\"wf-steps\"><\/div><\/div>\n    <\/div>\n    <div class=\"col gap14\">\n      <div class=\"card\"><div class=\"ct\" style=\"margin-bottom:12px\">Delivery Channels<\/div><div id=\"wf-channels\"><\/div><\/div>\n      <div class=\"card\">\n        <div class=\"ct\" style=\"margin-bottom:11px\">Behavior Rules<\/div>\n        <div id=\"wf-rules\"><\/div>\n        <div style=\"display:flex;gap:7px;margin-top:10px\">\n          <input type=\"text\" id=\"rule-inp\" placeholder=\"Add a rule...\" onkeydown=\"if(event.key==='Enter')addRule()\" style=\"flex:1\"\/>\n          <button class=\"btn btn-dark btn-sm\" onclick=\"addRule()\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\">\n    <button class=\"btn btn-dark\" onclick=\"nav('b5')\" style=\"padding:10px 22px;gap:8px\">Deployment Manual <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button>\n  <\/div>\n<\/div>\n\n<!-- B5: DEPLOYMENT MANUAL -->\n<div class=\"view\" id=\"v-b5\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Build &mdash; Step 5 of 5<\/div>\n    <h1 class=\"pg-h1\">Deployment Manual<\/h1>\n    <p class=\"pg-sub\">Real tools, real prices, real build phases &mdash; generated from everything you configured in this session.<\/p>\n  <\/div>\n  <div class=\"g2\" style=\"gap:20px\">\n    <div class=\"col gap12\">\n      <div class=\"inset-gold\"><div class=\"lbl\">Session summary<\/div><div id=\"b5-summary\" class=\"col gap6\"><\/div><\/div>\n      <button class=\"btn btn-dark btn-full\" id=\"btn-gen-deploy\" onclick=\"genDeploy()\">\n        <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>\n        Generate Deployment Manual\n      <\/button>\n      <button class=\"btn btn-ghost btn-full\" id=\"btn-copy-deploy\" onclick=\"copyDeploy()\" disabled>\n        <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg>\n        Copy Full Manual\n      <\/button>\n      <div class=\"card\" style=\"background:var(--gold-s);border-color:var(--gold-b)\">\n        <div class=\"ct\" style=\"margin-bottom:6px;font-size:13px\">Build track complete<\/div>\n        <div class=\"body\" style=\"font-size:12px;margin-bottom:12px\">Move to the Monetize track to generate your pricing tiers, landing page copy, outreach sequence, and revenue projections.<\/div>\n        <button class=\"btn btn-gold\" style=\"width:100%;padding:10px;font-size:12.5px\" onclick=\"nav('m1')\">Go to Monetize &rarr;<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"card\" id=\"b5-out\" style=\"min-height:450px;max-height:78vh;overflow-y:auto;padding:0\">\n      <div class=\"empty\" style=\"padding:24px\">\n        <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--s4)\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg>\n        <span>Tech stack, build phases, launch checklist, and cost estimates appear here.<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- M1: DEFINE OFFER -->\n<div class=\"view\" id=\"v-m1\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Monetize &mdash; Step A of E<\/div>\n    <h1 class=\"pg-h1\">Define Your Offer<\/h1>\n    <p class=\"pg-sub\">Context from your Build session is pre-filled. Adjust before generating your full monetization package.<\/p>\n  <\/div>\n  <div class=\"g2\" style=\"gap:20px\">\n    <div class=\"card\">\n      <div class=\"lbl\">Industry \/ Niche<\/div>\n      <input type=\"text\" id=\"m-industry\" value=\"Healthcare\" style=\"margin-bottom:13px\"\/>\n      <div class=\"lbl\">Problem you solve<\/div>\n      <textarea id=\"m-problem\" rows=\"3\" style=\"margin-bottom:13px\">Patients missing appointments, high no-show rate, staff wasting time on manual reminders<\/textarea>\n      <div class=\"lbl\">Ideal customer<\/div>\n      <input type=\"text\" id=\"m-customer\" value=\"Private dental clinics, 3&ndash;15 staff, 20+ appointments\/day\" style=\"margin-bottom:13px\"\/>\n      <div class=\"lbl\">Key differentiator<\/div>\n      <input type=\"text\" id=\"m-diff\" value=\"Fully autonomous &mdash; works 24\/7 without any staff involvement\" style=\"margin-bottom:13px\"\/>\n      <div class=\"lbl\">Pricing model<\/div>\n      <div class=\"chip-group\" id=\"m-pricing-btns\"><\/div>\n      <div class=\"lbl\">Price: $<span id=\"m-price-disp\">97<\/span>\/mo<\/div>\n      <input type=\"range\" id=\"m-price-slider\" min=\"9\" max=\"497\" value=\"97\" oninput=\"document.getElementById('m-price-disp').textContent=this.value\" style=\"margin-bottom:18px\"\/>\n    <\/div>\n    <div class=\"card\">\n      <div class=\"ct\" style=\"margin-bottom:14px\">Offer snapshot<\/div>\n      <div class=\"col gap10\">\n        <div class=\"inset\"><div class=\"lbl\">Product<\/div><div style=\"font-family:'Fraunces',serif;font-weight:700;font-size:16px;color:var(--ink)\" id=\"m1-name\">&mdash;<\/div><div class=\"cs\" id=\"m1-type\">&mdash;<\/div><\/div>\n        <div class=\"inset\"><div class=\"lbl\">Price<\/div><div style=\"font-family:'Fraunces',serif;font-weight:800;font-size:24px;color:var(--ink)\">$<span id=\"m1-price\">97<\/span><span style=\"font-size:14px;font-weight:400;color:var(--ink3)\">\/mo<\/span><\/div><div class=\"cs\" id=\"m1-model\">Subscription<\/div><\/div>\n        <div class=\"inset\"><div class=\"lbl\">Target<\/div><div class=\"body\" style=\"font-size:12.5px\" id=\"m1-target\">Private dental clinics&hellip;<\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"card\" style=\"margin-top:14px\">\n    <button class=\"btn btn-dark btn-full\" onclick=\"nav('m2')\">\n      <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n      Continue to Sales Package\n    <\/button>\n  <\/div>\n<\/div>\n\n<!-- M2: SALES PACKAGE -->\n<div class=\"view\" id=\"v-m2\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Monetize &mdash; Step B of E<\/div>\n    <h1 class=\"pg-h1\">Sales Package<\/h1>\n    <p class=\"pg-sub\">Product name, tagline, hero copy, sales bullets, and tiered pricing &mdash; built from your offer and blueprint context.<\/p>\n  <\/div>\n  <div class=\"g2\" style=\"gap:20px\">\n    <div class=\"card\"><div class=\"ct\" style=\"margin-bottom:6px\">AI Sales Package<\/div><div class=\"cs\" style=\"margin-bottom:16px\">Generates name, tagline, hero, bullets, and pricing tiers from your offer.<\/div>\n      <button class=\"btn btn-dark btn-full\" id=\"btn-gen-offer\" onclick=\"genOffer()\">\n        <svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>\n        Generate Sales Package\n      <\/button>\n    <\/div>\n    <div class=\"card\" id=\"m2-out\" style=\"min-height:260px\"><div class=\"empty\"><svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--s4)\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"16.5\" y1=\"9.4\" x2=\"7.5\" y2=\"4.21\"\/><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><\/svg><span>Name, tagline, hero headline, bullets, and pricing tiers appear here.<\/span><\/div><\/div>\n  <\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\"><button class=\"btn btn-dark\" onclick=\"nav('m3')\" style=\"padding:10px 22px;gap:8px\">Next: Landing Page <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button><\/div>\n<\/div>\n\n<!-- M3: LANDING PAGE -->\n<div class=\"view\" id=\"v-m3\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Monetize &mdash; Step C of E<\/div>\n    <h1 class=\"pg-h1\">Landing Page Copy<\/h1>\n    <p class=\"pg-sub\">Hero, problem, solution, features, testimonials, FAQ, and CTA &mdash; ready to paste into any builder.<\/p>\n  <\/div>\n  <div class=\"card\" style=\"margin-bottom:14px\"><button class=\"btn btn-dark btn-full\" id=\"btn-gen-lp\" onclick=\"genLP()\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>Generate Landing Page Copy<\/button><\/div>\n  <div class=\"card\" id=\"m3-out\" style=\"min-height:180px\"><div class=\"empty\"><svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--s4)\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><span>Full landing page copy appears here.<\/span><\/div><\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\"><button class=\"btn btn-dark\" onclick=\"nav('m4')\" style=\"padding:10px 22px;gap:8px\">Next: Outreach <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button><\/div>\n<\/div>\n\n<!-- M4: OUTREACH -->\n<div class=\"view\" id=\"v-m4\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Monetize &mdash; Step D of E<\/div>\n    <h1 class=\"pg-h1\">Cold Outreach Sequence<\/h1>\n    <p class=\"pg-sub\">3-email sequence &mdash; intro, value follow-up, and break-up &mdash; written for your exact ICP. Ready to send.<\/p>\n  <\/div>\n  <div class=\"card\" style=\"margin-bottom:14px\"><button class=\"btn btn-dark btn-full\" id=\"btn-gen-out\" onclick=\"genOutreach()\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>Generate 3-Email Sequence<\/button><\/div>\n  <div class=\"col gap12\" id=\"m4-out\"><div class=\"card\"><div class=\"empty\"><svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--s4)\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg><span>Three ready-to-send emails appear here.<\/span><\/div><\/div><\/div>\n  <div style=\"margin-top:14px;display:flex;justify-content:flex-end\"><button class=\"btn btn-dark\" onclick=\"nav('m5')\" style=\"padding:10px 22px;gap:8px\">Next: Revenue Model <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/button><\/div>\n<\/div>\n\n<!-- M5: REVENUE MODEL -->\n<div class=\"view\" id=\"v-m5\">\n  <div style=\"margin-bottom:26px\">\n    <div class=\"kicker\"><div class=\"kicker-dot\"><\/div>Monetize &mdash; Step E of E<\/div>\n    <h1 class=\"pg-h1\">Revenue Model<\/h1>\n    <p class=\"pg-sub\">Adjust growth assumptions. See your business at each milestone.<\/p>\n  <\/div>\n  <div class=\"g2\" style=\"gap:20px\">\n    <div class=\"col gap14\">\n      <div class=\"card\">\n        <div class=\"ct\" style=\"margin-bottom:12px\">Revenue Projections<\/div>\n        <div class=\"cs\" style=\"margin-bottom:16px\">At $<span id=\"rev-pr\">97<\/span>\/mo. Drag each slider.<\/div>\n        <div class=\"lbl\">Month 3 customers<\/div><input type=\"range\" id=\"rc3\" min=\"1\" max=\"80\" value=\"8\" oninput=\"calcRev()\" style=\"margin-bottom:12px\"\/>\n        <div class=\"lbl\">Month 6 customers<\/div><input type=\"range\" id=\"rc6\" min=\"5\" max=\"200\" value=\"30\" oninput=\"calcRev()\" style=\"margin-bottom:12px\"\/>\n        <div class=\"lbl\">Month 12 customers<\/div><input type=\"range\" id=\"rc12\" min=\"10\" max=\"400\" value=\"80\" oninput=\"calcRev()\" style=\"margin-bottom:12px\"\/>\n        <div class=\"lbl\">Monthly churn (%)<\/div><input type=\"range\" id=\"rch\" min=\"0\" max=\"15\" value=\"5\" oninput=\"calcRev()\" style=\"margin-bottom:16px\"\/>\n        <div id=\"rev-out\" class=\"col gap9\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"col gap14\">\n      <div class=\"card\" style=\"background:var(--gold-s);border-color:var(--gold-b)\">\n        <div class=\"ct\" style=\"margin-bottom:12px\">Go-To-Market Checklist<\/div>\n        <div id=\"gtm-list\" class=\"col gap7\"><\/div>\n      <\/div>\n      <div class=\"card\">\n        <div class=\"ct\" style=\"margin-bottom:7px\">Export Full Session<\/div>\n        <div class=\"cs\" style=\"margin-bottom:13px\">Copy blueprint, sales copy, emails, and projections to clipboard.<\/div>\n        <button class=\"btn btn-dark btn-full\" onclick=\"exportAll()\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"\/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/><\/svg>Copy Full Package<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<\/main>\n<\/div>\n<div id=\"toast\"><\/div>\n\n<script>\nvar KEY = ' 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 ';\nvar MDL = 'claude-sonnet-4-6';\nvar SHEETS = 'https:\/\/script.google.com\/macros\/s\/AKfycbyIaKOXR5FZqN2CPPugCHXQXOpsdUgftucEfQl7XqbYygHiKy48wNvzVzo9WKGB1jsbsg\/exec ';\n\n\/* \u2550\u2550 STATE \u2550\u2550 *\/\nvar S = {\n  type:null, typeName:'', typeDesc:'', typeColor:'', typeBg:'', typeIcon:'',\n  modeChip:'', name:'', desc:'',\n  caps:{},\n  rules:['Always verify user identity before sharing personalized data.','Escalate to a human agent after two expressions of frustration.','Surface pricing offer when buying intent is detected.'],\n  channels:{'Phone \/ Voice':false,'Chat Widget':true,'WhatsApp':true,'SMS':false,'Email':true,'REST API':false},\n  blueprint:null, bpTabs:[], deployRaw:'',\n  offerData:null, lpData:null, outreachData:null, pricingModel:'Subscription',\n  buildUses:parseInt(localStorage.getItem('os_b')||'0'),\n  monetizeUses:parseInt(localStorage.getItem('os_m')||'0'),\n  MAX:1\n};\n\n\/* \u2550\u2550 PRODUCT TYPES \u2550\u2550 *\/\nvar TYPES = [\n  {id:'agent',name:'AI Agent',color:'#16150F',bg:'#F2F1EE',\n   desc:'Autonomous AI that qualifies, books, and follows up 24\/7.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\" stroke=\"none\"\/><\/svg>',\n   chips:['Lead Qualification','Customer Support','Appointment Booking','Sales Outreach','Patient Onboarding','Data Collection','Internal Ops','Custom'],\n   chiplabel:'Agent Type',\n   extra:[{id:'channel',label:'Delivery Channel',type:'select',opts:['WhatsApp','Voice \/ Phone','Chat Widget','SMS','Email','Slack \/ Teams','API','Multi-channel']},{id:'role',label:'Agent Role',placeholder:'e.g. Qualify inbound leads and book demos'},{id:'buyer',label:'Who Buys This?',placeholder:'e.g. B2B SaaS founders, $50k&ndash;$500k MRR'}]},\n  {id:'saas',name:'SaaS App',color:'#0E6B5E',bg:'#EAF5F3',\n   desc:'Web platform customers log into and pay monthly.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg>',\n   chips:['CRM \/ Sales','Marketing','Productivity','Analytics','HR \/ People Ops','Finance \/ Billing','DevOps \/ Infra','Custom'],\n   chiplabel:'SaaS Category',\n   extra:[{id:'comp',label:'Primary Competitor',placeholder:'e.g. HubSpot, Salesforce'},{id:'startprice',label:'Target Starting Price',placeholder:'e.g. $99\/mo per seat'},{id:'icp',label:'Ideal Customer Profile',placeholder:'e.g. RevOps teams at Series A&ndash;B startups'}]},\n  {id:'chatbot',name:'Chatbot',color:'#1A3A5C',bg:'#EBF0F7',\n   desc:'Conversational widget embedded in a website or app.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\/><\/svg>',\n   chips:['Lead Capture','FAQ Bot','Support Bot','Onboarding Guide','Product Recommendation','Booking Bot','Survey Bot','Custom'],\n   chiplabel:'Chatbot Purpose',\n   extra:[{id:'platform',label:'Embedded On',type:'select',opts:['Website','Web App','Mobile App','Messenger','Slack','WhatsApp','Multiple']},{id:'user',label:'End User',placeholder:'e.g. SaaS free trial users'}]},\n  {id:'api',name:'REST API',color:'#8B6914',bg:'#FBF5E6',\n   desc:'Headless AI endpoint that developers integrate into products.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg>',\n   chips:['Resume Scoring','Sentiment Analysis','Content Moderation','Entity Extraction','Classification','Translation','Image Analysis','Custom'],\n   chiplabel:'API Function',\n   extra:[{id:'output',label:'Response Format',type:'select',opts:['JSON','JSON + Confidence Score','Structured Schema','Plain text','Webhook event']},{id:'devbuyer',label:'Who Builds With This?',placeholder:'e.g. HR platform developers, e-commerce engineering teams'}]},\n  {id:'automation',name:'Automation Flow',color:'#3D3C3A',bg:'#F3F2EE',\n   desc:'AI workflow that triggers actions across your entire stack.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2a3 3 0 1 0 0 6m7-3a3 3 0 1 0 0 6M5 9a3 3 0 1 0 0 6m7 3v-3m-3.5-3.5 2 2m5-2-2 2\"\/><\/svg>',\n   chips:['Invoice Processing','Lead Routing','Contract Review','Inventory Alerts','Social Scheduling','Onboarding Flow','Report Generation','Custom'],\n   chiplabel:'Automation Type',\n   extra:[{id:'trigger',label:'Primary Trigger',placeholder:'e.g. New form submission, inbound email, nightly schedule'},{id:'stack',label:'Tools in Your Stack',placeholder:'e.g. HubSpot, Slack, Google Sheets, Notion'}]},\n  {id:'mobile',name:'Mobile App',color:'#7A2010',bg:'#FBF0EC',\n   desc:'Native or PWA mobile experience powered by AI on iOS & Android.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"\/><\/svg>',\n   chips:['Fitness \/ Wellness','Language Learning','Finance \/ Budget','Health Monitoring','Productivity','Education','Dating \/ Social','Custom'],\n   chiplabel:'App Category',\n   extra:[{id:'platform',label:'Platform',type:'select',opts:['iOS + Android','iOS only','Android only','Progressive Web App (PWA)']},{id:'muser',label:'Target User',placeholder:'e.g. Solo founders, SMB teams, Gen Z'}]},\n  {id:'plugin',name:'Plugin \/ Extension',color:'#6B5010',bg:'#FBF5E6',\n   desc:'Browser extension or CMS plugin adding AI to existing tools.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2v4M4 12H2M6.34 6.34 4.93 4.93M17.66 6.34l1.41-1.41M22 12h-2M12 18v4M6.34 17.66l-1.41 1.41M17.66 17.66l1.41 1.41\"\/><\/svg>',\n   chips:['Chrome Extension','WordPress Plugin','Shopify App','Figma Plugin','Notion Integration','VS Code Extension','Zapier App','Custom'],\n   chiplabel:'Plugin Platform',\n   extra:[{id:'hostapp',label:'Host Application',placeholder:'e.g. Chrome, WordPress, Shopify'},{id:'pluguser',label:'Who Uses This?',placeholder:'e.g. Copywriters, e-commerce store owners'}]},\n  {id:'copilot',name:'AI Copilot',color:'#16150F',bg:'#F2F1EE',\n   desc:'AI assistant embedded inside another product to guide users in real-time.',\n   icon:'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2a7 7 0 0 1 7 7c0 3.87-4 7-7 9-3-2-7-5.13-7-9a7 7 0 0 1 7-7z\"\/><circle cx=\"12\" cy=\"9\" r=\"2\"\/><\/svg>',\n   chips:['CRM Copilot','Writing Assistant','Code Review','Data Analysis','Design Feedback','Legal Review','Finance Advisory','Custom'],\n   chiplabel:'Copilot Function',\n   extra:[{id:'host',label:'Host Product \/ Platform',placeholder:'e.g. Notion, Figma, Airtable, your own SaaS'},{id:'guidance',label:'What It Guides Users To Do',placeholder:'e.g. Write better outreach, fix code bugs, find data insights'}]}\n];\n\nvar CAPS = {\n  'AI Core':['LLM Reasoning','Knowledge Base','Long-term Memory','RAG Pipeline','Fine-tuning','Embeddings Search'],\n  'Communication':['Chat Widget','Voice (Phone)','WhatsApp','Email Automation','SMS','Social DMs'],\n  'Data & Logic':['Lead Scoring','Decision Trees','Data Extraction','Classification','Summarization','Translation'],\n  'Actions':['Calendar Booking','CRM Write','Invoice Sending','Payment Collection','Document Generation','Database Write'],\n  'Integration':['Zapier \/ Make','Webhooks','REST API Calls','OAuth Flow','Stripe Billing','Google Workspace'],\n  'Infrastructure':['User Auth','Multi-tenancy','Usage Analytics','Uptime Monitoring','Rate Limiting','CDN \/ Edge']\n};\n\n\/* \u2550\u2550 MOBILE \u2550\u2550 *\/\nfunction openSide(){document.getElementById('side').classList.add('open');document.getElementById('mob-ov').classList.add('on');document.body.style.overflow='hidden'}\nfunction closeSide(){document.getElementById('side').classList.remove('open');document.getElementById('mob-ov').classList.remove('on');document.body.style.overflow=''}\n\n\/* \u2550\u2550 NAVIGATION \u2550\u2550 *\/\nfunction nav(v,el){\n  document.querySelectorAll('.view').forEach(function(x){x.classList.remove('on')});\n  document.querySelectorAll('.nav-item').forEach(function(x){x.classList.remove('on')});\n  var vEl=document.getElementById('v-'+v);if(vEl){vEl.classList.add('on');vEl.style.animation='none';void vEl.offsetWidth;vEl.style.animation='up .3s ease both'}\n  var nEl=el||document.querySelector('.nav-item[data-v=\"'+v+'\"]');if(nEl)nEl.classList.add('on');\n  var mlbl=document.getElementById('mob-label');\n  if(mlbl&&nEl){var lb=nEl.querySelector('.nav-label');var nb=nEl.querySelector('.nav-num');if(lb&&nb)mlbl.textContent=(nb.textContent||'').trim()+' \\xb7 '+(lb.textContent||'').trim()}\n  closeSide();\n  if(v==='b2')setupB2();\n  if(v==='b3')buildCapGrid();\n  if(v==='b4')buildWorkflow();\n  if(v==='b5')setupB5();\n  if(v==='m1')setupM1();\n  if(v==='m5'){var _ps=document.getElementById('m-price-slider');var _rp=document.getElementById('rev-pr');if(_ps&&_rp)_rp.textContent=_ps.value;calcRev();buildGTM();}\n  window.scrollTo(0,0);\n}\n\n\/* \u2550\u2550 B1: TYPE GRID \u2550\u2550 *\/\nfunction buildTypeGrid(){\n  var g=document.getElementById('type-grid');if(!g)return;\n  TYPES.forEach(function(t){\n    var c=document.createElement('div');c.className='ptype'+(S.type===t.id?' sel':'');\n    c.innerHTML='<div class=\"ptype-icon\" style=\"background:'+t.bg+';color:'+t.color+'\">'+t.icon.replace('<svg','<svg width=\"20\" height=\"20\" stroke=\"'+t.color+'\"')+'<\/div><div class=\"ptype-name\">'+t.name+'<\/div><div class=\"ptype-desc\">'+t.desc+'<\/div>';\n    c.onclick=function(){\n      S.type=t.id;S.typeName=t.name;S.typeDesc=t.desc;S.typeColor=t.color;S.typeBg=t.bg;S.typeIcon=t.icon;\n      document.querySelectorAll('.ptype').forEach(function(x){x.classList.remove('sel')});c.classList.add('sel');\n      document.getElementById('btn-next-type').disabled=false;mark('b1');sessionStorage.setItem('os_done_b1','1');\n    };\n    g.appendChild(c);\n  });\n}\n\n\/* \u2550\u2550 B2: DEFINE + BLUEPRINT \u2550\u2550 *\/\nfunction setupB2(){\n  if(!S.type)return;\n  var t=TYPES.find(function(x){return x.id===S.type});if(!t)return;\n  var ic=document.getElementById('b2-type-icon');\n  if(ic){ic.innerHTML=t.icon.replace('<svg','<svg width=\"18\" height=\"18\" stroke=\"'+t.color+'\"');ic.style.background=t.bg;}\n  var lb=document.getElementById('b2-type-lbl');if(lb)lb.textContent=t.name;\n  var db=document.getElementById('b2-type-desc');if(db)db.textContent=t.desc;\n  \/\/ Mode chips\n  var mc=document.getElementById('b2-mode-chips');\n  if(mc){\n    mc.innerHTML='<div class=\"lbl\">'+t.chiplabel+'<\/div><div class=\"chip-group\" id=\"mode-chips-inner\"><\/div>';\n    var ci=document.getElementById('mode-chips-inner');\n    t.chips.forEach(function(chip){\n      var btn=document.createElement('button');btn.className='chip'+(S.modeChip===chip?' on':'');\n      btn.innerHTML='<svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>'+chip;\n      btn.onclick=function(){\n        document.querySelectorAll('#mode-chips-inner .chip').forEach(function(x){x.classList.remove('on')});\n        btn.classList.add('on');S.modeChip=chip;\n      };\n      ci.appendChild(btn);\n    });\n  }\n  \/\/ Extra fields\n  var df=document.getElementById('b2-fields');\n  if(!df)return;df.innerHTML='';\n  df.innerHTML+='<div class=\"lbl\" style=\"margin-top:14px\">Product name<\/div><input type=\"text\" id=\"b2-name\" placeholder=\"e.g. DentaFlow AI\" style=\"margin-bottom:13px\"\/>';\n  t.extra.forEach(function(f){\n    var id='b2-'+f.id;\n    df.innerHTML+='<div class=\"lbl\">'+f.label+'<\/div>';\n    if(f.type==='select'){\n      var opts=(f.opts||[]).map(function(o){return'<option>'+o+'<\/option>'}).join('');\n      df.innerHTML+='<select id=\"'+id+'\" style=\"margin-bottom:13px\">'+opts+'<\/select>';\n    } else {\n      df.innerHTML+='<input type=\"text\" id=\"'+id+'\" placeholder=\"'+(f.placeholder||'')+'\" style=\"margin-bottom:13px\"\/>';\n    }\n  });\n  df.innerHTML+='<div class=\"lbl\">Core problem &amp; what it solves<\/div><textarea id=\"b2-desc\" rows=\"3\" placeholder=\"e.g. SDRs take 4+ hours to respond. 60% of leads go cold before first contact.\"><\/textarea>';\n}\n\nasync function genBlueprint(){\n  if(S.buildUses>=S.MAX){showLimit();return}\n  var t=TYPES.find(function(x){return x.id===S.type});\n  var nm=(document.getElementById('b2-name')||{}).value||'';\n  var desc=(document.getElementById('b2-desc')||{}).value||'';\n  if(!desc){toast('Describe your product first.');return}\n  S.name=nm||S.typeName;S.desc=desc;\n  var extras=[];\n  if(t)t.extra.forEach(function(f){var el=document.getElementById('b2-'+f.id);if(el&&el.value)extras.push(f.label+': '+el.value)});\n  var btn=document.getElementById('btn-gen-bp'),out=document.getElementById('b2-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin\"><\/span> Casting blueprint&hellip;';\n  out.innerHTML=skelHTML();\n\n  var isAgent=S.type==='agent',isSaas=S.type==='saas',isApp=['mobile','chatbot','plugin','copilot'].includes(S.type);\n  var agentExtra=isAgent?',\"systemPrompt\":\"full 200-word system prompt, identity, behavior, constraints\",\"opening\":\"opening message + 3 qualification questions\",\"objections\":\"top 3 objections with verbatim responses\",\"handoff\":\"escalation and close sequence\"':'';\n  var saasExtra=isSaas?',\"icpDetail\":{\"firmographics\":\"company size, industry, revenue\",\"psychographics\":\"mindset, goals, pain\",\"buyingTriggers\":[\"t1\",\"t2\",\"t3\"]},\"competitors\":[{\"name\":\"c1\",\"weakness\":\"w1\",\"edge\":\"e1\"},{\"name\":\"c2\",\"weakness\":\"w2\",\"edge\":\"e2\"}],\"pricingTiers\":[{\"name\":\"Starter\",\"price\":\"$X\/mo\",\"for\":\"who\",\"features\":[\"f1\",\"f2\",\"f3\"]},{\"name\":\"Growth\",\"price\":\"$X\/mo\",\"for\":\"who\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\"],\"recommended\":true},{\"name\":\"Enterprise\",\"price\":\"$X\/mo\",\"for\":\"who\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\",\"f5\"]}],\"coldEmail\":{\"subject\":\"subject line\",\"body\":\"150-word cold email with [FIRST NAME] and [COMPANY]\"}':'';\n\n  var prompt='You are an expert AI product architect. Generate a detailed product blueprint.\\n\\nType: '+S.typeName+'\\nMode: '+(S.modeChip||'General')+'\\nName: '+S.name+'\\nDescription: '+desc+'\\nExtra context: '+extras.join(' | ')+'\\n\\nReturn ONLY valid JSON, no markdown:\\n{\"productName\":\"...\",\"tagline\":\"one-line tagline\",\"elevator\":\"2-sentence pitch\",\"coreProblem\":\"exact problem in one sentence\",\"mvpFeatures\":[\"f1\",\"f2\",\"f3\",\"f4\",\"f5\",\"f6\"],\"v2Features\":[\"f1\",\"f2\",\"f3\"],\"techStack\":{\"primary\":\"...\",\"ai\":\"...\",\"database\":\"...\",\"auth\":\"...\",\"hosting\":\"...\",\"integrations\":\"...\"},\"stackRationale\":\"why this stack in 2 sentences\",\"icp\":\"ideal customer in 2 sentences\",\"revenueModel\":\"pricing model recommendation\",\"revenueRange\":\"realistic monthly range with timeline\"'+agentExtra+saasExtra+',\"launchSteps\":[{\"title\":\"phase\",\"detail\":\"what\"},{\"title\":\"phase\",\"detail\":\"what\"},{\"title\":\"phase\",\"detail\":\"what\"},{\"title\":\"phase\",\"detail\":\"what\"}],\"risks\":[\"r1\",\"r2\",\"r3\"]}';\n\n  try{\n    var res=await apiFetch(prompt,2800);\n    S.blueprint=res;S.buildUses++;localStorage.setItem('os_b',S.buildUses);mark('b2');sessionStorage.setItem('os_done_b2','1');\n    renderBlueprint(res);\n  }catch(e){\n    out.innerHTML='<div style=\"padding:22px\"><div class=\"inset\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:13px\">Error: '+e.message+'<\/p><p class=\"body\" style=\"margin-top:6px;font-size:12px\">Check your API key in the KEY variable.<\/p><\/div><\/div>';\n  }\n  btn.disabled=false;btn.innerHTML='<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Cast Blueprint';\n}\n\nfunction renderBlueprint(r){\n  var out=document.getElementById('b2-out');\n  var isAgent=S.type==='agent',isSaas=S.type==='saas';\n  var tabs=[];\n  if(isAgent)tabs=['Architecture','Scripts','Workflow'];\n  else if(isSaas)tabs=['Positioning','Pricing Model','Go-To-Market'];\n  else tabs=['Blueprint','Tech Stack','Launch Plan'];\n  tabs.push('Monetize');S.bpTabs=tabs;\n\n  var tabHtml='<div class=\"out-tabs\" id=\"bp-tabs\">';\n  tabs.forEach(function(t,i){tabHtml+='<button class=\"out-tab'+(i===0?' on':'')+'\" onclick=\"switchBPTab('+i+',this)\">'+t+'<\/button>';});\n  tabHtml+='<div class=\"out-tab-push\"><\/div><button class=\"dl-btn\" onclick=\"downloadBP()\"><svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg> Save<\/button>';\n  tabHtml+='<\/div><div id=\"bp-panes\">';\n\n  \/\/ Pane 0\n  var p0='';\n  if(isAgent){\n    p0+=rsec('Agent Identity','<p class=\"body\">'+r.elevator+'<\/p>');\n    var st=r.techStack||{};p0+=rsec('Recommended Stack','<p class=\"body\" style=\"font-weight:600\">'+r.productName+'<\/p><p class=\"body\" style=\"margin-top:4px\">'+st.primary+' &bull; '+st.ai+' &bull; '+st.integrations+'<\/p>');\n    p0+=rsec('Core Capabilities',listHtml(r.mvpFeatures));\n    p0+=rsec('Guardrails',listHtml(r.risks));\n  } else if(isSaas){\n    p0+=rsec('Positioning','<p class=\"body\" style=\"font-size:16px;font-weight:700;font-family:Fraunces,serif;color:var(--ink);margin-bottom:6px\">'+r.productName+'<\/p><p class=\"body\" style=\"font-style:italic;margin-bottom:10px\">\"'+r.tagline+'\"<\/p><p class=\"body\">'+r.elevator+'<\/p>');\n    p0+=rsec('Core Problem','<p class=\"body\">'+r.coreProblem+'<\/p>');\n    if(r.icpDetail){p0+=rsec('ICP Deep-Dive','<div class=\"body\"><strong>Firmographics:<\/strong> '+r.icpDetail.firmographics+'<\/div><div class=\"body\" style=\"margin-top:6px\"><strong>Mindset:<\/strong> '+r.icpDetail.psychographics+'<\/div>'+listHtml(r.icpDetail.buyingTriggers,'Buying triggers'));}\n    if(r.competitors){var compHtml=r.competitors.map(function(c){return'<div class=\"inset\" style=\"margin-bottom:8px\"><p class=\"body\" style=\"font-weight:700\">'+c.name+'<\/p><p class=\"body\" style=\"margin-top:3px\"><span style=\"color:var(--rust)\">Weakness:<\/span> '+c.weakness+'<\/p><p class=\"body\" style=\"margin-top:3px\"><span style=\"color:var(--teal)\">Our edge:<\/span> '+c.edge+'<\/p><\/div>';}).join('');p0+=rsec('Competitor Landscape',compHtml);}\n  } else {\n    p0+=rsec('Overview','<p class=\"body\" style=\"font-size:16px;font-weight:700;font-family:Fraunces,serif;color:var(--ink);margin-bottom:6px\">'+r.productName+'<\/p><p class=\"body\" style=\"font-style:italic;margin-bottom:10px\">\"'+r.tagline+'\"<\/p><p class=\"body\">'+r.elevator+'<\/p>');\n    p0+=rsec('Core Problem','<p class=\"body\">'+r.coreProblem+'<\/p>');\n    p0+=rsec('MVP Features',listHtml(r.mvpFeatures));\n    p0+=rsec('V2 Features',listHtml(r.v2Features));\n  }\n\n  \/\/ Pane 1\n  var p1='';\n  if(isAgent){\n    if(r.systemPrompt)p1+=codeBlock('System Prompt \u2014 paste into Retell AI or any agent platform',r.systemPrompt);\n    if(r.opening)p1+=codeBlock('Opening Message + Qualifiers',r.opening);\n    if(r.objections)p1+=codeBlock('Objection Handling',r.objections);\n    if(r.handoff)p1+=codeBlock('Handoff & Close',r.handoff);\n  } else if(isSaas){\n    if(r.pricingTiers){\n      p1+='<div class=\"rsec-lbl\" style=\"display:block;margin-bottom:10px\">Recommended Pricing Tiers<\/div>';\n      var bg3=['var(--s2)','var(--gold)','var(--ink)'],fg3=['var(--ink)','var(--side)','var(--white)'],sub3=['var(--ink3)','rgba(22,21,15,.6)','rgba(255,255,255,.5)'];\n      p1+='<div class=\"tier-grid\">'+r.pricingTiers.map(function(t,i){\n        return'<div class=\"tier-card\" style=\"background:'+bg3[i]+'\"><div class=\"lbl\" style=\"color:'+sub3[i]+'\">'+t.name+(t.recommended?' &bull; Recommended':'')+'<\/div><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:22px;color:'+fg3[i]+';margin:6px 0 4px\">'+t.price+'<\/div><div style=\"font-size:11px;color:'+sub3[i]+';margin-bottom:10px\">'+t.for+'<\/div><ul style=\"list-style:none\">'+(t.features||[]).map(function(f){return'<li style=\"font-size:11.5px;color:'+fg3[i]+';opacity:.8;padding:2px 0 2px 11px;position:relative\"><span style=\"position:absolute;left:0;top:8px;width:4px;height:4px;background:var(--gold);border-radius:50%;display:block\"><\/span>'+f+'<\/li>';}).join('')+'<\/ul><\/div>';\n      }).join('')+'<\/div>';\n    }\n  } else {\n    var stk=r.techStack||{};\n    var stkKeys={primary:'Primary',ai:'AI \/ LLM',database:'Database',auth:'Auth',hosting:'Hosting',integrations:'Integrations'};\n    p1+='<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px\">';\n    Object.keys(stkKeys).forEach(function(k){if(stk[k])p1+='<div style=\"background:var(--side);border-radius:8px;padding:11px\"><div style=\"font-family:IBM Plex Mono,monospace;font-size:8.5px;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.1em;margin-bottom:3px\">'+stkKeys[k]+'<\/div><div style=\"font-size:12.5px;color:rgba(255,255,255,.85)\">'+stk[k]+'<\/div><\/div>';});\n    p1+='<\/div>';\n    if(r.stackRationale)p1+=rsec('Why This Stack','<p class=\"body\">'+r.stackRationale+'<\/p>');\n  }\n\n  \/\/ Pane 2\n  var p2='';\n  if(isAgent){\n    var steps=['User triggers interaction','AI processes input & context','Knowledge base lookup','Core decision logic','Action executed (book, update, message)','Response delivered to user','Event logged to CRM','Follow-up or notification queued'];\n    p2+=rsec('8-Step Execution Flow',steps.map(function(s,i){return'<div class=\"flow-step\"><div class=\"flow-n\">'+(i+1<10?'0'+(i+1):i+1)+'<\/div><div class=\"flow-txt\">'+s+'<\/div><\/div>';}).join(''));\n    p2+=rsec('Integrations',listHtml(['CRM (HubSpot \/ Salesforce)','Calendar (Calendly \/ Cal.com)','Helpdesk (Intercom \/ Zendesk)','Zapier \/ Make for automation']));\n  } else if(isSaas){\n    if(r.coldEmail)p2+=codeBlock('ICP Cold Email \u2014 '+r.coldEmail.subject,r.coldEmail.body);\n    if(r.launchSteps){p2+=rsec('Launch Plan',r.launchSteps.map(function(s,i){return'<div class=\"flow-step\"><div class=\"flow-n\">'+(i+1)+'<\/div><div class=\"flow-txt\"><strong>'+s.title+'<\/strong><br>'+s.detail+'<\/div><\/div>';}).join(''));}\n    p2+=rsec('Key Metrics to Track',listHtml(['MRR growth','CAC vs LTV','Monthly churn rate','Activation rate (trial to paid)']));\n  } else {\n    if(r.launchSteps)p2+=rsec('Launch Roadmap',r.launchSteps.map(function(s,i){return'<div class=\"flow-step\"><div class=\"flow-n\">'+(i+1)+'<\/div><div class=\"flow-txt\"><strong>'+s.title+'<\/strong><br>'+s.detail+'<\/div><\/div>';}).join(''));\n    if(r.risks)p2+=rsec('Risks to Watch',listHtml(r.risks));\n  }\n\n  \/\/ Pane 3 \u2014 Monetize\n  var p3=renderMonetizePane();\n\n  var panes=[p0,p1,p2,p3];\n  tabHtml+=panes.map(function(p,i){return'<div class=\"out-pane'+(i===0?' on':'')+'\" id=\"bpp-'+i+'\"><div style=\"padding:4px\">'+p+'<\/div><\/div>';}).join('');\n  tabHtml+='<\/div>';\n  out.innerHTML=tabHtml;\n}\n\nfunction renderMonetizePane(){\n  return'<div class=\"rsec\" style=\"margin-bottom:10px\"><div class=\"rsec-lbl\">Generate Your Offer Package<\/div><div class=\"g2\" style=\"gap:10px;margin-bottom:11px\"><div><div class=\"lbl\">Industry<\/div><input type=\"text\" id=\"mp-ind\" value=\"Healthcare\"\/><\/div><div><div class=\"lbl\">Problem<\/div><input type=\"text\" id=\"mp-prob\" value=\"Missed appointments, manual reminders\"\/><\/div><div><div class=\"lbl\">Price<\/div><input type=\"text\" id=\"mp-price\" value=\"$297\/mo\"\/><\/div><div><div class=\"lbl\">Model<\/div><select id=\"mp-model\"><option>Done-For-You<\/option><option>SaaS<\/option><option>Retainer<\/option><option>Productized Service<\/option><\/select><\/div><\/div><button class=\"btn btn-dark btn-full\" id=\"mp-btn\" onclick=\"genMonetizeTab()\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Generate Offer Package<\/button><\/div><div id=\"mp-out\"><\/div>';\n}\n\nasync function genMonetizeTab(){\n  var ind=(document.getElementById('mp-ind')||{}).value||'';\n  var prob=(document.getElementById('mp-prob')||{}).value||'';\n  var price=(document.getElementById('mp-price')||{}).value||'';\n  var model=(document.getElementById('mp-model')||{}).value||'';\n  if(!ind||!prob||!price){toast('Fill all offer fields.');return}\n  var btn=document.getElementById('mp-btn'),mout=document.getElementById('mp-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin\"><\/span> Generating&hellip;';\n  mout.innerHTML=skelHTML();\n  var prompt='Offer strategist. Product: '+S.name+' ('+S.typeName+'). Industry: '+ind+'. Problem: '+prob+'. Price: '+price+'. Model: '+model+'.\\nReturn ONLY valid JSON, no markdown:\\n{\"name\":\"...\",\"tagline\":\"...\",\"hook\":\"2-sentence hook\",\"value\":\"3-sentence value prop\",\"benefits\":[\"b1\",\"b2\",\"b3\",\"b4\",\"b5\"],\"coldEmail\":{\"subject\":\"...\",\"body\":\"150-word cold email with [FIRST NAME] [COMPANY]\"},\"followUp\":{\"subject\":\"...\",\"body\":\"100-word follow-up\"},\"tiers\":[{\"name\":\"Starter\",\"price\":\"...\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\"]},{\"name\":\"Growth\",\"price\":\"2x\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\"],\"pop\":true},{\"name\":\"Scale\",\"price\":\"4x\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\",\"f5\"]}]}';\n  try{\n    var o=await apiFetch(prompt,1400);\n    var h='<div class=\"rsec\" style=\"margin-bottom:10px\"><p style=\"font-family:Fraunces,serif;font-weight:800;font-size:18px;color:var(--ink);margin-bottom:3px\">'+o.name+'<\/p><p class=\"body\" style=\"font-style:italic;margin-bottom:10px\">\"'+o.tagline+'\"<\/p><p class=\"body\" style=\"margin-bottom:8px\">'+o.hook+'<\/p><p class=\"body\">'+o.value+'<\/p><ul style=\"margin-top:10px;list-style:none\">'+(o.benefits||[]).map(function(b){return'<li style=\"font-size:12.5px;color:var(--ink2);padding:3px 0 3px 13px;position:relative\"><span style=\"position:absolute;left:0;top:9px;width:4px;height:4px;background:var(--gold);border-radius:50%;display:block\"><\/span>'+b+'<\/li>';}).join('')+'<\/ul><\/div>';\n    h+=codeBlock('Cold Email \u2014 '+(o.coldEmail?o.coldEmail.subject:''),o.coldEmail?o.coldEmail.body:'');\n    h+=codeBlock('Follow-up \u2014 '+(o.followUp?o.followUp.subject:''),o.followUp?o.followUp.body:'');\n    var bg3=['var(--s2)','var(--gold)','var(--ink)'],fg3=['var(--ink)','var(--side)','var(--white)'],sub3=['var(--ink3)','rgba(22,21,15,.6)','rgba(255,255,255,.45)'];\n    h+='<div class=\"rsec-lbl\" style=\"display:block;margin-bottom:8px;margin-top:10px\">Subscription Tiers<\/div><div class=\"tier-grid\">'+(o.tiers||[]).map(function(t,i){return'<div class=\"tier-card\" style=\"background:'+bg3[i]+'\">'+(t.pop?'<div style=\"font-size:8px;font-weight:700;color:var(--gold);font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px\">Most Popular<\/div>':'')+'<div style=\"font-size:11px;font-weight:700;color:'+sub3[i]+';text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px\">'+t.name+'<\/div><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:20px;color:'+fg3[i]+';margin-bottom:3px\">'+t.price+'<\/div><div style=\"font-size:10.5px;color:'+sub3[i]+';margin-bottom:9px\">'+t.for+'<\/div><ul style=\"list-style:none\">'+(t.features||[]).map(function(f){return'<li style=\"font-size:11px;color:'+fg3[i]+';opacity:.8;padding:2px 0 2px 10px;position:relative\"><span style=\"position:absolute;left:0;top:7px;width:3px;height:3px;background:var(--gold);border-radius:50%;display:block\"><\/span>'+f+'<\/li>';}).join('')+'<\/ul><\/div>';}).join('')+'<\/div>';\n    mout.innerHTML=h;\n  }catch(e){mout.innerHTML='<div class=\"rsec\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:12.5px\">Error: '+e.message+'<\/p><\/div>';}\n  btn.disabled=false;btn.innerHTML='<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Regenerate';\n}\n\nfunction switchBPTab(i,el){\n  document.querySelectorAll('#bp-tabs .out-tab').forEach(function(t){t.classList.remove('on')});\n  document.querySelectorAll('#bp-panes .out-pane').forEach(function(p,j){p.classList.toggle('on',j===i)});\n  if(el)el.classList.add('on');\n}\n\nfunction downloadBP(){\n  var lines=['ORTIVE STUDIO \u2014 BLUEPRINT','Product: '+S.name,'Type: '+S.typeName,'Mode: '+S.modeChip,'Generated: '+new Date().toLocaleDateString(),''];\n  document.querySelectorAll('#bp-panes .out-pane').forEach(function(p,i){if(p.innerText.trim()){lines.push('--- '+(S.bpTabs[i]||'Section '+(i+1)).toUpperCase()+' ---','',p.innerText.trim(),'');}});\n  var blob=new Blob([lines.join('\\n')],{type:'text\/plain'});var a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download='ortive-blueprint.txt';document.body.appendChild(a);a.click();document.body.removeChild(a);\n}\n\n\/* \u2550\u2550 B3: CAPS \u2550\u2550 *\/\nfunction buildCapGrid(){\n  var g=document.getElementById('cap-grid');if(!g)return;g.innerHTML='';\n  Object.keys(CAPS).forEach(function(cat){\n    var card=document.createElement('div');card.className='card-sm';\n    var h='<div style=\"font-family:Fraunces,serif;font-weight:700;font-size:13px;color:var(--ink);margin-bottom:11px;letter-spacing:-.1px\">'+cat+'<\/div>';\n    CAPS[cat].forEach(function(item){\n      var k=cat+':'+item,on=!!S.caps[k];var uid='c_'+k.replace(\/[^a-z0-9]\/gi,'_');\n      h+='<div class=\"cap-row\"><span class=\"cap-label '+(on?'':'')+'\u00bb style=\"color:'+(on?'var(--ink)':'var(--ink3)')+'\" id=\"cl_'+uid+'\">'+item+'<\/span><div class=\"tgl\" id=\"'+uid+'\" style=\"background:'+(on?'var(--ink)':'var(--s3)')+'\" onclick=\"toggleCap(\\''+cat+'\\',\\''+item+'\\')\"><div class=\"tgl-k\" style=\"left:'+(on?'17px':'2px')+'\"><\/div><\/div><\/div>';\n    });\n    card.innerHTML=h;g.appendChild(card);\n  });\n  updateCapBadge();\n}\nfunction toggleCap(cat,item){\n  var k=cat+':'+item;S.caps[k]=!S.caps[k];\n  var uid='c_'+k.replace(\/[^a-z0-9]\/gi,'_');\n  var t=document.getElementById(uid),l=document.getElementById('cl_'+uid);\n  if(t){t.style.background=S.caps[k]?'var(--ink)':'var(--s3)';t.querySelector('.tgl-k').style.left=S.caps[k]?'17px':'2px'}\n  if(l)l.style.color=S.caps[k]?'var(--ink)':'var(--ink3)';\n  updateCapBadge();if(Object.values(S.caps).some(Boolean))sessionStorage.setItem('os_done_b3','1');\n}\nfunction updateCapBadge(){var n=Object.values(S.caps).filter(Boolean).length;var el=document.getElementById('cap-badge');if(el)el.textContent=n+' active';}\n\n\/* \u2550\u2550 B4: WORKFLOW \u2550\u2550 *\/\nvar WF=['User triggers interaction','AI processes input and context','Knowledge base or data lookup','Core logic and decision tree','Action executed (booking, CRM update, message)','Response delivered to user','Event logged to database \/ CRM','Follow-up or notification dispatched'];\nfunction buildWorkflow(){\n  var el=document.getElementById('wf-steps');\n  if(el){el.innerHTML='';WF.forEach(function(s,i){el.innerHTML+='<div class=\"flow-step\" style=\"animation:in .3s '+i*.04+'s both\"><div class=\"flow-n\">'+(i+1<10?'0'+(i+1):i+1)+'<\/div><div class=\"flow-txt\">'+s+'<\/div><\/div>';});}\n  var ch=document.getElementById('wf-channels');\n  if(ch){ch.innerHTML='';Object.keys(S.channels).forEach(function(name){var on=S.channels[name];var row=document.createElement('div');row.style.cssText='display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--s3)';row.innerHTML='<span style=\"font-size:12.5px;color:var(--ink2)\">'+name+'<\/span>';var t=document.createElement('div');t.className='tgl';t.style.background=on?'var(--ink)':'var(--s3)';t.innerHTML='<div class=\"tgl-k\" style=\"left:'+(on?'17px':'2px')+'\"><\/div>';t.onclick=function(){S.channels[name]=!S.channels[name];t.querySelector('.tgl-k').style.left=S.channels[name]?'17px':'2px';t.style.background=S.channels[name]?'var(--ink)':'var(--s3)';};row.appendChild(t);ch.appendChild(row);});}\n  renderRules();mark('b4');sessionStorage.setItem('os_done_b4','1');\n}\nfunction renderRules(){\n  var el=document.getElementById('wf-rules');if(!el)return;el.innerHTML='';\n  S.rules.forEach(function(r,i){var row=document.createElement('div');row.className='rule-r';row.innerHTML='<div class=\"rule-ic\"><svg width=\"9\" height=\"9\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div><div class=\"rule-txt\">'+r+'<\/div>';var del=document.createElement('button');del.style.cssText='background:none;border:none;cursor:pointer;color:var(--ink4);padding:3px;flex-shrink:0';del.innerHTML='<svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>';del.onclick=function(){S.rules.splice(i,1);renderRules();};row.appendChild(del);el.appendChild(row);});\n}\nfunction addRule(){var inp=document.getElementById('rule-inp');if(!inp||!inp.value.trim())return;S.rules.push(inp.value.trim());inp.value='';renderRules();}\n\n\/* \u2550\u2550 B5: DEPLOY \u2550\u2550 *\/\nfunction setupB5(){\n  var el=document.getElementById('b5-summary');if(!el)return;\n  var caps=Object.keys(S.caps).filter(function(k){return S.caps[k]}).map(function(k){return k.split(':')[1]});\n  el.innerHTML='';\n  [['Product',S.name||'Unnamed'],['Type',S.typeName||'\u2014'],['Mode',S.modeChip||'\u2014'],['Capabilities',caps.length+' active'],['Rules',S.rules.length+' configured']].forEach(function(r){el.innerHTML+='<div style=\"display:flex;justify-content:space-between;font-size:12px;padding:6px 0;border-bottom:1px solid var(--gold-b)\"><span style=\"color:var(--ink3)\">'+r[0]+'<\/span><span style=\"font-weight:600;color:var(--ink)\">'+r[1]+'<\/span><\/div>';});\n}\nasync function genDeploy(){\n  if(S.buildUses>=S.MAX+1){showLimit();return}\n  var caps=Object.keys(S.caps).filter(function(k){return S.caps[k]}).map(function(k){return k.split(':')[1]}).join(', ')||'General';\n  var chs=Object.keys(S.channels).filter(function(c){return S.channels[c]}).join(', ')||'Web';\n  var btn=document.getElementById('btn-gen-deploy'),out=document.getElementById('b5-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin-d\"><\/span> Generating&hellip;';\n  out.innerHTML=skelHTML(true);\n  var prompt='Senior AI product engineer. Generate a precise, actionable deployment manual.\\n\\nProduct: '+S.name+'\\nType: '+S.typeName+' \/ Mode: '+S.modeChip+'\\nDescription: '+S.desc+'\\nCapabilities: '+caps+'\\nChannels: '+chs+'\\nRules: '+S.rules.join('; ')+'\\n\\nEvery tool, price, and step must be real and specific.\\n\\nReturn ONLY valid JSON, no markdown:\\n{\"productName\":\"...\",\"monthlyCost\":\"e.g. $80\u2013$220\/mo\",\"techStack\":[{\"category\":\"Frontend\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Backend\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"AI \/ LLM\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Database\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Auth\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Payments\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Hosting\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"},{\"category\":\"Monitoring\",\"tool\":\"...\",\"why\":\"...\",\"cost\":\"...\"}],\"phases\":[{\"title\":\"Phase 1 \u2014 Foundation (Wk 1\u20132)\",\"steps\":[\"...\",\"...\",\"...\",\"...\"]},{\"title\":\"Phase 2 \u2014 Core Build (Wk 3\u20134)\",\"steps\":[\"...\",\"...\",\"...\",\"...\"]},{\"title\":\"Phase 3 \u2014 AI Integration (Wk 5\u20136)\",\"steps\":[\"...\",\"...\",\"...\",\"...\"]},{\"title\":\"Phase 4 \u2014 Launch (Wk 7\u20138)\",\"steps\":[\"...\",\"...\",\"...\",\"...\"]}],\"checklist\":[\"...\",\"...\",\"...\",\"...\",\"...\",\"...\",\"...\"],\"warnings\":[\"...\",\"...\",\"...\"]}';\n  try{\n    var res=await apiFetch(prompt,2200);S.deployRaw=JSON.stringify(res);\n    var h='<div style=\"padding:22px\">';\n    h+='<div style=\"display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px\"><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:19px;color:var(--ink)\">'+res.productName+' &mdash; Deployment Manual<\/div><span class=\"badge bg\">~'+res.monthlyCost+'<\/span><\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:9px\">Tech Stack<\/div>';\n    (res.techStack||[]).forEach(function(t){h+='<div class=\"inset\" style=\"margin-bottom:7px\"><div class=\"between\"><div><div style=\"font-family:IBM Plex Mono,monospace;font-size:8.5px;color:var(--ink4);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px\">'+t.category+'<\/div><div style=\"font-weight:700;font-size:13.5px;color:var(--ink)\">'+t.tool+'<\/div><\/div><span style=\"font-weight:600;font-size:11.5px;color:var(--gold)\">'+t.cost+'<\/span><\/div><p class=\"body\" style=\"font-size:12px;margin-top:5px\">'+t.why+'<\/p><\/div>';});\n    h+='<div class=\"lbl\" style=\"margin-top:18px;margin-bottom:9px\">Build Phases<\/div>';\n    (res.phases||[]).forEach(function(p){h+='<div class=\"inset\" style=\"margin-bottom:8px\"><div style=\"font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:9px\">'+p.title+'<\/div>'+(p.steps||[]).map(function(s,i){return'<div style=\"display:flex;gap:8px;margin-bottom:6px\"><div style=\"width:18px;height:18px;border-radius:5px;background:var(--s2);display:grid;place-items:center;flex-shrink:0;font-size:9.5px;font-weight:700;color:var(--ink4)\">'+(i+1)+'<\/div><span class=\"body\" style=\"font-size:12px\">'+s+'<\/span><\/div>';}).join('')+'<\/div>';});\n    h+='<div class=\"lbl\" style=\"margin-top:18px;margin-bottom:9px\">Launch Checklist<\/div><div class=\"inset\" style=\"margin-bottom:12px\">'+(res.checklist||[]).map(function(c){return'<div style=\"display:flex;gap:8px;margin-bottom:6px\"><div style=\"width:15px;height:15px;border-radius:4px;border:1.5px solid var(--s3);flex-shrink:0;margin-top:1px\"><\/div><span class=\"body\" style=\"font-size:12px\">'+c+'<\/span><\/div>';}).join('')+'<\/div>';\n    if(res.warnings&&res.warnings.length){h+='<div class=\"lbl\" style=\"margin-top:14px;margin-bottom:8px\">Warnings<\/div><div class=\"inset-gold\">'+(res.warnings||[]).map(function(w){return'<div style=\"display:flex;gap:7px;margin-bottom:6px\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0;margin-top:1px\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg><span class=\"body\" style=\"font-size:12px\">'+w+'<\/span><\/div>';}).join('')+'<\/div>';}\n    h+='<\/div>';\n    out.innerHTML=h;\n    var cb=document.getElementById('btn-copy-deploy');if(cb)cb.disabled=false;sessionStorage.setItem('os_done_b5','1');\n    mark('b5');\n  }catch(e){out.innerHTML='<div style=\"padding:22px\"><div class=\"inset\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:12.5px\">Error: '+e.message+'<\/p><\/div><\/div>';}\n  btn.disabled=false;btn.innerHTML='<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Generate Deployment Manual';\n}\nfunction copyDeploy(){\n  if(!S.deployRaw)return;\n  try{var j=JSON.parse(S.deployRaw),lines=['=== DEPLOYMENT MANUAL: '+j.productName+' ===','Cost: '+j.monthlyCost,''];(j.techStack||[]).forEach(function(t){lines.push(t.category+': '+t.tool+' ('+t.cost+')\\n  '+t.why,'');});(j.phases||[]).forEach(function(p){lines.push('',p.title);(p.steps||[]).forEach(function(s,i){lines.push('  '+(i+1)+'. '+s)});});lines.push('','--- LAUNCH CHECKLIST ---');(j.checklist||[]).forEach(function(c){lines.push('[ ] '+c)});navigator.clipboard.writeText(lines.join('\\n')).then(function(){toast('Manual copied.')});}catch(e){toast('Copy failed.');}\n}\n\n\/* \u2550\u2550 MONETIZE \u2550\u2550 *\/\nvar PRICING_MODELS=['Subscription','One-time','Usage-based','Freemium + Paid','Retainer'];\nfunction setupM1(){\n  if(S.blueprint){\n    var n=S.blueprint.productName||S.name;\n    var nm=document.getElementById('m1-name');if(nm)nm.textContent=n;\n    var tp=document.getElementById('m1-type');if(tp)tp.textContent=S.typeName;\n    var ic=S.blueprint.icp;if(ic){var cu=document.getElementById('m-customer');if(cu&&!cu.dataset.edited)cu.value=ic;}\n  }\n  var pb=document.getElementById('m-pricing-btns');\n  if(pb&&!pb.dataset.built){pb.dataset.built='1';PRICING_MODELS.forEach(function(m){var b=document.createElement('button');b.className='chip'+(m===S.pricingModel?' on':'');b.textContent=m;b.onclick=function(){S.pricingModel=m;pb.querySelectorAll('.chip').forEach(function(x){x.classList.remove('on')});b.classList.add('on');var mm=document.getElementById('m1-model');if(mm)mm.textContent=m;};pb.appendChild(b);});}\n  var ps=document.getElementById('m-price-slider');\n  if(ps){ps.oninput=function(){var v=this.value;['m-price-disp','m1-price','rev-pr'].forEach(function(id){var e=document.getElementById(id);if(e)e.textContent=v;});};}\n  var cu=document.getElementById('m-customer');\n  if(cu){cu.oninput=function(){this.dataset.edited='1';var d=document.getElementById('m1-target');if(d)d.textContent=this.value;};}\n  mark('m1');sessionStorage.setItem('os_done_m1','1');\n}\nfunction getCtx(){\n  return{name:S.name||'Unnamed',type:S.typeName,industry:(document.getElementById('m-industry')||{}).value||'General',problem:(document.getElementById('m-problem')||{}).value||'',customer:(document.getElementById('m-customer')||{}).value||'',diff:(document.getElementById('m-diff')||{}).value||'',price:(document.getElementById('m-price-slider')||{}).value||97,model:S.pricingModel};\n}\nasync function genOffer(){\n  if(S.monetizeUses>=S.MAX+2){showLimit();return}\n  var ctx=getCtx();var btn=document.getElementById('btn-gen-offer'),out=document.getElementById('m2-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin\"><\/span> Generating&hellip;';out.innerHTML=skelHTML();\n  var bpCtx=S.blueprint?(S.blueprint.elevator||''):'';\n  var prompt='Expert AI product marketing copywriter. Generate a complete sales package.\\n\\n- Product: '+ctx.name+' ('+ctx.type+')\\n- Industry: '+ctx.industry+'\\n- Problem: '+ctx.problem+'\\n- Price: $'+ctx.price+'\/mo ('+ctx.model+')\\n- Customer: '+ctx.customer+'\\n- Differentiator: '+ctx.diff+'\\n'+(bpCtx?'- Blueprint context: '+bpCtx:'')+'\\n\\nReturn ONLY valid JSON, no markdown:\\n{\"productName\":\"...\",\"tagline\":\"...\",\"heroHeadline\":\"...\",\"subHeadline\":\"...\",\"bullets\":[\"...\",\"...\",\"...\",\"...\",\"...\"],\"socialProof\":\"one credibility line\",\"cta\":\"CTA button text\",\"urgency\":\"urgency or scarcity line\",\"tiers\":[{\"name\":\"Starter\",\"price\":\"$X\/mo\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\"]},{\"name\":\"Growth\",\"price\":\"$X\/mo\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\"],\"pop\":true},{\"name\":\"Enterprise\",\"price\":\"$X\/mo\",\"for\":\"...\",\"features\":[\"f1\",\"f2\",\"f3\",\"f4\",\"f5\"]}]}';\n  try{\n    var r=await apiFetch(prompt,1600);S.offerData=r;S.monetizeUses++;localStorage.setItem('os_m',S.monetizeUses);mark('m2');sessionStorage.setItem('os_done_m2','1');\n    var bg3=['var(--s2)','var(--gold)','var(--ink)'],fg3=['var(--ink)','var(--side)','var(--white)'],sub3=['var(--ink3)','rgba(22,21,15,.6)','rgba(255,255,255,.45)'];\n    out.innerHTML='<div style=\"font-family:Fraunces,serif;font-weight:800;font-size:22px;color:var(--ink);margin-bottom:3px\">'+r.productName+'<\/div><p class=\"body\" style=\"font-style:italic;color:var(--gold);margin-bottom:16px\">\"'+r.tagline+'\"<\/p><div class=\"inset\" style=\"margin-bottom:12px\"><div style=\"font-family:Fraunces,serif;font-weight:700;font-size:17px;color:var(--ink);margin-bottom:5px\">'+r.heroHeadline+'<\/div><p class=\"body\" style=\"margin-bottom:13px\">'+r.subHeadline+'<\/p><ul style=\"list-style:none\">'+(r.bullets||[]).map(function(b){return'<li style=\"display:flex;gap:7px;margin-bottom:6px;font-size:12.5px;color:var(--ink2)\"><svg width=\"11\" height=\"11\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--teal)\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0;margin-top:2px\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>'+b+'<\/li>';}).join('')+'<\/ul><\/div><div class=\"inset-gold\" style=\"margin-bottom:11px\"><p class=\"body\" style=\"font-size:12px\">'+r.socialProof+'<\/p><\/div><div style=\"display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px\"><div style=\"background:var(--ink);color:var(--white);font-weight:700;font-size:12.5px;padding:9px 18px;border-radius:8px\">'+r.cta+'<\/div><div style=\"background:var(--s2);border:1px solid var(--s3);font-size:11.5px;color:var(--ink3);padding:9px 13px;border-radius:8px\">'+r.urgency+'<\/div><\/div><div class=\"lbl\" style=\"margin-bottom:8px\">Pricing Tiers<\/div><div class=\"tier-grid\">'+(r.tiers||[]).map(function(t,i){return'<div class=\"tier-card\" style=\"background:'+bg3[i]+'\">'+(t.pop?'<div style=\"font-size:8px;font-weight:700;color:var(--gold);font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px\">Recommended<\/div>':'')+'<div style=\"font-size:10.5px;font-weight:700;color:'+sub3[i]+';margin-bottom:3px\">'+t.name+'<\/div><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:20px;color:'+fg3[i]+';margin-bottom:3px\">'+t.price+'<\/div><div style=\"font-size:10.5px;color:'+sub3[i]+';margin-bottom:9px\">'+t.for+'<\/div><ul style=\"list-style:none\">'+(t.features||[]).map(function(f){return'<li style=\"font-size:11px;color:'+fg3[i]+';opacity:.8;padding:2px 0 2px 10px;position:relative\"><span style=\"position:absolute;left:0;top:7px;width:3px;height:3px;background:var(--gold);border-radius:50%;display:block\"><\/span>'+f+'<\/li>';}).join('')+'<\/ul><\/div>';}).join('')+'<\/div>';\n  }catch(e){out.innerHTML='<div class=\"inset\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:12.5px\">Error: '+e.message+'<\/p><\/div>';}\n  btn.disabled=false;btn.innerHTML='<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Regenerate';\n}\nasync function genLP(){\n  var ctx=getCtx();var nm=S.offerData?S.offerData.productName:S.name;\n  var btn=document.getElementById('btn-gen-lp'),out=document.getElementById('m3-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin\"><\/span> Generating&hellip;';out.innerHTML=skelHTML();\n  var prompt='Expert landing page copywriter. Write a complete sales page for:\\n- Product: '+nm+' ('+ctx.type+')\\n- Industry: '+ctx.industry+'\\n- Problem: '+ctx.problem+'\\n- Price: $'+ctx.price+'\/mo\\n- Customer: '+ctx.customer+'\\n- Differentiator: '+ctx.diff+'\\n\\nReturn ONLY valid JSON, no markdown:\\n{\"hero\":{\"headline\":\"...\",\"sub\":\"...\"},\"problem\":{\"title\":\"...\",\"body\":\"...\",\"pains\":[\"...\",\"...\",\"...\"]},\"solution\":{\"title\":\"...\",\"body\":\"...\"},\"features\":[{\"title\":\"...\",\"desc\":\"...\"},{\"title\":\"...\",\"desc\":\"...\"},{\"title\":\"...\",\"desc\":\"...\"},{\"title\":\"...\",\"desc\":\"...\"}],\"proof\":{\"headline\":\"...\",\"testimonials\":[{\"name\":\"...\",\"role\":\"...\",\"quote\":\"...\"},{\"name\":\"...\",\"role\":\"...\",\"quote\":\"...\"}]},\"faq\":[{\"q\":\"...\",\"a\":\"...\"},{\"q\":\"...\",\"a\":\"...\"},{\"q\":\"...\",\"a\":\"...\"},{\"q\":\"...\",\"a\":\"...\"}],\"cta\":{\"headline\":\"...\",\"sub\":\"...\",\"button\":\"...\"}}';\n  try{\n    var r=await apiFetch(prompt,2800);S.lpData=r;mark('m3');sessionStorage.setItem('os_done_m3','1');\n    var h='<div class=\"lbl\" style=\"margin-bottom:7px\">Hero<\/div><div class=\"inset\" style=\"margin-bottom:12px\"><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:19px;color:var(--ink);margin-bottom:4px\">'+r.hero.headline+'<\/div><p class=\"body\">'+r.hero.sub+'<\/p><\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:7px\">Problem Section<\/div><div class=\"inset\" style=\"margin-bottom:12px\"><div style=\"font-weight:700;font-size:13.5px;color:var(--ink);margin-bottom:5px\">'+r.problem.title+'<\/div><p class=\"body\" style=\"margin-bottom:8px\">'+r.problem.body+'<\/p>'+(r.problem.pains||[]).map(function(p){return'<div style=\"display:flex;gap:6px;margin-bottom:4px;font-size:12px;color:var(--rust)\"><svg width=\"9\" height=\"9\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0;margin-top:2px\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>'+p+'<\/div>';}).join('')+'<\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:7px\">Solution<\/div><div class=\"inset\" style=\"margin-bottom:12px\"><div style=\"font-weight:700;font-size:13.5px;color:var(--ink);margin-bottom:5px\">'+r.solution.title+'<\/div><p class=\"body\">'+r.solution.body+'<\/p><\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:7px\">Features<\/div><div class=\"g2\" style=\"gap:9px;margin-bottom:12px\">'+(r.features||[]).map(function(f){return'<div class=\"inset\"><div style=\"font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:3px\">'+f.title+'<\/div><p class=\"body\" style=\"font-size:12px\">'+f.desc+'<\/p><\/div>';}).join('')+'<\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:7px\">Social Proof<\/div><div class=\"inset\" style=\"margin-bottom:12px\"><div style=\"font-family:Fraunces,serif;font-weight:700;font-size:14px;color:var(--ink);margin-bottom:9px\">'+r.proof.headline+'<\/div>'+(r.proof.testimonials||[]).map(function(t){return'<div style=\"background:var(--white);border:1px solid var(--s3);border-radius:8px;padding:11px;margin-bottom:7px\"><p class=\"body\" style=\"font-style:italic;font-size:12px;margin-bottom:5px\">\"'+t.quote+'\"<\/p><div style=\"font-size:11px;font-weight:700;color:var(--ink)\">'+t.name+'<\/div><div style=\"font-size:10.5px;color:var(--ink4)\">'+t.role+'<\/div><\/div>';}).join('')+'<\/div>';\n    h+='<div class=\"lbl\" style=\"margin-bottom:7px\">FAQ<\/div>'+(r.faq||[]).map(function(f){return'<div class=\"inset\" style=\"margin-bottom:7px\"><div style=\"font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:4px\">'+f.q+'<\/div><p class=\"body\" style=\"font-size:12px\">'+f.a+'<\/p><\/div>';}).join('');\n    h+='<div class=\"lbl\" style=\"margin-top:12px;margin-bottom:7px\">CTA Section<\/div><div class=\"inset-gold\"><div style=\"font-family:Fraunces,serif;font-weight:700;font-size:15px;color:var(--ink);margin-bottom:4px\">'+r.cta.headline+'<\/div><p class=\"body\" style=\"font-size:12px;margin-bottom:10px\">'+r.cta.sub+'<\/p><div style=\"background:var(--ink);color:var(--white);font-weight:700;font-size:12.5px;padding:9px 18px;border-radius:8px;display:inline-block\">'+r.cta.button+'<\/div><\/div>';\n    out.innerHTML=h;\n  }catch(e){out.innerHTML='<div class=\"inset\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:12.5px\">Error: '+e.message+'<\/p><\/div>';}\n  btn.disabled=false;btn.innerHTML='<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Regenerate';\n}\nasync function genOutreach(){\n  var ctx=getCtx();var nm=S.offerData?S.offerData.productName:S.name;\n  var btn=document.getElementById('btn-gen-out'),out=document.getElementById('m4-out');\n  btn.disabled=true;btn.innerHTML='<span class=\"spin\"><\/span> Writing emails&hellip;';\n  out.innerHTML='<div class=\"card\"><div class=\"empty\"><span class=\"spin-d\"><\/span><span>Writing 3 emails&hellip;<\/span><\/div><\/div>';\n  var prompt='Expert B2B cold outreach copywriter. Write a 3-email sequence for:\\n- Product: '+nm+' ('+ctx.type+')\\n- Industry: '+ctx.industry+'\\n- Problem: '+ctx.problem+'\\n- Price: $'+ctx.price+'\/mo\\n- Customer: '+ctx.customer+'\\n- Differentiator: '+ctx.diff+'\\n\\nReturn ONLY valid JSON, no markdown:\\n{\"emails\":[{\"label\":\"Email 1 \u2014 Introduction\",\"subject\":\"...\",\"preview\":\"...\",\"body\":\"150-word personalized intro with [FIRST NAME] and [COMPANY]\"},{\"label\":\"Email 2 \u2014 Value Follow-up\",\"subject\":\"...\",\"preview\":\"...\",\"body\":\"100-word follow-up showing ROI or specific result\"},{\"label\":\"Email 3 \u2014 Break-up\",\"subject\":\"...\",\"preview\":\"...\",\"body\":\"60-word break-up creating final urgency\"}]}';\n  try{\n    var r=await apiFetch(prompt,1800);S.outreachData=r;mark('m4');sessionStorage.setItem('os_done_m4','1');out.innerHTML='';\n    (r.emails||[]).forEach(function(e,i){var card=document.createElement('div');card.className='card';card.style.cssText='margin-bottom:11px;animation:up .3s '+i*.09+'s both';var uid='e_'+Math.random().toString(36).slice(2,6);card.innerHTML='<div class=\"between\" style=\"margin-bottom:9px\"><span class=\"badge bi\">'+e.label+'<\/span><button class=\"btn btn-ghost btn-sm\" onclick=\"cpText(\\''+uid+'\\')\">Copy<\/button><\/div><div style=\"font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:2px\">Subject: '+e.subject+'<\/div><div style=\"font-size:11px;color:var(--ink4);margin-bottom:9px;font-style:italic\">'+e.preview+'<\/div><div class=\"rsec\"><pre id=\"'+uid+'\" style=\"font-family:DM Sans,sans-serif;font-size:12.5px;color:var(--ink2);white-space:pre-wrap;line-height:1.68\">'+e.body+'<\/pre><\/div>';out.appendChild(card);});\n  }catch(e){out.innerHTML='<div class=\"card\"><div class=\"inset\" style=\"border-color:#f5c6c6;background:#fdf0f0\"><p style=\"color:var(--rust);font-weight:600;font-size:12.5px\">Error: '+e.message+'<\/p><\/div><\/div>';}\n  btn.disabled=false;btn.innerHTML='<svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg> Regenerate Sequence';\n}\nfunction calcRev(){\n  var pr=parseInt(document.getElementById('m-price-slider').value)||97;\n  var c3=parseInt(document.getElementById('rc3').value)||8;\n  var c6=parseInt(document.getElementById('rc6').value)||30;\n  var c12=parseInt(document.getElementById('rc12').value)||80;\n  var ch=parseInt(document.getElementById('rch').value)||5;\n  document.getElementById('rev-pr').textContent=pr;\n  var m3=c3*pr,m6=c6*pr,m12=c12*pr,arr=m12*12,net=Math.round(c12*(1-ch\/100)),nmrr=net*pr;\n  var el=document.getElementById('rev-out');if(!el)return;\n  el.innerHTML='<div class=\"g3\" style=\"gap:9px;margin-bottom:11px\">'+[['Month 3','$'+m3.toLocaleString(),c3+' customers','var(--ink)'],['Month 6','$'+m6.toLocaleString(),c6+' customers','var(--gold)'],['Month 12','$'+m12.toLocaleString(),c12+' customers','var(--teal)']].map(function(s){return'<div class=\"inset\" style=\"text-align:center\"><div class=\"lbl\" style=\"margin-bottom:4px\">'+s[0]+'<\/div><div style=\"font-family:Fraunces,serif;font-weight:800;font-size:20px;color:'+s[3]+'\">'+s[1]+'<\/div><div class=\"body\" style=\"font-size:11px;margin-top:2px\">'+s[2]+'<\/div><\/div>';}).join('')+'<\/div><div class=\"inset\"><div class=\"between\"><span class=\"body\" style=\"font-size:12.5px\">Projected ARR<\/span><span style=\"font-family:Fraunces,serif;font-weight:800;font-size:17px;color:var(--ink)\">$'+arr.toLocaleString()+'<\/span><\/div><div class=\"between\" style=\"margin-top:7px\"><span class=\"body\" style=\"font-size:12.5px\">Net MRR after '+ch+'% churn<\/span><span style=\"font-family:Fraunces,serif;font-weight:700;font-size:14px;color:var(--gold)\">$'+nmrr.toLocaleString()+'\/mo<\/span><\/div><div class=\"between\" style=\"margin-top:7px\"><span class=\"body\" style=\"font-size:12.5px\">Net customers (Mo 12)<\/span><span style=\"font-weight:700;font-size:13px;color:var(--ink)\">'+net+'<\/span><\/div><\/div>';\n}\nfunction buildGTM(){\n  var el=document.getElementById('gtm-list');if(!el)return;el.innerHTML='';\n  [{t:'Select product type & mode',d:!!(S.type&&S.modeChip)||!!sessionStorage.getItem('os_done_b1')},{t:'Generate product blueprint',d:!!S.blueprint||!!sessionStorage.getItem('os_done_b2')},{t:'Configure capabilities',d:Object.values(S.caps).some(Boolean)||!!sessionStorage.getItem('os_done_b3')},{t:'Define offer & pricing',d:!!S.offerData||!!sessionStorage.getItem('os_done_m1')},{t:'Generate sales package',d:!!S.offerData||!!sessionStorage.getItem('os_done_m2')},{t:'Generate landing page copy',d:!!S.lpData||!!sessionStorage.getItem('os_done_m3')},{t:'Generate outreach sequence',d:!!S.outreachData||!!sessionStorage.getItem('os_done_m4')},{t:'Set up Stripe payment link',d:false},{t:'Publish landing page',d:false},{t:'Send first 50 outreach emails',d:false}].forEach(function(item){\n    el.innerHTML+='<div style=\"display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--gold-b)\"><div style=\"width:16px;height:16px;border-radius:5px;border:1.5px solid '+(item.d?'var(--teal)':'var(--gold-b)')+';background:'+(item.d?'var(--teal-s)':'transparent')+';display:grid;place-items:center;flex-shrink:0\">'+(item.d?'<svg width=\"9\" height=\"9\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--teal)\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>':'')+'<\/div><span style=\"font-size:12px;color:'+(item.d?'var(--ink)':'var(--ink3)')+'\">'+item.t+'<\/span><\/div>';\n  });\n}\nfunction exportAll(){\n  var p=[],ctx=getCtx();p.push('=== ORTIVE STUDIO \u2014 FULL SESSION ===','Product: '+S.name,'Type: '+S.typeName+' \/ Mode: '+S.modeChip,'Date: '+new Date().toLocaleDateString(),'');\n  if(S.blueprint){var b=S.blueprint;p.push('--- BLUEPRINT ---','Name: '+b.productName,'Tagline: '+b.tagline,'Elevator: '+b.elevator,'Problem: '+b.coreProblem,'ICP: '+b.icp,'Revenue: '+b.revenueRange,'');if(b.systemPrompt)p.push('System Prompt:\\n'+b.systemPrompt,'');}\n  p.push('--- OFFER ---','Industry: '+ctx.industry,'Problem: '+ctx.problem,'Customer: '+ctx.customer,'Price: $'+ctx.price+'\/mo ('+ctx.model+')','Differentiator: '+ctx.diff,'');\n  if(S.offerData){p.push('--- SALES PACKAGE ---','Product: '+S.offerData.productName,'Tagline: '+S.offerData.tagline,'Hero: '+S.offerData.heroHeadline);(S.offerData.bullets||[]).forEach(function(b){p.push('\u2022 '+b)});p.push('');}\n  if(S.outreachData){p.push('--- OUTREACH ---');(S.outreachData.emails||[]).forEach(function(e){p.push('',e.label,'Subject: '+e.subject,e.body)});}\n  navigator.clipboard.writeText(p.join('\\n')).then(function(){toast('Full session copied.')}).catch(function(){toast('Copy failed.')});\n}\n\n\/* \u2550\u2550 HELPERS \u2550\u2550 *\/\nasync function apiFetch(prompt,maxT){\n  var r=await fetch('https:\/\/api.anthropic.com\/v1\/messages',{method:'POST',headers:{'Content-Type':'application\/json','x-api-key':KEY,'anthropic-version':'2023-06-01','anthropic-dangerous-direct-browser-access':'true'},body:JSON.stringify({model:MDL,max_tokens:maxT,messages:[{role:'user',content:prompt}]})});\n  var d=await r.json();if(!r.ok)throw new Error(d.error?d.error.message:'API error '+r.status);\n  var t=(d.content||[]).map(function(b){return b.text||''}).join('').replace(\/```json|```\/g,'').trim();\n  return JSON.parse(t);\n}\nfunction skelHTML(tall){var h='<div style=\"padding:18px\">';for(var i=0;i<(tall?8:5);i++)h+='<div class=\"skel\" style=\"height:'+(i===0?16:12)+'px;width:'+(65+Math.random()*28|0)+'%;margin-bottom:'+(i===0?12:7)+'px\"><\/div>';return h+'<\/div>';}\nfunction rsec(label,body){return'<div class=\"rsec\"><div class=\"rsec-lbl\">'+label+'<\/div>'+body+'<\/div>';}\nfunction listHtml(items,label){if(!Array.isArray(items)||!items.length)return'';var h=label?'<div class=\"rsec-lbl\">'+label+'<\/div>':'';h+='<ul>';items.forEach(function(i){h+='<li>'+i+'<\/li>';});h+='<\/ul>';return h;}\nfunction codeBlock(label,text){var id='c_'+Math.random().toString(36).slice(2,7);return'<div class=\"code-wrap\"><div class=\"code-top\"><span class=\"code-lbl\">'+label+'<\/span><button class=\"copy-btn\" onclick=\"cpText(\\''+id+'\\')\">Copy<\/button><\/div><pre class=\"code-pre\" id=\"'+id+'\">'+text+'<\/pre><\/div>';}\nfunction cpText(id){var el=document.getElementById(id);if(!el)return;navigator.clipboard.writeText(el.textContent).then(function(){toast('Copied.')});}\nfunction mark(step){var el=document.getElementById('nn-'+step);if(el){el.innerHTML='<svg width=\"8\" height=\"8\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>';el.parentElement.classList.add('done');}}\nfunction toast(msg){var t=document.getElementById('toast');if(!t)return;t.textContent=msg;t.style.transform='translateY(0)';t.style.opacity='1';setTimeout(function(){t.style.transform='translateY(56px)';t.style.opacity='0';},2500);}\n\n\/* \u2500\u2500 LIMIT POPUP \u2500\u2500 *\/\nfunction showLimit(){\n  var ov=document.createElement('div');ov.className='overlay';ov.id='lp-ov';\n  ov.innerHTML='<div class=\"popup\"><div class=\"popup-icon\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--gold)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg><\/div><div class=\"popup-title\">You\\'ve explored Ortive Studio<\/div><div class=\"popup-sub\">The full studio with unlimited sessions, saved projects, and team export is coming. Leave your email for early access.<\/div><div class=\"popup-form\"><input type=\"email\" id=\"lp-email\" class=\"popup-input\" placeholder=\"you@email.com\"\/><button class=\"btn btn-dark\" onclick=\"submitWait()\">Notify Me<\/button><\/div><div class=\"popup-note\">One email. When the full version launches.<\/div><button style=\"margin-top:12px;background:none;border:none;cursor:pointer;font-size:11.5px;color:var(--ink4)\" onclick=\"document.getElementById(\\'lp-ov\\').remove()\">Close<\/button><\/div>';\n  document.body.appendChild(ov);ov.onclick=function(e){if(e.target===ov)ov.remove();};\n  setTimeout(function(){var i=document.getElementById('lp-email');if(i)i.focus();},100);\n}\nfunction submitWait(){\n  var em=(document.getElementById('lp-email')||{}).value;if(!em||!em.includes('@'))return;\n  fetch(SHEETS,{method:'POST',mode:'no-cors',headers:{'Content-Type':'application\/json'},body:JSON.stringify({email:em,source:'ortive-studio-en',ts:new Date().toISOString()})}).finally(function(){var p=document.querySelector('.popup');if(p)p.innerHTML='<div class=\"popup-icon\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--teal)\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div><div class=\"popup-title\">You\\'re on the list<\/div><p style=\"color:var(--ink3);font-size:13px;line-height:1.65;margin-top:8px;margin-bottom:18px\">We\\'ll notify you when the full Ortive Studio launches.<\/p><button class=\"btn btn-dark\" onclick=\"document.getElementById(\\'lp-ov\\').remove()\" style=\"width:100%;padding:11px\">Close<\/button>';});\n}\n\n\/* \u2500\u2500 INIT \u2500\u2500 *\/\n(function init(){\n  buildTypeGrid();calcRev();buildGTM();\n  var ps=document.getElementById('m-price-slider');\n  if(ps)ps.oninput=function(){var v=this.value;['m-price-disp','m1-price','rev-pr'].forEach(function(id){var e=document.getElementById(id);if(e)e.textContent=v;});};\n})();\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.<\/p>\n","protected":false},"author":1,"featured_media":11679,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_glsr_average":0,"_glsr_ranking":0,"_glsr_reviews":0,"footnotes":""},"class_list":["post-15681","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ortive \u2014 AI Product Studio | Build &amp; Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant<\/title>\n<meta name=\"description\" content=\"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ortive \u2014 AI Product Studio | Build &amp; Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant\" \/>\n<meta property=\"og:description\" content=\"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/\" \/>\n<meta property=\"og:site_name\" content=\"Ange Ingabire |E-commerce &amp; AI Business Consultant\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T11:19:30+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/angeingabire.com\/wp-content\/uploads\/2024\/10\/inner-child.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/\",\"url\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/\",\"name\":\"Ortive \u2014 AI Product Studio | Build & Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/angeingabire.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/inner-child.jpg\",\"datePublished\":\"2026-03-25T13:09:54+00:00\",\"dateModified\":\"2026-04-13T11:19:30+00:00\",\"description\":\"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/#primaryimage\",\"url\":\"https:\\\/\\\/angeingabire.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/inner-child.jpg\",\"contentUrl\":\"https:\\\/\\\/angeingabire.com\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/inner-child.jpg\",\"width\":1000,\"height\":1500,\"caption\":\"Ortive \u2014 AI Product Studio | Build & Monetize AI Products\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/index.php\\\/ortive-ai-product-studio-build-monetize-ai-products\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/angeingabire.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ortive \u2014 AI Product Studio | Build &#038; Monetize AI Products\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#website\",\"url\":\"https:\\\/\\\/angeingabire.com\\\/\",\"name\":\"Ange Ingabire |E-commerce &amp; AI Business Consultant\",\"description\":\"E-commerce &amp; AI Business Solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/angeingabire.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#organization\",\"name\":\"Ange Ingabire\",\"url\":\"https:\\\/\\\/angeingabire.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/angeingabire.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/7.png\",\"contentUrl\":\"https:\\\/\\\/angeingabire.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/7.png\",\"width\":1080,\"height\":1080,\"caption\":\"Ange Ingabire\"},\"image\":{\"@id\":\"https:\\\/\\\/angeingabire.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.pinterest.com\\\/ange_ingabire\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ange-ingabire-327893236\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ortive \u2014 AI Product Studio | Build & Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant","description":"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/","og_locale":"en_GB","og_type":"article","og_title":"Ortive \u2014 AI Product Studio | Build & Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant","og_description":"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.","og_url":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/","og_site_name":"Ange Ingabire |E-commerce &amp; AI Business Consultant","article_modified_time":"2026-04-13T11:19:30+00:00","og_image":[{"width":1000,"height":1500,"url":"http:\/\/angeingabire.com\/wp-content\/uploads\/2024\/10\/inner-child.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/","url":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/","name":"Ortive \u2014 AI Product Studio | Build & Monetize AI Products - Ange Ingabire |E-commerce &amp; AI Business Consultant","isPartOf":{"@id":"https:\/\/angeingabire.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/#primaryimage"},"image":{"@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/#primaryimage"},"thumbnailUrl":"https:\/\/angeingabire.com\/wp-content\/uploads\/2024\/10\/inner-child.jpg","datePublished":"2026-03-25T13:09:54+00:00","dateModified":"2026-04-13T11:19:30+00:00","description":"Design, blueprint, and monetize AI products \u2014 agents, SaaS apps, APIs, chatbots \u2014 with a guided AI studio. Define your product, generate a deployment manual with real tech stack and costs, then create your full sales package, landing page copy, and outreach sequence. One tool, idea to revenue.","breadcrumb":{"@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/#primaryimage","url":"https:\/\/angeingabire.com\/wp-content\/uploads\/2024\/10\/inner-child.jpg","contentUrl":"https:\/\/angeingabire.com\/wp-content\/uploads\/2024\/10\/inner-child.jpg","width":1000,"height":1500,"caption":"Ortive \u2014 AI Product Studio | Build & Monetize AI Products"},{"@type":"BreadcrumbList","@id":"https:\/\/angeingabire.com\/index.php\/ortive-ai-product-studio-build-monetize-ai-products\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/angeingabire.com\/"},{"@type":"ListItem","position":2,"name":"Ortive \u2014 AI Product Studio | Build &#038; Monetize AI Products"}]},{"@type":"WebSite","@id":"https:\/\/angeingabire.com\/#website","url":"https:\/\/angeingabire.com\/","name":"Ange Ingabire |E-commerce &amp; AI Business Consultant","description":"E-commerce &amp; AI Business Solutions","publisher":{"@id":"https:\/\/angeingabire.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/angeingabire.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/angeingabire.com\/#organization","name":"Ange Ingabire","url":"https:\/\/angeingabire.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/angeingabire.com\/#\/schema\/logo\/image\/","url":"https:\/\/angeingabire.com\/wp-content\/uploads\/2023\/06\/7.png","contentUrl":"https:\/\/angeingabire.com\/wp-content\/uploads\/2023\/06\/7.png","width":1080,"height":1080,"caption":"Ange Ingabire"},"image":{"@id":"https:\/\/angeingabire.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.pinterest.com\/ange_ingabire\/","https:\/\/www.linkedin.com\/in\/ange-ingabire-327893236\/"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/pages\/15681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/comments?post=15681"}],"version-history":[{"count":31,"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/pages\/15681\/revisions"}],"predecessor-version":[{"id":15865,"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/pages\/15681\/revisions\/15865"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/media\/11679"}],"wp:attachment":[{"href":"https:\/\/angeingabire.com\/index.php\/wp-json\/wp\/v2\/media?parent=15681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}