{"id":7726,"date":"2025-10-20T13:21:13","date_gmt":"2025-10-20T13:21:13","guid":{"rendered":"https:\/\/twobirdsonestoned.co\/?page_id=7726"},"modified":"2025-10-21T12:09:01","modified_gmt":"2025-10-21T12:09:01","slug":"whos-typing-da-words","status":"publish","type":"page","link":"https:\/\/twobirdsonestoned.co\/de\/whos-typing-da-words\/","title":{"rendered":"Who&#8217;s typing da words?"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7726\" class=\"elementor elementor-7726\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a1098dc e-flex e-con-boxed e-con e-parent\" data-id=\"a1098dc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1485cea elementor-widget elementor-widget-html\" data-id=\"1485cea\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \n    <!-- Primary Meta Tags -->\n    <title>Who's Typing Da Words - Two Birds One Stoned | Meet James<\/title>\n    <meta name=\"title\" content=\"Who's Typing Da Words - Two Birds One Stoned | Meet James\">\n    <meta name=\"description\" content=\"Meet James Gallagher, the voice behind Two Birds One Stoned. From Dublin tech to Australian cannabis education, this is the journey that shaped the platform.\">\n    <meta name=\"keywords\" content=\"James Gallagher, Two Birds One Stoned, cannabis education, founder story, cannabis advocate\">\n    <meta name=\"author\" content=\"James Gallagher\">\n    <meta name=\"robots\" content=\"index, follow\">\n    \n    <!-- Canonical URL -->\n    <link rel=\"canonical\" href=\"https:\/\/twobirdsonestoned.co\/who\/\">\n    \n    <!-- Favicon and Icons -->\n    <link rel=\"icon\" type=\"image\/x-icon\" href=\"\/favicon.ico\">\n    \n    <!-- Fonts -->\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;600;700&display=swap\" rel=\"stylesheet\">\n    \n    <style>\n        \/* Reset and base styles *\/\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        html {\n            background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%, #0a0a0a 100%);\n            width: 100%;\n            min-height: 100vh;\n            margin: 0;\n            padding: 0;\n            scroll-behavior: smooth;\n        }\n\n        body {\n            font-family: 'Montserrat', sans-serif;\n            background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%, #0a0a0a 100%);\n            color: #fff;\n            width: 100%;\n            min-height: 100vh;\n            margin: 0;\n            padding: 0;\n            line-height: 1.6;\n        }\n\n        \/* VIDEO MODAL STYLES *\/\n        .video-modal {\n            display: none;\n            position: fixed;\n            z-index: 10000;\n            left: 0;\n            top: 0;\n            width: 100%;\n            height: 100%;\n            background-color: rgba(0, 0, 0, 0.9);\n            backdrop-filter: blur(5px);\n        }\n\n        .video-modal-content {\n            position: relative;\n            margin: 2% auto;\n            width: 90%;\n            max-width: 800px;\n            height: 80vh;\n            max-height: 600px;\n            background: #1d1d1d;\n            border-radius: 15px;\n            border: 2px solid rgba(156,175,136,0.3);\n            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);\n            overflow: hidden;\n            display: flex;\n            flex-direction: column;\n        }\n\n        .video-modal-header {\n            padding: 1rem 1.5rem;\n            background: rgba(244, 197, 66, 0.1);\n            border-bottom: 1px solid rgba(156,175,136,0.3);\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n        }\n\n        .video-modal-title {\n            color: #F4C542;\n            font-size: 1.2rem;\n            font-weight: 600;\n            margin: 0;\n        }\n\n        .video-modal-close {\n            background: none;\n            border: none;\n            color: #fff;\n            font-size: 2rem;\n            cursor: pointer;\n            padding: 0;\n            width: 40px;\n            height: 40px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            border-radius: 50%;\n            transition: all 0.3s ease;\n        }\n\n        .video-modal-close:hover {\n            background: rgba(255, 255, 255, 0.1);\n            transform: rotate(90deg);\n        }\n\n        .video-container {\n            flex: 1;\n            position: relative;\n            background: #000;\n        }\n\n        .video-container iframe {\n            width: 100%;\n            height: 100%;\n            border: none;\n        }\n\n        \/* Light theme styles for modal *\/\n        .light-theme .video-modal-content {\n            background: #ffffff;\n            border: 2px solid #000000;\n        }\n\n        .light-theme .video-modal-header {\n            background: rgba(184, 134, 11, 0.1);\n            border-bottom: 1px solid #000000;\n        }\n\n        .light-theme .video-modal-title {\n            color: #B8860B;\n        }\n\n        .light-theme .video-modal-close {\n            color: #2A2A2A;\n        }\n\n        .light-theme .video-modal-close:hover {\n            background: rgba(0, 0, 0, 0.1);\n        }\n\n        \/* Video link styling *\/\n        .video-link {\n            color: #4CAF50;\n            text-decoration: underline;\n            cursor: pointer;\n            transition: color 0.3s ease;\n            font-weight: 500;\n        }\n\n        .video-link:hover {\n            color: #45a049;\n        }\n\n        .light-theme .video-link {\n            color: #B8860B;\n        }\n\n        .light-theme .video-link:hover {\n            color: #A0750A;\n        }\n\n        \/* PAGE SECTION *\/\n        .about-page {\n            background: transparent;\n            margin: 0;\n            min-height: 100vh;\n            width: 100%;\n            padding: 0;\n            position: relative;\n            padding-top: 150px;\n            padding-bottom: 4rem;\n        }\n\n        \/* Container *\/\n        .tbos-container {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 0 2rem;\n            width: 100%;\n        }\n\n        \/* Title Section *\/\n        .title-container {\n            margin-bottom: 6rem;\n            text-align: center;\n            opacity: 0;\n            transform: translateY(-20px);\n            transition: all 0.8s ease;\n        }\n\n        .about-page .tbos-section-title {\n            font-family: 'Montserrat', sans-serif;\n            color: #ffffff;\n            word-break: break-word;\n        }\n\n        .page-subtitle {\n            font-size: clamp(12px, 2.5vw, 18px);\n            line-height: 1.4;\n            margin-bottom: 0;\n            margin-top: clamp(20px, 5vw, 30px);\n            text-align: center;\n            color: #E3E3DC;\n            opacity: 0.9;\n        }\n\n        \/* Content Cards *\/\n        .content-card {\n            background-color: #1d1d1d;\n            color: #fff;\n            padding: 2rem;\n            border-radius: 1rem;\n            border: 1px solid rgba(156,175,136,0.3);\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n            margin: 2rem auto;\n            max-width: 800px;\n            transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.6s ease;\n            overflow: hidden;\n            opacity: 0;\n            transform: translateY(30px);\n        }\n\n        .content-card.animate-in {\n            opacity: 1;\n            transform: translateY(0);\n        }\n\n        .content-card:hover {\n            transform: translateY(-4px);\n            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);\n        }\n\n        \/* Content Text *\/\n        .content-text {\n            font-size: 1rem;\n            line-height: 1.6;\n            color: #E3E3DC;\n            margin-bottom: 1.5rem;\n        }\n\n        .content-text:last-child {\n            margin-bottom: 0;\n        }\n\n        \/* Links *\/\n        .content-card a {\n            color: #4CAF50;\n            text-decoration: underline;\n            transition: color 0.3s ease;\n            font-weight: 500;\n        }\n\n        .content-card a:hover {\n            color: #45a049;\n        }\n\n        \/* Theme Toggle *\/\n        .theme-toggle {\n            text-align: center;\n            margin-top: 20px;\n        }\n\n        .theme-toggle button {\n            background: rgba(0,0,0,0.8);\n            border: 2px solid #4CAF50;\n            color: #4CAF50;\n            padding: clamp(8px, 2vw, 12px) clamp(15px, 4vw, 25px);\n            border-radius: 25px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            font-size: clamp(16px, 3vw, 20px);\n            font-weight: bold;\n            font-family: 'Montserrat', sans-serif;\n        }\n\n        .theme-toggle button:hover {\n            background: rgba(76, 175, 80, 0.1);\n            transform: translateY(-2px);\n        }\n\n        \/* Content Break *\/\n        .content-break {\n            height: 3rem;\n            position: relative;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .content-break::before {\n            content: '';\n            width: 200px;\n            height: 2px;\n            background: linear-gradient(90deg, transparent, #F4C542, transparent);\n            border-radius: 1px;\n        }\n\n        \/* Enhanced Typography *\/\n        .content-text strong {\n            color: #F4C542;\n            font-weight: 600;\n        }\n\n        \/* CTA Button *\/\n        .cta-button {\n            display: inline-block;\n            background: linear-gradient(135deg, #4CAF50, #45a049);\n            color: #ffffff;\n            padding: 1.2rem 3.5rem;\n            border-radius: 50px;\n            text-decoration: none;\n            font-weight: 600;\n            font-size: 1.3rem;\n            transition: all 0.3s ease;\n            box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);\n            border: none;\n            cursor: pointer;\n        }\n\n        .cta-button:hover {\n            transform: translateY(-3px) !important;\n            box-shadow: 0 6px 20px rgba(76, 175, 80, 0.4) !important;\n            background: linear-gradient(135deg, #45a049, #3d8b40) !important;\n        }\n\n        \/* CTA Section *\/\n        .cta-section {\n            text-align: center;\n            margin: 4rem auto;\n            max-width: 950px;\n            padding: 2rem;\n        }\n\n        \/* Mobile Responsive *\/\n        @media (max-width: 768px) {\n            .tbos-container {\n                padding: 0 1rem;\n            }\n\n            .content-card {\n                padding: 1.5rem;\n                margin: 2rem auto;\n            }\n\n            .about-page {\n                padding-top: 150px;\n            }\n\n            .cta-button {\n                padding: 1rem 2.5rem;\n                font-size: 1.2rem;\n            }\n        }\n\n        @media (max-width: 480px) {\n            .video-modal-content {\n                margin: 10% auto;\n                width: 98%;\n                height: 60vh;\n                max-height: 400px;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <!-- Audio Elements (Hidden) -->\n    <div style=\"display: none;\">\n        <audio id=\"nightTimeAudio\" preload=\"auto\">\n            <source src=\"https:\/\/twobirdsonestoned.co\/wp-content\/uploads\/2025\/06\/Nighttime-Bird.mp3\" type=\"audio\/mpeg\">\n        <\/audio>\n        \n        <audio id=\"dayTimeAudio\" preload=\"auto\">\n            <source src=\"https:\/\/twobirdsonestoned.co\/wp-content\/uploads\/2025\/06\/Daytime-Bird-.mp3\" type=\"audio\/mpeg\">\n        <\/audio>\n    <\/div>\n\n    <!-- VIDEO MODAL -->\n    <div id=\"videoModal\" class=\"video-modal\">\n        <div class=\"video-modal-content\">\n            <div class=\"video-modal-header\">\n                <h3 id=\"videoModalTitle\" class=\"video-modal-title\">Laden...<\/h3>\n                <button class=\"video-modal-close\" onclick=\"closeVideoModal()\">\u00d7<\/button>\n            <\/div>\n            <div class=\"video-container\">\n                <iframe id=\"videoIframe\" src=\"\" allowfullscreen><\/iframe>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <section class=\"about-page\">\n        <div class=\"tbos-container\">\n            <!-- Title Section -->\n            <div class=\"title-container\">\n                <h1 class=\"tbos-section-title translation-block\" style=\"font-size: clamp(28px, 8vw, 48px); font-weight: bold; margin: 0 0 25px 0; text-shadow: 2px 2px 8px rgba(0,0,0,0.8); line-height: 1.1; text-align: center; padding: 0; display: block; width: 100%; clear: both; background: none; border-radius: 0; box-shadow: none; max-width: none; margin-left: auto; margin-right: auto;\"><span>WER<\/span> <span>SCHREIBT<\/span> <span>DAS HIER?<\/span><\/h1>\n                <p class=\"page-subtitle\">Iss dein Gem\u00fcse<\/p>\n                \n                <!-- Theme Toggle -->\n                <div class=\"theme-toggle\">\n                    <button onclick=\"toggleThemeAndText()\" id=\"theme-toggle\">\ud83c\udf19<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Content Break -->\n            <div class=\"content-break\"><\/div>\n\n            <!-- Intro Section -->\n            <div class=\"content-card\">\n                <p class=\"content-text\"><span class=\"video-link\" onclick=\"openVideoModal('JBNHQzSl3GM', 'Ah me neck')\">Ah me neckkkkk<\/span>.<\/p>\n                <p class=\"content-text\">Also hier bin ich, Bangkok, 20:25 Uhr am 20. Oktober 2025, am Tippen in Google Docs. Irgendwie ein voller Kreis ehrlich gesagt. Als ich beschloss, Leuten was \u00fcber das Kraut beizubringen, war Google Docs wo alles anfing. War so viel Arbeit die Website so hinzukriegen wie ich will, funktional, Videos wie du willst, geschriebenen Content zu bearbeiten usw usw. Ich k\u00f6nnte echt endlos labern aber mach ich nicht.<\/p>\n                <p class=\"content-text\">Seit gestern war das was unten steht f\u00fcr die '\u00dcber uns' Seite gedacht. Fand nicht dass es passt, ist pers\u00f6nlicher, mehr \u00fcber den Kerl der die W\u00f6rter tippt :L Erinnerst du dich an Textnachrichten mit denen drin schicken hahaha :L :L :O<\/p>\n                <p class=\"content-text\">Anyway yea I didnt think it fit there so I've given it's own page. Easy to do when you figure out how to build the website. Shoutout Claude and its early coding capabilities. Everything feels like it's moving 100mph these days. It's really just a quick snapshot of what I've been doing for the last while. Not going to add or change things because I can't be arsed and been at this long enough. So yea, a bit about the person who built the first version of this website and what I've been at.<\/p>\n            <\/div>\n\n            <!-- The Journey Content -->\n            <div class=\"content-card\">\n                <p class=\"content-text\">Eine sehr kurze \u00dcbersicht: Ich bin in Irland aufgewachsen und hatte r\u00fcckblickend extrem viel Gl\u00fcck. Finanzieller Komfort, gute Bildung und ein stabiles Zuhause. Mehr kann man sich beim Aufwachsen nicht w\u00fcnschen, auch wenn das erst mit dem Alter klarer wird.<\/p>\n                \n                <p class=\"content-text translation-block\">Als ich aufwuchs, spielte ich viel Sport, haupts\u00e4chlich <span class=\"video-link\">Hurling<\/span> &amp; <span class=\"video-link\">Gaelic Football<\/span>, hing mit den Jungs ab, habe ein paar Noobs quickscoped, habe mich durch das Bildungssystem gewurschtelt und bin die meisten Wochenenden trinken gegangen. Nebenbei habe ich wahrscheinlich auch ein paar Grenzen \u00fcberschritten. Nichts allzu Wildes, nur die \u00fcbliche Mischung aus guten Zeiten und Lektionen, die zum Erwachsenwerden geh\u00f6ren. All das hat wahrscheinlich gepr\u00e4gt, wie ich heute \u00fcber Dinge denke.<\/p>\n                \n                <p class=\"content-text\">Nach meinem Abschluss an der University of Limerick verbrachte ich meine fr\u00fche Karriere in Dublins Tech-Szene. Dank der Steueranreize der irischen Regierung wurde die Stadt ein Magnet f\u00fcr Unternehmen wie Google und f\u00fcr Leute wie mich, die Chancen nachjagten. Ein kurzer Verkaufsvertrag dort wurde zu ein paar pr\u00e4genden Jahren. Ich bekam Einblicke die ich nicht h\u00e4tte planen k\u00f6nnen, und zu der Zeit f\u00fchlte sich das Leben an als w\u00e4re es auf Kurs.<\/p>\n                \n                <p class=\"content-text\">Dann machte das Leben Lebens-Dinge. Nach einer Phase von Chaos, Reflexion und dem Herausfinden von Dingen hatte ich die Liebe f\u00fcr alles verloren, was ich in meinem Leben tat. Die brutale Frage: W\u00fcrde ich meine gesamte Karriere darauf aufbauen, Dinge zu verkaufen, die mir im Grunde nichts bedeuteten, nur weil es finanzielle Sicherheit bedeutete? Diese Vision meiner Zukunft machte mir Angst, also lautete die Antwort nein.<\/p>\n                \n                <p class=\"content-text\">Ich wollte meine Interessen erkunden. Aber was zum Teufel waren meine Interessen?<\/p>\n                \n                <p class=\"content-text translation-block\">Nun, w\u00e4hrend ich eines Abends in Dublin spazieren ging und einen alten Joint rauchte, kam<strong style=\"font-weight: 600 !important\"> ein extrem gut getimter<\/strong> <a href=\"https:\/\/open.spotify.com\/episode\/6ef7aaNiEm70KG8eWbnZVR?si=55800e7498804f1a\" target=\"_blank\">David McWilliams Podcast<\/a> meinen Weg. Dieser bestimmte Podcast hat etwas in mir entfacht, eine Richtung, die ich erkunden konnte. Cannabis. Also an dich David, go raibh m\u00edle maith agat se\u00f1or.<\/p>\n                \n                <p class=\"content-text translation-block\">Nicht lange nachdem ich diesen Podcast geh\u00f6rt hatte, k\u00fcndigte ich meinen Job bei Google und verbrachte Monate mit Reisen durch S\u00fcd- und Mittelamerika. Ich konnte Orte wie Kolumbien, Nicaragua, Belize, Peru &amp; Mexiko erleben, ehrlich gesagt so ein interessanter Teil der Welt. <a href=\"https:\/\/one-mans-thoughts.notion.site\/Quitting-my-job-Travelling-South-Central-America-Moving-to-Australia-3bdc5b5cce5d42adb028bcf5db3dad21\" target=\"_blank\">Ich hab ein St\u00fcck dar\u00fcber geschrieben da hinzugehen<\/a> vorher und ich kann es nicht genug empfehlen. Erinnerungen gemacht mit einigen tollen Freunden und zuf\u00e4lligen Fremden unterwegs.<\/p>\n                \n                <p class=\"content-text\">Dann rief Australien (wie es bei der H\u00e4lfte Irlands tut). Ich landete in der Baubranche, Motors\u00e4ge in einer Hand, Presslufthammer in der anderen (bist du ABN oder TFN Kumpel). Aber der andere Teil Australiens rief, also kaufte ich einen 4x4, baute ein Bett hinten rein, und fuhr aufs Land. Das war auch eine Erfahrung gelinde gesagt.. Nach vier Monaten hatte ich eine Panne im Outback und musste nach Sydney zur\u00fcck, den Schwanz zwischen den Beinen. Diese dem\u00fctigende Erfahrung und R\u00fcckschlag \u00f6ffnete tats\u00e4chlich die T\u00fcr zu Australiens medizinischer Cannabis-Industrie. Hier verbrachte ich zwei Jahre als Schwamm und lernte einfach so viel wie m\u00f6glich.<\/p>\n                \n                <p class=\"content-text\">Die letzten acht Monate bin ich durch Asien gereist, Laptop in der Hand, remote arbeitend bis ich vor kurzem zur unabh\u00e4ngigen Beratung gewechselt bin. Ich hatte das Gl\u00fcck an Orten wie China, Thailand und Vietnam zu leben. Unterwegs spielte ich Hurling in Hong Kong und Vietnam, und Gaelic Football in Taiwan und Kuala Lumpur, Verletzungen inklusive (Schulter und Rippe, shoutout Asia GAA). Es war alles etwas verr\u00fcckt ehrlich gesagt, zu realisieren was da drau\u00dfen ist. Ich komme darauf zur\u00fcck aber ehrlich, geh f\u00fcr eine Weile in Asien leben. Deine Communities sind schon hier und warten.<\/p>\n                \n                <p class=\"content-text\">Aber ja, all das verbindet die Punkte zu dem Ort, an dem ich jetzt bin.<\/p>\n                \n                <p class=\"content-text\">Die Arbeit im Cannabis-Bereich \u00f6ffnete mir die Augen. Ich sah, wie viele Menschen Cannabis nicht zur Flucht nutzten, sondern um Schmerzen, Stress und Krankheiten zu bew\u00e4ltigen und wie andere es nutzten, um langsamer zu werden, pr\u00e4sent zu sein und das Leben tats\u00e4chlich ein bisschen mehr zu genie\u00dfen. Ich sah auch, wie wenig die breite Welt dar\u00fcber verstand. Die Gespr\u00e4che waren entweder zu klinisch oder zu Kiffer-m\u00e4\u00dfig. Es gab keine Mitte, keinen Raum f\u00fcr ehrliche, ausgewogene Diskussionen.<\/p>\n                \n                <p class=\"content-text\">Daf\u00fcr ist diese Website da. Es geht nicht darum, dir zu sagen, dass Cannabis makellos ist oder dass es ein Wundermittel ist. Ich bin hier, um Menschen einen Ort zu geben, wo sie lernen, denken, hinterfragen und vielleicht Dinge ein bisschen anders sehen k\u00f6nnen als zuvor.<\/p>\n            <\/div>\n\n            <!-- Go Exploring CTA -->\n            <div class=\"cta-section\">\n                <a href=\"https:\/\/twobirdsonestoned.co\/de\" class=\"cta-button\">\n                    \ud83c\udf3f Geh auf Entdeckung\n                <\/a>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <script>\n        \/\/ Track theme state\n        let isDarkTheme = true;\n\n        \/\/ VIDEO MODAL FUNCTIONS\n        function openVideoModal(videoId, title) {\n            const modal = document.getElementById('videoModal');\n            const iframe = document.getElementById('videoIframe');\n            const modalTitle = document.getElementById('videoModalTitle');\n            \n            modalTitle.textContent = title;\n            iframe.src = `https:\/\/www.youtube.com\/embed\/${videoId}?autoplay=1&rel=0&modestbranding=1`;\n            modal.style.display = 'block';\n            document.body.style.overflow = 'hidden';\n        }\n\n        function closeVideoModal() {\n            const modal = document.getElementById('videoModal');\n            const iframe = document.getElementById('videoIframe');\n            \n            iframe.src = '';\n            modal.style.display = 'none';\n            document.body.style.overflow = '';\n        }\n\n        window.onclick = function(event) {\n            const modal = document.getElementById('videoModal');\n            if (event.target === modal) {\n                closeVideoModal();\n            }\n        }\n\n        document.addEventListener('keydown', function(event) {\n            if (event.key === 'Escape') {\n                closeVideoModal();\n            }\n        });\n\n        function toggleThemeAndText() {\n            const button = document.getElementById('theme-toggle');\n            const currentEmoji = button.textContent.trim();\n            \n            if (currentEmoji === '\ud83c\udf19') {\n                button.textContent = '\u2600\ufe0f';\n                playAudio('dayTimeAudio');\n                isDarkTheme = false;\n            } else {\n                button.textContent = '\ud83c\udf19';\n                playAudio('nightTimeAudio');\n                isDarkTheme = true;\n            }\n            \n            toggleTheme();\n        }\n\n        function playAudio(audioId) {\n            const audio = document.getElementById(audioId);\n            \n            if (audio) {\n                audio.currentTime = 0;\n                const playPromise = audio.play();\n                \n                if (playPromise !== undefined) {\n                    playPromise.then(() => {\n                        console.log(`${audioId} played successfully`);\n                    }).catch(error => {\n                        console.log(`Audio play failed for ${audioId}:`, error);\n                        showVisualFeedback(audioId);\n                    });\n                }\n            }\n        }\n\n        function showVisualFeedback(audioId) {\n            const button = document.getElementById('theme-toggle');\n            const originalTransform = button.style.transform;\n            \n            button.style.transform = 'scale(1.1)';\n            button.style.transition = 'transform 0.1s ease';\n            \n            setTimeout(() => {\n                button.style.transform = originalTransform;\n                button.style.transition = 'all 0.3s ease';\n            }, 100);\n        }\n\n        function toggleTheme() {\n            const body = document.body;\n            const html = document.documentElement;\n            const contentCards = document.querySelectorAll('.content-card');\n            const title = document.querySelector('.tbos-section-title');\n            const subtitle = document.querySelector('.page-subtitle');\n            const toggleButton = document.getElementById('theme-toggle');\n            \n            \/\/ These elements don't exist on this page but keeping for consistency\n            const header = document.querySelector('.tbos-header');\n            const headerNavLinks = document.querySelectorAll('.tbos-nav a');\n            const headerSocialLinks = document.querySelectorAll('.tbos-socials a');\n            const dropdownContent = document.querySelectorAll('.dropdown-content');\n            const hamburgerLines = document.querySelectorAll('.hamburger-line');\n            \n            const mobileMenu = document.querySelector('.mobile-menu');\n            const mobileMenuLinks = document.querySelectorAll('.mobile-menu a');\n            const mobileSocialLinks = document.querySelectorAll('.mobile-socials a');\n            \n            const footerCardWrapper = document.querySelector('.footer-card-wrapper');\n            const footerTitle = document.querySelector('.footer-card h4');\n            const footerText = document.querySelectorAll('.footer-card p');\n            const footerLinks = document.querySelectorAll('.footer-bottom-row a');\n            const footerSocialLinks = document.querySelectorAll('.footer-social-group a');\n            \n            if (!isDarkTheme) {\n                \/\/ LIGHT THEME\n                console.log('Applying LIGHT theme');\n                \n                body.classList.add('light-theme');\n                \n                html.style.setProperty('background', 'linear-gradient(135deg, #f8f6f0 0%, #ede8d8 25%, #e5dcc9 50%, #ede8d8 75%, #f8f6f0 100%)', 'important');\n                body.style.setProperty('background', 'linear-gradient(135deg, #f8f6f0 0%, #ede8d8 25%, #e5dcc9 50%, #ede8d8 75%, #f8f6f0 100%)', 'important');\n                \n                html.style.setProperty('margin', '0', 'important');\n                html.style.setProperty('padding', '0', 'important');\n                body.style.setProperty('margin', '0', 'important');\n                body.style.setProperty('padding', '0', 'important');\n                html.style.setProperty('min-height', '100vh', 'important');\n                body.style.setProperty('min-height', '100vh', 'important');\n                \n                if (header) {\n                    header.style.setProperty('background', '#ffffff', 'important');\n                    header.style.setProperty('border', '2px solid #000000', 'important');\n                }\n                \n                headerNavLinks.forEach(link => {\n                    link.style.setProperty('color', '#2A2A2A', 'important');\n                });\n                \n                headerSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#2A2A2A', 'important');\n                });\n                \n                dropdownContent.forEach(dropdown => {\n                    dropdown.style.setProperty('background', '#ffffff', 'important');\n                    dropdown.style.setProperty('border', '2px solid #000000', 'important');\n                    \n                    const dropdownLinks = dropdown.querySelectorAll('a');\n                    dropdownLinks.forEach(link => {\n                        link.style.setProperty('color', '#2A2A2A', 'important');\n                    });\n                });\n                \n                hamburgerLines.forEach(line => {\n                    line.style.setProperty('background', '#2A2A2A', 'important');\n                });\n                \n                if (mobileMenu) {\n                    mobileMenu.style.setProperty('background', '#ffffff', 'important');\n                    mobileMenu.style.setProperty('border-left', '2px solid #000000', 'important');\n                }\n                \n                mobileMenuLinks.forEach(link => {\n                    link.style.setProperty('color', '#2A2A2A', 'important');\n                    link.style.setProperty('border-bottom', '1px solid rgba(0, 0, 0, 0.1)', 'important');\n                });\n                \n                mobileSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#2A2A2A', 'important');\n                    link.style.setProperty('background', 'rgba(0, 0, 0, 0.05)', 'important');\n                });\n                \n                if (footerCardWrapper) {\n                    footerCardWrapper.style.setProperty('background', '#ffffff', 'important');\n                    footerCardWrapper.style.setProperty('border', '2px solid #000000', 'important');\n                }\n                \n                if (footerTitle) {\n                    footerTitle.style.setProperty('color', '#B8860B', 'important');\n                }\n                \n                footerText.forEach(text => {\n                    text.style.setProperty('color', '#1a1a1a', 'important');\n                    text.style.setProperty('font-weight', '500', 'important');\n                });\n                \n                footerLinks.forEach(link => {\n                    link.style.setProperty('color', '#000000', 'important');\n                });\n                \n                footerSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#4CAF50', 'important');\n                });\n                \n                contentCards.forEach(card => {\n                    card.style.setProperty('background-color', '#ffffff', 'important');\n                    card.style.setProperty('border', '2px solid #000000', 'important');\n                    card.style.setProperty('color', '#2A2A2A', 'important');\n                    \n                    const texts = card.querySelectorAll('p, .content-text');\n                    texts.forEach(text => {\n                        text.style.setProperty('color', '#1a1a1a', 'important');\n                        text.style.setProperty('font-weight', '500', 'important');\n                    });\n                    \n                    const strongTexts = card.querySelectorAll('strong');\n                    strongTexts.forEach(strong => {\n                        strong.style.setProperty('color', '#000000', 'important');\n                        strong.style.setProperty('font-weight', '600', 'important');\n                    });\n                    \n                    const links = card.querySelectorAll('a');\n                    links.forEach(link => {\n                        link.style.setProperty('color', '#B8860B', 'important');\n                    });\n                    \n                    const videoLinks = card.querySelectorAll('.video-link');\n                    videoLinks.forEach(link => {\n                        link.style.setProperty('color', '#B8860B', 'important');\n                    });\n                });\n                \n                if (title) {\n                    title.style.setProperty('text-shadow', 'none', 'important');\n                    \n                    const spans = title.querySelectorAll('span');\n                    spans.forEach((span, index) => {\n                        if (index === 1) {\n                            span.style.setProperty('color', '#2A2A2A', 'important');\n                        } else {\n                            span.style.setProperty('color', '#B8860B', 'important');\n                        }\n                    });\n                }\n\n                if (subtitle) {\n                    subtitle.style.setProperty('color', '#000000', 'important');\n                    subtitle.style.setProperty('opacity', '1', 'important');\n                }\n\n                const ctaButtons = document.querySelectorAll('.cta-button');\n                ctaButtons.forEach(button => {\n                    button.style.setProperty('background', 'linear-gradient(135deg, #4CAF50, #45a049)', 'important');\n                    button.style.setProperty('color', '#FFFFFF', 'important');\n                    button.style.setProperty('box-shadow', '0 4px 15px rgba(76, 175, 80, 0.3)', 'important');\n                });\n                \n                if (toggleButton) {\n                    toggleButton.style.setProperty('background', '#ffffff', 'important');\n                    toggleButton.style.setProperty('border', '2px solid #B8860B', 'important');\n                    toggleButton.style.setProperty('color', '#B8860B', 'important');\n                }\n                \n            } else {\n                \/\/ DARK THEME\n                console.log('Applying DARK theme');\n                \n                body.classList.remove('light-theme');\n                \n                html.style.setProperty('background', 'linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%, #0a0a0a 100%)', 'important');\n                body.style.setProperty('background', 'linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 25%, #2a2a2a 50%, #1a1a1a 75%, #0a0a0a 100%)', 'important');\n                \n                html.style.setProperty('margin', '0', 'important');\n                html.style.setProperty('padding', '0', 'important');\n                body.style.setProperty('margin', '0', 'important');\n                body.style.setProperty('padding', '0', 'important');\n                html.style.setProperty('min-height', '100vh', 'important');\n                body.style.setProperty('min-height', '100vh', 'important');\n                \n                if (header) {\n                    header.style.setProperty('background', '#1d1d1d', 'important');\n                    header.style.setProperty('border', '1px solid rgba(156,175,136,0.3)', 'important');\n                }\n                \n                headerNavLinks.forEach(link => {\n                    link.style.setProperty('color', '#f5ebd6', 'important');\n                });\n                \n                headerSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#f5ebd6', 'important');\n                });\n                \n                dropdownContent.forEach(dropdown => {\n                    dropdown.style.setProperty('background', '#1d1d1d', 'important');\n                    dropdown.style.setProperty('border', '1px solid rgba(156,175,136,0.3)', 'important');\n                    \n                    const dropdownLinks = dropdown.querySelectorAll('a');\n                    dropdownLinks.forEach(link => {\n                        link.style.setProperty('color', '#f5ebd6', 'important');\n                    });\n                });\n                \n                hamburgerLines.forEach(line => {\n                    line.style.setProperty('background', '#f5ebd6', 'important');\n                });\n                \n                if (mobileMenu) {\n                    mobileMenu.style.setProperty('background', 'rgba(29, 29, 29, 0.98)', 'important');\n                    mobileMenu.style.setProperty('border-left', '1px solid rgba(156,175,136,0.3)', 'important');\n                }\n                \n                mobileMenuLinks.forEach(link => {\n                    link.style.setProperty('color', '#f5ebd6', 'important');\n                    link.style.setProperty('border-bottom', '1px solid rgba(255, 255, 255, 0.1)', 'important');\n                });\n                \n                mobileSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#f5ebd6', 'important');\n                    link.style.setProperty('background', 'rgba(255, 255, 255, 0.05)', 'important');\n                });\n                \n                if (footerCardWrapper) {\n                    footerCardWrapper.style.setProperty('background', '#1d1d1d', 'important');\n                    footerCardWrapper.style.setProperty('border', '1px solid rgba(156,175,136,0.3)', 'important');\n                }\n                \n                if (footerTitle) {\n                    footerTitle.style.setProperty('color', '#F4C542', 'important');\n                }\n                \n                footerText.forEach(text => {\n                    text.style.setProperty('color', '#f5ebd6', 'important');\n                    text.style.setProperty('font-weight', '400', 'important');\n                });\n                \n                footerLinks.forEach(link => {\n                    link.style.setProperty('color', '#4CAF50', 'important');\n                });\n                \n                footerSocialLinks.forEach(link => {\n                    link.style.setProperty('color', '#4CAF50', 'important');\n                });\n                \n                contentCards.forEach(card => {\n                    card.style.setProperty('background-color', '#1d1d1d', 'important');\n                    card.style.setProperty('border', '1px solid rgba(156,175,136,0.3)', 'important');\n                    card.style.setProperty('color', '#fff', 'important');\n                    \n                    const texts = card.querySelectorAll('p, .content-text');\n                    texts.forEach(text => {\n                        text.style.setProperty('color', '#E3E3DC', 'important');\n                        text.style.setProperty('font-weight', '400', 'important');\n                    });\n                    \n                    const strongTexts = card.querySelectorAll('strong');\n                    strongTexts.forEach(strong => {\n                        strong.style.setProperty('color', '#F4C542', 'important');\n                        strong.style.setProperty('font-weight', '600', 'important');\n                    });\n                    \n                    const links = card.querySelectorAll('a');\n                    links.forEach(link => {\n                        link.style.setProperty('color', '#4CAF50', 'important');\n                    });\n\n                    const videoLinks = card.querySelectorAll('.video-link');\n                    videoLinks.forEach(link => {\n                        link.style.setProperty('color', '#4CAF50', 'important');\n                    });\n                });\n                \n                if (title) {\n                    title.style.setProperty('text-shadow', '2px 2px 8px rgba(0,0,0,0.8)', 'important');\n                    \n                    const spans = title.querySelectorAll('span');\n                    spans.forEach((span, index) => {\n                        if (index === 1) {\n                            span.style.setProperty('color', '#F5EBD6', 'important');\n                        } else {\n                            span.style.setProperty('color', '#F4C542', 'important');\n                        }\n                    });\n                }\n\n                if (subtitle) {\n                    subtitle.style.setProperty('color', '#E3E3DC', 'important');\n                    subtitle.style.setProperty('opacity', '0.9', 'important');\n                }\n\n                const ctaButtons = document.querySelectorAll('.cta-button');\n                ctaButtons.forEach(button => {\n                    button.style.setProperty('background', 'linear-gradient(135deg, #4CAF50, #45a049)', 'important');\n                    button.style.setProperty('color', '#FFFFFF', 'important');\n                    button.style.setProperty('box-shadow', '0 4px 15px rgba(76, 175, 80, 0.3)', 'important');\n                });\n                \n                console.log('Applied dark theme CTA styling');\n                \n                if (toggleButton) {\n                    toggleButton.style.setProperty('background', 'rgba(0,0,0,0.8)', 'important');\n                    toggleButton.style.setProperty('border', '2px solid #4CAF50', 'important');\n                    toggleButton.style.setProperty('color', '#4CAF50', 'important');\n                }\n            }\n        }\n\n        \/\/ Initialize page\n        document.addEventListener('DOMContentLoaded', function() {\n            initializeAnimations();\n            toggleTheme();\n            \n            setTimeout(() => {\n                const ctaButtons = document.querySelectorAll('.cta-button');\n                ctaButtons.forEach(button => {\n                    button.style.setProperty('background', 'linear-gradient(135deg, #4CAF50, #45a049)', 'important');\n                    button.style.setProperty('color', '#FFFFFF', 'important');\n                    button.style.setProperty('box-shadow', '0 4px 15px rgba(76, 175, 80, 0.3)', 'important');\n                });\n            }, 100);\n        });\n\n        function initializeAnimations() {\n            setTimeout(() => {\n                const titleContainer = document.querySelector('.title-container');\n                if (titleContainer) {\n                    titleContainer.style.opacity = '1';\n                    titleContainer.style.transform = 'translateY(0)';\n                }\n            }, 200);\n\n            const observer = new IntersectionObserver((entries) => {\n                entries.forEach((entry, index) => {\n                    if (entry.isIntersecting) {\n                        setTimeout(() => {\n                            entry.target.classList.add('animate-in');\n                        }, index * 50);\n                        observer.unobserve(entry.target);\n                    }\n                });\n            }, {\n                threshold: 0.05,\n                rootMargin: '0px 0px -20px 0px'\n            });\n\n            const cards = document.querySelectorAll('.content-card');\n            cards.forEach(card => {\n                observer.observe(card);\n            });\n        }\n    <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Who&#8217;s Typing Da Words &#8211; Two Birds One Stoned | Meet James Loading&#8230; &times; WHO&#8217;S TYPING DA WORDS? Eat your vegtables \ud83c\udf19 Ah me neckkkkk. So here I am, Bangkok, 8:25pm on the 20th of October 2025, typing away in Google Docs. Bit of a full circle moment really. When I first decided to start [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7726","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/pages\/7726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/comments?post=7726"}],"version-history":[{"count":42,"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/pages\/7726\/revisions"}],"predecessor-version":[{"id":7779,"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/pages\/7726\/revisions\/7779"}],"wp:attachment":[{"href":"https:\/\/twobirdsonestoned.co\/de\/wp-json\/wp\/v2\/media?parent=7726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}