{"id":1735,"date":"2025-06-04T16:04:00","date_gmt":"2025-06-04T16:04:00","guid":{"rendered":"https:\/\/crehistor.com\/?page_id=1735"},"modified":"2025-07-09T15:38:04","modified_gmt":"2025-07-09T15:38:04","slug":"fantastique","status":"publish","type":"page","link":"https:\/\/crehistor.com\/en\/fantastique\/","title":{"rendered":"Fantastique"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1735\" class=\"elementor elementor-1735\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5456d2e e-flex e-con-boxed e-con e-parent\" data-id=\"5456d2e\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f518fba e-con-full e-flex e-con e-child\" data-id=\"f518fba\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3f16685 e-con-full e-flex e-con e-child\" data-id=\"3f16685\" data-element_type=\"container\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f0ea79a e-con-full e-flex e-con e-child\" data-id=\"f0ea79a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-03d02d5 elementor-widget elementor-widget-shortcode\" data-id=\"03d02d5\" 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\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n\n<style>\n:root {\n    --forge-obsidian: #0d0d0f;\n    --forge-anthracite: #1a1a1e;\n    --forge-graphite: #252529;\n    --forge-steel: #3a3a42;\n    --forge-silver: #b0b0b8;\n    --forge-gold: #c9a54e;\n    --forge-gold-light: #e8c86d;\n    --forge-gold-pale: #f5e6c3;\n    --forge-white: #ffffff;\n    --font-display: 'Cinzel', Georgia, serif;\n    --font-body: 'Cormorant Garamond', Georgia, serif;\n    --shadow-elevated: 0 8px 32px rgba(0,0,0,0.4), 0 2px 8px rgba(201,165,78,0.08);\n    --shadow-glow: 0 0 20px rgba(201,165,78,0.15);\n    --text-shadow: 0 1px 2px rgba(0,0,0,0.3);\n    --transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n#fan-root {\n    max-width: 540px;\n    margin: 48px auto;\n    background: var(--forge-anthracite);\n    border-radius: 3px;\n    padding: 40px 36px;\n    box-shadow: var(--shadow-elevated);\n    font-family: var(--font-body);\n    color: var(--forge-white);\n    position: relative;\n}\n\n#fan-root::before {\n    content: '';\n    position: absolute;\n    top: 0; left: 0; right: 0;\n    height: 2px;\n    background: linear-gradient(90deg, transparent 0%, var(--forge-gold) 20%, var(--forge-gold-light) 50%, var(--forge-gold) 80%, transparent 100%);\n}\n\n.fan-box { text-align: center; animation: fanFadeIn 0.5s var(--transition-smooth); }\n@keyframes fanFadeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }\n\n.fan-title { font-family: var(--font-display); font-size: 1.5em; font-weight: 700; color: var(--forge-gold); margin-bottom: 8px; letter-spacing: 0.08em; text-transform: uppercase; text-shadow: var(--text-shadow); }\n.fan-subtitle { font-size: 1.1em; font-weight: 500; color: var(--forge-silver); margin-bottom: 24px; font-style: italic; text-shadow: var(--text-shadow); }\n\n.fan-langbar { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }\n.fan-lang-btn { background: transparent; color: var(--forge-silver); border: 1px solid var(--forge-steel); padding: 6px 14px; font-family: var(--font-body); font-size: 0.95em; font-weight: 500; border-radius: 2px; cursor: pointer; transition: all 0.25s var(--transition-smooth); }\n.fan-lang-btn:hover { border-color: var(--forge-gold); color: var(--forge-gold); }\n.fan-lang-btn.active { background: var(--forge-gold); color: var(--forge-obsidian); border-color: var(--forge-gold); font-weight: 600; }\n\n.fan-slider { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 24px; }\n.fan-slider-arrow { background: transparent; border: 1px solid var(--forge-steel); color: var(--forge-gold); width: 40px; height: 40px; border-radius: 2px; font-size: 1.2em; cursor: pointer; transition: all 0.25s var(--transition-smooth); }\n.fan-slider-arrow:hover { background: var(--forge-gold); color: var(--forge-obsidian); border-color: var(--forge-gold); }\n.fan-slider-img { width: 200px; height: 130px; border-radius: 2px; overflow: hidden; border: 1px solid var(--forge-steel); }\n.fan-slider-img img { width: 100%; height: 100%; object-fit: cover; filter: sepia(15%) saturate(0.85); transition: opacity 0.3s; }\n\n.fan-step-info { font-family: var(--font-display); font-size: 0.9em; color: var(--forge-gold); letter-spacing: 0.1em; margin-bottom: 16px; text-shadow: var(--text-shadow); }\n.fan-question { font-family: var(--font-display); font-size: 1.15em; font-weight: 600; color: var(--forge-white); margin-bottom: 20px; text-shadow: var(--text-shadow); }\n\n.fan-input { width: 100%; max-width: 350px; padding: 14px 18px; font-family: var(--font-body); font-size: 1.1em; font-weight: 500; border: 1px solid var(--forge-steel); border-radius: 2px; background: var(--forge-graphite); color: var(--forge-white); text-align: center; margin-bottom: 16px; box-sizing: border-box; transition: all 0.25s var(--transition-smooth); }\n.fan-input::placeholder { color: var(--forge-silver); font-style: italic; }\n.fan-input:focus { outline: none; border-color: var(--forge-gold); box-shadow: 0 0 0 3px rgba(201,165,78,0.15); }\n\n.fan-suggestions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 24px; }\n.fan-sug { padding: 10px 18px; border: 1px solid var(--forge-steel); background: transparent; border-radius: 2px; color: var(--forge-white); font-family: var(--font-body); font-size: 1.05em; font-weight: 500; cursor: pointer; transition: all 0.25s var(--transition-smooth); text-shadow: var(--text-shadow); }\n.fan-sug:hover { background: var(--forge-gold); border-color: var(--forge-gold); color: var(--forge-obsidian); transform: translateY(-1px); }\n\n.fan-btn { background: linear-gradient(135deg, var(--forge-gold) 0%, var(--forge-gold-light) 50%, var(--forge-gold) 100%); color: var(--forge-obsidian); border: none; padding: 14px 32px; border-radius: 2px; font-family: var(--font-display); font-size: 0.95em; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: all 0.3s var(--transition-smooth); box-shadow: 0 2px 8px rgba(0,0,0,0.3); text-decoration: none; display: inline-block; margin: 6px; }\n.fan-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-glow); filter: brightness(1.1); }\n.fan-btn-secondary { background: transparent; color: var(--forge-gold); border: 1px solid var(--forge-gold); padding: 12px 24px; font-weight: 600; }\n.fan-btn-secondary:hover { background: var(--forge-gold); color: var(--forge-obsidian); }\n.fan-btn-link { background: none; border: none; color: var(--forge-gold); font-family: var(--font-body); font-size: 1em; font-weight: 600; cursor: pointer; padding: 8px 16px; text-shadow: var(--text-shadow); }\n.fan-btn-link:hover { color: var(--forge-gold-light); }\n\n.fan-loading { padding: 40px 0; }\n.fan-loading-text { font-style: italic; font-size: 1.2em; font-weight: 600; color: var(--forge-gold-pale); margin-bottom: 24px; text-shadow: var(--text-shadow); }\n.fan-spinner { width: 40px; height: 40px; margin: 0 auto; border: 2px solid var(--forge-steel); border-top-color: var(--forge-gold); border-radius: 50%; animation: fanSpin 1s linear infinite; }\n@keyframes fanSpin { to { transform: rotate(360deg); } }\n\n.fan-result-title { font-family: var(--font-display); font-size: 1.4em; font-weight: 700; color: var(--forge-gold); margin-bottom: 20px; text-shadow: var(--text-shadow); }\n.fan-story { background: var(--forge-graphite); border-left: 3px solid var(--forge-gold); padding: 24px; border-radius: 0 2px 2px 0; text-align: left; font-size: 1.1em; font-weight: 500; line-height: 1.8; color: var(--forge-white); white-space: pre-wrap; margin-bottom: 24px; text-shadow: var(--text-shadow); }\n.fan-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 20px; }\n\n.fan-btn-login, .fan-btn-credits { background: linear-gradient(135deg, var(--forge-gold) 0%, var(--forge-gold-light) 50%, var(--forge-gold) 100%) !important; color: var(--forge-obsidian) !important; border: none !important; padding: 18px 48px !important; border-radius: 3px !important; font-family: var(--font-display) !important; font-size: 1.05em !important; font-weight: 700 !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; cursor: pointer !important; text-decoration: none !important; display: inline-block !important; box-shadow: 0 4px 20px rgba(201,165,78,0.4) !important; margin-top: 10px !important; transition: all 0.3s var(--transition-smooth) !important; }\n.fan-btn-login:hover, .fan-btn-credits:hover { transform: translateY(-3px) !important; box-shadow: 0 6px 30px rgba(201,165,78,0.6) !important; filter: brightness(1.1) !important; }\n\n@media (max-width: 600px) { #fan-root { margin: 24px 16px; padding: 28px 20px; } .fan-slider-img { width: 150px; height: 100px; } .fan-actions { flex-direction: column; } .fan-btn { width: 100%; } }\n<\/style>\n\n<div id=\"fan-root\"><div class=\"fan-box\" id=\"fan-content\"><\/div><\/div>\n\n<script>\n(function() {\n    const config = {\n        types: {\"fantastique\":{\"label\":{\"fr\":\"Fantastique\",\"en\":\"Fantasy\",\"es\":\"Fantas\u00eda\",\"it\":\"Fantasia\",\"de\":\"Fantasie\"},\"questions\":{\"fr\":[\"Nom du h\u00e9ros ou de l'h\u00e9ro\u00efne\",\"Un animal ou cr\u00e9ature magique\",\"Un objet fantastique ou maudit\",\"Un lieu \u00e9trange ou myst\u00e9rieux\",\"Un pouvoir surnaturel\",\"Un alli\u00e9 insolite\",\"Un adversaire ou danger\",\"Un \u00e9v\u00e9nement \u00e9trange\",\"Un secret \u00e0 d\u00e9couvrir\",\"Un passage secret ou portail\",\"Un d\u00e9fi \u00e0 relever\",\"Une r\u00e9v\u00e9lation inattendue\",\"La fin de l'aventure\"],\"en\":[\"Hero or heroine's name\",\"A magical animal or creature\",\"A fantastic or cursed object\",\"A strange or mysterious place\",\"A supernatural power\",\"An unusual ally\",\"An enemy or danger\",\"A strange event\",\"A secret to discover\",\"A secret passage or portal\",\"A challenge to face\",\"An unexpected revelation\",\"The end of the adventure\"],\"es\":[\"Nombre del h\u00e9roe o hero\u00edna\",\"Un animal o criatura m\u00e1gica\",\"Un objeto fant\u00e1stico o maldito\",\"Un lugar extra\u00f1o o misterioso\",\"Un poder sobrenatural\",\"Un aliado inusual\",\"Un enemigo o peligro\",\"Un evento extra\u00f1o\",\"Un secreto por descubrir\",\"Un pasaje secreto o portal\",\"Un desaf\u00edo a enfrentar\",\"Una revelaci\u00f3n inesperada\",\"El final de la aventura\"],\"it\":[\"Nome dell'eroe o eroina\",\"Un animale o creatura magica\",\"Un oggetto fantastico o maledetto\",\"Un luogo strano o misterioso\",\"Un potere soprannaturale\",\"Un alleato insolito\",\"Un nemico o pericolo\",\"Un evento strano\",\"Un segreto da scoprire\",\"Un passaggio segreto o portale\",\"Una sfida da affrontare\",\"Una rivelazione inaspettata\",\"La fine dell'avventura\"],\"de\":[\"Name des Helden oder der Heldin\",\"Ein magisches Tier oder Wesen\",\"Ein fantastischer oder verfluchter Gegenstand\",\"Ein seltsamer oder mysteri\u00f6ser Ort\",\"Eine \u00fcbernat\u00fcrliche Kraft\",\"Ein ungew\u00f6hnlicher Verb\u00fcndeter\",\"Ein Feind oder Gefahr\",\"Ein seltsames Ereignis\",\"Ein Geheimnis zu entdecken\",\"Ein geheimer Durchgang oder Portal\",\"Eine Herausforderung\",\"Eine unerwartete Enth\u00fcllung\",\"Das Ende des Abenteuers\"]}}},\n        ui: {\"main_title\":{\"fr\":\"Histoires Fantastiques\",\"en\":\"Fantasy Tales\",\"es\":\"Relatos Fant\u00e1sticos\",\"it\":\"Racconti Fantastici\",\"de\":\"Fantastische Geschichten\"},\"subtitle\":{\"fr\":\"Cr\u00e9e ton aventure magique personnalis\u00e9e\",\"en\":\"Create your personalized magical adventure\",\"es\":\"Crea tu aventura m\u00e1gica personalizada\",\"it\":\"Crea la tua avventura magica\",\"de\":\"Erstelle dein magisches Abenteuer\"},\"intro\":{\"fr\":\"R\u00e9ponds aux questions ou choisis tout au hasard.\",\"en\":\"Answer the questions or fill randomly.\",\"es\":\"Responde o elige al azar.\",\"de\":\"Beantworte oder w\u00e4hle zuf\u00e4llig.\",\"it\":\"Rispondi o scegli a caso.\"},\"random_word\":{\"fr\":\"Mot al\u00e9atoire\",\"en\":\"Random word\",\"es\":\"Palabra aleatoria\",\"it\":\"Parola casuale\",\"de\":\"Zufallswort\"},\"all_random\":{\"fr\":\"Tout au hasard\",\"en\":\"Fill randomly\",\"es\":\"Todo al azar\",\"it\":\"Tutto casuale\",\"de\":\"Alles zuf\u00e4llig\"},\"next\":{\"fr\":\"Suivant\",\"en\":\"Next\",\"es\":\"Siguiente\",\"it\":\"Avanti\",\"de\":\"Weiter\"},\"generate\":{\"fr\":\"G\u00e9n\u00e9rer\",\"en\":\"Generate\",\"es\":\"Generar\",\"it\":\"Genera\",\"de\":\"Generieren\"},\"pdf\":{\"fr\":\"T\u00e9l\u00e9charger PDF\",\"en\":\"Download PDF\",\"es\":\"Descargar PDF\",\"de\":\"PDF herunterladen\",\"it\":\"Scarica PDF\"},\"whatsapp\":{\"fr\":\"Partager\",\"en\":\"Share\",\"es\":\"Compartir\",\"de\":\"Teilen\",\"it\":\"Condividi\"},\"new\":{\"fr\":\"Nouvelle histoire\",\"en\":\"New story\",\"es\":\"Nueva historia\",\"de\":\"Neue Geschichte\",\"it\":\"Nuova storia\"},\"generating\":{\"fr\":\"Cr\u00e9ation de ton aventure\u2026\",\"en\":\"Creating your adventure\u2026\",\"es\":\"Creando tu aventura\u2026\",\"de\":\"Abenteuer wird erstellt\u2026\",\"it\":\"Creazione dell'avventura\u2026\"},\"question\":{\"fr\":\"Question\",\"en\":\"Question\",\"es\":\"Pregunta\",\"de\":\"Frage\",\"it\":\"Domanda\"},\"login_welcome\":{\"fr\":\"Bienvenue\",\"en\":\"Welcome\",\"es\":\"Bienvenido\",\"de\":\"Willkommen\",\"it\":\"Benvenuto\"},\"login_text\":{\"fr\":\"Connecte-toi pour cr\u00e9er tes histoires.\",\"en\":\"Log in to create your stories.\",\"es\":\"Inicia sesi\u00f3n para crear tus historias.\",\"de\":\"Melde dich an f\u00fcr deine Geschichten.\",\"it\":\"Accedi per creare le tue storie.\"},\"login_btn\":{\"fr\":\"Connexion \\\/ Inscription\",\"en\":\"Login \\\/ Sign up\",\"es\":\"Iniciar sesi\u00f3n\",\"de\":\"Anmelden\",\"it\":\"Accedi\"},\"credits_text\":{\"fr\":\"Tu n'as plus de cr\u00e9dits.\",\"en\":\"You're out of credits.\",\"es\":\"No tienes cr\u00e9ditos.\",\"de\":\"Keine Credits mehr.\",\"it\":\"Crediti esauriti.\"},\"credits_btn\":{\"fr\":\"Acheter des cr\u00e9dits\",\"en\":\"Buy credits\",\"es\":\"Comprar cr\u00e9ditos\",\"de\":\"Credits kaufen\",\"it\":\"Acquista crediti\"}},\n        languages: [{\"key\":\"fr\",\"label\":\"Fran\u00e7ais\",\"flag\":\"\ud83c\uddeb\ud83c\uddf7\"},{\"key\":\"en\",\"label\":\"English\",\"flag\":\"\ud83c\uddec\ud83c\udde7\"},{\"key\":\"es\",\"label\":\"Espa\u00f1ol\",\"flag\":\"\ud83c\uddea\ud83c\uddf8\"},{\"key\":\"it\",\"label\":\"Italiano\",\"flag\":\"\ud83c\uddee\ud83c\uddf9\"},{\"key\":\"de\",\"label\":\"Deutsch\",\"flag\":\"\ud83c\udde9\ud83c\uddea\"}],\n        suggestions: {\"fr\":[[\"Lila\",\"Arthur\",\"Morgane\",\"Th\u00e9o\"],[\"Dragon d'argent\",\"Licorne farceuse\",\"Chat ail\u00e9\",\"Loup invisible\"],[\"Anneau oubli\u00e9\",\"B\u00e2ton du temps\",\"Miroir de l'ombre\",\"Grimoire vivant\"],[\"For\u00eat sans fin\",\"Ch\u00e2teau volant\",\"Grotte de cristal\",\"\u00cele flottante\"],[\"Invisibilit\u00e9\",\"Parler aux animaux\",\"Contr\u00f4ler le vent\",\"Changer de forme\"],[\"Elfe maladroit\",\"Gnome savant\",\"Souris g\u00e9ante\",\"Esprit de la brume\"],[\"Sorci\u00e8re jalouse\",\"Ombre mouvante\",\"Garde de pierre\",\"Cyclope\"],[\"Nuit sans \u00e9toiles\",\"Porte qui dispara\u00eet\",\"Pluie de lucioles\",\"Murmures \u00e9tranges\"],[\"Carte magique\",\"C\u0153ur cach\u00e9\",\"Nom oubli\u00e9\",\"Proph\u00e9tie ancienne\"],[\"Escalier dans le ciel\",\"Puits sans fond\",\"Porte dans l'arbre\",\"Pont de brume\"],[\"Sauver un ami\",\"R\u00e9soudre une \u00e9nigme\",\"Trouver la cl\u00e9\",\"Traverser un labyrinthe\"],[\"Vraie nature r\u00e9v\u00e9l\u00e9e\",\"Tr\u00e9sor perdu retrouv\u00e9\",\"Pacte r\u00e9v\u00e9l\u00e9\",\"Alli\u00e9 trahi\"],[\"Retour chez soi\",\"Nouveau d\u00e9part\",\"Monde transform\u00e9\",\"H\u00e9ros chang\u00e9\"]],\"en\":[[\"Lila\",\"Arthur\",\"Morgan\",\"Theo\"],[\"Silver dragon\",\"Mischievous unicorn\",\"Winged cat\",\"Invisible wolf\"],[\"Forgotten ring\",\"Staff of time\",\"Shadow mirror\",\"Living grimoire\"],[\"Endless forest\",\"Flying castle\",\"Crystal cave\",\"Floating island\"],[\"Invisibility\",\"Talking to animals\",\"Controlling wind\",\"Shapeshifting\"],[\"Clumsy elf\",\"Wise gnome\",\"Giant mouse\",\"Mist spirit\"],[\"Jealous witch\",\"Moving shadow\",\"Stone guard\",\"Cyclops\"],[\"Starless night\",\"Disappearing door\",\"Firefly rain\",\"Strange whispers\"],[\"Magic map\",\"Hidden heart\",\"Forgotten name\",\"Ancient prophecy\"],[\"Stairway to sky\",\"Bottomless well\",\"Door in tree\",\"Bridge of mist\"],[\"Save a friend\",\"Solve a riddle\",\"Find the key\",\"Cross a maze\"],[\"True nature revealed\",\"Lost treasure found\",\"Revealed pact\",\"Betrayed ally\"],[\"Return home\",\"New beginning\",\"Transformed world\",\"Changed hero\"]],\"es\":[[\"Lila\",\"Arturo\",\"Morgana\",\"Teo\"],[\"Drag\u00f3n plateado\",\"Unicornio travieso\",\"Gato alado\",\"Lobo invisible\"],[\"Anillo olvidado\",\"Bast\u00f3n del tiempo\",\"Espejo de sombra\",\"Grimorio viviente\"],[\"Bosque sin fin\",\"Castillo volador\",\"Cueva de cristal\",\"Isla flotante\"],[\"Invisibilidad\",\"Hablar con animales\",\"Controlar el viento\",\"Cambiar de forma\"],[\"Elfo torpe\",\"Gnomo sabio\",\"Rat\u00f3n gigante\",\"Esp\u00edritu de niebla\"],[\"Bruja celosa\",\"Sombra m\u00f3vil\",\"Guardia de piedra\",\"C\u00edclope\"],[\"Noche sin estrellas\",\"Puerta que desaparece\",\"Lluvia de luci\u00e9rnagas\",\"Susurros extra\u00f1os\"],[\"Mapa m\u00e1gico\",\"Coraz\u00f3n oculto\",\"Nombre olvidado\",\"Profec\u00eda antigua\"],[\"Escalera al cielo\",\"Pozo sin fondo\",\"Puerta en el \u00e1rbol\",\"Puente de niebla\"],[\"Salvar a un amigo\",\"Resolver un acertijo\",\"Encontrar la llave\",\"Cruzar un laberinto\"],[\"Naturaleza revelada\",\"Tesoro encontrado\",\"Pacto revelado\",\"Aliado traicionado\"],[\"Regreso a casa\",\"Nuevo comienzo\",\"Mundo transformado\",\"H\u00e9roe cambiado\"]],\"it\":[[\"Lila\",\"Arturo\",\"Morgana\",\"Teo\"],[\"Drago d'argento\",\"Unicorno dispettoso\",\"Gatto alato\",\"Lupo invisibile\"],[\"Anello dimenticato\",\"Bastone del tempo\",\"Specchio d'ombra\",\"Grimorio vivente\"],[\"Foresta infinita\",\"Castello volante\",\"Grotta di cristallo\",\"Isola galleggiante\"],[\"Invisibilit\u00e0\",\"Parlare con animali\",\"Controllare il vento\",\"Mutaforma\"],[\"Elfo maldestro\",\"Gnomo saggio\",\"Topo gigante\",\"Spirito della nebbia\"],[\"Strega gelosa\",\"Ombra mobile\",\"Guardia di pietra\",\"Ciclope\"],[\"Notte senza stelle\",\"Porta che scompare\",\"Pioggia di lucciole\",\"Sussurri strani\"],[\"Mappa magica\",\"Cuore nascosto\",\"Nome dimenticato\",\"Profezia antica\"],[\"Scala verso il cielo\",\"Pozzo senza fondo\",\"Porta nell'albero\",\"Ponte di nebbia\"],[\"Salvare un amico\",\"Risolvere enigma\",\"Trovare la chiave\",\"Attraversare labirinto\"],[\"Vera natura rivelata\",\"Tesoro ritrovato\",\"Patto rivelato\",\"Alleato tradito\"],[\"Ritorno a casa\",\"Nuovo inizio\",\"Mondo trasformato\",\"Eroe cambiato\"]],\"de\":[[\"Lila\",\"Arthur\",\"Morgana\",\"Theo\"],[\"Silberdrache\",\"Schelmisches Einhorn\",\"Gefl\u00fcgelte Katze\",\"Unsichtbarer Wolf\"],[\"Vergessener Ring\",\"Stab der Zeit\",\"Schattenspiegel\",\"Lebendes Grimoire\"],[\"Endloser Wald\",\"Fliegendes Schloss\",\"Kristallh\u00f6hle\",\"Schwebende Insel\"],[\"Unsichtbarkeit\",\"Mit Tieren sprechen\",\"Wind kontrollieren\",\"Gestaltwandeln\"],[\"Tollpatschiger Elf\",\"Weiser Gnom\",\"Riesenmaus\",\"Nebelgeist\"],[\"Eifers\u00fcchtige Hexe\",\"Beweglicher Schatten\",\"Steinw\u00e4chter\",\"Zyklop\"],[\"Sternenlose Nacht\",\"Verschwindende T\u00fcr\",\"Gl\u00fchw\u00fcrmchenregen\",\"Seltsame Fl\u00fcstern\"],[\"Magische Karte\",\"Verborgenes Herz\",\"Vergessener Name\",\"Alte Prophezeiung\"],[\"Treppe zum Himmel\",\"Bodenloser Brunnen\",\"T\u00fcr im Baum\",\"Nebelbr\u00fccke\"],[\"Freund retten\",\"R\u00e4tsel l\u00f6sen\",\"Schl\u00fcssel finden\",\"Labyrinth durchqueren\"],[\"Wahre Natur enth\u00fcllt\",\"Verlorener Schatz\",\"Pakt enth\u00fcllt\",\"Verratener Verb\u00fcndeter\"],[\"Heimkehr\",\"Neubeginn\",\"Verwandelte Welt\",\"Ver\u00e4nderter Held\"]]},\n        covers: ['\/wp-content\/uploads\/2025\/cover\/fantastique1.jpg','\/wp-content\/uploads\/2025\/cover\/fantastique2.jpg','\/wp-content\/uploads\/2025\/cover\/fantastique3.jpg','\/wp-content\/uploads\/2025\/cover\/fantastique4.jpg'],\n        ajaxUrl: 'https:\/\/crehistor.com\/wp-admin\/admin-ajax.php'\n    };\n\n    const userState = {\n        loggedIn: false,\n        credits: 0    };\n\n    let state = { lang: localStorage.getItem('fan_lang') || 'fr', step: 0, answers: [], coverIndex: 0, generated: null };\n    let sliderTimer;\n\n    function tr(key) { return config.ui[key] && config.ui[key][state.lang] ? config.ui[key][state.lang] : (config.ui[key] ? config.ui[key]['fr'] : key); }\n    function setLang(lang) { state.lang = lang; localStorage.setItem('fan_lang', lang); }\n\n    function renderLangBar() { return `<div class=\"fan-langbar\">${config.languages.map(l => `<button class=\"fan-lang-btn${state.lang === l.key ? ' active' : ''}\" data-lang=\"${l.key}\">${l.flag} ${l.label}<\/button>`).join('')}<\/div>`; }\n\n    function renderSlider() {\n        const img = config.covers[state.coverIndex % config.covers.length];\n        return `<div class=\"fan-slider\"><button class=\"fan-slider-arrow\" id=\"fan-prev\">\u25c0<\/button><div class=\"fan-slider-img\"><img decoding=\"async\" src=\"${img}\"><\/div><button class=\"fan-slider-arrow\" id=\"fan-next\">\u25b6<\/button><\/div>`;\n    }\n\n    function startSlider() {\n        if (sliderTimer) clearTimeout(sliderTimer);\n        sliderTimer = setTimeout(() => { state.coverIndex = (state.coverIndex + 1) % config.covers.length; const img = document.querySelector('.fan-slider-img img'); if (img) { img.style.opacity = '0'; setTimeout(() => { img.src = config.covers[state.coverIndex]; img.style.opacity = '1'; }, 300); } startSlider(); }, 3500);\n    }\n\n    function stopSlider() { if (sliderTimer) clearTimeout(sliderTimer); }\n\n    function bindLangButtons() { document.querySelectorAll('.fan-lang-btn').forEach(btn => { btn.onclick = () => { setLang(btn.dataset.lang); state.step = 0; state.answers = []; state.generated = null; render(); }; }); }\n\n    function bindSliderButtons() {\n        const prev = document.getElementById('fan-prev');\n        const next = document.getElementById('fan-next');\n        if (prev) prev.onclick = () => { state.coverIndex = (state.coverIndex + config.covers.length - 1) % config.covers.length; render(); };\n        if (next) next.onclick = () => { state.coverIndex = (state.coverIndex + 1) % config.covers.length; render(); };\n    }\n\n    function fillAllRandom() {\n        const qs = config.types.fantastique.questions[state.lang] || config.types.fantastique.questions.fr;\n        const suggs = config.suggestions[state.lang] || config.suggestions.fr;\n        state.answers = qs.map((_, i) => { const arr = suggs[i] || []; return arr[Math.floor(Math.random() * arr.length)] || ''; });\n        state.step = qs.length;\n        render();\n        setTimeout(generate, 300);\n    }\n\n    function render() {\n        const root = document.getElementById('fan-content');\n        const qs = config.types.fantastique.questions[state.lang] || config.types.fantastique.questions.fr;\n\n        if (!userState.loggedIn) {\n            root.innerHTML = `${renderLangBar()}${renderSlider()}<h1 class=\"fan-title\">${tr('login_welcome')}<\/h1><p class=\"fan-subtitle\">${tr('login_text')}<\/p><button class=\"fan-btn-login xoo-el-login-tgr\">${tr('login_btn')}<\/button>`;\n            bindLangButtons(); startSlider(); bindSliderButtons(); return;\n        }\n\n        if (userState.credits < 1) {\n            root.innerHTML = `${renderLangBar()}${renderSlider()}<h1 class=\"fan-title\">${tr('login_welcome')}<\/h1><p class=\"fan-subtitle\">${tr('credits_text')}<\/p><a href=\"\/boutique\" class=\"fan-btn-credits\">${tr('credits_btn')}<\/a>`;\n            bindLangButtons(); startSlider(); bindSliderButtons(); return;\n        }\n\n        if (state.step === 0) {\n            root.innerHTML = `${renderLangBar()}${renderSlider()}<h1 class=\"fan-title\">${tr('main_title')}<\/h1><p class=\"fan-subtitle\">${tr('subtitle')}<\/p><div class=\"fan-actions\"><button class=\"fan-btn\" id=\"fan-start\">${tr('next')}<\/button><button class=\"fan-btn fan-btn-secondary\" id=\"fan-all-random\">${tr('all_random')}<\/button><\/div>`;\n            bindLangButtons(); startSlider(); bindSliderButtons();\n            document.getElementById('fan-start').onclick = () => { state.step = 1; render(); };\n            document.getElementById('fan-all-random').onclick = fillAllRandom;\n            return;\n        }\n\n        if (state.step >= 1 && state.step <= qs.length) {\n            stopSlider();\n            const qIndex = state.step - 1;\n            const q = qs[qIndex];\n            const suggs = (config.suggestions[state.lang] || config.suggestions.fr)[qIndex] || [];\n\n            root.innerHTML = `${renderLangBar()}<div class=\"fan-step-info\">${tr('question')} ${state.step} \/ ${qs.length}<\/div><div class=\"fan-question\">${q}<\/div><input type=\"text\" class=\"fan-input\" id=\"fan-answer\" value=\"${state.answers[qIndex] || ''}\" autocomplete=\"off\"><div class=\"fan-suggestions\">${suggs.map(s => `<button class=\"fan-sug\">${s}<\/button>`).join('')}<\/div><div class=\"fan-actions\"><button class=\"fan-btn-link\" id=\"fan-random\">${tr('random_word')}<\/button><button class=\"fan-btn-link\" id=\"fan-all-random\">${tr('all_random')}<\/button><\/div><div class=\"fan-actions\"><button class=\"fan-btn\" id=\"fan-next\">${state.step < qs.length ? tr('next') : tr('generate')}<\/button><\/div>`;\n\n            bindLangButtons();\n            document.getElementById('fan-answer').focus();\n            document.getElementById('fan-answer').onkeydown = e => { if (e.key === 'Enter') document.getElementById('fan-next').click(); };\n            document.querySelectorAll('.fan-sug').forEach(btn => { btn.onclick = () => document.getElementById('fan-answer').value = btn.textContent; });\n            document.getElementById('fan-random').onclick = () => { const w = suggs[Math.floor(Math.random() * suggs.length)] || ''; document.getElementById('fan-answer').value = w; };\n            document.getElementById('fan-all-random').onclick = fillAllRandom;\n            document.getElementById('fan-next').onclick = () => { const val = document.getElementById('fan-answer').value.trim(); if (!val) return; state.answers[qIndex] = val; state.step++; if (state.step > qs.length) generate(); else render(); };\n            return;\n        }\n\n        if (state.generated) renderResult();\n    }\n\n    function generate() {\n        const root = document.getElementById('fan-content');\n        root.innerHTML = `${renderLangBar()}<div class=\"fan-loading\"><div class=\"fan-loading-text\">${tr('generating')}<\/div><div class=\"fan-spinner\"><\/div><\/div>`;\n        bindLangButtons();\n\n        fetch(config.ajaxUrl + '?action=fantastique_generate', { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ type: 'fantastique', lang: state.lang, answers: state.answers }) })\n        .then(r => r.json())\n        .then(data => { state.generated = data; if (userState.credits > 0) userState.credits--; renderResult(); })\n        .catch(() => { state.generated = { title: 'Erreur', story: '\u00c9chec de la g\u00e9n\u00e9ration.' }; renderResult(); });\n    }\n\n    function renderResult() {\n        const root = document.getElementById('fan-content');\n        const data = state.generated;\n        root.innerHTML = `${renderLangBar()}<div class=\"fan-result-title\">${data.title}<\/div><div class=\"fan-story\">${(data.story || '').replace(\/\\n\/g, '<br>')}<\/div><div class=\"fan-actions\"><button class=\"fan-btn\" id=\"fan-pdf\">\ud83d\udcc4 ${tr('pdf')}<\/button><a href=\"https:\/\/wa.me\/?text=${encodeURIComponent(data.title + '\\n\\n' + data.story)}\" target=\"_blank\" class=\"fan-btn fan-btn-secondary\">\ud83d\udcf1 ${tr('whatsapp')}<\/a><\/div><div class=\"fan-actions\" style=\"margin-top:12px;\">${userState.credits > 0 ? `<button class=\"fan-btn fan-btn-secondary\" id=\"fan-new\">\ud83d\udd04 ${tr('new')}<\/button>` : `<a href=\"\/boutique\" class=\"fan-btn-credits\">${tr('credits_btn')}<\/a>`}<\/div>`;\n        bindLangButtons();\n        document.getElementById('fan-pdf').onclick = () => generatePDF(data.title, data.story);\n        const newBtn = document.getElementById('fan-new');\n        if (newBtn) newBtn.onclick = () => { state.step = 0; state.answers = []; state.generated = null; render(); };\n    }\n\n    function generatePDF(title, story) {\n        const { jsPDF } = window.jspdf;\n        const doc = new jsPDF();\n        const pageWidth = doc.internal.pageSize.getWidth();\n        const pageHeight = doc.internal.pageSize.getHeight();\n        const margin = 20;\n        let y = margin;\n\n        doc.setFillColor(250, 250, 248); doc.rect(0, 0, pageWidth, pageHeight, 'F');\n        doc.setDrawColor(201, 165, 78); doc.setLineWidth(1.5); doc.line(margin, 15, pageWidth - margin, 15);\n\n        y = 30;\n        doc.setFont('helvetica', 'bold'); doc.setFontSize(18); doc.setTextColor(201, 165, 78);\n        doc.text('HISTOIRE FANTASTIQUE', pageWidth \/ 2, y, { align: 'center' });\n\n        y += 12;\n        doc.setFontSize(14); doc.setTextColor(60, 60, 60);\n        const titleLines = doc.splitTextToSize(title, pageWidth - margin * 2);\n        titleLines.forEach(line => { doc.text(line, pageWidth \/ 2, y, { align: 'center' }); y += 7; });\n\n        y += 8;\n        doc.setDrawColor(201, 165, 78); doc.setLineWidth(0.5); doc.line(margin + 40, y, pageWidth - margin - 40, y);\n\n        y += 12;\n        doc.setFont('helvetica', 'normal'); doc.setFontSize(11); doc.setTextColor(40, 40, 40);\n        const lines = doc.splitTextToSize(story, pageWidth - margin * 2);\n        lines.forEach(line => { if (y > pageHeight - 25) { doc.addPage(); doc.setFillColor(250, 250, 248); doc.rect(0, 0, pageWidth, pageHeight, 'F'); y = margin; } doc.text(line, margin, y); y += 6; });\n\n        const footerY = pageHeight - 12;\n        doc.setDrawColor(201, 165, 78); doc.setLineWidth(0.3); doc.line(margin, footerY - 5, pageWidth - margin, footerY - 5);\n        doc.setFontSize(9); doc.setTextColor(150, 150, 150);\n        doc.text('G\u00e9n\u00e9r\u00e9 par Fantastique Parfait \u2014 crehistor.com', pageWidth \/ 2, footerY, { align: 'center' });\n        doc.text(new Date().toLocaleDateString('fr-FR'), pageWidth - margin, footerY, { align: 'right' });\n\n        doc.save('Histoire_Fantastique_' + title.replace(\/[^a-zA-Z0-9]\/g, '_').substring(0, 25) + '.pdf');\n    }\n\n    render();\n})();\n<\/script>\n\n<\/div>\n\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-2aa4d16 e-con-full e-flex e-con e-child\" data-id=\"2aa4d16\" data-element_type=\"container\">\n\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":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","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":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","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-1735","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/pages\/1735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/comments?post=1735"}],"version-history":[{"count":12,"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/pages\/1735\/revisions"}],"predecessor-version":[{"id":2806,"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/pages\/1735\/revisions\/2806"}],"wp:attachment":[{"href":"https:\/\/crehistor.com\/en\/wp-json\/wp\/v2\/media?parent=1735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}