
/* ---------- smooth scrolling (Lenis) + page transition curtain (shared, from _shared/nav-motion.css) ---------- */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
html { --pt-bg: var(--ink, #111); --pt-dot: var(--accent, #f33); }
html::after { content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  background: radial-gradient(circle at 50% 50%, var(--pt-dot) 0 9px, transparent 10px), var(--pt-bg);
  clip-path: inset(100% 0 0 0); transition: clip-path .6s cubic-bezier(.65, 0, .35, 1); }
html.pt-leave::after { clip-path: inset(0 0 0 0); pointer-events: all; }
html.pt-enter::after { clip-path: inset(0 0 0 0); transition: none; }
html.pt-enter.pt-go::after { clip-path: inset(0 0 100% 0); transition: clip-path .75s cubic-bezier(.65, 0, .35, 1) .05s; }
@media (prefers-reduced-motion: reduce) {
  html::after { clip-path: none; opacity: 0; transition: opacity .3s ease; }
  html.pt-leave::after { clip-path: none; opacity: 1; }
  html.pt-enter::after { clip-path: none; opacity: 1; transition: none; }
  html.pt-enter.pt-go::after { clip-path: none; opacity: 0; transition: opacity .45s ease; }
}
