{"id":712,"date":"2026-02-22T21:45:29","date_gmt":"2026-02-22T21:45:29","guid":{"rendered":"https:\/\/www.opey.org\/opeyit\/?page_id=712"},"modified":"2026-02-27T15:06:17","modified_gmt":"2026-02-27T15:06:17","slug":"vendor-dependency-correlation-mapper","status":"publish","type":"page","link":"https:\/\/www.opey.org\/opeyit\/?page_id=712","title":{"rendered":"Vendor Dependency Correlation Mapper"},"content":{"rendered":"\n<!-- \n=====================================================\nVENDOR DEPENDENCY CORRELATION MAPPER\nWhen Clouds Fail - Steve Oppenheim\n=====================================================\nWORDPRESS: Paste this entire code into a Custom HTML block\n\nFEATURES:\n- 50+ vendors across 9 categories\n- Real upstream dependency mapping\n- Feb 3rd 2026 cascade simulation  \n- Correlation risk scoring\n- Visual dependency graph\n- Prioritized recommendations\n- Mobile responsive\n\nNO EMOJIS - Professional SVG icons only\n=====================================================\n-->\n\n<div id=\"wcf-vdm-tool\">\n<style>\n\/* ============================================\n   VENDOR DEPENDENCY CORRELATION MAPPER\n   Theme matched to whencloudsfail.opey.org\n   ============================================ *\/\n\n#wcf-vdm-tool {\n    font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, Oxygen, Ubuntu, sans-serif;\n    background: linear-gradient(180deg, #0d1117 0%, #161b22 50%, #1a2332 100%);\n    color: #e6edf3;\n    padding: 0;\n    margin: 0;\n    line-height: 1.6;\n    min-height: 100vh;\n}\n\n#wcf-vdm-tool *, #wcf-vdm-tool *::before, #wcf-vdm-tool *::after {\n    box-sizing: border-box;\n}\n\n#wcf-vdm-tool a {\n    color: inherit;\n    text-decoration: none;\n}\n\n\/* Container *\/\n.vdm-container {\n    max-width: 1140px;\n    margin: 0 auto;\n    padding: 48px 24px;\n}\n\n\/* ============================================\n   HEADER\n   ============================================ *\/\n.vdm-header {\n    text-align: center;\n    margin-bottom: 48px;\n}\n\n.vdm-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background: linear-gradient(135deg, rgba(220, 38, 38, 0.15), rgba(220, 38, 38, 0.05));\n    border: 1px solid rgba(220, 38, 38, 0.3);\n    color: #f87171;\n    padding: 10px 20px;\n    border-radius: 6px;\n    font-size: 11px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 1.5px;\n    margin-bottom: 24px;\n}\n\n.vdm-eyebrow svg {\n    animation: pulse 2s infinite;\n}\n\n@keyframes pulse {\n    0%, 100% { opacity: 1; }\n    50% { opacity: 0.5; }\n}\n\n.vdm-title {\n    font-size: clamp(32px, 6vw, 48px);\n    font-weight: 800;\n    margin: 0 0 16px 0;\n    color: #ffffff;\n    line-height: 1.15;\n    letter-spacing: -0.5px;\n}\n\n.vdm-title span {\n    background: linear-gradient(135deg, #c9a227, #f0d060);\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n}\n\n.vdm-subtitle {\n    font-size: 18px;\n    color: #8b949e;\n    margin: 0 auto 20px;\n    max-width: 680px;\n    line-height: 1.6;\n}\n\n.vdm-incident-banner {\n    display: inline-flex;\n    align-items: center;\n    gap: 12px;\n    background: rgba(245, 158, 11, 0.08);\n    border: 1px solid rgba(245, 158, 11, 0.25);\n    border-radius: 8px;\n    padding: 14px 24px;\n    margin-top: 8px;\n}\n\n.vdm-incident-banner svg {\n    color: #fbbf24;\n    flex-shrink: 0;\n}\n\n.vdm-incident-banner p {\n    margin: 0;\n    font-size: 14px;\n    color: #d4d4d4;\n    text-align: left;\n}\n\n.vdm-incident-banner strong {\n    color: #fbbf24;\n}\n\n\/* ============================================\n   PROGRESS STEPS\n   ============================================ *\/\n.vdm-progress {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    gap: 16px;\n    margin-bottom: 40px;\n}\n\n.vdm-progress-step {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 10px 20px;\n    border-radius: 8px;\n    background: rgba(255,255,255,0.03);\n    border: 1px solid rgba(255,255,255,0.06);\n    transition: all 0.3s;\n}\n\n.vdm-progress-step.active {\n    background: rgba(201, 162, 39, 0.1);\n    border-color: rgba(201, 162, 39, 0.3);\n}\n\n.vdm-progress-step.complete {\n    background: rgba(34, 197, 94, 0.1);\n    border-color: rgba(34, 197, 94, 0.3);\n}\n\n.vdm-progress-num {\n    width: 28px;\n    height: 28px;\n    border-radius: 50%;\n    background: rgba(255,255,255,0.1);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 13px;\n    font-weight: 700;\n    color: #8b949e;\n}\n\n.vdm-progress-step.active .vdm-progress-num {\n    background: #c9a227;\n    color: #0d1117;\n}\n\n.vdm-progress-step.complete .vdm-progress-num {\n    background: #22c55e;\n    color: #0d1117;\n}\n\n.vdm-progress-label {\n    font-size: 13px;\n    font-weight: 600;\n    color: #8b949e;\n}\n\n.vdm-progress-step.active .vdm-progress-label,\n.vdm-progress-step.complete .vdm-progress-label {\n    color: #e6edf3;\n}\n\n.vdm-progress-line {\n    width: 40px;\n    height: 2px;\n    background: rgba(255,255,255,0.1);\n}\n\n\/* ============================================\n   PANELS\n   ============================================ *\/\n.vdm-panel {\n    background: rgba(255,255,255,0.02);\n    border: 1px solid rgba(255,255,255,0.06);\n    border-radius: 16px;\n    padding: 32px;\n    margin-bottom: 24px;\n}\n\n.vdm-panel-header {\n    display: flex;\n    align-items: flex-start;\n    gap: 20px;\n    margin-bottom: 28px;\n    padding-bottom: 24px;\n    border-bottom: 1px solid rgba(255,255,255,0.06);\n}\n\n.vdm-panel-icon {\n    width: 56px;\n    height: 56px;\n    background: linear-gradient(135deg, #c9a227, #a88820);\n    border-radius: 14px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n}\n\n.vdm-panel-icon svg {\n    color: #0d1117;\n}\n\n.vdm-panel-title {\n    font-size: 22px;\n    font-weight: 700;\n    margin: 0 0 6px 0;\n    color: #ffffff;\n}\n\n.vdm-panel-desc {\n    font-size: 14px;\n    color: #8b949e;\n    margin: 0;\n}\n\n\/* ============================================\n   VENDOR CATEGORIES\n   ============================================ *\/\n.vdm-category {\n    margin-bottom: 32px;\n}\n\n.vdm-category:last-child {\n    margin-bottom: 0;\n}\n\n.vdm-category-header {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n    margin-bottom: 16px;\n}\n\n.vdm-category-icon {\n    width: 36px;\n    height: 36px;\n    background: rgba(255,255,255,0.05);\n    border-radius: 10px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.vdm-category-icon svg {\n    width: 18px;\n    height: 18px;\n    color: #8b949e;\n}\n\n.vdm-category-name {\n    font-size: 13px;\n    font-weight: 700;\n    color: #c9a227;\n    text-transform: uppercase;\n    letter-spacing: 0.8px;\n    flex: 1;\n}\n\n.vdm-category-badge {\n    font-size: 11px;\n    color: #6e7681;\n    background: rgba(255,255,255,0.04);\n    padding: 4px 12px;\n    border-radius: 20px;\n}\n\n\/* ============================================\n   VENDOR GRID\n   ============================================ *\/\n.vdm-vendor-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\n    gap: 10px;\n}\n\n.vdm-vendor-item {\n    position: relative;\n    background: rgba(255,255,255,0.02);\n    border: 2px solid rgba(255,255,255,0.06);\n    border-radius: 10px;\n    padding: 16px 12px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    text-align: center;\n}\n\n.vdm-vendor-item:hover {\n    background: rgba(255,255,255,0.04);\n    border-color: rgba(201, 162, 39, 0.3);\n    transform: translateY(-2px);\n}\n\n.vdm-vendor-item.selected {\n    background: rgba(201, 162, 39, 0.1);\n    border-color: #c9a227;\n}\n\n.vdm-vendor-logo {\n    width: 40px;\n    height: 40px;\n    border-radius: 10px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin: 0 auto 10px;\n    font-size: 11px;\n    font-weight: 800;\n    color: #fff;\n    letter-spacing: -0.5px;\n}\n\n.vdm-vendor-name {\n    font-size: 12px;\n    font-weight: 600;\n    color: #e6edf3;\n    margin: 0;\n    line-height: 1.3;\n}\n\n.vdm-vendor-item.selected .vdm-vendor-name {\n    color: #c9a227;\n}\n\n.vdm-vendor-check {\n    position: absolute;\n    top: -8px;\n    right: -8px;\n    width: 22px;\n    height: 22px;\n    background: #c9a227;\n    border-radius: 50%;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    box-shadow: 0 2px 8px rgba(201, 162, 39, 0.4);\n}\n\n.vdm-vendor-item.selected .vdm-vendor-check {\n    display: flex;\n}\n\n.vdm-vendor-check svg {\n    width: 12px;\n    height: 12px;\n    color: #0d1117;\n}\n\n\/* ============================================\n   SELECTION FOOTER\n   ============================================ *\/\n.vdm-selection-footer {\n    background: linear-gradient(135deg, rgba(201, 162, 39, 0.08), rgba(201, 162, 39, 0.02));\n    border: 1px solid rgba(201, 162, 39, 0.2);\n    border-radius: 12px;\n    padding: 20px 28px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    gap: 20px;\n    margin-top: 32px;\n}\n\n.vdm-selection-info {\n    display: flex;\n    align-items: center;\n    gap: 16px;\n}\n\n.vdm-selection-count {\n    font-size: 36px;\n    font-weight: 800;\n    color: #c9a227;\n    line-height: 1;\n}\n\n.vdm-selection-text {\n    font-size: 14px;\n    color: #8b949e;\n}\n\n.vdm-selection-text strong {\n    color: #e6edf3;\n    display: block;\n}\n\n\/* ============================================\n   BUTTONS\n   ============================================ *\/\n.vdm-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    padding: 14px 32px;\n    border-radius: 8px;\n    font-size: 15px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.2s;\n    border: none;\n    font-family: inherit;\n}\n\n.vdm-btn-primary {\n    background: linear-gradient(135deg, #c9a227, #a88820);\n    color: #0d1117;\n    box-shadow: 0 4px 14px rgba(201, 162, 39, 0.25);\n}\n\n.vdm-btn-primary:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(201, 162, 39, 0.35);\n}\n\n.vdm-btn-primary:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n    transform: none;\n    box-shadow: none;\n}\n\n.vdm-btn-secondary {\n    background: rgba(255,255,255,0.05);\n    color: #e6edf3;\n    border: 1px solid rgba(255,255,255,0.15);\n}\n\n.vdm-btn-secondary:hover {\n    background: rgba(255,255,255,0.1);\n    border-color: rgba(255,255,255,0.25);\n}\n\n.vdm-btn-danger {\n    background: linear-gradient(135deg, #dc2626, #991b1b);\n    color: #fff;\n}\n\n\/* ============================================\n   RESULTS SECTION\n   ============================================ *\/\n.vdm-results {\n    display: none;\n}\n\n.vdm-results.active {\n    display: block;\n}\n\n\/* Risk Score Card *\/\n.vdm-risk-hero {\n    background: linear-gradient(135deg, rgba(220, 38, 38, 0.08), rgba(245, 158, 11, 0.05));\n    border: 1px solid rgba(220, 38, 38, 0.15);\n    border-radius: 20px;\n    padding: 48px 32px;\n    text-align: center;\n    margin-bottom: 32px;\n    position: relative;\n    overflow: hidden;\n}\n\n.vdm-risk-hero::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 4px;\n    background: linear-gradient(90deg, #ef4444, #f97316, #eab308);\n}\n\n.vdm-risk-label {\n    font-size: 11px;\n    text-transform: uppercase;\n    letter-spacing: 2px;\n    color: #8b949e;\n    margin-bottom: 12px;\n}\n\n.vdm-risk-score {\n    font-size: 96px;\n    font-weight: 900;\n    line-height: 1;\n    margin-bottom: 8px;\n    letter-spacing: -4px;\n}\n\n.vdm-risk-score.critical { color: #ef4444; }\n.vdm-risk-score.high { color: #f97316; }\n.vdm-risk-score.medium { color: #eab308; }\n.vdm-risk-score.low { color: #22c55e; }\n\n.vdm-risk-level {\n    font-size: 20px;\n    font-weight: 700;\n    margin-bottom: 16px;\n}\n\n.vdm-risk-level.critical { color: #ef4444; }\n.vdm-risk-level.high { color: #f97316; }\n.vdm-risk-level.medium { color: #eab308; }\n.vdm-risk-level.low { color: #22c55e; }\n\n.vdm-risk-summary {\n    font-size: 15px;\n    color: #8b949e;\n    max-width: 550px;\n    margin: 0 auto;\n    line-height: 1.7;\n}\n\n\/* Stats Grid *\/\n.vdm-stats-grid {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 16px;\n    margin-bottom: 32px;\n}\n\n.vdm-stat-card {\n    background: rgba(255,255,255,0.02);\n    border: 1px solid rgba(255,255,255,0.06);\n    border-radius: 12px;\n    padding: 24px 20px;\n    text-align: center;\n}\n\n.vdm-stat-value {\n    font-size: 36px;\n    font-weight: 800;\n    color: #fff;\n    line-height: 1;\n    margin-bottom: 8px;\n}\n\n.vdm-stat-value.critical { color: #ef4444; }\n.vdm-stat-value.warning { color: #f59e0b; }\n.vdm-stat-value.info { color: #3b82f6; }\n\n.vdm-stat-label {\n    font-size: 11px;\n    color: #6e7681;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n\/* Findings Section *\/\n.vdm-findings {\n    margin-bottom: 32px;\n}\n\n.vdm-findings-header {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n    margin-bottom: 20px;\n}\n\n.vdm-findings-icon {\n    width: 44px;\n    height: 44px;\n    border-radius: 12px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.vdm-findings-icon.critical {\n    background: rgba(239, 68, 68, 0.12);\n    color: #ef4444;\n}\n\n.vdm-findings-icon.warning {\n    background: rgba(245, 158, 11, 0.12);\n    color: #f59e0b;\n}\n\n.vdm-findings-icon.info {\n    background: rgba(59, 130, 246, 0.12);\n    color: #3b82f6;\n}\n\n.vdm-findings-title {\n    font-size: 18px;\n    font-weight: 700;\n    color: #fff;\n    margin: 0;\n}\n\n.vdm-findings-count {\n    font-size: 12px;\n    color: #6e7681;\n    background: rgba(255,255,255,0.05);\n    padding: 4px 12px;\n    border-radius: 20px;\n    margin-left: auto;\n}\n\n\/* Finding Card *\/\n.vdm-finding {\n    background: rgba(255,255,255,0.015);\n    border: 1px solid rgba(255,255,255,0.05);\n    border-radius: 12px;\n    padding: 24px;\n    margin-bottom: 12px;\n    border-left: 4px solid;\n    transition: all 0.2s;\n}\n\n.vdm-finding:hover {\n    background: rgba(255,255,255,0.025);\n}\n\n.vdm-finding.critical { border-left-color: #ef4444; }\n.vdm-finding.warning { border-left-color: #f59e0b; }\n.vdm-finding.info { border-left-color: #3b82f6; }\n\n.vdm-finding-top {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 16px;\n    margin-bottom: 12px;\n}\n\n.vdm-finding-name {\n    font-size: 16px;\n    font-weight: 600;\n    color: #e6edf3;\n    margin: 0;\n}\n\n.vdm-finding-type {\n    font-size: 12px;\n    color: #6e7681;\n    margin-top: 2px;\n}\n\n.vdm-finding-impact {\n    font-size: 11px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    padding: 5px 12px;\n    border-radius: 6px;\n    flex-shrink: 0;\n}\n\n.vdm-finding-impact.critical {\n    background: rgba(239, 68, 68, 0.15);\n    color: #ef4444;\n}\n\n.vdm-finding-impact.warning {\n    background: rgba(245, 158, 11, 0.15);\n    color: #f59e0b;\n}\n\n.vdm-finding-desc {\n    font-size: 14px;\n    color: #8b949e;\n    margin: 0 0 16px 0;\n    line-height: 1.6;\n}\n\n.vdm-finding-vendors {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.vdm-vendor-tag {\n    font-size: 11px;\n    font-weight: 600;\n    background: rgba(255,255,255,0.06);\n    color: #8b949e;\n    padding: 5px 12px;\n    border-radius: 6px;\n}\n\n\/* Feb 3rd Simulation *\/\n.vdm-simulation {\n    background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), rgba(59, 130, 246, 0.05));\n    border: 1px solid rgba(139, 92, 246, 0.2);\n    border-radius: 16px;\n    padding: 32px;\n    margin-bottom: 32px;\n}\n\n.vdm-simulation-header {\n    display: flex;\n    align-items: center;\n    gap: 16px;\n    margin-bottom: 24px;\n}\n\n.vdm-simulation-icon {\n    width: 48px;\n    height: 48px;\n    background: rgba(139, 92, 246, 0.15);\n    border-radius: 12px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: #a78bfa;\n}\n\n.vdm-simulation-title {\n    font-size: 18px;\n    font-weight: 700;\n    color: #fff;\n    margin: 0 0 4px 0;\n}\n\n.vdm-simulation-subtitle {\n    font-size: 13px;\n    color: #8b949e;\n    margin: 0;\n}\n\n.vdm-cascade-timeline {\n    position: relative;\n    padding-left: 32px;\n}\n\n.vdm-cascade-timeline::before {\n    content: '';\n    position: absolute;\n    left: 11px;\n    top: 0;\n    bottom: 0;\n    width: 2px;\n    background: linear-gradient(180deg, #8b5cf6, #3b82f6, #ef4444);\n}\n\n.vdm-cascade-event {\n    position: relative;\n    padding: 16px 0 24px;\n}\n\n.vdm-cascade-event::before {\n    content: '';\n    position: absolute;\n    left: -32px;\n    top: 20px;\n    width: 12px;\n    height: 12px;\n    border-radius: 50%;\n    background: #8b5cf6;\n    border: 3px solid #0d1117;\n}\n\n.vdm-cascade-event.warning::before { background: #f59e0b; }\n.vdm-cascade-event.critical::before { background: #ef4444; }\n\n.vdm-cascade-time {\n    font-size: 11px;\n    font-weight: 700;\n    color: #8b5cf6;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 6px;\n}\n\n.vdm-cascade-event.warning .vdm-cascade-time { color: #f59e0b; }\n.vdm-cascade-event.critical .vdm-cascade-time { color: #ef4444; }\n\n.vdm-cascade-title {\n    font-size: 14px;\n    font-weight: 600;\n    color: #e6edf3;\n    margin: 0 0 4px 0;\n}\n\n.vdm-cascade-desc {\n    font-size: 13px;\n    color: #8b949e;\n    margin: 0;\n}\n\n.vdm-cascade-affected {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n    margin-top: 10px;\n}\n\n\/* Recommendations *\/\n.vdm-recommendations {\n    background: linear-gradient(135deg, rgba(34, 197, 94, 0.06), rgba(201, 162, 39, 0.04));\n    border: 1px solid rgba(34, 197, 94, 0.15);\n    border-radius: 16px;\n    padding: 32px;\n    margin-bottom: 32px;\n}\n\n.vdm-rec-header {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n    margin-bottom: 24px;\n}\n\n.vdm-rec-icon {\n    width: 44px;\n    height: 44px;\n    background: rgba(34, 197, 94, 0.12);\n    border-radius: 12px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: #22c55e;\n}\n\n.vdm-rec-title {\n    font-size: 18px;\n    font-weight: 700;\n    color: #fff;\n    margin: 0;\n}\n\n.vdm-rec-list {\n    display: grid;\n    gap: 16px;\n}\n\n.vdm-rec-item {\n    display: flex;\n    gap: 16px;\n    padding: 20px;\n    background: rgba(0,0,0,0.2);\n    border-radius: 12px;\n}\n\n.vdm-rec-num {\n    width: 32px;\n    height: 32px;\n    background: linear-gradient(135deg, #c9a227, #a88820);\n    color: #0d1117;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 14px;\n    font-weight: 700;\n    flex-shrink: 0;\n}\n\n.vdm-rec-content h4 {\n    font-size: 15px;\n    font-weight: 600;\n    color: #e6edf3;\n    margin: 0 0 6px 0;\n}\n\n.vdm-rec-content p {\n    font-size: 13px;\n    color: #8b949e;\n    margin: 0;\n    line-height: 1.6;\n}\n\n\/* CTA Section *\/\n.vdm-cta {\n    background: linear-gradient(135deg, #1a2332, #0d1117);\n    border: 1px solid rgba(255,255,255,0.08);\n    border-radius: 16px;\n    padding: 48px 40px;\n    text-align: center;\n}\n\n.vdm-cta h3 {\n    font-size: 26px;\n    font-weight: 700;\n    color: #fff;\n    margin: 0 0 12px 0;\n}\n\n.vdm-cta p {\n    font-size: 15px;\n    color: #8b949e;\n    margin: 0 auto 28px;\n    max-width: 520px;\n    line-height: 1.7;\n}\n\n.vdm-cta-buttons {\n    display: flex;\n    justify-content: center;\n    gap: 16px;\n    flex-wrap: wrap;\n}\n\n\/* Pillar Badge *\/\n.vdm-pillar-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: rgba(201, 162, 39, 0.1);\n    border: 1px solid rgba(201, 162, 39, 0.25);\n    padding: 8px 16px;\n    border-radius: 6px;\n    font-size: 11px;\n    font-weight: 700;\n    color: #c9a227;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 24px;\n}\n\n\/* ============================================\n   RESPONSIVE\n   ============================================ *\/\n@media (max-width: 900px) {\n    .vdm-stats-grid {\n        grid-template-columns: repeat(2, 1fr);\n    }\n    \n    .vdm-progress {\n        flex-wrap: wrap;\n    }\n    \n    .vdm-progress-line {\n        display: none;\n    }\n}\n\n@media (max-width: 640px) {\n    .vdm-container {\n        padding: 32px 16px;\n    }\n    \n    .vdm-panel {\n        padding: 24px 20px;\n    }\n    \n    .vdm-vendor-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 8px;\n    }\n    \n    .vdm-vendor-item {\n        padding: 14px 10px;\n    }\n    \n    .vdm-selection-footer {\n        flex-direction: column;\n        text-align: center;\n    }\n    \n    .vdm-stats-grid {\n        grid-template-columns: 1fr 1fr;\n        gap: 12px;\n    }\n    \n    .vdm-stat-card {\n        padding: 20px 16px;\n    }\n    \n    .vdm-stat-value {\n        font-size: 28px;\n    }\n    \n    .vdm-risk-score {\n        font-size: 72px;\n    }\n    \n    .vdm-finding {\n        padding: 20px;\n    }\n    \n    .vdm-finding-top {\n        flex-direction: column;\n        gap: 12px;\n    }\n    \n    .vdm-cta {\n        padding: 36px 24px;\n    }\n}\n<\/style>\n\n<div class=\"vdm-container\">\n    <!-- Header -->\n    <header class=\"vdm-header\">\n        <div class=\"vdm-eyebrow\">\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polygon points=\"10.29 6.72 10.29 17.28 16.21 12 10.29 6.72\"\/><\/svg>\n            Critical Infrastructure Analysis\n        <\/div>\n        <h1 class=\"vdm-title\">Vendor Dependency<br><span>Correlation Mapper<\/span><\/h1>\n        <p class=\"vdm-subtitle\">Reveal the hidden upstream dependencies your &#8220;multi-cloud&#8221; strategy shares. Discover why diversification on paper becomes single points of failure in reality.<\/p>\n        <div class=\"vdm-incident-banner\">\n            <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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>\n            <p><strong>February 3rd, 2026:<\/strong> AWS, Azure, GCP, Cloudflare, and Fastly all degraded simultaneously. Multi-cloud failed because their dependencies correlated.<\/p>\n        <\/div>\n    <\/header>\n\n    <!-- Progress -->\n    <div class=\"vdm-progress\">\n        <div class=\"vdm-progress-step active\" id=\"prog-step1\">\n            <div class=\"vdm-progress-num\">1<\/div>\n            <span class=\"vdm-progress-label\">Select Vendors<\/span>\n        <\/div>\n        <div class=\"vdm-progress-line\"><\/div>\n        <div class=\"vdm-progress-step\" id=\"prog-step2\">\n            <div class=\"vdm-progress-num\">2<\/div>\n            <span class=\"vdm-progress-label\">View Analysis<\/span>\n        <\/div>\n    <\/div>\n\n    <!-- Step 1: Selection -->\n    <div id=\"vdm-selection-step\">\n        <div class=\"vdm-panel\">\n            <div class=\"vdm-panel-header\">\n                <div class=\"vdm-panel-icon\">\n                    <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>\n                <\/div>\n                <div>\n                    <h2 class=\"vdm-panel-title\">Select Your Technology Stack<\/h2>\n                    <p class=\"vdm-panel-desc\">Choose all vendors and services your organization currently depends on. We&#8217;ll map their upstream dependencies.<\/p>\n                <\/div>\n            <\/div>\n\n            <!-- Cloud Infrastructure -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">Cloud Infrastructure<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-cloud\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"cloud\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"aws\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #ff9900, #ec7211);\">AWS<\/div>\n                        <p class=\"vdm-vendor-name\">Amazon AWS<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"azure\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0078d4, #00bcf2);\">Az<\/div>\n                        <p class=\"vdm-vendor-name\">Microsoft Azure<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"gcp\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #4285f4, #34a853);\">GCP<\/div>\n                        <p class=\"vdm-vendor-name\">Google Cloud<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"oracle\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #f80000, #c41e3a);\">OCI<\/div>\n                        <p class=\"vdm-vendor-name\">Oracle Cloud<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"ibm\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #054ada, #0530ad);\">IBM<\/div>\n                        <p class=\"vdm-vendor-name\">IBM Cloud<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"digitalocean\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0080ff, #0040ff);\">DO<\/div>\n                        <p class=\"vdm-vendor-name\">DigitalOcean<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- CDN \/ Edge -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">CDN \/ Edge Network<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-cdn\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"cdn\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"cloudflare\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #f48120, #faad3f);\">CF<\/div>\n                        <p class=\"vdm-vendor-name\">Cloudflare<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"akamai\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0096d6, #00729c);\">Ak<\/div>\n                        <p class=\"vdm-vendor-name\">Akamai<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"fastly\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #ff282d, #cc0000);\">Fa<\/div>\n                        <p class=\"vdm-vendor-name\">Fastly<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"cloudfront\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #8c4fff, #ff9900);\">CF<\/div>\n                        <p class=\"vdm-vendor-name\">CloudFront<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"azurecdn\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0078d4, #50e6ff);\">Az<\/div>\n                        <p class=\"vdm-vendor-name\">Azure CDN<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- DNS -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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>\n                    <\/div>\n                    <span class=\"vdm-category-name\">DNS Providers<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-dns\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"dns\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"route53\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #8c4fff, #e47911);\">53<\/div>\n                        <p class=\"vdm-vendor-name\">Route 53<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"cloudflareDns\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #f48120, #faad3f);\">CF<\/div>\n                        <p class=\"vdm-vendor-name\">Cloudflare DNS<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"azureDns\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0078d4, #00bcf2);\">Az<\/div>\n                        <p class=\"vdm-vendor-name\">Azure DNS<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"googleDns\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #4285f4, #34a853);\">G<\/div>\n                        <p class=\"vdm-vendor-name\">Google DNS<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"ns1\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #7b68ee, #483d8b);\">NS1<\/div>\n                        <p class=\"vdm-vendor-name\">NS1<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Identity -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">Identity \/ Authentication<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-identity\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"identity\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"okta\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #007dc1, #00297a);\">Ok<\/div>\n                        <p class=\"vdm-vendor-name\">Okta<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"entra\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0078d4, #00bcf2);\">En<\/div>\n                        <p class=\"vdm-vendor-name\">Microsoft Entra<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"auth0\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #eb5424, #f25022);\">A0<\/div>\n                        <p class=\"vdm-vendor-name\">Auth0<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"ping\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #b71c1c, #d32f2f);\">Pi<\/div>\n                        <p class=\"vdm-vendor-name\">Ping Identity<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"cognito\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #dd344c, #ff9900);\">Co<\/div>\n                        <p class=\"vdm-vendor-name\">AWS Cognito<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Monitoring -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 12h-4l-3 9L9 3l-3 9H2\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">Monitoring \/ Observability<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-monitoring\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"monitoring\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"datadog\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #632ca6, #4f2b99);\">DD<\/div>\n                        <p class=\"vdm-vendor-name\">Datadog<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"newrelic\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #008c99, #00ac69);\">NR<\/div>\n                        <p class=\"vdm-vendor-name\">New Relic<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"splunk\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #65a637, #4b8c2e);\">Sp<\/div>\n                        <p class=\"vdm-vendor-name\">Splunk<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"pagerduty\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #06ac38, #047d29);\">PD<\/div>\n                        <p class=\"vdm-vendor-name\">PagerDuty<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"dynatrace\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #1496ff, #6f2da8);\">Dy<\/div>\n                        <p class=\"vdm-vendor-name\">Dynatrace<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Communication -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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                    <\/div>\n                    <span class=\"vdm-category-name\">Communication<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-comms\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"comms\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"slack\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #4a154b, #611f69);\">Sl<\/div>\n                        <p class=\"vdm-vendor-name\">Slack<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"teams\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #5059c9, #7b83eb);\">Te<\/div>\n                        <p class=\"vdm-vendor-name\">MS Teams<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"zoom\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #2d8cff, #0b5cff);\">Zm<\/div>\n                        <p class=\"vdm-vendor-name\">Zoom<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"twilio\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #f22f46, #cf1124);\">Tw<\/div>\n                        <p class=\"vdm-vendor-name\">Twilio<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Data Platforms -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\/><path d=\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"\/><path d=\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">Data Platforms<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-data\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"data\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"snowflake\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #29b5e8, #0078d4);\">Sf<\/div>\n                        <p class=\"vdm-vendor-name\">Snowflake<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"databricks\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #ff3621, #ff6347);\">Db<\/div>\n                        <p class=\"vdm-vendor-name\">Databricks<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"mongodb\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #4db33d, #3fa037);\">Mo<\/div>\n                        <p class=\"vdm-vendor-name\">MongoDB<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"elastic\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #fed10a, #f0b90b);\">El<\/div>\n                        <p class=\"vdm-vendor-name\">Elastic<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- AI \/ ML -->\n            <div class=\"vdm-category\">\n                <div class=\"vdm-category-header\">\n                    <div class=\"vdm-category-icon\">\n                        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2a2 2 0 0 1 2 2c0 .74-.4 1.39-1 1.73V7h1a7 7 0 0 1 7 7h1a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-1H2a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h1a7 7 0 0 1 7-7h1V5.73A2 2 0 0 1 12 2z\"\/><circle cx=\"7.5\" cy=\"14.5\" r=\"1.5\"\/><circle cx=\"16.5\" cy=\"14.5\" r=\"1.5\"\/><\/svg>\n                    <\/div>\n                    <span class=\"vdm-category-name\">AI \/ Machine Learning<\/span>\n                    <span class=\"vdm-category-badge\" id=\"count-ai\">0 selected<\/span>\n                <\/div>\n                <div class=\"vdm-vendor-grid\" data-category=\"ai\">\n                    <div class=\"vdm-vendor-item\" data-vendor=\"openai\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #10a37f, #1a7f64);\">OA<\/div>\n                        <p class=\"vdm-vendor-name\">OpenAI<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"anthropic\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #d4a373, #8b6914);\">An<\/div>\n                        <p class=\"vdm-vendor-name\">Anthropic<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"azureOpenai\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #0078d4, #10a37f);\">AO<\/div>\n                        <p class=\"vdm-vendor-name\">Azure OpenAI<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"bedrock\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #ff9900, #232f3e);\">Bd<\/div>\n                        <p class=\"vdm-vendor-name\">AWS Bedrock<\/p>\n                    <\/div>\n                    <div class=\"vdm-vendor-item\" data-vendor=\"vertexai\">\n                        <div class=\"vdm-vendor-check\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n                        <div class=\"vdm-vendor-logo\" style=\"background: linear-gradient(135deg, #4285f4, #ea4335);\">Vx<\/div>\n                        <p class=\"vdm-vendor-name\">Vertex AI<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Selection Footer -->\n            <div class=\"vdm-selection-footer\">\n                <div class=\"vdm-selection-info\">\n                    <div class=\"vdm-selection-count\" id=\"total-count\">0<\/div>\n                    <div class=\"vdm-selection-text\">\n                        <strong>Vendors Selected<\/strong>\n                        Select at least 3 for meaningful analysis\n                    <\/div>\n                <\/div>\n                <button class=\"vdm-btn vdm-btn-primary\" id=\"analyze-btn\" disabled>\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><path d=\"M21 21l-4.35-4.35\"\/><\/svg>\n                    Map Dependencies\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Step 2: Results -->\n    <div id=\"vdm-results-step\" class=\"vdm-results\"><\/div>\n<\/div>\n\n<script>\n(function() {\n    'use strict';\n\n    \/\/ ============================================\n    \/\/ COMPREHENSIVE DEPENDENCY DATABASE\n    \/\/ ============================================\n    const VENDORS = {\n        \/\/ Cloud Infrastructure\n        aws: {\n            name: \"Amazon AWS\", category: \"cloud\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\", \"telia\", \"ntt\"],\n                colocation: [\"equinix\", \"digitalRealty\", \"coresite\"],\n                certificates: [\"digicert\", \"amazonTrust\"],\n                power: [\"pjm\", \"wecc\"],\n                dns: [\"awsInternal\"]\n            }\n        },\n        azure: {\n            name: \"Microsoft Azure\", category: \"cloud\",\n            deps: {\n                backbone: [\"lumen\", \"ntt\", \"telia\", \"zayo\"],\n                colocation: [\"equinix\", \"digitalRealty\"],\n                certificates: [\"digicert\", \"microsoftPki\"],\n                power: [\"pjm\", \"entsoe\"],\n                dns: [\"azureInternal\"]\n            }\n        },\n        gcp: {\n            name: \"Google Cloud\", category: \"cloud\",\n            deps: {\n                backbone: [\"googleFiber\", \"lumen\", \"telia\"],\n                colocation: [\"google\", \"equinix\"],\n                certificates: [\"googleTrust\", \"digicert\"],\n                power: [\"wecc\", \"entsoe\"],\n                dns: [\"googleInternal\"]\n            }\n        },\n        oracle: {\n            name: \"Oracle Cloud\", category: \"cloud\",\n            deps: {\n                backbone: [\"lumen\", \"ntt\", \"zayo\"],\n                colocation: [\"equinix\", \"digitalRealty\"],\n                certificates: [\"digicert\"],\n                power: [\"pjm\", \"wecc\"],\n                dns: [\"dynInternal\"]\n            }\n        },\n        ibm: {\n            name: \"IBM Cloud\", category: \"cloud\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\"],\n                colocation: [\"equinix\", \"cyrusOne\"],\n                certificates: [\"digicert\"],\n                power: [\"pjm\"],\n                dns: [\"akamaiBackend\"]\n            }\n        },\n        digitalocean: {\n            name: \"DigitalOcean\", category: \"cloud\",\n            deps: {\n                backbone: [\"cogent\", \"ntt\"],\n                colocation: [\"equinix\"],\n                certificates: [\"letsencrypt\"],\n                power: [\"pjm\"],\n                dns: [\"cloudflareBackend\"]\n            }\n        },\n\n        \/\/ CDN\n        cloudflare: {\n            name: \"Cloudflare\", category: \"cdn\",\n            deps: {\n                backbone: [\"cogent\", \"ntt\", \"telia\", \"lumen\"],\n                colocation: [\"equinix\", \"coresite\", \"digitalRealty\"],\n                certificates: [\"digicert\", \"cloudflareInternal\"],\n                power: [\"global\"]\n            }\n        },\n        akamai: {\n            name: \"Akamai\", category: \"cdn\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\", \"ntt\", \"telia\"],\n                colocation: [\"equinix\", \"coresite\"],\n                certificates: [\"digicert\"],\n                power: [\"global\"]\n            }\n        },\n        fastly: {\n            name: \"Fastly\", category: \"cdn\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\", \"ntt\"],\n                colocation: [\"equinix\"],\n                certificates: [\"globalsign\", \"digicert\"],\n                power: [\"wecc\", \"pjm\"]\n            }\n        },\n        cloudfront: {\n            name: \"CloudFront\", category: \"cdn\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\", \"telia\"],\n                colocation: [\"equinix\", \"digitalRealty\"],\n                certificates: [\"amazonTrust\"],\n                power: [\"global\"],\n                parent: [\"aws\"]\n            }\n        },\n        azurecdn: {\n            name: \"Azure CDN\", category: \"cdn\",\n            deps: {\n                backbone: [\"lumen\", \"ntt\", \"verizonEdge\"],\n                colocation: [\"equinix\"],\n                certificates: [\"microsoftPki\"],\n                power: [\"global\"],\n                parent: [\"azure\"]\n            }\n        },\n\n        \/\/ DNS\n        route53: {\n            name: \"Route 53\", category: \"dns\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\"],\n                colocation: [\"equinix\"],\n                power: [\"pjm\", \"wecc\"],\n                parent: [\"aws\"]\n            }\n        },\n        cloudflareDns: {\n            name: \"Cloudflare DNS\", category: \"dns\",\n            deps: {\n                backbone: [\"cogent\", \"ntt\", \"telia\"],\n                colocation: [\"equinix\", \"coresite\"],\n                power: [\"global\"],\n                parent: [\"cloudflare\"]\n            }\n        },\n        azureDns: {\n            name: \"Azure DNS\", category: \"dns\",\n            deps: {\n                backbone: [\"lumen\", \"ntt\"],\n                colocation: [\"equinix\"],\n                power: [\"global\"],\n                parent: [\"azure\"]\n            }\n        },\n        googleDns: {\n            name: \"Google DNS\", category: \"dns\",\n            deps: {\n                backbone: [\"googleFiber\", \"lumen\"],\n                colocation: [\"google\", \"equinix\"],\n                power: [\"global\"],\n                parent: [\"gcp\"]\n            }\n        },\n        ns1: {\n            name: \"NS1\", category: \"dns\",\n            deps: {\n                backbone: [\"lumen\", \"cogent\"],\n                colocation: [\"equinix\"],\n                power: [\"pjm\"],\n                cloud: [\"aws\", \"gcp\"]\n            }\n        },\n\n        \/\/ Identity\n        okta: {\n            name: \"Okta\", category: \"identity\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        entra: {\n            name: \"Microsoft Entra\", category: \"identity\",\n            deps: {\n                cloud: [\"azure\"],\n                cdn: [\"akamai\", \"azurecdn\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"microsoftPki\"],\n                power: [\"global\"]\n            }\n        },\n        auth0: {\n            name: \"Auth0\", category: \"identity\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"],\n                parent: [\"okta\"]\n            }\n        },\n        ping: {\n            name: \"Ping Identity\", category: \"identity\",\n            deps: {\n                cloud: [\"aws\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        cognito: {\n            name: \"AWS Cognito\", category: \"identity\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudfront\"],\n                backbone: [\"lumen\", \"cogent\"],\n                certificates: [\"amazonTrust\"],\n                power: [\"pjm\"],\n                parent: [\"aws\"]\n            }\n        },\n\n        \/\/ Monitoring\n        datadog: {\n            name: \"Datadog\", category: \"monitoring\",\n            deps: {\n                cloud: [\"aws\", \"gcp\", \"azure\"],\n                cdn: [\"cloudflare\", \"fastly\"],\n                backbone: [\"lumen\", \"cogent\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n        newrelic: {\n            name: \"New Relic\", category: \"monitoring\",\n            deps: {\n                cloud: [\"aws\", \"gcp\"],\n                cdn: [\"akamai\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        splunk: {\n            name: \"Splunk\", category: \"monitoring\",\n            deps: {\n                cloud: [\"aws\", \"gcp\"],\n                cdn: [\"akamai\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        pagerduty: {\n            name: \"PagerDuty\", category: \"monitoring\",\n            deps: {\n                cloud: [\"aws\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        dynatrace: {\n            name: \"Dynatrace\", category: \"monitoring\",\n            deps: {\n                cloud: [\"aws\", \"azure\"],\n                cdn: [\"akamai\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n\n        \/\/ Communication\n        slack: {\n            name: \"Slack\", category: \"comms\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudflare\", \"fastly\"],\n                backbone: [\"lumen\", \"cogent\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        teams: {\n            name: \"Microsoft Teams\", category: \"comms\",\n            deps: {\n                cloud: [\"azure\"],\n                cdn: [\"akamai\", \"azurecdn\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"microsoftPki\"],\n                power: [\"global\"],\n                parent: [\"azure\"]\n            }\n        },\n        zoom: {\n            name: \"Zoom\", category: \"comms\",\n            deps: {\n                cloud: [\"aws\", \"oracle\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n        twilio: {\n            name: \"Twilio\", category: \"comms\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\", \"cogent\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n\n        \/\/ Data\n        snowflake: {\n            name: \"Snowflake\", category: \"data\",\n            deps: {\n                cloud: [\"aws\", \"azure\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n        databricks: {\n            name: \"Databricks\", category: \"data\",\n            deps: {\n                cloud: [\"aws\", \"azure\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n        mongodb: {\n            name: \"MongoDB Atlas\", category: \"data\",\n            deps: {\n                cloud: [\"aws\", \"azure\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n        elastic: {\n            name: \"Elastic Cloud\", category: \"data\",\n            deps: {\n                cloud: [\"aws\", \"azure\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"multiRegion\"]\n            }\n        },\n\n        \/\/ AI\n        openai: {\n            name: \"OpenAI\", category: \"ai\",\n            deps: {\n                cloud: [\"azure\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        anthropic: {\n            name: \"Anthropic\", category: \"ai\",\n            deps: {\n                cloud: [\"aws\", \"gcp\"],\n                cdn: [\"cloudflare\"],\n                backbone: [\"lumen\"],\n                certificates: [\"digicert\"],\n                power: [\"wecc\"]\n            }\n        },\n        azureOpenai: {\n            name: \"Azure OpenAI\", category: \"ai\",\n            deps: {\n                cloud: [\"azure\"],\n                cdn: [\"azurecdn\"],\n                backbone: [\"lumen\", \"ntt\"],\n                certificates: [\"microsoftPki\"],\n                power: [\"global\"],\n                model: [\"openai\"],\n                parent: [\"azure\"]\n            }\n        },\n        bedrock: {\n            name: \"AWS Bedrock\", category: \"ai\",\n            deps: {\n                cloud: [\"aws\"],\n                cdn: [\"cloudfront\"],\n                backbone: [\"lumen\", \"cogent\"],\n                certificates: [\"amazonTrust\"],\n                power: [\"pjm\"],\n                model: [\"anthropic\"],\n                parent: [\"aws\"]\n            }\n        },\n        vertexai: {\n            name: \"Vertex AI\", category: \"ai\",\n            deps: {\n                cloud: [\"gcp\"],\n                cdn: [\"googleCdn\"],\n                backbone: [\"googleFiber\", \"lumen\"],\n                certificates: [\"googleTrust\"],\n                power: [\"global\"],\n                parent: [\"gcp\"]\n            }\n        }\n    };\n\n    \/\/ Upstream dependency metadata\n    const UPSTREAM_INFO = {\n        lumen: { name: \"Lumen (Level 3)\", type: \"Tier 1 Network Backbone\", severity: \"critical\", desc: \"One of the largest global backbone networks. Carries 70%+ of internet traffic in many regions.\" },\n        cogent: { name: \"Cogent Communications\", type: \"Tier 1 Network Backbone\", severity: \"critical\", desc: \"Major global backbone provider with extensive peering relationships.\" },\n        telia: { name: \"Telia Carrier\", type: \"Tier 1 Network Backbone\", severity: \"high\", desc: \"Primary backbone for European and transatlantic traffic.\" },\n        ntt: { name: \"NTT Communications\", type: \"Tier 1 Network Backbone\", severity: \"high\", desc: \"Dominant backbone for Asia-Pacific and global enterprise connections.\" },\n        zayo: { name: \"Zayo Group\", type: \"Network Backbone\", severity: \"medium\", desc: \"Major North American fiber network provider.\" },\n        googleFiber: { name: \"Google Network\", type: \"Private Backbone\", severity: \"medium\", desc: \"Google's proprietary global network infrastructure.\" },\n        verizonEdge: { name: \"Verizon Edgecast\", type: \"Network\/CDN\", severity: \"medium\", desc: \"Verizon's edge network infrastructure.\" },\n        equinix: { name: \"Equinix\", type: \"Colocation\/IX\", severity: \"critical\", desc: \"World's largest colocation and interconnection provider. Hosts most cloud providers.\" },\n        digitalRealty: { name: \"Digital Realty\", type: \"Colocation\", severity: \"high\", desc: \"Major data center provider, often hosts cloud provider presence.\" },\n        coresite: { name: \"CoreSite\", type: \"Colocation\", severity: \"medium\", desc: \"Regional data center provider in key US markets.\" },\n        cyrusOne: { name: \"CyrusOne\", type: \"Colocation\", severity: \"medium\", desc: \"Enterprise data center provider.\" },\n        digicert: { name: \"DigiCert\", type: \"Certificate Authority\", severity: \"critical\", desc: \"Issues 60%+ of enterprise TLS certificates. CA failure breaks HTTPS everywhere.\" },\n        letsencrypt: { name: \"Let's Encrypt\", type: \"Certificate Authority\", severity: \"high\", desc: \"Free CA powering majority of web encryption. ISRG operated.\" },\n        globalsign: { name: \"GlobalSign\", type: \"Certificate Authority\", severity: \"medium\", desc: \"Major commercial certificate authority.\" },\n        amazonTrust: { name: \"Amazon Trust Services\", type: \"Certificate Authority\", severity: \"medium\", desc: \"AWS's internal CA for AWS-hosted services.\" },\n        microsoftPki: { name: \"Microsoft PKI\", type: \"Certificate Authority\", severity: \"medium\", desc: \"Microsoft's internal CA infrastructure.\" },\n        googleTrust: { name: \"Google Trust Services\", type: \"Certificate Authority\", severity: \"medium\", desc: \"Google's internal CA for GCP services.\" },\n        pjm: { name: \"PJM Interconnection\", type: \"Power Grid (US East)\", severity: \"high\", desc: \"Coordinates electricity in 13 US states. Powers most US-East data centers.\" },\n        wecc: { name: \"WECC\", type: \"Power Grid (US West)\", severity: \"high\", desc: \"Western US power grid coordination. Powers US-West cloud regions.\" },\n        entsoe: { name: \"ENTSO-E\", type: \"Power Grid (Europe)\", severity: \"medium\", desc: \"European power grid coordination body.\" }\n    };\n\n    \/\/ ============================================\n    \/\/ STATE\n    \/\/ ============================================\n    let selectedVendors = new Set();\n\n    \/\/ ============================================\n    \/\/ DOM REFERENCES\n    \/\/ ============================================\n    const vendorItems = document.querySelectorAll('.vdm-vendor-item');\n    const analyzeBtn = document.getElementById('analyze-btn');\n    const totalCount = document.getElementById('total-count');\n    const selectionStep = document.getElementById('vdm-selection-step');\n    const resultsStep = document.getElementById('vdm-results-step');\n    const progStep1 = document.getElementById('prog-step1');\n    const progStep2 = document.getElementById('prog-step2');\n\n    \/\/ ============================================\n    \/\/ EVENT LISTENERS\n    \/\/ ============================================\n    vendorItems.forEach(item => {\n        item.addEventListener('click', () => {\n            const vendor = item.dataset.vendor;\n            if (selectedVendors.has(vendor)) {\n                selectedVendors.delete(vendor);\n                item.classList.remove('selected');\n            } else {\n                selectedVendors.add(vendor);\n                item.classList.add('selected');\n            }\n            updateUI();\n        });\n    });\n\n    analyzeBtn.addEventListener('click', performAnalysis);\n\n    \/\/ ============================================\n    \/\/ UI UPDATE\n    \/\/ ============================================\n    function updateUI() {\n        const counts = {};\n        ['cloud', 'cdn', 'dns', 'identity', 'monitoring', 'comms', 'data', 'ai'].forEach(cat => counts[cat] = 0);\n        \n        selectedVendors.forEach(v => {\n            const vendor = VENDORS[v];\n            if (vendor) counts[vendor.category]++;\n        });\n\n        Object.keys(counts).forEach(cat => {\n            const el = document.getElementById(`count-${cat}`);\n            if (el) el.textContent = counts[cat] + ' selected';\n        });\n\n        totalCount.textContent = selectedVendors.size;\n        analyzeBtn.disabled = selectedVendors.size < 3;\n    }\n\n    \/\/ ============================================\n    \/\/ ANALYSIS ENGINE\n    \/\/ ============================================\n    function performAnalysis() {\n        const analysis = analyzeCorrelations();\n        renderResults(analysis);\n        \n        selectionStep.style.display = 'none';\n        resultsStep.classList.add('active');\n        progStep1.classList.remove('active');\n        progStep1.classList.add('complete');\n        progStep2.classList.add('active');\n        \n        window.scrollTo({ top: 0, behavior: 'smooth' });\n    }\n\n    function analyzeCorrelations() {\n        const sharedDeps = {};\n        \n        \/\/ Collect all dependencies from selected vendors\n        selectedVendors.forEach(vendorId => {\n            const vendor = VENDORS[vendorId];\n            if (!vendor || !vendor.deps) return;\n            \n            Object.entries(vendor.deps).forEach(([type, deps]) => {\n                if (!Array.isArray(deps)) return;\n                deps.forEach(dep => {\n                    if (!sharedDeps[dep]) {\n                        sharedDeps[dep] = { type, vendors: new Set() };\n                    }\n                    sharedDeps[dep].vendors.add(vendorId);\n                });\n            });\n        });\n\n        \/\/ Categorize correlations\n        const critical = [], high = [], medium = [];\n        \n        Object.entries(sharedDeps).forEach(([dep, data]) => {\n            if (data.vendors.size < 2) return;\n            \n            const info = UPSTREAM_INFO[dep] || { name: dep, type: data.type, severity: 'medium', desc: '' };\n            const vendorList = Array.from(data.vendors);\n            const pct = Math.round((vendorList.length \/ selectedVendors.size) * 100);\n            \n            const correlation = {\n                id: dep,\n                name: info.name,\n                type: info.type,\n                desc: info.desc,\n                vendors: vendorList,\n                vendorNames: vendorList.map(v => VENDORS[v]?.name || v),\n                count: vendorList.length,\n                percentage: pct\n            };\n\n            if (vendorList.length >= 5 || info.severity === 'critical') {\n                critical.push(correlation);\n            } else if (vendorList.length >= 3 || info.severity === 'high') {\n                high.push(correlation);\n            } else {\n                medium.push(correlation);\n            }\n        });\n\n        \/\/ Sort by impact\n        [critical, high, medium].forEach(arr => arr.sort((a, b) => b.count - a.count));\n\n        \/\/ Calculate risk score\n        let score = 0;\n        score += critical.length * 20;\n        score += high.length * 8;\n        score += medium.length * 2;\n        \n        \/\/ Bonus for high concentration\n        critical.forEach(c => { if (c.percentage >= 80) score += 15; });\n        \n        score = Math.min(100, score);\n\n        \/\/ Determine level\n        let level, levelText;\n        if (score >= 70) { level = 'critical'; levelText = 'Critical Correlation Risk'; }\n        else if (score >= 45) { level = 'high'; levelText = 'High Correlation Risk'; }\n        else if (score >= 20) { level = 'medium'; levelText = 'Moderate Correlation Risk'; }\n        else { level = 'low'; levelText = 'Low Correlation Risk'; }\n\n        return {\n            score,\n            level,\n            levelText,\n            totalVendors: selectedVendors.size,\n            critical,\n            high,\n            medium,\n            totalCorrelations: critical.length + high.length + medium.length,\n            singlePoints: critical.filter(c => c.percentage >= 75).length\n        };\n    }\n\n    \/\/ ============================================\n    \/\/ RENDER RESULTS\n    \/\/ ============================================\n    function renderResults(a) {\n        const html = `\n            <div class=\"vdm-pillar-badge\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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>\n                Pillar One: Architect for Failure\n            <\/div>\n\n            <!-- Risk Score -->\n            <div class=\"vdm-risk-hero\">\n                <div class=\"vdm-risk-label\">Correlation Risk Score<\/div>\n                <div class=\"vdm-risk-score ${a.level}\">${a.score}<\/div>\n                <div class=\"vdm-risk-level ${a.level}\">${a.levelText}<\/div>\n                <p class=\"vdm-risk-summary\">\n                    Your ${a.totalVendors} selected vendors share <strong>${a.totalCorrelations} hidden upstream dependencies<\/strong>. \n                    ${a.singlePoints > 0 ? `<strong>${a.singlePoints} dependencies<\/strong> affect 75%+ of your stack and represent critical single points of failure.` : ''}\n                    ${a.level === 'critical' ? 'A coordinated failure like February 3rd, 2026 would cascade across your \"diversified\" infrastructure.' : ''}\n                <\/p>\n            <\/div>\n\n            <!-- Stats -->\n            <div class=\"vdm-stats-grid\">\n                <div class=\"vdm-stat-card\">\n                    <div class=\"vdm-stat-value\">${a.totalVendors}<\/div>\n                    <div class=\"vdm-stat-label\">Vendors Analyzed<\/div>\n                <\/div>\n                <div class=\"vdm-stat-card\">\n                    <div class=\"vdm-stat-value critical\">${a.critical.length}<\/div>\n                    <div class=\"vdm-stat-label\">Critical Correlations<\/div>\n                <\/div>\n                <div class=\"vdm-stat-card\">\n                    <div class=\"vdm-stat-value warning\">${a.singlePoints}<\/div>\n                    <div class=\"vdm-stat-label\">Single Points of Failure<\/div>\n                <\/div>\n                <div class=\"vdm-stat-card\">\n                    <div class=\"vdm-stat-value info\">${a.totalCorrelations}<\/div>\n                    <div class=\"vdm-stat-label\">Shared Dependencies<\/div>\n                <\/div>\n            <\/div>\n\n            ${a.critical.length > 0 ? `\n            <!-- Critical Findings -->\n            <div class=\"vdm-findings\">\n                <div class=\"vdm-findings-header\">\n                    <div class=\"vdm-findings-icon critical\">\n                        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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>\n                    <\/div>\n                    <h3 class=\"vdm-findings-title\">Critical Shared Dependencies<\/h3>\n                    <span class=\"vdm-findings-count\">${a.critical.length} found<\/span>\n                <\/div>\n                ${a.critical.map(c => `\n                    <div class=\"vdm-finding critical\">\n                        <div class=\"vdm-finding-top\">\n                            <div>\n                                <h4 class=\"vdm-finding-name\">${c.name}<\/h4>\n                                <div class=\"vdm-finding-type\">${c.type}<\/div>\n                            <\/div>\n                            <span class=\"vdm-finding-impact critical\">${c.percentage}% of stack<\/span>\n                        <\/div>\n                        <p class=\"vdm-finding-desc\">${c.desc || `Shared by ${c.count} of your vendors. If this dependency fails, ${c.percentage}% of your infrastructure is affected.`}<\/p>\n                        <div class=\"vdm-finding-vendors\">\n                            ${c.vendorNames.map(v => `<span class=\"vdm-vendor-tag\">${v}<\/span>`).join('')}\n                        <\/div>\n                    <\/div>\n                `).join('')}\n            <\/div>\n            ` : ''}\n\n            ${a.high.length > 0 ? `\n            <!-- High Risk Findings -->\n            <div class=\"vdm-findings\">\n                <div class=\"vdm-findings-header\">\n                    <div class=\"vdm-findings-icon warning\">\n                        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n                    <\/div>\n                    <h3 class=\"vdm-findings-title\">High-Risk Correlations<\/h3>\n                    <span class=\"vdm-findings-count\">${a.high.length} found<\/span>\n                <\/div>\n                ${a.high.slice(0, 5).map(c => `\n                    <div class=\"vdm-finding warning\">\n                        <div class=\"vdm-finding-top\">\n                            <div>\n                                <h4 class=\"vdm-finding-name\">${c.name}<\/h4>\n                                <div class=\"vdm-finding-type\">${c.type}<\/div>\n                            <\/div>\n                            <span class=\"vdm-finding-impact warning\">${c.count} vendors<\/span>\n                        <\/div>\n                        <p class=\"vdm-finding-desc\">Shared by: ${c.vendorNames.join(', ')}<\/p>\n                    <\/div>\n                `).join('')}\n            <\/div>\n            ` : ''}\n\n            <!-- Feb 3rd Simulation -->\n            ${a.critical.length > 0 ? `\n            <div class=\"vdm-simulation\">\n                <div class=\"vdm-simulation-header\">\n                    <div class=\"vdm-simulation-icon\">\n                        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\/><\/svg>\n                    <\/div>\n                    <div>\n                        <h3 class=\"vdm-simulation-title\">February 3rd, 2026 Cascade Simulation<\/h3>\n                        <p class=\"vdm-simulation-subtitle\">How a similar correlated failure would affect your stack<\/p>\n                    <\/div>\n                <\/div>\n                <div class=\"vdm-cascade-timeline\">\n                    <div class=\"vdm-cascade-event\">\n                        <div class=\"vdm-cascade-time\">T+0 Minutes<\/div>\n                        <h4 class=\"vdm-cascade-title\">BGP Route Leak at Tier 1 Backbone<\/h4>\n                        <p class=\"vdm-cascade-desc\">Lumen\/Cogent backbone experiences routing instability affecting multiple downstream providers.<\/p>\n                    <\/div>\n                    <div class=\"vdm-cascade-event warning\">\n                        <div class=\"vdm-cascade-time\">T+3 Minutes<\/div>\n                        <h4 class=\"vdm-cascade-title\">Cloud Provider Connectivity Degrades<\/h4>\n                        <p class=\"vdm-cascade-desc\">Your cloud infrastructure and CDN services begin experiencing packet loss and latency spikes.<\/p>\n                        <div class=\"vdm-cascade-affected\">\n                            ${a.critical.filter(c => ['lumen', 'cogent', 'equinix'].includes(c.id)).flatMap(c => c.vendorNames.slice(0, 3)).map(v => `<span class=\"vdm-vendor-tag\">${v}<\/span>`).join('')}\n                        <\/div>\n                    <\/div>\n                    <div class=\"vdm-cascade-event critical\">\n                        <div class=\"vdm-cascade-time\">T+12 Minutes<\/div>\n                        <h4 class=\"vdm-cascade-title\">Cascading Authentication Failures<\/h4>\n                        <p class=\"vdm-cascade-desc\">Identity providers fail health checks. Users cannot authenticate. API calls fail across services.<\/p>\n                    <\/div>\n                    <div class=\"vdm-cascade-event critical\">\n                        <div class=\"vdm-cascade-time\">T+18 Minutes<\/div>\n                        <h4 class=\"vdm-cascade-title\">Full Stack Degradation<\/h4>\n                        <p class=\"vdm-cascade-desc\">${a.singlePoints > 0 ? `${a.singlePoints} single points of failure` : 'Multiple correlated failures'} have taken down ${a.critical.length > 0 ? Math.round((a.critical[0]?.percentage || 50)) : 50}%+ of your infrastructure. Multi-cloud failover fails because destinations share the same upstream dependencies.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            ` : ''}\n\n            <!-- Recommendations -->\n            <div class=\"vdm-recommendations\">\n                <div class=\"vdm-rec-header\">\n                    <div class=\"vdm-rec-icon\">\n                        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"6\"\/><circle cx=\"12\" cy=\"12\" r=\"2\"\/><\/svg>\n                    <\/div>\n                    <h3 class=\"vdm-rec-title\">Priority Actions for Your Stack<\/h3>\n                <\/div>\n                <div class=\"vdm-rec-list\">\n                    <div class=\"vdm-rec-item\">\n                        <div class=\"vdm-rec-num\">1<\/div>\n                        <div class=\"vdm-rec-content\">\n                            <h4>Map All Upstream Dependencies in Contracts<\/h4>\n                            <p>Request formal dependency disclosure from each vendor. Your analysis found ${a.totalCorrelations} shared dependencies that weren't visible at the vendor level.<\/p>\n                        <\/div>\n                    <\/div>\n                    ${a.critical.some(c => c.id === 'lumen' || c.id === 'cogent') ? `\n                    <div class=\"vdm-rec-item\">\n                        <div class=\"vdm-rec-num\">2<\/div>\n                        <div class=\"vdm-rec-content\">\n                            <h4>Diversify Network Backbone Exposure<\/h4>\n                            <p>Your vendors heavily rely on Lumen\/Cogent backbone. Consider vendors with alternative transit (Telia, NTT, private peering) or establish direct interconnects.<\/p>\n                        <\/div>\n                    <\/div>\n                    ` : ''}\n                    ${a.critical.some(c => c.id === 'equinix') ? `\n                    <div class=\"vdm-rec-item\">\n                        <div class=\"vdm-rec-num\">${a.critical.some(c => c.id === 'lumen' || c.id === 'cogent') ? '3' : '2'}<\/div>\n                        <div class=\"vdm-rec-content\">\n                            <h4>Reduce Equinix Concentration<\/h4>\n                            <p>Multiple vendors colocate in Equinix facilities. A power or cooling failure affects all. Consider vendors in Digital Realty, CoreSite, or regional alternatives.<\/p>\n                        <\/div>\n                    <\/div>\n                    ` : ''}\n                    <div class=\"vdm-rec-item\">\n                        <div class=\"vdm-rec-num\">${2 + (a.critical.some(c => c.id === 'lumen' || c.id === 'cogent') ? 1 : 0) + (a.critical.some(c => c.id === 'equinix') ? 1 : 0)}<\/div>\n                        <div class=\"vdm-rec-content\">\n                            <h4>Establish Correlation Monitoring<\/h4>\n                            <p>Configure alerts for simultaneous degradation across vendors. Your ${a.critical.length} critical correlations should trigger immediate investigation.<\/p>\n                        <\/div>\n                    <\/div>\n                    <div class=\"vdm-rec-item\">\n                        <div class=\"vdm-rec-num\">${3 + (a.critical.some(c => c.id === 'lumen' || c.id === 'cogent') ? 1 : 0) + (a.critical.some(c => c.id === 'equinix') ? 1 : 0)}<\/div>\n                        <div class=\"vdm-rec-content\">\n                            <h4>Design Graceful Degradation Playbooks<\/h4>\n                            <p>For each critical dependency, document which features to disable if it fails. February 3rd proved that automatic failover fails when destinations are also down.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- CTA -->\n            <div class=\"vdm-cta\">\n                <h3>Multi-Cloud is Not Enough<\/h3>\n                <p>\"When Clouds Fail\" provides the complete Sovereign CIO Framework for mapping correlation risk, building graceful degradation playbooks, and achieving genuine infrastructure sovereignty.<\/p>\n                <div class=\"vdm-cta-buttons\">\n                    <a href=\"https:\/\/www.amazon.com\/dp\/B0DZ29HVKV\" target=\"_blank\" class=\"vdm-btn vdm-btn-primary\">\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\/><\/svg>\n                        Get the Book\n                    <\/a>\n                    <button class=\"vdm-btn vdm-btn-secondary\" onclick=\"location.reload()\">\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M23 4v6h-6\"\/><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"\/><\/svg>\n                        New Analysis\n                    <\/button>\n                <\/div>\n            <\/div>\n        `;\n        \n        resultsStep.innerHTML = html;\n    }\n\n    \/\/ Initialize\n    updateUI();\n})();\n<\/script>\n<\/div>\n\n\n<div id=\"elemID031021\" style=\"line-height:16px;text-align:center;z-index:100000;\"><a title=\"wix guests ip\" href=\"https:\/\/www.tracemyip.org\/pv1-3-36447-2\"><img decoding=\"async\" src=\"\/\/s3.tracemyip.org\/vLg\/1217\/4684NR-IPIB\/57003\/9\/njsUrl\/\" alt=\"Wix guests ip\" referrerpolicy=\"no-referrer-when-downgrade\" style=\"border:0px;\"><\/a><div><a href=\"https:\/\/www.tracemyip.org\/pv1-3-36447-2\">ip traffic<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Critical Infrastructure Analysis Vendor DependencyCorrelation Mapper Reveal the hidden upstream dependencies your &#8220;multi-cloud&#8221; strategy shares. Discover why diversification on paper becomes single points of failure in reality. February 3rd, 2026: AWS, Azure, GCP, Cloudflare, and Fastly all degraded simultaneously. Multi-cloud failed because their dependencies correlated. 1 Select Vendors 2 View Analysis Select Your Technology Stack [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-712","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=712"}],"version-history":[{"count":2,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/712\/revisions"}],"predecessor-version":[{"id":741,"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=\/wp\/v2\/pages\/712\/revisions\/741"}],"wp:attachment":[{"href":"https:\/\/www.opey.org\/opeyit\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}