/* ==========================================================================
   THE INSTRUMENTS — FIG. A/B/C and the archive-integrity band, lifted from
   the v3 archive stylesheet and scoped under .v3fig so they cannot reach
   the plate-first layout. Source: archive.css + elevate.css.
   ========================================================================== */

/* ---- from archive.css ---- */
.v3fig .glyph{display:inline-block; width:1em; height:1em; fill:none; stroke:currentColor;
  vertical-align:middle; flex-shrink:0;}
.v3fig .rule{border:0; border-top:var(--rule-hair) solid var(--rule);}
.v3fig .rule-bold{border:0; border-top:var(--rule-bold) solid var(--ghost);}
.v3fig .rule-accent{border:0; border-top:var(--rule-mid) solid var(--accent);}
.v3fig .mono-num{font-variant-numeric:tabular-nums;}
.v3fig .figures{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);
  margin-top:var(--baseline-px);}
.v3fig .figure{padding:var(--space-3) var(--space-3) var(--space-3) var(--space-3);
  border-left:1px solid var(--hairline); min-width:0;}
.v3fig .figure:first-child{border-left:0; padding-left:0;}
.v3fig .figure-num{font-family:var(--font-expanded); font-weight:700; font-variant-numeric:tabular-nums;
  font-size:var(--num-xl); line-height:.85; color:var(--ghost); letter-spacing:-.03em;
  white-space:nowrap;}
.v3fig .figure-num.text{font-size:1.9rem; letter-spacing:-.01em; line-height:1;}
.v3fig .figure-num.is-alarm{color:var(--alarm-hi);}
.v3fig .figure-cap{font-family:var(--font-mono); font-size:var(--t-micro);
  letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--label-dim);
  margin-top:var(--space-2);}
.v3fig .legend-item .glyph{width:22px; height:22px;}
.v3fig .legend-item[data-f="authority"] .glyph{color:var(--fac-authority);}
.v3fig .legend-item[data-f="chen"] .glyph{color:var(--fac-chen);}
.v3fig .legend-item[data-f="church"] .glyph{color:var(--fac-church);}
.v3fig .legend-item[data-f="revel"] .glyph{color:var(--fac-revel);}
.v3fig .legend-item[data-f="scionfall"] .glyph{color:var(--fac-scion);}
.v3fig .legend-item[data-f="journal"] .glyph{color:var(--fac-journal);}
.v3fig .aid-group .rule{flex:1;}
.v3fig .aid-omega .glyph{width:16px; height:16px; color:var(--alarm-hi);}
.v3fig .register-recovered .sec-num, .v3fig .register-recovered .doc-watermark, .v3fig .register-recovered .plate-body .glyph, .v3fig .register-recovered .equation .glyph{color:var(--fac-chen);}
.v3fig .plate-body .glyph{width:60px; height:60px; color:var(--fac-color); stroke-width:4;}
.v3fig .fm-sub .glyph{width:34px; height:34px; color:var(--accent);}
.v3fig .equation .glyph{width:28px; height:28px; color:var(--fac-color);}
.v3fig .topology{margin-top:var(--space-5); position:relative; z-index:2;}
.v3fig .topo-head{display:flex; align-items:baseline; gap:var(--space-3); flex-wrap:wrap;
  padding-bottom:var(--space-2); border-bottom:var(--rule-mid) solid var(--accent);}
.v3fig .topo-kicker{font-family:var(--font-mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--accent-hi); font-variant-numeric:tabular-nums;}
.v3fig .topo-title{font-family:var(--font-expanded); font-weight:800;
  font-size:clamp(1.5rem,3vw,2.1rem); text-transform:uppercase; letter-spacing:-.01em;
  color:var(--ghost); line-height:1;}
.v3fig .topo-sub{margin-left:auto; font-family:var(--font-mono); font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--label-dim);}
.v3fig .topo-body{display:grid; grid-template-columns:1.55fr 1fr; gap:var(--field-gutter);
  margin-top:var(--field-gutter); align-items:stretch;}
.v3fig .topo-fig{position:relative; border:1px solid var(--hairline); margin:0;
  display:flex; flex-direction:column;
  background:linear-gradient(rgba(var(--accent-rgb),.015),rgba(var(--accent-rgb),.015));}
.v3fig .topo-fig::before, .v3fig .topo-fig::after{content:''; position:absolute; width:9px; height:9px;
  background-image:var(--cross); background-size:9px 9px; background-repeat:no-repeat; z-index:3;}
.v3fig .topo-fig::before{top:-1px; left:-1px;}
.v3fig .topo-fhead{display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:.5rem var(--space-3); border-bottom:1px solid var(--hairline);
  font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--label);}
.v3fig .topo-fhead .ref{color:var(--accent-hi);}
.v3fig .topo-fig figcaption{padding:.5rem var(--space-3); border-top:1px solid var(--hairline);
  font-family:var(--font-mono); font-size:10px; line-height:1.55; color:var(--label-dim);
  letter-spacing:.02em; margin-top:auto;}
.v3fig .topo-fig svg{display:block; width:100%; height:auto;}
.v3fig .topo-map svg{padding:var(--space-2);}
.v3fig .topo-edge{stroke:var(--rule); stroke-width:1;}
.v3fig .topo-edge-label text{font-family:var(--font-mono); font-size:8.5px; letter-spacing:.1em;
  text-transform:uppercase; fill:var(--label-dim);}
.v3fig .topo-edge-label rect{fill:var(--void);}
.v3fig .node{cursor:pointer;}
.v3fig .node circle{fill:var(--void); stroke:currentColor; stroke-width:2; transition:stroke-width .15s;}
.v3fig .node .node-name{font-family:var(--font-mono); font-size:9px; letter-spacing:.08em;
  text-transform:uppercase; fill:var(--label); text-anchor:middle;}
.v3fig .node .node-n{font-family:var(--font-expanded); font-weight:700; font-size:13px;
  fill:var(--ghost); text-anchor:middle; font-variant-numeric:tabular-nums;}
.v3fig .node[data-f="authority"]{color:var(--fac-authority);}
.v3fig .node[data-f="chen"]{color:var(--fac-chen);}
.v3fig .node[data-f="church"]{color:var(--fac-church);}
.v3fig .node[data-f="revel"]{color:var(--fac-revel);}
.v3fig .node[data-f="scionfall"]{color:var(--fac-scion);}
.v3fig .node[data-f="journal"]{color:var(--fac-journal);}
.v3fig .node:hover circle, .v3fig .node:focus-visible circle{stroke-width:3.5;}
.v3fig .node:focus{outline:none;}
.v3fig .topo-map.dim .topo-edge{opacity:.1;}
.v3fig .topo-map.dim .topo-edge-label{opacity:.1;}
.v3fig .topo-map.dim .node{opacity:.28;}
.v3fig .topo-map.dim .topo-edge.lit{opacity:1;}
.v3fig .topo-map.dim .topo-edge-label.lit{opacity:1;}
.v3fig .topo-map.dim .node.lit{opacity:1;}
.v3fig .rank{padding:var(--space-3); display:flex; flex-direction:column; gap:.72rem; flex:1;}
.v3fig .rank-row{display:grid; grid-template-columns:8.5rem 1fr 2.1rem; align-items:center;
  gap:var(--space-2); cursor:pointer; background:transparent; border:0; text-align:left;
  padding:0; font:inherit;}
.v3fig .rank-name{font-family:var(--font-mono); font-size:10px; letter-spacing:.07em;
  text-transform:uppercase; color:var(--label); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; transition:color .15s;}
.v3fig .rank-track{height:11px; background:rgba(var(--accent-rgb),.06); position:relative;}
.v3fig .rank-fill{position:absolute; left:0; top:0; bottom:0; background:var(--steel-dim);
  transform-origin:left;}
.v3fig .rank-row[data-f="authority"] .rank-fill{background:var(--fac-authority);}
.v3fig .rank-row[data-f="chen"] .rank-fill{background:var(--fac-chen);}
.v3fig .rank-row[data-f="church"] .rank-fill{background:var(--fac-church);}
.v3fig .rank-row[data-f="revel"] .rank-fill{background:var(--fac-revel);}
.v3fig .rank-row[data-f="scionfall"] .rank-fill{background:var(--fac-scion);}
.v3fig .rank-row[data-f="journal"] .rank-fill{background:var(--fac-journal);}
.v3fig .rank-n{font-family:var(--font-expanded); font-weight:700; font-size:1.05rem; color:var(--ghost);
  text-align:right; font-variant-numeric:tabular-nums;}
.v3fig .rank-row:hover .rank-name{color:var(--ghost);}
.v3fig .rank-foot{margin-top:auto; padding:var(--space-2) var(--space-3); border-top:1px solid var(--hairline);
  display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--label-dim);}
.v3fig .rank-foot b{font-family:var(--font-expanded); color:var(--ghost); font-variant-numeric:tabular-nums;}
.v3fig .topo-decay{margin-top:var(--field-gutter);}
.v3fig .plot-axis{stroke:var(--rule); stroke-width:1;}
.v3fig .plot-grid{stroke:var(--hairline); stroke-width:1; stroke-dasharray:3 4;}
.v3fig .plot-line{fill:none; stroke:var(--accent-hi); stroke-width:2;}
.v3fig .plot-pt{fill:var(--void); stroke:var(--accent-hi); stroke-width:2;}
.v3fig .plot-pt.is-terminal{stroke:var(--alarm-hi);}
.v3fig .plot-ylab{font-family:var(--font-mono); font-size:9px; letter-spacing:.08em; fill:var(--label-dim);
  font-variant-numeric:tabular-nums;}
.v3fig .plot-axtitle{font-family:var(--font-mono); font-size:9px; letter-spacing:.18em;
  text-transform:uppercase; fill:var(--label-dim);}
.v3fig .plot-xlab{font-family:var(--font-mono); font-size:9px; letter-spacing:.06em;
  text-transform:uppercase; fill:var(--label);}
.v3fig .plot-xlab .plot-xref{font-size:8px; letter-spacing:.04em; fill:var(--label-dim);}
.v3fig .plot-xlab.is-terminal{fill:var(--alarm-hi);}
.v3fig .topology.anim .draw{stroke-dashoffset:0;}
.v3fig .topology.anim .fade{opacity:1;}
.v3fig .topology.anim.is-seen .fade{animation:topo-fade .5s ease .4s;}
.v3fig .topo-body{grid-template-columns:1fr;}
.v3fig .topology.anim .draw{stroke-dashoffset:0;}
.v3fig .topology.anim .fade{opacity:1;}

/* ---- from elevate.css ---- */
.v3fig .figures{margin-top: var(--beat);}
.v3fig .topology{margin-top: calc(var(--beat) * 1.4);}
.v3fig .epigraph{margin: var(--baseline-px) 0 0; padding-left: var(--space-3);
  border-left: var(--rule-bold) solid var(--accent);
  font-family: var(--font-serif); font-style: italic;
  font-size: var(--t-lead); line-height: 1.5; color: var(--ghost);
  max-width: 46ch;}
.v3fig .epigraph .src{display:block; margin-top:.5em; font-family:var(--font-mono); font-style:normal;
  font-size:var(--t-micro); letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--label-dim);}
.v3fig .figures{display:grid; grid-template-columns:1.15fr 1.85fr; gap:0;
  border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);}
.v3fig .fig-integrity{padding:var(--space-4) var(--space-4) var(--space-4) var(--space-3);
  border-left:var(--rule-bold) solid var(--alarm);
  display:flex; flex-direction:column; gap:.5rem; min-width:0;}
.v3fig .fig-int-label{font-family:var(--font-mono); font-size:var(--t-micro);
  letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--label);}
.v3fig .fig-int-status{font-family:var(--font-expanded); font-weight:800; line-height:.92;
  font-size:clamp(2rem,3.6vw,3.1rem); letter-spacing:-.02em;
  text-transform:uppercase; color:var(--alarm-hi);}
.v3fig .fig-int-note{font-family:var(--font-mono); font-size:var(--t-micro); line-height:1.55;
  color:var(--label-dim); max-width:34ch;}
.v3fig .fig-int-bar{display:flex; align-items:center; gap:.5rem; margin-top:.2rem;}
.v3fig .fig-int-bar .track{flex:1; height:6px; background:rgba(var(--alarm-rgb),.14); position:relative;}
.v3fig .fig-int-bar .fill{position:absolute; inset:0 86% 0 0; background:var(--alarm);}
.v3fig .fig-int-bar .pct{font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; color:var(--alarm-hi);
  font-variant-numeric:tabular-nums;}
.v3fig .fig-metrics{display:grid; grid-template-columns:repeat(3,1fr);}
.v3fig .fig-metrics .figure{padding:var(--space-4) var(--space-3); border-left:1px solid var(--hairline);
  display:flex; flex-direction:column; justify-content:flex-end;}
.v3fig .fig-metrics .figure-num{font-size:3rem; line-height:.85;}
@media(max-width:760px){
  .v3fig .figures{grid-template-columns:1fr;}
  .v3fig .fig-metrics{border-top:1px solid var(--hairline);}
}
.v3fig .topo3d .t3-stage{position:relative; width:100%; height:560px; overflow:hidden;
  cursor:grab; touch-action:none;
  background-color:#020506;
  background-image:
    radial-gradient(80% 70% at 50% 46%, rgba(70,220,255,.035), transparent 62%),
    radial-gradient(140% 120% at 50% 40%, #081215 0%, #040808 55%, #010202 100%),
    radial-gradient(rgba(120,225,255,.28) 1px, transparent 1.4px);
  background-size:auto, auto, 27px 27px;
  background-position:0 0, 0 0, -4px -4px;}
.v3fig .topo3d .t3-stage::before{content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:repeating-linear-gradient(to bottom, rgba(150,235,255,.035) 0 1px, transparent 1px 3px);
  mix-blend-mode:screen; opacity:.6;}
.v3fig .topo3d .t3-stage::after{content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
  box-shadow:inset 0 0 120px 30px rgba(0,0,0,.9), inset 0 0 40px rgba(0,0,0,.6);}
.v3fig .topo3d .t3-stage.dragging{cursor:grabbing;}
.v3fig .topo3d canvas.t3-canvas{position:absolute; inset:0; display:block; z-index:1;}
.v3fig .topo3d .t3-overlay{position:absolute; inset:0; pointer-events:none; z-index:4;}
.v3fig .topo3d .t3-node{position:absolute; transform:translate(-50%,-50%); pointer-events:auto;
  display:flex; flex-direction:column; align-items:center; gap:2px;
  background:transparent; border:0; padding:6px 8px; cursor:pointer;
  font:inherit; will-change:transform,opacity;}
.v3fig .topo3d .t3-glyph{width:var(--gs,40px); height:var(--gs,40px); display:block;
  color:color-mix(in srgb, var(--fac,#1FBEE0) 62%, #FFF 38%);
  filter:
    drop-shadow(0 0 5px var(--fac,#1FBEE0))
    drop-shadow(0 0 13px color-mix(in srgb, var(--fac,#1FBEE0) 70%, transparent))
    drop-shadow(0 0 24px rgba(120,225,255,.3));
  transition:color .15s, filter .15s;}
.v3fig .topo3d .t3-node.is-hub .t3-glyph{color:color-mix(in srgb, var(--fac,#5C90B0) 50%, #FFF 50%);
  filter:
    drop-shadow(0 0 7px var(--fac,#5C90B0))
    drop-shadow(0 0 20px color-mix(in srgb, var(--fac,#5C90B0) 75%, transparent))
    drop-shadow(0 0 38px rgba(120,225,255,.35));}
.v3fig .topo3d .t3-node:hover .t3-glyph, .v3fig .topo3d .t3-node:focus-visible .t3-glyph{color:color-mix(in srgb, var(--fac,#1FBEE0) 35%, #FFF 65%);
  filter:
    drop-shadow(0 0 8px var(--fac,#1FBEE0))
    drop-shadow(0 0 22px color-mix(in srgb, var(--fac,#1FBEE0) 80%, transparent))
    drop-shadow(0 0 40px rgba(120,225,255,.45));}
.v3fig .topo3d .t3-node .t3-name{margin-top:3px;
  font-family:var(--font-mono); font-size:9.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ghost); white-space:nowrap;
  text-shadow:0 1px 3px rgba(0,0,0,.85), 0 0 8px rgba(0,0,0,.7);
  transition:color .15s;}
.v3fig .topo3d .t3-node .t3-n{font-family:var(--font-expanded); font-weight:800; font-size:15px; line-height:1;
  color:color-mix(in srgb, var(--fac,#7FE8F5) 55%, #FFF 45%); font-variant-numeric:tabular-nums;
  text-shadow:0 0 8px var(--fac,rgba(90,225,255,.6)), 0 1px 2px rgba(0,0,0,.9);}
.v3fig .topo3d .t3-node:hover .t3-name, .v3fig .topo3d .t3-node:focus-visible .t3-name{color:#E3FBFF;}
.v3fig .topo3d .t3-node.is-hub{color:#F10C0C;}
.v3fig .topo3d .t3-node.is-hub .t3-name{color:#F10C0C; letter-spacing:.14em;}
.v3fig .topo3d .t3-node:focus{outline:none;}
.v3fig .topo3d .t3-node:focus-visible{outline:1px solid #7FE8F5; outline-offset:4px;}
.v3fig .topo3d .t3-hint{position:absolute; left:var(--space-3); bottom:.5rem; z-index:4; pointer-events:none;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--label-dim);}
.v3fig .topo3d .t3-axislabel{position:absolute; right:var(--space-3); top:.5rem; z-index:4; pointer-events:none;
  font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:#7FE8F5; font-variant-numeric:tabular-nums; text-shadow:0 0 8px rgba(90,225,255,.5);}
.v3fig .topo3d .t3-ctrl{border-top:1px solid var(--hairline);
  padding:.65rem var(--space-3);
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.4rem;}
.v3fig .t3-ctrl .t3-grp{display:flex; align-items:center; gap:.55rem;}
.v3fig .t3-ctrl label.t3-lab{font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--label-dim);}
.v3fig .t3-ctrl input[type=range]{-webkit-appearance:none; appearance:none; width:74px; height:14px; background:transparent;
  cursor:pointer; margin:0;}
.v3fig .t3-ctrl input[type=range]::-webkit-slider-runnable-track{height:2px; background:rgba(var(--accent-rgb),.3);}
.v3fig .t3-ctrl input[type=range]::-moz-range-track{height:2px; background:rgba(var(--accent-rgb),.3);}
.v3fig .t3-ctrl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:9px; height:12px; margin-top:-5px;
  background:var(--accent-hi); border:0; border-radius:0;}
.v3fig .t3-ctrl input[type=range]::-moz-range-thumb{width:9px; height:12px; background:var(--accent-hi); border:0; border-radius:0;}
.v3fig .t3-ctrl .t3-tog{font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--label-dim); background:transparent; cursor:pointer;
  border:1px solid var(--hairline); padding:.35em .7em; transition:color .15s, border-color .15s, background .15s;
  display:inline-flex; align-items:center; gap:.45em;}
.v3fig .t3-ctrl .t3-tog::before{content:''; width:6px; height:6px; background:var(--steel-dim); display:inline-block;
  transition:background .15s;}
.v3fig .t3-ctrl .t3-tog[aria-pressed="true"]{color:var(--ghost); border-color:rgba(var(--accent-rgb),.45);}
.v3fig .t3-ctrl .t3-tog[aria-pressed="true"]::before{background:var(--accent-hi);}
.v3fig .t3-ctrl .t3-tog:hover{color:var(--ghost);}
@media(max-width:880px){
  .v3fig .topo3d .t3-stage{height:460px;}
}
.v3fig .topo3d .t3-rel{position:absolute; transform:translate(-50%,-50%);
  pointer-events:none; z-index:4;
  font-family:var(--font-mono); font-size:8px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--steel);
  text-shadow:0 1px 3px rgba(0,0,0,.9), 0 0 10px rgba(0,0,0,.8);
  padding:1px 4px; white-space:nowrap;
  transition:opacity .2s;}
.v3fig .topo3d .t3-node{align-items:center;}
.v3fig .topo3d .t3-node .t3-n{order:2;}
.v3fig .topo3d .t3-node .t3-name{order:3;}
.v3fig .topo-expand{color:var(--accent-hi); text-decoration:none;
  border-bottom:1px solid var(--hairline);}
.v3fig .topo-expand:hover{color:var(--ghost); border-bottom-color:var(--accent);}

/* ---- container + bridges to the v4 page ---- */
.v3fig{max-width:1500px;margin:0 auto;padding:0 clamp(1rem,4vw,2.4rem) 1rem;position:relative;z-index:2}
.v3fig .topology{margin-top:1.6rem}
.v3fig .figures{margin-top:1.4rem}
.v3fig .epigraph{margin-top:1.6rem}
.v3fig .topo-fig{background:#0c0d0f}
.v3fig .rank-row{cursor:pointer;text-align:left;font:inherit;color:inherit;background:none;border:0}
.v3fig .topo-fig figcaption{color:var(--steel-dim)}

/* v3's archive.css ended with an unconditional `.topo-body{grid-template-columns:1fr}`
   — evidently a truncated media query, since the base rule asks for 1.55fr/1fr.
   Restore the intended two-up on wide screens; stack below. */
@media(min-width:1020px){
  .v3fig .topo-body{grid-template-columns:1.55fr 1fr}
}
.v3fig .rank{justify-content:space-evenly}
@media(max-width:1019px){.v3fig .rank{justify-content:flex-start;gap:.72rem}}

/* the big numerals collide in a three-up on a phone */
@media(max-width:700px){
  .v3fig .fig-metrics .figure-num{font-size:1.7rem;letter-spacing:-.01em}
  .v3fig .fig-metrics .figure{padding:.85rem .6rem}
  .v3fig .figure-cap{font-size:9px;letter-spacing:.1em}
  .v3fig .topo-head{padding-top:.4rem}
}
