/* v8.3 — Semantic Focus untuk kategori SVG; tidak mengubah rendering Canvas. */
#mindmap-svg .viewport-group.category-semantic-active .tree-node {
  opacity: .13 !important;
  transition: opacity 175ms ease-out;
}
#mindmap-svg .viewport-group.category-semantic-active .tree-node.category-semantic-related {
  opacity: .80 !important;
}
#mindmap-svg .viewport-group.category-semantic-active .tree-node.category-semantic-primary {
  opacity: 1 !important;
}
#mindmap-svg .viewport-group.category-semantic-active .branch-link,
#mindmap-svg .viewport-group.category-semantic-active .branch-pulse {
  opacity: .07 !important;
  transition: opacity 175ms ease-out, stroke-width 175ms ease-out;
}
#mindmap-svg .viewport-group.category-semantic-active .branch-link.category-semantic-link {
  opacity: 1 !important;
  stroke: #f9c65b !important;
  stroke-width: 3.4px !important;
}
#mindmap-svg .viewport-group.category-semantic-active .branch-pulse.category-semantic-link {
  opacity: .95 !important;
  stroke: #e9e09a !important;
  stroke-width: 3.3px !important;
}
#mindmap-svg .tree-node.category-semantic-primary .node-core {
  stroke: #f9d57a !important;
  stroke-width: 4.6px !important;
}
#mindmap-svg .tree-node.category-semantic-primary .node-halo {
  opacity: .68 !important;
}
#mindmap-svg .tree-node.category-semantic-primary .label-bg {
  stroke: #f9d57a !important;
  stroke-width: 1.6px !important;
  fill: rgba(16, 36, 34, .97) !important;
}
#mindmap-svg .tree-node.category-semantic-primary .node-title-text {
  fill: #fff4cf !important;
  font-weight: 800 !important;
}
/* D3 mode switching and new nodes stay interactive even while dimmed. */
#mindmap-svg .viewport-group.category-semantic-active .tree-node { pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {
  #mindmap-svg .viewport-group.category-semantic-active .tree-node,
  #mindmap-svg .viewport-group.category-semantic-active .branch-link,
  #mindmap-svg .viewport-group.category-semantic-active .branch-pulse {
    transition: none !important;
  }
}
