/* Lattice graph styles — ported from the debug page so the concentric graph
   renders correctly inside the app. Without these, SVG text defaults to black
   and dependency links (stroke set here) are invisible. Scoped to #lattice-svg
   (the svg LatticeApp hosts inside #graph-container). */

#lattice-svg text { font-family: 'CMSerif', Georgia, serif; }

/* dependency links / arrows */
#lattice-svg .link { fill: none; stroke: rgba(255, 255, 255, 0.16); stroke-width: 1.3; transition: stroke .15s, opacity .15s; }
#lattice-svg .arc-link { stroke: rgba(255, 255, 255, 0.36); }
#lattice-svg .link.up,
#lattice-svg .link.down { stroke: rgba(255, 255, 255, 0.92); }   /* dependency arrows stay white */
#lattice-svg .link.faded { opacity: 0.12; }
#lattice-svg .link.meta { stroke: rgba(255, 255, 255, 0.3); }

/* decorations must not steal pointer events from the nodes — otherwise a wide
   band arc (or a link) drawn over a node swallows its hover/click */
#lattice-svg .band-arc,
#lattice-svg .band-label,
#lattice-svg .hull-label,
#lattice-svg .spectrum,
#lattice-svg .link { pointer-events: none; }

/* group hulls / labels */
#lattice-svg .hull { transition: opacity .15s; }
#lattice-svg .hull-label { font: italic 13px Georgia, serif; letter-spacing: .06em; }

/* nodes + their rings (hover / selection states) */
#lattice-svg .node { transition: opacity .15s; }
#lattice-svg .node.dim { opacity: 0.25; }
#lattice-svg g.node { cursor: pointer; }
#lattice-svg g.node.up .ring { stroke: #f4a23b; stroke-width: 2; }
#lattice-svg g.node.down .ring { stroke: #a0da00; stroke-width: 2; }
#lattice-svg g.node.focus .ring { stroke: #fff; stroke-width: 2.4; }

/* chapter labels — the ones that were rendering black */
#lattice-svg text.node {
    fill: #E8E5DF; fill-opacity: 0.82; font-size: 14px; paint-order: stroke;
    stroke: rgba(8, 11, 18, 0.9); stroke-width: 3px; pointer-events: all;
}
#lattice-svg text.node.up { fill: #f4a23b; }
#lattice-svg text.node.down { fill: #a0da00; }
#lattice-svg text.node.focus { fill: #fff; }
