/* Porta polish layer (SMOOTH-20261025). Pairs with polish.js. */
html.has-lenis { scroll-behavior: auto !important; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }

/* Blur fade: only armed by JS, so no-JS visitors see everything */
.bf {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  filter: blur(6px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1), filter .7s cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--bf-delay, 0ms);
  will-change: opacity, transform, filter;
}
.bf.bf-in { opacity: 1; transform: none; filter: none; will-change: auto; }
@media (prefers-reduced-motion: reduce) { .bf { opacity: 1; transform: none; filter: none; transition: none; } }

/* Arriving at /page/#section from another page: keep the section clear of the fixed header (GPT review 2026-10-26) */
html { scroll-padding-top: 84px; }
