/* ---- Webux Scroll-Reveal (opt-in über die CSS-Klasse `webux-reveal`) ----

   Der Basiszustand versteckt NICHTS: `.webux-reveal` allein bekommt hier weder
   opacity noch visibility noch transform. Ohne JavaScript fehlt die Klasse
   `is-reveal-armed` (die setzt allein assets/js/webux-reveal.js), damit greift
   keine der Regeln unten und der Inhalt ist ganz normal sichtbar.

   Zusätzlich hängt der ganze Effekt in `prefers-reduced-motion: no-preference`:
   wer Bewegung reduziert, sieht den Inhalt auch dann ohne Fade und ohne Versatz,
   wenn das Skript ein Element bereits markiert hätte.

   Animiert werden nur opacity und transform - beide erzeugen keinen Layoutshift,
   das Element belegt durchgehend seinen endgültigen Platz. */
@media (prefers-reduced-motion: no-preference) {
	.webux-reveal.is-reveal-armed {
		opacity: 0;
		transform: translateY(14px);
		transition: opacity 450ms ease, transform 450ms ease;
	}

	.webux-reveal.is-reveal-armed.is-revealed {
		opacity: 1;
		transform: none;
	}
}

/* Druck und jede Ausgabe ohne Scrollen: Ein armiertes, noch nicht enthuelltes
   Element steht bei opacity 0. Beim Drucken wird nie gescrollt, der
   IntersectionObserver feuert also nie - Kartenband und Formular kaemen leer
   aufs Papier. Der Reveal ist reine Bildschirm-Choreografie und wird hier
   vollstaendig aufgehoben. */
@media print {
	.webux-reveal,
	.webux-reveal.is-reveal-armed {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
