Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Global Opportunity Map | Secure Access</title> | |
| <meta name="robots" content="noindex, nofollow"> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> | |
| <style> | |
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background: #f8f9fb; | |
| color: #1a1d23; | |
| padding: 32px; | |
| } | |
| .header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 28px; | |
| } | |
| .header-left h1 { | |
| font-size: 22px; | |
| font-weight: 700; | |
| color: #0f1724; | |
| letter-spacing: -0.3px; | |
| } | |
| .header-left p { | |
| font-size: 13px; | |
| color: #6b7280; | |
| margin-top: 4px; | |
| } | |
| .badge { | |
| background: #0f2d5e; | |
| color: #fff; | |
| font-size: 11px; | |
| font-weight: 600; | |
| padding: 5px 12px; | |
| border-radius: 20px; | |
| letter-spacing: 0.5px; | |
| text-transform: uppercase; | |
| } | |
| /* ββ Summary KPI Row ββ */ | |
| .kpi-row { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 14px; | |
| margin-bottom: 28px; | |
| } | |
| .kpi-card { | |
| background: #fff; | |
| border: 1px solid #e5e7eb; | |
| border-radius: 10px; | |
| padding: 18px 20px; | |
| box-shadow: 0 1px 3px rgba(0,0,0,0.05); | |
| } | |
| .kpi-card .label { | |
| font-size: 11px; | |
| font-weight: 600; | |
| color: #9ca3af; | |
| text-transform: uppercase; | |
| letter-spacing: 0.6px; | |
| margin-bottom: 6px; | |
| } | |
| .kpi-card .value { | |
| font-size: 26px; | |
| font-weight: 700; | |
| color: #0f2d5e; | |
| line-height: 1; | |
| } | |
| .kpi-card .sub { | |
| font-size: 12px; | |
| color: #6b7280; | |
| margin-top: 4px; | |
| } | |
| .kpi-card.highlight { border-left: 3px solid #c8942a; } | |
| /* ββ Section title ββ */ | |
| .section-title { | |
| font-size: 14px; | |
| font-weight: 700; | |
| color: #374151; | |
| text-transform: uppercase; | |
| letter-spacing: 0.8px; | |
| margin-bottom: 14px; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .section-title::after { | |
| content: ''; | |
| flex: 1; | |
| height: 1px; | |
| background: #e5e7eb; | |
| } | |
| /* ββ Region Cards Grid ββ */ | |
| .region-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 16px; | |
| margin-bottom: 28px; | |
| } | |
| .region-card { | |
| background: #fff; | |
| border: 1px solid #e5e7eb; | |
| border-radius: 12px; | |
| padding: 20px; | |
| box-shadow: 0 1px 4px rgba(0,0,0,0.05); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .region-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; left: 0; right: 0; | |
| height: 3px; | |
| } | |
| .region-card.na::before { background: #0f2d5e; } | |
| .region-card.emea::before { background: #c8942a; } | |
| .region-card.apac::before { background: #16a34a; } | |
| .region-card.global::before{ background: #7c3aed; } | |
| .region-card.unknown::before{ background: #9ca3af; } | |
| .region-name { | |
| font-size: 13px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin-bottom: 14px; | |
| color: #374151; | |
| } | |
| .region-stats { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 10px; | |
| margin-bottom: 14px; | |
| } | |
| .stat-box { | |
| background: #f3f4f6; | |
| border-radius: 8px; | |
| padding: 10px 12px; | |
| } | |
| .stat-box .s-label { | |
| font-size: 10px; | |
| font-weight: 600; | |
| color: #9ca3af; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: 3px; | |
| } | |
| .stat-box .s-value { | |
| font-size: 18px; | |
| font-weight: 700; | |
| color: #0f1724; | |
| } | |
| .stat-box .s-sub { | |
| font-size: 10px; | |
| color: #6b7280; | |
| } | |
| .stat-box.highlight { background: #fef3c7; } | |
| .stat-box.highlight .s-value { color: #92400e; } | |
| /* Progress bar */ | |
| .progress-wrap { | |
| margin-top: 12px; | |
| } | |
| .progress-label { | |
| display: flex; | |
| justify-content: space-between; | |
| font-size: 11px; | |
| color: #6b7280; | |
| margin-bottom: 5px; | |
| } | |
| .progress-bar { | |
| height: 8px; | |
| background: #e5e7eb; | |
| border-radius: 99px; | |
| overflow: hidden; | |
| } | |
| .progress-fill { | |
| height: 100%; | |
| border-radius: 99px; | |
| transition: width 0.6s ease; | |
| } | |
| .fill-na { background: #0f2d5e; } | |
| .fill-emea { background: #c8942a; } | |
| .fill-apac { background: #16a34a; } | |
| .fill-global { background: #7c3aed; } | |
| .fill-unknown{ background: #9ca3af; } | |
| /* White Space pill */ | |
| .ws-pill { | |
| display: inline-block; | |
| background: #fee2e2; | |
| color: #991b1b; | |
| font-size: 10px; | |
| font-weight: 600; | |
| padding: 3px 8px; | |
| border-radius: 99px; | |
| margin-top: 8px; | |
| } | |
| .ws-pill.none { | |
| background: #d1fae5; | |
| color: #065f46; | |
| } | |
| /* ββ White Space Detail Table ββ */ | |
| .table-wrap { | |
| background: #fff; | |
| border: 1px solid #e5e7eb; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| box-shadow: 0 1px 4px rgba(0,0,0,0.05); | |
| margin-bottom: 28px; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13px; | |
| } | |
| thead tr { | |
| background: #0f2d5e; | |
| color: #fff; | |
| } | |
| thead th { | |
| padding: 11px 16px; | |
| text-align: left; | |
| font-size: 11px; | |
| font-weight: 600; | |
| letter-spacing: 0.6px; | |
| text-transform: uppercase; | |
| } | |
| tbody tr { | |
| border-bottom: 1px solid #f3f4f6; | |
| transition: background 0.15s; | |
| } | |
| tbody tr:last-child { border-bottom: none; } | |
| tbody tr:hover { background: #f9fafb; } | |
| tbody td { | |
| padding: 11px 16px; | |
| color: #374151; | |
| } | |
| .tag { | |
| display: inline-block; | |
| font-size: 10px; | |
| font-weight: 600; | |
| padding: 2px 8px; | |
| border-radius: 99px; | |
| text-transform: uppercase; | |
| letter-spacing: 0.4px; | |
| } | |
| .tag-na { background: #dbeafe; color: #1e40af; } | |
| .tag-emea { background: #fef3c7; color: #92400e; } | |
| .tag-priority { background: #fee2e2; color: #991b1b; } | |
| .aum-cell { font-weight: 700; color: #0f2d5e; } | |
| /* ββ Strategic Insights ββ */ | |
| .insight-grid { | |
| display: grid; | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 14px; | |
| } | |
| .insight-card { | |
| background: #fff; | |
| border: 1px solid #e5e7eb; | |
| border-radius: 10px; | |
| padding: 18px; | |
| box-shadow: 0 1px 3px rgba(0,0,0,0.05); | |
| } | |
| .insight-card .i-num { | |
| font-size: 28px; | |
| font-weight: 800; | |
| color: #0f2d5e; | |
| line-height: 1; | |
| } | |
| .insight-card .i-label { | |
| font-size: 12px; | |
| font-weight: 600; | |
| color: #374151; | |
| margin: 6px 0 4px; | |
| } | |
| .insight-card .i-desc { | |
| font-size: 12px; | |
| color: #6b7280; | |
| line-height: 1.5; | |
| } | |
| .insight-card .i-action { | |
| margin-top: 10px; | |
| font-size: 11px; | |
| font-weight: 600; | |
| color: #c8942a; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .footer { | |
| margin-top: 24px; | |
| font-size: 11px; | |
| color: #9ca3af; | |
| text-align: center; | |
| } | |
| /* LOCK SCREEN */ | |
| #lock-screen{position:fixed;inset:0;background:rgba(15,23,36,0.98);backdrop-filter:blur(10px);z-index:9999;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Inter',sans-serif} | |
| .lock-box{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);padding:40px;border-radius:20px;text-align:center;width:360px;box-shadow:0 32px 64px rgba(0,0,0,0.4)} | |
| .lock-logo{font-size:20px;font-weight:800;margin-bottom:8px;letter-spacing:-0.5px} | |
| .lock-logo span{color:#c8942a} | |
| .lock-box p{font-size:12px;opacity:0.6;margin-bottom:24px;text-transform:uppercase;letter-spacing:1px} | |
| .lock-input{width:100%;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);padding:12px;border-radius:10px;color:#fff;font-size:16px;text-align:center;margin-bottom:12px;outline:none} | |
| .lock-btn{width:100%;background:#c8942a;color:#0f2d5e;border:none;padding:12px;border-radius:10px;font-weight:800;font-size:13px;cursor:pointer} | |
| #lock-error{color:#ff4b4b;font-size:11px;margin-top:10px;display:none} | |
| </style> | |
| </head> | |
| <body> | |
| <div id="lock-screen"> | |
| <div class="lock-box"> | |
| <div class="lock-logo">IR <span>ANALYTICS</span></div> | |
| <p>Map Access Restricted</p> | |
| <input type="password" id="pass-input" class="lock-input" placeholder="Access Code" onkeyup="if(event.key==='Enter')verify()"> | |
| <button class="lock-btn" onclick="verify()">UNLOCK MAP</button> | |
| <div id="lock-error">Invalid code.</div> | |
| </div> | |
| </div> | |
| <!-- HEADER --> | |
| <div class="header"> | |
| <div class="header-left"> | |
| <h1>Carlyle Group β Global LP Opportunity Map</h1> | |
| <p>IR Financial Data Scientist Β· Technical Case Study Β· Commitment & White Space Analysis</p> | |
| </div> | |
| <div class="badge">Carlyle Confidential</div> | |
| </div> | |
| <!-- KPI ROW --> | |
| <div class="kpi-row"> | |
| <div class="kpi-card"> | |
| <div class="label">Total LP Universe</div> | |
| <div class="value">100</div> | |
| <div class="sub">Across all regions & types</div> | |
| </div> | |
| <div class="kpi-card"> | |
| <div class="label">Committed to Carlyle</div> | |
| <div class="value">97</div> | |
| <div class="sub">97% overall penetration rate</div> | |
| </div> | |
| <div class="kpi-card highlight"> | |
| <div class="label">White Space LPs</div> | |
| <div class="value">3</div> | |
| <div class="sub">Engaged, not yet committed</div> | |
| </div> | |
| <div class="kpi-card"> | |
| <div class="label">White Space AUM</div> | |
| <div class="value">$191BN</div> | |
| <div class="sub">Uncaptured capital potential</div> | |
| </div> | |
| </div> | |
| <!-- REGION BREAKDOWN --> | |
| <div class="section-title">Regional Breakdown</div> | |
| <div class="region-grid"> | |
| <!-- NA --> | |
| <div class="region-card na"> | |
| <div class="region-name">πΊπΈ North America (NA)</div> | |
| <div class="region-stats"> | |
| <div class="stat-box"> | |
| <div class="s-label">Total LPs</div> | |
| <div class="s-value">44</div> | |
| <div class="s-sub">Largest region</div> | |
| </div> | |
| <div class="stat-box highlight"> | |
| <div class="s-label">White Space</div> | |
| <div class="s-value">2</div> | |
| <div class="s-sub">$126BN AUM uncaptured</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Committed AUM</div> | |
| <div class="s-value">$2,676BN</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Total Region AUM</div> | |
| <div class="s-value">$2,802BN</div> | |
| </div> | |
| </div> | |
| <div class="progress-wrap"> | |
| <div class="progress-label"><span>Penetration Rate</span><span>95.5%</span></div> | |
| <div class="progress-bar"><div class="progress-fill fill-na" style="width:95.5%"></div></div> | |
| </div> | |
| <span class="ws-pill">β 2 LPs Not Committed Β· $126BN</span> | |
| </div> | |
| <!-- EMEA --> | |
| <div class="region-card emea"> | |
| <div class="region-name">π EMEA</div> | |
| <div class="region-stats"> | |
| <div class="stat-box"> | |
| <div class="s-label">Total LPs</div> | |
| <div class="s-value">14</div> | |
| <div class="s-sub">High AUM density</div> | |
| </div> | |
| <div class="stat-box highlight"> | |
| <div class="s-label">White Space</div> | |
| <div class="s-value">1</div> | |
| <div class="s-sub">$65BN AUM uncaptured</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Committed AUM</div> | |
| <div class="s-value">$2,888BN</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Total Region AUM</div> | |
| <div class="s-value">$2,953BN</div> | |
| </div> | |
| </div> | |
| <div class="progress-wrap"> | |
| <div class="progress-label"><span>Penetration Rate</span><span>92.9%</span></div> | |
| <div class="progress-bar"><div class="progress-fill fill-emea" style="width:92.9%"></div></div> | |
| </div> | |
| <span class="ws-pill">β 1 LP Not Committed Β· $65BN</span> | |
| </div> | |
| <!-- APAC --> | |
| <div class="region-card apac"> | |
| <div class="region-name">π Asia Pacific (APAC)</div> | |
| <div class="region-stats"> | |
| <div class="stat-box"> | |
| <div class="s-label">Total LPs</div> | |
| <div class="s-value">8</div> | |
| <div class="s-sub">SWF-heavy region</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">White Space</div> | |
| <div class="s-value">0</div> | |
| <div class="s-sub">Fully penetrated</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Committed AUM</div> | |
| <div class="s-value">$1,394BN</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Total Region AUM</div> | |
| <div class="s-value">$1,394BN</div> | |
| </div> | |
| </div> | |
| <div class="progress-wrap"> | |
| <div class="progress-label"><span>Penetration Rate</span><span>100%</span></div> | |
| <div class="progress-bar"><div class="progress-fill fill-apac" style="width:100%"></div></div> | |
| </div> | |
| <span class="ws-pill none">β Fully Penetrated</span> | |
| </div> | |
| <!-- Global --> | |
| <div class="region-card global"> | |
| <div class="region-name">π Global</div> | |
| <div class="region-stats"> | |
| <div class="stat-box"> | |
| <div class="s-label">Total LPs</div> | |
| <div class="s-value">30</div> | |
| <div class="s-sub">Largest AUM pool</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">White Space</div> | |
| <div class="s-value">0</div> | |
| <div class="s-sub">Fully penetrated</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Committed AUM</div> | |
| <div class="s-value">$10,162BN</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Total Region AUM</div> | |
| <div class="s-value">$10,162BN</div> | |
| </div> | |
| </div> | |
| <div class="progress-wrap"> | |
| <div class="progress-label"><span>Penetration Rate</span><span>100%</span></div> | |
| <div class="progress-bar"><div class="progress-fill fill-global" style="width:100%"></div></div> | |
| </div> | |
| <span class="ws-pill none">β Fully Penetrated</span> | |
| </div> | |
| <!-- Unknown --> | |
| <div class="region-card unknown"> | |
| <div class="region-name">β Unknown / Unclassified</div> | |
| <div class="region-stats"> | |
| <div class="stat-box"> | |
| <div class="s-label">Total LPs</div> | |
| <div class="s-value">4</div> | |
| <div class="s-sub">Needs classification</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">White Space</div> | |
| <div class="s-value">0</div> | |
| <div class="s-sub">All committed</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Committed AUM</div> | |
| <div class="s-value">$6BN</div> | |
| </div> | |
| <div class="stat-box"> | |
| <div class="s-label">Total Region AUM</div> | |
| <div class="s-value">$6BN</div> | |
| </div> | |
| </div> | |
| <div class="progress-wrap"> | |
| <div class="progress-label"><span>Penetration Rate</span><span>100%</span></div> | |
| <div class="progress-bar"><div class="progress-fill fill-unknown" style="width:100%"></div></div> | |
| </div> | |
| <span class="ws-pill none">β Fully Committed</span> | |
| </div> | |
| </div> | |
| <!-- WHITE SPACE DETAIL TABLE --> | |
| <div class="section-title">White Space Detail β LPs Not Committed to Carlyle</div> | |
| <div class="table-wrap"> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th>#</th> | |
| <th>LP Name</th> | |
| <th>Type</th> | |
| <th>Country</th> | |
| <th>AUM ($BN)</th> | |
| <th>Region</th> | |
| <th>Priority</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>1</td> | |
| <td><strong>Public Utilities Pension</strong></td> | |
| <td>Public/Government Pension</td> | |
| <td>United States</td> | |
| <td class="aum-cell">$120BN</td> | |
| <td><span class="tag tag-na">NA</span></td> | |
| <td><span class="tag tag-priority">π΄ High</span></td> | |
| </tr> | |
| <tr> | |
| <td>2</td> | |
| <td><strong>Emerging Markets Wealth Co</strong></td> | |
| <td>Wealth - Other</td> | |
| <td>United Arab Emirates</td> | |
| <td class="aum-cell">$65BN</td> | |
| <td><span class="tag tag-emea">EMEA</span></td> | |
| <td><span class="tag tag-priority">π΄ High</span></td> | |
| </tr> | |
| <tr> | |
| <td>3</td> | |
| <td><strong>Cascade Family Office</strong></td> | |
| <td>Family Office</td> | |
| <td>United States</td> | |
| <td class="aum-cell">$6BN</td> | |
| <td><span class="tag tag-na">NA</span></td> | |
| <td><span class="tag" style="background:#fef3c7;color:#92400e;">π‘ Medium</span></td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| <!-- STRATEGIC INSIGHTS --> | |
| <div class="section-title">Strategic Recommendations</div> | |
| <div class="insight-grid"> | |
| <div class="insight-card"> | |
| <div class="i-num">$120BN</div> | |
| <div class="i-label">Public Utilities Pension (NA)</div> | |
| <div class="i-desc">Largest uncaptured LP in the dataset. US public pension with global allocation strategy. High probability of Carlyle Credit or Infrastructure allocation given peer behavior.</div> | |
| <div class="i-action">β Priority: Immediate Diligence Call</div> | |
| </div> | |
| <div class="insight-card"> | |
| <div class="i-num">$65BN</div> | |
| <div class="i-label">Emerging Markets Wealth Co (UAE)</div> | |
| <div class="i-desc">EMEA Wealth-Other LP based in UAE. Represents Carlyle's Wealth Channel expansion opportunity in the Middle East. Ideal candidate for Private Equity or Infrastructure product reframing.</div> | |
| <div class="i-action">β Priority: Intro Meeting + Product Fit Analysis</div> | |
| </div> | |
| <div class="insight-card"> | |
| <div class="i-num">$6BN</div> | |
| <div class="i-label">Cascade Family Office (NA)</div> | |
| <div class="i-desc">US Family Office with NA focus. Smaller ticket but high-velocity segment β Family Offices typically convert faster than institutional pensions once intro_meeting is completed.</div> | |
| <div class="i-action">β Priority: Conference Touch β Intro Meeting</div> | |
| </div> | |
| </div> | |
| <div class="footer"> | |
| Carlyle Group Β· IR Financial Data Scientist Technical Case Β· Lydia Hunter Β· May 2026 Β· Data: ds_ir_interview_data.xlsx | |
| </div> | |
| <script> | |
| function verify(inputPass) { | |
| const pass = inputPass || document.getElementById('pass-input').value; | |
| if (pass === 'CARLYLE2026') { | |
| document.getElementById('lock-screen').style.display = 'none'; | |
| document.body.style.overflow = 'auto'; | |
| document.title = 'Carlyle Group β Global Opportunity Map'; | |
| } else if (!inputPass) { | |
| document.getElementById('lock-error').style.display = 'block'; | |
| } | |
| } | |
| // Auto-unlock if auth param is present | |
| const urlParams = new URLSearchParams(window.location.search); | |
| if (urlParams.get('auth') === 'CARLYLE2026') { | |
| verify('CARLYLE2026'); | |
| } else { | |
| document.body.style.overflow = 'hidden'; | |
| } | |
| </script> | |
| </body> | |
| </html> | |