{"id":764,"date":"2026-03-01T12:45:25","date_gmt":"2026-03-01T12:45:25","guid":{"rendered":"https:\/\/tirage-oracle.com\/?page_id=764"},"modified":"2026-03-28T00:39:14","modified_gmt":"2026-03-28T00:39:14","slug":"tirage-de-marseille","status":"publish","type":"page","link":"https:\/\/tirage-oracle.com\/en\/tirage-de-marseille\/","title":{"rendered":"Tarot de Marseille"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"764\" class=\"elementor elementor-764\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a2530ce elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"3a2530ce\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2a94bbfe e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-child\" data-id=\"2a94bbfe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb32080 elementor-widget__width-initial elementor-widget elementor-widget-theme-site-logo elementor-widget-image\" data-id=\"fb32080\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-site-logo.default\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/tirage-oracle.com\/en\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2312\" height=\"2040\" src=\"https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle.jpg\" class=\"attachment-full size-full wp-image-3131\" alt=\"Tirage Oracle - Logo officiel du site de tirage tarot et oracle gratuit en ligne\" srcset=\"https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle.jpg 2312w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-600x529.jpg 600w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-300x265.jpg 300w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-1024x904.jpg 1024w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-768x678.jpg 768w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-1536x1355.jpg 1536w, https:\/\/tirage-oracle.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-tirage_oracle-2048x1807.jpg 2048w\" sizes=\"(max-width: 2312px) 100vw, 2312px\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3392f910 elementor-nav-menu--stretch elementor-widget-mobile__width-auto elementor-widget__width-inherit elementor-nav-menu__text-align-aside elementor-nav-menu--toggle elementor-nav-menu--burger elementor-widget elementor-widget-nav-menu\" data-id=\"3392f910\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;full_width&quot;:&quot;stretch&quot;,&quot;layout&quot;:&quot;dropdown&quot;,&quot;submenu_icon&quot;:{&quot;value&quot;:&quot;&lt;svg aria-hidden=\\&quot;true\\&quot; class=\\&quot;e-font-icon-svg e-fas-caret-down\\&quot; viewBox=\\&quot;0 0 320 512\\&quot; xmlns=\\&quot;http:\\\/\\\/www.w3.org\\\/2000\\\/svg\\&quot;&gt;&lt;path d=\\&quot;M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\&quot;&gt;&lt;\\\/path&gt;&lt;\\\/svg&gt;&quot;,&quot;library&quot;:&quot;fa-solid&quot;},&quot;toggle&quot;:&quot;burger&quot;}\" data-widget_type=\"nav-menu.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-toggle\" role=\"button\" tabindex=\"0\" aria-label=\"Menu Toggle\" aria-expanded=\"false\" data-no-translation-aria-label=\"\">\n\t\t\t<svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--open e-font-icon-svg e-eicon-menu-bar\" viewbox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M104 333H896C929 333 958 304 958 271S929 208 896 208H104C71 208 42 237 42 271S71 333 104 333ZM104 583H896C929 583 958 554 958 521S929 458 896 458H104C71 458 42 487 42 521S71 583 104 583ZM104 833H896C929 833 958 804 958 771S929 708 896 708H104C71 708 42 737 42 771S71 833 104 833Z\"><\/path><\/svg><svg aria-hidden=\"true\" role=\"presentation\" class=\"elementor-menu-toggle__icon--close e-font-icon-svg e-eicon-close\" viewbox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z\"><\/path><\/svg>\t\t<\/div>\n\t\t\t\t\t<nav class=\"elementor-nav-menu--dropdown elementor-nav-menu__container\" aria-hidden=\"true\">\n\t\t\t\t<ul id=\"menu-2-3392f910\" class=\"elementor-nav-menu\"><li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-3128\"><a href=\"https:\/\/tirage-oracle.com\/en\/\" class=\"elementor-item\" tabindex=\"-1\">L\u2019Oracle de Belline<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-994\"><a href=\"https:\/\/tirage-oracle.com\/en\/tarot-de-lamour\/\" class=\"elementor-item\" tabindex=\"-1\">Tarot de L&rsquo; Amour<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-764 current_page_item menu-item-767\"><a href=\"https:\/\/tirage-oracle.com\/en\/tirage-de-marseille\/\" aria-current=\"page\" class=\"elementor-item elementor-item-active\" tabindex=\"-1\">Tarot de Marseille<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-680\"><a href=\"https:\/\/tirage-oracle.com\/en\/loracle-des-anges\/\" class=\"elementor-item\" tabindex=\"-1\">L\u2019Oracle des Anges<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-724\"><a href=\"https:\/\/tirage-oracle.com\/en\/pendule-oui-non\/\" class=\"elementor-item\" tabindex=\"-1\">Pendule Oui \/ Non<\/a><\/li>\n<li class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3768\"><a href=\"https:\/\/tirage-oracle.com\/en\/elementor-page-3734\/\" class=\"elementor-item\" tabindex=\"-1\">panier<\/a><\/li>\n<\/ul>\t\t\t<\/nav>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f161e3c e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"f161e3c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_range&quot;:&quot;page&quot;,&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_motion_fx_opacity_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_opacity_level&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:4.6,&quot;sizes&quot;:[]},&quot;background_motion_fx_opacity_direction&quot;:&quot;out-in&quot;,&quot;background_motion_fx_opacity_range&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:20,&quot;end&quot;:80}},&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t<div class=\"elementor-element elementor-element-17d9bddc e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-child\" data-id=\"17d9bddc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-28fd696d elementor-widget elementor-widget-html\" data-id=\"28fd696d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n:root{\n  --bg-dark:#1a0b2e;\n  --bg-mid:#2d1b69;\n  --gold:#d4af37;\n  --gold-soft:#f2dc8c;\n  --white:#f8f4e6;\n  --shadow:0 10px 30px rgba(0,0,0,0.32);\n}\nhtml{scroll-behavior:smooth;}\n#hero{\n  min-height:80vh;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n  padding:2rem;\n  position:relative;\n  color:var(--white);\n}\n#hero::after{\n  content:\"\";\n  position:absolute; inset:0;\n  background:\n    radial-gradient(circle at 50% 20%, rgba(255,255,255,0.08), transparent 55%),\n    radial-gradient(circle at 70% 80%, rgba(212,175,55,0.08), transparent 55%);\n  pointer-events:none;\n}\n#hero .hero-content{position:relative;z-index:1;}\n#hero h1{\n  font-size:clamp(2.2rem,5vw,4rem);\n  background:linear-gradient(45deg,var(--gold),#ffd700);\n  -webkit-background-clip:text;\n  -webkit-text-fill-color:transparent;\n  margin-bottom:1.2rem;\n  text-shadow:0 0 30px rgba(212,175,55,0.5);\n}\n#hero p{\n  font-size:1.15rem;\n  max-width:760px;\n  margin:0 auto 1rem;\n  opacity:.92;\n}\n#startBtn{\n  border:none;\n  border-radius:999px;\n  padding:1rem 2.15rem;\n  font-size:1.04rem;\n  font-weight:800;\n  cursor:pointer;\n  transition:all .28s ease;\n  box-shadow:var(--shadow);\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:.45rem;\n  min-height:50px;\n  line-height:1.15;\n  max-width:100%;\n  white-space:normal;\n  text-align:center;\n  background:linear-gradient(45deg,var(--gold),var(--gold-soft));\n  color:#221233;\n  text-decoration:none;\n}\n#startBtn:hover{transform:translateY(-2px);}\n@media (max-width:520px){\n  #hero{padding:1.2rem;min-height:72vh;}\n}\n<\/style>\n\n<section class=\"hero\" id=\"hero\">\n    <div class=\"hero-content\">\n      <h1>\u2728 Le Tarot peut t\u2019aider \u00e0 y voir clair<\/h1>\n      <p>Pose ta question. Tire tes cartes. D\u00e9couvre un message clair et bienveillant pour avancer \u2014 amour, travail, d\u00e9cisions importantes.<\/p>\n      <p style=\"font-size:1.05rem;opacity:.82;margin-bottom:2rem;\">Simple \u2022 Rapide \u2022 100% confidentiel<\/p>\n      <a href=\"#tarot\" class=\"btn-gold\" id=\"startBtn\">Commencer mon tirage gratuit<\/a>\n    <\/div>\n  <\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-74e6a420 elementor-widget elementor-widget-html\" data-id=\"74e6a420\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n:root{\n  --bg-dark:#1a0b2e;\n  --bg-mid:#2d1b69;\n  --gold:#d4af37;\n  --gold-soft:#f2dc8c;\n  --wine:#8e365d;\n  --wine-soft:#f2c7d8;\n  --white:#f8f4e6;\n  --shadow:0 10px 30px rgba(0,0,0,0.32);\n  --shadow-hover:0 20px 40px rgba(212,175,55,0.28);\n  --safe-b: env(safe-area-inset-bottom, 0px);\n  --safe-r: env(safe-area-inset-right, 0px);\n  --safe-t: env(safe-area-inset-top, 0px);\n  --safe-l: env(safe-area-inset-left, 0px);\n}\n#tarot{\n  padding:4rem 2rem;\n  max-width:1200px;\n  margin:0 auto;\n  color:var(--white);\n}\n#tarot .section-title{\n  text-align:center;\n  font-size:clamp(1.85rem,4vw,2.5rem);\n  margin-bottom:1.15rem;\n  color:var(--gold);\n}\n#hintText{\n  text-align:center;\n  max-width:760px;\n  margin:0 auto 1.6rem;\n  opacity:.92;\n}\n#theme-grid{\n  display:grid;\n  grid-template-columns:repeat(4, minmax(170px, 1fr));\n  gap:1.2rem;\n  max-width:1100px;\n  margin:0 auto 2rem;\n}\n#tarot .theme-btn{\n  background:rgba(255,255,255,0.08);\n  border:2px solid transparent;\n  border-radius:18px;\n  padding:1.35rem 1.1rem;\n  cursor:pointer;\n  transition:all .25s ease;\n  box-shadow:var(--shadow);\n  text-align:center;\n  user-select:none;\n}\n#tarot .theme-btn:hover{\n  transform:translateY(-2px);\n  border-color:rgba(212,175,55,0.7);\n  box-shadow:var(--shadow-hover);\n}\n#tarot .theme-btn.selected{\n  border-color:var(--gold);\n  background:rgba(212,175,55,0.18);\n}\n#tarot .theme-icon{\n  font-size:1.8rem;\n  display:block;\n  margin-bottom:.35rem;\n}\n#tarot .theme-label{\n  font-weight:bold;\n  font-size:1.05rem;\n}\n#namebox{\n  display:none;\n  max-width:650px;\n  margin:1.2rem auto 2rem;\n  text-align:center;\n  padding:1.6rem;\n  background:rgba(255,255,255,0.09);\n  border-radius:20px;\n  backdrop-filter:blur(10px);\n  box-shadow:var(--shadow);\n  border:1px solid rgba(212,175,55,0.14);\n}\n#namebox label{\n  display:block;\n  font-weight:800;\n  margin-bottom:.7rem;\n  color:var(--white);\n  opacity:.95;\n}\n#namebox input{\n  width:100%;\n  max-width:420px;\n  padding:1rem 1.2rem;\n  border:none;\n  border-radius:999px;\n  font-size:1.05rem;\n  outline:none;\n}\n#namebox .micro{\n  margin-top:.7rem;\n  font-size:1rem;\n  opacity:.85;\n}\n#confirmNameBtn,#nextBtn{\n  background:linear-gradient(45deg,var(--gold),var(--gold-soft));\n  color:#221233;\n}\n#resetBtn{\n  background:linear-gradient(45deg,var(--wine),var(--wine-soft));\n  color:#2d0d1b;\n}\n#confirmNameBtn,#resetBtn,#nextBtn{\n  border:none;\n  border-radius:999px;\n  padding:1rem 2.15rem;\n  font-size:1.04rem;\n  font-weight:800;\n  cursor:pointer;\n  transition:all .28s ease;\n  box-shadow:var(--shadow);\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:.45rem;\n  min-height:50px;\n  line-height:1.15;\n  max-width:100%;\n  white-space:normal;\n  text-align:center;\n}\n#confirmNameBtn:hover,#resetBtn:hover,#nextBtn:hover{transform:translateY(-2px);}\n#counter{\n  position:fixed;\n  top:calc(1rem + var(--safe-t));\n  right:calc(1rem + var(--safe-r));\n  background:rgba(0,0,0,0.8);\n  color:var(--gold);\n  padding:.8rem 1.05rem;\n  border-radius:999px;\n  font-weight:800;\n  z-index:1000;\n  border:1px solid rgba(212,175,55,0.18);\n  pointer-events:none;\n  font-size:.95rem;\n}\n.deck-wrap{\n  display:flex;\n  justify-content:center;\n  align-items:flex-end;\n  padding:1rem 0 1.4rem;\n}\n.deck-shell{\n  width:min(1040px, 96vw);\n  max-width:100%;\n  position:relative;\n}\n.deck-shell::before{\n  content:\"\";\n  position:absolute;\n  inset:auto 4% 10px;\n  height:28px;\n  border-radius:999px;\n  background:radial-gradient(closest-side, rgba(0,0,0,0.38), transparent 72%);\n  filter:blur(8px);\n  pointer-events:none;\n  z-index:0;\n}\n#tarot-deck{\n  position:relative;\n  width:100%;\n  height:310px;\n  border-radius:24px;\n  overflow:hidden;\n  user-select:none;\n  touch-action:pan-x;\n  transition:opacity .25s ease, filter .25s ease;\n  background:\n    radial-gradient(900px 320px at 50% 28%, rgba(255,255,255,0.16), rgba(255,255,255,0.04) 44%, rgba(0,0,0,0) 72%),\n    radial-gradient(640px 260px at 50% 100%, rgba(212,175,55,0.10), transparent 70%),\n    linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.00)),\n    linear-gradient(135deg, rgba(16,8,30,0.96), rgba(45,27,105,0.92));\n  border:1px solid rgba(255,255,255,0.18);\n  box-shadow:\n    inset 0 1px 0 rgba(255,255,255,0.08),\n    0 18px 44px rgba(0,0,0,0.46);\n  z-index:1;\n  scroll-behavior:smooth;\n}\n#tarot-deck::before{\n  content:\"\";\n  position:absolute;\n  inset:14px;\n  border-radius:16px;\n  border:1px solid rgba(255,255,255,0.14);\n  background:\n    radial-gradient(760px 250px at 50% 20%, rgba(212,175,55,0.14), transparent 60%),\n    radial-gradient(520px 220px at 50% 82%, rgba(139,90,43,0.12), transparent 60%);\n  pointer-events:none;\n}\n#tarot-deck.disabled{\n  opacity:.38;\n  pointer-events:none;\n  filter:grayscale(10%);\n}\n#deckScrollHint{\n  display:none;\n  text-align:center;\n  margin-top:.8rem;\n  font-size:.95rem;\n  opacity:.88;\n  color:var(--gold-soft);\n}\n#deckScrollHint strong{\n  color:var(--white);\n  font-weight:800;\n}\n.tarot-card{\n  --x:0;\n  --flip:0;\n  --tap-lift:0;\n  --card-scale:1;\n  position:absolute;\n  left:0;\n  bottom:12px;\n  width:110px;\n  aspect-ratio:2.5\/4;\n  border-radius:14px;\n  transform-style:preserve-3d;\n  transition:\n    transform .30s ease,\n    filter .25s ease,\n    box-shadow .25s ease,\n    opacity .22s ease,\n    border-color .22s ease,\n    margin .22s ease,\n    width .22s ease,\n    min-width .22s ease;\n  box-shadow:var(--shadow);\n  border:2px solid transparent;\n  overflow:hidden;\n  cursor:pointer;\n  will-change:transform;\n  transform:\n    translate3d(calc(var(--x) * 1px), calc(var(--tap-lift) * -1px), 0)\n    rotateY(calc(var(--flip) * 1deg))\n    scale(var(--card-scale));\n  z-index:var(--z);\n  background:linear-gradient(145deg,#2a1a3a,#1a0b2e);\n}\n@media (hover:hover){\n  .tarot-card:not(.selected):not(.locked):not(.picked):hover{\n    --tap-lift:14;\n    box-shadow:var(--shadow-hover);\n    border-color:rgba(212,175,55,0.65);\n    filter:saturate(1.05);\n  }\n}\n.tarot-card.selected{\n  border-color:rgba(212,175,55,0.9);\n  box-shadow:0 18px 44px rgba(212,175,55,0.20);\n}\n.tarot-card.locked{\n  opacity:.35;\n  filter:grayscale(55%);\n  cursor:not-allowed;\n  border-color:transparent;\n  box-shadow:var(--shadow);\n}\n.tarot-card.picked{\n  pointer-events:none !important;\n  opacity:0 !important;\n  visibility:hidden !important;\n  transform:translate(-9999px, -9999px) !important;\n  transition:none !important;\n}\n.card-face,.card-back{\n  position:absolute;\n  width:100%;\n  height:100%;\n  backface-visibility:hidden;\n  border-radius:12px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n.card-back{\n  background:\n    radial-gradient(circle at 30% 20%, rgba(255,215,0,0.18), transparent 45%),\n    radial-gradient(circle at 70% 80%, rgba(139,90,43,0.25), transparent 50%),\n    repeating-linear-gradient(45deg, rgba(255,255,255,0.08) 0 8px, transparent 8px 16px),\n    linear-gradient(145deg, #7b1b12, #b35a2a);\n  border:1px solid rgba(255,255,255,0.12);\n}\n.card-back::after{\n  content:\"\";\n  width:72%;\n  height:82%;\n  border-radius:12px;\n  border:1px solid rgba(212,175,55,0.35);\n  box-shadow:inset 0 0 0 2px rgba(0,0,0,0.18);\n  opacity:.95;\n  display:block;\n}\n.card-face{\n  background:linear-gradient(145deg,#f5f5f5,#e0e0e0);\n  transform:rotateY(180deg);\n}\n.card-face img{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  display:block;\n}\n.btn-row{\n  display:flex;\n  gap:12px;\n  justify-content:center;\n  align-items:center;\n  flex-wrap:wrap;\n  margin-top:.25rem;\n}\n@media (max-width:900px){\n  #theme-grid{grid-template-columns:repeat(2, 1fr);}\n}\n@media (max-width:520px){\n  #tarot{padding:2.2rem 1rem;}\n  #tarot .section-title{font-size:1.85rem;}\n  #namebox{padding:1.2rem; margin:1rem auto 1.2rem;}\n  .deck-wrap{padding:.65rem 0 1rem;}\n  .deck-shell{width:100%;}\n  .deck-shell::before{inset:auto 7% 8px;}\n  #tarot-deck{\n    width:100%;\n    height:auto;\n    min-height:236px;\n    padding:18px 16px 20px;\n    overflow-x:auto;\n    overflow-y:hidden;\n    display:flex;\n    align-items:flex-end;\n    gap:0;\n    scroll-snap-type:x proximity;\n    -webkit-overflow-scrolling:touch;\n    overscroll-behavior-x:contain;\n    touch-action:pan-x;\n  }\n  #tarot-deck::before{inset:10px;}\n  #tarot-deck::-webkit-scrollbar{display:none;}\n  #tarot-deck{scrollbar-width:none;}\n  #deckScrollHint{display:block;}\n  .tarot-card{\n    position:relative;\n    left:auto;\n    bottom:auto;\n    width:104px;\n    min-width:104px;\n    flex:0 0 104px;\n    margin-right:-24px;\n    border-radius:14px;\n    transform:\n      translate3d(0, calc(var(--tap-lift) * -1px), 0)\n      rotateY(calc(var(--flip) * 1deg))\n      scale(var(--card-scale));\n    scroll-snap-align:center;\n  }\n  .tarot-card:last-child{margin-right:0;}\n  .tarot-card:not(.locked):not(.picked):active{\n    --tap-lift:10;\n    --card-scale:1.02;\n  }\n  .tarot-card.picked{\n    position:relative !important;\n    transform:none !important;\n    width:0 !important;\n    min-width:0 !important;\n    margin-right:0 !important;\n    border:0 !important;\n    opacity:0 !important;\n    visibility:hidden !important;\n    overflow:hidden !important;\n  }\n  #confirmNameBtn,#resetBtn,#nextBtn{\n    width:100% !important;\n    max-width:100% !important;\n    display:flex !important;\n  }\n  .btn-row{\n    flex-direction:column;\n    align-items:stretch;\n  }\n  #counter{\n    top:auto;\n    bottom:calc(1rem + var(--safe-b));\n    right:calc(1rem + var(--safe-r));\n  }\n}\n<\/style>\n\n<section id=\"tarot\" class=\"tarot-section\">\n    <h2 class=\"section-title\">Choisis le th\u00e8me de ta question<\/h2>\n\n    <div class=\"theme-grid\" id=\"theme-grid\">\n      <div class=\"theme-btn\" data-theme=\"amour\">\n        <span class=\"theme-icon\">\ud83d\udc96<\/span>\n        <div class=\"theme-label\">Amour & Relations<\/div>\n      <\/div>\n      <div class=\"theme-btn\" data-theme=\"travail\">\n        <span class=\"theme-icon\">\ud83d\udcbc<\/span>\n        <div class=\"theme-label\">Travail & Carri\u00e8re<\/div>\n      <\/div>\n      <div class=\"theme-btn\" data-theme=\"finances\">\n        <span class=\"theme-icon\">\ud83d\udcb0<\/span>\n        <div class=\"theme-label\">Argent & Finances<\/div>\n      <\/div>\n      <div class=\"theme-btn\" data-theme=\"general\">\n        <span class=\"theme-icon\">\u2728<\/span>\n        <div class=\"theme-label\">G\u00e9n\u00e9ral<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"namebox\" id=\"namebox\">\n      <label for=\"nameInput2\">Ton pr\u00e9nom (obligatoire)<\/label>\n      <input id=\"nameInput2\" type=\"text\" value=\"\" placeholder=\"Ex : Marie\" \/>\n      <div class=\"micro\">Ton pr\u00e9nom sera utilis\u00e9 uniquement dans ton interpr\u00e9tation.<\/div>\n      <div style=\"margin-top:1rem;\">\n        <button id=\"confirmNameBtn\" type=\"button\" class=\"btn-gold\">Valider mon pr\u00e9nom<\/button>\n      <\/div>\n    <\/div>\n\n    <h2 class=\"section-title\" id=\"cardsTitle\" style=\"margin-top:1.6rem;\">Choisis tes 8 cartes intuitivement<\/h2>\n    <p class=\"hint\" id=\"hintText\">\n      D\u2019abord, s\u00e9lectionne un th\u00e8me ci-dessus. Ensuite, entre ton pr\u00e9nom, puis choisis 8 cartes dans le paquet.\n    <\/p>\n\n    <div class=\"counter\" id=\"counter\">Cartes : 0\/8<\/div>\n\n    <div class=\"deck-wrap\">\n      <div class=\"deck-shell\">\n        <div class=\"deck-table disabled\" id=\"tarot-deck\" aria-label=\"Paquet de cartes Tarot de Marseille\"><\/div>\n        <div class=\"deck-scroll-hint\" id=\"deckScrollHint\">\n          <strong>Mobile :<\/strong> fais glisser le jeu avec ton doigt, puis touche une carte pour la choisir.\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"btn-row\">\n      <button id=\"resetBtn\" class=\"btn-gold\" style=\"display:none;\">Tout effacer<\/button>\n      <button id=\"nextBtn\" class=\"btn-gold\" style=\"display:none;\">Valider mes cartes<\/button>\n    <\/div>\n  <\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5cab2171 elementor-widget elementor-widget-html\" data-id=\"5cab2171\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n:root{\n  --gold:#d4af37;\n  --gold-soft:#f2dc8c;\n  --white:#f8f4e6;\n  --shadow:0 10px 30px rgba(0,0,0,0.32);\n}\n#gender-section{\n  display:none;\n  max-width:560px;\n  margin:3rem auto;\n  text-align:center;\n  padding:2rem;\n  background:rgba(255,255,255,0.08);\n  border-radius:20px;\n  backdrop-filter:blur(10px);\n  box-shadow:var(--shadow);\n  border:1px solid rgba(212,175,55,0.14);\n  color:var(--white);\n}\n#gender-section .gender-option{\n  display:block;\n  margin:1.1rem 0;\n  padding:1.2rem;\n  background:rgba(255,255,255,0.08);\n  border:2px solid transparent;\n  border-radius:15px;\n  cursor:pointer;\n  transition:all .25s ease;\n  user-select:none;\n}\n#gender-section .gender-option:hover,\n#gender-section .gender-option.selected{\n  border-color:rgba(212,175,55,0.72);\n  background:rgba(212,175,55,0.14);\n}\n#interpretBtn{\n  border:none;\n  border-radius:999px;\n  padding:1rem 2.15rem;\n  font-size:1.04rem;\n  font-weight:800;\n  cursor:pointer;\n  transition:all .28s ease;\n  box-shadow:var(--shadow);\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:.45rem;\n  min-height:50px;\n  line-height:1.15;\n  max-width:100%;\n  white-space:normal;\n  text-align:center;\n  background:linear-gradient(45deg,var(--gold),var(--gold-soft));\n  color:#221233;\n}\n#interpretBtn:hover{transform:translateY(-2px);}\n@media (max-width:520px){\n  #interpretBtn{\n    width:100% !important;\n    max-width:100% !important;\n    display:flex !important;\n  }\n}\n<\/style>\n\n<section id=\"gender-section\" class=\"gender-section\">\n    <h2 style=\"color:var(--gold);margin-bottom:1.2rem;\">Pour une interpr\u00e9tation personnalis\u00e9e\u2026<\/h2>\n    <p style=\"margin-bottom:1.5rem;opacity:.9;\">Quelle \u00e9nergie pr\u00e9domine dans ta situation ?<\/p>\n\n    <label class=\"gender-option\" data-gender=\"femme\"><strong>\u2728 Femme<\/strong><\/label>\n    <label class=\"gender-option\" data-gender=\"homme\"><strong>\u26a1 Homme<\/strong><\/label>\n\n    <button id=\"interpretBtn\" class=\"btn-gold\" style=\"margin-top:1.2rem;display:none;\">Recevoir mon interpr\u00e9tation<\/button>\n  <\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7c9aa1 elementor-widget elementor-widget-html\" data-id=\"b7c9aa1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n:root{\n  --bg-dark:#1a0b2e;\n  --gold:#d4af37;\n  --gold-soft:#f2dc8c;\n  --teal:#3fcfbe;\n  --teal-soft:#bff7ef;\n  --violet:#7b5cff;\n  --violet-soft:#ddd3ff;\n  --white:#f8f4e6;\n  --shadow:0 10px 30px rgba(0,0,0,0.32);\n  --shadow-hover:0 20px 40px rgba(212,175,55,0.28);\n}\n#result-section{\n  display:none;\n  max-width:980px;\n  margin:3rem auto;\n  padding:2.4rem;\n  background:rgba(255,255,255,0.08);\n  border-radius:20px;\n  text-align:center;\n  box-shadow:var(--shadow);\n  border:1px solid rgba(212,175,55,0.14);\n  color:#f8f4e6;\n  position:relative;\n}\n#cards-display{\n  display:flex;\n  justify-content:center;\n  margin-top:14px;\n}\n.spread-result{\n  width:min(840px, 96vw);\n  margin:0 auto;\n  padding:16px;\n  border-radius:18px;\n  background:linear-gradient(180deg, rgba(255,255,255,0.08), rgba(0,0,0,0.22));\n  border:1px solid rgba(255,255,255,0.14);\n  box-shadow:0 18px 44px rgba(0,0,0,0.35);\n  display:flex;\n  flex-direction:column;\n  gap:14px;\n  align-items:center;\n}\n.spread-result .row{\n  width:100%;\n  display:flex;\n  justify-content:center;\n  align-items:center;\n  gap:12px;\n  flex-wrap:nowrap;\n}\n.spread-result .card{\n  width:110px;\n  aspect-ratio:2.5\/4;\n  border-radius:12px;\n  overflow:hidden;\n  border:2px solid rgba(212,175,55,0.55);\n  background:rgba(0,0,0,0.25);\n  box-shadow:0 12px 28px rgba(0,0,0,0.40);\n  flex:0 0 auto;\n}\n.spread-result .card img{\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  display:block;\n}\n.interpretation{\n  background:rgba(0,0,0,0.28);\n  padding:2rem;\n  border-radius:15px;\n  margin:1.6rem auto 0;\n  line-height:1.8;\n  text-align:left;\n  width:100%;\n  max-width:920px;\n  border:1px solid rgba(255,255,255,0.08);\n}\n.interpretation p{margin:0 0 .9rem 0;opacity:.97;}\n.interpretation .punch{\n  padding:.95rem 1rem;\n  border-radius:12px;\n  background:rgba(212,175,55,0.10);\n  border:1px solid rgba(212,175,55,0.18);\n}\n#result-section.is-loading-interpretation .email-capture{\n  opacity:.48;\n  pointer-events:none;\n  filter:saturate(.9);\n}\n.oracle-loader{\n  position:relative;\n  overflow:hidden;\n  display:grid;\n  grid-template-columns:140px 1fr;\n  gap:1.3rem;\n  align-items:center;\n  padding:1.5rem;\n  border-radius:18px;\n  background:\n    radial-gradient(520px 180px at 15% 15%, rgba(212,175,55,0.12), transparent 60%),\n    radial-gradient(500px 220px at 85% 85%, rgba(63,207,190,0.12), transparent 60%),\n    linear-gradient(145deg, rgba(255,255,255,0.08), rgba(0,0,0,0.16));\n  border:1px solid rgba(255,255,255,0.12);\n  box-shadow:0 18px 40px rgba(0,0,0,0.30);\n}\n.oracle-loader::after{\n  content:\"\";\n  position:absolute;\n  inset:10px;\n  border-radius:14px;\n  border:1px solid rgba(255,255,255,0.08);\n  pointer-events:none;\n}\n.oracle-loader__orbital{\n  position:relative;\n  width:128px;\n  height:128px;\n  margin:0 auto;\n  border-radius:50%;\n  background:\n    radial-gradient(circle at center, rgba(255,255,255,0.16), rgba(255,255,255,0.03) 42%, rgba(0,0,0,0.18) 72%, rgba(0,0,0,0.35) 100%);\n  box-shadow:\n    inset 0 0 22px rgba(255,255,255,0.08),\n    0 0 34px rgba(212,175,55,0.15);\n}\n.oracle-loader__ring{\n  position:absolute;\n  inset:0;\n  border-radius:50%;\n  border:1px solid rgba(212,175,55,0.34);\n}\n.oracle-loader__ring--1{\n  animation:oracleSpin 7s linear infinite;\n}\n.oracle-loader__ring--2{\n  inset:10px;\n  border-color:rgba(63,207,190,0.30);\n  animation:oracleSpinReverse 9s linear infinite;\n}\n.oracle-loader__ring--3{\n  inset:24px;\n  border-color:rgba(255,255,255,0.16);\n}\n.oracle-loader__center{\n  position:absolute;\n  inset:50%;\n  width:30px;\n  height:30px;\n  margin:-15px 0 0 -15px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  border-radius:50%;\n  background:linear-gradient(145deg,var(--gold),var(--gold-soft));\n  color:#35182a;\n  font-size:16px;\n  font-weight:900;\n  box-shadow:0 0 20px rgba(212,175,55,0.32);\n  z-index:3;\n}\n.oracle-loader__hand{\n  position:absolute;\n  left:50%;\n  top:50%;\n  transform-origin:0 50%;\n  height:2px;\n  border-radius:999px;\n  z-index:2;\n}\n.oracle-loader__hand--long{\n  width:42px;\n  background:linear-gradient(90deg,var(--gold),transparent);\n  animation:oracleTick 2.8s linear infinite;\n}\n.oracle-loader__hand--short{\n  width:30px;\n  background:linear-gradient(90deg,var(--teal),transparent);\n  animation:oracleTick 6s linear infinite reverse;\n}\n.oracle-loader__dot{\n  position:absolute;\n  width:7px;\n  height:7px;\n  border-radius:50%;\n  background:var(--gold-soft);\n  box-shadow:0 0 10px rgba(242,220,140,0.46);\n}\n.oracle-loader__dot--1{ top:10px; left:50%; margin-left:-3.5px; }\n.oracle-loader__dot--2{ right:14px; top:50%; margin-top:-3.5px; }\n.oracle-loader__dot--3{ bottom:10px; left:50%; margin-left:-3.5px; }\n.oracle-loader__dot--4{ left:14px; top:50%; margin-top:-3.5px; }\n.oracle-loader__eyebrow{\n  display:inline-flex;\n  align-items:center;\n  gap:.5rem;\n  font-size:.78rem;\n  letter-spacing:.12em;\n  text-transform:uppercase;\n  color:var(--gold-soft);\n  opacity:.92;\n  margin-bottom:.5rem;\n  font-weight:800;\n}\n.oracle-loader__eyebrow::before{\n  content:\"\";\n  width:26px;\n  height:1px;\n  background:rgba(242,220,140,0.55);\n}\n.oracle-loader__title{\n  margin:0 0 .55rem 0;\n  color:var(--gold);\n  font-size:1.32rem;\n  line-height:1.2;\n}\n.oracle-loader__text{\n  margin:0;\n  color:rgba(248,244,230,0.92);\n}\n.email-capture{\n  display:none;\n  position:relative;\n  overflow:hidden;\n  background:\n    radial-gradient(900px 260px at 15% 10%, rgba(255,255,255,0.22), transparent 55%),\n    radial-gradient(680px 260px at 100% 100%, rgba(63,207,190,0.12), transparent 58%),\n    linear-gradient(135deg,#d4af37,#ffe58a);\n  color:var(--bg-dark);\n  padding:2rem;\n  border-radius:22px;\n  margin:1.6rem auto 0;\n  box-shadow:var(--shadow);\n  max-width:920px;\n  text-align:left;\n}\n\n.email-capture.is-visible{\n  display:block;\n  animation:emailCaptureReveal .55s ease both;\n}\n@keyframes emailCaptureReveal{\n  from{opacity:0;transform:translateY(22px);}\n  to{opacity:1;transform:translateY(0);}\n}\n.email-capture::after{\n  content:\"\";\n  position:absolute;\n  inset:10px;\n  border-radius:16px;\n  border:1px solid rgba(26,11,46,0.12);\n  pointer-events:none;\n}\n.email-capture__eyebrow{\n  display:inline-flex;\n  align-items:center;\n  gap:.5rem;\n  margin-bottom:.7rem;\n  font-size:.78rem;\n  letter-spacing:.13em;\n  text-transform:uppercase;\n  font-weight:800;\n  color:rgba(26,11,46,0.72);\n}\n.email-capture__eyebrow::before{\n  content:\"\";\n  width:30px;\n  height:1px;\n  background:rgba(26,11,46,0.35);\n}\n.email-capture__title{\n  margin:0 0 .8rem 0;\n  color:var(--bg-dark);\n  font-size:1.85rem;\n  line-height:1.12;\n}\n.email-capture__lead{\n  margin:0 0 1rem 0;\n  color:rgba(26,11,46,0.90);\n  font-weight:600;\n  line-height:1.65;\n}\n.email-benefits{\n  display:grid;\n  grid-template-columns:repeat(3, minmax(0, 1fr));\n  gap:.85rem;\n  margin:0 0 1.2rem 0;\n}\n.email-benefit{\n  padding:1rem;\n  border-radius:16px;\n  background:rgba(255,255,255,0.26);\n  border:1px solid rgba(26,11,46,0.10);\n  box-shadow:0 8px 20px rgba(26,11,46,0.08);\n}\n.email-benefit strong{\n  display:block;\n  margin-bottom:.35rem;\n  color:var(--bg-dark);\n}\n.email-benefit span{\n  display:block;\n  color:rgba(26,11,46,0.82);\n  font-size:.96rem;\n  line-height:1.45;\n}\n.email-form{\n  width:100%;\n  display:flex;\n  gap:.85rem;\n  align-items:center;\n  justify-content:center;\n  flex-wrap:wrap;\n}\n.email-form > *{\n  box-sizing:border-box;\n}\n.email-input{\n  display:block;\n  width:100%;\n  flex:1 1 300px;\n  min-width:260px;\n  max-width:420px;\n  padding:1rem 1.1rem;\n  border:none;\n  border-radius:999px;\n  font-size:1.05rem;\n  margin:0;\n  color:#1a0b2e;\n  box-shadow:inset 0 1px 0 rgba(255,255,255,0.35), 0 8px 18px rgba(26,11,46,0.08);\n}\n.email-input:focus{\n  outline:none;\n  box-shadow:0 0 0 3px rgba(26,11,46,0.14), inset 0 1px 0 rgba(255,255,255,0.35), 0 10px 22px rgba(26,11,46,0.12);\n}\n.email-input::placeholder{\n  color:rgba(26,11,46,0.55);\n}\n#submitEmail{\n  border:none;\n  border-radius:999px;\n  padding:1rem 2.15rem;\n  font-size:1.04rem;\n  font-weight:800;\n  cursor:pointer;\n  transition:all .28s ease;\n  box-shadow:var(--shadow);\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:.45rem;\n  min-height:50px;\n  line-height:1.15;\n  max-width:100%;\n  white-space:normal;\n  text-align:center;\n}\n#submitEmail{\n  background:linear-gradient(45deg,var(--teal),var(--teal-soft));\n  color:#06211e;\n}\n#submitEmail:hover{\n  transform:translateY(-2px);\n}\n.email-capture__microcopy{\n  margin:.95rem 0 0 0;\n  color:rgba(26,11,46,0.74);\n  font-size:.95rem;\n  font-weight:600;\n}\n@keyframes oracleSpin{\n  from{transform:rotate(0deg);}\n  to{transform:rotate(360deg);}\n}\n@keyframes oracleSpinReverse{\n  from{transform:rotate(360deg);}\n  to{transform:rotate(0deg);}\n}\n@keyframes oracleTick{\n  from{transform:rotate(0deg);}\n  to{transform:rotate(360deg);}\n}\n@media (max-width:900px){\n  .spread-result .card{width:100px;}\n  .email-benefits{\n    grid-template-columns:1fr;\n  }\n}\n@media (max-width:700px){\n  .spread-result .card{width:88px;}\n  .oracle-loader{\n    grid-template-columns:1fr;\n    text-align:center;\n  }\n}\n@media (max-width:520px){\n  #result-section{\n    width:100%;\n    max-width:100%;\n    margin:1.2rem auto 0;\n    padding:1.2rem 0;\n    border-radius:18px;\n    text-align:center;\n  }\n  #cards-display{display:none !important;}\n  .interpretation{\n    width:100vw;\n    max-width:100vw;\n    margin-left:calc(50% - 50vw);\n    margin-right:calc(50% - 50vw);\n    margin-top:1rem;\n    padding:1.25rem 1rem;\n    border-radius:0;\n    line-height:1.9;\n    text-align:left;\n  }\n  .interpretation .punch{\n    width:100vw;\n    max-width:100vw;\n    margin-left:calc(50% - 50vw);\n    margin-right:calc(50% - 50vw);\n    margin-bottom:1rem;\n    padding:1.2rem 1.25rem;\n    border-radius:0;\n    background:\n      radial-gradient(900px 240px at 50% 10%, rgba(255,255,255,0.22), rgba(255,255,255,0.08) 55%, rgba(0,0,0,0.12) 100%),\n      linear-gradient(180deg, rgba(255,255,255,0.10), rgba(0,0,0,0.20));\n    border-top:1px solid rgba(255,255,255,0.18);\n    border-bottom:1px solid rgba(255,255,255,0.18);\n  }\n  .resultSpread{\n    width:100%;\n    max-width:520px;\n    margin:.75rem auto 0;\n    display:flex;\n    flex-direction:column;\n    gap:12px;\n    align-items:center;\n    justify-content:center;\n    padding:12px;\n    border-radius:16px;\n    background:rgba(255,255,255,0.10);\n    border:1px solid rgba(255,255,255,0.20);\n    box-shadow:0 10px 26px rgba(0,0,0,0.35);\n  }\n  .resultSpread .row{\n    width:100%;\n    display:flex;\n    justify-content:center;\n    align-items:center;\n    gap:10px;\n  }\n  .resultSpread .card{\n    width:72px;\n    aspect-ratio:2.5\/4;\n    border-radius:12px;\n    overflow:hidden;\n    position:relative;\n    background:rgba(255,255,255,0.14);\n    border:2px solid rgba(212,175,55,0.70);\n    box-shadow:0 12px 26px rgba(0,0,0,0.55), 0 0 22px rgba(212,175,55,0.18);\n  }\n  .resultSpread .card img{\n    width:100%;\n    height:100%;\n    object-fit:cover;\n    display:block;\n    filter:contrast(1.08) saturate(1.06) brightness(1.08);\n  }\n  .oracle-loader{\n    border-radius:18px;\n    padding:1.2rem;\n  }\n  .oracle-loader__orbital{\n    width:112px;\n    height:112px;\n  }\n  .oracle-loader__title{\n    font-size:1.16rem;\n  }\n  .email-capture{\n    width:calc(100vw - 2rem);\n    max-width:calc(100vw - 2rem);\n    padding:1.3rem;\n    border-radius:18px;\n    margin-left:auto;\n    margin-right:auto;\n  }\n  .email-capture__title{\n    font-size:1.48rem;\n  }\n  .email-form{\n    width:100%;\n    flex-direction:column;\n    align-items:stretch;\n    gap:.75rem;\n  }\n  .email-input{\n    width:100%;\n    min-width:0;\n    max-width:100%;\n    flex:1 1 auto;\n  }\n  #submitEmail{\n    width:100% !important;\n    max-width:100% !important;\n    display:flex !important;\n  }\n}\n<\/style>\n\n<section id=\"result-section\" class=\"result-section\">\n  <h2 style=\"color:var(--gold);\" id=\"resultTitle\">Ton tirage est pr\u00eat \u2728<\/h2>\n  <div id=\"cards-display\"><\/div>\n  <div class=\"interpretation\" id=\"interpretation\"><\/div>\n\n  <div class=\"email-capture\">\n    <div class=\"email-capture__eyebrow\">Lecture priv\u00e9e \u2022 acc\u00e8s personnalis\u00e9<\/div>\n    <h3 class=\"email-capture__title\">Tu as ouvert la premi\u00e8re couche de ton tirage<\/h3>\n    <p class=\"email-capture__lead\">\n      L\u2019aper\u00e7u re\u00e7u ici r\u00e9v\u00e8le d\u00e9j\u00e0 une dynamique importante. Entre ton email pour acc\u00e9der \u00e0 la suite de ta lecture personnalis\u00e9e&nbsp;: les messages cl\u00e9s \u00e0 retenir, la zone qui m\u00e9rite ton attention maintenant et la guidance audio pour int\u00e9grer plus profond\u00e9ment ton tirage.\n    <\/p>\n\n    <div class=\"email-benefits\">\n      <div class=\"email-benefit\">\n        <strong>Message dominant<\/strong>\n        <span>La lecture centrale qui structure vraiment ta question en ce moment.<\/span>\n      <\/div>\n      <div class=\"email-benefit\">\n        <strong>Zone \u00e0 clarifier<\/strong>\n        <span>Le point de tension ou de bascule que tes cartes invitent \u00e0 regarder de plus pr\u00e8s.<\/span>\n      <\/div>\n      <div class=\"email-benefit\">\n        <strong>Guidance int\u00e9grative<\/strong>\n        <span>Un prolongement plus personnel pour t\u2019aider \u00e0 avancer avec plus de lisibilit\u00e9.<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"email-form\">\n      <input type=\"email\" class=\"email-input\" placeholder=\"Ton email\" id=\"email-input\" \/>\n      <button id=\"submitEmail\" class=\"btn-gold\">Acc\u00e9der \u00e0 la suite de ma lecture<\/button>\n    <\/div>\n\n    <p class=\"email-capture__microcopy\">\n      Validation en 1 clic, puis ouverture imm\u00e9diate de la prochaine \u00e9tape de ton parcours.\n    <\/p>\n  <\/div>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17a47f69 elementor-widget elementor-widget-html\" data-id=\"17a47f69\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n:root{\r\n  --bg-dark:#1a0b2e;\r\n  --bg-mid:#2d1b69;\r\n  --gold:#d4af37;\r\n  --gold-soft:#f2dc8c;\r\n  --teal:#3fcfbe;\r\n  --teal-soft:#bff7ef;\r\n  --violet:#7b5cff;\r\n  --violet-soft:#ddd3ff;\r\n  --wine:#8e365d;\r\n  --wine-soft:#f2c7d8;\r\n  --white:#f8f4e6;\r\n  --shadow:0 10px 30px rgba(0,0,0,0.32);\r\n  --shadow-hover:0 20px 40px rgba(212,175,55,0.28);\r\n  --safe-b: env(safe-area-inset-bottom, 0px);\r\n  --safe-r: env(safe-area-inset-right, 0px);\r\n  --safe-t: env(safe-area-inset-top, 0px);\r\n  --safe-l: env(safe-area-inset-left, 0px);\r\n}\r\nhtml{scroll-behavior:smooth;}\r\nbody{\r\n  font-family:Arial,sans-serif;\r\n  background:linear-gradient(135deg,var(--bg-dark) 0%,var(--bg-mid) 100%);\r\n  color:var(--white);\r\n  line-height:1.6;\r\n  overflow-x:clip;\r\n}\r\na{color:inherit;text-decoration:none;}\r\nimg{max-width:100%;height:auto;display:block;}\r\nbutton,input{font-family:inherit;}\r\n\r\n\/* ===== Bloc signature conversion : court, premium, clair ===== *\/\r\n#result-section .email-capture{\r\n  display:none !important;\r\n  visibility:hidden !important;\r\n  max-height:0 !important;\r\n  overflow:hidden !important;\r\n  margin:0 !important;\r\n  padding:0 !important;\r\n  border:0 !important;\r\n}\r\n\r\n.consult-portal{\r\n  position:relative;\r\n  margin:1.4rem 0 0;\r\n  padding:1.1rem;\r\n  border-radius:26px;\r\n  background:\r\n    radial-gradient(circle at top right, rgba(212,175,55,.14), transparent 34%),\r\n    radial-gradient(circle at bottom left, rgba(63,207,190,.12), transparent 28%),\r\n    linear-gradient(165deg, rgba(28,12,48,.98), rgba(15,8,28,.98));\r\n  border:1px solid rgba(242,220,140,.16);\r\n  box-shadow:0 22px 56px rgba(0,0,0,.34);\r\n  overflow:hidden;\r\n}\r\n.consult-portal::before{\r\n  content:\"\";\r\n  position:absolute;\r\n  inset:0;\r\n  pointer-events:none;\r\n  background:linear-gradient(135deg, rgba(255,255,255,.05), transparent 28%, transparent 72%, rgba(191,247,239,.05));\r\n}\r\n.consult-portal > *{position:relative;z-index:1;}\r\n\r\n.consult-portal__top{\r\n  display:grid;\r\n  grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);\r\n  gap:.9rem;\r\n  align-items:start;\r\n}\r\n.consult-portal__eyebrow{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:.45rem;\r\n  padding:.38rem .72rem;\r\n  border-radius:999px;\r\n  border:1px solid rgba(242,220,140,.2);\r\n  background:rgba(242,220,140,.08);\r\n  color:var(--gold-soft);\r\n  font-size:.77rem;\r\n  font-weight:800;\r\n  letter-spacing:.03em;\r\n  margin-bottom:.8rem;\r\n}\r\n.consult-portal__title{\r\n  margin:0 0 .45rem;\r\n  color:var(--white);\r\n  font-size:clamp(1.34rem, 2.25vw, 2rem);\r\n  line-height:1.08;\r\n}\r\n.consult-portal__lead{\r\n  margin:0;\r\n  color:rgba(248,244,230,.88);\r\n  font-size:.98rem;\r\n  line-height:1.52;\r\n  max-width:58ch;\r\n}\r\n.consult-portal__highlight{\r\n  color:var(--gold-soft);\r\n  font-weight:800;\r\n}\r\n.consult-portal__chips{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  gap:.55rem;\r\n  margin-top:.9rem;\r\n}\r\n.consult-portal__chip{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:.42rem;\r\n  min-height:34px;\r\n  padding:.45rem .72rem;\r\n  border-radius:999px;\r\n  background:rgba(255,255,255,.06);\r\n  border:1px solid rgba(255,255,255,.08);\r\n  color:rgba(248,244,230,.92);\r\n  font-size:.84rem;\r\n  font-weight:700;\r\n}\r\n.consult-portal__chip::before{\r\n  content:\"\u2726\";\r\n  color:var(--gold-soft);\r\n  font-size:.78rem;\r\n}\r\n.consult-portal__method{\r\n  border-radius:20px;\r\n  padding:.95rem 1rem;\r\n  background:linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));\r\n  border:1px solid rgba(255,255,255,.08);\r\n  backdrop-filter:blur(6px);\r\n}\r\n.consult-portal__methodLabel{\r\n  margin:0 0 .38rem;\r\n  color:var(--gold-soft);\r\n  font-size:.8rem;\r\n  font-weight:800;\r\n  letter-spacing:.03em;\r\n  text-transform:uppercase;\r\n}\r\n.consult-portal__methodText{\r\n  margin:0;\r\n  color:rgba(248,244,230,.87);\r\n  font-size:.92rem;\r\n  line-height:1.5;\r\n}\r\n\r\n.consult-portal__formBox{\r\n  margin-top:1rem;\r\n  border-radius:22px;\r\n  padding:1rem;\r\n  background:rgba(255,255,255,.05);\r\n  border:1px solid rgba(255,255,255,.08);\r\n  backdrop-filter:blur(7px);\r\n}\r\n.consult-portal__formHeader{\r\n  display:flex;\r\n  flex-direction:column;\r\n  gap:.28rem;\r\n  margin-bottom:.8rem;\r\n}\r\n.consult-portal__formTitle{\r\n  margin:0;\r\n  color:var(--white);\r\n  font-size:1rem;\r\n  font-weight:800;\r\n}\r\n.consult-portal__formIntro{\r\n  margin:0;\r\n  color:rgba(248,244,230,.82);\r\n  font-size:.9rem;\r\n  line-height:1.45;\r\n}\r\n.consult-portal__label{\r\n  display:block;\r\n  margin:0 0 .45rem;\r\n  color:var(--white);\r\n  font-weight:700;\r\n  font-size:.9rem;\r\n}\r\n.consult-portal__fieldRow{\r\n  display:grid;\r\n  grid-template-columns:minmax(0,1fr) auto;\r\n  gap:.7rem;\r\n  align-items:stretch;\r\n}\r\n.consult-portal__input{\r\n  width:100%;\r\n  min-height:56px;\r\n  border-radius:16px;\r\n  border:1px solid rgba(255,255,255,.12);\r\n  background:rgba(9,8,20,.34);\r\n  color:var(--white);\r\n  padding:0 1rem;\r\n  font-size:1rem;\r\n  outline:none;\r\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);\r\n}\r\n.consult-portal__input::placeholder{color:rgba(248,244,230,.42);}\r\n.consult-portal__input:focus{\r\n  border-color:rgba(242,220,140,.58);\r\n  box-shadow:0 0 0 4px rgba(212,175,55,.12);\r\n}\r\n.consult-portal__submit{\r\n  min-width:248px;\r\n  min-height:56px;\r\n  border:0;\r\n  border-radius:16px;\r\n  padding:0 1.2rem;\r\n  font-size:.98rem;\r\n  font-weight:900;\r\n  color:#241235;\r\n  cursor:pointer;\r\n  background:linear-gradient(135deg, #f8ebaf, #d4af37 62%, #bd8f1f);\r\n  box-shadow:0 16px 34px rgba(212,175,55,.24);\r\n  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;\r\n}\r\n.consult-portal__submit:hover{\r\n  transform:translateY(-2px);\r\n  box-shadow:0 20px 42px rgba(212,175,55,.28);\r\n  filter:saturate(1.03);\r\n}\r\n.consult-portal__submit:disabled{\r\n  opacity:.72;\r\n  cursor:wait;\r\n  transform:none;\r\n}\r\n.consult-portal__micro{\r\n  margin:.68rem 0 0;\r\n  color:rgba(248,244,230,.72);\r\n  font-size:.82rem;\r\n  line-height:1.45;\r\n}\r\n.consult-portal__error{\r\n  margin-top:.55rem;\r\n  color:#ffd3d3;\r\n  font-size:.84rem;\r\n  display:none;\r\n}\r\n.consult-portal__error.is-visible{display:block;}\r\n\r\n@media (max-width: 900px){\r\n  .consult-portal__top{\r\n    grid-template-columns:1fr;\r\n  }\r\n}\r\n@media (max-width: 700px){\r\n  .consult-portal__fieldRow{\r\n    grid-template-columns:1fr;\r\n  }\r\n  .consult-portal__submit{\r\n    width:100%;\r\n    min-width:0;\r\n  }\r\n}\r\n\r\n<\/style>\r\n\r\n<script>\r\n    document.addEventListener('DOMContentLoaded', function () {\r\n      const CONSULTATION_URL = \"https:\/\/tirage-oracle.com\/consultation\/\";\r\n      const PROXY_URL = \"\/openrouter-proxy.php\";\r\n\r\n      const arcanes = [\r\n        { name:'Le Mat', file:'LE MAT Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Bateleur', file:'I LE BATELEUR Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'La Papesse', file:'II LA PAPESSE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:\"L'Imp\u00e9ratrice\", file:\"II L'IMP\u00c9RATRICE Nicolas Conver Tarot 1760.jpg\" },\r\n        { name:\"L'Empereur\", file:\"IIII-L'EMPEREUR Nicolas Conver Tarot 1760.jpg\" },\r\n        { name:'Le Pape', file:'V LE PAPE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:\"L'Amoureux\", file:\"VI L'AMOUREUX Nicolas Conver Tarot 1760.jpg\" },\r\n        { name:'Le Chariot', file:'VII LE CHARIOT Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'La Justice', file:'VIII LA JUSTICE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:\"L'Hermite\", file:\"VIIII L'HERMITE Nicolas Conver Tarot 1760.jpg\" },\r\n        { name:'La Roue de Fortune', file:'X LA ROUE DE FORTUNE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'La Force', file:'XI LA FORCE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Pendu', file:'XII LE PENDU Nicolas Conver Tarot 1760.jpg' },\r\n        { name:\"L'Arcane Sans Nom\", file:'13 XIII Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'La Temp\u00e9rance', file:'XIIII TEMPERANCE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Diable', file:'XV LE DIABLE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'La Maison Dieu', file:'XVI LA MAISON DE DIEU Nicolas Conver Tarot 1760.jpg' },\r\n        { name:\"L'\u00c9toile\", file:\"XVII L'ETOILE Nicolas Conver Tarot 1760.jpg\" },\r\n        { name:'La Lune', file:'XVIII LA LUNE Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Soleil', file:'XVIIII LE SOLEIL Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Jugement', file:'XX LE JUGEMENT Nicolas Conver Tarot 1760.jpg' },\r\n        { name:'Le Monde', file:'XXI LE MONDE Nicolas Conver Tarot 1760.jpg' }\r\n      ].map(c => ({\r\n        ...c,\r\n        img: \"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/\" + encodeURIComponent(c.file)\r\n      }));\r\n\r\n      const maxCards = 8;\r\n      let selectedCards = [];\r\n      let selectedTheme = null;\r\n      let selectedGender = null;\r\n      let userName = \"\";\r\n\r\n      const deck = document.getElementById('tarot-deck');\r\n      const counter = document.getElementById('counter');\r\n      const resetBtn = document.getElementById('resetBtn');\r\n      const nextBtn = document.getElementById('nextBtn');\r\n      const hintText = document.getElementById('hintText');\r\n\r\n      const namebox = document.getElementById('namebox');\r\n      const nameInput2 = document.getElementById('nameInput2');\r\n      const confirmNameBtn = document.getElementById('confirmNameBtn');\r\n      const cardsTitle = document.getElementById('cardsTitle');\r\n\r\n      const genderSection = document.getElementById('gender-section');\r\n      const interpretBtn = document.getElementById('interpretBtn');\r\n\r\n      const resultSection = document.getElementById('result-section');\r\n      const cardsDisplay = document.getElementById('cards-display');\r\n      const interpretationEl = document.getElementById('interpretation');\r\n      const emailCapture = document.querySelector('#result-section .email-capture');\r\n\r\n      function esc(str){\r\n        return String(str)\r\n          .replaceAll(\"&\",\"&amp;\")\r\n          .replaceAll(\"<\",\"&lt;\")\r\n          .replaceAll(\">\",\"&gt;\")\r\n          .replaceAll('\"',\"&quot;\")\r\n          .replaceAll(\"'\",\"&#039;\");\r\n      }\r\n\r\n      function scrollToEl(el, offsetPx = 18, mode = 'top'){\r\n        if(!el) return;\r\n        const rect = el.getBoundingClientRect();\r\n        const desktop = window.innerWidth >= 1024;\r\n        let y = rect.top + window.pageYOffset - offsetPx;\r\n\r\n        if(mode === 'center' && desktop){\r\n          const target = rect.top + window.pageYOffset - Math.max(40, (window.innerHeight - rect.height) \/ 2);\r\n          y = Math.max(0, target);\r\n        }\r\n\r\n        window.scrollTo({ top: y, behavior: 'smooth' });\r\n      }\r\n\r\n      function setEmailCaptureVisible(){\r\n        if(!emailCapture) return;\r\n        emailCapture.classList.remove('is-visible');\r\n        emailCapture.style.display = 'none';\r\n      }\r\n\r\n      function isMobile(){\r\n        return window.matchMedia && window.matchMedia(\"(max-width: 520px)\").matches;\r\n      }\r\n\r\n      function isDeckSwipeMode(){\r\n        return window.matchMedia && window.matchMedia(\"(max-width: 767px)\").matches;\r\n      }\r\n\r\n      function themeLabel(theme){\r\n        switch(theme){\r\n          case 'amour': return 'Amour & Relations';\r\n          case 'travail': return 'Travail & Carri\u00e8re';\r\n          case 'finances': return 'Argent & Finances';\r\n          default: return 'G\u00e9n\u00e9ral';\r\n        }\r\n      }\r\n\r\n      function layoutTable(){\r\n        const cards = [...deck.querySelectorAll('.tarot-card:not(.picked)')];\r\n        const total = cards.length;\r\n        if(!total) return;\r\n\r\n        if(isDeckSwipeMode()){\r\n          cards.forEach((el, i) => {\r\n            el.style.position = 'relative';\r\n            el.style.setProperty('--x', '0');\r\n            el.style.setProperty('--z', String(i));\r\n          });\r\n          return;\r\n        }\r\n\r\n        const W = deck.getBoundingClientRect().width || window.innerWidth;\r\n        const mobile = isMobile();\r\n        const cardW = mobile ? 92 : 110;\r\n        const pad = mobile ? 16 : 22;\r\n\r\n        const usable = Math.max(140, W - pad * 2);\r\n        const rawStep = (usable - cardW) \/ Math.max(1, total - 1);\r\n        const step = Math.max(mobile ? 11 : 14, Math.min(mobile ? 22 : 34, rawStep));\r\n\r\n        const spreadW = cardW + step * (total - 1);\r\n        const startX = Math.round((W - spreadW) \/ 2);\r\n\r\n        cards.forEach((el, i) => {\r\n          const x = startX + i * step;\r\n          el.style.position = 'absolute';\r\n          el.style.setProperty('--x', String(x));\r\n          el.style.setProperty('--z', String(i));\r\n        });\r\n      }\r\n\r\n      function initDeck() {\r\n        deck.innerHTML = '';\r\n        arcanes.forEach((cardData, index) => {\r\n          const card = document.createElement('div');\r\n          card.className = 'tarot-card';\r\n          card.dataset.index = index;\r\n          card.style.setProperty('--flip', '0');\r\n\r\n          card.innerHTML = `\r\n            <div class=\"card-back\"><\/div>\r\n            <div class=\"card-face\">\r\n              <img decoding=\"async\" loading=\"lazy\" src=\"${cardData.img}\" alt=\"\">\r\n            <\/div>\r\n          `;\r\n\r\n          card.addEventListener('click', selectCard);\r\n          deck.appendChild(card);\r\n        });\r\n\r\n        layoutTable();\r\n      }\r\n\r\n      window.addEventListener('resize', () => {\r\n        layoutTable();\r\n        if(selectedTheme && userName){\r\n          hintText.textContent = isDeckSwipeMode()\r\n            ? `${userName}, respire\u2026 fais glisser le jeu avec ton doigt puis choisis 8 cartes. Laisse ton intuition te guider.`\r\n            : `${userName}, respire\u2026 puis choisis 8 cartes. Laisse ton intuition te guider.`;\r\n        }\r\n      });\r\n\r\n      function updateCounter() {\r\n        counter.textContent = `Cartes : ${selectedCards.length}\/${maxCards}`;\r\n      }\r\n\r\n      function lockUnselectedCardsIfNeeded(){\r\n        const cards = deck.querySelectorAll('.tarot-card');\r\n        if(selectedCards.length >= maxCards){\r\n          cards.forEach(el => {\r\n            const idx = parseInt(el.dataset.index, 10);\r\n            if(!selectedCards.includes(idx)) el.classList.add('locked');\r\n          });\r\n        } else {\r\n          cards.forEach(el => el.classList.remove('locked'));\r\n        }\r\n      }\r\n\r\n      function toggleButtons() {\r\n        resetBtn.style.display = selectedCards.length > 0 ? 'inline-flex' : 'none';\r\n        nextBtn.style.display = selectedCards.length === maxCards ? 'inline-flex' : 'none';\r\n        lockUnselectedCardsIfNeeded();\r\n\r\n        if(selectedCards.length === maxCards){\r\n          setTimeout(() => scrollToEl(nextBtn, 22, 'center'), 80);\r\n        }\r\n      }\r\n\r\n      document.querySelectorAll('.theme-btn').forEach(btn => {\r\n        btn.addEventListener('click', () => {\r\n          document.querySelectorAll('.theme-btn').forEach(b => b.classList.remove('selected'));\r\n          btn.classList.add('selected');\r\n\r\n          selectedTheme = btn.dataset.theme;\r\n          resetDrawOnly();\r\n\r\n          namebox.style.display = 'block';\r\n          hintText.textContent = \"Parfait. Entre ton pr\u00e9nom (obligatoire), puis tu pourras tirer 8 cartes.\";\r\n          deck.classList.add('disabled');\r\n\r\n          genderSection.style.display = 'none';\r\n          resultSection.style.display = 'none';\r\n\r\n          setTimeout(() => {\r\n            scrollToEl(namebox, 22, 'center');\r\n            nameInput2.focus();\r\n          }, 80);\r\n        });\r\n      });\r\n\r\n      confirmNameBtn.addEventListener('click', (e)=>{\r\n        e.preventDefault();\r\n        e.stopPropagation();\r\n\r\n        const v = (nameInput2.value || \"\").trim();\r\n        if(!v){\r\n          nameInput2.focus();\r\n          nameInput2.style.outline = \"3px solid rgba(212,175,55,0.75)\";\r\n          return;\r\n        }\r\n\r\n        nameInput2.style.outline = \"none\";\r\n        userName = v.charAt(0).toUpperCase() + v.slice(1);\r\n        nameInput2.value = userName;\r\n\r\n        deck.classList.remove('disabled');\r\n        hintText.textContent = isDeckSwipeMode()\r\n          ? `${userName}, respire\u2026 fais glisser le jeu avec ton doigt puis choisis 8 cartes. Laisse ton intuition te guider.`\r\n          : `${userName}, respire\u2026 puis choisis 8 cartes. Laisse ton intuition te guider.`;\r\n\r\n        resetDrawOnly();\r\n        setTimeout(() => scrollToEl(cardsTitle, 22, 'center'), 80);\r\n      });\r\n\r\n      function selectCard(e) {\r\n        if (!selectedTheme) return;\r\n        if (!userName) return;\r\n        if (selectedCards.length >= maxCards) return;\r\n\r\n        const card = e.currentTarget;\r\n        if(card.classList.contains('locked') || card.classList.contains('picked')) return;\r\n\r\n        const index = parseInt(card.dataset.index, 10);\r\n        if (selectedCards.includes(index)) return;\r\n\r\n        selectedCards.push(index);\r\n        card.classList.add('selected');\r\n        card.style.pointerEvents = 'none';\r\n        card.style.setProperty('--flip', '180');\r\n\r\n        updateCounter();\r\n        toggleButtons();\r\n\r\n        if(isDeckSwipeMode()){\r\n          setTimeout(() => {\r\n            card.classList.add('picked');\r\n            layoutTable();\r\n\r\n            if(selectedCards.length < maxCards){\r\n              const remaining = deck.querySelector('.tarot-card:not(.picked)');\r\n              if(remaining && typeof remaining.scrollIntoView === 'function'){\r\n                remaining.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });\r\n              }\r\n            }\r\n          }, 140);\r\n        } else {\r\n          card.classList.add('picked');\r\n          layoutTable();\r\n        }\r\n      }\r\n\r\n      resetBtn.addEventListener('click', () => {\r\n        resetDrawOnly();\r\n        setTimeout(() => scrollToEl(cardsTitle, 22, 'center'), 80);\r\n      });\r\n\r\n      nextBtn.addEventListener('click', () => {\r\n        genderSection.style.display = 'block';\r\n        resultSection.style.display = 'none';\r\n        setTimeout(() => scrollToEl(genderSection, 22, 'center'), 80);\r\n      });\r\n\r\n      document.querySelectorAll('.gender-option').forEach(option => {\r\n        option.addEventListener('click', () => {\r\n          document.querySelectorAll('.gender-option').forEach(opt => opt.classList.remove('selected'));\r\n          option.classList.add('selected');\r\n          selectedGender = option.dataset.gender;\r\n\r\n          interpretBtn.style.display = 'inline-flex';\r\n          setTimeout(() => scrollToEl(interpretBtn, 22, 'center'), 80);\r\n        });\r\n      });\r\n\r\n      function buildDesktopSpread8(selIdx){\r\n        const [a,b,c,d,e,f,g,h] = selIdx;\r\n        return `\r\n          <div class=\"spread-result\" aria-label=\"Tes 8 cartes\">\r\n            <div class=\"row\">\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[a].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[b].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[c].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[d].img}\" alt=\"\"><\/div>\r\n            <\/div>\r\n            <div class=\"row\">\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[e].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[f].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[g].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[h].img}\" alt=\"\"><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        `;\r\n      }\r\n\r\n      function buildMobileResultSpread8(selIdx){\r\n        const [a,b,c,d,e,f,g,h] = selIdx;\r\n        return `\r\n          <div class=\"resultSpread\">\r\n            <div class=\"row\">\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[a].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[b].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[c].img}\" alt=\"\"><\/div>\r\n            <\/div>\r\n            <div class=\"row\">\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[d].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[e].img}\" alt=\"\"><\/div>\r\n            <\/div>\r\n            <div class=\"row\">\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[f].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[g].img}\" alt=\"\"><\/div>\r\n              <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[h].img}\" alt=\"\"><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        `;\r\n      }\r\n\r\n      interpretBtn.addEventListener('click', () => {\r\n        if (!selectedGender) return;\r\n        showResults(selectedGender);\r\n      });\r\n\r\n      async function showResults(gender) {\r\n        resultSection.style.display = 'block';\r\n        resultSection.classList.add('is-loading-interpretation');\r\n        setEmailCaptureVisible(false);\r\n        setTimeout(() => scrollToEl(resultSection, 22, 'center'), 80);\r\n\r\n        document.getElementById('resultTitle').textContent =\r\n          `${userName}, ton tirage ${themeLabel(selectedTheme)} r\u00e9v\u00e8le\u2026`;\r\n\r\n        cardsDisplay.innerHTML = buildDesktopSpread8(selectedCards);\r\n\r\n        const mobileSpread = isMobile()\r\n          ? `<div class=\"punch\" style=\"margin-bottom:1rem;\">\r\n              <div style=\"font-weight:800; color: var(--gold); margin-bottom:.6rem;\">Tes 8 cartes<\/div>\r\n              ${buildMobileResultSpread8(selectedCards)}\r\n            <\/div>`\r\n          : \"\";\r\n\r\n        interpretationEl.innerHTML = `${mobileSpread || \"\"}${buildMysticLoader()}`;\r\n\r\n        const interpretationResult = await generateInterpretationPremiumFree({\r\n          theme: selectedTheme,\r\n          gender,\r\n          name: userName,\r\n          cards: selectedCards.map(i => arcanes[i].name),\r\n          consultationUrl: CONSULTATION_URL,\r\n          mobileSpread\r\n        });\r\n\r\n        interpretationEl.innerHTML = interpretationResult.html;\r\n        resultSection.classList.remove('is-loading-interpretation');\r\n        setEmailCaptureVisible(false);\r\n      }\r\n\r\n      function resetDrawOnly(){\r\n        selectedCards = [];\r\n        selectedGender = null;\r\n\r\n        document.querySelectorAll('.tarot-card').forEach(c => {\r\n          c.classList.remove('selected','locked','picked');\r\n          c.style.pointerEvents = '';\r\n          c.style.setProperty('--flip','0');\r\n          c.style.setProperty('--tap-lift','0');\r\n          c.style.setProperty('--card-scale','1');\r\n        });\r\n\r\n        deck.scrollLeft = 0;\r\n\r\n        document.querySelectorAll('.gender-option').forEach(opt => opt.classList.remove('selected'));\r\n        interpretBtn.style.display = 'none';\r\n\r\n        cardsDisplay.innerHTML = \"\";\r\n        interpretationEl.innerHTML = \"\";\r\n        setEmailCaptureVisible(false);\r\n\r\n        updateCounter();\r\n        toggleButtons();\r\n        layoutTable();\r\n      }\r\n\r\n      function resetAll(){\r\n        resetDrawOnly();\r\n        selectedTheme = null;\r\n        userName = \"\";\r\n        nameInput2.value = \"\";\r\n\r\n        document.querySelectorAll('.theme-btn').forEach(b => b.classList.remove('selected'));\r\n        namebox.style.display = 'none';\r\n        deck.classList.add('disabled');\r\n\r\n        genderSection.style.display = 'none';\r\n        resultSection.style.display = 'none';\r\n\r\n        hintText.textContent = \"D\u2019abord, s\u00e9lectionne un th\u00e8me ci-dessus. Ensuite, entre ton pr\u00e9nom, puis choisis 8 cartes dans le paquet.\";\r\n      }\r\n\r\n      function buildPromptTarotMarseille({ name, gender, theme, cards }) {\r\n        const genre = gender === \"femme\" ? \"femme\" : \"homme\";\r\n        const label = themeLabel(theme);\r\n        const count = cards.length;\r\n\r\n        let formatBloc = \"\";\r\n        if(count <= 3){\r\n          formatBloc = `\r\nA) MESSAGE CENTRAL (6 \u00e0 10 lignes)\r\nB) LECTURE CARTE PAR CARTE (${count} mini-paragraphes)\r\nC) GUIDANCE CONCR\u00c8TE (48\u201372h) (3 actions simples)\r\nD) ATTENTION \/ PI\u00c8GE \u00c0 \u00c9VITER (2 \u00e0 4 lignes)\r\nE) PHRASE FINALE QUI RECENTRE\r\n`;\r\n        } else if(count <= 5){\r\n          formatBloc = `\r\nA) LECTURE GLOBALE DU TIRAGE (8 \u00e0 12 lignes)\r\nB) LECTURE CARTE PAR CARTE (${count} mini-paragraphes)\r\nC) GUIDANCE CONCR\u00c8TE (48\u201372h) (3 \u00e0 5 actions simples)\r\nD) ATTENTION \/ PI\u00c8GE \u00c0 \u00c9VITER (2 \u00e0 4 lignes)\r\nE) PHRASE FINALE QUI RECENTRE\r\n`;\r\n        } else {\r\n          formatBloc = `\r\nA) LECTURE GLOBALE DU TIRAGE (10 \u00e0 14 lignes)\r\nB) LECTURE CARTE PAR CARTE (${count} mini-paragraphes courts, 2 \u00e0 4 phrases chacun)\r\nC) 3 PI\u00c8GES \u00c0 \u00c9VITER\r\nD) 3 ACTIONS IMM\u00c9DIATES ET CONCR\u00c8TES\r\nE) PHRASE FINALE \"COUP DE GONG\" MOTIVANTE\r\n`;\r\n        }\r\n\r\n        const system = `\r\nTu es un(e) praticien(ne) spirituel(le) sp\u00e9cialis\u00e9(e) dans le Tarot de Marseille.\r\nTu proposes une interpr\u00e9tation claire, structur\u00e9e, concr\u00e8te, humaine, sans sensationnalisme.\r\n\r\nSTYLE STRICT :\r\n- Fran\u00e7ais uniquement.\r\n- Tutoiement strict : jamais \"vous\", jamais \"votre\".\r\n- Ton direct, bienveillant, pr\u00e9cis, incarn\u00e9.\r\n- Pas de blabla inutile.\r\n- Pas de langage marketing.\r\n- Pas de dramatisation.\r\n- Pas de promesses magiques.\r\n- Pas de certitudes absolues.\r\n- Parle en dynamiques, tendances, prises de conscience, leviers d\u2019action.\r\n- Pas de jargon technique.\r\n- Pas de dates invent\u00e9es.\r\n- Tu peux mentionner le nom des cartes si utile \u00e0 la lecture.\r\n\r\nR\u00c8GLE MAJEURE :\r\n- Tu interpr\u00e8tes uniquement \u00e0 partir du tirage donn\u00e9.\r\n- Tu relies les cartes entre elles.\r\n- Tu tiens compte du th\u00e8me du tirage.\r\n- Tu tiens compte du pr\u00e9nom de la personne.\r\n- Tu tiens compte de l\u2019\u00e9nergie dominante indiqu\u00e9e.\r\n\r\nOBJECTIF :\r\nDonner une interpr\u00e9tation du Tarot de Marseille qui aide la personne \u00e0 voir plus clair, \u00e0 comprendre ce qui se joue et \u00e0 savoir quoi faire ensuite.\r\n\r\nFORMAT :\r\n${formatBloc}\r\n`;\r\n\r\n        const user = `\r\nPr\u00e9nom : ${name}\r\nGenre : ${genre}\r\nTh\u00e8me du tirage : ${label}\r\n\r\nCartes tir\u00e9es :\r\n${cards.map((c) => `- ${c}`).join(\"\\n\")}\r\n`;\r\n\r\n        return system + \"\\n\\n\" + user;\r\n      }\r\n\r\n      async function callOpenRouterViaProxy(prompt, model = \"openrouter\/free\"){\r\n        const res = await fetch(PROXY_URL, {\r\n          method: \"POST\",\r\n          headers: { \"Content-Type\": \"application\/json\" },\r\n          body: JSON.stringify({ model, prompt })\r\n        });\r\n\r\n        const text = await res.text();\r\n        let data = null;\r\n        try { data = JSON.parse(text); } catch(_) {}\r\n\r\n        if(!res.ok){\r\n          const msg =\r\n            (data && (data.error?.message || data.error)) ? (data.error?.message || data.error) :\r\n            (text ? text : (\"HTTP \" + res.status));\r\n          throw new Error(`Proxy HTTP ${res.status} \u2014 ${msg}`);\r\n        }\r\n\r\n        return String(\r\n          data?.choices?.[0]?.message?.content ||\r\n          data?.choices?.[0]?.text ||\r\n          \"\"\r\n        );\r\n      }\r\n\r\n      function aiTextToHtml(text){\r\n        const raw = String(text || \"\").trim();\r\n        if(!raw) return `<p>${esc(\"Je n'ai pas re\u00e7u de contenu IA.\")}<\/p>`;\r\n\r\n        const blocks = raw.includes(\"\\n\\n\") ? raw.split(\/\\n{2,}\/) : raw.split(\/\\n+\/);\r\n        const clean = blocks.map(b => b.trim()).filter(Boolean).slice(0, 220);\r\n        return clean.map(b => `<p>${esc(b)}<\/p>`).join(\"\");\r\n      }\r\n      function buildMysticLoader(){\r\n        return `\r\n          <div class=\"oracle-loader\" aria-live=\"polite\" aria-busy=\"true\">\r\n            <div class=\"oracle-loader__orbital\" aria-hidden=\"true\">\r\n              <div class=\"oracle-loader__ring oracle-loader__ring--1\"><\/div>\r\n              <div class=\"oracle-loader__ring oracle-loader__ring--2\"><\/div>\r\n              <div class=\"oracle-loader__ring oracle-loader__ring--3\"><\/div>\r\n              <div class=\"oracle-loader__hand oracle-loader__hand--long\"><\/div>\r\n              <div class=\"oracle-loader__hand oracle-loader__hand--short\"><\/div>\r\n              <div class=\"oracle-loader__center\">\u2726<\/div>\r\n              <div class=\"oracle-loader__dot oracle-loader__dot--1\"><\/div>\r\n              <div class=\"oracle-loader__dot oracle-loader__dot--2\"><\/div>\r\n              <div class=\"oracle-loader__dot oracle-loader__dot--3\"><\/div>\r\n              <div class=\"oracle-loader__dot oracle-loader__dot--4\"><\/div>\r\n            <\/div>\r\n            <div class=\"oracle-loader__content\">\r\n              <div class=\"oracle-loader__eyebrow\">Lecture en synchronisation<\/div>\r\n              <h3 class=\"oracle-loader__title\">Je relie les arcanes de ton tirage\u2026<\/h3>\r\n              <p class=\"oracle-loader__text\">J\u2019ouvre maintenant la dynamique dominante, les zones d\u2019attention et la guidance la plus utile pour la suite.<\/p>\r\n            <\/div>\r\n          <\/div>\r\n        `;\r\n      }\r\n\r\n      function buildConsultationRedirectUrl({ email, name, gender, theme, cards }){\r\n        const safeBase = CONSULTATION_URL || \"https:\/\/tirage-oracle.com\/consultation\";\r\n\r\n        try{\r\n          const url = new URL(safeBase, window.location.origin);\r\n          if(email) url.searchParams.set(\"email\", email);\r\n          if(name) url.searchParams.set(\"prenom\", name);\r\n          if(gender) url.searchParams.set(\"gender\", gender);\r\n          if(theme) url.searchParams.set(\"theme\", theme);\r\n          if(Array.isArray(cards) && cards.length){\r\n            url.searchParams.set(\"cards\", cards.join(\" | \"));\r\n          }\r\n          return url.toString();\r\n        } catch(_){\r\n          return safeBase;\r\n        }\r\n      }\r\n\r\n      \r\n      \r\n      function getConsultationCopy(theme){\r\n        const common = {\r\n          eyebrow: \"\u2726 \u00c9tape 2 \u00b7 Lecture priv\u00e9e\",\r\n          button: \"Recevoir ma lecture priv\u00e9e\",\r\n          formTitle: \"Entre ton email pour ouvrir la suite\",\r\n          label: \"Ton email\",\r\n          placeholder: \"prenom@email.com\",\r\n          formIntro: \"Tu acc\u00e8des imm\u00e9diatement \u00e0 une lecture plus pr\u00e9cise, avec ton tirage d\u00e9j\u00e0 pr\u00e9par\u00e9 pour la consultation.\",\r\n          micro: \"Confidentiel \u2022 pas de spam \u2022 acc\u00e8s imm\u00e9diat\",\r\n          chips: [\"Lecture plus pr\u00e9cise\", \"Tirage enregistr\u00e9\", \"Acc\u00e8s imm\u00e9diat\"]\r\n        };\r\n\r\n        switch(theme){\r\n          case \"amour\":\r\n            return {\r\n              ...common,\r\n              title: \"ouvre maintenant la lecture la plus claire de ce lien.\",\r\n              lead: \"Tu as d\u00e9j\u00e0 re\u00e7u un premier message. La suite te donne une <span class=\\\"consult-portal__highlight\\\">lecture plus fine de la dynamique entre vous<\/span>, de ce qui bloque et de ce qui \u00e9volue vraiment.\",\r\n              methodLabel: \"Lecture pr\u00e9par\u00e9e \u00e0 partir de tes 8 cartes\",\r\n              methodText: \"Un prolongement plus personnel que le simple aper\u00e7u, pens\u00e9 pour t\u2019aider \u00e0 voir ce qui se joue vraiment dans cette relation.\",\r\n              chips: [\"Dynamique du lien\", \"Blocages et tendance\", \"Acc\u00e8s imm\u00e9diat\"]\r\n            };\r\n          case \"travail\":\r\n            return {\r\n              ...common,\r\n              title: \"ouvre maintenant la lecture la plus utile pour ta situation pro.\",\r\n              lead: \"La suite affine ce que ton tirage r\u00e9v\u00e8le d\u00e9j\u00e0, avec une <span class=\\\"consult-portal__highlight\\\">lecture plus structur\u00e9e de ton blocage, de ton timing et de ta direction<\/span>.\",\r\n              methodLabel: \"Lecture pr\u00e9par\u00e9e \u00e0 partir de tes 8 cartes\",\r\n              methodText: \"Une guidance plus nette pour passer d\u2019un ressenti flou \u00e0 un vrai cap professionnel.\",\r\n              chips: [\"Blocage principal\", \"Direction \u00e0 suivre\", \"Acc\u00e8s imm\u00e9diat\"]\r\n            };\r\n          case \"finances\":\r\n            return {\r\n              ...common,\r\n              title: \"ouvre maintenant la lecture la plus pr\u00e9cise sur ton \u00e9nergie financi\u00e8re.\",\r\n              lead: \"La suite t\u2019aide \u00e0 lire plus clairement <span class=\\\"consult-portal__highlight\\\">ce qui freine, ce qui soutient et o\u00f9 remettre ton \u00e9nergie<\/span> pour avancer avec plus de stabilit\u00e9.\",\r\n              methodLabel: \"Lecture pr\u00e9par\u00e9e \u00e0 partir de tes 8 cartes\",\r\n              methodText: \"Une guidance plus cibl\u00e9e pour comprendre la vraie priorit\u00e9 de ton tirage sur l\u2019argent et la s\u00e9curit\u00e9.\",\r\n              chips: [\"Frein principal\", \"Levier \u00e0 activer\", \"Acc\u00e8s imm\u00e9diat\"]\r\n            };\r\n          default:\r\n            return {\r\n              ...common,\r\n              title: \"ouvre maintenant la partie la plus personnelle de ton tirage.\",\r\n              lead: \"Tu as d\u00e9j\u00e0 re\u00e7u une premi\u00e8re lecture. La suite te donne une <span class=\\\"consult-portal__highlight\\\">guidance plus pr\u00e9cise, plus incarn\u00e9e et plus utile pour la suite<\/span>.\",\r\n              methodLabel: \"Lecture pr\u00e9par\u00e9e \u00e0 partir de tes 8 cartes\",\r\n              methodText: \"Un approfondissement clair, pens\u00e9 pour transformer un premier \u00e9clairage en vraie direction.\",\r\n              chips: [\"Lecture approfondie\", \"Tirage enregistr\u00e9\", \"Acc\u00e8s imm\u00e9diat\"]\r\n            };\r\n        }\r\n      }\r\n\r\n      function buildConsultationCTA(theme, name, consultationUrl){\r\n        const copy = getConsultationCopy(theme);\r\n        const safeName = esc(name || \"\");\r\n        const title = safeName ? `${safeName}, ${copy.title}` : copy.title;\r\n        const chipsHtml = (copy.chips || []).map(item => `<span class=\"consult-portal__chip\">${esc(item)}<\/span>`).join(\"\");\r\n\r\n        return `\r\n          <section class=\"consult-portal\" aria-label=\"Ouverture de la lecture priv\u00e9e\">\r\n            <div class=\"consult-portal__top\">\r\n              <div class=\"consult-portal__content\">\r\n                <div class=\"consult-portal__eyebrow\">${copy.eyebrow}<\/div>\r\n                <h3 class=\"consult-portal__title\">${title}<\/h3>\r\n                <p class=\"consult-portal__lead\">${copy.lead}<\/p>\r\n                <div class=\"consult-portal__chips\">${chipsHtml}<\/div>\r\n              <\/div>\r\n\r\n              <div class=\"consult-portal__method\">\r\n                <div class=\"consult-portal__methodLabel\">${copy.methodLabel}<\/div>\r\n                <p class=\"consult-portal__methodText\">${copy.methodText}<\/p>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"consult-portal__formBox\">\r\n              <div class=\"consult-portal__formHeader\">\r\n                <h4 class=\"consult-portal__formTitle\">${copy.formTitle}<\/h4>\r\n                <p class=\"consult-portal__formIntro\">${copy.formIntro}<\/p>\r\n              <\/div>\r\n\r\n              <form class=\"consult-portal__form\" id=\"consultationLeadForm\" novalidate>\r\n                <label class=\"consult-portal__label\" for=\"consultation-email-input\">${copy.label}<\/label>\r\n                <div class=\"consult-portal__fieldRow\">\r\n                  <input\r\n                    type=\"email\"\r\n                    id=\"consultation-email-input\"\r\n                    class=\"consult-portal__input\"\r\n                    placeholder=\"${copy.placeholder}\"\r\n                    autocomplete=\"email\"\r\n                    inputmode=\"email\"\r\n                    required\r\n                  >\r\n                  <button type=\"submit\" class=\"consult-portal__submit\" id=\"consultationLeadBtn\">\r\n                    ${copy.button}\r\n                  <\/button>\r\n                <\/div>\r\n                <div class=\"consult-portal__error\" id=\"consultationLeadError\">Entre un email valide pour continuer.<\/div>\r\n                <p class=\"consult-portal__micro\">${copy.micro}<\/p>\r\n              <\/form>\r\n            <\/div>\r\n          <\/section>\r\n        `;\r\n      }\r\n\r\n\r\n    async function generateInterpretationPremiumFree({ theme, gender, name, cards, consultationUrl, mobileSpread }) {\r\n  try {\r\n    const prompt = buildPromptTarotMarseille({ theme, gender, name, cards });\r\n    const aiText = await callOpenRouterViaProxy(prompt, \"openrouter\/free\");\r\n\r\n    return {\r\n      ok: true,\r\n      html: `\r\n        ${mobileSpread || \"\"}\r\n        <h3 style=\"color:var(--gold); margin:0 0 .8rem 0;\">Interpr\u00e9tation de ton tirage<\/h3>\r\n        ${aiTextToHtml(aiText)}\r\n        ${buildConsultationCTA(theme, name, consultationUrl)}\r\n      `\r\n    };\r\n  } catch (e) {\r\n    console.error(\"Erreur OpenRouter :\", e);\r\n\r\n    return {\r\n      ok: false,\r\n      html: `\r\n        ${mobileSpread || \"\"}\r\n        <div class=\"punch\" style=\"margin-bottom:1rem;\">\r\n          <div style=\"font-weight:800; color: var(--gold); margin-bottom:.45rem;\">Erreur de connexion IA<\/div>\r\n          <p style=\"margin-bottom:.55rem;\">L\u2019interpr\u00e9tation n\u2019a pas pu \u00eatre g\u00e9n\u00e9r\u00e9e.<\/p>\r\n          <p style=\"margin-bottom:0;\"><strong>D\u00e9tail :<\/strong> ${esc(e.message || \"Erreur inconnue\")}<\/p>\r\n        <\/div>\r\n      `\r\n    };\r\n  }\r\n}\r\n\r\n      \r\n      async function captureLeadAndRedirect({ email, btn }){\r\n        const restRoot =\r\n          document.querySelector('link[rel=\"https:\/\/api.w.org\/\"]')?.href || (window.location.origin + \"\/wp-json\/\");\r\n        const endpoint = restRoot.replace(\/\\\/?$\/, \"\/\") + \"belline\/v1\/newsletter\";\r\n        const cards = selectedCards.map(i => arcanes[i]?.name).filter(Boolean);\r\n        const redirectUrl = buildConsultationRedirectUrl({\r\n          email,\r\n          name: userName || \"\",\r\n          gender: selectedGender || \"\",\r\n          theme: selectedTheme || \"\",\r\n          cards\r\n        });\r\n        const originalLabel = btn.textContent;\r\n\r\n        btn.disabled = true;\r\n        btn.textContent = \"Acc\u00e8s \u00e0 ta lecture...\";\r\n\r\n        try{\r\n          await fetch(endpoint, {\r\n            method: \"POST\",\r\n            headers: { \"Content-Type\": \"application\/json\" },\r\n            body: JSON.stringify({\r\n              email,\r\n              page: window.location.href,\r\n              name: userName || \"\",\r\n              gender: selectedGender || \"\",\r\n              theme: selectedTheme || \"\",\r\n              cards\r\n            })\r\n          }).catch((e) => {\r\n            console.log(\"Erreur newsletter:\", e);\r\n          });\r\n\r\n          try{\r\n            localStorage.setItem(\"marseilleLeadCapture\", JSON.stringify({\r\n              email,\r\n              name: userName || \"\",\r\n              gender: selectedGender || \"\",\r\n              theme: selectedTheme || \"\",\r\n              cards,\r\n              capturedAt: new Date().toISOString()\r\n            }));\r\n          } catch(_) {}\r\n\r\n          fetch(\"https:\/\/hook.eu2.make.com\/f9ejb9phbzitbxrv4avr0v961wsyrqyb\", {\r\n  method: \"POST\",\r\n  headers: { \"Content-Type\": \"application\/json\" },\r\n  body: JSON.stringify({\r\n    email: email,\r\n    nom: userName || \"\",\r\n    genre: selectedGender || \"\",\r\n    theme: selectedTheme || \"\",\r\n    cartes: cards.join(\" | \"),\r\n    page: window.location.href\r\n  })\r\n}).catch(e => console.log(\"Erreur Make:\", e));\r\n\r\nwindow.location.href = redirectUrl;\r\n        } finally {\r\n          btn.disabled = false;\r\n          btn.textContent = originalLabel;\r\n        }\r\n      }\r\n\r\n      document.addEventListener('submit', async (e) => {\r\n        const form = e.target.closest('#consultationLeadForm');\r\n        if(!form) return;\r\n\r\n        e.preventDefault();\r\n\r\n        const emailInput = form.querySelector('#consultation-email-input');\r\n        const btn = form.querySelector('#consultationLeadBtn');\r\n        const error = form.querySelector('#consultationLeadError');\r\n        const email = (emailInput?.value || \"\").trim();\r\n\r\n        if(!email || !\/^\\S+@\\S+\\.\\S+$\/.test(email)){\r\n          if(error) error.classList.add('is-visible');\r\n          if(emailInput) emailInput.focus();\r\n          return;\r\n        }\r\n\r\n        if(error) error.classList.remove('is-visible');\r\n        await captureLeadAndRedirect({ email, btn });\r\n      });\r\n\r\n      const legacySubmitBtn = document.getElementById('submitEmail');\r\n      if(legacySubmitBtn){\r\n        legacySubmitBtn.addEventListener('click', async () => {\r\n          const emailInput = document.getElementById('email-input');\r\n          const email = (emailInput?.value || \"\").trim();\r\n\r\n          if(!email || !\/^\\S+@\\S+\\.\\S+$\/.test(email)){\r\n            if(emailInput) emailInput.focus();\r\n            return;\r\n          }\r\n\r\n          await captureLeadAndRedirect({ email, btn: legacySubmitBtn });\r\n        });\r\n      }\r\n\r\n      document.getElementById('startBtn').addEventListener('click', (e) => {\r\n        e.preventDefault();\r\n        setTimeout(() => scrollToEl(document.getElementById('tarot'), 22), 80);\r\n      });\r\n\r\n      initDeck();\r\n      updateCounter();\r\n      toggleButtons();\r\n      setEmailCaptureVisible(false);\r\n\r\n      deck.classList.add('disabled');\r\n      genderSection.style.display = 'none';\r\n      resultSection.style.display = 'none';\r\n    });\r\n  <\/script>\r\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<div class=\"wpr-jarallax elementor-element elementor-element-ed088e4 wpr-jarallax-yes e-flex e-con-boxed wpr-particle-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" speed-data=\"1.4\" bg-image=\"\" bg-image-mobile=\"\" scroll-effect=\"scroll\" data-id=\"ed088e4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_motion_fx_mouse&quot;:&quot;yes&quot;,&quot;background_motion_fx_mouseTrack_effect&quot;:&quot;yes&quot;,&quot;background_motion_fx_mouseTrack_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]}}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5da6059 elementor-widget elementor-widget-text-editor\" data-id=\"5da6059\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h4 data-wp-editing=\"1\">Bienvenue sur Tirage Oracle \u2014 Votre guidance gratuite en ligne<\/h4><p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Tu traverses une p\u00e9riode de doutes ? Une question te p\u00e8se sur le c\u0153ur ? Le tarot et les oracles sont l\u00e0 pour t&rsquo;aider \u00e0 y voir plus clair, avec douceur et bienveillance.<\/p><p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Sur Tirage Oracle, tu acc\u00e8des gratuitement aux outils divinatoires les plus puissants : le <strong>Tarot de Marseille<\/strong>, l&rsquo;<strong>Oracle de Belline<\/strong>, l&rsquo;<strong>Oracle des Anges<\/strong> et le <strong>Pendule Oui\/Non<\/strong>. Chaque tirage est unique, personnalis\u00e9 et g\u00e9n\u00e9r\u00e9 instantan\u00e9ment pour toi.<\/p><p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Pas besoin d&rsquo;exp\u00e9rience. Il te suffit de te concentrer sur ta question, de choisir tes cartes intuitivement et de recevoir un message clair pour avancer \u2014 en amour, au travail ou dans tes d\u00e9cisions importantes.<\/p><p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Simple. Gratuit. Confidentiel.<\/strong><\/p><p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Commence ton tirage maintenant et laisse les cartes t&rsquo;\u00e9clairer.\u00a0<\/p>\t\t\t\t\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>\u2728 Le Tarot peut t\u2019aider \u00e0 y voir clair Pose ta question. Tire tes cartes. D\u00e9couvre un message clair et bienveillant pour avancer \u2014 amour, travail, d\u00e9cisions importantes. Simple \u2022 Rapide \u2022 100% confidentiel Commencer mon tirage gratuit Choisis le th\u00e8me de ta question \ud83d\udc96 Amour &#038; Relations \ud83d\udcbc Travail &#038; Carri\u00e8re \ud83d\udcb0 Argent &#038; Finances \u2728 G\u00e9n\u00e9ral Ton pr\u00e9nom (obligatoire) Ton pr\u00e9nom sera utilis\u00e9 uniquement dans ton interpr\u00e9tation. Valider mon pr\u00e9nom Choisis tes 8 cartes intuitivement D\u2019abord, s\u00e9lectionne un th\u00e8me ci-dessus. Ensuite, entre ton pr\u00e9nom, puis choisis 8 cartes dans le paquet. Cartes : 0\/8 Mobile : fais glisser le jeu avec ton doigt, puis touche une carte pour la choisir. Tout effacer Valider mes cartes Pour une interpr\u00e9tation personnalis\u00e9e\u2026 Quelle \u00e9nergie pr\u00e9domine dans ta situation ? \u2728 Femme \u26a1 Homme Recevoir mon interpr\u00e9tation Ton tirage est pr\u00eat \u2728 Lecture priv\u00e9e \u2022 acc\u00e8s personnalis\u00e9 Tu as ouvert la premi\u00e8re couche de ton tirage L\u2019aper\u00e7u re\u00e7u ici r\u00e9v\u00e8le d\u00e9j\u00e0 une dynamique importante. Entre ton email pour acc\u00e9der \u00e0 la suite de ta lecture personnalis\u00e9e&nbsp;: les messages cl\u00e9s \u00e0 retenir, la zone qui m\u00e9rite ton attention maintenant et la guidance audio pour int\u00e9grer plus profond\u00e9ment ton tirage. Message dominant La lecture centrale qui structure vraiment ta question en ce moment. Zone \u00e0 clarifier Le point de tension ou de bascule que tes cartes invitent \u00e0 regarder de plus pr\u00e8s. Guidance int\u00e9grative Un prolongement plus personnel pour t\u2019aider \u00e0 avancer avec plus de lisibilit\u00e9. Acc\u00e9der \u00e0 la suite de ma lecture Validation en 1 clic, puis ouverture imm\u00e9diate de la prochaine \u00e9tape de ton parcours. Bienvenue sur Tirage Oracle \u2014 Votre guidance gratuite en ligne Tu traverses une p\u00e9riode de doutes ? Une question te p\u00e8se sur le c\u0153ur ? Le tarot et les oracles sont l\u00e0 pour t&rsquo;aider \u00e0 y voir plus clair, avec douceur et bienveillance. Sur Tirage Oracle, tu acc\u00e8des gratuitement aux outils divinatoires les plus puissants : le Tarot de Marseille, l&rsquo;Oracle de Belline, l&rsquo;Oracle des Anges et le Pendule Oui\/Non. Chaque tirage est unique, personnalis\u00e9 et g\u00e9n\u00e9r\u00e9 instantan\u00e9ment pour toi. Pas besoin d&rsquo;exp\u00e9rience. Il te suffit de te concentrer sur ta question, de choisir tes cartes intuitivement et de recevoir un message clair pour avancer \u2014 en amour, au travail ou dans tes d\u00e9cisions importantes. Simple. Gratuit. Confidentiel. Commence ton tirage maintenant et laisse les cartes t&rsquo;\u00e9clairer.\u00a0<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-764","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/comments?post=764"}],"version-history":[{"count":232,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/764\/revisions"}],"predecessor-version":[{"id":3380,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/764\/revisions\/3380"}],"wp:attachment":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/media?parent=764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}