/* Judgment-path presentation only: no graph positions or case values change. */
#treeSvg [data-layer="trace-animation"] { pointer-events:none; }
/* Tiny background type is not readable during a framing move. Keep its node
   geometry as the locator, and restore every label when the camera settles. */
#treeSvg.camera-moving [data-layer="map-scene"] foreignObject { visibility:hidden; }
#treeSvg.camera-moving [data-layer="map-scene"] * { vector-effect:none; }
#treeSvg.camera-moving .edge-group:not(.is-trace-member),#treeSvg.camera-moving .coarse-edge { display:none; }
body.case-active[data-trace-focused="true"] .edge-group:not(.is-trace-member),body.case-active[data-trace-focused="true"] .coarse-edge { display:none; }
#treeSvg.camera-moving [data-layer="map-scene"] .formal-edge { marker-end:none; }
#treeSvg.camera-moving [data-layer="map-scene"] { will-change:transform; }
body.case-active .coarse-edge { opacity:.055; }
body.case-active .edge-group.is-trace-member:not(.is-trace-active):not(.is-trace-complete) { opacity:.24; }
body.case-active .edge-group.is-trace-active .formal-edge,body.case-active .edge-group.is-trace-complete .formal-edge { stroke:#79a989!important;stroke-width:2!important;stroke-opacity:.28!important; }
body.case-active .edge-group.is-trace-active .epistemic-edge { stroke-opacity:.12!important; }
#treeSvg .trace-trail { stroke:#80ba8c;stroke-opacity:.32;stroke-width:9;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none;filter:url(#traceGlow); }
#treeSvg .trace-trail-halo { stroke:#8fc59c;stroke-opacity:.12;stroke-width:20;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none;filter:url(#traceGlow); }
#treeSvg .trace-particle,#treeSvg .trace-particle-halo,#treeSvg .trace-comet-tail { fill:url(#traceCometGlow);stroke:none; }
#treeSvg .trace-particle-halo { fill-opacity:.7; }
#treeSvg .trace-particle,#treeSvg .trace-particle-halo { transition:opacity .45s ease; }
/* Match the Substack's semantic accents. A composite is not a fourth builder. */
[data-trace-role] { --trace-accent:#35413f;--trace-surface:#f1f3f2;--trace-pulse:#c1cbc7; }
[data-trace-role="value"] { --trace-accent:#956315;--trace-surface:#f4ebd9;--trace-pulse:#e9c376; }
[data-trace-role="connection"] { --trace-accent:#176d73;--trace-surface:#e4f1f1;--trace-pulse:#88c7c9; }
[data-trace-role="agency"] { --trace-accent:#365f9d;--trace-surface:#e8eef7;--trace-pulse:#a4bfe7; }
[data-trace-role="support"] { --trace-accent:#79558a;--trace-surface:#f0ebf3;--trace-pulse:#cdb3dc; }
.trace-lens-anchor { stroke:var(--trace-accent);stroke-opacity:.9;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 5; }
.trace-reading-lens { opacity:0;transition:opacity .65s ease; }
.trace-reading-lens.is-revealed { opacity:1; }
.trace-reading-lens .trace-lens-shape { fill:var(--trace-surface);stroke:var(--trace-accent);stroke-width:2;filter:drop-shadow(0 3px 5px #193e2629); }
.trace-lens-copy { height:100%;display:flex;flex-direction:column;justify-content:center;gap:5px;color:#213c32;font-family:Arial,sans-serif;line-height:1.25; }
.trace-lens-copy small { font-size:10px;line-height:1.1;letter-spacing:.045em;text-transform:uppercase;color:#4b6658; }
.trace-lens-copy strong { font-size:17px;font-weight:750; }
.trace-lens-copy span { font-size:14px; }
.trace-lens-copy em { font-size:11px;font-style:normal;font-weight:700; }
.trace-reading-lens[data-compact="true"] .trace-lens-copy strong { font-size:15px; }
.trace-reading-lens[data-compact="true"] .trace-lens-copy span { font-size:13px; }
.trace-reading-lens[data-group="true"] .trace-lens-copy { gap:4px; }
.trace-reading-lens[data-group="true"] .trace-lens-copy strong { font-size:17px;line-height:1.15; }
.trace-reading-lens[data-group="true"] .trace-lens-copy span { font-size:13px;line-height:1.2; }
.trace-reading-lens[data-group="true"] .trace-lens-shape { fill:var(--trace-surface);stroke:var(--trace-accent);stroke-width:2;filter:none; }
body.case-active .map-node.is-trace-active .node-shape,body.case-active .map-node.is-trace-complete .node-shape { fill:var(--trace-surface);stroke:var(--trace-accent)!important; }
body.case-active .map-node.is-trace-inspecting { opacity:1!important; }
body.case-active .map-node.is-trace-reading .node-shape,body.case-active .map-node.is-trace-reading.is-trace-unmet .node-shape { animation-name:trace-node-breathe; }
body.case-active .map-node.is-trace-inspecting .node-shape { fill:var(--trace-pulse);stroke:var(--trace-accent);stroke-width:4;vector-effect:non-scaling-stroke;animation:trace-node-breathe 2.4s ease-in-out infinite;animation-play-state:paused; }
@keyframes trace-lens-breathe { 0%,100% { fill:var(--trace-surface);stroke:var(--trace-accent);stroke-width:3; } 50% { fill:var(--trace-pulse);stroke:var(--trace-accent);stroke-width:5; } }
body.case-active .trace-reading-lens.is-inspecting .trace-lens-shape { animation:trace-lens-breathe 2.4s ease-in-out infinite;animation-play-state:paused; }
body.case-active[data-trace-playing="true"] .map-node.is-trace-inspecting .node-shape { animation-play-state:running; }
@keyframes trace-node-breathe { 0%,100% { fill:var(--trace-surface);stroke-width:3; } 50% { fill:var(--trace-pulse);stroke-width:7; } }
body.case-active[data-trace-playing="true"] .trace-reading-lens .trace-lens-shape { animation-play-state:running; }
body.case-active .trace-reading-lens.is-trace-unmet .trace-lens-shape { stroke-dasharray:6 4; }
@keyframes trace-inspection-breathe { 0%,100% { fill:var(--trace-surface);stroke:var(--trace-accent);stroke-width:3; } 50% { fill:var(--trace-pulse);stroke:var(--trace-accent);stroke-width:6; } }
body.case-active[data-trace-inspection="true"] .trace-reading-lens.is-revealed .trace-lens-shape,
body.case-active[data-trace-inspection="true"] .map-node.is-trace-inspecting .node-shape { animation-name:trace-inspection-breathe;animation-duration:3s;animation-timing-function:ease-in-out; }
.trace-inspection-prompt { position:absolute;z-index:12;right:16px;bottom:16px;width:min(320px,calc(100% - 32px));box-sizing:border-box;padding:16px;border:1px solid #6c967a;border-radius:12px;background:#f8fcf3;box-shadow:0 6px 24px #17392724;color:#203d2d;font:14px/1.4 Arial,sans-serif; }
.trace-inspection-prompt[hidden] { display:none!important; }
.trace-inspection-prompt strong { display:block;padding-right:20px;font-size:16px; }
.trace-inspection-prompt p { margin:8px 0 12px; }
.trace-inspection-close { position:absolute;top:5px;right:5px;width:30px;height:30px;border:0;background:transparent;font-size:22px;cursor:pointer; }
.trace-inspection-actions { display:flex;gap:8px;flex-wrap:wrap; }
.trace-inspection-actions button { padding:9px 12px;border:1px solid #507b60;border-radius:6px;background:#f8fcf3;color:#23422f;font-size:13px;font-weight:700;cursor:pointer; }
.trace-inspection-actions #traceInspectionPause { background:#245c3e;color:white; }
.trace-inspection-actions button:disabled { opacity:.55;cursor:default; }
@media(max-width:599px),(max-height:600px) { .trace-inspection-prompt { top:12px;bottom:auto;right:12px;width:min(320px,calc(100% - 24px));padding:12px; } }
.trace-inspection-prompt[data-corner="top-right"] { top:12px;right:12px;bottom:auto;left:auto; }
.trace-inspection-prompt[data-corner="top-left"] { top:12px;left:12px;bottom:auto;right:auto; }
.trace-inspection-prompt[data-corner="bottom-right"] { bottom:12px;right:12px;top:auto;left:auto; }
.trace-inspection-prompt[data-corner="bottom-left"] { bottom:12px;left:12px;top:auto;right:auto; }
/* The warm pulse marks reading time, never truth, goodness, or approval. */
@media(prefers-reduced-motion:reduce) {
  .trace-reading-lens { transition:none; }
  body.case-active .trace-reading-lens .trace-lens-shape { animation:none!important; }
  body.case-active .map-node.is-trace-inspecting .node-shape { animation:none!important; }
  body.case-active .map-node.is-trace-reading .node-shape { animation:none!important; }
  #treeSvg .trace-particle { filter:none; }
  #treeSvg .trace-particle,#treeSvg .trace-particle-halo { transition:none; }
}
