.control-panel{border-radius:var(--radius-lg);margin:0 auto var(--spacing-md);width:100%;margin-bottom:0;transition:transform .3s}.control-panel:hover{transform:translateY(-3px)}.control-panel select{box-sizing:border-box;width:100%}.filter-section{gap:var(--spacing-md);margin-bottom:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}.control-panel label{text-align:right;font-weight:600}.control-panel select{color:#111827f0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;appearance:none;-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background-color:#f8fafc1a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5 7 7.5 13 1.5' fill='none' stroke='rgba(17,24,39,0.72)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:14px 9px;border:1px solid #ffffff47;border-radius:16px;min-width:180px;padding:10px 42px 10px 14px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI Variable Display,Segoe UI,Inter,sans-serif;font-size:1rem;font-weight:600;transition:border-color .2s,box-shadow .2s,background-color .2s;box-shadow:inset 0 1px #ffffff42,inset 0 -1px #ffffff14,0 8px 22px #070e1b47}.control-panel select:hover,.control-panel select:focus{background:#f8fafc40;border-color:#ffffff6b;outline:none;box-shadow:inset 0 1px #ffffff57,0 10px 24px #070e1b52,0 0 0 2px #ffffff2e}.control-panel.dark-surface select{color:#f8fafcf5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:#1118278f;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5 7 7.5 13 1.5' fill='none' stroke='rgba(248,250,252,0.84)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");border:1px solid #ffffff3d;box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff0f,0 12px 28px #00000061}.control-panel.dark-surface select:hover,.control-panel.dark-surface select:focus{background:#111827a3;border-color:#ffffff61;box-shadow:inset 0 1px #ffffff3d,0 14px 30px #0000006b,0 0 0 2px #ffffff24}@media (width<=768px){.control-panel{width:100%;margin:0 0 var(--spacing-xs);box-shadow:none;box-sizing:border-box;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;padding:0}.filter-section{flex-direction:column;align-items:stretch;gap:6px;margin:0}.control-panel label{text-align:left;color:#f8fafcdb;letter-spacing:.01em;margin:0 2px;font-size:.8rem}.control-panel select{background-position:right 10px center;background-size:13px 8px;border-radius:12px;width:100%;min-width:0;max-width:none;margin:0;padding:10px 36px 10px 12px;font-size:.92rem}}.legend{box-sizing:border-box;color:#111827f0;background:#f8fafc1a;border:1px solid #ffffff47;border-radius:16px;width:100%;margin:0;padding:12px 14px;list-style:none;display:block;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff42,inset 0 -1px #ffffff14,0 8px 22px #070e1b47}.legend:before{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(120% 90% at 0 0,#fff3,#0000 62%),linear-gradient(#ffffff1f,#ffffff05);position:absolute;inset:0}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.legend{-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:#f8fafc03}}.legend h3{z-index:1;letter-spacing:.01em;color:#111827f0;text-shadow:0 1px #ffffff61;margin:0 0 10px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI Variable Display,Segoe UI,Inter,sans-serif;font-size:1.04rem;line-height:1.2;position:relative}.legend li{z-index:1;white-space:nowrap;color:#111827e6;border-radius:10px;align-items:center;gap:10px;padding:7px 6px;font-size:.9rem;font-weight:600;transition:background-color .2s,transform .2s;display:flex;position:relative}.legend li:hover{background:#ffffff47;transform:translateY(-1px)}.legend ul{gap:3px;margin:0;padding:0;list-style:none;display:grid}.color-box,.dashed-line,.solid-line{flex-shrink:0}.color-box{border:1px solid #ffffff8c;border-radius:5px;flex-shrink:0;width:15px;height:15px;box-shadow:inset 0 1px #ffffff40,0 1px 3px #00000047}.dashed-line,.solid-line{border-top:3px dashed var(--text-color);width:28px;height:2px}.solid-line{border-top-style:solid}.legend .no-legend{z-index:1;color:#111827cc;margin:0;font-size:.9rem;position:relative}.legend.dark-surface{color:#f8fafcf2;background:#1118271a;border:1px solid #ffffff3d;box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff0f,0 12px 28px #00000061}.legend.dark-surface h3,.legend.dark-surface li,.legend.dark-surface .no-legend{color:#f8fafcf2;text-shadow:none}.legend.dark-surface li:hover{background:#ffffff24}@media (width<=768px){.legend{border-radius:14px;padding:10px 12px}.legend ul{white-space:nowrap;-webkit-overflow-scrolling:touch;align-items:center;gap:8px;display:flex;overflow:auto hidden}.legend li{flex:none;padding:6px 8px;font-size:.8rem}}.network-container{--primary-color:#2563eb;--node-border:#e2e8f0e6;--node-border-hover:#3b82f6e6;--node-border-active:#2563eb;--node-accent-ring:#3b82f68c;--node-shadow:0 1px 3px #0f172a29;--text-color:#111827;--text-light:#6b7280;--card-bg:#fff;--border-color:#e5e7eb;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;touch-action:none;-webkit-user-select:none;user-select:none;background:#fff;flex-direction:column;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.control-panel{z-index:10;justify-content:center;align-items:center;display:flex}.visualization-area{flex:1;display:flex;position:relative;overflow:hidden}.network-graph{cursor:default;z-index:2;background:#fff;flex:1;position:relative}.graph-hover-status{z-index:120;pointer-events:auto;max-width:min(360px,100vw - 16px);font-family:var(--font-sans);text-align:left;-webkit-font-smoothing:antialiased;border-radius:16px;padding:0;position:fixed;top:0;left:0;overflow:visible;transform:none}.graph-hover-status--light{color:#111827f5;-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:#ffffffeb;border:1px solid #ffffff47;box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #0f172a0d,0 12px 28px #070e1b2e}.graph-hover-status--dark{color:#f8fafcf2;-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:#1118278f;border:1px solid #ffffff3d;box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff0f,0 12px 28px #00000061}.graph-hover-panel{flex-direction:column;gap:8px;padding:12px 14px 11px;display:flex}.graph-hover-head{flex-direction:column;gap:3px;display:flex}.graph-hover-title{letter-spacing:.02em;font-size:.95rem;font-weight:700;line-height:1.25}.graph-hover-title-muted{color:#64748bf2;font-weight:600}.graph-hover-status--dark .graph-hover-title-muted{color:#94a3b8f2}.graph-hover-meta{color:#475569f2;font-size:.78rem;line-height:1.35}.graph-hover-status--dark .graph-hover-meta{color:#e2e8f0d1}.graph-hover-bio{color:#334155fa;word-break:break-word;margin:0;font-size:.8rem;line-height:1.45;overflow:visible}.graph-hover-status--dark .graph-hover-bio{color:#e2e8f0e6}.graph-hover-links{flex-wrap:wrap;gap:6px;display:flex}.graph-hover-chip{color:#1d4ed8;background:#2563eb1a;border:1px solid #2563eb59;border-radius:999px;align-items:center;padding:.32rem .55rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.graph-hover-chip:hover{background:#2563eb29;border-color:#2563eb8c}.graph-hover-status--dark .graph-hover-chip{color:#e9d5fffa;background:#c084fc1f;border-color:#c084fc73}.graph-hover-status--dark .graph-hover-chip:hover{background:#c084fc33;border-color:#c084fca6}.graph-hover-dl{border-top:1px solid #0f172a14;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;margin:2px 0 0;padding-top:8px;font-size:.75rem;display:grid}.graph-hover-status--dark .graph-hover-dl{border-top-color:#ffffff1f}.graph-hover-dt{color:#64748bf2;margin:0;font-weight:500}.graph-hover-status--dark .graph-hover-dt{color:#94a3b8f2}.graph-hover-dd{color:#111827f0;text-align:right;word-break:break-word;margin:0;font-weight:600}.graph-hover-status--dark .graph-hover-dd{color:#f8fafcf5}.network-graph .node{cursor:pointer}.node circle{cursor:pointer;transition:stroke .14s,stroke-width .14s,opacity .14s}.node circle:not(.node-hub):not(.long-press-ring):not(.node-outline),.node path{stroke:var(--node-border);stroke-width:1px;paint-order:stroke fill}.node circle.node-outline{stroke:var(--node-border);stroke-width:1.4px}.node .node-accent-ring{stroke:var(--node-accent-ring);stroke-width:1.1px;opacity:.95}.node .node-hub{fill:#0f172a;stroke:#ffffffa6;stroke-width:.8px}.node text{pointer-events:none;font-family:var(--font-sans);letter-spacing:.01em;text-shadow:0 1px 1px #00000038;font-weight:500}.node:hover circle:not(.node-hub):not(.long-press-ring):not(.node-outline),.node:hover circle.node-outline,.node:hover path{stroke:var(--node-border-hover);stroke-width:2px}.network-graph.network-graph--node-dragging .node:hover circle:not(.node-hub):not(.long-press-ring):not(.node-outline),.network-graph.network-graph--node-dragging .node:hover path{stroke:var(--node-border);stroke-width:1px}.network-graph.network-graph--node-dragging .node:hover circle.node-outline{stroke:var(--node-border);stroke-width:1.4px}.long-press-ring{stroke:#2563eb;stroke-width:3px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;opacity:.95;pointer-events:none;transform:rotate(-90deg)}.node:hover circle.long-press-ring{stroke:#2563eb;stroke-width:3px}.link-full{fill-opacity:.48;pointer-events:none;transition:opacity .2s,fill-opacity .2s}.link-full.highlight{fill-opacity:1}.legend-container{z-index:100;text-align:center;background:#fff;border:1px solid #dadce0;border-radius:4px;font-size:14px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}@media (width<=768px){.network-container{height:100dvh}.control-panel select{min-width:120px}.node text{font-size:12px}.legend-container{width:calc(100% - 80px);font-size:12px;bottom:10px;left:10px;transform:none}}.network-graph:after{content:"Drag to move view";color:#111827;opacity:.7;pointer-events:none;background:#ffffffd9;border-radius:4px;font-size:12px;position:absolute;bottom:15px;left:15px}@media (width<=600px){.controls-legend-container{align-items:center;width:auto;position:fixed;bottom:10px;left:4vw;right:4vw}.controls-legend-container>.control-panel{top:max(10px, env(safe-area-inset-top));z-index:101;width:auto;min-width:0;margin:0;position:fixed;left:50%;transform:translate(-50%)}.controls-legend-container>.control-panel select{width:auto;min-width:180px}.controls-legend-container>.legend{width:100%;max-width:100%}}.node,.link-full{transition:opacity .2s}.network-container.desktop-safari .node,.network-container.desktop-safari .link-full{transition:none}@media (hover:none),(width<=768px){.node,.link-full{transition:none}}.dim{opacity:.1!important}.culled{display:none}.node.highlight circle,.node.highlight path,.link-full.highlight{opacity:1!important}.node.highlight circle:not(.node-hub):not(.long-press-ring):not(.node-outline),.node.highlight circle.node-outline,.node.highlight path{stroke:var(--node-border-active);stroke-width:2px}.controls-legend-container{align-items:stretch;gap:0;gap:var(--spacing-md);z-index:100;box-sizing:border-box;flex-direction:column;display:flex;position:absolute;bottom:20px;right:20px}.controls-legend-container>*{box-sizing:border-box;width:100%;min-width:0}body{color:#e2e8f0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000;margin:0}img{-webkit-user-drag:none;-webkit-touch-callout:none}canvas,svg{-webkit-touch-callout:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.app-root-full{background:#000;width:100%;min-height:100dvh;position:relative}.app-logo-slot{top:max(24px, env(safe-area-inset-top));left:max(24px, env(safe-area-inset-left));z-index:300;position:fixed}.app-logo-hit{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;margin:0;padding:0;line-height:0;position:relative}.app-logo-hit:focus-visible{outline-offset:4px;outline:2px solid #c084fcbf}.app-logo-frame{transform-origin:50%;line-height:0;transition:transform .2s;display:block}.app-logo-hit:hover .app-logo-frame,.app-logo-hit:focus-visible .app-logo-frame{transform:scale(1.08)}@keyframes app-logo-shake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-1.5px,.5px)rotate(-2.2deg)}50%{transform:translate(1.5px,-.5px)rotate(2.2deg)}75%{transform:translate(-1px,-.8px)rotate(-1.5deg)}}.app-logo-hit .app-logo.app-logo-shake{transform-origin:50%;animation:.28s ease-in-out infinite app-logo-shake}@media (prefers-reduced-motion:reduce){.app-logo-hit .app-logo.app-logo-shake{animation:none}}.app-logo{-webkit-user-select:none;user-select:none;width:auto;height:clamp(48px,8.45vw,68px);display:block}.graph-host{z-index:1;position:fixed;inset:0}.app-banner{top:max(12px, env(safe-area-inset-top));z-index:400;max-width:min(560px,92vw);margin:0;position:fixed;left:50%;transform:translate(-50%)}.auth-popover{flex-direction:column;gap:10px;width:min(280px,100vw - 32px);padding:12px 12px 10px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.auth-popover-title{letter-spacing:.02em;font-size:.95rem;font-weight:700}.auth-popover-hint{color:#e2e8f0d1;margin:0;font-size:.78rem;line-height:1.35}.auth-popover-hint-tight{color:#94a3b8f2;margin:-4px 0 0;font-size:.72rem}.auth-popover-crawl{border-top:1px solid #ffffff1f;flex-direction:column;gap:10px;margin-top:4px;padding-top:10px;display:flex}.glass-chrome{color:#f8fafcf2;-webkit-backdrop-filter:saturate(140%)blur(14px);backdrop-filter:saturate(140%)blur(14px);background:#1118278f;border:1px solid #ffffff3d;border-radius:16px;box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff0f,0 12px 28px #00000061}.chrome-pill{border:1px solid #fff3;border-radius:999px;align-self:flex-start;padding:.35rem .55rem;font-size:.88rem;display:inline-block}.chrome-field{gap:6px;display:grid}.chrome-field span{color:#e2e8f0d9;font-size:.78rem}.chrome-field input{color:#f8fafcf5;background:#0f172aa6;border:1px solid #ffffff3d;border-radius:12px;padding:.5rem .55rem;font-size:.9rem}.chrome-btn{color:#f8fafcf2;cursor:pointer;background:#0f172a80;border:1px solid #ffffff38;border-radius:12px;padding:.5rem .75rem;font-size:.9rem;font-weight:600}.chrome-btn:disabled{opacity:.5;cursor:not-allowed}.chrome-btn.primary{background:#c084fc26;border-color:#c084fc73}.shell{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 2rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.6rem}.muted{color:#94a3b8}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn{color:#e2e8f0;cursor:pointer;background:#0f172a;border:1px solid #334155;border-radius:10px;padding:.55rem .85rem}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:#c084fc1f;border-color:#c084fc8c}.pill{color:#e2e8f0;border:1px solid #334155;border-radius:999px;padding:.35rem .6rem;font-size:.95rem}.controls{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.75rem 0 1rem;display:flex}.field{flex:1;gap:.35rem;min-width:240px;display:grid}.field span{color:#cbd5e1;font-size:.85rem}.field input{color:#e2e8f0;background:#0b1220;border:1px solid #334155;border-radius:10px;padding:.55rem .65rem}.banner{white-space:pre-wrap;background:#0b1220;border:1px solid #334155;border-radius:12px;margin:.75rem 0 1rem;padding:.75rem .85rem}.banner.error{border-color:#f871718c}.graph-placeholder{color:#94a3b8;text-align:center;place-items:center;max-width:28rem;height:100%;margin:0 auto;padding:1rem 3rem 1rem 1rem;display:grid}.footer{margin-top:1rem;font-size:.9rem}code{color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}
