{"id":2370,"date":"2025-06-25T06:32:43","date_gmt":"2025-06-25T06:32:43","guid":{"rendered":"https:\/\/crehistor.com\/?page_id=2370"},"modified":"2025-07-05T17:08:01","modified_gmt":"2025-07-05T17:08:01","slug":"blagues","status":"publish","type":"page","link":"https:\/\/crehistor.com\/es\/blagues\/","title":{"rendered":"Chistes"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2370\" class=\"elementor elementor-2370\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7fb2bdf e-con-full e-flex e-con e-parent\" data-id=\"7fb2bdf\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3f64cbc e-flex e-con-boxed e-con e-child\" data-id=\"3f64cbc\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-16551b1 e-con-full e-flex e-con e-child\" data-id=\"16551b1\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e1544b4 e-con-full e-flex e-con e-child\" data-id=\"e1544b4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4842043 elementor-widget elementor-widget-shortcode\" data-id=\"4842043\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@400;500;600;700&family=DM+Sans:wght@400;500;600&display=swap');\n    \n    :root {\n        --bp-font-display: 'Playfair Display', Georgia, serif;\n        --bp-font-body: 'DM Sans', -apple-system, sans-serif;\n        --bp-bg-dark: #0f0f1a;\n        --bp-bg-card: #1a1a2e;\n        --bp-text-primary: #ffffff;\n        --bp-text-secondary: rgba(255,255,255,0.7);\n        --bp-text-muted: rgba(255,255,255,0.5);\n        --bp-accent: #f59e0b;\n        --bp-accent-light: #fbbf24;\n        --bp-accent-glow: rgba(245,158,11,0.3);\n        --bp-border: rgba(255,255,255,0.1);\n        --bp-radius: 20px;\n        --bp-radius-sm: 12px;\n        --bp-transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n    }\n\n    .bp-container {\n        font-family: var(--bp-font-body);\n        background: var(--bp-bg-dark);\n        min-height: 100vh;\n        padding: 30px 20px 60px;\n        position: relative;\n        overflow: hidden;\n        color: var(--bp-text-primary);\n    }\n\n    .bp-container::before {\n        content: '';\n        position: absolute;\n        top: -50%;\n        left: -50%;\n        width: 200%;\n        height: 200%;\n        background: \n            radial-gradient(ellipse at 20% 20%, rgba(245,158,11,0.15) 0%, transparent 50%),\n            radial-gradient(ellipse at 80% 80%, rgba(251,191,36,0.1) 0%, transparent 50%),\n            radial-gradient(ellipse at 50% 50%, rgba(245,158,11,0.05) 0%, transparent 70%);\n        animation: bpBgFloat 20s ease-in-out infinite;\n        pointer-events: none;\n        z-index: 0;\n    }\n\n    @keyframes bpBgFloat {\n        0%, 100% { transform: translate(0, 0); }\n        33% { transform: translate(2%, 2%); }\n        66% { transform: translate(-1%, 1%); }\n    }\n\n    .bp-container > * {\n        position: relative;\n        z-index: 1;\n    }\n\n    \/* Language Bar *\/\n    .bp-lang-bar {\n        max-width: 800px;\n        margin: 0 auto 20px;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        flex-wrap: wrap;\n        gap: 15px;\n    }\n\n    .bp-lang-label {\n        font-size: 14px;\n        color: var(--bp-accent);\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n    }\n\n    .bp-lang-select {\n        background: rgba(255,255,255,0.05);\n        border: 1px solid var(--bp-border);\n        border-radius: 25px;\n        padding: 8px 20px;\n        color: var(--bp-text-primary);\n        font-family: var(--bp-font-body);\n        font-size: 14px;\n        cursor: pointer;\n        transition: var(--bp-transition);\n    }\n\n    .bp-lang-select:hover {\n        border-color: var(--bp-accent);\n        background: rgba(245,158,11,0.1);\n    }\n\n    .bp-lang-select option {\n        background: var(--bp-bg-card);\n        color: var(--bp-text-primary);\n    }\n\n    \/* Header *\/\n    .bp-header {\n        text-align: center;\n        max-width: 800px;\n        margin: 0 auto 30px;\n    }\n\n    .bp-title {\n        font-family: var(--bp-font-display);\n        font-size: clamp(2rem, 5vw, 3rem);\n        font-weight: 600;\n        margin: 0 0 15px;\n        background: linear-gradient(135deg, var(--bp-accent) 0%, var(--bp-accent-light) 100%);\n        -webkit-background-clip: text;\n        -webkit-text-fill-color: transparent;\n        background-clip: text;\n    }\n\n    .bp-subtitle {\n        font-size: 1.1rem;\n        color: var(--bp-text-secondary);\n        margin: 0;\n    }\n\n    \/* Progress Steps *\/\n    .bp-steps {\n        display: flex;\n        justify-content: center;\n        gap: 20px;\n        max-width: 700px;\n        margin: 0 auto 30px;\n        flex-wrap: wrap;\n    }\n\n    .bp-step {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 6px;\n        position: relative;\n    }\n\n    .bp-step-number {\n        width: 36px;\n        height: 36px;\n        border-radius: 50%;\n        background: var(--bp-bg-card);\n        border: 2px solid var(--bp-border);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-weight: 600;\n        font-size: 14px;\n        transition: var(--bp-transition);\n    }\n\n    .bp-step.active .bp-step-number,\n    .bp-step.completed .bp-step-number {\n        background: linear-gradient(135deg, var(--bp-accent), var(--bp-accent-light));\n        border-color: transparent;\n        box-shadow: 0 0 15px var(--bp-accent-glow);\n    }\n\n    .bp-step-label {\n        font-size: 11px;\n        color: var(--bp-text-muted);\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        max-width: 80px;\n        text-align: center;\n    }\n\n    .bp-step.active .bp-step-label {\n        color: var(--bp-accent);\n    }\n\n    \/* Main Card *\/\n    .bp-card {\n        max-width: 800px;\n        margin: 0 auto;\n        background: var(--bp-bg-card);\n        border-radius: var(--bp-radius);\n        border: 1px solid var(--bp-border);\n        padding: 40px;\n        position: relative;\n        overflow: hidden;\n    }\n\n    .bp-card::before {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        height: 4px;\n        background: linear-gradient(90deg, var(--bp-accent), var(--bp-accent-light));\n    }\n\n    \/* Slider *\/\n    .bp-slider {\n        position: relative;\n        max-width: 350px;\n        margin: 0 auto 30px;\n        border-radius: var(--bp-radius);\n        overflow: hidden;\n        box-shadow: 0 20px 50px rgba(0,0,0,0.4);\n    }\n\n    .bp-slider-img {\n        width: 100%;\n        height: 220px;\n        object-fit: cover;\n        display: block;\n        transition: opacity 0.5s ease;\n    }\n\n    .bp-slider-btn {\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        width: 36px;\n        height: 36px;\n        border-radius: 50%;\n        background: rgba(255,255,255,0.15);\n        backdrop-filter: blur(10px);\n        border: 1px solid rgba(255,255,255,0.2);\n        color: white;\n        font-size: 16px;\n        cursor: pointer;\n        transition: var(--bp-transition);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .bp-slider-btn:hover {\n        background: rgba(245,158,11,0.5);\n        border-color: var(--bp-accent);\n    }\n\n    .bp-slider-prev { left: 10px; }\n    .bp-slider-next { right: 10px; }\n\n    .bp-slider-dots {\n        position: absolute;\n        bottom: 10px;\n        left: 50%;\n        transform: translateX(-50%);\n        display: flex;\n        gap: 8px;\n        z-index: 2;\n    }\n\n    .bp-slider-dot {\n        width: 8px;\n        height: 8px;\n        border-radius: 50%;\n        background: rgba(255,255,255,0.4);\n        cursor: pointer;\n        transition: var(--bp-transition);\n    }\n\n    .bp-slider-dot.active {\n        background: var(--bp-accent);\n        box-shadow: 0 0 10px var(--bp-accent);\n    }\n\n    \/* Question *\/\n    .bp-question {\n        text-align: center;\n        margin-bottom: 25px;\n    }\n\n    .bp-question-text {\n        font-family: var(--bp-font-display);\n        font-size: 1.4rem;\n        color: var(--bp-text-primary);\n        margin: 0;\n    }\n\n    \/* Choice Grid *\/\n    .bp-choices {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n        gap: 12px;\n        margin-bottom: 30px;\n    }\n\n    .bp-choice {\n        background: rgba(255,255,255,0.05);\n        border: 2px solid var(--bp-border);\n        border-radius: var(--bp-radius-sm);\n        padding: 20px 15px;\n        text-align: center;\n        cursor: pointer;\n        transition: var(--bp-transition);\n    }\n\n    .bp-choice:hover {\n        border-color: var(--bp-accent);\n        background: rgba(245,158,11,0.1);\n        transform: translateY(-3px);\n    }\n\n    .bp-choice.selected {\n        border-color: var(--bp-accent);\n        background: rgba(245,158,11,0.2);\n        box-shadow: 0 0 20px var(--bp-accent-glow);\n    }\n\n    .bp-choice-icon {\n        font-size: 2rem;\n        margin-bottom: 8px;\n        display: block;\n    }\n\n    .bp-choice-label {\n        font-size: 14px;\n        font-weight: 500;\n        color: var(--bp-text-primary);\n    }\n\n    \/* Buttons *\/\n    .bp-btn {\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        padding: 14px 28px;\n        border-radius: 30px;\n        font-family: var(--bp-font-body);\n        font-size: 15px;\n        font-weight: 600;\n        cursor: pointer;\n        transition: var(--bp-transition);\n        border: none;\n        text-decoration: none;\n    }\n\n    .bp-btn-primary {\n        background: linear-gradient(135deg, var(--bp-accent), var(--bp-accent-light));\n        color: #0f0f1a;\n        box-shadow: 0 10px 30px var(--bp-accent-glow);\n    }\n\n    .bp-btn-primary:hover {\n        transform: translateY(-3px);\n        box-shadow: 0 15px 40px var(--bp-accent-glow);\n    }\n\n    .bp-btn-primary:disabled {\n        opacity: 0.5;\n        cursor: not-allowed;\n        transform: none;\n    }\n\n    .bp-btn-secondary {\n        background: transparent;\n        border: 2px solid var(--bp-border);\n        color: var(--bp-text-primary);\n    }\n\n    .bp-btn-secondary:hover {\n        border-color: var(--bp-accent);\n        color: var(--bp-accent);\n        background: rgba(245,158,11,0.1);\n    }\n\n    .bp-nav-actions {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        flex-wrap: wrap;\n        gap: 15px;\n    }\n\n    \/* Loading *\/\n    .bp-loading {\n        text-align: center;\n        padding: 60px 20px;\n    }\n\n    .bp-spinner {\n        width: 60px;\n        height: 60px;\n        border: 3px solid var(--bp-border);\n        border-top-color: var(--bp-accent);\n        border-radius: 50%;\n        animation: bpSpin 1s linear infinite;\n        margin: 0 auto 20px;\n    }\n\n    @keyframes bpSpin {\n        to { transform: rotate(360deg); }\n    }\n\n    .bp-loading-text {\n        font-size: 1.2rem;\n        color: var(--bp-text-secondary);\n    }\n\n    \/* Result *\/\n    .bp-result {\n        max-width: 800px;\n        margin: 0 auto;\n    }\n\n    .bp-result-card {\n        background: var(--bp-bg-card);\n        border-radius: var(--bp-radius);\n        border: 1px solid var(--bp-border);\n        overflow: hidden;\n    }\n\n    .bp-result-header {\n        background: linear-gradient(135deg, rgba(245,158,11,0.2), rgba(251,191,36,0.1));\n        padding: 25px 30px;\n        border-bottom: 1px solid var(--bp-border);\n        text-align: center;\n    }\n\n    .bp-result-title {\n        font-family: var(--bp-font-display);\n        font-size: 1.5rem;\n        color: var(--bp-accent);\n        margin: 0;\n    }\n\n    .bp-result-content {\n        padding: 35px;\n        font-size: 1.15rem;\n        line-height: 1.9;\n        color: var(--bp-text-primary);\n        text-align: center;\n    }\n\n    .bp-result-actions {\n        padding: 25px 30px;\n        border-top: 1px solid var(--bp-border);\n        display: flex;\n        flex-wrap: wrap;\n        gap: 12px;\n        justify-content: center;\n    }\n\n    \/* Footer *\/\n    .bp-footer {\n        text-align: center;\n        margin-top: 40px;\n        font-size: 13px;\n        color: var(--bp-text-muted);\n    }\n\n    .bp-footer a {\n        color: var(--bp-accent);\n        text-decoration: none;\n    }\n\n    \/* Hidden *\/\n    .bp-hidden {\n        display: none !important;\n    }\n\n    \/* Credits Box *\/\n    .bp-credits-box {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 15px;\n        background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(245,158,11,0.05));\n        border: 1px solid rgba(245,158,11,0.3);\n        border-radius: var(--bp-radius-sm);\n        padding: 12px 20px;\n        margin-bottom: 25px;\n    }\n\n    .bp-credits-label {\n        font-size: 13px;\n        color: var(--bp-text-muted);\n    }\n\n    .bp-credits-value {\n        font-family: var(--bp-font-display);\n        font-size: 1.5rem;\n        font-weight: 700;\n        color: var(--bp-accent);\n    }\n\n    .bp-credits-btn {\n        background: linear-gradient(135deg, var(--bp-accent), var(--bp-accent-light));\n        color: #0f0f1a;\n        padding: 8px 16px;\n        border-radius: 20px;\n        font-size: 12px;\n        font-weight: 600;\n        text-decoration: none;\n        transition: var(--bp-transition);\n    }\n\n    .bp-credits-btn:hover {\n        transform: translateY(-2px);\n        box-shadow: 0 5px 20px var(--bp-accent-glow);\n    }\n\n    .bp-free-badge {\n        background: linear-gradient(135deg, #10b981, #059669);\n        color: white;\n        padding: 6px 14px;\n        border-radius: 20px;\n        font-size: 12px;\n        font-weight: 600;\n    }\n\n    \/* Login Screen *\/\n    .bp-login-screen {\n        text-align: center;\n        padding: 60px 20px;\n    }\n\n    .bp-login-icon {\n        font-size: 4rem;\n        margin-bottom: 20px;\n    }\n\n    .bp-login-title {\n        font-family: var(--bp-font-display);\n        font-size: 1.5rem;\n        color: var(--bp-text-primary);\n        margin-bottom: 15px;\n    }\n\n    .bp-login-text {\n        color: var(--bp-text-secondary);\n        margin-bottom: 25px;\n    }\n\n    \/* No Credits Screen *\/\n    .bp-nocredits-screen {\n        text-align: center;\n        padding: 60px 20px;\n    }\n\n    .bp-nocredits-icon {\n        font-size: 4rem;\n        margin-bottom: 20px;\n    }\n\n    .bp-nocredits-title {\n        font-family: var(--bp-font-display);\n        font-size: 1.3rem;\n        color: var(--bp-accent);\n        margin-bottom: 15px;\n    }\n\n    .bp-nocredits-text {\n        color: var(--bp-text-secondary);\n        margin-bottom: 25px;\n    }\n\n    \/* Custom Input *\/\n    .bp-custom-field {\n        margin-top: 20px;\n        margin-bottom: 10px;\n    }\n\n    .bp-custom-label {\n        display: block;\n        font-size: 14px;\n        color: var(--bp-text-secondary);\n        margin-bottom: 8px;\n    }\n\n    .bp-custom-input {\n        width: 100%;\n        padding: 15px 20px;\n        background: rgba(255,255,255,0.05);\n        border: 1px solid var(--bp-border);\n        border-radius: var(--bp-radius-sm);\n        color: var(--bp-text-primary);\n        font-family: var(--bp-font-body);\n        font-size: 15px;\n        transition: var(--bp-transition);\n        box-sizing: border-box;\n        resize: vertical;\n        min-height: 80px;\n    }\n\n    .bp-custom-input:focus {\n        outline: none;\n        border-color: var(--bp-accent);\n        box-shadow: 0 0 0 3px var(--bp-accent-glow);\n    }\n\n    .bp-custom-input::placeholder {\n        color: var(--bp-text-muted);\n    }\n\n    \/* Responsive *\/\n    @media (max-width: 640px) {\n        .bp-container {\n            padding: 20px 15px 40px;\n        }\n\n        .bp-card {\n            padding: 25px 20px;\n        }\n\n        .bp-steps {\n            gap: 10px;\n        }\n\n        .bp-step-label {\n            display: none;\n        }\n\n        .bp-choices {\n            grid-template-columns: repeat(2, 1fr);\n        }\n\n        .bp-nav-actions {\n            flex-direction: column;\n        }\n\n        .bp-btn {\n            width: 100%;\n        }\n    }\n    <\/style>\n\n    <div class=\"bp-container\" id=\"bp-app\">\n        <!-- Language Bar -->\n        <div class=\"bp-lang-bar\">\n            <span class=\"bp-lang-label\" id=\"bp-gen-label\"><\/span>\n            <select class=\"bp-lang-select\" id=\"bp-lang-select\">\n                <option value=\"fr\">\ud83c\uddeb\ud83c\uddf7 Fran\u00e7ais<\/option>\n                <option value=\"en\">\ud83c\uddec\ud83c\udde7 English<\/option>\n                <option value=\"es\">\ud83c\uddea\ud83c\uddf8 Espa\u00f1ol<\/option>\n                <option value=\"it\">\ud83c\uddee\ud83c\uddf9 Italiano<\/option>\n                <option value=\"de\">\ud83c\udde9\ud83c\uddea Deutsch<\/option>\n            <\/select>\n        <\/div>\n\n        <!-- Header -->\n        <div class=\"bp-header\">\n            <h1 class=\"bp-title\" id=\"bp-title\"><\/h1>\n            <p class=\"bp-subtitle\" id=\"bp-subtitle\"><\/p>\n        <\/div>\n\n        <!-- Login Screen -->\n        <div class=\"bp-card bp-hidden\" id=\"bp-login-screen\">\n            <div class=\"bp-login-screen\">\n                <div class=\"bp-login-icon\">\ud83d\udd10<\/div>\n                <h2 class=\"bp-login-title\" id=\"bp-login-title\"><\/h2>\n                <p class=\"bp-login-text\" id=\"bp-login-text\"><\/p>\n                <button class=\"bp-btn bp-btn-primary open-login-popup login-button xoo-el-login-tgr\" id=\"bp-login-btn\"><\/button>\n            <\/div>\n        <\/div>\n\n        <!-- No Credits Screen -->\n        <div class=\"bp-card bp-hidden\" id=\"bp-nocredits-screen\">\n            <div class=\"bp-nocredits-screen\">\n                <div class=\"bp-nocredits-icon\">\ud83d\ude05<\/div>\n                <h2 class=\"bp-nocredits-title\" id=\"bp-nocredits-title\"><\/h2>\n                <p class=\"bp-nocredits-text\" id=\"bp-nocredits-text\"><\/p>\n                <a href=\"\/es\/acheter-des-credits\/\" class=\"bp-btn bp-btn-primary\" id=\"bp-buy-btn\"><\/a>\n            <\/div>\n        <\/div>\n\n        <!-- Steps -->\n        <div class=\"bp-steps bp-hidden\" id=\"bp-steps\"><\/div>\n\n        <!-- Form Card -->\n        <div class=\"bp-card bp-hidden\" id=\"bp-form-card\">\n            <!-- Credits Box -->\n            <div class=\"bp-credits-box\" id=\"bp-credits-box\">\n                <span class=\"bp-credits-label\" id=\"bp-credits-label\"><\/span>\n                <span class=\"bp-credits-value\" id=\"bp-credits-value\"><\/span>\n                <a href=\"\/es\/acheter-des-credits\/\" class=\"bp-credits-btn\" id=\"bp-credits-btn\"><\/a>\n                <span class=\"bp-free-badge bp-hidden\" id=\"bp-free-badge\"><\/span>\n            <\/div>\n\n            <!-- Slider -->\n            <div class=\"bp-slider\" id=\"bp-slider\">\n                <img decoding=\"async\" class=\"bp-slider-img\" id=\"bp-slider-img\" src=\"\" alt=\"Blague\">\n                <button class=\"bp-slider-btn bp-slider-prev\" id=\"bp-slider-prev\">\u276e<\/button>\n                <button class=\"bp-slider-btn bp-slider-next\" id=\"bp-slider-next\">\u276f<\/button>\n                <div class=\"bp-slider-dots\" id=\"bp-slider-dots\"><\/div>\n            <\/div>\n\n            <!-- Question -->\n            <div class=\"bp-question\">\n                <h2 class=\"bp-question-text\" id=\"bp-question-text\"><\/h2>\n            <\/div>\n\n            <!-- Choices -->\n            <div class=\"bp-choices\" id=\"bp-choices\"><\/div>\n\n            <!-- Custom Suggestion (shown on last step) -->\n            <div class=\"bp-custom-field bp-hidden\" id=\"bp-custom-field\">\n                <label class=\"bp-custom-label\" id=\"bp-custom-label\"><\/label>\n                <textarea class=\"bp-custom-input\" id=\"bp-custom-input\" rows=\"3\"><\/textarea>\n            <\/div>\n\n            <!-- Navigation -->\n            <div class=\"bp-nav-actions\">\n                <button class=\"bp-btn bp-btn-secondary bp-hidden\" id=\"bp-btn-prev\"><\/button>\n                <button class=\"bp-btn bp-btn-primary\" id=\"bp-btn-next\" disabled><\/button>\n            <\/div>\n        <\/div>\n\n        <!-- Loading Card -->\n        <div class=\"bp-card bp-hidden\" id=\"bp-loading-card\">\n            <div class=\"bp-loading\">\n                <div class=\"bp-spinner\"><\/div>\n                <div class=\"bp-loading-text\" id=\"bp-loading-text\"><\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Result -->\n        <div class=\"bp-result bp-hidden\" id=\"bp-result\">\n            <div class=\"bp-result-card\">\n                <div class=\"bp-result-header\">\n                    <h2 class=\"bp-result-title\" id=\"bp-result-title\"><\/h2>\n                <\/div>\n                <div class=\"bp-result-content\" id=\"bp-result-content\"><\/div>\n                <div class=\"bp-result-actions\">\n                    <button class=\"bp-btn bp-btn-secondary\" id=\"bp-btn-copy\"><\/button>\n                    <button class=\"bp-btn bp-btn-secondary\" id=\"bp-btn-print\"><\/button>\n                    <button class=\"bp-btn bp-btn-secondary\" id=\"bp-btn-whatsapp\"><\/button>\n                    <button class=\"bp-btn bp-btn-primary\" id=\"bp-btn-new\"><\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Footer -->\n        <div class=\"bp-footer\">\n            Powered by AI \u2014 <a href=\"https:\/\/crehistor.com\/es\/\">Crehistor.com<\/a>\n        <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const UI = {\"main_title\":{\"fr\":\"Forge \u00e0 Blagues\",\"en\":\"Joke Forge\",\"es\":\"Forja de Chistes\",\"it\":\"Fucina di Battute\",\"de\":\"Witz-Schmiede\"},\"subtitle\":{\"fr\":\"Cr\u00e9ez la blague parfaite en 5 \u00e9tapes\",\"en\":\"Create the perfect joke in 5 steps\",\"es\":\"Crea el chiste perfecto en 5 pasos\",\"it\":\"Crea la battuta perfetta in 5 passi\",\"de\":\"Erstelle den perfekten Witz in 5 Schritten\"},\"step_labels\":{\"fr\":[\"Pour qui ?\",\"Contexte\",\"Style\",\"Intensit\u00e9\",\"Format\"],\"en\":[\"For whom?\",\"Context\",\"Style\",\"Intensity\",\"Format\"],\"es\":[\"\u00bfPara qui\u00e9n?\",\"Contexto\",\"Estilo\",\"Intensidad\",\"Formato\"],\"it\":[\"Per chi?\",\"Contesto\",\"Stile\",\"Intensit\u00e0\",\"Formato\"],\"de\":[\"F\u00fcr wen?\",\"Kontext\",\"Stil\",\"Intensit\u00e4t\",\"Format\"]},\"question_labels\":{\"fr\":{\"public\":\"Pour qui est cette blague ?\",\"context\":\"Dans quel contexte ?\",\"style\":\"Quel style d'humour ?\",\"craziness\":\"Niveau de folie ?\",\"type\":\"Quel format ?\"},\"en\":{\"public\":\"Who is this joke for?\",\"context\":\"In what context?\",\"style\":\"What humor style?\",\"craziness\":\"Level of craziness?\",\"type\":\"What format?\"},\"es\":{\"public\":\"\u00bfPara qui\u00e9n es este chiste?\",\"context\":\"\u00bfEn qu\u00e9 contexto?\",\"style\":\"\u00bfQu\u00e9 estilo de humor?\",\"craziness\":\"\u00bfNivel de locura?\",\"type\":\"\u00bfQu\u00e9 formato?\"},\"it\":{\"public\":\"Per chi \u00e8 questa battuta?\",\"context\":\"In quale contesto?\",\"style\":\"Che stile di umorismo?\",\"craziness\":\"Livello di follia?\",\"type\":\"Che formato?\"},\"de\":{\"public\":\"F\u00fcr wen ist dieser Witz?\",\"context\":\"In welchem Kontext?\",\"style\":\"Welcher Humorstil?\",\"craziness\":\"Grad des Wahnsinns?\",\"type\":\"Welches Format?\"}},\"prev\":{\"fr\":\"\u2190 Retour\",\"en\":\"\u2190 Back\",\"es\":\"\u2190 Atr\u00e1s\",\"it\":\"\u2190 Indietro\",\"de\":\"\u2190 Zur\u00fcck\"},\"next\":{\"fr\":\"Suivant \u2192\",\"en\":\"Next \u2192\",\"es\":\"Siguiente \u2192\",\"it\":\"Avanti \u2192\",\"de\":\"Weiter \u2192\"},\"generate\":{\"fr\":\"\u2726 FORGER LA BLAGUE \u2726\",\"en\":\"\u2726 FORGE THE JOKE \u2726\",\"es\":\"\u2726 FORJAR EL CHISTE \u2726\",\"it\":\"\u2726 FORGIA LA BATTUTA \u2726\",\"de\":\"\u2726 WITZ SCHMIEDEN \u2726\"},\"generating\":{\"fr\":\"L'humour mijote...\",\"en\":\"Humor is brewing...\",\"es\":\"El humor se cocina...\",\"it\":\"L'umorismo sta cuocendo...\",\"de\":\"Humor braut sich zusammen...\"},\"result_title\":{\"fr\":\"\ud83c\udfad Voici ta blague !\",\"en\":\"\ud83c\udfad Here's your joke!\",\"es\":\"\ud83c\udfad \u00a1Aqu\u00ed est\u00e1 tu chiste!\",\"it\":\"\ud83c\udfad Ecco la tua battuta!\",\"de\":\"\ud83c\udfad Hier ist dein Witz!\"},\"print\":{\"fr\":\"\ud83d\udda8\ufe0f Imprimer\",\"en\":\"\ud83d\udda8\ufe0f Print\",\"es\":\"\ud83d\udda8\ufe0f Imprimir\",\"it\":\"\ud83d\udda8\ufe0f Stampa\",\"de\":\"\ud83d\udda8\ufe0f Drucken\"},\"whatsapp\":{\"fr\":\"\ud83d\udcf1 WhatsApp\",\"en\":\"\ud83d\udcf1 WhatsApp\",\"es\":\"\ud83d\udcf1 WhatsApp\",\"it\":\"\ud83d\udcf1 WhatsApp\",\"de\":\"\ud83d\udcf1 WhatsApp\"},\"copy\":{\"fr\":\"\ud83d\udccb Copier\",\"en\":\"\ud83d\udccb Copy\",\"es\":\"\ud83d\udccb Copiar\",\"it\":\"\ud83d\udccb Copia\",\"de\":\"\ud83d\udccb Kopieren\"},\"new\":{\"fr\":\"\u2726 Nouvelle blague\",\"en\":\"\u2726 New joke\",\"es\":\"\u2726 Nuevo chiste\",\"it\":\"\u2726 Nuova battuta\",\"de\":\"\u2726 Neuer Witz\"},\"generator_label\":{\"fr\":\"G\u00e9n\u00e9rateur IA\",\"en\":\"AI Generator\",\"es\":\"Generador IA\",\"it\":\"Generatore IA\",\"de\":\"KI-Generator\"},\"step_creation\":{\"fr\":\"Cr\u00e9ation\",\"en\":\"Creation\",\"es\":\"Creaci\u00f3n\",\"it\":\"Creazione\",\"de\":\"Erstellung\"},\"step_result\":{\"fr\":\"R\u00e9sultat\",\"en\":\"Result\",\"es\":\"Resultado\",\"it\":\"Risultato\",\"de\":\"Ergebnis\"},\"copied\":{\"fr\":\"Copi\u00e9 !\",\"en\":\"Copied!\",\"es\":\"\u00a1Copiado!\",\"it\":\"Copiato!\",\"de\":\"Kopiert!\"},\"login_required\":{\"fr\":\"Connexion requise\",\"en\":\"Login required\",\"es\":\"Inicio de sesi\u00f3n requerido\",\"it\":\"Accesso richiesto\",\"de\":\"Anmeldung erforderlich\"},\"login_btn\":{\"fr\":\"Se connecter \\\/ S'inscrire\",\"en\":\"Login \\\/ Register\",\"es\":\"Iniciar sesi\u00f3n \\\/ Registrarse\",\"it\":\"Accedi \\\/ Registrati\",\"de\":\"Anmelden \\\/ Registrieren\"},\"no_credits\":{\"fr\":\"Vous avez utilis\u00e9 votre essai gratuit.\",\"en\":\"You have used your free trial.\",\"es\":\"Has usado tu prueba gratuita.\",\"it\":\"Hai usato la tua prova gratuita.\",\"de\":\"Du hast deine kostenlose Probe genutzt.\"},\"buy_credits\":{\"fr\":\"Acheter des cr\u00e9dits\",\"en\":\"Buy credits\",\"es\":\"Comprar cr\u00e9ditos\",\"it\":\"Acquista crediti\",\"de\":\"Credits kaufen\"},\"your_credits\":{\"fr\":\"Vos cr\u00e9dits\",\"en\":\"Your credits\",\"es\":\"Tus cr\u00e9ditos\",\"it\":\"I tuoi crediti\",\"de\":\"Deine Credits\"},\"free_trial\":{\"fr\":\"\ud83c\udf81 1er essai gratuit !\",\"en\":\"\ud83c\udf81 1st try free!\",\"es\":\"\ud83c\udf81 \u00a11\u00aa prueba gratis!\",\"it\":\"\ud83c\udf81 1\u00aa prova gratis!\",\"de\":\"\ud83c\udf81 1. Versuch kostenlos!\"},\"custom_suggestion\":{\"fr\":\"Ajouter des pr\u00e9cisions (optionnel)\",\"en\":\"Add details (optional)\",\"es\":\"A\u00f1adir detalles (opcional)\",\"it\":\"Aggiungi dettagli (opzionale)\",\"de\":\"Details hinzuf\u00fcgen (optional)\"},\"custom_placeholder\":{\"fr\":\"Ex: avec un chat, sur le th\u00e8me de No\u00ebl, incluant mon pr\u00e9nom Jean...\",\"en\":\"E.g.: with a cat, Christmas theme, include my name John...\",\"es\":\"Ej: con un gato, tema navide\u00f1o, incluir mi nombre Juan...\",\"it\":\"Es: con un gatto, tema natalizio, includere il mio nome Marco...\",\"de\":\"Z.B.: mit einer Katze, Weihnachtsthema, meinen Namen Hans...\"}};\n        const CHOICES = {\"public\":[{\"key\":\"enfant\",\"icon\":\"\ud83d\udc76\",\"fr\":\"Enfant\",\"en\":\"Child\",\"es\":\"Ni\u00f1o\",\"it\":\"Bambino\",\"de\":\"Kind\"},{\"key\":\"adulte\",\"icon\":\"\ud83d\udc68\",\"fr\":\"Adulte\",\"en\":\"Adult\",\"es\":\"Adulto\",\"it\":\"Adulto\",\"de\":\"Erwachsener\"},{\"key\":\"collegue\",\"icon\":\"\ud83d\udcbc\",\"fr\":\"Coll\u00e8gue\",\"en\":\"Colleague\",\"es\":\"Colega\",\"it\":\"Collega\",\"de\":\"Kollege\"},{\"key\":\"famille\",\"icon\":\"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\",\"fr\":\"Famille\",\"en\":\"Family\",\"es\":\"Familia\",\"it\":\"Famiglia\",\"de\":\"Familie\"},{\"key\":\"couple\",\"icon\":\"\ud83d\udc91\",\"fr\":\"Couple\",\"en\":\"Couple\",\"es\":\"Pareja\",\"it\":\"Coppia\",\"de\":\"Paar\"}],\"context\":[{\"key\":\"ecole\",\"icon\":\"\ud83c\udfeb\",\"fr\":\"\u00c0 l'\u00e9cole\",\"en\":\"At school\",\"es\":\"En la escuela\",\"it\":\"A scuola\",\"de\":\"In der Schule\"},{\"key\":\"travail\",\"icon\":\"\ud83c\udfe2\",\"fr\":\"Au travail\",\"en\":\"At work\",\"es\":\"En el trabajo\",\"it\":\"Al lavoro\",\"de\":\"Bei der Arbeit\"},{\"key\":\"table\",\"icon\":\"\ud83c\udf7d\ufe0f\",\"fr\":\"\u00c0 table\",\"en\":\"At dinner\",\"es\":\"En la mesa\",\"it\":\"A tavola\",\"de\":\"Am Tisch\"},{\"key\":\"soiree\",\"icon\":\"\ud83c\udf89\",\"fr\":\"En soir\u00e9e\",\"en\":\"At a party\",\"es\":\"En la fiesta\",\"it\":\"A una festa\",\"de\":\"Auf einer Party\"},{\"key\":\"autre\",\"icon\":\"\u2728\",\"fr\":\"Autre\",\"en\":\"Other\",\"es\":\"Otro\",\"it\":\"Altro\",\"de\":\"Andere\"}],\"style\":[{\"key\":\"mot\",\"icon\":\"\ud83d\udd24\",\"fr\":\"Jeu de mots\",\"en\":\"Wordplay\",\"es\":\"Juego de palabras\",\"it\":\"Gioco di parole\",\"de\":\"Wortspiel\"},{\"key\":\"absurde\",\"icon\":\"\ud83e\udd2a\",\"fr\":\"Absurde\",\"en\":\"Absurd\",\"es\":\"Absurda\",\"it\":\"Assurdo\",\"de\":\"Absurd\"},{\"key\":\"mignonne\",\"icon\":\"\ud83e\udd70\",\"fr\":\"Mignonne\",\"en\":\"Cute\",\"es\":\"Linda\",\"it\":\"Carina\",\"de\":\"S\u00fc\u00df\"},{\"key\":\"noir\",\"icon\":\"\ud83d\udda4\",\"fr\":\"Humour noir\",\"en\":\"Dark humor\",\"es\":\"Humor negro\",\"it\":\"Umorismo nero\",\"de\":\"Schwarzer Humor\"},{\"key\":\"dev\",\"icon\":\"\ud83d\udcbb\",\"fr\":\"Geek\\\/Dev\",\"en\":\"Geek\\\/Dev\",\"es\":\"Geek\\\/Dev\",\"it\":\"Geek\\\/Dev\",\"de\":\"Geek\\\/Dev\"}],\"craziness\":[{\"key\":\"sage\",\"icon\":\"\ud83d\ude0a\",\"fr\":\"Sage\",\"en\":\"Mild\",\"es\":\"Tranquila\",\"it\":\"Tranquillo\",\"de\":\"Harmlos\"},{\"key\":\"surprise\",\"icon\":\"\ud83d\ude32\",\"fr\":\"Surprise\",\"en\":\"Surprising\",\"es\":\"Sorpresa\",\"it\":\"Sorpresa\",\"de\":\"\u00dcberraschend\"},{\"key\":\"ose\",\"icon\":\"\ud83d\ude0f\",\"fr\":\"Os\u00e9e\",\"en\":\"Daring\",\"es\":\"Atrevida\",\"it\":\"Audace\",\"de\":\"Gewagt\"},{\"key\":\"wtf\",\"icon\":\"\ud83e\udd2f\",\"fr\":\"WTF!\",\"en\":\"WTF!\",\"es\":\"\u00a1WTF!\",\"it\":\"WTF!\",\"de\":\"WTF!\"}],\"type\":[{\"key\":\"courte\",\"icon\":\"\u26a1\",\"fr\":\"Courte\",\"en\":\"Short\",\"es\":\"Corta\",\"it\":\"Corta\",\"de\":\"Kurz\"},{\"key\":\"longue\",\"icon\":\"\ud83d\udcdc\",\"fr\":\"Longue\",\"en\":\"Long\",\"es\":\"Larga\",\"it\":\"Lunga\",\"de\":\"Lang\"},{\"key\":\"devinette\",\"icon\":\"\u2753\",\"fr\":\"Devinette\",\"en\":\"Riddle\",\"es\":\"Adivinanza\",\"it\":\"Indovinello\",\"de\":\"R\u00e4tsel\"},{\"key\":\"papa\",\"icon\":\"\ud83d\udc74\",\"fr\":\"Blague de papa\",\"en\":\"Dad joke\",\"es\":\"Chiste de pap\u00e1\",\"it\":\"Battuta da pap\u00e0\",\"de\":\"Papa-Witz\"},{\"key\":\"enfant\",\"icon\":\"\ud83e\uddd2\",\"fr\":\"Pour enfant\",\"en\":\"For kids\",\"es\":\"Para ni\u00f1os\",\"it\":\"Per bambini\",\"de\":\"F\u00fcr Kinder\"}]};\n        const COVERS = [\"\\\/wp-content\\\/uploads\\\/2025\\\/cover\\\/blague1.jpg\",\"\\\/wp-content\\\/uploads\\\/2025\\\/cover\\\/blague2.jpg\",\"\\\/wp-content\\\/uploads\\\/2025\\\/cover\\\/blague3.jpg\",\"\\\/wp-content\\\/uploads\\\/2025\\\/cover\\\/blague4.jpg\"];\n        const AJAX_URL = 'https:\/\/crehistor.com\/wp-admin\/admin-ajax.php';\n        const STEPS_KEYS = ['public', 'context', 'style', 'craziness', 'type'];\n\n        \/\/ User state\n        const userState = {\n            loggedIn: false,\n            credits: 0        };\n\n        let state = {\n            lang: 'fr',\n            step: 0,\n            selections: {\n                public: '',\n                context: '',\n                style: '',\n                craziness: '',\n                type: ''\n            },\n            customSuggestion: '',\n            generated: null,\n            sliderIndex: 0,\n            freeUsed: localStorage.getItem('bp_free_used') === 'true'\n        };\n\n        let sliderInterval = null;\n\n        const $ = id => document.getElementById(id);\n\n        function tr(key) {\n            return UI[key]?.[state.lang] || UI[key]?.['fr'] || key;\n        }\n\n        \/\/ Slider\n        function initSlider() {\n            const dotsContainer = $('bp-slider-dots');\n            dotsContainer.innerHTML = COVERS.map((_, i) => \n                `<span class=\"bp-slider-dot ${i === 0 ? 'active' : ''}\" data-index=\"${i}\"><\/span>`\n            ).join('');\n            updateSlider();\n            startSliderAuto();\n\n            dotsContainer.querySelectorAll('.bp-slider-dot').forEach(dot => {\n                dot.addEventListener('click', () => {\n                    state.sliderIndex = parseInt(dot.dataset.index);\n                    updateSlider();\n                    resetSliderAuto();\n                });\n            });\n        }\n\n        function updateSlider() {\n            $('bp-slider-img').src = COVERS[state.sliderIndex];\n            $('bp-slider-dots').querySelectorAll('.bp-slider-dot').forEach((dot, i) => {\n                dot.classList.toggle('active', i === state.sliderIndex);\n            });\n        }\n\n        function nextSlide() {\n            state.sliderIndex = (state.sliderIndex + 1) % COVERS.length;\n            updateSlider();\n        }\n\n        function prevSlide() {\n            state.sliderIndex = (state.sliderIndex - 1 + COVERS.length) % COVERS.length;\n            updateSlider();\n        }\n\n        function startSliderAuto() {\n            if (sliderInterval) clearInterval(sliderInterval);\n            sliderInterval = setInterval(nextSlide, 4000);\n        }\n\n        function resetSliderAuto() {\n            startSliderAuto();\n        }\n\n        function updateUI() {\n            $('bp-lang-select').value = state.lang;\n            $('bp-gen-label').textContent = tr('generator_label');\n            $('bp-title').textContent = tr('main_title');\n            $('bp-subtitle').textContent = tr('subtitle');\n            $('bp-loading-text').textContent = tr('generating');\n            $('bp-result-title').textContent = tr('result_title');\n            $('bp-btn-copy').textContent = tr('copy');\n            $('bp-btn-print').textContent = tr('print');\n            $('bp-btn-whatsapp').textContent = tr('whatsapp');\n            $('bp-btn-new').textContent = tr('new');\n            \n            \/\/ Login screen\n            $('bp-login-title').textContent = tr('login_required');\n            $('bp-login-text').textContent = tr('free_trial');\n            $('bp-login-btn').textContent = tr('login_btn');\n            \n            \/\/ No credits screen\n            $('bp-nocredits-title').textContent = tr('no_credits');\n            $('bp-nocredits-text').textContent = tr('buy_credits');\n            $('bp-buy-btn').textContent = tr('buy_credits');\n            \n            \/\/ Credits box\n            $('bp-credits-label').textContent = tr('your_credits');\n            $('bp-credits-value').textContent = userState.credits;\n            $('bp-credits-btn').textContent = tr('buy_credits');\n            $('bp-free-badge').textContent = tr('free_trial');\n            \n            \/\/ Custom field\n            $('bp-custom-label').textContent = tr('custom_suggestion');\n            $('bp-custom-input').placeholder = tr('custom_placeholder');\n        }\n\n        function renderSteps() {\n            const labels = UI.step_labels[state.lang] || UI.step_labels['fr'];\n            $('bp-steps').innerHTML = labels.map((label, i) => `\n                <div class=\"bp-step ${i < state.step ? 'completed' : ''} ${i === state.step ? 'active' : ''}\" data-step=\"${i}\">\n                    <span class=\"bp-step-number\">${i + 1}<\/span>\n                    <span class=\"bp-step-label\">${label}<\/span>\n                <\/div>\n            `).join('');\n        }\n\n        function render() {\n            updateUI();\n\n            \/\/ Hide all screens first\n            $('bp-login-screen').classList.add('bp-hidden');\n            $('bp-nocredits-screen').classList.add('bp-hidden');\n            $('bp-form-card').classList.add('bp-hidden');\n            $('bp-loading-card').classList.add('bp-hidden');\n            $('bp-result').classList.add('bp-hidden');\n            $('bp-steps').classList.add('bp-hidden');\n\n            \/\/ Check login\n            if (!userState.loggedIn) {\n                $('bp-login-screen').classList.remove('bp-hidden');\n                return;\n            }\n\n            \/\/ Check credits (free trial used and no credits)\n            if (state.freeUsed && userState.credits < 1 && !state.generated) {\n                $('bp-nocredits-screen').classList.remove('bp-hidden');\n                return;\n            }\n\n            \/\/ Show result if generated\n            if (state.generated) {\n                $('bp-result').classList.remove('bp-hidden');\n                $('bp-result-content').innerHTML = state.generated.replace(\/\\n\/g, '<br>');\n                return;\n            }\n\n            \/\/ Show form\n            $('bp-steps').classList.remove('bp-hidden');\n            $('bp-form-card').classList.remove('bp-hidden');\n            renderSteps();\n\n            \/\/ Credits display\n            if (userState.credits > 0) {\n                $('bp-credits-box').style.display = 'flex';\n                $('bp-free-badge').classList.add('bp-hidden');\n            } else if (!state.freeUsed) {\n                $('bp-credits-box').style.display = 'flex';\n                $('bp-credits-value').textContent = '0';\n                $('bp-free-badge').classList.remove('bp-hidden');\n            }\n\n            \/\/ Current step\n            const currentKey = STEPS_KEYS[state.step];\n            const questionLabels = UI.question_labels[state.lang] || UI.question_labels['fr'];\n            $('bp-question-text').textContent = questionLabels[currentKey];\n\n            \/\/ Render choices\n            const choices = CHOICES[currentKey];\n            $('bp-choices').innerHTML = choices.map(choice => `\n                <div class=\"bp-choice ${state.selections[currentKey] === choice.key ? 'selected' : ''}\" data-key=\"${choice.key}\">\n                    <span class=\"bp-choice-icon\">${choice.icon}<\/span>\n                    <span class=\"bp-choice-label\">${choice[state.lang] || choice['fr']}<\/span>\n                <\/div>\n            `).join('');\n\n            \/\/ Choice click handlers\n            $('bp-choices').querySelectorAll('.bp-choice').forEach(el => {\n                el.addEventListener('click', () => {\n                    state.selections[currentKey] = el.dataset.key;\n                    render();\n                });\n            });\n\n            \/\/ Show custom field on last step\n            const isLastStep = state.step === STEPS_KEYS.length - 1;\n            $('bp-custom-field').classList.toggle('bp-hidden', !isLastStep);\n\n            \/\/ Navigation buttons\n            $('bp-btn-prev').classList.toggle('bp-hidden', state.step === 0);\n            $('bp-btn-prev').textContent = tr('prev');\n            \n            $('bp-btn-next').textContent = isLastStep ? tr('generate') : tr('next');\n            $('bp-btn-next').disabled = !state.selections[currentKey];\n        }\n\n        function showLoading() {\n            $('bp-form-card').classList.add('bp-hidden');\n            $('bp-loading-card').classList.remove('bp-hidden');\n            $('bp-result').classList.add('bp-hidden');\n        }\n\n        function generateJoke() {\n            \/\/ Get custom suggestion\n            state.customSuggestion = $('bp-custom-input').value.trim();\n            \n            showLoading();\n\n            const formData = new FormData();\n            formData.append('action', 'blague_parfait_generate');\n            formData.append('lang', state.lang);\n            formData.append('public', state.selections.public);\n            formData.append('context', state.selections.context);\n            formData.append('style', state.selections.style);\n            formData.append('craziness', state.selections.craziness);\n            formData.append('type', state.selections.type);\n            formData.append('custom', state.customSuggestion);\n\n            fetch(AJAX_URL, {\n                method: 'POST',\n                body: formData\n            })\n            .then(r => r.json())\n            .then(data => {\n                state.generated = data.result || 'Erreur de g\u00e9n\u00e9ration.';\n                \n                \/\/ Mark free trial as used and decrement credits\n                if (!state.freeUsed && userState.credits < 1) {\n                    state.freeUsed = true;\n                    localStorage.setItem('bp_free_used', 'true');\n                } else if (userState.credits > 0) {\n                    userState.credits--;\n                }\n                \n                render();\n            })\n            .catch(e => {\n                console.error(e);\n                state.generated = 'Erreur: ' + e.message;\n                render();\n            });\n        }\n\n        \/\/ Event Listeners\n        $('bp-lang-select').addEventListener('change', (e) => {\n            state.lang = e.target.value;\n            state.step = 0;\n            state.selections = { public: '', context: '', style: '', craziness: '', type: '' };\n            state.generated = null;\n            render();\n        });\n\n        $('bp-btn-next').addEventListener('click', () => {\n            if (state.step < STEPS_KEYS.length - 1) {\n                state.step++;\n                render();\n            } else {\n                generateJoke();\n            }\n        });\n\n        $('bp-btn-prev').addEventListener('click', () => {\n            if (state.step > 0) {\n                state.step--;\n                render();\n            }\n        });\n\n        $('bp-slider-prev').addEventListener('click', () => {\n            prevSlide();\n            resetSliderAuto();\n        });\n\n        $('bp-slider-next').addEventListener('click', () => {\n            nextSlide();\n            resetSliderAuto();\n        });\n\n        $('bp-btn-copy').addEventListener('click', () => {\n            if (state.generated) {\n                navigator.clipboard.writeText(state.generated).then(() => {\n                    const btn = $('bp-btn-copy');\n                    const originalText = btn.textContent;\n                    btn.textContent = tr('copied');\n                    setTimeout(() => btn.textContent = originalText, 2000);\n                });\n            }\n        });\n\n        $('bp-btn-print').addEventListener('click', () => {\n            if (state.generated) {\n                const printContent = `\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Ma Blague<\/title>\n    <style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@600&family=DM+Sans&display=swap');\n        body { \n            font-family: 'DM Sans', sans-serif; \n            padding: 50px; \n            max-width: 600px; \n            margin: 0 auto;\n            text-align: center;\n        }\n        .title {\n            font-family: 'Playfair Display', serif;\n            font-size: 24px;\n            color: #f59e0b;\n            margin-bottom: 30px;\n        }\n        .joke {\n            font-size: 18px;\n            line-height: 1.8;\n            color: #333;\n            background: #fffbeb;\n            padding: 30px;\n            border-radius: 15px;\n            border: 2px solid #f59e0b;\n        }\n        .footer {\n            margin-top: 40px;\n            font-size: 12px;\n            color: #999;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"title\">\ud83c\udfad ${tr('result_title')}<\/div>\n    <div class=\"joke\">${state.generated.replace(\/\\n\/g, '<br>')}<\/div>\n    <div class=\"footer\">Cr\u00e9\u00e9 avec Crehistor.com \u2014 Forge \u00e0 Blagues<\/div>\n<\/body>\n<\/html>`;\n                const printWindow = window.open('', '_blank');\n                printWindow.document.write(printContent);\n                printWindow.document.close();\n                printWindow.onload = () => printWindow.print();\n            }\n        });\n\n        $('bp-btn-whatsapp').addEventListener('click', () => {\n            if (state.generated) {\n                window.open('https:\/\/wa.me\/?text=' + encodeURIComponent(state.generated));\n            }\n        });\n\n        $('bp-btn-new').addEventListener('click', () => {\n            state.step = 0;\n            state.selections = { public: '', context: '', style: '', craziness: '', type: '' };\n            state.generated = null;\n            render();\n        });\n\n        \/\/ Initialize\n        initSlider();\n        render();\n    });\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-06aca83 elementor-align-center elementor-invisible elementor-widget elementor-widget-button\" data-id=\"06aca83\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-bob\" href=\"https:\/\/crehistor.com\/es\/blagues-exemple\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Ejemplo<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-319dfd5 e-con-full e-flex e-con e-child\" data-id=\"319dfd5\" data-element_type=\"container\">\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>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Ejemplo<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2370","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/pages\/2370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/comments?post=2370"}],"version-history":[{"count":10,"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/pages\/2370\/revisions"}],"predecessor-version":[{"id":2783,"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/pages\/2370\/revisions\/2783"}],"wp:attachment":[{"href":"https:\/\/crehistor.com\/es\/wp-json\/wp\/v2\/media?parent=2370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}