{"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\/es\/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\">Cargando...<\/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>\u00bfQUI\u00c9N<\/span> <span>ESCRIBE<\/span> <span>ESTO?<\/span><\/h1>\n                <p class=\"page-subtitle\">Come tus verduras<\/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\">As\u00ed que aqu\u00ed estoy, Bangkok, 8:25pm del 20 de octubre de 2025, escribiendo en Google Docs. Un momento de c\u00edrculo completo en realidad. Cuando decid\u00ed empezar a ense\u00f1ar a la gente sobre la hierba, Google Docs fue donde todo comenz\u00f3. Ha sido mucho intentar que el sitio web se vea como quiero, funcional, videos como quieres, editar contenido escrito, etc etc. Podr\u00eda divagar un mont\u00f3n honestamente pero no lo har\u00e9.<\/p>\n                <p class=\"content-text\">Desde ayer, lo que est\u00e1 escrito abajo estaba pensado para la p\u00e1gina 'Acerca de'. No cre\u00ed que encajaba, es m\u00e1s personal, m\u00e1s sobre el t\u00edo que escribe las palabras :L \u00bfTe acuerdas de mandar mensajes con esos emoticonos? jajaja :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\">Un resumen muy r\u00e1pido: Crec\u00ed en Irlanda y tuve much\u00edsima suerte mir\u00e1ndolo en retrospectiva. Comodidad financiera, buena educaci\u00f3n y un hogar estable. No hay nada m\u00e1s que alguien pueda querer al crecer, aunque solo se vuelve m\u00e1s claro con la edad.<\/p>\n                \n                <p class=\"content-text translation-block\">Al crecer jugu\u00e9 muchos deportes, principalmente <span class=\"video-link\">hurling<\/span> y <span class=\"video-link\">f\u00fatbol ga\u00e9lico<\/span>, pasaba tiempo con los colegas, hac\u00eda quickscopes a algunos noobs, me las arregl\u00e9 en el sistema educativo y sal\u00eda a beber la mayor\u00eda de los fines de semana. Junto con esto, probablemente empuj\u00e9 algunos l\u00edmites en el camino tambi\u00e9n. Nada demasiado salvaje, solo la mezcla habitual de buenos momentos y lecciones que vienen con crecer. Todo lo cual probablemente molde\u00f3 c\u00f3mo pienso sobre las cosas hoy.<\/p>\n                \n                <p class=\"content-text\">Despu\u00e9s de graduarme de la Universidad de Limerick, pas\u00e9 mi carrera temprana en la escena tecnol\u00f3gica de Dubl\u00edn. Gracias a los incentivos fiscales del gobierno irland\u00e9s, la ciudad se convirti\u00f3 en un im\u00e1n para empresas como Google y para gente como yo, persiguiendo oportunidades. Un contrato de ventas corto all\u00ed se convirti\u00f3 en unos a\u00f1os decisivos. Tuve exposici\u00f3n que no podr\u00eda haber planeado, y en ese momento, la vida se sent\u00eda como que estaba en el camino correcto.<\/p>\n                \n                <p class=\"content-text\">Entonces la vida hizo cosas de la vida. Despu\u00e9s de un per\u00edodo de caos, reflexi\u00f3n y descubrir las cosas, hab\u00eda perdido el amor por todo lo que estaba haciendo en mi vida. La pregunta brutal: \u00bfiba a construir toda mi carrera vendiendo cosas que pr\u00e1cticamente no significaban nada para m\u00ed, solo porque significaba seguridad financiera? Esa visi\u00f3n de mi futuro me asust\u00f3, as\u00ed que la respuesta fue no.<\/p>\n                \n                <p class=\"content-text\">Quer\u00eda explorar mis intereses. Pero \u00bfqu\u00e9 demonios eran mis intereses?<\/p>\n                \n                <p class=\"content-text translation-block\">Bueno, mientras caminaba en Dubl\u00edn una tarde, fumando un viejo porro,<strong style=\"font-weight: 600 !important\"> un podcast de<\/strong> <a href=\"https:\/\/open.spotify.com\/episode\/6ef7aaNiEm70KG8eWbnZVR?si=55800e7498804f1a\" target=\"_blank\">David McWilliams<\/a><strong style=\"font-weight: 600 !important\"> extremadamente bien cronometrado<\/strong> lleg\u00f3 a m\u00ed. Ese podcast en particular encendi\u00f3 algo dentro de m\u00ed, una direcci\u00f3n para empezar a explorar. Cannabis. As\u00ed que a ti David, go raibh m\u00edle maith agat se\u00f1or.<\/p>\n                \n                <p class=\"content-text translation-block\">No mucho despu\u00e9s de escuchar ese podcast, dej\u00e9 mi trabajo en Google y pas\u00e9 meses viajando por Am\u00e9rica del Sur y Central. Pude experimentar lugares como Colombia, Nicaragua, Belice, Per\u00fa y M\u00e9xico, honestamente una parte tan interesante del mundo. <a href=\"https:\/\/one-mans-thoughts.notion.site\/Quitting-my-job-Travelling-South-Central-America-Moving-to-Australia-3bdc5b5cce5d42adb028bcf5db3dad21\" target=\"_blank\">He escrito algo sobre ir all\u00ed<\/a> antes y no puedo recomendarlo lo suficiente. Recuerdos hechos con algunos grandes amigos y extra\u00f1os al azar en el camino.<\/p>\n                \n                <p class=\"content-text\">Entonces Australia llam\u00f3 (como le pasa a la mitad de Irlanda). Termin\u00e9 trabajando en construcci\u00f3n, motosierra en una mano, martillo neum\u00e1tico en la otra (\u00bferes ABN o TFN t\u00edo?). Pero la otra parte de Australia estaba llamando, as\u00ed que compr\u00e9 un 4x4, constru\u00ed una cama en la parte de atr\u00e1s, y me dirig\u00ed al campo. Eso tambi\u00e9n fue una experiencia por decir lo menos.. A los cuatro meses me qued\u00e9 tirado en el outback y tuve que retirarme a Sydney, con el rabo entre las piernas. Esa experiencia humillante y ese rev\u00e9s en realidad abrieron la puerta a la industria del cannabis medicinal de Australia. Aqu\u00ed fue donde pas\u00e9 dos a\u00f1os actuando como una esponja y simplemente aprendiendo todo lo que pod\u00eda.<\/p>\n                \n                <p class=\"content-text\">Durante los \u00faltimos ocho meses he estado viajando por Asia, port\u00e1til en mano, trabajando remotamente hasta que recientemente hice el cambio a consultor\u00eda independiente. He tenido la fortuna de vivir en lugares como China, Tailandia y Vietnam. Por el camino, jugu\u00e9 hurling en Hong Kong y Vietnam, y f\u00fatbol ga\u00e9lico en Taiw\u00e1n y Kuala Lumpur, lesiones incluidas (hombro y costilla, un saludo a Asia GAA). Todo ha sido un poco loco siendo honesto, d\u00e1ndome cuenta de lo que hay ah\u00ed fuera. Volver\u00e9 a esto pero honestamente, ve a vivir en Asia un rato. Tus comunidades ya est\u00e1n aqu\u00ed, esperando.<\/p>\n                \n                <p class=\"content-text\">Pero s\u00ed, todo esto conectando los puntos hasta donde estoy ahora.<\/p>\n                \n                <p class=\"content-text\">Trabajar en el espacio del cannabis me abri\u00f3 los ojos. Vi cu\u00e1nta gente usaba cannabis no para escapar, sino para manejar el dolor, el estr\u00e9s y la enfermedad y c\u00f3mo otros lo usaban para desacelerar, estar presentes y realmente disfrutar la vida un poco m\u00e1s. Tambi\u00e9n vi lo poco que el mundo en general entend\u00eda sobre ello. Las conversaciones eran demasiado cl\u00ednicas o demasiado fumetas. No hab\u00eda t\u00e9rmino medio, ning\u00fan espacio para discusiones honestas y equilibradas.<\/p>\n                \n                <p class=\"content-text\">Para eso es este sitio. No se trata de decirte que el cannabis es perfecto o que es alguna cura milagrosa. Estoy aqu\u00ed para darle a la gente un lugar para aprender, pensar, cuestionar y tal vez ver las cosas un poco diferente de como las ve\u00edan antes.<\/p>\n            <\/div>\n\n            <!-- Go Exploring CTA -->\n            <div class=\"cta-section\">\n                <a href=\"https:\/\/twobirdsonestoned.co\/es\" class=\"cta-button\">\n                    \ud83c\udf3f Ve a Explorar\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\/es\/wp-json\/wp\/v2\/pages\/7726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/comments?post=7726"}],"version-history":[{"count":42,"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/pages\/7726\/revisions"}],"predecessor-version":[{"id":7779,"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/pages\/7726\/revisions\/7779"}],"wp:attachment":[{"href":"https:\/\/twobirdsonestoned.co\/es\/wp-json\/wp\/v2\/media?parent=7726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}