DeTrend – Hide "CHECK THE SOUND" bait in YT Shorts

This is for people who hate these stupid trends

// ==UserScript==
// @name         DeTrend – Hide "CHECK THE SOUND" bait in YT Shorts
// @namespace    https://winverse.detrend
// @version      2.0.0
// @description  This is for people who hate these stupid trends
// @author       Winverse
// @match        *://*.youtube.com/shorts/*
// @run-at       document-idle
// @icon         https://i.ibb.co/VYG22nmP/Projekt-bez-nazwy.png
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const blockedWords = [
        "sound",
        "this sound",
        "the sound",
        "that sound",
        "music",
        "check the sound",
        "freak",
        "trend",
        "freaky",
        "freaking",
        "click the sound",
        "sound sound",
        "🥀💔",
        "🥀",
        "🥀😭",
    ];

    function containsBlockedWord(text) {
        return blockedWords.some(word => text.toLowerCase().includes(word));
    }

    function cleanTitles() {
        document.querySelectorAll(
            ".yt-core-attributed-string.yt-core-attributed-string--white-space-pre-wrap.yt-core-attributed-string--link-inherit-color"
        ).forEach(el => {
            const text = el.innerText || el.textContent;
            if (containsBlockedWord(text)) {
                // Remove text first
                el.textContent = "";

                // Hide the parent wrappers
                let host = el.closest(".ytShortsVideoTitleViewModelHost");
                let title = el.closest(".ytShortsVideoTitleViewModelShortsVideoTitle");
                if (host) host.style.display = "none";
                if (title) title.style.display = "none";
                el.style.display = "none";
            }
        });
    }

    // Run initially and then watch for new nodes
    const observer = new MutationObserver(() => cleanTitles());
    observer.observe(document.body, { childList: true, subtree: true });

    cleanTitles();
})();