/* One WebGL window for the hub. On document.body so Safari overflow:clip on
   .series cannot become its position:fixed frame. inset:0 is the viewport —
   100vw is wider than the window in Safari (scrollbar) and shifts the scene. */
.hubgl {
  position: fixed;
  inset: 0;
  /* Above the water layer (z 2) so card figures sit on top; clear alpha must stay 0
     so the plankton canvas underneath still shows through. */
  z-index: 3;
  pointer-events: none;
}

.hubgl.is-merge-active {
  /* Above .chase-sticky (z 6) so the landed bud loop isn’t covered by the essay layer. */
  z-index: 7;
}

.hubgl canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  background: transparent;
}

.hubgl-track {
  position: fixed;
  inset: 0;
  pointer-events: none;
  visibility: hidden;
}