Override All CSS with Custom CSS on a Page by Page Basis

You can replace the page type condition to match your page by ID or slug instead.

https://www.webperftools.com/blog/how-to-remove-unused-css-in-wordpress/

function enqueue_pure_styles() {
    $suffix = '';
    if (is_front_page()) {
       $suffix = '.front-page';
    } else if (is_page()) {
       $suffix = '.pages';
    } else if (is_single()) {
       $suffix = '.blog';
    } else if (is_archive()) {
       $suffix = '.archives';
    }
    wp_enqueue_style('pure-styles', get_stylesheet_directory_uri().'/styles'.$suffix.'.pure.css');
}

So above code from the reference blog can be modified to check by page slug (or ID).You can save stylesheets for each page with name like

styles.page1.pure.css, styles.page2.pure.css, etc.

Then you can use the following code to enqueue stylesheet based on the current page slug.

function enqueue_pure_styles() {
    $valid_page_slugs = ['page1', 'page2', 'page3', 'page4' ....]; //Just replace wiht you page slugs.
    global $post;

    $post_slug = $post->post_name;

    //Bail early if page is not in the list. Or enqueue some default stylesheet
    if (!in_array($post_slug, $valid_page_slugs)) {
      return;
    }

    wp_enqueue_style('pure-styles', get_stylesheet_directory_uri().'/styles.'.$post_slug.'.pure.css');
}

You can also have some default css in case the slug doesn’t match.