/* Blast Radius module — one separable unit (house modularity).
   Styles everything inside .br-root. Gold on warm charcoal, whatever the
   hosting page's theme: the diagram carries its own dark panel. */
.br-root{
  --br-gold:#C39A3B; --br-gold-hi:#E9C46A; --br-gold-dim:#8a6d2f;
  --br-gold-0:#F0B64F; --br-gold-1:#C39A3B; --br-gold-2:#96762f;
  --br-gold-3:#77602a; --br-ghost-0:#c9cabb; --br-ghost-1:#8d8f83;
  --br-ghost-2:#5f6157; --br-dead:#23241f;
  --br-orange:#F7931A; --br-ink:#f2ead9; --br-ink-dim:#b8ab8d;
  --br-panel:#16120d; --br-panel-2:#1e1912; --br-line:#3a3122;
  background:var(--br-panel); color:var(--br-ink);
  border:1px solid var(--br-line); border-radius:14px;
  padding:14px 14px 10px; font-size:13px; line-height:1.45;
}
.br-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.br-title{font-weight:bold;letter-spacing:.14em;text-transform:uppercase;
  font-size:11px;color:var(--br-gold-hi);margin:0}
.br-toggle{margin-left:auto;display:inline-flex;border:1px solid var(--br-gold-dim);
  border-radius:999px;overflow:hidden}
.br-toggle button{font:inherit;font-size:12px;font-weight:bold;cursor:pointer;
  background:transparent;color:var(--br-ink-dim);border:0;padding:5px 14px}
.br-toggle button[aria-pressed="true"]{background:var(--br-gold);color:#171207}
.br-toggle button:focus-visible{outline:2px solid var(--br-gold-hi);outline-offset:-2px}
.br-stage{position:relative;border-radius:10px;background:
  radial-gradient(120% 120% at 50% 42%, #221b11 0%, #16120d 62%, #100d08 100%);
  border:1px solid var(--br-line); overflow:hidden}
.br-stage svg{display:block;width:100%;height:auto}
.br-stage canvas{display:block;width:100%;cursor:grab}
.br-stage canvas:active{cursor:grabbing}
.br-ring{fill:none;stroke:#4a3d24;stroke-width:1;stroke-dasharray:3 6;opacity:.8}
.br-ringlabel{fill:#7d6f4f;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.br-edge{stroke:#C39A3B;stroke-linecap:round}
.br-node{cursor:pointer}
.br-node circle.core{stroke:#0d0a06;stroke-width:1.2}
.br-node:focus-visible{outline:none}
.br-node:focus-visible circle.core{stroke:var(--br-gold-hi);stroke-width:2.4}
.br-node.sel circle.core{stroke:#fff3d6;stroke-width:2.4}
.br-node text{fill:#0f0c07;font-weight:bold;pointer-events:none}
.br-victim{fill:#e8e2d2}
.br-seed{fill:#F0B64F}
.br-hop1{fill:#C39A3B}
.br-hop2{fill:#96762f}
.br-hop3{fill:#77602a}
.br-tail{fill:#241d12;stroke:#8a6d2f;stroke-width:1.4;stroke-dasharray:4 3}
.br-card{margin-top:10px;background:var(--br-panel-2);border:1px solid var(--br-line);
  border-radius:10px;padding:10px 12px;min-height:58px}
.br-card .br-card-name{font-weight:bold;color:var(--br-gold-hi)}
.br-card .br-card-addr{font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:11.5px;color:var(--br-ink-dim);word-break:break-all}
.br-card dl{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0 0}
.br-card dl div{display:flex;gap:6px}
.br-card dt{color:var(--br-ink-dim)}
.br-card dd{margin:0;font-weight:bold}
.br-card a{color:var(--br-gold-hi)}
.br-card .br-card-hint{color:var(--br-ink-dim)}
.br-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px;
  color:var(--br-ink-dim);font-size:12px}
.br-legend b{color:var(--br-ink);font-weight:bold}
.br-dot{display:inline-block;width:10px;height:10px;border-radius:50%;
  background:var(--br-gold);vertical-align:-1px;margin-right:5px}
.br-scope{margin:8px 0 2px;color:var(--br-ink-dim);font-size:12px}
/* "Every bubble, as a list" pop-out (Nov 10 2026): the .br-root is
   the positioning anchor; the pop-out is anchored below the panel's
   top edge, sized to its content with hard caps against the viewport
   on every side, and its rows scroll inside it. No animation beyond
   appearing; reduced motion needs nothing extra. */
.br-root{position:relative}
.br-listbtn{margin-top:8px;font:inherit;font-size:12.5px;font-weight:bold;
  cursor:pointer;background:transparent;color:var(--br-gold-hi);
  border:1px solid var(--br-gold-dim);border-radius:999px;
  padding:10px 14px;min-height:44px;touch-action:manipulation}
.br-listbtn:focus-visible{outline:2px solid var(--br-gold-hi);outline-offset:1px}
.br-pop{position:absolute;top:8px;left:8px;z-index:30;
  width:min(620px,calc(100% - 16px));max-width:calc(100vw - 24px);
  max-height:min(78vh,640px);display:flex;flex-direction:column;
  background:var(--br-panel-2);border:1px solid var(--br-gold-dim);
  border-radius:12px;padding:12px;
  box-shadow:0 14px 44px rgba(0,0,0,.55);color:var(--br-ink)}
.br-pop-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.br-pop-title{font-weight:bold;letter-spacing:.14em;text-transform:uppercase;
  font-size:11px;color:var(--br-gold-hi);margin:0}
.br-pop-close{margin-left:auto;font:inherit;font-size:18px;font-weight:bold;
  line-height:1;cursor:pointer;background:transparent;color:var(--br-ink-dim);
  border:1px solid var(--br-line);border-radius:999px;
  width:40px;height:40px;flex:0 0 auto;touch-action:manipulation}
.br-pop-close:focus-visible,.br-pop-search:focus-visible,
.br-pop-role:focus-visible{outline:2px solid var(--br-gold-hi);outline-offset:1px}
.br-pop-find{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.br-pop-search{flex:1 1 160px;font:inherit;font-size:13px;color:var(--br-ink);
  background:var(--br-panel);border:1px solid var(--br-line);
  border-radius:999px;padding:11px 14px;min-height:44px}
.br-pop-search::placeholder{color:var(--br-ink-dim)}
.br-pop-role{font:inherit;font-size:13px;color:var(--br-ink);
  background:var(--br-panel);border:1px solid var(--br-line);
  border-radius:999px;padding:11px 10px;min-height:44px}
.br-pop-scroll{overflow:auto;min-height:120px;
  border:1px solid var(--br-line);border-radius:8px}
.br-pop-table{width:100%;border-collapse:collapse;background:transparent;border:0}
.br-pop th,.br-pop td{border-bottom:1px solid var(--br-line);padding:5px 7px;
  text-align:left;font-size:12px;color:var(--br-ink)}
.br-pop th{color:var(--br-ink-dim);text-transform:uppercase;letter-spacing:.1em;
  font-size:10.5px;position:sticky;top:0;background:var(--br-panel-2);z-index:1}
.br-pop td.br-mono{font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:11px;overflow-wrap:anywhere}
/* Phone widths: the pop-out's host page renders its tables stacked
   (the console's ledger collapse below 860px turns every table, this
   one included, into stacked blocks). Inside the pop-out the list
   keeps its real table form: rows side by side, columns bounded,
   the address ellipsizing instead of wrapping. */
@media (max-width:860px){
  .br-pop-scroll .br-pop-table{display:table;width:100%}
  .br-pop-table thead{display:table-header-group;position:static;
    width:auto;height:auto;overflow:visible}
  .br-pop-table tbody{display:table-row-group;width:auto}
  .br-pop-table tr{display:table-row;width:auto;padding:0;border-bottom:0}
  .br-pop-table th,.br-pop-table td{display:table-cell;width:auto;
    overflow-wrap:normal}
  .br-pop-table td.br-mono{max-width:110px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}
}
.br-err{color:#e8a09a;padding:12px}
.br-loading{color:var(--br-ink-dim);padding:12px}
@media (prefers-reduced-motion: reduce){
  .br-stage canvas{cursor:grab}
}

/* --- Nov 10 2026 pass: stat line, layer selectors, replay, find --- */
.br-root:fullscreen{background:var(--br-panel);overflow:auto}
.br-stats{display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;
  margin:0 0 10px;padding:9px 12px;background:var(--br-panel-2);
  border:1px solid var(--br-line);border-radius:10px;
  font-size:14.5px;color:var(--br-ink)}
.br-stats b{color:var(--br-gold-hi);font-weight:bold}
.br-stat-sep{color:var(--br-ink-dim)}
.br-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;
  margin-bottom:8px}
.br-layers{display:inline-flex;flex-wrap:wrap;gap:0;
  border:1px solid var(--br-gold-dim);border-radius:999px;overflow:hidden}
.br-layerbtn{font:inherit;font-size:12.5px;font-weight:bold;cursor:pointer;
  background:transparent;color:var(--br-ink-dim);border:0;
  padding:10px 14px;min-height:44px;touch-action:manipulation}
.br-layerbtn[aria-pressed="true"]{background:var(--br-gold);color:#171207}
.br-layerbtn:focus-visible,.br-replay:focus-visible,.br-fsbtn:focus-visible,
.br-result:focus-visible,.br-showall:focus-visible{
  outline:2px solid var(--br-gold-hi);outline-offset:-2px}
.br-replay{margin-left:auto;font:inherit;font-size:12.5px;font-weight:bold;
  cursor:pointer;background:var(--br-gold);color:#171207;border:0;
  border-radius:999px;padding:10px 18px;min-height:44px;
  touch-action:manipulation}
.br-fsbtn{font:inherit;font-size:12.5px;font-weight:bold;cursor:pointer;
  background:transparent;color:var(--br-ink-dim);
  border:1px solid var(--br-gold-dim);border-radius:999px;
  padding:9px 14px;min-height:44px;touch-action:manipulation}
.br-find{display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin-bottom:10px;position:relative}
.br-search{flex:1 1 170px;font:inherit;font-size:13px;color:var(--br-ink);
  background:var(--br-panel-2);border:1px solid var(--br-line);
  border-radius:999px;padding:11px 14px;min-height:44px}
.br-search::placeholder{color:var(--br-ink-dim)}
.br-search:focus-visible,.br-groupsel:focus-visible{
  outline:2px solid var(--br-gold-hi);outline-offset:1px}
.br-groupsel{font:inherit;font-size:13px;color:var(--br-ink);
  background:var(--br-panel-2);border:1px solid var(--br-line);
  border-radius:999px;padding:11px 10px;min-height:44px}
.br-count{color:var(--br-ink-dim);font-size:12px}
.br-showall{font:inherit;font-size:12.5px;font-weight:bold;cursor:pointer;
  background:transparent;color:var(--br-gold-hi);
  border:1px solid var(--br-gold-dim);border-radius:999px;
  padding:10px 14px;min-height:44px;touch-action:manipulation}
.br-results{flex:1 1 100%;display:flex;flex-direction:column;gap:4px}
.br-result{font:inherit;font-size:12.5px;text-align:left;cursor:pointer;
  background:var(--br-panel-2);color:var(--br-ink);
  border:1px solid var(--br-line);border-radius:8px;
  padding:10px 12px;min-height:44px;touch-action:manipulation}
.br-result:hover{border-color:var(--br-gold-dim)}
.br-trails{pointer-events:none}
.br-goldkey .br-swatch{display:inline-block;width:10px;height:10px;
  border-radius:50%;margin-right:3px;vertical-align:-1px}
.br-sw0{background:#F0B64F}
.br-sw1{background:#C39A3B}
.br-sw2{background:#96762f}
/* Fullscreen fallback overlay (Change 7): used where the Fullscreen
   API is unavailable, e.g. iOS Safari. */
.br-fs-overlay{position:fixed;inset:0;z-index:60;background:#100d08;
  overflow:auto;padding:10px}
.br-fs-overlay .br-root{max-width:1100px;margin:0 auto}
.br-fs-bar{display:flex;align-items:center;gap:10px;max-width:1100px;
  margin:0 auto 8px;color:#f2ead9}
.br-fs-title{font-weight:bold;letter-spacing:.14em;text-transform:uppercase;
  font-size:11px;color:#E9C46A}
.br-fs-close{margin-left:auto;font:inherit;font-size:13px;font-weight:bold;
  cursor:pointer;background:#C39A3B;color:#171207;border:0;
  border-radius:999px;padding:11px 16px;min-height:44px;
  touch-action:manipulation}
body.br-fs-open{overflow:hidden}
