{"product_id":"funnel-x-ray","title":"Funnel X-Ray App","description":"\u003c!-- E-COM FUNNEL X-RAY - BULLETPROOF SAAS OVERRIDE --\u003e\n\u003cstyle\u003e\n        \/* \n         * SCOPED DESIGN SYSTEM \u0026 VARIABLES\n         * Centered Full-Bleed Breakout to override Shopify container constraints.\n         *\/\n        #bdw-wrapper {\n            width: 100vw !important;\n            max-width: 100vw !important;\n            position: relative !important;\n            left: 50% !important;\n            transform: translateX(-50%) !important;\n            flex-shrink: 0 !important;\n            overflow-x: hidden !important;\n            \n            \/* SAAS THEME VARIABLES *\/\n            --bg-dark: #0d0d12;\n            --bg-card: #15151e;\n            --bg-app: #08080c;\n            --text-main: #a1a1aa;\n            --text-headline: #ffffff;\n            --primary-blue: #0070F3;\n            --primary-blue-hover: #005BB5;\n            --alert-red: #ff3366;\n            --neon-green: #00C853;\n            --gray-border: #27272a;\n            \n            --font-main: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n            \n            --radius-sm: 6px;\n            --radius-md: 10px;\n            --radius-lg: 14px;\n            \n            --shadow-saas: 0 10px 30px rgba(0,0,0,0.5);\n            --shadow-app: inset 0 2px 20px rgba(0,0,0,0.5), 0 10px 40px rgba(0,0,0,0.8);\n            --transition: all 0.2s ease;\n            \n            font-family: var(--font-main) !important;\n            color: var(--text-main) !important;\n            background-color: var(--bg-dark) !important;\n            line-height: 1.5 !important;\n            -webkit-font-smoothing: antialiased !important;\n            display: block !important;\n            text-align: left !important;\n            padding-bottom: 0 !important;\n            margin-top: 0 !important;\n            margin-bottom: 0 !important;\n            box-sizing: border-box !important;\n        }\n\n        \/* SCOPED RESET \u0026 FONTS *\/\n        #bdw-wrapper *, #bdw-wrapper *::before, #bdw-wrapper *::after {\n            box-sizing: border-box !important; margin: 0; padding: 0;\n        }\n        #bdw-wrapper img, #bdw-wrapper video {\n            max-width: 100% !important; height: auto !important; display: block !important; margin: 0 auto !important;\n        }\n        #bdw-wrapper input, #bdw-wrapper button, #bdw-wrapper a, #bdw-wrapper label {\n            font-family: var(--font-main) !important;\n        }\n\n        \/* COMPACT TYPOGRAPHY *\/\n        #bdw-wrapper h1, #bdw-wrapper h2, #bdw-wrapper h3, #bdw-wrapper h4 {\n            line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: -0.02em !important;\n            color: var(--text-headline) !important; text-transform: none !important; margin-top: 0 !important;\n        }\n        #bdw-wrapper h1 { font-size: clamp(26px, 3.8vw, 42px) !important; margin-bottom: 12px !important; text-align: center !important; }\n        #bdw-wrapper h2 { font-size: clamp(22px, 3vw, 32px) !important; margin-bottom: 12px !important; text-align: center !important; }\n        #bdw-wrapper h3 { font-size: clamp(16px, 2vw, 20px) !important; margin-bottom: 8px !important; }\n        #bdw-wrapper p { font-size: clamp(14px, 1.3vw, 16px) !important; margin-bottom: 14px !important; color: var(--text-main) !important; }\n\n        .bdw-text-light { color: var(--text-headline) !important; }\n        .bdw-text-center { text-align: center !important; }\n        .bdw-text-sm { font-size: clamp(12px, 1vw, 14px) !important; }\n        .bdw-font-bold { font-weight: 700 !important; }\n\n        \/* LAYOUT \u0026 SPACING *\/\n        .bdw-container {\n            width: 100% !important; max-width: 1140px !important; margin: 0 auto !important;\n            padding-left: 20px !important; padding-right: 20px !important; display: block !important;\n            box-sizing: border-box !important;\n        }\n        @media (min-width: 768px) { .bdw-container { padding-left: 40px !important; padding-right: 40px !important; } }\n        \n        .bdw-section { padding: 64px 0 !important; width: 100% !important; display: block !important; border-bottom: 1px solid var(--gray-border); box-sizing: border-box !important; }\n        @media (min-width: 1024px) { .bdw-section { padding: 80px 0 !important; } }\n\n        \/* COMPACT HERO SPACING *\/\n        .bdw-hero { padding: 16px 0 24px !important; text-align: center !important; }\n\n        \/* GRID SYSTEM *\/\n        .bdw-grid { display: grid !important; gap: 24px !important; width: 100% !important; box-sizing: border-box !important; }\n        .bdw-grid-3 { grid-template-columns: 1fr !important; }\n\n        @media (min-width: 768px) {\n            .bdw-grid { gap: 28px !important; }\n            .bdw-grid-3 { grid-template-columns: repeat(2, 1fr) !important; }\n        }\n        @media (min-width: 1024px) {\n            .bdw-grid-3 { grid-template-columns: repeat(3, 1fr) !important; }\n        }\n\n        \/* ANNOUNCEMENT BAR *\/\n        .bdw-announcement {\n            background-color: #050508 !important; color: var(--text-headline) !important; text-align: center !important;\n            padding: 10px 16px !important; font-size: 13px !important; width: 100% !important; border-bottom: 1px solid var(--gray-border);\n            box-sizing: border-box !important;\n        }\n\n        \/* STANDARD BUTTONS *\/\n        .bdw-btn {\n            display: inline-flex !important; align-items: center !important; justify-content: center !important;\n            background-color: var(--primary-blue) !important; color: #fff !important; font-weight: 700 !important;\n            font-size: 14px !important; text-decoration: none !important; padding: 15px 32px !important;\n            border-radius: var(--radius-sm) !important; box-shadow: 0 4px 15px rgba(0, 112, 243, 0.4) !important;\n            border: none !important; cursor: pointer !important; width: 100% !important; min-height: 48px !important;\n            transition: var(--transition) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important;\n            box-sizing: border-box !important; margin: 0 !important;\n            white-space: nowrap !important;\n        }\n        @media (min-width: 768px) { .bdw-btn { width: auto !important; padding: 15px 40px !important; } .bdw-btn-wide { min-width: 300px !important; } }\n        .bdw-btn:hover {\n            background-color: var(--primary-blue-hover) !important; transform: translateY(-2px) !important;\n            box-shadow: 0 10px 25px rgba(0, 112, 243, 0.6) !important;\n        }\n\n        \/* CARDS *\/\n        .bdw-card {\n            background: var(--bg-card) !important; border-radius: var(--radius-md) !important; padding: 32px 24px !important;\n            box-shadow: var(--shadow-saas) !important; transition: var(--transition) !important; border: 1px solid var(--gray-border) !important;\n            display: flex !important; flex-direction: column !important; align-items: flex-start !important; height: 100% !important; width: 100% !important;\n            box-sizing: border-box !important; text-align: left !important;\n        }\n        .bdw-card h3, .bdw-card p { text-align: left !important; }\n        .bdw-card:hover { border-color: rgba(0, 112, 243, 0.4) !important; transform: translateY(-2px); }\n\n        \/* COMPARISON TABLE *\/\n        .bdw-comparison-table { width: 100% !important; border-collapse: collapse !important; margin-top: 20px !important; margin-bottom: 24px !important; table-layout: fixed !important; }\n        .bdw-comparison-table th { padding: 16px 10px !important; font-weight: 800 !important; color: #fff !important; font-size: 13px !important; border-bottom: 1px solid var(--gray-border) !important; text-transform: uppercase !important; }\n        .bdw-comparison-table td { padding: 16px 10px !important; border-bottom: 1px solid var(--gray-border) !important; font-size: 14.5px !important; color: var(--text-main) !important; }\n        \n        \/* Force Layout without fixed to allow mobile wrapping to resolve *\/\n        .bdw-comparison-table th:nth-child(1), .bdw-comparison-table td:nth-child(1) { text-align: left !important; width: 60% !important; }\n        .bdw-comparison-table th:nth-child(2), .bdw-comparison-table td:nth-child(2) { text-align: center !important; width: 20% !important; white-space: nowrap !important; }\n        .bdw-comparison-table th:nth-child(3), .bdw-comparison-table td:nth-child(3) { text-align: center !important; width: 20% !important; white-space: nowrap !important; }\n        \n        .bdw-check { color: #fff !important; font-weight: bold !important; font-size: 16px !important; display: block !important; text-align: center !important; width: 100% !important; }\n        .bdw-dash { color: #555 !important; font-weight: bold !important; font-size: 16px !important; display: block !important; text-align: center !important; width: 100% !important; }\n\n        \/* FOOLPROOF FOOTER CENTERING *\/\n        .bdw-table-footer { width: 100% !important; text-align: center !important; margin-top: 32px !important; }\n        .bdw-table-footer h3 { text-align: center !important; font-size: 18px !important; color: #fff !important; margin-bottom: 16px !important; width: 100% !important; }\n        .bdw-btn-wrapper { display: flex !important; justify-content: center !important; width: 100% !important; }\n\n        \/* =========================================================\n           X-RAY APP WIDGET\n        ========================================================= *\/\n        .xray-widget {\n            --calc-bg-dark: #080c14;\n            --calc-panel-bg: #0d1522;\n            --calc-panel-border: #1a273a;\n            --calc-cyan-primary: #00f0ff;\n            --calc-cyan-glow: rgba(0, 240, 255, 0.15);\n            --calc-red-alert: #ff3366;\n            --calc-red-glow: rgba(255, 51, 102, 0.15);\n            --calc-text-main: #e2e8f0;\n            --calc-text-muted: #64748b;\n            \n            background-color: var(--calc-bg-dark) !important; \n            color: var(--calc-text-main) !important; \n            padding: 24px 20px !important; \n            display: flex !important; \n            justify-content: center !important;\n            border: 1px solid var(--calc-panel-border) !important;\n            border-top: 4px solid var(--primary-blue) !important;\n            border-radius: var(--radius-lg) !important;\n            max-width: 600px !important;\n            width: 100% !important;\n            margin: 16px auto 24px auto !important; \/* TIGHTENED MARGINS *\/\n            box-shadow: var(--shadow-app) !important;\n            text-align: left !important;\n            box-sizing: border-box !important;\n        }\n        .xw-container { width: 100% !important; display: flex !important; flex-direction: column !important; gap: 18px !important; box-sizing: border-box !important; }\n        \n        \/* COMPACT WIDGET HEADER *\/\n        .xw-header { text-align: center !important; border-bottom: 1px solid var(--calc-panel-border) !important; padding-bottom: 10px !important; margin-bottom: 2px !important; }\n        .xw-header h2 { font-size: 18px !important; letter-spacing: 1.5px !important; color: #fff !important; text-transform: uppercase !important; font-weight: 700 !important; margin-bottom: 2px !important; }\n        .xw-header p { color: var(--calc-text-muted) !important; font-size: 11px !important; margin-top: 2px !important; text-transform: uppercase !important; letter-spacing: 1px !important; margin-bottom: 0 !important; }\n        \n        .xw-card { background-color: var(--calc-panel-bg) !important; border: 1px solid var(--calc-panel-border) !important; border-radius: 8px !important; padding: 20px !important; box-shadow: 0 10px 30px rgba(0,0,0,0.5) !important; width: 100% !important; box-sizing: border-box !important; display: block !important; }\n        .xw-section-title { font-size: 13px !important; font-weight: bold !important; text-transform: uppercase !important; color: var(--calc-text-main) !important; text-align: center !important; margin-bottom: 14px !important; letter-spacing: 1px !important; }\n\n        .xw-input-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 14px !important; width: 100% !important; box-sizing: border-box !important; }\n        .xw-input-group { display: flex !important; flex-direction: column !important; text-align: left !important; width: 100% !important; margin: 0 !important; padding: 0 !important;}\n        .xw-label-row { display: flex !important; justify-content: space-between !important; align-items: flex-end !important; margin-bottom: 6px !important; width: 100% !important; }\n        \n        .xray-widget label { font-size: 11px !important; color: var(--calc-text-muted) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; font-weight: 600 !important; margin-bottom: 0 !important; display: block !important; }\n        .xw-btn-assist { font-size: 9px !important; color: var(--primary-blue) !important; cursor: pointer !important; text-transform: uppercase !important; background: transparent !important; border: none !important; font-weight: bold !important; padding: 0 !important; margin: 0 !important;}\n        .xw-btn-assist:hover { text-decoration: underline !important; }\n        \n        .xray-widget input { \n            background: #05080e !important; border: 1px solid var(--calc-panel-border) !important; border-radius: 4px !important; \n            padding: 0 14px !important; height: 44px !important; color: #fff !important; font-size: 15px !important; \n            outline: none !important; width: 100% !important; \n            transition: border-color 0.2s !important; box-sizing: border-box !important; margin: 0 !important;\n            box-shadow: inset 0 2px 4px rgba(0,0,0,0.5) !important;\n        }\n        .xray-widget input:focus { border-color: var(--primary-blue) !important; }\n        \n        #form-error { display: none; background-color: rgba(255, 51, 102, 0.1) !important; border: 1px solid var(--calc-red-alert) !important; color: var(--calc-red-alert) !important; padding: 12px !important; border-radius: 4px !important; margin-top: 18px !important; text-align: center !important; font-size: 13px !important; font-weight: bold !important; line-height: 1.4 !important; width: 100% !important; box-sizing: border-box !important; }\n        \n        \/* UNIFIED PRIMARY BLUE APP BUTTONS *\/\n        .xw-btn-run, .xw-btn-cta { \n            background-color: var(--primary-blue) !important; \n            color: #fff !important; \n            border: none !important; \n            border-radius: var(--radius-sm) !important; \n            padding: 16px 28px !important; \n            font-weight: 700 !important; \n            font-size: 14px !important; \n            text-transform: uppercase !important; \n            letter-spacing: 0.5px !important; \n            cursor: pointer !important; \n            box-shadow: 0 4px 15px rgba(0, 112, 243, 0.4) !important; \n            transition: transform 0.2s, box-shadow 0.2s !important; \n            display: block !important;\n            width: 100% !important;\n            text-align: center !important;\n            text-decoration: none !important;\n            box-sizing: border-box !important;\n            margin: 22px auto 0 auto !important;\n            white-space: nowrap !important;\n        }\n        .xw-btn-run:hover, .xw-btn-cta:hover { \n            background-color: var(--primary-blue-hover) !important; \n            transform: translateY(-2px) !important; \n            box-shadow: 0 10px 25px rgba(0, 112, 243, 0.6) !important; \n        }\n\n        .xw-output-box { display: none; flex-direction: column !important; gap: 20px !important; margin-top: 10px !important; width: 100% !important; box-sizing: border-box !important; }\n        \n        .xw-economics-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 12px !important; width: 100% !important; box-sizing: border-box !important;}\n        .xw-econ-item { background: #060a11 !important; padding: 16px 10px !important; border-radius: 6px !important; border: 1px solid var(--calc-panel-border) !important; text-align: center !important; position: relative !important; display: flex !important; flex-direction: column !important; justify-content: center !important;}\n        .xw-econ-item .xw-label { font-size: 10px !important; color: var(--calc-text-muted) !important; text-transform: uppercase !important; font-weight: 600 !important; letter-spacing: 0.5px !important; margin-bottom: 6px !important;}\n        .xw-econ-item .xw-value { font-size: 17px !important; font-weight: 700 !important; color: var(--calc-text-main) !important; margin: 0 !important;}\n        .xw-blur-value { filter: blur(6px) !important; user-select: none !important; pointer-events: none !important; opacity: 0.85 !important; }\n        \n        .xw-funnel-wrapper { display: flex !important; flex-direction: column !important; align-items: center !important; background-color: #060a11 !important; border: 1px solid var(--calc-panel-border) !important; border-radius: 6px !important; padding: 26px 16px !important; width: 100% !important; box-sizing: border-box !important; }\n        .xw-funnel-stack { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; max-width: 400px !important; gap: 8px !important; margin: 0 auto !important;}\n        .xw-f-layer {\n            height: 44px !important; display: flex !important; align-items: center !important; justify-content: space-between !important;\n            padding: 0 18px !important; border: 1px solid var(--calc-panel-border) !important; background-color: var(--calc-bg-dark) !important;\n            color: var(--calc-text-muted) !important; font-size: 12px !important; font-weight: bold !important; text-transform: uppercase !important;\n            letter-spacing: 1px !important; transition: all 0.5s ease-in-out !important; box-sizing: border-box !important; white-space: nowrap !important; margin: 0 auto !important;\n        }\n        #layer-1 { width: 100% !important; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%) !important; }\n        #layer-2 { width: 90% !important; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%) !important; }\n        #layer-3 { width: 80% !important; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%) !important; }\n        #layer-4 { width: 70% !important; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%) !important; }\n        #layer-5 { width: 60% !important; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%) !important; }\n        \n        .xw-layer-status-text { font-size: 10px !important; }\n        .xw-state-healthy { background-color: var(--calc-cyan-glow) !important; border-color: var(--calc-cyan-primary) !important; color: var(--calc-cyan-primary) !important; box-shadow: 0 0 15px var(--calc-cyan-glow) !important; }\n        .xw-state-leak { background-color: var(--calc-red-glow) !important; border-color: var(--calc-red-alert) !important; color: var(--calc-red-alert) !important; box-shadow: 0 0 20px var(--calc-red-glow) !important; transform: scale(1.05) !important; z-index: 10 !important; }\n\n        \/* ACTION PROTOCOL \u0026 BLURRED CONTENT LAYER *\/\n        .xw-teaser-protocol { \n            position: relative !important; \n            background: #060a11 !important; \n            border: 1px solid var(--calc-panel-border) !important; \n            border-top: 4px solid var(--calc-red-alert) !important; \n            border-radius: 6px !important; \n            padding: 22px !important; \n            overflow: hidden !important; \n            display: none; \n            width: 100% !important;\n            box-sizing: border-box !important;\n        }\n        .xw-p-block { margin-bottom: 18px !important; }\n        .xw-p-block:last-child { margin-bottom: 0 !important; }\n        .xw-p-label { font-weight: 800 !important; font-size: 11px !important; color: var(--calc-text-muted) !important; text-transform: uppercase !important; display: block !important; margin-bottom: 6px !important; letter-spacing: 0.5px !important; }\n        .xw-p-text-blur { font-size: 14px !important; line-height: 1.5 !important; color: var(--calc-text-main) !important; filter: blur(5px) !important; opacity: 0.5 !important; user-select: none !important; }\n\n        \/* CTA LOCK OVERLAY *\/\n        .xw-locked-overlay { \n            position: absolute !important; \n            top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; \n            background: rgba(8, 12, 20, 0.82) !important; \n            display: flex !important; \n            flex-direction: column !important; \n            align-items: center !important; \n            justify-content: center !important; \n            text-align: center !important; \n            padding: 24px 18px !important; \n            z-index: 2 !important; \n            box-sizing: border-box !important;\n        }\n        .xw-locked-overlay h3 { color: #fff !important; margin-bottom: 10px !important; font-size: 18px !important; text-transform: uppercase !important; letter-spacing: 1px !important; font-weight: 800 !important; text-align: center !important; }\n        .xw-locked-overlay p { color: #a1a1aa !important; font-size: 13.5px !important; line-height: 1.5 !important; margin-bottom: 18px !important; max-width: 440px !important; text-align: center !important; }\n        \n        .xw-btn-cta {\n            max-width: 320px !important;\n            margin: 0 auto !important;\n        }\n\n        @media (max-width: 600px) {\n            .bdw-btn, .xw-btn-run, .xw-btn-cta { font-size: 13px !important; padding: 14px 18px !important; }\n            .bdw-hero { padding: 12px 0 16px !important; }\n            .xray-widget { margin: 12px auto 16px auto !important; padding: 20px 14px !important; }\n            .xw-input-grid { grid-template-columns: 1fr !important; gap: 12px !important; }\n            .xw-economics-grid { grid-template-columns: 1fr !important; gap: 8px !important; }\n            #layer-1 { width: 100% !important; } #layer-2 { width: 95% !important; } #layer-3 { width: 90% !important; } #layer-4 { width: 85% !important; } #layer-5 { width: 80% !important; }\n            .xw-f-layer { font-size: 10px !important; padding: 0 10px !important; }\n            \n            \/* Mobile Table Fixes *\/\n            .bdw-card { padding: 24px 16px !important; }\n            .bdw-comparison-table th { font-size: 11px !important; padding: 12px 4px !important; }\n            .bdw-comparison-table td { font-size: 13px !important; padding: 12px 4px !important; }\n        }\n    \u003c\/style\u003e\n\u003cdiv id=\"bdw-wrapper\"\u003e\n\u003c!-- TOP LOGO --\u003e\n\u003cdiv style=\"width: 100%; background: #101A2B; text-align: center; line-height: 0; margin: 0; padding: 0;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0714\/8925\/7590\/files\/aef9d975-27ba-4aa8-a383-313bd2b381df.png?v=1788399573\" alt=\"Logo\" style=\"width: 143px; height: 54px; display: inline-block !important; margin: 0px !important; padding: 0px !important; border-width: medium !important; border-style: none !important; border-color: currentcolor !important; border-image: none !important;\"\u003e\u003c\/div\u003e\n\u003c!-- ANNOUNCEMENT BAR --\u003e\n\u003cdiv class=\"bdw-announcement\"\u003e\n\u003ch3 class=\"bdw-font-bold\" style=\"color: var(--neon-green); margin-bottom: 2px;\"\u003e\u003cspan style=\"color: rgb(10, 153, 48);\"\u003eFind the \u003cspan style=\"color: rgb(255, 128, 0);\"\u003e\u003cspan style=\"color: rgb(0, 170, 255);\"\u003eFunnel Leak\u003c\/span\u003e \u003c\/span\u003eBefore You Spend Another Dollar\u003c\/span\u003e\u003c\/h3\u003e\n\u003cdiv class=\"bdw-text-sm\" style=\"color: var(--text-main);\"\u003eStop guessing whether Meta is the problem. X-Ray finds your biggest funnel bottleneck, estimates what it’s costing you, and tells you what to fix first.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SECTION 1: HERO \u0026 NEW COMPACT APP TEASER --\u003e\u003cheader class=\"bdw-section bdw-hero\"\u003e\n\u003cdiv class=\"bdw-container\"\u003e\n\u003c!-- HEADERS --\u003e\n\u003cdiv style=\"max-width: 780px; margin: 8px auto 8px auto; text-align: center; font-size: 14px; color: var(--text-main);\"\u003eFor Meta Ads Media Buyers · E-Commerce · Shopify · DTC Operators\u003c\/div\u003e\n\u003c!-- TEASER APP EMBED --\u003e\n\u003cdiv class=\"xray-widget\"\u003e\n\u003cdiv class=\"xw-container\"\u003e\n\u003cdiv class=\"xw-header\"\u003e\n\u003cp\u003e\u003cspan style=\"color: rgb(10, 153, 48);\"\u003e\u003cstrong\u003eFREE Funnel Diagnostic\u003c\/strong\u003e\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003eEnter these \u003c\/span\u003e\u003cstrong\u003e\u003cspan\u003e8 numbers from your last 7 days:\u003c\/span\u003e\u003c\/strong\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- Inputs --\u003e\n\u003cdiv class=\"xw-card\"\u003e\u003cform id=\"xray-form\"\u003e\n\u003cdiv class=\"xw-input-grid\"\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003eAd Spend ($)\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"spend\" required=\"\" step=\"any\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003eOutbound Clicks\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"clicks\" required=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003ePage Views\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"lpv\" required=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003eAdds to Cart\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"atc\" required=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003eCheckouts Initiated\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"ic\" required=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003ePurchases\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"purchases\" required=\"\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\u003clabel\u003eTotal Revenue ($)\u003c\/label\u003e\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"revenue\" required=\"\" step=\"any\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-input-group\"\u003e\n\u003cdiv class=\"xw-label-row\"\u003e\n\u003clabel\u003eGross Margin (%)\u003c\/label\u003e \u003cbutton type=\"button\" class=\"xw-btn-assist\" id=\"btn-margin-assist\"\u003eI don't know - Use 50%\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cinput type=\"number\" id=\"margin\" required=\"\" min=\"1\" max=\"100\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"form-error\"\u003e\u003c\/div\u003e\n\u003cbutton type=\"submit\" class=\"xw-btn-run\"\u003eRun Free Funnel Scan\u003c\/button\u003e\n\u003c\/form\u003e\u003c\/div\u003e\n\u003c!-- Output Section --\u003e\n\u003cdiv class=\"xw-output-box\" id=\"output-box\"\u003e\n\u003c!-- Metrics Grid --\u003e\n\u003cdiv class=\"xw-economics-grid\"\u003e\n\u003cdiv class=\"xw-econ-item\"\u003e\n\u003cdiv class=\"xw-label\"\u003eNet Profit\/Loss\u003c\/div\u003e\n\u003cdiv class=\"xw-value xw-blur-value\" id=\"val-net-pl\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-econ-item\"\u003e\n\u003cdiv class=\"xw-label\"\u003eCPA vs AOV\u003c\/div\u003e\n\u003cdiv class=\"xw-value xw-blur-value\" id=\"val-cpa-aov\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-econ-item\"\u003e\n\u003cdiv class=\"xw-label\"\u003eContrib Margin\u003c\/div\u003e\n\u003cdiv class=\"xw-value xw-blur-value\" id=\"val-contrib\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Animated Funnel Diagnostics --\u003e\n\u003cdiv class=\"xw-card\" style=\"padding: 0 !important; border: none !important; background: transparent !important; box-shadow: none !important;\"\u003e\n\u003cdiv class=\"xw-section-title\"\u003eScanning Funnel Architecture...\u003cbr\u003e\u003cspan style=\"font-size: 10px !important; color: var(--calc-text-muted) !important; text-transform: none !important; font-weight: normal !important;\"\u003e(vs typical DTC baseline)\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-funnel-wrapper\"\u003e\n\u003cdiv class=\"xw-funnel-stack\"\u003e\n\u003cdiv id=\"layer-1\" class=\"xw-f-layer\"\u003e\n\u003cspan\u003e1. Ad Traffic\u003c\/span\u003e \u003cspan class=\"xw-layer-status-text\" id=\"status-1\"\u003eWaiting...\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"layer-2\" class=\"xw-f-layer\"\u003e\n\u003cspan\u003e2. Page Load\u003c\/span\u003e \u003cspan class=\"xw-layer-status-text\" id=\"status-2\"\u003eWaiting...\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"layer-3\" class=\"xw-f-layer\"\u003e\n\u003cspan\u003e3. Add to Cart\u003c\/span\u003e \u003cspan class=\"xw-layer-status-text\" id=\"status-3\"\u003eWaiting...\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"layer-4\" class=\"xw-f-layer\"\u003e\n\u003cspan\u003e4. Checkout\u003c\/span\u003e \u003cspan class=\"xw-layer-status-text\" id=\"status-4\"\u003eWaiting...\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"layer-5\" class=\"xw-f-layer\"\u003e\n\u003cspan\u003e5. Purchase\u003c\/span\u003e \u003cspan class=\"xw-layer-status-text\" id=\"status-5\"\u003eWaiting...\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Action Protocol Box with Locked Overlay --\u003e\n\u003cdiv class=\"xw-card xw-teaser-protocol\" id=\"teaser-cta\"\u003e\n\u003cdiv class=\"xw-section-title\" style=\"text-align: left !important; margin-bottom: 18px !important;\"\u003eAction Protocol\u003c\/div\u003e\n\u003cdiv class=\"xw-p-block\"\u003e\n\u003cspan class=\"xw-p-label\" id=\"label-diagnosis\"\u003eDiagnosis\u003c\/span\u003e\n\u003cdiv class=\"xw-p-text-blur\" id=\"blur-diagnosis\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-p-block\"\u003e\n\u003cspan class=\"xw-p-label\" id=\"label-lever\"\u003eThe Lever (Change One Thing)\u003c\/span\u003e\n\u003cdiv class=\"xw-p-text-blur\" id=\"blur-lever\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-p-block\"\u003e\n\u003cspan class=\"xw-p-label\" id=\"label-rule\"\u003eGuardrail \u0026amp; Revert Rule\u003c\/span\u003e\n\u003cdiv class=\"xw-p-text-blur\" id=\"blur-rule\"\u003e--\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"xw-locked-overlay\"\u003e\n\u003ch3 id=\"teaser-headline\"\u003e🔒 Protocol Locked\u003c\/h3\u003e\n\u003cp id=\"teaser-subtext\"\u003ePrimary leak isolated. Unlock the full X-Ray to see dollars burned at this step, the exact change to make, and the revert rule.\u003c\/p\u003e\n\u003ca href=\"https:\/\/www.funnelxray.app\/cart\/44131533127798:1\" class=\"xw-btn-cta\"\u003eUnlock Full X-Ray — $7\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"text-align: center; font-size: 13px; margin-top: 10px;\"\u003e✓ Free scan ✓ No credit card ✓ Takes ~60 seconds\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/header\u003e\u003c!-- SECTION 2: COMPARISON TABLE --\u003e\n\u003csection class=\"bdw-section\" style=\"padding-top: 0 !important; border-bottom: none !important;\"\u003e\n\u003cdiv class=\"bdw-container\"\u003e\n\u003cdiv style=\"max-width: 650px; margin: 0 auto;\"\u003e\n\u003cdiv class=\"bdw-card\" style=\"padding: 40px 30px !important;\"\u003e\n\u003ch2 style=\"font-size: 26px; margin-bottom: 24px; color: var(--text-headline); width: 100%; text-align: center !important;\"\u003eFree Scan vs. Full X-Ray\u003c\/h2\u003e\n\u003ctable class=\"bdw-comparison-table\" style=\"width: 100%;\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"width: 60.0798%;\"\u003e\u003c\/th\u003e\n\u003cth style=\"text-align: center; width: 19.9601%;\"\u003eFREE   \u003c\/th\u003e\n\u003cth style=\"text-align: center; width: 19.9601%;\"\u003e FULL\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eIdentify funnel leak\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eCalculate dollars at risk\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-dash\"\u003e—\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eIdentify primary lever\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-dash\"\u003e—\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eRecommended test\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-dash\"\u003e—\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eRevert\/guardrail rule\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-dash\"\u003e—\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"width: 60.0798%;\"\u003eRe-run with new data\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-dash\"\u003e—\u003c\/span\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 19.9601%;\"\u003e\u003cspan class=\"bdw-check\"\u003e✓\u003c\/span\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cdiv class=\"bdw-table-footer\"\u003e\n\u003ch3\u003eDon't just find the problem. Know what to do next.\u003c\/h3\u003e\n\u003cdiv class=\"bdw-btn-wrapper\"\u003e\u003ca href=\"https:\/\/www.funnelxray.app\/cart\/44131533127798:1\" class=\"bdw-btn bdw-btn-wide\" style=\"max-width: 320px !important; margin: 0 !important;\"\u003eUNLOCK THE FULL X-RAY — $7\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- COPYRIGHT FOOTER (NARROW) --\u003e\n\u003cdiv style=\"text-align: center; padding: 12px 20px 16px 20px; color: #555; font-size: 12px; background-color: #050508; border-top: 1px solid #1a1a1e;\"\u003eCopyright © 2026 Funnel X-Ray App. All rights reserved.\u003c\/div\u003e\n\u003c!-- SCRIPT (CALCULATOR ENGINE + AUDIO SYNTHESIZER) --\u003e \u003cscript\u003e\n        (function() {\n            \/\/ FIXED EVENT LISTENER FOR GROSS MARGIN BUTTON\n            const btnMarginAssist = document.getElementById('btn-margin-assist');\n            if (btnMarginAssist) {\n                btnMarginAssist.addEventListener('click', function() {\n                    const marginInput = document.getElementById('margin');\n                    if (marginInput) marginInput.value = 50;\n                });\n            }\n\n            \/\/ Web Audio API Synthesizer\n            const AudioContext = window.AudioContext || window.webkitAudioContext;\n            let audioCtx = null;\n\n            function playSound(type) {\n                if (!audioCtx) audioCtx = new AudioContext();\n                if (audioCtx.state === 'suspended') audioCtx.resume();\n                const t = audioCtx.currentTime;\n\n                if (type === 'error') {\n                    const osc1 = audioCtx.createOscillator(); const osc2 = audioCtx.createOscillator(); const gain = audioCtx.createGain();\n                    osc1.type = 'sawtooth'; osc2.type = 'square';\n                    osc1.frequency.setValueAtTime(120, t); osc1.frequency.linearRampToValueAtTime(60, t + 0.3);\n                    osc2.frequency.setValueAtTime(125, t); osc2.frequency.linearRampToValueAtTime(62, t + 0.3);\n                    gain.gain.setValueAtTime(0.15, t); gain.gain.linearRampToValueAtTime(0, t + 0.3);\n                    osc1.connect(gain); osc2.connect(gain); gain.connect(audioCtx.destination);\n                    osc1.start(t); osc2.start(t); osc1.stop(t + 0.3); osc2.stop(t + 0.3);\n                } else if (type === 'scan') {\n                    const osc1 = audioCtx.createOscillator(); const osc2 = audioCtx.createOscillator(); const filter = audioCtx.createBiquadFilter(); const gain = audioCtx.createGain();\n                    osc1.type = 'sawtooth'; osc2.type = 'square'; filter.type = 'lowpass';\n                    osc1.frequency.setValueAtTime(100, t); osc1.frequency.exponentialRampToValueAtTime(600, t + 0.4);\n                    osc2.frequency.setValueAtTime(105, t); osc2.frequency.exponentialRampToValueAtTime(620, t + 0.4);\n                    filter.frequency.setValueAtTime(200, t); filter.frequency.exponentialRampToValueAtTime(5000, t + 0.3);\n                    gain.gain.setValueAtTime(0, t); gain.gain.linearRampToValueAtTime(0.3, t + 0.05); gain.gain.exponentialRampToValueAtTime(0.01, t + 0.4); gain.gain.linearRampToValueAtTime(0, t + 0.5);\n                    osc1.connect(filter); osc2.connect(filter); filter.connect(gain); gain.connect(audioCtx.destination);\n                    osc1.start(t); osc2.start(t); osc1.stop(t + 0.5); osc2.stop(t + 0.5);\n                } else if (type === 'ding') {\n                    const osc1 = audioCtx.createOscillator(); const osc2 = audioCtx.createOscillator(); const gain = audioCtx.createGain(); const osc2Gain = audioCtx.createGain();\n                    osc1.type = 'sine'; osc2.type = 'square';\n                    osc1.frequency.setValueAtTime(800, t); osc1.frequency.setValueAtTime(1200, t + 0.08); \n                    osc2.frequency.setValueAtTime(805, t); osc2.frequency.setValueAtTime(1205, t + 0.08);\n                    osc2Gain.gain.value = 0.2;\n                    gain.gain.setValueAtTime(0, t); gain.gain.linearRampToValueAtTime(0.25, t + 0.02); gain.gain.setValueAtTime(0.25, t + 0.15); gain.gain.exponentialRampToValueAtTime(0.01, t + 0.3);\n                    osc1.connect(gain); osc2.connect(osc2Gain); osc2Gain.connect(gain); gain.connect(audioCtx.destination);\n                    osc1.start(t); osc2.start(t); osc1.stop(t + 0.3); osc2.stop(t + 0.3);\n                }\n            }\n\n            function showError(message) {\n                const errorBox = document.getElementById('form-error');\n                errorBox.style.display = 'block';\n                errorBox.innerHTML = '⚠️ ERROR: ' + message;\n                playSound('error');\n            }\n\n            const form = document.getElementById('xray-form');\n            if (form) {\n                form.addEventListener('submit', function(e) {\n                    e.preventDefault();\n                    document.getElementById('form-error').style.display = 'none';\n                    \n                    const spend = parseFloat(document.getElementById('spend').value);\n                    const clicks = parseInt(document.getElementById('clicks').value);\n                    const lpv = parseInt(document.getElementById('lpv').value);\n                    const atc = parseInt(document.getElementById('atc').value);\n                    const ic = parseInt(document.getElementById('ic').value);\n                    const purchases = parseInt(document.getElementById('purchases').value);\n                    const revenue = parseFloat(document.getElementById('revenue').value);\n                    const marginPct = parseFloat(document.getElementById('margin').value) \/ 100;\n\n                    \/\/ Validation 1: Finite Checks\n                    const inputs = [spend, clicks, lpv, atc, ic, purchases, revenue, marginPct];\n                    if (!inputs.every(Number.isFinite)) {\n                        showError('Please fill in all fields with valid numbers.');\n                        return;\n                    }\n\n                    \/\/ Validation 2: Impossible Logic States\n                    if (purchases \u003e ic || ic \u003e atc || atc \u003e lpv || lpv \u003e clicks) {\n                        showError('Impossible funnel metrics. Downstream events (e.g. Purchases) cannot exceed upstream events (e.g. Checkouts). Check your inputs.');\n                        return;\n                    }\n\n                    \/\/ Validation 3: Zero Revenue with Purchases\n                    if (purchases \u003e 0 \u0026\u0026 revenue \u003c= 0) {\n                        showError('Revenue can’t be $0 if there are purchases.');\n                        return;\n                    }\n\n                    \/\/ ==========================================\n                    \/\/  ADD META PIXEL FBQ TRACKING EVENT HERE\n                    \/\/ ==========================================\n                    if (typeof fbq === 'function') {\n                        fbq('track', 'Lead', {\n                            content_name: 'Funnel Scan',\n                            currency: 'USD',\n                            value: 0\n                        });\n                    } else {\n                        console.warn('Meta Pixel (fbq) not found or blocked by adblocker.');\n                    }\n                    \/\/ ==========================================\n\n                    if (!audioCtx) audioCtx = new AudioContext();\n                    playSound('scan');\n\n                    \/\/ Economics Calculations\n                    const aov = purchases \u003e 0 ? revenue \/ purchases : 0;\n                    const cpa = purchases \u003e 0 ? spend \/ purchases : spend;\n                    const marginPerOrder = aov * marginPct;\n                    const grossProfit = purchases * marginPerOrder;\n                    const netProfit = grossProfit - spend;\n                    const contribMargin = revenue \u003e 0 ? (netProfit \/ revenue) * 100 : 0;\n\n                    const netEl = document.getElementById('val-net-pl');\n                    netEl.innerText = `${netProfit \u003e= 0 ? '+' : '-'}$${Math.abs(netProfit).toFixed(0)}`;\n                    netEl.style.color = netProfit \u003e= 0 ? 'var(--calc-text-main)' : 'var(--calc-red-alert)';\n                    \n                    document.getElementById('val-cpa-aov').innerText = `$${cpa.toFixed(0)} \/ $${aov.toFixed(0)}`;\n                    \n                    const contribEl = document.getElementById('val-contrib');\n                    contribEl.innerText = `${contribMargin.toFixed(1)}%`;\n                    contribEl.style.color = contribMargin \u003e= 0 ? 'var(--calc-text-main)' : 'var(--calc-red-alert)';\n\n                    \/\/ Stage Logic\n                    const rates = [\n                        { id: \"click_lpv\", layer: 2, target: 0.80, prevVolume: clicks, actualVol: lpv },\n                        { id: \"lpv_atc\", layer: 3, target: 0.08, prevVolume: lpv, actualVol: atc },\n                        { id: \"atc_ic\", layer: 4, target: 0.50, prevVolume: atc, actualVol: ic },\n                        { id: \"ic_purch\", layer: 5, target: 0.40, prevVolume: ic, actualVol: purchases }\n                    ];\n\n                    let worstStage = null;\n                    let maxLostMargin = 0;\n\n                    rates.forEach(stage =\u003e {\n                        let expectedVol = stage.prevVolume * stage.target;\n                        if (stage.actualVol \u003c expectedVol) {\n                            let missing = expectedVol - stage.actualVol;\n                            let downstreamToPurchRate = 1; \n                            if (stage.id === \"click_lpv\") downstreamToPurchRate = lpv \u003e 0 ? (purchases\/lpv) : 0;\n                            if (stage.id === \"lpv_atc\") downstreamToPurchRate = atc \u003e 0 ? (purchases\/atc) : 0;\n                            if (stage.id === \"atc_ic\") downstreamToPurchRate = ic \u003e 0 ? (purchases\/ic) : 0;\n                            \n                            let lostOrders = missing * downstreamToPurchRate;\n                            let lostMargin = lostOrders * marginPerOrder;\n\n                            if (lostMargin \u003e maxLostMargin) {\n                                maxLostMargin = lostMargin;\n                                worstStage = stage;\n                            }\n                        }\n                    });\n\n                    let leakLayer = 0; \n                    let ctaHeadline = \"🔒 Protocol Locked\";\n\n                    \/\/ Update Blur Text Dynamically based on scan\n                    let diagnosisText = \"\"; let leverText = \"\"; let ruleText = \"\";\n\n                    if (purchases === 0 \u0026\u0026 spend \u003e 0) {\n                        leakLayer = 5; ctaHeadline = \"🚨 Critical Failure Detected\";\n                        diagnosisText = `Critical Failure: You spent $${spend} but generated 0 purchases. Funnel flow is severed.`;\n                        leverText = \"Pause ads instantly. Manually test your checkout to ensure the payment gateway isn't broken.\";\n                        ruleText = \"Do not spend another dollar until a test transaction clears.\";\n                    } else if (worstStage) {\n                        leakLayer = worstStage.layer; ctaHeadline = \"🚨 Primary Leak Isolated\";\n                        if (worstStage.id === \"click_lpv\") {\n                            diagnosisText = `Page Load Drop-off: Only ${(worstStage.actualVol\/worstStage.prevVolume*100).toFixed(1)}% of clicks actually load the page (Target: 80%).`;\n                            leverText = \"Audit mobile page load speed (disable heavy scripts) or check Meta pixel tracking.\";\n                            ruleText = \"Keep spend flat. Wait 7 days. If Click-to-View hasn't moved at least 10 points toward 80%, rebuild LP on a faster framework.\";\n                        } else if (worstStage.id === \"lpv_atc\") {\n                            diagnosisText = `Above-the-Fold Conversion Failure: Traffic arrives, but ATC rate is ${(worstStage.actualVol\/worstStage.prevVolume*100).toFixed(1)}% (Target: 8%).`;\n                            leverText = \"Swap the primary above-the-fold product hero image or headline.\";\n                            ruleText = \"Wait 500 views or 7 days. Re-run X-Ray. If ATC hasn't moved at least 2 points, revert and test a new offer.\";\n                        } else if (worstStage.id === \"atc_ic\") {\n                            diagnosisText = `Cart Abandonment: Only ${(worstStage.actualVol\/worstStage.prevVolume*100).toFixed(1)}% proceed from cart to checkout (Target: 50%).`;\n                            leverText = \"Add a sticky 'Checkout' button or remove hidden shipping thresholds from the cart drawer.\";\n                            ruleText = \"Wait 100 ATCs or 7 days. If ATC → Checkout hasn't moved at least 10 points, revert and test cart trust badges.\";\n                        } else if (worstStage.id === \"ic_purch\") {\n                            diagnosisText = `Checkout Abandonment: Only ${(worstStage.actualVol\/worstStage.prevVolume*100).toFixed(1)}% complete purchase from checkout (Target: 40%).`;\n                            leverText = \"Enable Shop Pay \/ Express Checkout (or cut one checkout field).\";\n                            ruleText = \"Wait 50 checkouts or 7 days. Re-run X-Ray. If checkout → purchase hasn’t moved at least 8 points, revert and test price. Do not raise budget.\";\n                        }\n                    } else if (netProfit \u003c 0) {\n                        leakLayer = 1; ctaHeadline = \"🚨 Inverted Economics Detected\";\n                        diagnosisText = `Funnel converts at typical DTC baseline, but unit economics are inverted. You burned $${Math.abs(netProfit).toFixed(0)} on ad spend vs gross margin.`;\n                        leverText = \"Increase AOV (bundling\/threshold free shipping) or raise product price by 15%.\";\n                        ruleText = \"Do NOT scale ad spend. Test price\/bundle. Hold for 50 purchases. If conversion rate drops proportionally and CPA worsens, revert and audit ad traffic quality.\";\n                    } else {\n                        leakLayer = 0;\n                        diagnosisText = \"All front-end systems optimized. Baseline profitability and funnel flow meet typical DTC baselines.\";\n                        leverText = \"Scale ad spend horizontally.\";\n                        ruleText = \"Increase budget by exactly 20% once. Hold static for 72 hours. Re-run X-Ray. If CPA rises \u003e15%, revert immediately.\";\n                    }\n\n                    \/\/ Render UI \u0026 Transition\n                    document.getElementById('blur-diagnosis').innerText = diagnosisText;\n                    document.getElementById('blur-lever').innerText = leverText;\n                    document.getElementById('blur-rule').innerText = ruleText;\n\n                    document.getElementById('output-box').style.display = 'flex';\n                    document.getElementById('teaser-cta').style.display = 'none';\n                    \n                    setTimeout(() =\u003e {\n                        document.getElementById('output-box').scrollIntoView({ behavior: 'smooth', block: 'start' });\n                    }, 50);\n\n                    for(let i=1; i\u003c=5; i++) {\n                        const layer = document.getElementById('layer-'+i);\n                        layer.className = 'xw-f-layer';\n                        document.getElementById('status-'+i).innerText = \"Scanning...\";\n                    }\n\n                    let delay = 300;\n                    for(let i=1; i\u003c=5; i++) {\n                        setTimeout(() =\u003e {\n                            const layer = document.getElementById('layer-'+i);\n                            const statusText = document.getElementById('status-'+i);\n                            \n                            if (leakLayer === i) {\n                                layer.classList.add('xw-state-leak');\n                                statusText.innerText = \"🚨 LEAK ISOLATED\";\n                                playSound('error'); \n                            } else if (leakLayer === 0 || i \u003c leakLayer) {\n                                layer.classList.add('xw-state-healthy');\n                                statusText.innerText = \"Optimized\";\n                            } else {\n                                statusText.innerText = \"Data Starved\";\n                            }\n                        }, delay * i);\n                    }\n\n                    \/\/ Reveal Teaser Protocol CTA\n                    setTimeout(() =\u003e {\n                        if (leakLayer === 0) {\n                            playSound('ding');\n                            document.getElementById('label-diagnosis').innerText = \"System Status\";\n                            document.getElementById('label-lever').innerText = \"Scaling Protocol\";\n                            document.getElementById('label-rule').innerText = \"Scaling Guardrail\";\n                            \n                            document.getElementById('teaser-headline').innerText = \"✅ Systems Optimized\";\n                            document.getElementById('teaser-headline').style.color = \"var(--calc-cyan-primary)\";\n                            document.getElementById('teaser-cta').style.borderTopColor = \"var(--calc-cyan-primary)\";\n                            document.getElementById('teaser-subtext').innerText = \"Funnel flow is highly profitable. Unlock the full X-Ray to reveal your exact scaling protocol—including budget increments, hold times, and CPA guardrails to safely multiply volume.\";\n                        } else {\n                            document.getElementById('label-diagnosis').innerText = \"Diagnosis\";\n                            document.getElementById('label-lever').innerText = \"The Lever (Change One Thing)\";\n                            document.getElementById('label-rule').innerText = \"Guardrail \u0026 Revert Rule\";\n                            \n                            document.getElementById('teaser-headline').innerText = ctaHeadline;\n                            document.getElementById('teaser-headline').style.color = \"var(--calc-red-alert)\";\n                            document.getElementById('teaser-cta').style.borderTopColor = \"var(--calc-red-alert)\";\n                            document.getElementById('teaser-subtext').innerText = \"Primary leak isolated. Unlock the full X-Ray to see dollars burned at this step, the exact change to make, and the revert rule.\";\n                        }\n\n                        document.getElementById('teaser-cta').style.display = 'block';\n                    }, delay * 6);\n                });\n            }\n        })();\n    \u003c\/script\u003e\n\u003c\/div\u003e","brand":"Funnel X-Ray App","offers":[{"title":"Default Title","offer_id":44131533127798,"sku":null,"price":7.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0714\/8925\/7590\/files\/hero_1_2b9c2e7a-7e6c-4d51-84d0-e2f9810e9e5a.jpg?v=1788400185","url":"https:\/\/prospecttrigger.com\/products\/funnel-x-ray","provider":"Prospect Trigger","version":"1.0","type":"link"}