/* Basis (Rubber Ducky Studio): fixed rules every demo starts with. Load before styles.css, so the demo can build on it. */

/* Lenis scrolls; the browser's own smooth scrolling fights it (7 demos had both) */
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }

/* No sideways scroll on a phone; clip (not hidden) keeps position: sticky working for scroll showpieces */
html, body { overflow-x: clip; }

/* Masked headings (masked-text-reveal): room for the tails of g, j and y, so the mask doesn't cut them */
[data-split="heading"] .line-mask,
[data-split] .line-mask { padding-block: .1em .14em; margin-block: -.1em -.14em; }

/* The note a demo form shows instead of sending */
.basis-form-note { margin-top: 1rem; font-size: .95em; }

/* Visitors who asked for less motion: no smooth scrolling, no endless loops */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
