/* ============================================================
   Blur-Reveal (inc/blur-reveal.php) – Referenz cleanecs „heroFadeUp“
   Hero: CSS beim Laden, animation-fill-mode backwards → endet auch ohne JS
   und hinterlässt nichts (kein filter:blur(0) → kein Backdrop-Root fürs Glas).
   Scroll: assets/blur-reveal.js (Web Animations API) – hier nur der Wartezustand.
   ============================================================ */
@keyframes rz-br{from{opacity:0;transform:translateY(28px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
/* LCP-Kandidaten (H1, Lead): Start bei .01 statt 0 – genauso unsichtbar, aber Chrome zählt den Paint.
   Gemessen: Mit 0 rückt das LCP ans Animationsende (+800–900 ms, sobald das Poster nicht gewinnt). */
@keyframes rz-br-lcp{from{opacity:.01;transform:translateY(28px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}

/* Bewusst ohne „screen“: Sonst wechselt beim Drucken die animation-name und der Hero spielt danach erneut ab */
@media (prefers-reduced-motion:no-preference){
  /* Nur die Textblöcke einzeln – nie __in/__inner (Vorfahr der Glas-Kacheln), Medien, Verläufe, Header.
     Glas (Badges, Panel) trägt die Animation selbst, nie ul/li. Flaggen schweben weiter: animiert wird ihr Container.
     Grundverzögerung 60 ms: Die Animationen starten schon, wenn das Footer-Skript das Layout misst – vor dem ersten Paint. */
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-kicker,.ruiz-h1,.ruiz-lead,.ruiz-vhero__actions,.ruiz-vhero__sub,.ruiz-vhero__anker,.ruiz-vhero__nationen,.ruiz-fhero__panel),
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-vhero__badges,.ruiz-ohero__badges)>li>:is(.ruiz-vhero__badge,.ruiz-ohero__badge),
  .rz-hero__inner>:is(.rz-kicker,.rz-hero__title,.rz-hero__lead,.rz-actions,.rz-nations),
  .rz-hero__inner>.rz-badges>.rz-badge,
  :is(.rz-recht__hero-in,[data-rz-br-hero])>*{animation:rz-br .85s cubic-bezier(.16,1,.3,1) .06s backwards}
  /* Staffel: Kicker 60 · H1 120 · Lead 180 · Buttons 240 · Unterzeile 300 · Anker 340 · Flaggen 380 · Kacheln ab 440 im 60-ms-Takt · Panel zuletzt */
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-h1,.rz-hero__inner>.rz-hero__title,:is(.rz-recht__hero-in,[data-rz-br-hero])>:nth-child(2){animation-name:rz-br-lcp;animation-delay:.12s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-lead,.rz-hero__inner>.rz-hero__lead,:is(.rz-recht__hero-in,[data-rz-br-hero])>:nth-child(3){animation-name:rz-br-lcp;animation-delay:.18s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-vhero__actions,.rz-hero__inner>.rz-actions,:is(.rz-recht__hero-in,[data-rz-br-hero])>:nth-child(n+4){animation-delay:.24s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-vhero__sub{animation-delay:.3s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-vhero__anker{animation-delay:.34s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-vhero__nationen,.rz-hero__inner>.rz-nations{animation-delay:.38s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-vhero__badges,.ruiz-ohero__badges)>li:nth-child(1)>*,.rz-hero__inner>.rz-badges>.rz-badge:nth-child(1){animation-delay:.44s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-vhero__badges,.ruiz-ohero__badges)>li:nth-child(2)>*,.rz-hero__inner>.rz-badges>.rz-badge:nth-child(2){animation-delay:.5s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-vhero__badges,.ruiz-ohero__badges)>li:nth-child(3)>*,.rz-hero__inner>.rz-badges>.rz-badge:nth-child(3){animation-delay:.56s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>:is(.ruiz-vhero__badges,.ruiz-ohero__badges)>li:nth-child(n+4)>*,.rz-hero__inner>.rz-badges>.rz-badge:nth-child(n+4){animation-delay:.62s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-fhero__panel{animation-delay:.46s}
  :is(.ruiz-fhero__in,.ruiz-vhero__in,.ruiz-ohero__in)>.ruiz-vhero__badges~.ruiz-fhero__panel{animation-delay:.68s}

  /* Wartende Blöcke und Blöcke in der Staffel-Wartezeit sind unsichtbar – also auch nicht anklickbar (Tastatur-Fokus zeigt sie per JS sofort) */
  .rz-br-wartet,.rz-br-verzoegert{pointer-events:none!important}
}

/* Scroll: nur JS setzt die Klasse (Bewegung erlaubt, Block beim Start komplett unter dem Fenster) – nur opacity, kein transform/filter */
.rz-br-wartet{opacity:0!important}
@media print,(prefers-reduced-motion:reduce){ .rz-br-wartet{opacity:1!important} }
