/* Wejścia sekcji przy scrollu na stronie głównej (40-reveal.js nadaje klasy).
 *
 * Strona oglądana raz, więc wg tabeli częstotliwości emil-design-eng to miejsce,
 * gdzie ruch „może dodać przyjemności" — ale tylko w wersji powściągliwej:
 * 12 px w górę i krycie, 400 ms, krzywa ease-out. Karty kaskadowo co 60 ms.
 *
 * Trzy zabezpieczenia, żeby ukrycie nigdy nie zjadło treści:
 *   - stan ukryty żyje wyłącznie pod `.js` — bez JS wszystko jest widoczne,
 *   - klasę `.reveal` nadaje dopiero skrypt, więc jeśli skrypt nie ruszy, nic się nie ukryje,
 *   - całość pod `prefers-reduced-motion: no-preference` — przy ograniczonym ruchu
 *     nie ma nawet stanu początkowego, treść stoi od razu (apple-design §14). */
@media (prefers-reduced-motion: no-preference) {
  /* Stan wyjściowy BEZ przejścia. Gdyby `transition` siedziało tutaj, dodanie klasy
     przez skrypt uruchomiłoby 400 ms WYGASZANIA treści, która przed chwilą była
     widoczna — zanim w ogóle zdąży wjechać. Ukrycie ma być natychmiastowe,
     animowane jest wyłącznie wejście. */
  .js .reveal {
    opacity: 0;
    transform: translateY(12px);
  }
  .js .reveal.is-revealed {
    opacity: 1;
    transform: none;
    transition:
      opacity 400ms cubic-bezier(0.23, 1, 0.32, 1),
      transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
    transition-delay: calc(var(--reveal-i, 0) * 60ms);
  }
}
