@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0c;--card-bg: #111114;--card-border: #1e1e24;--text-primary: #e4e4e7;--text-secondary: #71717a;--text-dim: #52525b;--accent: #a78bfa;--glow: rgba(167, 139, 250, .15);--glow-hover: rgba(167, 139, 250, .3);--font: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--ease: cubic-bezier(.22, 1, .36, 1)}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text-primary);font-family:var(--font);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%;position:relative}.constellation{position:relative;width:100%;height:100%;overflow:hidden}.constellation:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 800px 600px at 50% 50%,rgba(167,139,250,.03),transparent),radial-gradient(ellipse 400px 300px at 30% 70%,rgba(139,92,246,.02),transparent),radial-gradient(ellipse 500px 400px at 70% 30%,rgba(196,181,253,.02),transparent);pointer-events:none}.constellation-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.connection-line{stroke:var(--accent);stroke-width:1;transition:opacity .3s var(--ease),stroke-width .3s var(--ease)}.connection-line.highlighted{stroke-width:2;filter:drop-shadow(0 0 4px var(--accent))}.constellation-nodes{position:absolute;inset:0;pointer-events:none}.node{position:absolute;pointer-events:auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .1s linear}.node-glow{position:absolute;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,var(--glow) 0%,transparent 70%);opacity:.5;transition:opacity .4s var(--ease),transform .4s var(--ease);pointer-events:none}.node:hover .node-glow,.node.hovered .node-glow{opacity:1;transform:scale(1.3)}.node-core{width:48px;height:48px;border-radius:50%;background:var(--card-bg);border:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;position:relative;transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);z-index:1}.node:hover .node-core,.node.hovered .node-core{transform:scale(1.15);border-color:var(--accent);box-shadow:0 0 20px #a78bfa4d,0 0 40px #a78bfa1a}.node-ai{font-size:.6rem;font-weight:500;color:var(--ai-color, var(--accent));text-transform:uppercase;letter-spacing:.05em}.node-label{font-size:.7rem;color:var(--text-secondary);white-space:nowrap;opacity:.7;transition:opacity .3s var(--ease),color .3s var(--ease)}.node:hover .node-label,.node.hovered .node-label{opacity:1;color:var(--text-primary)}.node-live .node-core:after{content:"";position:absolute;bottom:-2px;right:-2px;width:10px;height:10px;background:#22c55e;border-radius:50%;border:2px solid var(--bg);animation:pulse-status 2s ease-in-out infinite}.node-building .node-core:after{content:"";position:absolute;bottom:-2px;right:-2px;width:10px;height:10px;background:#f59e0b;border-radius:50%;border:2px solid var(--bg);animation:pulse-status 1.5s ease-in-out infinite}.node-experiment .node-core:after{content:"";position:absolute;bottom:-2px;right:-2px;width:10px;height:10px;background:var(--accent);border-radius:50%;border:2px solid var(--bg);animation:pulse-status 2.5s ease-in-out infinite}@keyframes pulse-status{0%,to{opacity:.6;box-shadow:0 0 4px currentColor}50%{opacity:1;box-shadow:0 0 8px currentColor}}.center-identity{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:0}.identity-name{display:block;font-size:2.5rem;font-weight:300;color:var(--text-primary);letter-spacing:-.02em;opacity:.15}.identity-tagline{display:block;font-size:.75rem;color:var(--text-dim);white-space:pre-line;margin-top:.5rem;opacity:.4;line-height:1.6}.project-detail{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0a0ccc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s var(--ease);z-index:100}.project-detail.active{opacity:1;visibility:visible}.detail-card{position:relative;width:90%;max-width:420px;padding:2rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;transform:scale(.95) translateY(10px);transition:transform .4s var(--ease);box-shadow:0 4px 24px #a78bfa1a,0 8px 48px #0006}.project-detail.active .detail-card{transform:scale(1) translateY(0)}.detail-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:transparent;color:var(--text-dim);font-size:1.5rem;cursor:pointer;border-radius:4px;transition:color .2s,background .2s}.detail-close:hover{color:var(--text-primary);background:#ffffff0d}.detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.detail-title{font-size:1.25rem;font-weight:500;color:var(--text-primary)}.detail-status{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;border-radius:4px;background:#ffffff0d}.status-live{color:#22c55e;background:#22c55e1a}.status-building{color:#f59e0b;background:#f59e0b1a}.status-experiment{color:var(--accent);background:#a78bfa1a}.detail-desc{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.detail-meta{border-top:1px solid var(--card-border);padding-top:1rem}.detail-row{display:flex;gap:1rem;margin-bottom:.5rem;font-size:.8rem}.detail-row:last-child{margin-bottom:0}.detail-label{color:var(--text-dim);min-width:80px}.detail-value{color:var(--text-secondary)}.ai-badge{color:var(--ai-color, var(--accent));font-weight:500}.detail-link{color:var(--accent);text-decoration:none;transition:opacity .2s}.detail-link:hover{opacity:.7}.particle{position:absolute;border-radius:50%;background:var(--accent);pointer-events:none;opacity:0;animation:burst var(--ease) forwards;z-index:50}@keyframes burst{0%{opacity:.9;transform:translate(0) scale(1)}50%{opacity:.6}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2)}}@media(max-width:600px){.identity-name{font-size:1.8rem}.identity-tagline{font-size:.65rem}.node-core{width:40px;height:40px}.node-glow{width:60px;height:60px}.node-ai{font-size:.5rem}.node-label{font-size:.6rem}.detail-card{padding:1.5rem;margin:1rem}.detail-title{font-size:1.1rem}.detail-row{flex-direction:column;gap:.25rem}.detail-label{min-width:unset}}@media(max-width:380px){.identity-name{font-size:1.5rem}.node-core{width:36px;height:36px}}
