/* ---------------- Scroll reveals ---------------- */
/* Content is readable by default. Only a working observer opts elements in. */
[data-scroll-reveal] {
  --reveal-distance: 42px;
  --reveal-scale: 1;
  transition: opacity 1s cubic-bezier(.22,.61,.36,1), transform 1.25s cubic-bezier(.16,1,.3,1);
  transition-delay: var(--reveal-delay, 0ms);
}
[data-scroll-heading] { --reveal-distance: 56px; }
[data-scroll-media] {
  --reveal-distance: 64px;
  --reveal-scale: .96;
  transition-duration: 1.1s, 1.45s;
  transform-origin: center top;
}
[data-scroll-reveal="pending"] {
  opacity: 0;
  transform: translateY(var(--reveal-distance)) scale(var(--reveal-scale));
}
[data-scroll-reveal="visible"] { opacity: 1; transform: none; }
[data-scroll-reveal]:focus-within, [data-scroll-immediate] { opacity: 1; transform: none; transition: none; }
@media (max-width: 640px) {
  [data-scroll-reveal] { --reveal-distance: 28px; transition-duration: .85s, 1.1s; }
  [data-scroll-media] { --reveal-distance: 38px; --reveal-scale: .98; }
}
@media print {
  [data-scroll-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  [data-scroll-reveal], [data-scroll-reveal="pending"][data-scroll-media] {
    opacity: 1; transform: none; transition: none;
  }
}
