/* Scroll-World als visueller Layer der bestehenden Homepage.
   Alles unter html.sw-live: ohne die Klasse (Reduced Motion, schmale Viewports, kein WebGL2, ?sw=0)
   gilt ausschliesslich das unveraenderte Original-CSS. */
.sw-stage { display: none; }
html.sw-live { background: #020b12; }
html.sw-live .sw-stage {
  display: block;
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: #020b12;
  opacity: 1;
  --sw-img-o: .98;
  --sw-bright: .94;
  --sw-sat: .98;
  --sw-dim: .05;
  --sw-scrim-left: .90;
  --sw-scrim-mid: .68;
  --sw-scrim-right: .24;
  --sw-scrim-edge: .06;
}
.sw-stage .sw-poster,
.sw-stage .sw-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  filter: brightness(var(--sw-bright, .94)) saturate(var(--sw-sat, .98));
  will-change: opacity, filter;
}
.sw-stage .sw-poster {
  object-fit: cover;
  object-position: 58% 50%;
  opacity: var(--sw-img-o, .98);
}
/* Sobald WebGL rendert, wird der Poster-Layer entfernt. So addieren sich Poster und Canvas
   bei der spaeteren Ambient-Transparenz nicht doppelt. */
.sw-stage.is-ready .sw-poster { opacity: 0; }
.sw-stage .sw-canvas { opacity: 0; }
.sw-stage .sw-canvas.on { opacity: var(--sw-img-o, .98); }
.sw-stage .sw-scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,
      rgba(2, 10, 17, var(--sw-scrim-left, .90)) 0%,
      rgba(2, 10, 17, var(--sw-scrim-mid, .68)) 28%,
      rgba(2, 10, 17, var(--sw-scrim-right, .24)) 54%,
      rgba(2, 10, 17, var(--sw-scrim-edge, .06)) 76%,
      rgba(2, 10, 17, .02) 100%),
    linear-gradient(rgba(2, 10, 17, var(--sw-dim, .05)), rgba(2, 10, 17, var(--sw-dim, .05)));
}
/* Die Buehne bleibt bis zum Footer bestehen. Nach F07 ist sie statisch und nur noch als sehr
   dezente Ambient-DNA sichtbar. Die Original-Seite bekommt deshalb weiterhin ihren dunklen Grund
   von der Stage statt dass der Hintergrund hart aufhoert. */
html.sw-live body { background: transparent !important; }
html.sw-live .hero { background: transparent; }
/* Hero: die bisherige dekorative Hintergrundszene weicht der Welt (Inhalt, Foto, Texte bleiben). */
html.sw-live .hero > .hero-art,
html.sw-live .hero > .sig-scene,
html.sw-live .hero > .sig-hero-env { display: none; }
