/* Drafting canvas (cv-). Rich cards at zoom >= 0.55 (.lod-rich), compact cards below (.lod-lite). HAQQ tokens only. */
.cv-wrap { position: relative; flex: 1; min-height: 0; overflow: hidden; touch-action: none; cursor: grab; outline: none;
  background-color: var(--bg); background-image: radial-gradient(circle, var(--border-strong) 1px, transparent 1.2px); background-size: 24px 24px; }
.cv-wrap.panning, .cv-node.dragging { cursor: grabbing; }
.cv-wrap:focus-visible { box-shadow: inset 0 0 0 2px var(--primary-300); }
.cv-canvas { position: absolute; left: 0; top: 0; width: 0; height: 0; transform-origin: 0 0; will-change: transform; }
.lod-rich .cv-lite, .lod-lite .cv-rich { display: none; }

/* kind colours (purple + navy scales); shared by cards, edges and minimap */
.k-contract { --kc: var(--secondary); }
.k-precedent { --kc: var(--primary); } .k-clause { --kc: var(--primary-300); } .k-client { --kc: var(--primary-100); } .k-redline { --kc: var(--primary-700); }
.k-termsheet { --kc: var(--secondary); } .k-memo { --kc: var(--secondary-400); } .k-intake { --kc: var(--secondary-400); }
.k-negotiation { --kc: var(--secondary); } .k-obligations { --kc: var(--secondary-400); } .k-tabular { --kc: var(--secondary); }
.k-family { --kc: var(--secondary-400); } .k-audit { --kc: var(--secondary); } .k-playbook { --kc: var(--primary-300); }
.k-verify { --kc: var(--primary-700); } .k-workflows { --kc: var(--primary); }

/* edges: quiet by default (thin, ~18% opacity); the selected / hovered node's edges, or the selected edge, come up to full colour and flow */
.cv-links { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }
.cv-edge { pointer-events: none; }
.cv-edge .line { fill: none; stroke: var(--kc, var(--border-strong)); stroke-width: 1.5; stroke-opacity: .18; stroke-linejoin: round; transition: stroke-opacity .15s, stroke-width .15s; }
.cv-edge .term { fill: var(--kc, var(--border-strong)); fill-opacity: .3; transition: fill-opacity .15s; }
.cv-edge .hit { fill: none; stroke: transparent; stroke-width: 14; pointer-events: stroke; cursor: pointer; }
.cv-edge .del { opacity: 0; pointer-events: none; cursor: pointer; transition: opacity .12s; }
.cv-edge .del circle { fill: var(--card); stroke: var(--bad); stroke-width: 1.2; }
.cv-edge .del path { fill: none; stroke: var(--bad); stroke-width: 1.6; stroke-linecap: round; }
.cv-edge:hover .del, .cv-edge.sel .del { opacity: 1; pointer-events: all; }
.cv-edge.hot .line, .cv-edge:hover .line { stroke-width: 2.6; stroke-opacity: 1; stroke-dasharray: 8 6; animation: cv-flow .8s linear infinite; }
.cv-edge.hot .term, .cv-edge:hover .term { fill-opacity: 1; }
.cv-edge.run .line { stroke-opacity: .85; stroke-width: 2.2; stroke-dasharray: 7 6; animation: cv-flow .7s linear infinite; }
.cv-edge.flow-past .line { stroke-opacity: .5; stroke-width: 2; }
.cv-edge.flow-on .line { stroke-opacity: 1; stroke-width: 2.6; }
.cv-edge .pulse { fill: var(--kc, var(--primary)); stroke: var(--card); stroke-width: 2; pointer-events: none; }
@keyframes cv-flow { to { stroke-dashoffset: -14; } }
.lod-lite .cv-edge .line { stroke-width: 3; stroke-opacity: .3; }
.lod-lite .cv-edge.hot .line, .lod-lite .cv-edge:hover .line { stroke-width: 5; stroke-opacity: 1; }
.cv-ghost { fill: none; stroke: var(--primary); stroke-width: 2; stroke-dasharray: 6 5; }

/* node card */
.cv-node { position: absolute; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm);
  cursor: grab; user-select: none; -webkit-user-select: none; font-size: 13.5px; line-height: 1.4; color: var(--fg); font-variant-numeric: tabular-nums;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.cv-node::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; border-radius: var(--radius) var(--radius) 0 0; background: var(--kc, var(--border-strong)); }
.cv-k-contract::before { background: var(--grad); }
.cv-node:hover:not(.dragging) { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--border-strong); z-index: 2; }
.cv-node.opens { cursor: pointer; }
.cv-node:focus-visible { outline: none; box-shadow: var(--ring); border-color: var(--primary-300); }
.cv-node.sel { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary), var(--shadow-md); z-index: 3; }
.cv-node.dragging { box-shadow: var(--shadow-lg); z-index: 5; transition: none; }
.cv-node.drop { border-color: var(--primary); box-shadow: var(--ring); }
.cv-node.gated::after { content: ""; position: absolute; inset: -1px; border-radius: var(--radius); box-shadow: 0 0 0 2px var(--warn); opacity: 0; pointer-events: none; animation: cv-gate 2.8s ease-in-out infinite; }
@keyframes cv-gate { 50% { opacity: .5; } }
.cv-rich, .cv-lite { height: 100%; display: flex; flex-direction: column; gap: 6px; overflow: hidden; border-radius: var(--radius); }
.cv-rich { padding: 16px 16px 14px; }
.cv-rich > * { flex-shrink: 0; }
.cv-rich > .cv-list, .cv-rich > .cv-outline, .cv-rich > .cv-fam { flex-shrink: 1; min-height: 0; overflow: hidden; }
.cv-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-right: 16px; min-height: 20px; }
.cv-kind { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted-fg); }
.k-contract .cv-kind { color: var(--secondary); }
.cv-title { margin: 0; font-size: 14.5px; font-weight: 600; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-contract .cv-title { font-size: 17px; }
.cv-meta { font-size: 12px; color: var(--muted-fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-spacer { flex: 1; }
.cv-more { font-size: 12px; color: var(--faint); padding-left: 2px; }
.cv-empty-s { margin: 4px 0; color: var(--faint); font-size: 13px; }
.cv-go { color: var(--faint); width: 14px; height: 14px; flex-shrink: 0; }
.cv-node.opens:hover .cv-go { color: var(--primary); }
.cv-foot { margin-top: auto; display: flex; align-items: center; gap: 6px; padding-top: 4px; }
.cv-dot { position: absolute; top: 13px; right: 13px; width: 8px; height: 8px; border-radius: 99px; background: transparent; box-shadow: inset 0 0 0 1.5px var(--border-strong); z-index: 1; }
.cv-dot.st-needs_approval, .cv-dot.tone-warn { background: var(--warn); box-shadow: none; }
.cv-dot.st-running { background: var(--info); box-shadow: none; animation: cv-pulse 1s ease-in-out infinite; }
.cv-dot.st-done, .cv-dot.tone-ok { background: var(--ok); box-shadow: none; }
.cv-dot.st-rejected, .cv-dot.tone-bad { background: var(--bad); box-shadow: none; }
@keyframes cv-pulse { 50% { opacity: .3; } }
.cv-run { border: 0; background: var(--primary-50); color: var(--primary); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; padding: 3px 12px; border-radius: 99px; flex-shrink: 0; }
.cv-run:hover:not(:disabled) { background: var(--primary-100); }
.cv-run:disabled { color: var(--faint); background: var(--muted); cursor: default; }
.cv-x { position: absolute; top: -9px; right: -9px; width: 20px; height: 20px; border-radius: 99px; display: grid; place-items: center; cursor: pointer; z-index: 6;
  background: var(--card); border: 1px solid var(--border-strong); color: var(--muted-fg); padding: 0; }
.cv-x:hover { color: var(--bad); border-color: var(--bad); }

/* chips and bars */
.cv-chip { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 99px; font-size: 11.5px; font-weight: 600; white-space: nowrap; background: var(--muted); color: var(--muted-fg); flex-shrink: 0; }
.cv-chip.ok { background: var(--ok-bg); color: var(--ok); } .cv-chip.warn { background: var(--warn-bg); color: var(--warn); }
.cv-chip.bad, .cv-chip.rl-delete { background: var(--bad-bg); color: var(--bad); } .cv-chip.info, .cv-chip.rl-edit { background: var(--info-bg); color: var(--info); }
.cv-chip.rl-insert { background: var(--ok-bg); color: var(--ok); } .cv-chip.pri { background: var(--primary-50); color: var(--primary); } .cv-chip.mut { background: var(--muted); color: var(--faint); }
.cv-pb { display: block; flex: 1; height: 4px; border-radius: 99px; background: var(--muted); overflow: hidden; }
.cv-pb i { display: block; height: 100%; background: var(--info); border-radius: 99px; }
.cv-pb.ok i { background: var(--ok); } .cv-pb.warn i { background: var(--warn); } .cv-pb.pri i { background: var(--primary); }
.cv-prog { display: flex; align-items: center; gap: 8px; }

/* document card */
.cv-bar { display: flex; height: 6px; border-radius: 99px; background: var(--muted); overflow: hidden; flex-shrink: 0; }
.cv-bar i { display: block; height: 100%; min-width: 4px; background: var(--c); }
.s-flagged, .s-conflict { --c: var(--st-flagged); } .s-pending { --c: var(--st-pending); } .s-edited { --c: var(--st-edited); } .s-comment { --c: var(--st-comment); }
.cv-legend { font-size: 12.5px; color: var(--muted-fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-outline { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.cv-outline li { display: flex; align-items: center; gap: 6px; height: 19px; font-size: 13px; min-width: 0; }
.cv-outline b { min-width: 32px; font-weight: 500; color: var(--muted-fg); }
.cv-outline span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-sd { width: 6px; height: 6px; border-radius: 99px; flex-shrink: 0; background: var(--border-strong); }
.sd-edited { background: var(--st-edited); } .sd-pending { background: var(--st-pending); } .sd-flagged, .sd-conflict { background: var(--st-flagged); } .sd-comment { background: var(--st-comment); }
.cv-gates { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.cv-gates li { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--fg); min-width: 0; }
.cv-gates span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* source and workspace card bodies */
.cv-snip { margin: 0; font-size: 13px; line-height: 1.5; color: var(--fg); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cv-tbl { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: auto; }
.cv-tbl tbody th { width: 36%; }
.cv-tbl:not(.grid) td:nth-child(2) { max-width: 0; width: 64%; }
.cv-tbl td.r { width: 1%; }
.cv-tbl th, .cv-tbl td { padding: 3px 4px 3px 0; text-align: left; border-bottom: 1px solid var(--border); font-weight: 400; white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.cv-tbl tbody th { color: var(--muted-fg); } .cv-tbl td.r { text-align: right; padding-right: 0; }
.cv-tbl.grid thead th { font-size: 11.5px; color: var(--faint); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.cv-tbl.grid tbody th { font-weight: 600; color: var(--fg); width: 48px; } .cv-tbl.grid td { max-width: 96px; }
.cv-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cv-list.tight { gap: 5px; } .cv-list li.done { opacity: .6; }
.cv-list p { margin: 2px 0 0; font-size: 13px; color: var(--muted-fg); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cv-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.cv-flags { margin: 0; padding: 0 0 0 16px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.cv-flags li::marker { color: var(--warn); }
.cv-qa { margin: 0; display: grid; grid-template-columns: 1fr; gap: 1px; }
.cv-qa dt { font-size: 12px; color: var(--muted-fg); margin-top: 5px; } .cv-qa dd { margin: 0; font-size: 13.5px; font-weight: 600; } .cv-qa dd.none { color: var(--warn); font-weight: 500; }
.cv-rounds { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.cv-rounds li { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cv-strip { display: grid; grid-template-columns: repeat(14, 1fr); margin-top: auto; }
.cv-strip i { width: 8px; height: 8px; border-radius: 99px; justify-self: center; background: var(--border); }
.cv-strip i.on { background: var(--primary); }
.cv-hash { font-family: var(--font-mono); font-size: 11.5px; color: var(--faint); background: var(--muted); padding: 1px 5px; border-radius: 5px; }
.cv-fam { width: 100%; flex: 1; min-height: 0; }
.cv-fam line { stroke: var(--border-strong); stroke-width: 1.2; } .cv-fam marker path { fill: var(--border-strong); }
.cv-fam text { font-size: 9.5px; fill: var(--faint); text-anchor: middle; } .cv-fam rect { fill: var(--primary-50); stroke: var(--primary-100); } .cv-fam text.t { fill: var(--primary); font-size: 11px; font-weight: 600; }
.cv-heat { display: flex; flex-direction: column; gap: 6px; margin-top: 2px; }
.cv-hrow { display: flex; align-items: center; gap: 8px; } .cv-hrow b { width: 44px; font-size: 12.5px; font-weight: 600; }
.cv-hstrip { flex: 1; display: flex; gap: 1px; height: 14px; } .cv-hstrip i { flex: 0 1 8px; min-width: 2px; border-radius: 1px; background: var(--border); }
.lv-ok { background: var(--ok) !important; opacity: .75; } .lv-info { background: var(--secondary-400) !important; } .lv-warn { background: var(--warn) !important; } .lv-bad { background: var(--bad) !important; }
.cv-cnts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.cv-cnt { min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px 2px; text-align: center; display: flex; flex-direction: column; }
.cv-cnt b { font-size: 21px; font-weight: 600; color: var(--faint); } .cv-cnt span { font-size: 10px; letter-spacing: -.1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; color: var(--muted-fg); }
.cv-cnt.bad b { color: var(--bad); } .cv-cnt.warn b { color: var(--warn); } .cv-cnt.info b { color: var(--info); } .cv-cnt.ok b { color: var(--ok); }

/* compact face: big type so the zoomed-out overview stays legible */
.cv-lite { padding: 20px 20px 16px; gap: 8px; }
.cv-lite .cv-h { padding-right: 18px; }
.cv-lite .cv-kind { font-size: 14px; }
.cv-lt { margin: 0; font-size: 24px; font-weight: 600; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.k-contract .cv-lt { font-size: 28px; }
.cv-ls { margin: 0; font-size: 16px; color: var(--muted-fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cv-ls b.warn { color: var(--warn); }
.cv-lite .cv-foot { gap: 10px; }
.cv-lite .btn { font-size: 17px; min-height: 40px; padding: 0 20px; } .cv-lite .cv-run { font-size: 15px; padding: 5px 16px; }

/* document extras: hint, clause flash, proposal ticks, ready chip */
.cv-hint { color: var(--faint); font-style: italic; }
.cv-bar { position: relative; }
.cv-tick { position: absolute; top: -2px; width: 3px; height: 10px; margin-left: -1.5px; border-radius: 2px; background: var(--primary); }
.cv-outline li { position: relative; border-radius: 4px; }
.cv-outline li em { margin-left: auto; padding-left: 6px; font-style: normal; font-size: 11px; font-weight: 600; color: var(--primary); flex-shrink: 0; }
.cv-outline li.has-prop { background: var(--primary-50); box-shadow: -3px 0 0 var(--primary-300); }
.cv-outline li.flash, .cv-bar.flash, .cv-tick.flash { animation: cv-flash 1.6s ease-out both; }
@keyframes cv-flash { 0% { background-color: var(--primary-100); transform: scale(1.02); } 100% { background-color: var(--primary-50); transform: none; } }
.cv-bar.flash { animation-name: cv-barflash; }
@keyframes cv-barflash { 0%, 40% { box-shadow: 0 0 0 3px var(--primary-100); } 100% { box-shadow: 0 0 0 0 transparent; } }
.cv-tick.flash { animation-name: cv-tickflash; }
@keyframes cv-tickflash { 0% { transform: scaleY(2.2); background: var(--warn); } 100% { transform: none; background: var(--primary); } }
.cv-ready { position: absolute; left: 16px; bottom: -12px; z-index: 4; height: 24px; padding: 0 12px; border: 0; border-radius: 99px; background: var(--primary); color: var(--primary-fg);
  font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; box-shadow: var(--shadow-md); }
.cv-ready:hover { background: var(--primary-600); }
.cv-ready:focus-visible { outline: none; box-shadow: var(--ring); }

/* source nodes while the document is being assembled */
.cv-sweep { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 0 0 var(--radius) var(--radius); overflow: hidden; background: var(--primary-50); pointer-events: none; }
.cv-sweep i { display: block; width: 40%; height: 100%; background: var(--primary); border-radius: 99px; animation: cv-sweep 1.2s ease-in-out infinite; }
@keyframes cv-sweep { from { transform: translateX(-100%); } to { transform: translateX(250%); } }
.cv-node.flow-active { border-color: var(--primary-300); }
.cv-flowmark { position: absolute; top: -8px; left: -8px; width: 18px; height: 18px; border-radius: 99px; background: var(--ok); box-shadow: 0 0 0 2px var(--card); display: grid; place-items: center; z-index: 1; animation: cv-pop .25s ease-out; }
.cv-flowmark svg { width: 11px; height: 11px; fill: none; stroke: var(--card); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
@keyframes cv-pop { from { transform: scale(.4); opacity: 0; } }


/* ports */
.cv-port { position: absolute; top: 34px; width: 12px; height: 12px; margin-top: -6px; border-radius: 99px; background: var(--card); border: 1.5px solid var(--border-strong); cursor: crosshair; z-index: 2; }
.cv-port::after { content: ""; position: absolute; inset: -8px; }
.cv-port.out { right: -7px; }
.cv-port.in { left: -7px; }
.cv-port:hover, .connecting .cv-port.in { border-color: var(--primary); background: var(--primary-50); }
.cv-wrap.connecting, .cv-wrap.connecting .cv-node { cursor: crosshair; }

/* chrome */
.cv-pal, .cv-zoom, .cv-mini { position: absolute; z-index: 10; background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); cursor: default; }
.cv-pal { top: 12px; left: 12px; width: 176px; padding: 4px; box-shadow: var(--shadow-sm); max-height: calc(100% - 24px); display: flex; flex-direction: column; }
.cv-pal:not(.open) { width: auto; }
.cv-pal-toggle { display: flex; align-items: center; gap: 6px; width: 100%; padding: 6px 10px; border: 0; background: transparent; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--fg); cursor: pointer; border-radius: 8px; }
.cv-pal-toggle:hover { background: var(--muted); }
.cv-pal-body { padding: 2px 4px 6px; flex: 1; min-height: 0; overflow-y: auto; }
.cv-pal-group h4 { margin: 8px 6px 2px; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--faint); }
.cv-pal-item { display: block; width: 100%; text-align: left; border: 0; background: transparent; font: inherit; font-size: 12.5px; color: var(--fg); padding: 5px 8px; border-radius: 6px; cursor: pointer; }
.cv-pal-item:hover { background: var(--muted); }
.cv-pal-item:focus-visible, .cv-pal-toggle:focus-visible { outline: none; box-shadow: var(--ring); }
.cv-zoom { left: 12px; bottom: 12px; display: flex; align-items: center; gap: 2px; padding: 3px; box-shadow: none; }
.cv-zoom-label { min-width: 40px; text-align: center; font-size: 11.5px; color: var(--muted-fg); font-variant-numeric: tabular-nums; }
.cv-mini { right: 12px; bottom: 12px; width: 132px; height: 88px; overflow: hidden; cursor: pointer; opacity: .85; }
.cv-mini:hover { opacity: 1; }
.cv-mini-svg { width: 100%; height: 100%; display: block; }
.cv-mini-svg .mk { fill: var(--kc, var(--border-strong)); opacity: .8; }
.cv-mini-svg .mk.k-contract { opacity: 1; }
.cv-mini-svg .cv-mini-view { fill: hsl(330 98% 21% / .06); stroke: var(--primary-300); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.cv-empty { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; color: var(--muted-fg); font-size: 13px; }

/* library picker (modal) */
.cv-pick { list-style: none; margin: 8px 0 0; padding: 0; max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.cv-pick li[hidden] { display: none; }
.cv-pick-item { display: flex; flex-direction: column; gap: 1px; width: 100%; text-align: left; border: 1px solid transparent; background: transparent; font: inherit; padding: 7px 10px; border-radius: 8px; cursor: pointer; }
.cv-pick-item:hover, .cv-pick-item:focus-visible { background: var(--muted); border-color: var(--border); outline: none; }
.cv-pick-item b { font-size: 13px; font-weight: 600; }
.cv-pick-item span { font-size: 11.5px; color: var(--muted-fg); }
.cv-pick-empty { padding: 10px; color: var(--muted-fg); font-size: 12.5px; }

@media (max-width: 820px) {
  .cv-mini { width: 96px; height: 64px; right: 8px; bottom: 8px; }
  .cv-zoom { left: 8px; bottom: 8px; }
  .cv-pal { top: 8px; left: 8px; }
  .cv-pal-toggle { min-height: 36px; }
}
@media (max-width: 520px) { .cv-mini { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .cv-dot.st-running, .cv-edge.run .line, .cv-edge.hot .line, .cv-edge:hover .line, .cv-node.gated::after, .cv-flowmark, .cv-sweep i,
  .cv-outline li.flash, .cv-bar.flash, .cv-tick.flash { animation: none; }
  .cv-edge.hot .line, .cv-edge:hover .line { stroke-dasharray: none; }
  .cv-sweep i { width: 100%; opacity: .45; }
  .cv-node, .cv-edge .line, .cv-edge .term { transition: none; }
}
