/* O³ — secciones con video controlado por el scroll. scrub.js agrega .scrub-on a <html>
   solo si puede hacerlo bien; sin esa clase cada sección queda como un bloque normal con poster.
   Por pista: --scrub-len (distancia de scroll), --scrub-len-m (en móvil), --scrub-pull (margen superior). */
.scrub-flash { position: absolute; inset: 0; background: var(--flash, #FAF9F6); opacity: 0; pointer-events: none; }

/* overflow-x: hidden convierte al contenedor en caja de scroll y anula el sticky; clip no */
.scrub-on body > div:first-child { overflow-x: clip !important; }

.scrub-on .scrub-track { position: relative; height: var(--scrub-len, 220vh); margin-top: var(--scrub-pull, 0px); }
.scrub-on .scrub-track > [data-scrub] {
  position: sticky !important; top: 0;
  height: 100vh; height: 100svh; min-height: 0 !important; margin-top: 0 !important;
}
.scrub-on .scrub-track > [data-scrub] > div:last-child { will-change: opacity, transform; }

@media (max-width: 640px) {
  .scrub-on .scrub-track { height: var(--scrub-len-m, var(--scrub-len, 200vh)); }
}
