:root{--ui-bg:#080e1c9e;--ui-bg-strong:#060b16d1;--ui-border:#6ee7ff47;--ui-border-strong:#6ee7ff8c;--ui-text:#e6f6ff;--ui-text-dim:#9bb4cc;--ui-accent:#6ee7ff;--ui-accent-soft:#86b4ff;--ui-violet:#c792ea;--ui-danger:#ff5a6e;--ui-shadow:0 10px 40px #0000008c}#ui-root{color:var(--ui-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#ui-root,#ui-root *{box-sizing:border-box}.gate{-webkit-backdrop-filter:blur(14px);z-index:10;pointer-events:auto;background:radial-gradient(#0a1428d9 0%,#02040af5 80%);justify-content:center;align-items:center;padding:32px;animation:.22s fadeIn;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.gate__card{background:var(--ui-bg-strong);border:1px solid var(--ui-border);width:100%;max-width:520px;box-shadow:var(--ui-shadow), 0 0 80px #6ee7ff14 inset;border-radius:18px;padding:32px 36px 28px}.gate__eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ui-accent);margin-bottom:10px;font-size:12px}.gate__title{color:#fff;margin:0 0 14px;font-size:26px;font-weight:600;line-height:1.2}.gate__body{color:var(--ui-text-dim);margin:0 0 22px;font-size:14.5px;line-height:1.55}.gate__body strong{color:var(--ui-text);font-weight:500}.gate__actions{flex-direction:column;gap:10px;display:flex}.gate__warning{color:#ffd7a3;background:#ffb45a1a;border:1px solid #ffb45a66;border-radius:8px;margin:0 0 16px;padding:10px 12px;font-size:13px;line-height:1.5}.gate__warning strong{color:#ffefcf}.gate__error{color:#ffd1d6;background:#ff5a6e1a;border:1px solid #ff5a6e59;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:13px;line-height:1.5;display:none}.gate__error.is-visible{display:block}.btn{-webkit-appearance:none;appearance:none;cursor:pointer;border:none;border-radius:10px;padding:12px 18px;font-family:inherit;font-size:14.5px;font-weight:500;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s}.btn--primary{color:#041021;background:linear-gradient(135deg,#6ee7ff 0%,#86b4ff 100%);box-shadow:0 6px 22px #6ee7ff47}.btn--primary:hover{transform:translateY(-1px);box-shadow:0 10px 30px #6ee7ff66}.btn--ghost{border:1px solid var(--ui-border);color:var(--ui-text);background:0 0}.btn--ghost:hover{border-color:var(--ui-border-strong);background:#6ee7ff14}.toast{background:var(--ui-bg-strong);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(10px);color:var(--ui-text-dim);z-index:9;opacity:0;pointer-events:none;border-radius:10px;padding:10px 16px;font-size:13.5px;transition:opacity .24s;position:absolute;top:20px;left:50%;transform:translate(-50%)}.toast.is-visible{opacity:1}.cam-indicator{background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(10px);color:var(--ui-text-dim);pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 10px;font-size:12.5px;display:none;position:absolute;top:16px;right:16px}.cam-indicator.is-visible{display:inline-flex}.cam-indicator__dot{background:#ff4d62;border-radius:50%;width:8px;height:8px;animation:1.6s ease-out infinite pulse;box-shadow:0 0 #ff4d62b3}@keyframes pulse{0%{box-shadow:0 0 #ff4d62b3}70%{box-shadow:0 0 0 10px #ff4d6200}to{box-shadow:0 0 #ff4d6200}}.gesture-hud{background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(10px);max-width:320px;color:var(--ui-text-dim);pointer-events:none;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.4;transition:border-color .2s,color .2s;position:absolute;bottom:16px;right:16px}.gesture-hud__icon{vertical-align:-1px;margin-right:8px;font-size:15px;display:inline-block}.gesture-hud.is-active{color:var(--ui-text);border-color:var(--ui-border-strong)}.gesture-hud.is-selected{color:var(--ui-accent);border-color:var(--ui-accent);box-shadow:0 0 24px #6ee7ff38}.gesture-hud.is-missing{opacity:.7}.gesture-hud.is-panning{color:#ffd86b;border-color:#ffd86b;box-shadow:0 0 18px #ffd86b40}.gesture-hud.is-zooming{color:#a6e3ff;border-color:#a6e3ff;box-shadow:0 0 18px #a6e3ff40}.gesture-hud.is-pointing{color:var(--ui-accent-soft);border-color:var(--ui-accent-soft);box-shadow:0 0 18px #86b4ff38}.gesture-hud.is-navigating{color:#ffd86b;border-color:#ffd86b;box-shadow:0 0 18px #ffd86b40}.gesture-hud.is-neutral{color:var(--ui-text-dim);border-color:var(--ui-border)}.node-panel{background:var(--ui-bg-strong);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(14px);width:min(360px,38vw);box-shadow:var(--ui-shadow);opacity:0;pointer-events:none;border-radius:14px;padding:16px 18px 18px;transition:opacity .22s,transform .22s,border-color .22s;position:absolute;bottom:16px;left:16px;transform:translateY(6px)}.node-panel.is-visible{opacity:1;transform:translateY(0)}.node-panel.is-selected{border-color:var(--ui-accent);box-shadow:var(--ui-shadow), 0 0 30px #6ee7ff2e}.node-panel__kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--ui-accent);margin-bottom:6px;font-size:11px}.node-panel.is-selected .node-panel__kicker{color:var(--ui-accent)}.node-panel:not(.is-selected) .node-panel__kicker{color:var(--ui-accent-soft)}.node-panel__title{color:#fff;margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.25}.node-panel__excerpt{color:var(--ui-text-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 12px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.node-panel__tags{flex-wrap:wrap;gap:6px;display:flex}.node-panel__tag{color:var(--ui-accent);background:#6ee7ff14;border:1px solid #6ee7ff38;border-radius:999px;padding:3px 8px;font-size:11.5px}.metrics{background:var(--ui-bg);border:1px solid var(--ui-border);-webkit-backdrop-filter:blur(10px);color:var(--ui-text-dim);pointer-events:none;border-radius:10px;min-width:150px;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.45;position:absolute;top:16px;left:16px}.metrics.is-hidden{display:none}.metrics__row{justify-content:space-between;gap:12px;display:flex}.metrics__label{color:var(--ui-text-dim)}.metrics__value{color:var(--ui-text);font-variant-numeric:tabular-nums}.metrics__hint{color:#9bb4cc99;letter-spacing:.06em;text-transform:uppercase;margin-top:4px;font-size:10.5px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading{-webkit-backdrop-filter:blur(12px);z-index:11;pointer-events:auto;background:radial-gradient(#0a1428b8 0%,#02040ae0 80%);justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.loading__card{background:var(--ui-bg-strong);border:1px solid var(--ui-border);box-shadow:var(--ui-shadow);border-radius:14px;flex-direction:column;align-items:center;gap:16px;min-width:260px;padding:28px 36px;display:flex}.loading__spinner{border:3px solid #6ee7ff2e;border-top-color:var(--ui-accent);border-radius:50%;width:32px;height:32px;animation:.9s linear infinite spin}.loading__text{color:var(--ui-text);text-align:center;font-size:14px;line-height:1.4}@keyframes spin{to{transform:rotate(360deg)}}#ui-root button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.gate,.loading{animation:none}.toast,.node-panel{transition:none}.cam-indicator__dot{animation:none}.loading__spinner{animation-duration:2.4s}.btn{transition:none}.btn--primary:hover{transform:none}}.help-fab{background:var(--ui-bg);border:1px solid var(--ui-border);width:40px;height:40px;color:var(--ui-accent);cursor:pointer;-webkit-backdrop-filter:blur(10px);pointer-events:auto;z-index:20;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:18px;font-weight:600;line-height:1;transition:border-color .16s,background .16s,transform .16s,box-shadow .16s;display:inline-flex;position:absolute;bottom:72px;right:16px;box-shadow:0 4px 16px #00000059}.help-fab:hover{border-color:var(--ui-border-strong);background:#6ee7ff1a;transform:translateY(-1px);box-shadow:0 6px 22px #6ee7ff40}.help-overlay{-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;z-index:21;background:#0000008c;justify-content:center;align-items:center;padding:24px;transition:opacity .22s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.help-overlay.is-visible{opacity:1;pointer-events:auto}.help-modal{width:100%;max-width:460px;max-height:80vh;box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(16px);background:#0c121ceb;border:1px solid #6ee7ff40;border-radius:14px;padding:22px 24px 18px;transition:transform .22s;overflow-y:auto;transform:translateY(8px)}.help-overlay.is-visible .help-modal{transform:translateY(0)}.help-modal__title{color:var(--ui-accent);letter-spacing:.02em;margin:0 0 14px;font-size:18px;font-weight:600}.help-modal__section{margin-bottom:14px}.help-modal__section:last-of-type{margin-bottom:8px}.help-modal__subtitle{letter-spacing:.16em;text-transform:uppercase;color:var(--ui-accent-soft);margin:0 0 8px;font-size:11px;font-weight:600}.help-modal__rows{gap:6px;display:grid}.help-modal__row{background:#6ee7ff0a;border:1px solid #6ee7ff14;border-radius:6px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:6px 8px;font-size:13px;line-height:1.4;display:grid}.help-modal__row-key{color:var(--ui-text)}.help-modal__row-val{color:var(--ui-text-dim)}.help-modal__actions{justify-content:flex-end;margin-top:14px;display:flex}.help-modal__actions .btn{padding:8px 16px;font-size:13.5px}@media (prefers-reduced-motion:reduce){.help-overlay,.help-modal,.help-fab{transition:none}.help-fab:hover{transform:none}}.node-label{color:#f4faff;letter-spacing:.02em;text-shadow:0 1px 2px #000000bf,0 0 6px #00000073;-webkit-backdrop-filter:blur(6px);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;opacity:0;-webkit-user-select:none;user-select:none;background:#080e1c8c;border:1px solid #ffffff14;border-radius:6px;max-width:220px;padding:3px 8px;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:500;transition:opacity .2s,transform .2s,background .2s,border-color .2s;overflow:hidden;transform:translate(-50%,calc(-100% - 4px))}.node-label.is-visible{opacity:1;transform:translate(-50%,-100%)}.node-label.is-selected{color:#061422;text-shadow:none;letter-spacing:.015em;background:#6ee7fff0;border-color:#6ee7fff2;font-weight:600}.node-label.is-neighbor{color:#eaf4ff;background:#0c1628ad;border-color:#86b4ff52}@media (prefers-reduced-motion:reduce){.node-label{transition:opacity .12s}.node-label.is-visible{transform:translate(-50%,-100%)}}.vignette{pointer-events:none;z-index:4;background:radial-gradient(#0000 55%,#00000073 100%);position:absolute;top:0;bottom:0;left:0;right:0}.node-detail-overlay{-webkit-backdrop-filter:blur(20px)saturate(110%);opacity:0;pointer-events:none;z-index:30;background:#000000b8;justify-content:center;align-items:center;padding:24px;transition:opacity .22s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.node-detail-overlay.is-visible{opacity:1;pointer-events:auto}.node-detail{-webkit-backdrop-filter:blur(20px);opacity:0;background:#060a14f0;border:1px solid #6ee7ff2e;border-radius:18px;width:100%;max-width:720px;max-height:86vh;padding:36px 40px 32px;transition:transform .26s cubic-bezier(.2,.9,.3,1),opacity .26s;position:relative;overflow-y:auto;transform:scale(.96);box-shadow:0 40px 120px #0009,inset 0 0 80px #6ee7ff14}.node-detail-overlay.is-visible .node-detail{opacity:1;transform:scale(1)}.node-detail__close{width:36px;height:36px;color:var(--ui-text);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:20px;line-height:1;transition:background .16s,border-color .16s,color .16s;display:inline-flex;position:absolute;top:14px;right:14px}.node-detail__close:hover{border-color:var(--ui-border-strong);color:var(--ui-accent);background:#6ee7ff24}.node-detail__content{opacity:1;transition:opacity .18s}.node-detail__content.is-fading{opacity:0}.node-detail__kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--ui-accent);margin-bottom:12px;font-size:11.5px;font-weight:600}.node-detail__title{color:#fff;letter-spacing:-.01em;margin:0 0 16px;font-size:34px;font-weight:600;line-height:1.18}.node-detail__tags{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.node-detail__tag{-webkit-appearance:none;appearance:none;color:var(--ui-accent);cursor:default;background:#6ee7ff14;border:1px solid #6ee7ff38;border-radius:999px;padding:4px 10px;font-family:inherit;font-size:12px;transition:background .14s,border-color .14s}.node-detail__tag:hover{background:#6ee7ff24;border-color:#6ee7ff6b}.node-detail__excerpt{color:#d3e1f2;white-space:pre-wrap;margin:0 0 28px;font-size:15.5px;line-height:1.62}.node-detail__section{margin-top:20px}.node-detail__subtitle{letter-spacing:.18em;text-transform:uppercase;color:var(--ui-accent-soft);margin:0 0 12px;font-size:11px;font-weight:600}.node-detail__neighbors{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.node-detail__neighbor{-webkit-appearance:none;appearance:none;text-align:left;color:var(--ui-text);cursor:pointer;background:#0c142299;border:1px solid #6ee7ff1f;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;font-family:inherit;transition:background .16s,border-color .16s,transform .16s;display:flex}.node-detail__neighbor:hover{border-color:var(--ui-border-strong);background:#6ee7ff14;outline:none;transform:translateY(-1px)}.node-detail__neighbor:focus-visible{border-color:var(--ui-border-strong);background:#6ee7ff14;outline:none;transform:translateY(-1px)}.node-detail__neighbor-title{color:#f1f8ff;font-size:13.5px;font-weight:500;line-height:1.3}.node-detail__neighbor-tag{color:var(--ui-accent-soft);letter-spacing:.04em;font-size:11px}.node-detail__meta{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 16px;margin:0;display:grid}.node-detail__meta-row{background:#ffffff05;border:1px solid #ffffff0a;border-radius:8px;flex-direction:column;gap:2px;margin:0;padding:6px 10px;display:flex}.node-detail__meta-row dt{letter-spacing:.14em;text-transform:uppercase;color:var(--ui-text-dim);margin:0;font-size:10.5px}.node-detail__meta-row dd{color:var(--ui-text);word-break:break-all;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}@media (prefers-reduced-motion:reduce){.node-detail-overlay,.node-detail,.node-detail__content{transition:opacity .12s}.node-detail-overlay.is-visible .node-detail{transform:none}}
