/* DecaQ motion: hidden start states. Only while JS motion runs (html.js-motion); never without JS or under reduced motion. */

/* P4: blocks rise in, section headings blur in per word */
html.js-motion [data-reveal] { opacity: 0; }
html.js-motion h2[aria-label] > span > span[aria-hidden] { opacity: 0; }

/* P3 hero: the intro group and the h1 stay; the items and the headline letters are hidden until hero.js plays them */
html.js-motion #products header [data-reveal] { opacity: 1; }
html.js-motion #products header [data-reveal] [data-reveal]:not(h1) { opacity: 0; }
html.js-motion #products header [data-ready-gate] { opacity: 0; }
/* P2 intro: only when the head script decided it plays (desktop, motion allowed) */
#preloader { display: none; }
html.dq-intro #preloader { display: block; }
html.dq-intro { overflow: hidden; }

/* P5 Lenis (lenis/dist/lenis.css 1.3.26) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}
.lenis.lenis-smooth iframe{pointer-events:none}
.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}
