/* One composition per world. Fixed-ratio artwork shares a bounded parallax axis. */
.world-stage > .scene-geometry {
  --geometry-size: min(66cqh, calc(var(--scene-width) * .55), 760px);
  --geometry-anchor: .74;
  position: absolute;
  width: var(--geometry-size);
  height: var(--geometry-size);
  left: clamp(
    calc(var(--scene-inset) + var(--geometry-size) / 2 + 24px),
    calc(var(--scene-inset) + var(--scene-width) * var(--geometry-anchor)),
    calc(100cqw - var(--scene-inset) - var(--geometry-size) / 2 - 24px)
  );
  top: 50%;
  translate: -50% -50%;
  z-index: -1;
  pointer-events: none;
  color: var(--world-accent);
}
.scene-reverse .world-stage > .scene-geometry { --geometry-anchor: .26; }
.scene-geometry .geometry-layer {
  --depth: .25;
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  stroke-linejoin: round;
  opacity: .2;
  transform: translate3d(calc(var(--geometry-x, 0px) * var(--depth)), calc(var(--geometry-y, 0px) * var(--depth)), 0);
}
.scene-geometry .geometry-layer * { vector-effect: non-scaling-stroke; }
.scene-geometry .geometry-layer:nth-child(2) { --depth: .75; opacity: .34; }
.scene-geometry .geometry-layer:nth-child(3) { --depth: 1.35; opacity: .52; }
.scene-geometry .geometry-plane { fill: currentColor; fill-opacity: .045; }
.scene-geometry .geometry-detail { stroke-width: .8; opacity: .65; }
.scene-geometry[data-motif="couture"] .geometry-layer:nth-child(2) { color: #f6eff2; }
.scene-geometry[data-motif="portal"] .geometry-layer:nth-child(2) { stroke-width: 1.8; }
.scene-geometry[data-motif="orbit"] .geometry-layer:nth-child(2) { stroke-width: 1.6; }
.scene-geometry[data-motif="court"] .geometry-layer { stroke-width: 1.6; }
[data-theme="light"] .world-stage > .scene-geometry {
  color: color-mix(in srgb, var(--world-accent) 35%, #263e55);
}
[data-theme="light"] .scene-geometry[data-motif="couture"] .geometry-layer:nth-child(2) { color: #526073; }

/* Old viewport-sized geometry is retired; the number remains available to the filter script. */
.world-stage > .scene-ghost { display: none; }
.motion-paused .scene-geometry .geometry-layer { transform: none; }

@media (max-width: 760px) {
  .world-stage > .scene-geometry,
  .scene-reverse .world-stage > .scene-geometry {
    --geometry-size: min(66cqw, 46cqh, 360px);
    --geometry-anchor: .62;
    top: 58%;
  }
  .scene-geometry .geometry-layer { opacity: .16; }
  .scene-geometry .geometry-layer:nth-child(2) { opacity: .25; }
  .scene-geometry .geometry-layer:nth-child(3) { opacity: .38; }
}
@media print { .world-stage > .scene-geometry { display: none; } }
