/* Las w tle (brief v2, PR B po korekcie 10.09): warstwa przyklejona do ekranu za cala trescia
   publicznych podstron. Element i plotna tworzy 15-forest.js; panel klienta i admin maja
   body[data-no-forest]. html nie ma tla, wiec tlo body przechodzi na plotno strony i z-index -1
   kladzie las nad nim, a pod trescia. Karty i pola z wlasnym tlem zostaja z przodu. */
.forest {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  --forest-a: var(--build);
  /* krycie punktow; 15-forest.js wpisuje je w rysunek zamiast CSS opacity */
  --forest-alpha: .25;
}
.forest__layer {
  position: absolute;
  left: 0;
  width: 100%;
  transform: translate3d(0, calc((var(--p, 0) - .5) * var(--amp, 0px)), 0);
}
/* Paralaksa z postepu scrolla calej strony, liczona przez kompozytor. */
@supports (animation-timeline: scroll()) {
  .forest__layer {
    animation: forest-drift linear both;
    animation-timeline: scroll(root block);
  }
}
@keyframes forest-drift {
  from { transform: translate3d(0, calc(var(--amp, 0px) * -.5), 0); }
  to { transform: translate3d(0, calc(var(--amp, 0px) * .5), 0); }
}
/* 90-polish.css skraca animacje do 0.001ms, co przy osi scrolla skoczyloby do klatki
   koncowej. Kadr statyczny ustawiamy jawnie: warstwy w polozeniu srodkowym. */
@media (prefers-reduced-motion: reduce) {
  .forest .forest__layer { animation: none !important; transform: translate3d(0, 0, 0); }
}
/* Przejscie miedzy podstronami: stara i nowa strona przenikaja sie zamiast bialego blysku,
   a las wyglada na obu tak samo, wiec stoi w miejscu. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
}
@media print {
  .forest { display: none; }
}
