@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--bg-base:#0a0c10;--bg-surface:#111318;--bg-elevated:#1a1d24;--bg-hover:#21252f;--border:#2a2f3d;--border-light:#363c4e;--text-primary:#e8eaf0;--text-secondary:#9aa0b4;--text-muted:#5a6175;--certain:#ff4d6d;--certain-glow:#ff4d6d40;--certain-dim:#ff4d6d1f;--high:#ff8c42;--high-glow:#ff8c4240;--high-dim:#ff8c421f;--medium:#f4c542;--medium-glow:#f4c54240;--medium-dim:#f4c5421f;--signal-email:#7c6af7;--signal-card:#3db9cf;--signal-device:#43c59e;--signal-name:#e879a0;--accent:#6366f1;--accent-glow:#6366f14d;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--transition:.15s ease;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(14px,.28vw + 10.4px,17px)}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;font:inherit;background:0 0;border:none}h1{letter-spacing:-.02em;font-size:1.75rem;font-weight:700}h2{letter-spacing:-.01em;font-size:1.25rem;font-weight:600}h3{font-size:1rem;font-weight:600}p{color:var(--text-secondary);line-height:1.6}.mono{font-family:JetBrains Mono,monospace;font-size:.82em}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.explorer-layout{flex:1;grid-template-columns:280px 1fr 300px;display:grid;overflow:hidden}.panel{background:var(--bg-surface);border:1px solid var(--border);overflow:hidden auto}.panel-header{border-bottom:1px solid var(--border);background:var(--bg-surface);z-index:1;padding:14px 16px 10px;position:sticky;top:0}.panel-body{padding:12px}.navbar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 20px;display:flex}@media (max-width:600px){.navbar{gap:8px;height:48px;padding:0 10px}.navbar-logo{font-size:.85rem}.navbar-links{gap:0}.nav-link{padding:6px 8px;font-size:.78rem}}.navbar-logo{color:var(--text-primary);align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.navbar-logo .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 8px var(--accent-glow);border-radius:50%}.navbar-links{gap:4px;margin-left:auto;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition);padding:5px 12px;font-size:.85rem}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:var(--bg-elevated);color:var(--text-primary)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition);padding:16px}.stat-card:hover{border-color:var(--border-light)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:.75rem}.stat-value{color:var(--text-primary);font-size:1.8rem;font-weight:700;line-height:1}.stat-sub{color:var(--text-muted);margin-top:4px;font-size:.75rem}.tier-badge{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.tier-badge.CERTAIN{background:var(--certain-dim);color:var(--certain);border:1px solid var(--certain-glow)}.tier-badge.HIGH{background:var(--high-dim);color:var(--high);border:1px solid var(--high-glow)}.tier-badge.MEDIUM{background:var(--medium-dim);color:var(--medium);border:1px solid var(--medium-glow)}.tier-badge .tier-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.signal-chip{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:4px;padding:2px 7px;font-size:.7rem;font-weight:500;display:inline-flex}.signal-chip.email_alias{color:var(--signal-email);background:#7c6af726}.signal-chip.card{color:var(--signal-card);background:#3db9cf26}.signal-chip.device{color:var(--signal-device);background:#43c59e26}.signal-chip.name{color:var(--signal-name);background:#e879a026}.filter-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.filter-chip{border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition);cursor:pointer;background:0 0;border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:500}.filter-chip:hover{border-color:var(--border-light);color:var(--text-primary)}.filter-chip.active{background:var(--bg-elevated);border-color:var(--accent);color:var(--accent)}.search-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font:inherit;transition:border-color var(--transition);outline:none;margin-bottom:8px;padding:7px 10px;font-size:.82rem}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--text-muted)}.cluster-item{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);border:1px solid #0000;flex-direction:column;gap:5px;padding:10px;display:flex}.cluster-item:hover{background:var(--bg-elevated)}.cluster-item.selected{background:var(--bg-elevated);border-color:var(--accent)}.cluster-item-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.cluster-id{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:500}.cluster-size{color:var(--text-muted);font-size:.7rem}.cluster-item-footer{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.graph-container{background:var(--bg-base);width:100%;height:100%;position:relative;overflow:hidden}.graph-canvas{width:100%;height:100%;display:block}.graph-controls{flex-direction:column;gap:4px;display:flex;position:absolute;top:12px;right:12px}.graph-btn{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-secondary);transition:all var(--transition);justify-content:center;align-items:center;font-size:1rem;display:flex}.graph-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.graph-legend{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:10px 14px;display:flex;position:absolute;bottom:12px;left:12px}.legend-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.legend-item{color:var(--text-secondary);align-items:center;gap:7px;font-size:.72rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.graph-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.graph-empty-icon{opacity:.3;font-size:2.5rem}.graph-empty p{font-size:.85rem}.graph-loading{background:var(--bg-base);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.graph-tooltip{pointer-events:none;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);z-index:1000;opacity:0;max-width:240px;padding:10px 12px;font-size:.78rem;transition:opacity .1s;position:fixed}.graph-tooltip.visible{opacity:1}.tooltip-title{margin-bottom:4px;font-weight:600}.tooltip-row{color:var(--text-secondary);justify-content:space-between;gap:12px;display:flex}.tooltip-row span:first-child{color:var(--text-muted)}.detail-empty{height:200px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex}.detail-empty-icon{opacity:.3;font-size:2rem}.detail-section{margin-bottom:16px}.detail-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px;font-size:.7rem;font-weight:600}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:8px;padding:5px 0;font-size:.8rem;display:flex}.detail-row:last-child{border-bottom:none}.detail-key{color:var(--text-muted);flex-shrink:0}.detail-val{color:var(--text-primary);text-align:right;word-break:break-all;font-family:JetBrains Mono,monospace;font-size:.75rem}.account-pill{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);margin:2px;padding:1px 7px;font-family:JetBrains Mono,monospace;font-size:.72rem;display:inline-block}.account-pill:hover{border-color:var(--accent);color:var(--accent)}.account-pill.highlighted{border-color:var(--accent);color:var(--accent);background:#6366f11a}.edge-row{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);flex-direction:column;gap:3px;margin-bottom:4px;padding:6px 8px;display:flex}.edge-accounts{align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:.72rem;display:flex}.edge-sep{color:var(--text-muted)}.edge-weight{color:var(--text-muted);font-size:.7rem}.edge-signals{flex-wrap:wrap;gap:4px;display:flex}.landing{max-width:960px;margin:0 auto;padding:48px 24px}.landing-hero{text-align:center;margin-bottom:48px}.landing-hero .badge{color:var(--accent);background:#6366f11f;border:1px solid #6366f14d;border-radius:999px;align-items:center;gap:6px;margin-bottom:16px;padding:4px 12px;font-size:.75rem;font-weight:500;display:inline-flex}.landing-hero h1{margin-bottom:12px}.landing-hero p{max-width:560px;margin:0 auto 24px;font-size:.95rem}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-md);transition:all var(--transition);box-shadow:0 0 24px var(--accent-glow);align-items:center;gap:8px;padding:10px 22px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.hero-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);background:0 0;align-items:center;gap:8px;padding:10px 22px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-ghost:hover{border-color:var(--border-light);color:var(--text-primary)}.funnel{grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 28px;padding:0;list-style:none;display:grid}.funnel li{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 14px 12px}.funnel-n{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:4px;font-size:1.15rem;font-weight:700;display:block}.funnel-l{color:var(--text-muted);font-size:.75rem;line-height:1.35;display:block}.case-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.case-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition);flex-direction:column;gap:8px;min-height:100%;padding:16px;display:flex}.case-card:hover{border-color:var(--accent)}.case-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:.68rem;font-weight:600}.case-card h3{letter-spacing:-.01em;color:var(--text-primary);font-size:.95rem}.case-card p{flex:1;font-size:.8rem;line-height:1.5}.case-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:.72rem;display:flex}.case-snippet{color:var(--text-secondary);word-break:break-all;font-size:.7rem}.case-cta{color:var(--accent);margin-top:2px;font-size:.75rem;font-weight:600}.cluster-snippet{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.cluster-brief-copy{color:var(--text-secondary);margin-bottom:16px;font-size:.8rem;line-height:1.5}.text-back{color:var(--accent);cursor:pointer;margin-top:8px;font-size:.75rem}.text-back:hover{opacity:.85}.signal-chip.addr{color:#8b9cb3;background:#8b9cb326}.signal-chip.phone{color:#c9a227;background:#c9a22726}@media (max-width:900px){.funnel{grid-template-columns:1fr 1fr}.case-grid{grid-template-columns:1fr}}@media (max-width:1100px){.explorer-layout{grid-template-columns:220px 1fr 260px}}@media (max-width:720px){.funnel{grid-template-columns:1fr}.landing{padding:28px 16px}}.story-page{flex-direction:column;flex:1;min-height:0;font-size:clamp(14px,.45vw + 8.5px,18px);display:flex;overflow:hidden}.story-progress{background:var(--border);flex-shrink:0;height:3px}.story-progress-bar{background:var(--accent);height:100%}.story-layout{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(280px,400px) minmax(0,1fr);width:100%;min-height:0;display:grid}.story-rail{border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;display:flex}.story-header{flex-shrink:0;padding:clamp(16px,2vh,28px) 24px 0 28px}.story-copy{flex:1;min-height:0;padding:12px 24px 8px 28px;overflow-y:auto}.story-visual{min-width:0;min-height:0;padding:0;display:flex}.story-footer{border-top:1px solid var(--border);flex-shrink:0;padding:12px 24px 16px 28px}.story-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:.72em;font-weight:600;display:flex}.story-stepn{color:var(--text-muted);letter-spacing:.04em;flex-shrink:0}.story-header h1{margin-bottom:0;font-size:clamp(1.2em,1.6vw,2.05em);line-height:1.25}.story-lede{color:var(--text-primary);margin-bottom:12px;font-size:1.02em}.story-copy p{margin-bottom:10px;font-size:.92em}.story-takeaway{border-left:2px solid var(--accent);background:var(--bg-elevated);color:var(--text-secondary);margin:16px 0 8px;padding:12px 14px;font-size:.9em;line-height:1.5}.story-nav{flex-wrap:wrap;gap:8px;display:flex}.story-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);justify-content:center;align-items:center;padding:8px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.story-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-light)}.story-btn:disabled{opacity:.35;cursor:default}.story-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.story-btn.ghost{background:0 0}.story-net{flex:1;width:100%;min-width:0;min-height:0;position:relative}.story-net-stage{position:absolute;inset:0 0 56px}.story-net-svg{width:100%;height:100%;display:block}.story-graph-meta{position:absolute;bottom:10px;left:16px;right:16px}.story-acct-label{font-family:Inter,system-ui,sans-serif;font-size:9px}.story-token-label{font-family:JetBrains Mono,monospace;font-size:9px;font-weight:500}.story-net.is-compact .story-acct-label,.story-net.is-compact .story-token-label{font-size:11px}.story-net.is-compact .story-sub{font-size:9px}.story-sub{fill:#5a6175;font-family:Inter,system-ui,sans-serif;font-size:8px}.story-edge-label{fill:#e8eaf0;font-family:Inter,system-ui,sans-serif;font-size:9px}.story-graph-caption{color:var(--text-muted);margin:0 0 6px;font-size:.78em;line-height:1.4}.story-legend{flex-wrap:wrap;gap:8px 12px;display:flex}.story-legend-item{color:var(--text-muted);text-transform:lowercase;align-items:center;gap:6px;font-size:.7rem;display:inline-flex}.story-legend-item i{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.story-legend-item i.dash{border-radius:0;width:12px;height:2px}.story-dots{flex-wrap:wrap;justify-content:flex-start;gap:8px;margin:0;padding:10px 0 0;list-style:none;display:flex}.story-dots button{background:var(--border-light);border-radius:99px;width:8px;height:8px;padding:0}.story-dots button.active{background:var(--accent);width:18px}@media (min-width:1600px){.story-layout{grid-template-columns:440px minmax(0,1fr)}}@media (min-width:2200px){.story-layout{grid-template-columns:480px minmax(0,1fr)}}@media (max-width:1100px){.story-layout{grid-template-columns:minmax(260px,340px) minmax(0,1fr)}.story-header{padding:20px 18px 0 20px}.story-copy{padding:12px 18px 8px 20px}.story-footer{padding:10px 18px 14px 20px}}@media (max-width:900px){.story-page{overflow-y:auto}.story-layout{flex-direction:column;grid-template-columns:none;display:flex}.story-rail{border-right:none;display:contents}.story-header{order:1;padding:16px 16px 4px}.story-visual{flex:none;order:2;height:min(52dvh,420px);min-height:280px}.story-net-stage{height:100%;position:relative;inset:auto}.story-net-svg{height:100%}.story-graph-meta{padding:0 16px 8px;position:relative;bottom:auto;left:auto;right:auto}.story-copy{flex:none;order:3;padding:4px 16px 8px;overflow:visible}.story-footer{padding:10px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg-base);border-top:1px solid var(--border);z-index:5;order:4;position:sticky;bottom:0}.story-btn{min-height:40px;padding:10px 16px}.story-dots{justify-content:center}.story-dots button{width:12px;height:12px}.story-dots button.active{width:22px}}@media (max-width:480px){.story-header h1{font-size:1.2em}.story-lede,.story-copy p{font-size:.9em}.story-takeaway{padding:10px 12px;font-size:.86em}.story-nav{gap:6px}.story-btn.ghost{text-align:center;justify-content:center;width:100%}}@media (max-height:700px) and (min-width:901px){.story-header{padding-top:12px}.story-header h1{font-size:clamp(1.1em,1.4vw,1.45em)}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.divider{background:var(--border);height:1px;margin:12px 0}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8rem}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-1{gap:4px}.flex-wrap{flex-wrap:wrap}.count-badge{background:var(--bg-elevated);border:1px solid var(--border);min-width:18px;height:18px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:.68rem;display:inline-flex}
