@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: #030309;--font: "JetBrains Mono", "SF Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1)}html,body{height:100%;overflow:hidden;background:var(--bg);color:#e4e4e7;font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}#app{height:100%}.scene{position:relative;width:100%;height:100%;overflow:hidden}.bg-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(167,139,250,.18) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;opacity:.55}.bg-aura{position:absolute;inset:-20%;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(88,28,220,.13) 0%,transparent 70%),radial-gradient(ellipse 40% 35% at 30% 65%,rgba(16,217,160,.05) 0%,transparent 60%),radial-gradient(ellipse 45% 40% at 72% 32%,rgba(79,163,247,.06) 0%,transparent 60%);pointer-events:none;animation:aura-breathe 8s ease-in-out infinite}@keyframes aura-breathe{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.scene-svg,.scene-nodes{position:absolute;inset:0;pointer-events:none}.scene-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:0;display:flex;flex-direction:column;align-items:center;gap:6px}.c-name{display:block;font-size:2.8rem;font-weight:300;letter-spacing:-.03em;color:#e4e4e71a}.c-tag{display:block;font-size:.7rem;color:#71717a73;letter-spacing:.08em;text-transform:uppercase}.node-orb{position:absolute;pointer-events:auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;will-change:transform}.orb-aura{position:absolute;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,var(--ag, rgba(167,139,250,.25)) 0%,transparent 70%);animation:orb-pulse 3.2s ease-in-out infinite;pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease)}@keyframes orb-pulse{0%,to{opacity:.55;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.18)}}.orb-ring{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--ac, #a78bfa);position:relative;z-index:1;background:transparent;box-shadow:0 0 12px var(--ag, rgba(167,139,250,.3)),inset 0 0 12px #0009;transition:box-shadow .35s var(--ease),transform .35s var(--ease),border-color .35s var(--ease);display:flex;align-items:center;justify-content:center}.orb-core{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.95) 0%,var(--ac, #a78bfa) 55%,transparent 100%);box-shadow:0 0 14px var(--ac, #a78bfa),0 0 28px var(--ag, rgba(167,139,250,.5));transition:box-shadow .35s var(--ease),transform .35s var(--ease)}.orb-label{font-size:.68rem;font-weight:400;color:#e4e4e799;white-space:nowrap;position:relative;z-index:2;transition:color .25s;text-align:center;max-width:100px}.orb-ai{font-size:.55rem;font-weight:500;color:var(--ac, #a78bfa);text-transform:uppercase;letter-spacing:.1em;position:relative;z-index:2;margin-top:-4px}.node-orb.hot .orb-aura{width:120px;height:120px}.node-orb.hot .orb-ring{transform:scale(1.12);border-color:var(--ac, #a78bfa);box-shadow:0 0 24px var(--ag, rgba(167,139,250,.55)),0 0 48px var(--ag, rgba(167,139,250,.25)),inset 0 0 12px #0006}.node-orb.hot .orb-core{transform:scale(1.2);box-shadow:0 0 22px var(--ac, #a78bfa),0 0 44px var(--ag, rgba(167,139,250,.6))}.node-orb.hot .orb-label{color:#e4e4e7f2}.node-orb.s-live .orb-ring:after,.node-orb.s-building .orb-ring:after,.node-orb.s-experiment .orb-ring:after{content:"";position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg);animation:status-blink 2s ease-in-out infinite}.node-orb.s-live .orb-ring:after{background:#22c55e}.node-orb.s-building .orb-ring:after{background:#f59e0b;animation-duration:1.4s}.node-orb.s-experiment .orb-ring:after{background:var(--ac, #a78bfa);animation-duration:2.6s}@keyframes status-blink{0%,to{opacity:.55;box-shadow:0 0 4px currentColor}50%{opacity:1;box-shadow:0 0 10px currentColor}}.particle{position:absolute;border-radius:50%;pointer-events:none;z-index:60;animation:particle-burst .6s var(--ease) forwards}@keyframes particle-burst{0%{opacity:.95;transform:translate(0) scale(1)}60%{opacity:.5}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.15)}}.detail-panel{position:fixed;inset:0;z-index:200;pointer-events:none;display:flex;align-items:flex-end;justify-content:center}.detail-panel.active{pointer-events:auto}.detail-panel.active:before{content:"";position:fixed;inset:0;background:#030309b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .25s ease forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{position:relative;width:100%;max-width:480px;max-height:75vh;overflow-y:auto;background:#0d0d14;border:1px solid rgba(255,255,255,.08);border-bottom:none;border-radius:20px 20px 0 0;padding:1.5rem 1.75rem 2.5rem;box-shadow:0 -4px 40px #000000b3,0 -1px 0 var(--ac, #a78bfa) inset,0 0 40px var(--ag, rgba(167,139,250,.1)) inset;transform:translateY(100%);animation:sheet-up .38s var(--ease) forwards}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.detail-panel:not(.active) .sheet{animation:none}.sheet-handle{width:36px;height:4px;border-radius:2px;background:#ffffff26;margin:0 auto 1.25rem}.sheet-close{position:absolute;top:1.25rem;right:1.25rem;background:#ffffff0f;border:none;color:#e4e4e780;width:28px;height:28px;border-radius:50%;font-size:.75rem;cursor:pointer;transition:background .2s,color .2s;display:flex;align-items:center;justify-content:center}.sheet-close:hover{background:#ffffff1f;color:#e4e4e7}.sheet-badge{display:inline-block;font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ac, #a78bfa);background:#ffffff0d;border:1px solid var(--ac, #a78bfa);border-radius:4px;padding:.2rem .5rem;margin-bottom:.75rem}.sheet-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.sheet-title{font-size:1.2rem;font-weight:500;color:#e4e4e7;letter-spacing:-.01em}.sheet-status{font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .5rem;border-radius:4px}.s-live{color:#22c55e;background:#22c55e1f}.s-building{color:#f59e0b;background:#f59e0b1f}.s-experiment{color:var(--ac, #a78bfa);background:#a78bfa1f}.sheet-desc{font-size:.85rem;color:#a1a1aae6;line-height:1.7;margin-bottom:1.25rem}.sheet-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.tag{font-size:.65rem;color:#a1a1aab3;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:.2rem .55rem}.sheet-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.06);padding-top:.9rem}.sheet-date{font-size:.7rem;color:#71717ab3}.sheet-link{font-size:.75rem;color:var(--ac, #a78bfa);text-decoration:none;transition:opacity .2s}.sheet-link:hover{opacity:.7}@media(max-width:600px){.c-name{font-size:2rem}.c-tag{font-size:.6rem}.orb-ring{width:46px;height:46px}.orb-core{width:18px;height:18px}.orb-aura{width:76px;height:76px}.node-orb.hot .orb-aura{width:100px;height:100px}.orb-label{font-size:.6rem}.orb-ai{font-size:.5rem}.sheet{max-height:80vh;padding:1.25rem 1.25rem 2rem}.sheet-title{font-size:1.05rem}}@media(max-width:380px){.orb-ring{width:40px;height:40px}.orb-core{width:15px;height:15px}}
