GWA Reddit Direct Open

Modern, aesthetic redesign for gwasi.com with color customization

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         GWA Reddit Direct Open
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Modern, aesthetic redesign for gwasi.com with color customization
// @author       Ifrit Raen
// @match        https://gwasi.com/*
// @license      MIT
// @match        https://gwasi.com/*
// @match        https://old.reddit.com/*
// @match        https://www.reddit.com/*
// @grant        GM_setClipboard
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==


(function() {
    'use strict';

    // Check if we're on Reddit or gwasi.com
    const isReddit = window.location.hostname.includes('reddit.com');

    if (isReddit) {
        initRedditScript();
    } else {
        initGwasiScript();
    }










// ========== REDDIT SCRIPT ==========
    function initRedditScript() {
        const AUDIO_SITES = [
            'soundgasm.net',
            'hotaudio.net',
            'whyp.it',
            'erocast.me',
            'audio.love',
            'audiochan.com'
        ];

        function findAndOpenAudioLinks() {
            const links = document.querySelectorAll('a[href]');
            const foundLinks = new Set();

            links.forEach(link => {
                const href = link.href;

                if (AUDIO_SITES.some(site => href.includes(site))) {
                    if (!foundLinks.has(href)) {
                        foundLinks.add(href);
                        console.log('Opening audio link:', href);
                    }
                }
            });

            if (foundLinks.size > 0) {
                const audioLinksArray = Array.from(foundLinks);

                window.location.href = audioLinksArray[0];

                if (audioLinksArray.length > 1) {
                    for (let i = 1; i < audioLinksArray.length; i++) {
                        if (typeof GM_openInTab !== 'undefined') {
                            GM_openInTab(audioLinksArray[i], { active: false, insert: true });
                        } else {
                            window.open(audioLinksArray[i], '_blank', 'noopener,noreferrer');
                        }
                    }
                }
            } else {
                showRedditNotification('No audio links found on this post');
            }
        }

        function showRedditNotification(message) {
            const notification = document.createElement('div');
            notification.textContent = message;
            notification.style.cssText = `
                position: fixed;
                top: 20px;
                right: 20px;
                background: #ff9800;
                color: white;
                padding: 15px 25px;
                border-radius: 8px;
                z-index: 10000;
                font-weight: 600;
                box-shadow: 0 4px 16px rgba(0,0,0,0.3);
                animation: slideIn 0.3s ease;
            `;
            document.body.appendChild(notification);

            setTimeout(() => {
                notification.style.animation = 'slideOut 0.3s ease';
                setTimeout(() => notification.remove(), 300);
            }, 2000);
        }

        const style = document.createElement('style');
        style.textContent = `
            @keyframes slideIn {
                from { transform: translateX(100%); opacity: 0; }
                to { transform: translateX(0); opacity: 1; }
            }
            @keyframes slideOut {
                from { transform: translateX(0); opacity: 1; }
                to { transform: translateX(100%); opacity: 0; }
            }
        `;
        document.head.appendChild(style);

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', () => {
                setTimeout(findAndOpenAudioLinks, 1000);
            });
        } else {
            setTimeout(findAndOpenAudioLinks, 1000);
        }
    }
















function initGwasiScript() {
    

    let settings = {
        bgColor1: '#0a0e27',
        bgColor2: '#1a1a2e',
        bgColor3: '#16213e',
        textColor: '#e0e0e0'
    };

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }

    function init() {
        loadSettings();
        createSettingsButton();
        applyStyles();
        observeAndEnhancePosts();
        setupRedditLinkHandler();
    }

    function loadSettings() {
        const saved = GM_getValue('gwasiSettings');
        if (saved) {
            settings = JSON.parse(saved);
        }
    }

    function saveSettings() {
        GM_setValue('gwasiSettings', JSON.stringify(settings));
        updateColors();
    }

    function updateColors() {
        const root = document.documentElement;
        root.style.setProperty('--bg-color-1', settings.bgColor1);
        root.style.setProperty('--bg-color-2', settings.bgColor2);
        root.style.setProperty('--bg-color-3', settings.bgColor3);
        root.style.setProperty('--text-color', settings.textColor);
    }

    function createSettingsButton() {
        const settingsBtn = document.createElement('button');
        settingsBtn.id = 'gwasi-settings-btn';
        settingsBtn.innerHTML = '⚙️';
        settingsBtn.title = 'Interface Settings';
        document.body.appendChild(settingsBtn);

        const modal = document.createElement('div');
        modal.id = 'gwasi-settings-modal';
        modal.style.display = 'none';
        modal.innerHTML = `
            <div class="settings-content">
                <div class="settings-header">
                    <h3>Interface Settings</h3>
                    <button class="close-btn">&times;</button>
                </div>

                <div class="settings-section">
                    <label>Background Gradient Start</label>
                    <input type="color" id="bgColor1" value="${settings.bgColor1}">
                </div>

                <div class="settings-section">
                    <label>Background Gradient Middle</label>
                    <input type="color" id="bgColor2" value="${settings.bgColor2}">
                </div>

                <div class="settings-section">
                    <label>Background Gradient End</label>
                    <input type="color" id="bgColor3" value="${settings.bgColor3}">
                </div>

                <div class="settings-section">
                    <label>Text Color</label>
                    <input type="color" id="textColor" value="${settings.textColor}">
                </div>

                <div class="settings-footer">
                    <button id="reset-settings">Reset to Default</button>
                    <button id="save-settings">Save</button>
                </div>
            </div>
        `;
        document.body.appendChild(modal);

        settingsBtn.onclick = () => {
            modal.style.display = 'flex';
        };

        modal.querySelector('.close-btn').onclick = () => {
            modal.style.display = 'none';
        };

        modal.onclick = (e) => {
            if (e.target === modal) {
                modal.style.display = 'none';
            }
        };

        document.getElementById('save-settings').onclick = () => {
            settings.bgColor1 = document.getElementById('bgColor1').value;
            settings.bgColor2 = document.getElementById('bgColor2').value;
            settings.bgColor3 = document.getElementById('bgColor3').value;
            settings.textColor = document.getElementById('textColor').value;
            saveSettings();
            modal.style.display = 'none';
            showCopyFeedback('Settings saved!');
        };

        document.getElementById('reset-settings').onclick = () => {
            settings = {
                bgColor1: '#0a0e27',
                bgColor2: '#1a1a2e',
                bgColor3: '#16213e',
                textColor: '#e0e0e0'
            };
            document.getElementById('bgColor1').value = settings.bgColor1;
            document.getElementById('bgColor2').value = settings.bgColor2;
            document.getElementById('bgColor3').value = settings.bgColor3;
            document.getElementById('textColor').value = settings.textColor;
            saveSettings();
            showCopyFeedback('Reset to default!');
        };
    }

    function setupRedditLinkHandler() {
        document.addEventListener('click', function(e) {
            let target = e.target;

            while (target && target.tagName !== 'A') {
                target = target.parentElement;
            }

            if (target && target.tagName === 'A' && target.href.includes('reddit.com')) {
                target.setAttribute('target', '_blank');
                target.setAttribute('rel', 'noopener noreferrer');
            }
        }, true);
    }

    function copyToClipboard(text) {
        if (typeof GM_setClipboard !== 'undefined') {
            GM_setClipboard(text);
        } else {
            navigator.clipboard.writeText(text);
        }
        showCopyFeedback();
    }

    function showCopyFeedback(msg = '✓ Copied!') {
        const feedback = document.createElement('div');
        feedback.textContent = msg;
        feedback.style.cssText = `
            position: fixed;
            top: 20px;
            right: 80px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 12px 24px;
            border-radius: 8px;
            z-index: 10000;
            font-weight: 600;
            box-shadow: 0 4px 16px rgba(102, 126, 234, 0.4);
            animation: slideIn 0.3s ease;
        `;
        document.body.appendChild(feedback);
        setTimeout(() => {
            feedback.style.animation = 'slideOut 0.3s ease';
            setTimeout(() => feedback.remove(), 300);
        }, 2000);
    }

    function enhancePost(listItem) {
        if (listItem.dataset.enhanced) return;
        listItem.dataset.enhanced = 'true';

        const textContent = listItem.textContent;

        const dateMatch = textContent.match(/(\d{4}-\d{2}-\d{2})/);
        const sourceMatch = textContent.match(/\d{4}-\d{2}-\d{2}\s+(\S+\s+\d+)/);
        const userLink = listItem.querySelector('a[href*="#q=u:"]');
        const username = userLink ? userLink.textContent : null;

        const fullTitle = listItem.childNodes[listItem.childNodes.length - 1]?.textContent?.trim() || '';
        const tags = fullTitle.match(/\[([^\]]+)\]/g) || [];
        const tagTexts = tags.map(t => t.slice(1, -1));

        let actualTitle = fullTitle.replace(/\[([^\]]+)\]/g, '').trim();

        listItem.innerHTML = '';

        const metaContainer = document.createElement('div');
        metaContainer.className = 'post-meta';

        if (dateMatch) {
            const dateSpan = document.createElement('span');
            dateSpan.className = 'post-date clickable-meta';
            dateSpan.textContent = dateMatch[1];
            dateSpan.title = 'Click to copy';
            dateSpan.onclick = (e) => {
                e.preventDefault();
                e.stopPropagation();
                copyToClipboard(dateMatch[1]);
            };
            metaContainer.appendChild(dateSpan);
        }

        if (sourceMatch) {
            const sourceSpan = document.createElement('span');
            sourceSpan.className = 'post-source clickable-meta';
            sourceSpan.textContent = sourceMatch[1];
            sourceSpan.title = 'Click to copy';
            sourceSpan.onclick = (e) => {
                e.preventDefault();
                e.stopPropagation();
                copyToClipboard(sourceMatch[1]);
            };
            metaContainer.appendChild(sourceSpan);
        }

        const scoreMatch = textContent.match(/\s+(\d+)\s+/);
        if (scoreMatch) {
            const scoreSpan = document.createElement('span');
            scoreSpan.className = 'post-score clickable-meta';
            scoreSpan.textContent = `↑ ${scoreMatch[1]}`;
            scoreSpan.title = 'Click to copy';
            scoreSpan.onclick = (e) => {
                e.preventDefault();
                e.stopPropagation();
                copyToClipboard(scoreMatch[1]);
            };
            metaContainer.appendChild(scoreSpan);
        }

        if (username) {
            const userSpan = document.createElement('span');
            userSpan.className = 'post-user clickable-meta';
            userSpan.textContent = username;
            userSpan.title = 'Click to copy';
            userSpan.onclick = (e) => {
                e.preventDefault();
                e.stopPropagation();
                copyToClipboard(username);
            };
            metaContainer.appendChild(userSpan);
        }

        const flairSpans = listItem.parentElement.querySelectorAll('.flair');
        flairSpans.forEach(flair => {
            metaContainer.appendChild(flair.cloneNode(true));
        });

        listItem.appendChild(metaContainer);

        if (tagTexts.length > 0) {
            const tagsContainer = document.createElement('div');
            tagsContainer.className = 'post-tags';

            tagTexts.forEach(tag => {
                const tagBtn = document.createElement('button');
                tagBtn.className = 'tag-button';
                tagBtn.textContent = tag;
                tagBtn.title = 'Click to copy';
                tagBtn.onclick = (e) => {
                    e.preventDefault();
                    e.stopPropagation();
                    copyToClipboard(`[${tag}]`);
                };
                tagsContainer.appendChild(tagBtn);
            });

            listItem.appendChild(tagsContainer);
        }

        if (actualTitle) {
            const titleContainer = document.createElement('div');
            titleContainer.className = 'post-title-container';
            titleContainer.title = 'Click to copy';
            titleContainer.onclick = (e) => {
                e.preventDefault();
                e.stopPropagation();
                copyToClipboard(actualTitle);
            };

            const titleDiv = document.createElement('div');
            titleDiv.className = 'post-title';
            titleDiv.textContent = actualTitle;

            titleContainer.appendChild(titleDiv);
            listItem.appendChild(titleContainer);
        }
    }

    function observeAndEnhancePosts() {
        document.querySelectorAll('ul > a > li').forEach(enhancePost);

        const observer = new MutationObserver((mutations) => {
            mutations.forEach((mutation) => {
                mutation.addedNodes.forEach((node) => {
                    if (node.nodeType === 1) {
                        if (node.matches && node.matches('ul > a > li')) {
                            enhancePost(node);
                        }
                        node.querySelectorAll && node.querySelectorAll('ul > a > li').forEach(enhancePost);
                    }
                });
            });
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    }

    function applyStyles() {
        updateColors();

        const style = document.createElement('style');
        style.textContent = `
            :root {
                --bg-color-1: ${settings.bgColor1};
                --bg-color-2: ${settings.bgColor2};
                --bg-color-3: ${settings.bgColor3};
                --text-color: ${settings.textColor};
            }

            * {
                transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.2s ease;
            }

            body {
                background: linear-gradient(135deg, var(--bg-color-1) 0%, var(--bg-color-2) 50%, var(--bg-color-3) 100%) !important;
                background-attachment: fixed !important;
                color: var(--text-color) !important;
                font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
                line-height: 1.6 !important;
                padding: 20px !important;
                max-width: 1400px !important;
                margin: 0 auto !important;
            }

            #gwasi-settings-btn {
                position: fixed;
                top: 20px;
                right: 20px;
                width: 50px;
                height: 50px;
                border-radius: 50%;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                border: none;
                color: white;
                font-size: 24px;
                cursor: pointer;
                box-shadow: 0 4px 16px rgba(102, 126, 234, 0.4);
                z-index: 9999;
                transition: transform 0.3s ease;
            }

            #gwasi-settings-btn:hover {
                transform: scale(1.1) rotate(90deg);
            }

            #gwasi-settings-modal {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                background: rgba(0, 0, 0, 0.8);
                z-index: 10000;
                justify-content: center;
                align-items: center;
            }

            .settings-content {
                background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
                border: 2px solid rgba(102, 126, 234, 0.3);
                border-radius: 16px;
                padding: 30px;
                max-width: 500px;
                width: 90%;
                color: var(--text-color);
            }

            .settings-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-bottom: 25px;
            }

            .settings-header h3 {
                margin: 0;
                font-size: 1.5em;
                color: var(--text-color);
            }

            .close-btn {
                background: none;
                border: none;
                color: var(--text-color);
                font-size: 32px;
                cursor: pointer;
                line-height: 1;
                padding: 0;
            }

            .close-btn:hover {
                color: #667eea;
            }

            .settings-section {
                margin-bottom: 20px;
            }

            .settings-section label {
                display: block;
                margin-bottom: 8px;
                font-weight: 600;
                color: var(--text-color);
            }

            .settings-section input[type="color"] {
                width: 100%;
                height: 50px;
                border: 2px solid rgba(102, 126, 234, 0.3);
                border-radius: 8px;
                cursor: pointer;
                background: transparent;
            }

            .settings-footer {
                display: flex;
                gap: 10px;
                margin-top: 25px;
            }

            .settings-footer button {
                flex: 1;
                padding: 12px;
                border: none;
                border-radius: 8px;
                font-weight: 600;
                cursor: pointer;
                transition: all 0.3s ease;
            }

            #save-settings {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
            }

            #reset-settings {
                background: rgba(255, 255, 255, 0.1);
                color: var(--text-color);
            }

            .settings-footer button:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
            }

            header {
                background: rgba(255, 255, 255, 0.05) !important;
                backdrop-filter: blur(10px) !important;
                padding: 20px 30px !important;
                border-radius: 16px !important;
                margin-bottom: 30px !important;
                border: 1px solid rgba(255, 255, 255, 0.1) !important;
                box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3) !important;
            }

            header h3 {
                font-size: 1.8em !important;
                font-weight: 700 !important;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
                -webkit-background-clip: text !important;
                -webkit-text-fill-color: transparent !important;
                background-clip: text !important;
                display: inline-block !important;
                margin: 0 !important;
            }

            header a {
                color: #667eea !important;
                text-decoration: none !important;
                font-weight: 500 !important;
                padding: 8px 16px !important;
                border-radius: 8px !important;
                background: rgba(102, 126, 234, 0.1) !important;
                transition: all 0.3s ease !important;
            }

            header a:hover {
                background: rgba(102, 126, 234, 0.2) !important;
                transform: translateY(-2px) !important;
            }

            input[type=textbox] {
                background: rgba(255, 255, 255, 0.08) !important;
                backdrop-filter: blur(10px) !important;
                border: 2px solid rgba(102, 126, 234, 0.3) !important;
                border-radius: 12px !important;
                padding: 16px 24px !important;
                font-size: 1.1em !important;
                color: var(--text-color) !important;
                width: 100% !important;
                margin-bottom: 20px !important;
                box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
            }

            input[type=textbox]:focus {
                outline: none !important;
                border-color: #667eea !important;
                box-shadow: 0 4px 24px rgba(102, 126, 234, 0.3) !important;
            }

            input[type=textbox]::placeholder {
                color: rgba(224, 224, 224, 0.5) !important;
            }

            div.buttons {
                background: rgba(255, 255, 255, 0.05) !important;
                backdrop-filter: blur(10px) !important;
                padding: 16px !important;
                border-radius: 12px !important;
                margin-bottom: 16px !important;
                border: 1px solid rgba(255, 255, 255, 0.08) !important;
                display: flex !important;
                align-items: center !important;
                gap: 12px !important;
                flex-wrap: wrap !important;
            }

            span.radio {
                background: rgba(255, 255, 255, 0.08) !important;
                border: 1px solid rgba(102, 126, 234, 0.3) !important;
                border-radius: 10px !important;
                padding: 4px !important;
                display: inline-flex !important;
                gap: 4px !important;
            }

            span.radio span {
                padding: 8px 16px !important;
                border-radius: 8px !important;
                cursor: pointer !important;
                font-weight: 500 !important;
                user-select: none !important;
                color: var(--text-color) !important;
            }

            span.radio span:hover {
                background: rgba(102, 126, 234, 0.2) !important;
            }

            span.radio input:checked + span {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
                color: #fff !important;
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4) !important;
            }

            label.button span {
                background: rgba(255, 255, 255, 0.08) !important;
                border: 1px solid rgba(102, 126, 234, 0.3) !important;
                border-radius: 8px !important;
                padding: 8px 16px !important;
                cursor: pointer !important;
                font-weight: 500 !important;
                display: inline-block !important;
                user-select: none !important;
                color: var(--text-color) !important;
            }

            label.button span:hover {
                background: rgba(102, 126, 234, 0.2) !important;
                transform: translateY(-2px) !important;
            }

            label.button input:checked + span {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
                color: #fff !important;
                border-color: transparent !important;
                box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4) !important;
            }

            #filters {
                max-height: 180px !important;
                overflow-y: auto !important;
                overflow-x: hidden !important;
                padding-right: 8px !important;
            }

            #filters::-webkit-scrollbar {
                width: 8px;
            }

            #filters::-webkit-scrollbar-track {
                background: rgba(255, 255, 255, 0.05);
                border-radius: 10px;
            }

            #filters::-webkit-scrollbar-thumb {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                border-radius: 10px;
            }

            ul {
                display: grid !important;
                gap: 16px !important;
            }

            ul > a > li {
                background: rgba(255, 255, 255, 0.05) !important;
                backdrop-filter: blur(10px) !important;
                border: 1px solid rgba(102, 126, 234, 0.2) !important;
                border-radius: 12px !important;
                padding: 20px !important;
                transition: all 0.3s ease !important;
                box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
                text-align: center !important;
            }

            ul > a > li:hover {
                background: rgba(255, 255, 255, 0.08) !important;
                border-color: #667eea !important;
                transform: translateY(-4px) !important;
                box-shadow: 0 8px 24px rgba(102, 126, 234, 0.3) !important;
            }

            ul > a:visited > li {
                background: rgba(118, 75, 162, 0.1) !important;
                border-color: rgba(118, 75, 162, 0.3) !important;
            }

            .post-meta {
                display: flex;
                flex-wrap: wrap;
                gap: 10px;
                align-items: center;
                justify-content: center;
                margin-bottom: 16px;
                font-size: 0.9em;
            }

            .clickable-meta {
                cursor: pointer;
                padding: 6px 12px;
                border-radius: 6px;
                background: rgba(255, 255, 255, 0.08);
                border: 1px solid rgba(102, 126, 234, 0.2);
                transition: all 0.2s ease;
                user-select: none;
                color: var(--text-color);
            }

            .clickable-meta:hover {
                background: rgba(102, 126, 234, 0.2);
                border-color: #667eea;
                transform: scale(1.05);
            }

            .clickable-meta:active {
                transform: scale(0.95);
            }

            .post-date {
                font-weight: 600;
                font-family: 'Fira Code', monospace;
            }

            .post-source {
                font-weight: 600;
            }

            .post-score {
                font-weight: 600;
            }

            .post-user {
                font-weight: 600;
            }

            .flair {
                display: inline-block;
                padding: 6px 12px;
                border-radius: 6px;
                font-size: 0.85em;
                font-weight: 600;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
            }

            .audio {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: #fff;
            }

            .script {
                background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
                color: #fff;
            }

            .post-tags {
                display: flex;
                flex-wrap: wrap;
                gap: 6px;
                margin: 16px 0;
                justify-content: center;
            }

            .tag-button {
                background: rgba(102, 126, 234, 0.15);
                border: 1px solid rgba(102, 126, 234, 0.3);
                color: var(--text-color);
                padding: 6px 12px;
                border-radius: 6px;
                font-size: 0.85em;
                cursor: pointer;
                transition: all 0.2s ease;
                font-weight: 500;
                white-space: nowrap;
            }

            .tag-button:hover {
                background: rgba(102, 126, 234, 0.3);
                border-color: #667eea;
                transform: translateY(-2px);
                box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
            }

            .tag-button:active {
                transform: translateY(0);
            }

            .post-title-container {
                margin-top: 16px;
                padding: 16px 20px;
                background: linear-gradient(135deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.15) 100%);
                border: 2px solid rgba(102, 126, 234, 0.3);
                border-radius: 10px;
                cursor: pointer;
                transition: all 0.3s ease;
                text-align: center;
            }

            .post-title-container:hover {
                background: linear-gradient(135deg, rgba(102, 126, 234, 0.25) 0%, rgba(118, 75, 162, 0.25) 100%);
                border-color: #667eea;
                transform: scale(1.02);
                box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
            }

            .post-title-container:active {
                transform: scale(0.98);
            }

            .post-title {
                font-size: 1.35em;
                font-weight: 700;
                color: var(--text-color);
                line-height: 1.5;
                letter-spacing: 0.3px;
            }

            @keyframes slideIn {
                from {
                    transform: translateX(100%);
                    opacity: 0;
                }
                to {
                    transform: translateX(0);
                    opacity: 1;
                }
            }

            @keyframes slideOut {
                from {
                    transform: translateX(0);
                    opacity: 1;
                }
                to {
                    transform: translateX(100%);
                    opacity: 0;
                }
            }

            li li {
                background: rgba(255, 255, 255, 0.03);
                border: 1px solid rgba(102, 126, 234, 0.2);
                border-radius: 8px;
                margin: 12px 0;
                padding: 12px;
            }

            a {
                color: var(--text-color);
                text-decoration: none;
            }

            code {
                background: rgba(102, 126, 234, 0.2);
                color: var(--text-color);
                padding: 4px 8px;
                border-radius: 6px;
                font-family: 'Fira Code', monospace;
                font-size: 0.9em;
            }

            /* Help section with fixed height and scroll */
            #help {
                background: rgba(255, 255, 255, 0.05) !important;
                backdrop-filter: blur(10px) !important;
                border: 1px solid rgba(102, 126, 234, 0.2) !important;
                border-radius: 12px !important;
                padding: 16px !important;
                margin-bottom: 16px !important;
                max-height: 200px !important;
                overflow-y: auto !important;
                overflow-x: hidden !important;
            }

            #help::-webkit-scrollbar {
                width: 8px;
            }

            #help::-webkit-scrollbar-track {
                background: rgba(255, 255, 255, 0.05);
                border-radius: 10px;
            }

            #help::-webkit-scrollbar-thumb {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                border-radius: 10px;
            }

            #help li {
                color: var(--text-color);
            }

            #help p {
                color: var(--text-color);
                margin-bottom: 12px;
            }

            #help ul {
                display: block !important;
            }






#help ul li {
                text-align: left;
                padding: 8px 0;
                border: none;
                background: transparent;
                margin: 0;
            }

            /* Advanced section styling */
            #advanced {
                background: rgba(255, 255, 255, 0.05) !important;
                backdrop-filter: blur(10px) !important;
                border: 1px solid rgba(102, 126, 234, 0.2) !important;
                border-radius: 12px !important;
                padding: 16px !important;
                margin-bottom: 16px !important;
            }

            em {
                color: var(--text-color);
                font-style: normal;
                font-size: 0.9em;
                font-weight: 500;
            }

            .results {
                color: var(--text-color);
            }

            ::-webkit-scrollbar {
                width: 12px;
            }

            ::-webkit-scrollbar-track {
                background: rgba(255, 255, 255, 0.05);
                border-radius: 10px;
            }

            ::-webkit-scrollbar-thumb {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                border-radius: 10px;
            }

            @media (max-width: 768px) {
                body {
                    padding: 12px !important;
                }

                #filters {
                    max-height: 150px !important;
                }

                #help {
                    max-height: 180px !important;
                }

                .post-tags {
                    gap: 4px;
                }

                .tag-button {
                    padding: 4px 8px;
                    font-size: 0.8em;
                }

                .post-title {
                    font-size: 1.15em;
                }

                .post-title-container {
                    padding: 14px 16px;
                }

                #gwasi-settings-btn {
                    width: 45px;
                    height: 45px;
                    font-size: 20px;
                    top: 15px;
                    right: 15px;
                }

                .settings-content {
                    padding: 20px;
                }
            }
        `;

        document.head.appendChild(style);
    }
}})();