/* Bewegte Deko (Plugin „TVB Saison-Overlay“ → „Deko bewegen“, Standard: an). Gilt auf allen Seiten.
   Fallende Teilchen gibt es nur auf der Startseite. Bei „Bewegung reduzieren“ (Geräteeinstellung) steht alles still. */
@media (prefers-reduced-motion: no-preference) {
	/* Weihnachten: Lichterkette funkelt, Hero-Sterne ruhig */
	.tvb-deko-anim.tvb-season-weihnachten .tvb-site-header::after { animation: tvb-lights calc(1.6s * var(--tvb-t, 1)) ease-in-out infinite alternate; }
	/* Karneval, Ostern, Frühling: Wimpelkette, Eier-Girlande und Blütenranke wiegen sich im Wind */
	.tvb-deko-anim.tvb-season-karneval .tvb-site-header::after { animation: tvb-wind-k calc(3.2s * var(--tvb-t, 1)) ease-in-out infinite alternate; transform-origin: 50% 0; }
	.tvb-deko-anim.tvb-season-ostern .tvb-site-header::after { animation: tvb-wind-o calc(3.6s * var(--tvb-t, 1)) ease-in-out infinite alternate; transform-origin: 50% 0; }
	.tvb-deko-anim.tvb-season-fruehling .tvb-site-header::after { animation: tvb-wind-f calc(3.4s * var(--tvb-t, 1)) ease-in-out infinite alternate; transform-origin: 50% 0; }
	/* Herbst: Laubkante schwingt leicht */
	.tvb-deko-anim.tvb-season-herbst .tvb-site-header::after { animation: tvb-sway calc(3.8s * var(--tvb-t, 1)) ease-in-out infinite alternate; transform-origin: 50% 0; }
	/* Sommer: Sonnenstrahlen drehen sich, Wellen ziehen, Kopfwelle wogt */
	.tvb-deko-anim.tvb-season-sommer .tvb-hero-v2::before { animation: tvb-sonne calc(70s * var(--tvb-t, 1)) linear infinite; }
	.tvb-deko-anim.tvb-season-sommer .tvb-hero-v2::after { animation: tvb-welle calc(16s * var(--tvb-t, 1)) linear infinite; }
	.tvb-deko-anim.tvb-season-sommer .tvb-site-header::after { animation: tvb-wind-s calc(4s * var(--tvb-t, 1)) ease-in-out infinite alternate; }
	/* Hero-Unterkante: Schneetreiben (Weihnachten), Girlande (Karneval), Gras im Wind (Ostern), Hügelwellen (Frühling), Laubkante (Herbst) */
	.tvb-deko-anim.tvb-season-weihnachten .tvb-hero-v2::after { animation: tvb-kante-w calc(9s * var(--tvb-t, 1)) linear infinite; }
	.tvb-deko-anim.tvb-season-karneval .tvb-hero-v2::after { animation: tvb-kante-k calc(5s * var(--tvb-t, 1)) linear infinite; }
	.tvb-deko-anim.tvb-season-ostern .tvb-hero-v2::after { animation: tvb-kante-o calc(2.6s * var(--tvb-t, 1)) ease-in-out infinite alternate; }
	.tvb-deko-anim.tvb-season-fruehling .tvb-hero-v2::after { animation: tvb-kante-f calc(18s * var(--tvb-t, 1)) linear infinite; }
	.tvb-deko-anim.tvb-season-herbst .tvb-hero-v2::after { animation: tvb-kante-h calc(8s * var(--tvb-t, 1)) linear infinite; }
	/* Dauerhaft-Modus der Teilchen (nur Startseite) */
	.tvb-flakes-dauer.tvb-season-weihnachten::before { animation: tvb-snow-a calc(14s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-weihnachten::after { animation: tvb-snow-b calc(22s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-karneval::before { animation: tvb-konfetti-a calc(16s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-karneval::after { animation: tvb-konfetti-b calc(26s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-fruehling::before { animation: tvb-bluete-a calc(22s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-fruehling::after { animation: tvb-bluete-b calc(34s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-ostern::before { animation: tvb-eier-a calc(20s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-ostern::after { animation: tvb-eier-b calc(30s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-sommer::before { animation: tvb-blasen-a calc(22s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-sommer::after { animation: tvb-blasen-b calc(34s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-herbst::before { animation: tvb-leaves-a calc(24s * var(--tvb-t, 1)) linear infinite; }
	.tvb-flakes-dauer.tvb-season-herbst::after { animation: tvb-leaves-b calc(36s * var(--tvb-t, 1)) linear infinite; }
}
@keyframes tvb-kante-w { from { background-position: 0 0, 28px 6px; } to { background-position: 56px 0, 84px 6px; } }
@keyframes tvb-kante-k { from { -webkit-mask-position: 0 0; mask-position: 0 0; } to { -webkit-mask-position: 28px 0; mask-position: 28px 0; } }
@keyframes tvb-kante-o { from { background-position: 0 100%; } to { background-position: 9px 100%; } }
@keyframes tvb-kante-f { from { background-position: 0 100%; } to { background-position: 200px 100%; } }
@keyframes tvb-kante-h { from { background-position: 0 0, 30px 5px, 0 100%; } to { background-position: 60px 0, 90px 5px, 0 100%; } }
@keyframes tvb-lights { from { opacity: 1; filter: brightness(1.15); } to { opacity: .45; filter: brightness(.9); } }
@keyframes tvb-wind-k { from { background-position: 0 0; transform: rotate(-.35deg); } to { background-position: 16px 0; transform: rotate(.35deg); } }
@keyframes tvb-wind-o { from { background-position: 0 0; transform: rotate(-.3deg); } to { background-position: 14px 0; transform: rotate(.3deg); } }
@keyframes tvb-wind-f { from { background-position: 0 0; transform: rotate(-.3deg); } to { background-position: 12px 0; transform: rotate(.3deg); } }
@keyframes tvb-wind-s { from { background-position: 0 0; } to { background-position: 30px 0; } }
@keyframes tvb-sway { from { transform: rotate(-.3deg); } to { transform: rotate(.3deg); } }
@keyframes tvb-sonne { to { transform: rotate(360deg); } }
@keyframes tvb-welle { to { background-position: 120px 100%; } }
@keyframes tvb-eier-a { to { background-position: 360px 270px; } }
@keyframes tvb-eier-b { to { background-position: -440px 330px; } }
@keyframes tvb-blasen-a { to { background-position: 60px -340px; } }
@keyframes tvb-blasen-b { to { background-position: -80px -400px; } }
@keyframes tvb-snow-a { to { background-position: 380px 260px; } }
@keyframes tvb-snow-b { to { background-position: -460px 320px; } }
@keyframes tvb-konfetti-a { to { background-position: 360px 280px; } }
@keyframes tvb-konfetti-b { to { background-position: -440px 340px; } }
@keyframes tvb-bluete-a { to { background-position: 400px 300px; } }
@keyframes tvb-bluete-b { to { background-position: -500px 360px; } }
@keyframes tvb-leaves-a { to { background-position: 420px 320px; } }
@keyframes tvb-leaves-b { to { background-position: -520px 380px; } }
@media print {
	[class*="tvb-season-"]::before, [class*="tvb-season-"]::after, [class*="tvb-season-"] .tvb-site-header::after { animation: none !important; }
}
