:root{--bg:#0f1115;--bg-2:#161a21;--line:#2a3140;--text:#e7eaf0;--muted:#8b94a7;--accent:#7aa2ff;--accent-2:#ffb86b;--card:#fff;--panel-w:360px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}a{color:var(--accent)}.muted{color:var(--muted)}.app{flex-direction:column;height:100%;display:flex}.main{flex:1;min-height:0;display:flex;position:relative}.workspace{flex:1;min-width:0;display:flex;position:relative}.pane{min-width:0;display:flex;position:relative;overflow:hidden}.canvas-nav{z-index:3;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#161a21d9;border-radius:10px;gap:4px;padding:3px;display:flex;position:absolute;top:12px;left:12px}.canvas-nav button{width:30px;height:30px;color:var(--text);border-radius:7px;place-items:center;display:grid}.canvas-nav button:hover:not(:disabled){background:var(--line)}.canvas-nav button:disabled{color:#4a5568;cursor:default}.pane-explore{flex:0 0 100%}.workspace.split .pane-explore{flex-grow:0;flex-shrink:0}.pane-mine{flex:1 1 0}body[data-resizing]{cursor:col-resize;-webkit-user-select:none;user-select:none}body[data-resizing] .node,body[data-dragging=entity] .node,body[data-dragging=note] .note{pointer-events:none}body[data-dragging]{cursor:grabbing;-webkit-user-select:none;user-select:none}.divider{cursor:col-resize;background:var(--bg-2);border-left:1px solid var(--line);border-right:1px solid var(--line);z-index:1;flex:0 0 10px;justify-content:center;align-items:center;transition:background .15s;display:flex;position:relative}.divider:hover,body[data-resizing] .divider{background:#1f2632}.divider-grip{background:#3a4354;border-radius:2px;width:4px;height:44px;transition:background .15s,height .15s}.divider:hover .divider-grip,body[data-resizing] .divider-grip{background:var(--accent);height:64px}.divider-collapsed-left .divider-grip,.divider-collapsed-right .divider-grip{background:var(--accent);opacity:.8}.perspective-canvas{background:radial-gradient(circle at 1px 1px, #232a36 1px, transparent 1.5px) 0 0 / 28px 28px, var(--bg);transition:box-shadow .15s}body[data-dragging] .perspective-canvas{box-shadow:inset 0 0 0 2px var(--accent)}.perspective-empty{text-align:center;height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;font-family:inherit;font-size:13px;display:flex}.perspective-empty strong{color:var(--text);font-size:16px}.perspective-empty span{max-width:320px}.select-ring{fill:#7aa2ff1a;stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 4}.marquee{fill:#7aa2ff14;stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.mine-selection{z-index:2;border:1px solid var(--accent);color:var(--text);white-space:nowrap;background:#7aa2ff1f;border-radius:999px;align-items:center;gap:4px;padding:4px 6px 4px 12px;font-size:12px;display:flex;position:absolute;top:14px;left:96px}.mine-selection span{margin-right:6px}.mine-selection button{color:var(--accent);border-radius:999px;padding:3px 9px;font-size:12px}.mine-selection button:hover{background:#7aa2ff33}.node-remove{opacity:0;cursor:pointer;transition:opacity .15s}.node:hover .node-remove{opacity:1}.node-remove circle{fill:var(--bg-2);stroke:var(--line);stroke-width:1.5px}.node-remove path{stroke:var(--text);stroke-width:2px;stroke-linecap:round}.node-remove:hover circle{fill:#5a2a2a;stroke:#a04848}.edge.edge-theory{stroke:#e05d5d;stroke-width:2px;stroke-dasharray:7 5;opacity:.85}.edge.edge-theory.edge-hot{stroke:#ff7b7b;opacity:1}.edge.edge-theory-draft{opacity:.6;pointer-events:none}.link-btn{opacity:0;cursor:crosshair;transition:opacity .15s}.node:hover .link-btn{opacity:1}.link-btn circle{fill:var(--bg-2);stroke:var(--line);stroke-width:1.5px}.link-icon{fill:none;stroke:#e05d5d;stroke-width:1.8px;stroke-linecap:round}.link-btn:hover circle{fill:#3a1d1d;stroke:#e05d5d}.node-link-target>circle:first-of-type,.node-link-target .select-ring{stroke:#e05d5d}.note-theory{color:#f3dede;background:#2a1717;border-color:#6b2a2a #6b2a2a #6b2a2a #e05d5d}.note-theory .note-flag{color:#fff;background:#e05d5d}.note-anchor{color:#c99}.edge-hit{stroke:#0000;stroke-width:16px;cursor:pointer}.note-btn{cursor:pointer}.note-btn circle{fill:var(--bg-2);stroke:var(--line);stroke-width:1.5px;transition:fill .15s,stroke .15s}.note-btn:hover circle{fill:#3a2f17;stroke:var(--accent-2)}.note-btn-edge{animation:.15s ease-out both node-in}.note-fo{pointer-events:none;overflow:visible}.note{pointer-events:auto;box-sizing:border-box;color:#efe4c6;background:#241f14;border:1px solid #7a6222;border-radius:10px;flex-direction:column;width:280px;padding:10px;font-family:inherit;font-size:12.5px;line-height:1.45;display:flex;position:relative;box-shadow:0 8px 24px #00000073}.note-read{cursor:text}.note-read.note-static{cursor:default}.note-input{resize:none;width:100%;min-height:0;color:inherit;font:inherit;cursor:inherit;background:0 0;border:0;outline:none;flex:auto;padding:0;overflow:auto}.note-input::placeholder{color:#b9a878;opacity:.7}.note:not(.note-static):after{content:"";clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,12px 12px,12px calc(100% - 12px),calc(100% - 12px) calc(100% - 12px),calc(100% - 12px) 12px,12px 12px);position:absolute;inset:-6px}.note-edit>.note-more,.note-edit>.note-foot{flex:none}.note-head{background:#33291a;border-bottom:1px solid #45391f;border-radius:9px 9px 0 0;align-items:center;gap:8px;height:22px;margin:-10px -10px 8px;padding:0 10px;display:flex}.note-handle{cursor:grab}.note-handle:active{cursor:grabbing}.note-pin{cursor:default;background:0 0;border:1.5px solid #8a7a52;border-radius:50%;flex:none;width:10px;height:10px;padding:0}.note-pin.on{border-color:var(--accent);background:var(--accent);cursor:pointer}.note-pin.on:hover{box-shadow:0 0 0 3px #7aa2ff40}.note-pin:disabled{cursor:default}.note-tether{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3;opacity:.8;pointer-events:none}.note-anchor{color:#b9a878;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.note-more{cursor:pointer;z-index:1;color:#b9a878;opacity:.7;justify-content:center;align-items:center;width:22px;height:10px;padding:0;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.note-more:hover{opacity:1;color:var(--accent-2)}.note-more svg{transition:transform .15s}.note-more.on svg{transform:rotate(180deg)}.note-foot{background:#33291a;border-top:1px solid #45391f;border-radius:0 0 9px 9px;justify-content:flex-end;align-items:center;height:28px;margin:8px -10px -10px;padding:0 10px;display:flex}.note-minimize{color:#b9a878;opacity:.7;border-radius:4px;place-items:center;width:16px;height:16px;margin-left:auto;display:grid}.note-minimize:hover{opacity:1;color:var(--accent-2)}.note-min{cursor:pointer}.note-min circle{fill:#241f14;stroke:#b9a878;stroke-width:2px}.note-min path{stroke:#b9a878;stroke-width:2.2px;stroke-linecap:round;fill:none}.note-min:hover circle,.note-min:hover path{stroke:var(--accent-2)}.note-danger{color:#d98b8b;opacity:.8;place-items:center;width:24px;height:24px;display:grid}.note-danger:hover{opacity:1;color:#ff8a8a}.drag-ghost{z-index:100;pointer-events:none;filter:drop-shadow(0 8px 20px #0009);flex-direction:column;align-items:center;gap:4px;display:flex;position:fixed;transform:translate(-50%,-50%)}.drag-ghost-stack{width:88px;height:88px;position:relative}.drag-ghost-card{transform:translate(calc(var(--i) * 10px), calc(var(--i) * -10px)) rotate(calc(var(--i) * 4deg));z-index:calc(3 - var(--i));position:absolute;inset:0}.drag-ghost-count{z-index:5;background:var(--accent);color:#0b1020;border-radius:12px;place-items:center;min-width:24px;height:24px;padding:0 7px;font-size:12px;font-weight:800;display:grid;position:absolute;bottom:-8px;right:-8px}.drag-ghost img,.drag-ghost-initial{object-fit:contain;background:var(--card);border:2px solid var(--accent);border-radius:14px;width:88px;height:88px;padding:5px}.drag-ghost img.person{object-fit:cover;border-radius:50%;padding:0}.drag-ghost-initial{color:#6b7280;place-items:center;font-size:28px;font-weight:700;display:grid}.drag-ghost-label{background:var(--bg-2);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.mine-toggle{white-space:nowrap;border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:13px;display:flex}.mine-toggle:hover{color:var(--text);border-color:#3a4354}.mine-toggle.on{color:var(--text);border-color:var(--accent);background:#7aa2ff1f}.canvas{background:radial-gradient(ellipse at center, #171b23 0%, var(--bg) 70%);cursor:grab;flex:1;width:100%;min-width:0;height:100%;display:block}.canvas:active{cursor:grabbing}.topbar{border-bottom:1px solid var(--line);background:var(--bg-2);z-index:10;align-items:center;gap:20px;padding:10px 18px;display:flex;position:relative}.brand{letter-spacing:.02em;border-radius:8px;margin-left:-8px;padding:4px 8px;font-size:17px;font-weight:700}.brand:hover{background:var(--line)}.brand.at-home{cursor:default}.brand.at-home:hover{background:0 0}.filters{align-items:center;gap:8px;min-width:0;display:flex;position:relative}.filters-btn{border:1px solid var(--line);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:5px 12px;font-size:13px;display:flex}.filters-btn:hover,.filters-btn.on{border-color:var(--accent);background:#7aa2ff1f}.filters-count{background:var(--accent);color:#0b1020;text-align:center;border-radius:9px;min-width:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.chips{flex-wrap:nowrap;gap:4px;min-width:0;display:flex;overflow:hidden}.chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;display:inline-flex}.chip-auto{color:var(--muted);border-color:var(--line);border-style:dashed}.chip-lens{color:#c9d8ff;background:#7aa2ff29;border-color:#7aa2ff59}.chip-domain{color:#bdf0d6;background:#78dcaa24;border-color:#78dcaa59}.chip-x{opacity:.6}.chip:hover .chip-x{opacity:1}.palette.palette-topics{grid-template-columns:288px}.overview-canvas{cursor:grab}.panel-welcome h2{margin:4px 0 8px;font-size:22px}.panel-welcome p{color:#c9d0dc;margin:0 0 12px}.welcome-steps{gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.welcome-steps li{border-left:2px solid var(--line);color:#c9d0dc;padding-left:14px}.welcome-steps strong{color:var(--text)}.welcome-steps em{color:var(--accent);font-style:normal}.small{font-size:12px}.face{border:1px solid var(--line);border-radius:999px;flex-shrink:0;padding:2px;display:flex}.face button{color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.face button.on{background:var(--line);color:var(--text);font-weight:600}.palette{z-index:20;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;grid-template-columns:340px 260px;gap:0;max-height:min(70vh,640px);display:grid;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 16px 48px #0000008c}.palette section{max-height:min(70vh,640px);padding:12px 14px;overflow-y:auto}.palette section+section{border-left:1px solid var(--line)}.palette header{margin-bottom:8px}.palette h4{text-transform:uppercase;letter-spacing:.08em;margin:0 0 2px;font-size:12px}.palette header .muted{font-size:12px}.palette ul{margin:0;padding:0;list-style:none}.palette li label{cursor:pointer;border-radius:8px;grid-template-columns:16px 1fr;align-items:start;column-gap:10px;padding:6px;display:grid}.palette li label:hover{background:var(--line)}.palette input{accent-color:var(--accent);margin:3px 0 0}.palette .domains input{accent-color:#78dcaa}.opt-name{font-size:13px;font-weight:600}.opt-hint{color:var(--muted);grid-column:2;font-size:11.5px;line-height:1.35}.palette .domains li label{padding:4px 6px}.palette-link{color:var(--accent);margin-top:8px;padding:4px 6px;font-size:12px}.trail{white-space:nowrap;color:var(--muted);flex:1;justify-content:flex-end;align-items:center;font-size:13px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 40px);mask-image:linear-gradient(90deg,#0000,#000 40px)}.trail button{border-radius:6px;padding:4px 6px}.trail button:hover{background:var(--line)}.trail button.on{color:var(--text);font-weight:600}.trail-sep{opacity:.6;margin:0 2px}.search{position:relative}.search input{border:1px solid var(--line);background:var(--bg);width:260px;color:var(--text);font:inherit;border-radius:8px;outline:none;padding:8px 12px}.search input:focus{border-color:var(--accent)}.search-hits{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;width:380px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #00000080}.search-hits button{text-align:left;border-radius:6px;width:100%;padding:8px 10px;font-size:13px;display:block}.search-hits button:hover{background:var(--line)}.edge{stroke:var(--line);stroke-width:1.5px;transition:stroke .4s,opacity .4s}.edge-focus{stroke:#4b5568;stroke-width:2px}.edge-dim{opacity:.35}.edge-hot{stroke:var(--accent);stroke-width:2.5px;opacity:1}.rel-tag{pointer-events:none;animation:.15s ease-out both node-in}.rel-tag rect{fill:var(--accent)}.rel-tag text{fill:#0b1020;text-anchor:middle;letter-spacing:.01em;font-size:12px;font-weight:600}.node{cursor:pointer;transition:opacity .5s;animation:.5s ease-out both node-in}.cluster-back .node{animation:none}@keyframes node-in{0%{opacity:0}}.node-context{opacity:.22}.node-lifted{opacity:.3;filter:grayscale();transition:opacity .15s,filter .15s}.connections li.lifted button{opacity:.35;filter:grayscale()}.node-context:hover{opacity:.8}.node-bg{fill:var(--card);transition:all .4s}.node-person .node-bg{fill:#232a36}.node-ring{fill:none;stroke:#3a4354;stroke-width:2px;transition:all .4s}.node-focus .node-ring{stroke:var(--accent);stroke-width:3px}.node:hover .node-ring{stroke:var(--accent)}.node-label{fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;pointer-events:none;font-size:12.5px;font-weight:500}.node-focus .node-label{font-size:15px;font-weight:700}.node-initial{fill:#6b7280;text-anchor:middle;font-weight:700}.node-organization .node-initial{fill:#9aa3b5}.empty-hint{fill:var(--muted);pointer-events:none;font-size:13px}.spinner circle{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:60 400;transform-origin:50%;transform-box:fill-box;opacity:.8;animation:1.2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.panel{width:var(--panel-w);border-left:1px solid var(--line);background:var(--bg-2);flex-shrink:0;padding:18px;font-size:14px;line-height:1.5;overflow-y:auto}.collapse-hint{border-right:3px solid var(--accent);pointer-events:none;z-index:5;background:linear-gradient(90deg,#0000,#7aa2ff59);width:14px;animation:.15s ease-out collapse-hint-in;position:absolute;top:0;bottom:0;right:0}@keyframes collapse-hint-in{0%{opacity:0}to{opacity:1}}.main.panel-armed .panel{opacity:.35;transition:opacity .15s}.main.panel-collapsed .panel{display:none}.panel-entity{flex-direction:column;padding:0;display:flex;overflow:hidden}.panel-entity .panel-body{flex:auto;min-height:0;padding:18px;overflow-y:auto}.panel-entity .sources{flex-shrink:0;margin-top:0;padding:12px 18px}.panel-head{align-items:flex-start;gap:14px;display:flex}.panel-head h2{margin:0 0 2px;font-size:20px}.panel-head p{margin:0;font-size:13px}.panel-img{object-fit:contain;background:var(--card);border-radius:14px;flex-shrink:0;width:72px;height:72px;padding:6px}.panel-img.person{object-fit:cover;border-radius:50%;padding:0}.figures{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;display:grid}.figure{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.figure-value{color:var(--accent-2);font-size:18px;font-weight:700;display:block}.figure-label{color:var(--muted);font-size:11.5px}.extract{color:#c9d0dc;margin:14px 0}.article{margin-top:14px}.article .extract{margin:0 0 12px}.article .wlink{font-size:inherit;line-height:inherit;color:var(--accent);border-radius:2px;padding:0;text-decoration:none}.article .wlink-out:after{content:" ↗";font-size:.85em}.article .wlink:hover{text-decoration:underline}.wpreview{z-index:15;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.5;animation:.15s ease-out tour-card-in;position:fixed;box-shadow:0 16px 48px #0000008c}.wpreview strong{margin-bottom:4px;font-size:14px;display:block}.wpreview p{color:var(--text);margin:0}.wpreview p.muted{color:var(--muted)}.article-h{color:var(--text);margin:18px 0 6px;font-weight:600}.article-h2{font-size:15px}.article-h3{color:#c9d0dc;font-size:13.5px}.article-h4,.article-h5,.article-h6{color:var(--muted);font-size:13px}.article-step .article-h+.article-h{margin-top:8px}.article .more{border:1px solid var(--line);color:var(--accent);background:0 0;border-radius:999px;margin:0 0 14px;padding:3px 10px;font-size:12px;text-decoration:none;display:inline-block}.article .more:hover:not(:disabled){background:#ffffff0d}.article .more:disabled{color:var(--muted)}.facts{grid-template-columns:max-content 1fr;gap:4px 14px;margin:12px 0;font-size:13px;display:grid}.facts>div{display:contents}.facts dt{color:var(--muted)}.facts dd{margin:0}.connections h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:baseline;gap:8px;margin:18px 0 6px;font-size:12px;display:flex}.connections .count{color:var(--text)}.connections .count-note{text-transform:none;letter-spacing:0;margin-left:auto;font-size:11px}.connections li.panel-only button{opacity:.7}.connections li.panel-only button:hover{opacity:1}.connections li.panel-only .conn-qual{color:var(--accent-2);white-space:nowrap;margin-left:auto;font-size:11.5px}.conn-dot{filter:saturate(.6)}.conn-group{margin-bottom:10px}.conn-label{color:var(--accent);margin-bottom:4px;font-size:12px}.connections ul{margin:0;padding:0;list-style:none}.connections li button{text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;padding:5px 6px;display:flex}.connections li button:hover{background:var(--line)}.connections img{object-fit:contain;background:var(--card);border-radius:6px;flex-shrink:0;width:28px;height:28px;padding:2px}.connections img.person{object-fit:cover;border-radius:50%;padding:0}.conn-dot{background:var(--line);border-radius:6px;flex-shrink:0;width:28px;height:28px}button.link{color:var(--accent);font-size:inherit;padding:0}button.link:hover{text-decoration:underline}.panel-about{position:relative}.panel-about h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 6px;font-size:12px}.panel-about p{color:#c9d0dc;margin:0 0 10px}.about-sources{gap:10px;margin:0;padding:0;list-style:none;display:grid}.about-sources li{border-left:2px solid var(--line);color:#c9d0dc;padding-left:12px}.about-close{color:var(--muted);font-size:20px;line-height:1;position:absolute;top:12px;right:14px}.about-close:hover{color:var(--text)}.sources{border-top:1px solid var(--line);gap:14px;margin-top:18px;padding-top:12px;font-size:12px;display:flex}.toast{z-index:25;color:#ffd7d7;background:#3a1d1d;border:1px solid #7a2e2e;border-radius:10px;align-items:center;gap:10px;max-width:min(560px,100vw - 32px);padding:8px 8px 8px 16px;font-size:13px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast.info{background:var(--bg-2);border-color:var(--line);color:var(--text)}.toast-close{width:24px;height:24px;color:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;padding:0;font-size:16px;line-height:1}.toast-close:hover{opacity:1;background:#ffffff14}.mine-head{z-index:3;pointer-events:none;align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:14px}.mine-head>*{pointer-events:auto}.mine-head .canvas-nav{flex:none;position:static}.mine-tools{flex-wrap:wrap;flex:1 1 0;justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin-left:auto;padding-top:2px;display:flex}.holes{flex:0 auto;min-width:0;position:relative}.holes-btn{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:100%;height:38px;color:var(--text);background:#161a21d9;border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:flex}.holes-btn:hover,.holes-btn.on{border-color:var(--accent)}.holes-btn svg{color:var(--muted);flex:none}.holes-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.holes-menu{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:4px;width:280px;max-width:calc(100vw - 32px);padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 40px #00000080}.holes-list{border-bottom:1px solid var(--line);flex-direction:column;max-height:320px;padding-bottom:4px;display:flex;overflow-y:auto}.holes-row{border-radius:6px;align-items:center;display:flex}.holes-row:hover{background:var(--line)}.holes-row.on{background:#7aa2ff1f}.holes-name{text-align:left;min-width:0;color:var(--text);flex:1;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.holes-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.holes-row.on .holes-name{color:var(--accent);font-weight:600}.holes-count{background:var(--line);min-width:18px;color:var(--muted);text-align:center;border-radius:9px;flex:none;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.holes-row.on .holes-count{background:var(--accent);color:#0b1020}.holes-name em{color:var(--muted);flex:none;font-size:11px;font-style:normal}.holes-act{width:28px;height:28px;color:var(--muted);opacity:0;border-radius:6px;flex:none;place-items:center;display:grid}.holes-row:hover .holes-act,.holes-row.on .holes-act,.holes-act:focus-visible{opacity:1}.holes-act:hover{color:var(--text);background:#ffffff0f}.holes-act.danger:hover{color:#ff8a8a}.holes-new{text-align:left;color:var(--accent);border-radius:6px;padding:8px 10px;font-size:13px}.holes-new:hover{background:var(--line)}.holes-field{flex:1;gap:6px;padding:4px;display:flex}.holes-field input{border:1px solid var(--accent);background:var(--bg);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:6px 8px;font-size:13px}.holes-field button{background:var(--accent);color:#0b0e14;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600}.mine-others{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#161a21d9;border-radius:999px;padding:6px 12px;font-size:12px}.mine-others:hover{color:var(--text);border-color:var(--accent)}.mine-others.on{color:var(--accent);border-color:#7aa2ff99}.edge.edge-highlight{stroke:var(--accent-2);stroke-width:3.5px;opacity:1}.edge.edge-highlight.edge-hot{stroke:#ffd09a}.edge.edge-faint{opacity:.22}.edge.edge-faint.edge-hot{opacity:1}.star-icon{fill:none;stroke:var(--muted);stroke-width:1.4px;stroke-linejoin:round;pointer-events:none}.light-btn:hover .star-icon{stroke:var(--accent-2)}.light-btn.on .star-icon{fill:var(--accent-2);stroke:var(--accent-2)}.mine-connecting{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#161a21d9;border-radius:999px;padding:6px 12px;font-size:12px}.mine-share{border:1px solid var(--line);color:var(--text);white-space:nowrap;background:#161a21d9;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.mine-share:hover{border-color:var(--accent);color:var(--accent)}.mine-share.on{color:var(--accent);border-color:#7aa2ff99}.mine-note{width:28px;height:28px;color:var(--accent-2);white-space:nowrap;cursor:grab;touch-action:none;background:#ffb86b1a;border:1px solid #ffb86b80;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex}.mine-note:hover{background:#ffb86b33}.mine-note:active{cursor:grabbing}.note-flag{letter-spacing:.1em;text-transform:uppercase;background:var(--accent-2);color:#1d1608;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:800}.note-drag-ghost .note-flag{border-radius:6px;padding:4px 9px;font-size:11px;box-shadow:0 6px 18px #00000080}.mine-unsaved{color:var(--accent-2);text-align:center;background:#ffb86b1a;border:1px solid #ffb86b80;border-radius:14px;max-width:100%;padding:6px 12px;font-size:12px}.mine-unsaved:hover{background:#ffb86b33}.pane-shared{flex-direction:column;display:flex}.mine-shared{border-bottom:1px solid var(--line);background:var(--bg-2);align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.mine-shared-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mine-shared-title strong{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.mine-shared-title span{color:var(--muted);font-size:12px}.mine-shared button{border:1px solid var(--line);color:var(--accent);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:12px}.mine-shared button:hover{border-color:var(--accent);background:#7aa2ff1f}.pane-shared .perspective-canvas{flex:1;min-height:0}.mine-shared-back{width:30px;height:30px;color:var(--text);border-radius:7px;flex:none;font-size:22px;line-height:1}.mine-shared-back:hover{background:var(--line)}.mine-shared-title button.link{color:var(--muted);text-underline-offset:2px;font-size:12px;text-decoration:underline}.mine-shared-title button.link:hover{color:var(--text)}.mine-shared-title button.link.danger:hover{color:#ff8a8a}.heart{border:1px solid var(--line);color:var(--muted);border-radius:999px;flex:none;align-items:center;gap:5px;padding:5px 10px;font-size:12px;display:inline-flex}.heart svg path{fill:none;stroke:currentColor;stroke-width:1.8px;transition:fill .15s,transform .15s}.heart:hover{color:#ff7a9a;border-color:#ff7a9a80}.heart.on{color:#ff5c85;border-color:#ff5c8599}.heart.on svg path{fill:currentColor}.pane-community{flex-direction:column;display:flex}.community{flex-direction:column;flex:1;min-height:0;display:flex}.community-head{border-bottom:1px solid var(--line);background:var(--bg-2);gap:10px;padding:12px 14px;display:flex}.community-search{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--text);font:inherit;border-radius:999px;outline:none;flex:1;padding:8px 12px;font-size:13px}.community-search:focus{border-color:var(--accent)}.community-sort{border:1px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:flex}.community-sort button{color:var(--muted);border-radius:999px;padding:4px 12px;font-size:12px}.community-sort button.on{background:var(--line);color:var(--text)}.community-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px 14px 24px;display:flex;overflow-y:auto}.community-empty{color:var(--muted);text-align:center;padding:40px 20px;font-size:13px}.community-card{border:1px solid var(--line);background:var(--bg-2);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.community-card:hover{border-color:var(--accent)}.community-preview{flex:none;align-items:center;display:flex}.community-preview img,.community-initial,.community-more{border:2px solid var(--bg-2);object-fit:cover;background:var(--card);border-radius:50%;width:34px;height:34px;margin-left:-10px}.community-preview>:first-child{margin-left:0}.community-initial,.community-more{color:#0b1020;place-items:center;font-size:12px;font-weight:600;display:grid}.community-more{background:var(--line);color:var(--text)}.community-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.community-body strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.community-body .muted{color:var(--muted);font-size:12px}.community-loadmore{border:1px solid var(--line);color:var(--accent);border-radius:999px;align-self:center;padding:7px 16px;font-size:12px}.community-loadmore:hover{border-color:var(--accent)}.share-section{flex-direction:column;gap:10px;display:flex}.share-section+.share-section{border-top:1px solid var(--line);padding-top:16px}.share-section h2{font-size:15px}.share-row{align-items:center;gap:10px;display:flex}.share-pick{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:9px 10px;font-size:13px}.share-pick:focus{border-color:var(--accent);outline:none}.share-section .primary{background:var(--accent);color:#0b1020;border-radius:8px;flex:none;padding:8px 14px;font-size:13px;font-weight:600}.share-section .primary:hover:not(:disabled){background:#93b3ff}.share-section .primary:disabled{opacity:.6;cursor:default}.share-section .link{color:var(--muted);font-size:12px}.share-section .link:hover{color:var(--text)}.share-stop{align-self:flex-start}.account{align-items:center;gap:8px;margin-left:auto;display:flex;position:relative}.account-btn{border:1px solid var(--line);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:13px;display:flex}.account-btn:hover,.account-btn.on{border-color:var(--accent);background:#7aa2ff1f}.account-btn.primary{background:var(--accent);border-color:var(--accent);color:#0b1020;font-weight:600}.account-btn.primary:hover{background:#93b3ff}.account-avatar{background:var(--accent);color:#0b1020;text-align:center;border-radius:50%;width:22px;height:22px;font-size:12px;font-weight:700;line-height:22px}.account-warn{color:var(--accent-2);font-size:12px}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;color:var(--text);font-size:13px;overflow:hidden}.account-menu{background:var(--bg-2);border:1px solid var(--line);z-index:3;border-radius:10px;flex-direction:column;min-width:240px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #00000080}.account-who{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;margin-bottom:4px;padding:8px 10px 10px;font-size:13px;display:flex}.account-who .muted{font-size:12px}.account-menu>a,.account-menu>button{text-align:left;width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.account-menu>a:hover,.account-menu>button:hover{background:var(--line)}.account-menu>button.danger{color:#ff8a8a}.sheet-backdrop{z-index:20;background:#080a0eb3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:360px;max-width:calc(100vw - 32px);padding:22px 24px;font-size:14px;display:flex;box-shadow:0 24px 80px #0009}.sheet h2{margin:0;font-size:18px}.sheet p{margin:0}.sheet label{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.sheet input{border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit;border-radius:8px;outline:none;padding:9px 12px}.sheet input:focus{border-color:var(--accent)}.google-btn{color:#e3e3e3;letter-spacing:.25px;background:#131314;border:1px solid #8e918f;border-radius:999px;justify-content:center;align-items:center;gap:12px;height:40px;padding:0 16px;font:500 14px/20px Roboto,system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.google-btn:hover{background:#1f2022}.google-btn:disabled{opacity:.5;cursor:default}.google-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sheet a{color:var(--accent)}.sheet-error{color:#ffb3b3;font-size:13px}.sheet-actions{align-items:center;gap:10px;margin-top:4px;display:flex}.sheet-actions .primary{background:var(--accent);color:#0b1020;border-radius:999px;padding:8px 16px;font-weight:600}.sheet-actions .primary:hover:not(:disabled){background:#93b3ff}.sheet-actions .primary:disabled{opacity:.6;cursor:default}.sheet-actions .primary.danger{color:#fff;background:#e05d5d}.sheet-actions .primary.danger:hover:not(:disabled){background:#f07070}.sheet-actions button:not(.primary){color:var(--muted)}.sheet-actions button:not(.primary):hover{color:var(--text)}.tour{z-index:30;position:fixed;inset:0}.tour-veil{width:100%;height:100%;position:absolute;inset:0}.tour-ring{fill:none;stroke:var(--accent);stroke-width:2px}.tour-lead line{stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:.85}.tour-lead circle{fill:var(--accent)}.tour-spot,.tour-ghost,.tour-lead{transform-box:fill-box;transform-origin:50%;animation:.7s cubic-bezier(.22,1,.36,1) .25s both tour-spot-in}.tour-cut{animation:.7s ease-out .25s both tour-cut-in}@keyframes tour-cut-in{0%{opacity:0}to{opacity:1}}@keyframes tour-spot-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.tour-ghost{background:var(--bg-2);border:1px solid var(--line);pointer-events:none;border-radius:12px;padding:12px 14px;position:absolute}.tour-ghost h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:12px}.tour-ghost h3 span{color:var(--text);margin-left:8px}.tour-ghost .conn-label{color:var(--accent);margin:6px 0 4px;font-size:12px}.tour-ghost ul{margin:0;padding:0;list-style:none}.tour-ghost li{align-items:center;gap:10px;padding:5px 6px;font-size:13px;display:flex}.tour-ghost li i{background:var(--card);color:#0b1020;border-radius:6px;place-items:center;width:28px;height:28px;font-size:12px;font-style:normal;font-weight:700;display:grid}.tour-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;width:360px;max-width:calc(100vw - 32px);padding:20px 22px 16px;font-size:14px;line-height:1.5;transition:left .5s cubic-bezier(.22,1,.36,1),top .5s cubic-bezier(.22,1,.36,1);animation:.25s ease-out tour-card-in;position:absolute;box-shadow:0 24px 80px #0009}@keyframes tour-card-in{0%{opacity:0}to{opacity:1}}.tour-card h2{margin:0 0 8px;font-size:20px}.tour-card-welcome h2{text-align:center;margin-bottom:14px}.tour-welcome-actions{text-align:center;font-size:14px;position:relative}.tour-tutorial{background:var(--accent);color:#0b1020;border-radius:999px;padding:7px 22px;font-size:13px;font-weight:600}.tour-tutorial:hover{background:#93b3ff}.tour-card p{margin:0}.tour-art{background:var(--bg);border-radius:10px;margin:0 0 12px;overflow:hidden}.tour-svg{width:100%;height:auto;display:block}.tour-actions{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.tour-skip{color:var(--muted);text-align:left;min-width:40px;font-size:13px}.tour-skip:hover{color:var(--text)}.tour-next{background:var(--accent);color:#0b1020;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:600}.tour-next:hover{background:#93b3ff}.tour-steps{align-items:center;gap:8px;display:flex}.tour-arrow{width:22px;height:22px;color:var(--muted);border-radius:50%;font-size:16px;line-height:1}.tour-arrow:hover:not(:disabled){color:var(--text);background:var(--line)}.tour-arrow:disabled{opacity:.3;cursor:default}.tour-dots{gap:5px;display:flex}.tour-dots i{background:var(--line);border-radius:50%;width:6px;height:6px}.tour-dots i.on{background:var(--accent)}.tour-node{fill:#e7eaf0;stroke:var(--accent);stroke-width:2px}.tour-node-parent{stroke-width:3px}.tour-initial{fill:#0b1020;text-anchor:middle;pointer-events:none;font-size:10px;font-weight:700}.tour-node-parent+.tour-initial{font-size:13px}.tour-label{fill:var(--muted);text-anchor:middle;font-size:7.5px}.tour-line{stroke:#3a4354;stroke-width:2px;fill:none}.tour-hand{fill:#fff;stroke:#0b1020;stroke-width:1.4px;stroke-linejoin:round}.tour-drag-field{animation:3s ease-in-out infinite tour-drag-field}.tour-drag-hand{animation:3s ease-in-out infinite tour-drag-hand;transform:translate(150px,50px)scale(1.5)}@keyframes tour-drag-field{0%,15%{transform:translate(0)}60%,85%{transform:translate(-70px)}to{transform:translate(0)}}@keyframes tour-drag-hand{0%,15%{transform:translate(150px,50px)scale(1.5)}60%,85%{transform:translate(80px,50px)scale(1.5)}to{transform:translate(150px,50px)scale(1.5)}}.tour-divider{stroke:#2a3140;stroke-width:2px}.tour-parent .tour-node{stroke-width:3px}.tour-parent .tour-initial{font-size:12px}.tour-drop-ghost{fill:none;stroke-dasharray:3 3;opacity:.35}.tour-drop-node{animation:4s ease-in-out infinite tour-drop-node}.tour-drop-hand{animation:4s ease-in-out infinite tour-drop-hand}@keyframes tour-drop-node{0%,15%{transform:translate(72px,44px)}55%,85%{transform:translate(222px,70px)}to{transform:translate(72px,44px)}}@keyframes tour-drop-hand{0%,15%{opacity:1;transform:translate(78px,50px)scale(1.4)}55%{opacity:1;transform:translate(228px,76px)scale(1.4)}62%,85%{opacity:0;transform:translate(240px,96px)scale(1.4)}to{opacity:1;transform:translate(78px,50px)scale(1.4)}}.tour-link-new{animation:5s ease-out infinite tour-link-new}.tour-link-line{stroke:var(--accent);stroke-dasharray:160;animation:5s ease-out infinite tour-link-line}.tour-link-hand{animation:5s ease-in-out infinite tour-link-hand}.tour-link-tag{animation:5s ease-out infinite tour-link-tag}.tour-link-tag rect{fill:var(--accent)}.tour-link-tag text{fill:#0b1020;text-anchor:middle;font-size:7.5px;font-weight:600}@keyframes tour-link-new{0%,20%{opacity:0;transform:translateY(-12px)}35%,92%{opacity:1;transform:translateY(0)}to{opacity:0}}@keyframes tour-link-line{0%,40%{stroke-dashoffset:160px}65%,92%{stroke-dashoffset:0}to{stroke-dashoffset:160px}}@keyframes tour-link-hand{0%,60%{opacity:0;transform:translate(140px,130px)scale(1.4)}64%{opacity:1}74%,92%{opacity:1;transform:translate(76px,51px)scale(1.4)}to{opacity:0;transform:translate(76px,51px)scale(1.4)}}@keyframes tour-link-tag{0%,76%{opacity:0}80%,92%{opacity:1}to{opacity:0}}.tour-note-btn circle,.tour-note-carry circle{fill:var(--accent-2)}.tour-note-btn path,.tour-note-carry path{stroke:#1d1608;stroke-width:1.4px;fill:none}.tour-note-carry{animation:5s ease-in-out infinite tour-note-carry}.tour-note-hand{animation:5s ease-in-out infinite tour-note-hand}.tour-note-card{transform-origin:0 0;animation:5s ease-out infinite tour-note-card}.tour-note-card>rect:first-child{fill:#fff;stroke:var(--accent-2);stroke-width:1.5px}.tour-note-flag{fill:var(--accent-2)}.tour-note-flag-text{fill:#1d1608;letter-spacing:.08em;text-anchor:middle;font-size:6.5px;font-weight:800}.tour-note-card line{stroke:#cfd4dc;stroke-width:2.5px;stroke-linecap:round}@keyframes tour-note-carry{0%,10%{opacity:0;transform:translate(278px,16px)}14%{opacity:1}42%{opacity:1;transform:translate(90px,80px)}46%,to{opacity:0;transform:translate(90px,80px)}}@keyframes tour-note-hand{0%,10%{opacity:1;transform:translate(284px,22px)scale(1.4)}42%,46%{opacity:1;transform:translate(96px,86px)scale(1.4)}58%,90%{opacity:0;transform:translate(120px,112px)scale(1.4)}92%{opacity:0;transform:translate(284px,22px)scale(1.4)}to{opacity:1;transform:translate(284px,22px)scale(1.4)}}@keyframes tour-note-card{0%,46%{opacity:0;transform:translate(120px,96px)scale(0)}56%,92%{opacity:1;transform:translate(120px,96px)scale(1)}to{opacity:0;transform:translate(120px,96px)scale(0)}}.tour-click-hand{animation:4.5s ease-in-out infinite tour-click-hand}.tour-click-old{animation:4.5s ease-in-out infinite tour-click-old}.tour-click-kids{animation:4.5s ease-in-out infinite tour-click-kids}.tour-click-new{animation:4.5s ease-in-out infinite tour-click-new}.tour-click-ring{animation:4.5s ease-in-out infinite tour-click-ring}.tour-click-link{stroke:var(--accent)}@keyframes tour-click-hand{0%{transform:translate(240px,130px)scale(1.5)}25%{transform:translate(200px,84px)scale(1.5)}30%{transform:translate(200px,84px)scale(1.3)}36%,60%{opacity:1;transform:translate(214px,104px)scale(1.5)}70%,90%{opacity:0;transform:translate(240px,130px)scale(1.5)}to{opacity:1;transform:translate(240px,130px)scale(1.5)}}@keyframes tour-click-old{0%,32%{transform:translate(150px,80px)}50%,88%{transform:translate(60px,80px)}to{transform:translate(150px,80px)}}@keyframes tour-click-kids{0%,32%{opacity:1}45%,88%{opacity:.25}to{opacity:1}}@keyframes tour-click-new{0%,32%{transform:translate(196px,80px)}50%,88%{transform:translate(150px,80px)}to{transform:translate(196px,80px)}}@keyframes tour-click-ring{0%,48%{opacity:0;transform:scale(0)}65%,88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.community-tabs{background:var(--bg-2);gap:4px;padding:10px 14px 0;display:flex}.community-tabs button{color:var(--muted);border-bottom:2px solid #0000;border-radius:8px 8px 0 0;padding:7px 12px;font-size:13px}.community-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.community-tabs+.community-list{border-top:1px solid var(--line)}.myshared-card{cursor:default;flex-direction:column;align-items:stretch}.myshared-card:hover{border-color:var(--line)}.myshared-top{cursor:pointer;align-items:center;gap:12px;display:flex}.myshared-top:hover strong{color:var(--accent)}.myshared-actions{flex-wrap:wrap;gap:6px;display:flex}.myshared-actions button{border:1px solid var(--line);color:var(--text);border-radius:999px;padding:5px 11px;font-size:12px}.myshared-actions button:hover:not(:disabled){border-color:var(--accent)}.myshared-actions button.danger{color:#ff8a8a}.myshared-actions button.danger:hover:not(:disabled){border-color:#ff8a8a}.myshared-actions button:disabled{opacity:.6;cursor:default}
