{"id":686,"date":"2026-03-01T10:50:34","date_gmt":"2026-03-01T10:50:34","guid":{"rendered":"https:\/\/tirage-oracle.com\/?page_id=686"},"modified":"2026-03-25T18:39:10","modified_gmt":"2026-03-25T18:39:10","slug":"tarot-de-lamour","status":"publish","type":"page","link":"https:\/\/tirage-oracle.com\/en\/tarot-de-lamour\/","title":{"rendered":"Tarot de L&rsquo;Amour"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"686\" class=\"elementor elementor-686\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6787ae5 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=\"6787ae5\" 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-dc9700a 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=\"dc9700a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ab92d3 elementor-widget elementor-widget-html\" data-id=\"4ab92d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"zone-tirage-cartes\">\r\n  <style>\r\n    #zone-tirage-cartes{\r\n      --bg-dark:#1a0b2e;\r\n      --bg-mid:#2d1b69;\r\n      --gold:#d4af37;\r\n      --gold-soft:#f2dc8c;\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      font-family:Arial,sans-serif;\r\n      color:var(--white);\r\n      line-height:1.6;\r\n      overflow-x:clip;\r\n      background:linear-gradient(135deg,var(--bg-dark) 0%,var(--bg-mid) 100%);\r\n      border-radius:24px;\r\n      padding:4rem 2rem;\r\n      max-width:1200px;\r\n      margin:0 auto;\r\n      box-sizing:border-box;\r\n      position:relative;\r\n      isolation:isolate;\r\n    }\r\n\r\n    #zone-tirage-cartes *,\r\n    #zone-tirage-cartes *::before,\r\n    #zone-tirage-cartes *::after{box-sizing:border-box;}\r\n\r\n    #zone-tirage-cartes img{max-width:100%;height:auto;display:block;}\r\n    #zone-tirage-cartes button,\r\n    #zone-tirage-cartes input{font-family:inherit;}\r\n\r\n    #zone-tirage-cartes .section-title{\r\n      text-align:center;\r\n      font-size:clamp(1.85rem,4vw,2.5rem);\r\n      margin-bottom:1.15rem;\r\n      color:var(--gold);\r\n    }\r\n\r\n    #zone-tirage-cartes .hint{\r\n      text-align:center;\r\n      max-width:760px;\r\n      margin:0 auto 1.6rem;\r\n      opacity:.92;\r\n    }\r\n\r\n    #zone-tirage-cartes .namebox{\r\n      max-width:650px;\r\n      margin:1.2rem auto 2rem;\r\n      text-align:center;\r\n      padding:1.6rem;\r\n      background:rgba(255,255,255,0.09);\r\n      border-radius:20px;\r\n      backdrop-filter:blur(10px);\r\n      box-shadow:var(--shadow);\r\n      border:1px solid rgba(212,175,55,0.14);\r\n    }\r\n\r\n    #zone-tirage-cartes .namebox label{\r\n      display:block;\r\n      font-weight:800;\r\n      margin-bottom:.7rem;\r\n      color:var(--white);\r\n      opacity:.95;\r\n    }\r\n\r\n    #zone-tirage-cartes .namebox input{\r\n      width:100%;\r\n      max-width:420px;\r\n      padding:1rem 1.2rem;\r\n      border:none;\r\n      border-radius:999px;\r\n      font-size:1.05rem;\r\n      outline:none;\r\n      color:#221233;\r\n    }\r\n\r\n    #zone-tirage-cartes .namebox .micro{\r\n      margin-top:.7rem;\r\n      font-size:1rem;\r\n      opacity:.85;\r\n    }\r\n\r\n    #zone-tirage-cartes .btn-gold{\r\n      border:none;\r\n      border-radius:999px;\r\n      padding:1rem 2.15rem;\r\n      font-size:1.04rem;\r\n      font-weight:800;\r\n      cursor:pointer;\r\n      transition:all .28s ease;\r\n      box-shadow:var(--shadow);\r\n      display:inline-flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      gap:.45rem;\r\n      min-height:50px;\r\n      line-height:1.15;\r\n      max-width:100%;\r\n      white-space:normal;\r\n      text-align:center;\r\n      background:linear-gradient(45deg,var(--gold),var(--gold-soft));\r\n      color:#221233;\r\n      text-decoration:none;\r\n    }\r\n\r\n    #zone-tirage-cartes .btn-gold:hover{transform:translateY(-2px);}\r\n    #zone-tirage-cartes .btn-gold:disabled{opacity:.7;cursor:not-allowed;transform:none;}\r\n\r\n    #zone-tirage-cartes .counter{\r\n      position:fixed;\r\n      top:calc(1rem + var(--safe-t));\r\n      right:calc(1rem + var(--safe-r));\r\n      background:rgba(0,0,0,0.8);\r\n      color:var(--gold);\r\n      padding:.8rem 1.05rem;\r\n      border-radius:999px;\r\n      font-weight:800;\r\n      z-index:1000;\r\n      border:1px solid rgba(212,175,55,0.18);\r\n      pointer-events:none;\r\n      font-size:.95rem;\r\n      box-shadow:0 12px 28px rgba(0,0,0,0.35);\r\n      backdrop-filter:blur(6px);\r\n    }\r\n\r\n    #zone-tirage-cartes .deck-wrap{\r\n      display:flex;\r\n      justify-content:center;\r\n      align-items:flex-end;\r\n      padding:.9rem 0 1.6rem;\r\n    }\r\n\r\n    #zone-tirage-cartes .deck-table{\r\n      position:relative;\r\n      width:min(1040px, 96vw);\r\n      height:300px;\r\n      border-radius:20px;\r\n      overflow:hidden;\r\n      user-select:none;\r\n      touch-action:manipulation;\r\n      transition:opacity .25s ease;\r\n      background:\r\n        radial-gradient(980px 340px at 50% 45%, rgba(255,255,255,0.18), rgba(255,255,255,0.05) 45%, rgba(0,0,0,0.0) 72%),\r\n        linear-gradient(135deg, rgba(16,8,30,0.96), rgba(45,27,105,0.92));\r\n      border:1px solid rgba(255,255,255,0.18);\r\n      box-shadow:0 16px 44px rgba(0,0,0,0.48);\r\n    }\r\n\r\n    #zone-tirage-cartes .deck-table::before{\r\n      content:\"\";\r\n      position:absolute;\r\n      inset:14px;\r\n      border-radius:14px;\r\n      border:1px solid rgba(255,255,255,0.16);\r\n      background:\r\n        radial-gradient(760px 250px at 50% 20%, rgba(212,175,55,0.14), transparent 60%),\r\n        radial-gradient(520px 220px at 50% 82%, rgba(139,90,43,0.14), transparent 60%);\r\n      pointer-events:none;\r\n    }\r\n\r\n    #zone-tirage-cartes .deck-table.disabled{\r\n      opacity:.35;\r\n      pointer-events:none;\r\n      filter:grayscale(10%);\r\n    }\r\n\r\n    #zone-tirage-cartes .tarot-card{\r\n      position:absolute;\r\n      left:0;\r\n      bottom:12px;\r\n      width:110px;\r\n      aspect-ratio:2.5\/4;\r\n      border-radius:12px;\r\n      transform-style:preserve-3d;\r\n      transition:transform .28s ease, filter .25s ease, box-shadow .25s ease, opacity .25s ease;\r\n      box-shadow:var(--shadow);\r\n      border:2px solid transparent;\r\n      overflow:hidden;\r\n      cursor:pointer;\r\n      will-change:transform;\r\n      transform:translateX(calc(var(--x) * 1px)) rotateY(calc(var(--flip) * 1deg));\r\n      z-index:var(--z);\r\n      background:linear-gradient(145deg,#2a1a3a,#1a0b2e);\r\n    }\r\n\r\n    @media (hover:hover){\r\n      #zone-tirage-cartes .tarot-card:not(.selected):not(.locked):not(.picked):hover{\r\n        transform:translateX(calc(var(--x) * 1px)) translateY(-10px) rotateY(calc(var(--flip) * 1deg));\r\n        box-shadow:var(--shadow-hover);\r\n        border-color:rgba(212,175,55,0.65);\r\n        filter:saturate(1.05);\r\n      }\r\n    }\r\n\r\n    #zone-tirage-cartes .tarot-card.selected{\r\n      border-color:rgba(212,175,55,0.9);\r\n      box-shadow:0 18px 44px rgba(212,175,55,0.20);\r\n    }\r\n\r\n    #zone-tirage-cartes .tarot-card.locked{\r\n      opacity:.35;\r\n      filter:grayscale(55%);\r\n      cursor:not-allowed;\r\n      border-color:transparent;\r\n      box-shadow:var(--shadow);\r\n    }\r\n\r\n    #zone-tirage-cartes .tarot-card.picked{\r\n      pointer-events:none !important;\r\n      opacity:0 !important;\r\n      visibility:hidden !important;\r\n      transform:translate(-9999px, -9999px) !important;\r\n      transition:none !important;\r\n    }\r\n\r\n    #zone-tirage-cartes .card-face,\r\n    #zone-tirage-cartes .card-back{\r\n      position:absolute;\r\n      width:100%;\r\n      height:100%;\r\n      backface-visibility:hidden;\r\n      border-radius:10px;\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n    }\r\n\r\n    #zone-tirage-cartes .card-back{\r\n      background:\r\n        radial-gradient(circle at 30% 20%, rgba(255,215,0,0.18), transparent 45%),\r\n        radial-gradient(circle at 70% 80%, rgba(139,90,43,0.25), transparent 50%),\r\n        repeating-linear-gradient(45deg, rgba(255,255,255,0.08) 0 8px, transparent 8px 16px),\r\n        linear-gradient(145deg, #7b1b12, #b35a2a);\r\n      border:1px solid rgba(255,255,255,0.12);\r\n    }\r\n\r\n    #zone-tirage-cartes .card-back::after{\r\n      content:\"\";\r\n      width:72%;\r\n      height:82%;\r\n      border-radius:12px;\r\n      border:1px solid rgba(212,175,55,0.35);\r\n      box-shadow:inset 0 0 0 2px rgba(0,0,0,0.18);\r\n      opacity:.95;\r\n      display:block;\r\n    }\r\n\r\n    #zone-tirage-cartes .card-face{\r\n      background:linear-gradient(145deg,#f5f5f5,#e0e0e0);\r\n      transform:rotateY(180deg);\r\n    }\r\n\r\n    #zone-tirage-cartes .card-face img{\r\n      width:100%;\r\n      height:100%;\r\n      object-fit:cover;\r\n      display:block;\r\n    }\r\n\r\n    #zone-tirage-cartes .btn-row{\r\n      display:flex;\r\n      gap:12px;\r\n      justify-content:center;\r\n      align-items:center;\r\n      flex-wrap:wrap;\r\n      margin-top:.25rem;\r\n    }\r\n\r\n    @media (max-width: 767px){\r\n      #zone-tirage-cartes .deck-table{\r\n        width:100%;\r\n        max-width:100%;\r\n        height:252px;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode{\r\n        display:flex;\r\n        align-items:flex-end;\r\n        gap:0;\r\n        overflow-x:auto;\r\n        overflow-y:hidden;\r\n        padding:18px 24px 20px 34px;\r\n        scroll-snap-type:x proximity;\r\n        scroll-padding-inline:42px;\r\n        -webkit-overflow-scrolling:touch;\r\n        touch-action:pan-x;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode::before{\r\n        inset:10px;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode::-webkit-scrollbar{\r\n        height:8px;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode::-webkit-scrollbar-thumb{\r\n        background:rgba(212,175,55,0.44);\r\n        border-radius:999px;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode .tarot-card{\r\n        position:relative;\r\n        left:auto;\r\n        bottom:auto;\r\n        width:96px;\r\n        flex:0 0 96px;\r\n        margin-left:-24px;\r\n        scroll-snap-align:center;\r\n        transform:translateY(0) rotateY(calc(var(--flip) * 1deg));\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode .tarot-card:first-child{\r\n        margin-left:0;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode .tarot-card.selected{\r\n        transform:translateY(-8px) rotateY(calc(var(--flip) * 1deg));\r\n        z-index:999 !important;\r\n      }\r\n\r\n      #zone-tirage-cartes .deck-table.swipe-mode .tarot-card.picked{\r\n        display:none !important;\r\n        transform:none !important;\r\n      }\r\n    }\r\n\r\n    @media (max-width: 520px){\r\n      #zone-tirage-cartes{\r\n        padding:2.2rem 1rem;\r\n      }\r\n\r\n      #zone-tirage-cartes .section-title{font-size:1.85rem;}\r\n      #zone-tirage-cartes .namebox{padding:1.2rem; margin:1rem auto 1.2rem;}\r\n\r\n      #zone-tirage-cartes #nextBtn,\r\n      #zone-tirage-cartes #confirmNameBtn{\r\n        width:100% !important;\r\n        max-width:100% !important;\r\n        display:flex !important;\r\n      }\r\n\r\n      #zone-tirage-cartes .btn-row{\r\n        flex-direction:column;\r\n        align-items:stretch;\r\n      }\r\n\r\n      #zone-tirage-cartes .counter{\r\n        top:auto;\r\n        bottom:calc(1rem + var(--safe-b));\r\n        right:calc(1rem + var(--safe-r));\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <h2 class=\"section-title\">Tirage amour Croix  5 cartes<\/h2>\r\n  <p class=\"hint\" id=\"hintText\">\r\n    Entre ton pr\u00e9nom, puis choisis 5 cartes dans le paquet. Concentre-toi sur ta situation amoureuse.\r\n  <\/p>\r\n\r\n  <div class=\"namebox\" id=\"namebox\">\r\n    <label for=\"nameInput2\">Ton pr\u00e9nom (obligatoire)<\/label>\r\n    <input id=\"nameInput2\" type=\"text\" value=\"\" placeholder=\"Ex : Marie\" \/>\r\n    <div class=\"micro\">Ton pr\u00e9nom sera utilis\u00e9 uniquement dans ton interpr\u00e9tation.<\/div>\r\n    <div style=\"margin-top:1rem;\">\r\n      <button id=\"confirmNameBtn\" type=\"button\" class=\"btn-gold\">Valider mon pr\u00e9nom<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <h2 class=\"section-title\" id=\"cardsTitle\" style=\"margin-top:1.6rem;\">Choisis tes 5 cartes intuitivement<\/h2>\r\n\r\n  <div class=\"counter\" id=\"counter\">Cartes : 0\/5<\/div>\r\n\r\n  <div class=\"deck-wrap\">\r\n    <div class=\"deck-table disabled\" id=\"tarot-deck\" aria-label=\"Paquet de cartes Tarot de Marseille\"><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"btn-row\">\r\n    <button id=\"nextBtn\" class=\"btn-gold\" style=\"display:none;\">Valider mes cartes<\/button>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cac28b4 elementor-widget elementor-widget-html\" data-id=\"cac28b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"resultats-interpret\" style=\"display:none;\">\n  <style>\n    #resultats-interpret{\n      --bg-dark:#1a0b2e;\n      --bg-mid:#2d1b69;\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      font-family:Arial,sans-serif;\n      color:var(--white);\n      line-height:1.6;\n    }\n\n    #resultats-interpret *,\n    #resultats-interpret *::before,\n    #resultats-interpret *::after{box-sizing:border-box;}\n\n    #resultats-interpret img{max-width:100%;height:auto;display:block;}\n    #resultats-interpret button,\n    #resultats-interpret input{font-family:inherit;}\n\n    #resultats-interpret .btn-gold{\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      text-decoration:none;\n      background:linear-gradient(45deg,var(--gold),var(--gold-soft));\n      color:#221233;\n    }\n\n    #resultats-interpret .btn-gold:hover{transform:translateY(-2px);}\n\n    #resultats-interpret .gender-section{\n      display:none;\n      max-width:620px;\n      margin:3rem auto;\n      text-align:center;\n      padding:2rem;\n      background:rgba(255,255,255,0.08);\n      border-radius:24px;\n      backdrop-filter:blur(10px);\n      box-shadow:var(--shadow);\n      border:1px solid rgba(212,175,55,0.14);\n    }\n\n    #resultats-interpret .gender-title{\n      margin:0 0 .5rem;\n      color:var(--gold);\n      font-size:clamp(1.6rem, 3vw, 2rem);\n    }\n\n    #resultats-interpret .gender-lead{\n      margin:0 auto 1.25rem;\n      max-width:480px;\n      color:rgba(248,244,230,.9);\n    }\n\n    #resultats-interpret .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:18px;\n      cursor:pointer;\n      transition:all .25s ease;\n      user-select:none;\n    }\n\n    #resultats-interpret .gender-option:hover,\n    #resultats-interpret .gender-option.selected{\n      border-color:rgba(212,175,55,0.72);\n      background:rgba(212,175,55,0.14);\n    }\n\n    #resultats-interpret .result-section{\n      display:none;\n      max-width:1040px;\n      margin:3rem auto;\n      padding:2.4rem;\n      background:rgba(255,255,255,0.08);\n      border-radius:24px;\n      text-align:center;\n      box-shadow:var(--shadow);\n      border:1px solid rgba(212,175,55,0.14);\n    }\n\n    #resultats-interpret .result-shell{\n      display:grid;\n      gap:1.5rem;\n    }\n\n    #resultats-interpret .spirit-hero{\n      position:relative;\n      overflow:hidden;\n      display:grid;\n      grid-template-columns:160px minmax(0,1fr);\n      gap:1.35rem;\n      align-items:center;\n      padding:1.5rem;\n      border-radius:22px;\n      background:\n        radial-gradient(520px 180px at 15% 15%, rgba(212,175,55,0.12), transparent 60%),\n        radial-gradient(520px 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      text-align:left;\n    }\n\n    #resultats-interpret .spirit-hero::after{\n      content:\"\";\n      position:absolute;\n      inset:10px;\n      border-radius:16px;\n      border:1px solid rgba(255,255,255,0.08);\n      pointer-events:none;\n    }\n\n    #resultats-interpret .spirit-hero__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\n    #resultats-interpret .spirit-hero__eyebrow::before{\n      content:\"\";\n      width:26px;\n      height:1px;\n      background:rgba(242,220,140,0.55);\n    }\n\n    #resultats-interpret .spirit-hero__title{\n      margin:0 0 .55rem 0;\n      color:var(--gold);\n      font-size:clamp(1.25rem, 2.5vw, 1.8rem);\n      line-height:1.15;\n    }\n\n    #resultats-interpret .spirit-hero__text{\n      margin:0;\n      color:rgba(248,244,230,.92);\n    }\n\n    #resultats-interpret .spirit-clock{\n      position:relative;\n      width:140px;\n      height:140px;\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\n    #resultats-interpret .spirit-clock__ring{\n      position:absolute;\n      inset:0;\n      border-radius:50%;\n      border:1px solid rgba(212,175,55,0.34);\n    }\n\n    #resultats-interpret .spirit-clock__ring--1{animation:tarotSpin 7s linear infinite;}\n    #resultats-interpret .spirit-clock__ring--2{\n      inset:10px;\n      border-color:rgba(63,207,190,0.30);\n      animation:tarotSpinReverse 9s linear infinite;\n    }\n    #resultats-interpret .spirit-clock__ring--3{\n      inset:24px;\n      border-color:rgba(255,255,255,0.16);\n    }\n\n    #resultats-interpret .spirit-clock__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:1rem;\n      font-weight:900;\n      box-shadow:0 0 20px rgba(212,175,55,0.32);\n      z-index:3;\n    }\n\n    #resultats-interpret .spirit-clock__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\n    #resultats-interpret .spirit-clock__hand--long{\n      width:46px;\n      background:linear-gradient(90deg,var(--gold),transparent);\n      animation:tarotTick 2.8s linear infinite;\n    }\n\n    #resultats-interpret .spirit-clock__hand--short{\n      width:32px;\n      background:linear-gradient(90deg,var(--teal),transparent);\n      animation:tarotTick 6s linear infinite reverse;\n    }\n\n    #resultats-interpret .spirit-clock__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\n    #resultats-interpret .spirit-clock__dot--1{ top:10px; left:50%; margin-left:-3.5px; }\n    #resultats-interpret .spirit-clock__dot--2{ right:14px; top:50%; margin-top:-3.5px; }\n    #resultats-interpret .spirit-clock__dot--3{ bottom:10px; left:50%; margin-left:-3.5px; }\n    #resultats-interpret .spirit-clock__dot--4{ left:14px; top:50%; margin-top:-3.5px; }\n\n    #resultats-interpret #cards-display{\n      display:flex;\n      justify-content:center;\n      width:100%;\n    }\n\n    #resultats-interpret .spread32,\n    #resultats-interpret .resultSpread{\n      width:min(760px, 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\n    #resultats-interpret .spread32 .row,\n    #resultats-interpret .resultSpread .row{\n      width:100%;\n      display:flex;\n      justify-content:center;\n      align-items:center;\n      gap:12px;\n      flex-wrap:nowrap;\n    }\n\n    #resultats-interpret .spread32 .card,\n    #resultats-interpret .resultSpread .card{\n      width:120px;\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\n    #resultats-interpret .resultSpread{\n      width:min(100%, 430px);\n      padding:14px;\n      gap:10px;\n    }\n\n    #resultats-interpret .resultSpread .row{\n      width:fit-content;\n      max-width:100%;\n      gap:10px;\n    }\n\n    #resultats-interpret .resultSpread .card{\n      width:clamp(72px, 22vw, 92px);\n    }\n\n    #resultats-interpret .spread32 .card img,\n    #resultats-interpret .resultSpread .card img{\n      width:100%;\n      height:100%;\n      object-fit:cover;\n      display:block;\n    }\n\n    #resultats-interpret .interpretation{\n      background:rgba(0,0,0,0.28);\n      padding:2rem;\n      border-radius:18px;\n      line-height:1.8;\n      text-align:left;\n      width:100%;\n      max-width:920px;\n      margin:0 auto;\n      border:1px solid rgba(255,255,255,0.08);\n    }\n\n    #resultats-interpret .interpretation p{margin:0 0 .9rem 0; opacity:.97;}\n\n    #resultats-interpret .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\n\n    #resultats-interpret .consult-portal{\n      position:relative;\n      overflow:hidden;\n      margin-top:1.35rem;\n      padding:1.3rem;\n      border-radius:26px;\n      color:var(--white);\n      background:\n        radial-gradient(680px 240px at 0% 0%, rgba(212,175,55,.18), transparent 58%),\n        radial-gradient(520px 260px at 100% 100%, rgba(123,92,255,.12), transparent 60%),\n        linear-gradient(145deg, rgba(34,21,57,.96), rgba(17,12,34,.98));\n      border:1px solid rgba(255,255,255,.08);\n      box-shadow:0 20px 45px rgba(0,0,0,.35);\n    }\n\n    #resultats-interpret .consult-portal::before{\n      content:\"\";\n      position:absolute;\n      inset:12px;\n      border-radius:18px;\n      border:1px solid rgba(255,255,255,.06);\n      pointer-events:none;\n    }\n\n    #resultats-interpret .consult-portal > *{position:relative;z-index:1;}\n\n    #resultats-interpret .consult-portal__top{\n      display:grid;\n      grid-template-columns:minmax(0,1.35fr) minmax(250px,.9fr);\n      gap:1rem;\n      align-items:start;\n    }\n\n    #resultats-interpret .consult-portal__eyebrow{\n      display:inline-flex;\n      align-items:center;\n      gap:.45rem;\n      margin-bottom:.7rem;\n      padding:.36rem .72rem;\n      border-radius:999px;\n      background:rgba(255,255,255,.06);\n      color:var(--gold-soft);\n      font-size:.78rem;\n      font-weight:800;\n      letter-spacing:.08em;\n      text-transform:uppercase;\n      border:1px solid rgba(255,255,255,.08);\n    }\n\n    #resultats-interpret .consult-portal__title{\n      margin:0 0 .65rem;\n      font-size:clamp(1.45rem, 2.4vw, 2rem);\n      line-height:1.12;\n      color:var(--white);\n    }\n\n    #resultats-interpret .consult-portal__lead{\n      margin:0 0 .85rem;\n      color:rgba(248,244,230,.88);\n      line-height:1.65;\n    }\n\n    #resultats-interpret .consult-portal__highlight{\n      color:var(--gold-soft);\n      font-weight:700;\n    }\n\n    #resultats-interpret .consult-portal__chips{\n      display:flex;\n      flex-wrap:wrap;\n      gap:.55rem;\n    }\n\n    #resultats-interpret .consult-portal__chip{\n      display:inline-flex;\n      align-items:center;\n      gap:.4rem;\n      padding:.45rem .75rem;\n      border-radius:999px;\n      background:rgba(255,255,255,.06);\n      border:1px solid rgba(255,255,255,.08);\n      color:rgba(248,244,230,.92);\n      font-size:.84rem;\n      font-weight:700;\n    }\n\n    #resultats-interpret .consult-portal__chip::before{\n      content:\"\u2726\";\n      color:var(--gold-soft);\n      font-size:.78rem;\n    }\n\n    #resultats-interpret .consult-portal__method{\n      border-radius:20px;\n      padding:.95rem 1rem;\n      background:linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));\n      border:1px solid rgba(255,255,255,.08);\n      backdrop-filter:blur(6px);\n    }\n\n    #resultats-interpret .consult-portal__methodLabel{\n      margin:0 0 .38rem;\n      color:var(--gold-soft);\n      font-size:.8rem;\n      font-weight:800;\n      letter-spacing:.03em;\n      text-transform:uppercase;\n    }\n\n    #resultats-interpret .consult-portal__methodText{\n      margin:0;\n      color:rgba(248,244,230,.87);\n      font-size:.92rem;\n      line-height:1.5;\n    }\n\n    #resultats-interpret .consult-portal__formBox{\n      margin-top:1rem;\n      border-radius:22px;\n      padding:1rem;\n      background:rgba(255,255,255,.05);\n      border:1px solid rgba(255,255,255,.08);\n      backdrop-filter:blur(7px);\n    }\n\n    #resultats-interpret .consult-portal__formHeader{\n      display:flex;\n      flex-direction:column;\n      gap:.28rem;\n      margin-bottom:.8rem;\n    }\n\n    #resultats-interpret .consult-portal__formTitle{\n      margin:0;\n      color:var(--white);\n      font-size:1rem;\n      font-weight:800;\n    }\n\n    #resultats-interpret .consult-portal__formIntro{\n      margin:0;\n      color:rgba(248,244,230,.82);\n      font-size:.9rem;\n      line-height:1.45;\n    }\n\n    #resultats-interpret .consult-portal__label{\n      display:block;\n      margin:0 0 .45rem;\n      color:var(--white);\n      font-weight:700;\n      font-size:.9rem;\n    }\n\n    #resultats-interpret .consult-portal__fieldRow{\n      display:grid;\n      grid-template-columns:minmax(0,1fr) auto;\n      gap:.7rem;\n      align-items:stretch;\n    }\n\n    #resultats-interpret .consult-portal__input{\n      width:100%;\n      min-height:56px;\n      border-radius:16px;\n      border:1px solid rgba(255,255,255,.12);\n      background:rgba(9,8,20,.34);\n      color:var(--white);\n      padding:0 1rem;\n      font-size:1rem;\n      outline:none;\n      box-shadow:inset 0 1px 0 rgba(255,255,255,.03);\n    }\n\n    #resultats-interpret .consult-portal__input::placeholder{color:rgba(248,244,230,.42);}\n\n    #resultats-interpret .consult-portal__input:focus{\n      border-color:rgba(242,220,140,.58);\n      box-shadow:0 0 0 4px rgba(212,175,55,.12);\n    }\n\n    #resultats-interpret .consult-portal__submit{\n      min-width:248px;\n      min-height:56px;\n      border:0;\n      border-radius:16px;\n      padding:0 1.2rem;\n      font-size:.98rem;\n      font-weight:900;\n      color:#241235;\n      cursor:pointer;\n      background:linear-gradient(135deg, #f8ebaf, #d4af37 62%, #bd8f1f);\n      box-shadow:0 16px 34px rgba(212,175,55,.24);\n      transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;\n    }\n\n    #resultats-interpret .consult-portal__submit:hover{\n      transform:translateY(-2px);\n      box-shadow:0 20px 42px rgba(212,175,55,.28);\n      filter:saturate(1.03);\n    }\n\n    #resultats-interpret .consult-portal__submit:disabled{\n      opacity:.72;\n      cursor:wait;\n      transform:none;\n    }\n\n    #resultats-interpret .consult-portal__micro{\n      margin:.68rem 0 0;\n      color:rgba(248,244,230,.72);\n      font-size:.82rem;\n      line-height:1.45;\n    }\n\n    #resultats-interpret .consult-portal__error{\n      margin-top:.55rem;\n      color:#ffd3d3;\n      font-size:.84rem;\n      display:none;\n    }\n\n    #resultats-interpret .consult-portal__error.is-visible{display:block;}\n\n    @keyframes tarotSpin{\n      from{transform:rotate(0deg);}\n      to{transform:rotate(360deg);}\n    }\n\n    @keyframes tarotSpinReverse{\n      from{transform:rotate(360deg);}\n      to{transform:rotate(0deg);}\n    }\n\n    @keyframes tarotTick{\n      from{transform:rotate(0deg);}\n      to{transform:rotate(360deg);}\n    }\n\n    @media (max-width: 900px){\n      #resultats-interpret .spread32 .card,\n      #resultats-interpret .resultSpread .card{width:108px;}\n\n      #resultats-interpret .spirit-hero{\n        grid-template-columns:1fr;\n        text-align:center;\n      }\n\n      #resultats-interpret .consult-portal__top{\n        grid-template-columns:1fr;\n      }\n    }\n\n    @media (max-width: 700px){\n      #resultats-interpret .spread32 .card,\n      #resultats-interpret .resultSpread .card{width:96px;}\n\n      #resultats-interpret .consult-portal__fieldRow{\n        grid-template-columns:1fr;\n      }\n\n      #resultats-interpret .consult-portal__submit{\n        width:100%;\n        min-width:0;\n      }\n\n\n    }\n\n    @media (max-width: 520px){\n      #resultats-interpret .gender-section,\n      #resultats-interpret .result-section{\n        width:100%;\n        max-width:100%;\n        margin:1.2rem auto 0;\n        padding:1.25rem;\n        border-radius:18px;\n      }\n\n      #resultats-interpret #cards-display{\n        display:flex;\n        justify-content:center;\n        width:100%;\n      }\n\n      #resultats-interpret .interpretation{\n        width:100%;\n        max-width:100%;\n        padding:1.45rem 1.1rem;\n        border-radius:18px;\n        line-height:1.85;\n      }\n\n      #resultats-interpret .spirit-hero{\n        grid-template-columns:1fr;\n        justify-items:center;\n        text-align:center;\n        gap:1rem;\n        padding:1.2rem;\n      }\n\n      #resultats-interpret .spirit-hero__eyebrow{\n        justify-content:center;\n      }\n\n      #resultats-interpret .spirit-clock{\n        width:124px;\n        height:124px;\n      }\n\n      #resultats-interpret .resultSpread{\n        width:min(100%, 360px);\n        padding:12px;\n      }\n\n      #resultats-interpret .resultSpread .row{\n        gap:8px;\n      }\n\n      #resultats-interpret .resultSpread .card{\n        width:clamp(72px, 22vw, 92px);\n      }\n    }\n  <\/style>\n\n  <section id=\"gender-section\" class=\"gender-section\">\n    <h2 class=\"gender-title\">Quelle \u00e9nergie te repr\u00e9sente le mieux ?<\/h2>\n    <p class=\"gender-lead\">Ce choix affine la lecture et nuance la mani\u00e8re dont ton tirage est formul\u00e9.<\/p>\n\n    <div class=\"gender-option\" data-gender=\"femme\">Je me reconnais davantage dans une \u00e9nergie f\u00e9minine<\/div>\n    <div class=\"gender-option\" data-gender=\"homme\">Je me reconnais davantage dans une \u00e9nergie masculine<\/div>\n\n    <button id=\"interpretBtn\" class=\"btn-gold\" style=\"margin-top:1.2rem;display:none;\">Recevoir mon interpr\u00e9tation<\/button>\n  <\/section>\n\n  <section id=\"result-section\" class=\"result-section\">\n    <div class=\"result-shell\">\n      <div id=\"spiritHero\" class=\"spirit-hero\" style=\"display:none;\">\n        <div class=\"spirit-clock\" aria-hidden=\"true\">\n          <div class=\"spirit-clock__ring spirit-clock__ring--1\"><\/div>\n          <div class=\"spirit-clock__ring spirit-clock__ring--2\"><\/div>\n          <div class=\"spirit-clock__ring spirit-clock__ring--3\"><\/div>\n          <div class=\"spirit-clock__hand spirit-clock__hand--long\"><\/div>\n          <div class=\"spirit-clock__hand spirit-clock__hand--short\"><\/div>\n          <div class=\"spirit-clock__center\">\u2726<\/div>\n          <div class=\"spirit-clock__dot spirit-clock__dot--1\"><\/div>\n          <div class=\"spirit-clock__dot spirit-clock__dot--2\"><\/div>\n          <div class=\"spirit-clock__dot spirit-clock__dot--3\"><\/div>\n          <div class=\"spirit-clock__dot spirit-clock__dot--4\"><\/div>\n        <\/div>\n\n        <div class=\"spirit-hero__copy\">\n          <div class=\"spirit-hero__eyebrow\">Lecture align\u00e9e<\/div>\n          <h3 id=\"resultTitle\" class=\"spirit-hero__title\">Ton tirage commence \u00e0 parler<\/h3>\n          <p class=\"spirit-hero__text\">Tes 5 cartes sont align\u00e9es. J\u2019ouvre maintenant la dynamique affective dominante, le n\u0153ud du lien et la guidance la plus utile pour la suite.<\/p>\n        <\/div>\n      <\/div>\n\n      <div id=\"cards-display\"><\/div>\n\n      <div id=\"interpretation\" class=\"interpretation\"><\/div>\n    <\/div>\n  <\/section>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ccff2f elementor-widget elementor-widget-html\" data-id=\"8ccff2f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"scripts-connect\">\n  <script>\n    (function(){\n      if (window.__TAROT_AMOUR_5_BLOCS_REWORK__) return;\n      window.__TAROT_AMOUR_5_BLOCS_REWORK__ = true;\n\n      function init() {\n        const CONSULTATION_URL = \"https:\/\/tirage-oracle.com\/consultation\/\";\n        const PROXY_URL = \"\/openrouter-proxy.php\";\n\n        const arcanes = [\n          { name:'Le Mat', file:'LE MAT Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Bateleur', file:'I LE BATELEUR Nicolas Conver Tarot 1760.jpg' },\n          { name:'La Papesse', file:'II LA PAPESSE Nicolas Conver Tarot 1760.jpg' },\n          { name:\"L'Imp\u00e9ratrice\", file:\"II L'IMP\u00c9RATRICE Nicolas Conver Tarot 1760.jpg\" },\n          { name:\"L'Empereur\", file:\"IIII-L'EMPEREUR Nicolas Conver Tarot 1760.jpg\" },\n          { name:'Le Pape', file:'V LE PAPE Nicolas Conver Tarot 1760.jpg' },\n          { name:\"L'Amoureux\", file:\"VI L'AMOUREUX Nicolas Conver Tarot 1760.jpg\" },\n          { name:'Le Chariot', file:'VII LE CHARIOT Nicolas Conver Tarot 1760.jpg' },\n          { name:'La Justice', file:'VIII LA JUSTICE Nicolas Conver Tarot 1760.jpg' },\n          { name:\"L'Hermite\", file:\"VIIII L'HERMITE Nicolas Conver Tarot 1760.jpg\" },\n          { name:'La Roue de Fortune', file:'X LA ROUE DE FORTUNE Nicolas Conver Tarot 1760.jpg' },\n          { name:'La Force', file:'XI LA FORCE Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Pendu', file:'XII LE PENDU Nicolas Conver Tarot 1760.jpg' },\n          { name:\"L'Arcane Sans Nom\", file:'13 XIII Nicolas Conver Tarot 1760.jpg' },\n          { name:'La Temp\u00e9rance', file:'XIIII TEMPERANCE Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Diable', file:'XV LE DIABLE Nicolas Conver Tarot 1760.jpg' },\n          { name:'La Maison Dieu', file:'XVI LA MAISON DE DIEU Nicolas Conver Tarot 1760.jpg' },\n          { name:\"L'\u00c9toile\", file:\"XVII L'ETOILE Nicolas Conver Tarot 1760.jpg\" },\n          { name:'La Lune', file:'XVIII LA LUNE Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Soleil', file:'XVIIII LE SOLEIL Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Jugement', file:'XX LE JUGEMENT Nicolas Conver Tarot 1760.jpg' },\n          { name:'Le Monde', file:'XXI LE MONDE Nicolas Conver Tarot 1760.jpg' }\n        ].map(c => ({\n          ...c,\n          img: \"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/\" + encodeURIComponent(c.file)\n        }));\n\n        const maxCards = 5;\n        let selectedCards = [];\n        let selectedGender = null;\n        let userName = \"\";\n\n        const deck = document.getElementById('tarot-deck');\n        const counter = document.getElementById('counter');\n        const nextBtn = document.getElementById('nextBtn');\n        const hintText = document.getElementById('hintText');\n\n        const nameInput2 = document.getElementById('nameInput2');\n        const confirmNameBtn = document.getElementById('confirmNameBtn');\n        const cardsTitle = document.getElementById('cardsTitle');\n\n        const resultatsBlock = document.getElementById('resultats-interpret');\n        const genderSection = document.getElementById('gender-section');\n        const interpretBtn = document.getElementById('interpretBtn');\n        const resultSection = document.getElementById('result-section');\n        const cardsDisplay = document.getElementById('cards-display');\n        const interpretationEl = document.getElementById('interpretation');\n        const resultTitle = document.getElementById('resultTitle');\n        const spiritHero = document.getElementById('spiritHero');\n\n        if (!deck || !counter || !nextBtn || !hintText || !nameInput2 || !confirmNameBtn || !cardsTitle || !resultatsBlock || !genderSection || !interpretBtn || !resultSection || !cardsDisplay || !interpretationEl || !resultTitle) {\n          console.warn('Tarot 5 blocs : des \u00e9l\u00e9ments HTML manquent. V\u00e9rifie que les blocs mis \u00e0 jour sont bien coll\u00e9s dans la page.');\n          return;\n        }\n\n        function esc(str){\n          return String(str)\n            .replaceAll(\"&\",\"&amp;\")\n            .replaceAll(\"<\",\"&lt;\")\n            .replaceAll(\">\",\"&gt;\")\n            .replaceAll('\"',\"&quot;\")\n            .replaceAll(\"'\",\"&#039;\");\n        }\n\n        function scrollToEl(el, offsetPx = 18, mode = 'top'){\n          if(!el) return;\n          const rect = el.getBoundingClientRect();\n          const desktop = window.innerWidth >= 1024;\n          let y = rect.top + window.pageYOffset - offsetPx;\n\n          if(mode === 'center' && desktop){\n            const target = rect.top + window.pageYOffset - Math.max(40, (window.innerHeight - rect.height) \/ 2);\n            y = Math.max(0, target);\n          }\n\n          window.scrollTo({ top: y, behavior: 'smooth' });\n        }\n\n        function isMobile(){\n          return window.matchMedia && window.matchMedia(\"(max-width: 520px)\").matches;\n        }\n\n        function isDeckSwipeMode(){\n          return window.matchMedia && window.matchMedia(\"(max-width: 767px)\").matches;\n        }\n\n        function updateHint(){\n          if(!userName){\n            hintText.textContent = \"Entre ton pr\u00e9nom, puis choisis 5 cartes dans le paquet. Concentre-toi sur ta situation amoureuse.\";\n            return;\n          }\n\n          const remaining = maxCards - selectedCards.length;\n          if(remaining <= 0){\n            hintText.textContent = `${userName}, ton tirage est complet. Valide maintenant tes 5 cartes.`;\n            return;\n          }\n\n          if(isDeckSwipeMode()){\n            hintText.textContent = remaining === maxCards\n              ? `${userName}, fais glisser le deck horizontalement puis choisis 5 cartes intuitivement.`\n              : `${userName}, glisse puis choisis encore ${remaining} carte${remaining > 1 ? \"s\" : \"\"}.`;\n            return;\n          }\n\n          hintText.textContent = remaining === maxCards\n            ? `${userName}, respire\u2026 puis choisis 5 cartes. Pense \u00e0 ta situation amoureuse.`\n            : `${userName}, choisis encore ${remaining} carte${remaining > 1 ? \"s\" : \"\"} pour compl\u00e9ter ton tirage.`;\n        }\n\n        function updateDeckModeClass(){\n          deck.classList.toggle('swipe-mode', isDeckSwipeMode());\n        }\n\n        function layoutTable(){\n          const cards = [...deck.querySelectorAll('.tarot-card:not(.picked)')];\n          const total = cards.length;\n          updateDeckModeClass();\n          if(!total) return;\n\n          if(isDeckSwipeMode()){\n            cards.forEach((el, i) => {\n              el.style.position = 'relative';\n              el.style.left = 'auto';\n              el.style.bottom = 'auto';\n              el.style.setProperty('--x', '0');\n              el.style.setProperty('--z', String(i));\n            });\n            return;\n          }\n\n          const W = deck.getBoundingClientRect().width || window.innerWidth;\n          const mobile = isMobile();\n          const cardW = mobile ? 92 : 110;\n          const pad = mobile ? 16 : 22;\n\n          const usable = Math.max(140, W - pad * 2);\n          const rawStep = (usable - cardW) \/ Math.max(1, total - 1);\n          const step = Math.max(mobile ? 11 : 14, Math.min(mobile ? 22 : 34, rawStep));\n\n          const spreadW = cardW + step * (total - 1);\n          const startX = Math.round((W - spreadW) \/ 2);\n\n          cards.forEach((el, i) => {\n            const x = startX + i * step;\n            el.style.position = 'absolute';\n            el.style.left = '0';\n            el.style.bottom = '12px';\n            el.style.setProperty('--x', String(x));\n            el.style.setProperty('--z', String(i));\n          });\n        }\n\n        function initDeck() {\n          deck.innerHTML = '';\n          arcanes.forEach((cardData, index) => {\n            const card = document.createElement('div');\n            card.className = 'tarot-card';\n            card.dataset.index = index;\n            card.style.setProperty('--flip', '0');\n\n            card.innerHTML = `\n              <div class=\"card-back\"><\/div>\n              <div class=\"card-face\">\n                <img decoding=\"async\" loading=\"lazy\" src=\"${cardData.img}\" alt=\"\">\n              <\/div>\n            `;\n\n            card.addEventListener('click', selectCard);\n            deck.appendChild(card);\n          });\n\n          layoutTable();\n        }\n\n        function updateCounter() {\n          counter.textContent = `Cartes : ${selectedCards.length}\/${maxCards}`;\n        }\n\n        function lockUnselectedCardsIfNeeded(){\n          const cards = deck.querySelectorAll('.tarot-card');\n          if(selectedCards.length >= maxCards){\n            cards.forEach(el => {\n              const idx = parseInt(el.dataset.index, 10);\n              if(!selectedCards.includes(idx)) el.classList.add('locked');\n            });\n          } else {\n            cards.forEach(el => el.classList.remove('locked'));\n          }\n        }\n\n        function toggleButtons() {\n          nextBtn.style.display = selectedCards.length === maxCards ? 'inline-flex' : 'none';\n          lockUnselectedCardsIfNeeded();\n          updateHint();\n\n          if(selectedCards.length === maxCards){\n            setTimeout(() => scrollToEl(nextBtn, 22), 80);\n          }\n        }\n\n        function clearGenderChoice(){\n          selectedGender = null;\n          document.querySelectorAll('.gender-option').forEach(opt => opt.classList.remove('selected'));\n          interpretBtn.style.display = 'none';\n        }\n\n        function resetDeckState(){\n          selectedCards = [];\n          document.querySelectorAll('.tarot-card').forEach(c => {\n            c.classList.remove('selected','locked','picked');\n            c.style.setProperty('--flip','0');\n          });\n          updateCounter();\n          toggleButtons();\n          layoutTable();\n        }\n\n        function resetFlowFromName(){\n          clearGenderChoice();\n          resetDeckState();\n          resultatsBlock.style.display = 'none';\n          genderSection.style.display = 'none';\n          resultSection.style.display = 'none';\n          cardsDisplay.innerHTML = \"\";\n          interpretationEl.innerHTML = \"\";\n          resultTitle.textContent = \"Ton tirage commence \u00e0 parler\";\n        }\n\n        function focusNameInput(){\n          nameInput2.focus();\n          nameInput2.style.outline = \"3px solid rgba(212,175,55,0.75)\";\n        }\n\n        function scrollNextAvailableCardIntoView(){\n          if(!isDeckSwipeMode()) return;\n          const nextCard = deck.querySelector('.tarot-card:not(.picked):not(.selected)');\n          if(nextCard){\n            nextCard.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });\n          }\n        }\n\n        confirmNameBtn.addEventListener('click', (e)=>{\n          e.preventDefault();\n          e.stopPropagation();\n\n          const v = (nameInput2.value || \"\").trim();\n          if(!v){\n            focusNameInput();\n            return;\n          }\n\n          nameInput2.style.outline = \"none\";\n          userName = v.charAt(0).toUpperCase() + v.slice(1);\n          nameInput2.value = userName;\n\n          deck.classList.remove('disabled');\n          resetFlowFromName();\n          updateHint();\n          setTimeout(() => scrollToEl(cardsTitle, 22), 80);\n        });\n\n        nameInput2.addEventListener('keydown', (e) => {\n          if(e.key === 'Enter'){\n            e.preventDefault();\n            confirmNameBtn.click();\n          }\n        });\n\n        function selectCard(e) {\n          if (!userName) {\n            focusNameInput();\n            return;\n          }\n          if (selectedCards.length >= maxCards) return;\n\n          const card = e.currentTarget;\n          if(card.classList.contains('locked') || card.classList.contains('picked')) return;\n\n          const index = parseInt(card.dataset.index, 10);\n          if (selectedCards.includes(index)) return;\n\n          selectedCards.push(index);\n          card.classList.add('selected');\n          card.style.setProperty('--flip', '180');\n\n          window.setTimeout(() => {\n            card.classList.add('picked');\n            layoutTable();\n            scrollNextAvailableCardIntoView();\n          }, 220);\n\n          updateCounter();\n          toggleButtons();\n        }\n\n        nextBtn.addEventListener('click', () => {\n          if(selectedCards.length !== maxCards) return;\n          resultatsBlock.style.display = '';\n          genderSection.style.display = 'block';\n          resultSection.style.display = 'none';\n          clearGenderChoice();\n          setTimeout(() => scrollToEl(genderSection, 22), 80);\n        });\n\n        document.querySelectorAll('.gender-option').forEach(option => {\n          option.addEventListener('click', () => {\n            document.querySelectorAll('.gender-option').forEach(opt => opt.classList.remove('selected'));\n            option.classList.add('selected');\n            selectedGender = option.dataset.gender;\n\n            interpretBtn.style.display = 'inline-flex';\n            setTimeout(() => scrollToEl(interpretBtn, 22), 80);\n          });\n        });\n\n        function buildDesktopSpread5(selIdx){\n          const [a,b,c,d,e] = selIdx;\n          return `\n            <div class=\"spread32\" aria-label=\"Tes 5 cartes\">\n              <div class=\"row\">\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[a].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[b].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[c].img}\" alt=\"\"><\/div>\n              <\/div>\n              <div class=\"row\">\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[d].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[e].img}\" alt=\"\"><\/div>\n              <\/div>\n            <\/div>\n          `;\n        }\n\n        function buildMobileResultSpread5(selIdx){\n          const [a,b,c,d,e] = selIdx;\n          return `\n            <div class=\"resultSpread\">\n              <div class=\"row\">\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[a].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[b].img}\" alt=\"\"><\/div>\n              <\/div>\n              <div class=\"row\">\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[c].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[d].img}\" alt=\"\"><\/div>\n                <div class=\"card\"><img decoding=\"async\" loading=\"lazy\" src=\"${arcanes[e].img}\" alt=\"\"><\/div>\n              <\/div>\n            <\/div>\n          `;\n        }\n\n        interpretBtn.addEventListener('click', async () => {\n          if (!selectedGender) return;\n          await showResults(selectedGender);\n        });\n\n        async function showResults(gender) {\n          resultatsBlock.style.display = '';\n          resultSection.style.display = 'block';\n          genderSection.style.display = 'none';\n\n          \/\/ Affiche spiritHero en mode \"loading\" d\u00e8s le d\u00e9part\n          if (spiritHero) {\n            spiritHero.style.display = '';\n            const heroTitle = document.getElementById('resultTitle');\n            const heroText = spiritHero.querySelector('.spirit-hero__text');\n            const heroEyebrow = spiritHero.querySelector('.spirit-hero__eyebrow');\n            if (heroTitle) heroTitle.textContent = `${esc(userName)}, je pr\u00e9pare ton tirage amour\u2026`;\n            if (heroText)  heroText.textContent  = `Je rassemble la dynamique dominante, la zone de tension et la guidance la plus utile pour la suite de ton histoire.`;\n            if (heroEyebrow) heroEyebrow.textContent = `Lecture en pr\u00e9paration`;\n          }\n\n          cardsDisplay.innerHTML = isMobile()\n            ? buildMobileResultSpread5(selectedCards)\n            : buildDesktopSpread5(selectedCards);\n\n          interpretationEl.innerHTML = '';\n          setTimeout(() => scrollToEl(resultSection, 22, 'center'), 80);\n\n          const interpretation = await generateInterpretationPremiumFree({\n            gender,\n            name: userName,\n            cards: selectedCards.map(i => arcanes[i].name),\n            consultationUrl: CONSULTATION_URL\n          });\n\n          \/\/ Interpr\u00e9tation pr\u00eate : on cache l'horloge\n          if (spiritHero) spiritHero.style.display = 'none';\n\n          interpretationEl.innerHTML = interpretation;\n        }\n\n        function buildPromptTarotMarseilleAmour({ name, gender, cards }) {\n          const genre = gender === \"femme\" ? \"femme\" : \"homme\";\n\n          const system = `\nTu es un(e) tarologue expert(e) du Tarot de Marseille, sp\u00e9cialis\u00e9(e) dans les questions d\u2019amour et de relations.\nTu exerces en cabinet priv\u00e9 avec une approche sobre, structur\u00e9e et cr\u00e9dible.\n\nSTYLE STRICT :\n- Fran\u00e7ais uniquement.\n- Tutoiement strict : jamais \"vous\", jamais \"votre\".\n- Ton professionnel, rassurant, pr\u00e9cis.\n- Pas de langage marketing.\n- Pas de dramatisation.\n- Pas de promesses magiques.\n- Parle en dynamiques et probabilit\u00e9s, jamais en certitudes.\n- Pas de dates invent\u00e9es.\n- Pas de jargon \u00e9sot\u00e9rique compliqu\u00e9.\n\nR\u00c8GLE MAJEURE :\n- Ne mentionne JAMAIS le nom des cartes.\n- N\u2019explique JAMAIS la m\u00e9canique du tirage.\n- Utilise uniquement le pr\u00e9nom de la personne.\n- La r\u00e9ponse doit rester centr\u00e9e sur l\u2019amour, l\u2019attachement, la relation, les intentions, l\u2019\u00e9volution probable du lien et le positionnement affectif.\n\nFORMAT :\nA) LECTURE G\u00c9N\u00c9RALE AMOUR (12 \u00e0 16 lignes)\nB) CE QUE L\u2019AUTRE OU LE LIEN MONTRE EN CE MOMENT\nC) ACTION CONCR\u00c8TE (48\u201372h)\nD) QUESTION POUR ALLER PLUS LOIN\n`;\n\n          const user = `\nPr\u00e9nom : ${name}\nGenre : ${genre}\nContexte : lecture amoureuse g\u00e9n\u00e9rale\n\nCartes tir\u00e9es (\u00e0 analyser en silence, sans les citer dans la r\u00e9ponse) :\n${cards.map(c => `- ${c}`).join(\"\\n\")}\n`;\n\n          return system + \"\\n\\n\" + user;\n        }\n\n        async function callOpenRouterViaProxy(prompt, model = \"openrouter\/free\"){\n          const res = await fetch(PROXY_URL, {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application\/json\" },\n            body: JSON.stringify({ model, prompt })\n          });\n\n          const raw = await res.text();\n\n          let data = null;\n          try {\n            data = JSON.parse(raw);\n          } catch (_) {}\n\n          if (!res.ok) {\n            const msg =\n              (data && (data.error?.message || data.error)) ||\n              raw ||\n              (\"HTTP \" + res.status);\n            throw new Error(msg);\n          }\n\n          const content =\n            data?.choices?.[0]?.message?.content ||\n            data?.choices?.[0]?.text ||\n            \"\";\n\n          if (!content || !String(content).trim()) {\n            throw new Error(\"Le proxy a r\u00e9pondu, mais aucun texte n\u2019a \u00e9t\u00e9 renvoy\u00e9.\");\n          }\n\n          return String(content);\n        }\n\n        function aiTextToHtml(text){\n          const raw = String(text || \"\").trim();\n          if(!raw) return `<p>${esc(\"Je n'ai pas re\u00e7u de contenu IA.\")}<\/p>`;\n\n          const blocks = raw.includes(\"\\n\\n\") ? raw.split(\/\\n{2,}\/) : raw.split(\/\\n+\/);\n          const clean = blocks.map(b => b.trim()).filter(Boolean).slice(0, 220);\n\n          return clean.map(b => `<p>${esc(b)}<\/p>`).join(\"\");\n        }\n\n        function buildConsultationRedirectUrl({ email, name, gender, cards }){\n          const safeBase = CONSULTATION_URL || \"#checkout\";\n\n          try{\n            const url = new URL(safeBase, window.location.origin);\n            if(email) url.searchParams.set(\"email\", email);\n            if(name) url.searchParams.set(\"prenom\", name);\n            if(gender) url.searchParams.set(\"gender\", gender);\n            url.searchParams.set(\"theme\", \"amour\");\n            if(Array.isArray(cards) && cards.length){\n              url.searchParams.set(\"cards\", cards.join(\" | \"));\n            }\n            return url.toString();\n          } catch(_){\n            return safeBase;\n          }\n        }\n\n        function buildConsultationCTA(name){\n          const safeName = esc(name || \"\");\n          const title = safeName\n            ? `${safeName}, ouvre maintenant la partie la plus pr\u00e9cise de ton tirage amoureux.`\n            : `Ouvre maintenant la partie la plus pr\u00e9cise de ton tirage amoureux.`;\n\n          return `\n            <section class=\"consult-portal\" aria-label=\"Ouverture de la lecture priv\u00e9e\">\n              <div class=\"consult-portal__top\">\n                <div class=\"consult-portal__content\">\n                  <div class=\"consult-portal__eyebrow\">\u2726 \u00c9tape 2 \u00b7 Lecture priv\u00e9e<\/div>\n                  <h3 class=\"consult-portal__title\">${title}<\/h3>\n                  <p class=\"consult-portal__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, de ce qui s\u2019ouvre et du point cl\u00e9 \u00e0 ne pas rater.<\/p>\n                  <div class=\"consult-portal__chips\">\n                    <span class=\"consult-portal__chip\">Intention r\u00e9elle<\/span>\n                    <span class=\"consult-portal__chip\">Blocage du lien<\/span>\n                    <span class=\"consult-portal__chip\">Acc\u00e8s imm\u00e9diat<\/span>\n                  <\/div>\n                <\/div>\n\n                <div class=\"consult-portal__method\">\n                  <div class=\"consult-portal__methodLabel\">Lecture pr\u00e9par\u00e9e \u00e0 partir de tes 5 cartes<\/div>\n                  <p class=\"consult-portal__methodText\">Une guidance plus cibl\u00e9e, d\u00e9j\u00e0 align\u00e9e sur ton tirage pour aller plus loin sans repartir de z\u00e9ro.<\/p>\n                <\/div>\n              <\/div>\n\n              <div class=\"consult-portal__formBox\">\n                <div class=\"consult-portal__formHeader\">\n                  <h4 class=\"consult-portal__formTitle\">Entre ton email pour ouvrir la suite<\/h4>\n                  <p class=\"consult-portal__formIntro\">Tu acc\u00e8des imm\u00e9diatement \u00e0 la lecture approfondie avec ton tirage d\u00e9j\u00e0 pr\u00e9par\u00e9.<\/p>\n                <\/div>\n\n                <form class=\"consult-portal__form\" id=\"consultationLeadForm\" novalidate>\n                  <label class=\"consult-portal__label\" for=\"consultation-email-input\">Ton email<\/label>\n                  <div class=\"consult-portal__fieldRow\">\n                    <input\n                      type=\"email\"\n                      id=\"consultation-email-input\"\n                      class=\"consult-portal__input\"\n                      placeholder=\"exemple@email.com\"\n                      autocomplete=\"email\"\n                      inputmode=\"email\"\n                      required\n                    >\n                    <button type=\"submit\" class=\"consult-portal__submit\" id=\"consultationLeadBtn\">\n                      Recevoir ma lecture priv\u00e9e\n                    <\/button>\n                  <\/div>\n                  <div class=\"consult-portal__error\" id=\"consultationLeadError\">Entre un email valide pour continuer.<\/div>\n                  <p class=\"consult-portal__micro\">En validant, tu recevras l\u2019acc\u00e8s \u00e0 la suite de ton tirage. V\u00e9rifie aussi tes spams si besoin.<\/p>\n                <\/form>\n              <\/div>\n            <\/section>\n          `;\n        }\n\n        async function generateInterpretationPremiumFree({ gender, name, cards, consultationUrl }) {\n          try {\n            const prompt = buildPromptTarotMarseilleAmour({ gender, name, cards });\n            const aiText = await callOpenRouterViaProxy(prompt, \"openrouter\/free\");\n\n            return `\n              <h3 style=\"color:var(--gold); margin:0 0 .8rem 0;\">Interpr\u00e9tation de ton tirage amour<\/h3>\n              ${aiTextToHtml(aiText)}\n              ${buildConsultationCTA(name, consultationUrl)}\n            `;\n          } catch (e) {\n            console.error(\"Erreur OpenRouter :\", e);\n\n            return `\n              <div class=\"punch\" style=\"margin-bottom:1rem;\">\n                <div style=\"font-weight:800; color: var(--gold); margin-bottom:.45rem;\">Erreur de connexion IA<\/div>\n                <p style=\"margin-bottom:.55rem;\">L\u2019interpr\u00e9tation n\u2019a pas pu \u00eatre g\u00e9n\u00e9r\u00e9e.<\/p>\n                <p style=\"margin-bottom:0;\"><strong>D\u00e9tail :<\/strong> ${esc(e.message || \"Erreur inconnue\")}<\/p>\n              <\/div>\n              ${buildConsultationCTA(name, consultationUrl)}\n            `;\n          }\n        }\n\n        async function captureLeadAndRedirect({ email, btn }){\n          const restRoot =\n            document.querySelector('link[rel=\"https:\/\/api.w.org\/\"]')?.href || (window.location.origin + \"\/wp-json\/\");\n          const endpoint = restRoot.replace(\/\\\/?$\/, \"\/\") + \"belline\/v1\/newsletter\";\n          const cards = selectedCards.map(i => arcanes[i]?.name).filter(Boolean);\n          const redirectUrl = buildConsultationRedirectUrl({\n            email,\n            name: userName || \"\",\n            gender: selectedGender || \"\",\n            cards\n          });\n          const originalLabel = btn.textContent;\n\n          btn.disabled = true;\n          btn.textContent = \"Acc\u00e8s \u00e0 ta lecture...\";\n\n          try{\n            await fetch(endpoint, {\n              method: \"POST\",\n              headers: { \"Content-Type\": \"application\/json\" },\n              body: JSON.stringify({\n                email,\n                page: window.location.href,\n                name: userName || \"\",\n                gender: selectedGender || \"\",\n                theme: \"amour\",\n                cards\n              })\n            }).catch((e) => {\n              console.log(\"Erreur newsletter:\", e);\n            });\n\n            try{\n              localStorage.setItem(\"marseilleLeadCapture\", JSON.stringify({\n                email,\n                name: userName || \"\",\n                gender: selectedGender || \"\",\n                theme: \"amour\",\n                cards,\n                capturedAt: new Date().toISOString()\n              }));\n            } catch(_) {}\n\n            fetch(\"https:\/\/hook.eu2.make.com\/f9ejb9phbzitbxrv4avr0v961wsyrqyb\", {\n              method: \"POST\",\n              headers: { \"Content-Type\": \"application\/json\" },\n              body: JSON.stringify({\n                email: email,\n                nom: userName || \"\",\n                genre: selectedGender || \"\",\n                theme: \"amour\",\n                cartes: cards.join(\" | \"),\n                page: window.location.href\n              })\n            }).catch(e => console.log(\"Erreur Make:\", e));\n\n            window.location.href = redirectUrl;\n          } finally {\n            btn.disabled = false;\n            btn.textContent = originalLabel;\n          }\n        }\n\n        document.addEventListener('submit', async (e) => {\n          const form = e.target.closest('#consultationLeadForm');\n          if(!form) return;\n\n          e.preventDefault();\n\n          const emailInput = form.querySelector('#consultation-email-input');\n          const btn = form.querySelector('#consultationLeadBtn');\n          const error = form.querySelector('#consultationLeadError');\n          const email = (emailInput?.value || \"\").trim();\n\n          if(!email || !\/^\\S+@\\S+\\.\\S+$\/.test(email)){\n            if(error) error.classList.add('is-visible');\n            if(emailInput) emailInput.focus();\n            return;\n          }\n\n          if(error) error.classList.remove('is-visible');\n          await captureLeadAndRedirect({ email, btn });\n        });\n\n        window.addEventListener('resize', () => {\n          layoutTable();\n          updateHint();\n        });\n\n        initDeck();\n        updateCounter();\n        toggleButtons();\n\n        deck.classList.add('disabled');\n        resultatsBlock.style.display = 'none';\n        genderSection.style.display = 'none';\n        resultSection.style.display = 'none';\n      }\n\n      if(document.readyState === 'loading'){\n        document.addEventListener('DOMContentLoaded', init);\n      } else {\n        init();\n      }\n    })();\n  <\/script>\n<\/div>\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<div class=\"elementor-element elementor-element-edeebb5 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=\"edeebb5\" 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-f62146f elementor-widget elementor-widget-image\" data-id=\"f62146f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tirage-oracle.com\/wp-content\/uploads\/elementor\/thumbs\/midj123gftty_mystical_divination_atmosphere_background_glowin_3f81a3b6-49ba-4f23-ba02-df9da4ccabb8_0-rk9llhs0o3dp77ah0zm7t8p1d24xr1vognm38e31sg.png\" title=\"\" alt=\"Illustration oracle et tarot mystique\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a1795af elementor-widget elementor-widget-heading\" data-id=\"a1795af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c0 quoi sert un tirage tarot amour ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51c5f93 elementor-widget elementor-widget-text-editor\" data-id=\"51c5f93\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Le tirage tarot amour permet d\u2019\u00e9clairer une situation sentimentale, de mieux comprendre les \u00e9motions en jeu et d\u2019identifier les tendances d\u2019une relation. Il peut \u00eatre utilis\u00e9 pour un couple, une relation naissante, un \u00e9loignement, une rupture ou une interrogation sur les sentiments d\u2019une personne. Le tarot amoureux ne sert pas seulement \u00e0 pr\u00e9dire : il aide aussi \u00e0 prendre du recul, \u00e0 rep\u00e9rer les blocages affectifs et \u00e0 mieux comprendre ce qui se joue dans la relation. C\u2019est un excellent support pour retrouver de la clart\u00e9 lorsque la vie sentimentale devient floue ou \u00e9motionnellement lourde.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86c8625 elementor-widget elementor-widget-heading\" data-id=\"86c8625\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Comment bien faire un tirage amoureux ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5efc0fd elementor-widget elementor-widget-text-editor\" data-id=\"5efc0fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Pour bien faire un tirage tarot amour, il faut commencer par se recentrer et poser une question claire. L\u2019id\u00e9al est de cibler une situation pr\u00e9cise : une relation, un retour amoureux, une h\u00e9sitation sentimentale ou un besoin de compr\u00e9hension. Les questions les plus efficaces sont celles qui cherchent \u00e0 \u00e9clairer une dynamique plut\u00f4t qu\u2019\u00e0 forcer un r\u00e9sultat. Par exemple : \u201cQue dois-je comprendre de cette relation ?\u201d ou \u201cQuel est le potentiel de cette histoire ?\u201d. Plus la question est sinc\u00e8re et pr\u00e9cise, plus le tirage amoureux peut apporter un message utile. Il est pr\u00e9f\u00e9rable d\u2019aborder le tarot avec ouverture plut\u00f4t qu\u2019avec obsession.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79b0c14 elementor-widget elementor-widget-heading\" data-id=\"79b0c14\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Comment interpr\u00e9ter un tarot amour ?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a53dbb elementor-widget elementor-widget-text-editor\" data-id=\"3a53dbb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>L\u2019interpr\u00e9tation d\u2019un tarot amour repose sur le sens des cartes, mais aussi sur la dynamique globale du tirage. Certaines cartes parlent d\u2019\u00e9lan, d\u2019attachement, de rapprochement ou d\u2019\u00e9volution positive. D\u2019autres peuvent r\u00e9v\u00e9ler un blocage, une peur, une attente, une illusion ou une difficult\u00e9 \u00e0 communiquer. Le but n\u2019est pas de rester bloqu\u00e9 sur un verdict, mais de comprendre l\u2019\u00e9nergie r\u00e9elle de la situation. Un tirage amoureux bien interpr\u00e9t\u00e9 permet souvent de voir plus clairement les intentions, les fragilit\u00e9s de la relation et les possibilit\u00e9s d\u2019\u00e9volution. C\u2019est une aide pr\u00e9cieuse pour prendre du recul sur ses \u00e9motions et avancer avec plus de lucidit\u00e9.<\/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>Tirage amour Croix 5 cartes Entre ton pr\u00e9nom, puis choisis 5 cartes dans le paquet. Concentre-toi sur ta situation amoureuse. Ton pr\u00e9nom (obligatoire) Ton pr\u00e9nom sera utilis\u00e9 uniquement dans ton interpr\u00e9tation. Valider mon pr\u00e9nom Choisis tes 5 cartes intuitivement Cartes : 0\/5 Valider mes cartes Quelle \u00e9nergie te repr\u00e9sente le mieux ? Ce choix affine la lecture et nuance la mani\u00e8re dont ton tirage est formul\u00e9. Je me reconnais davantage dans une \u00e9nergie f\u00e9minine Je me reconnais davantage dans une \u00e9nergie masculine Recevoir mon interpr\u00e9tation \u2726 Lecture align\u00e9e Ton tirage commence \u00e0 parler Tes 5 cartes sont align\u00e9es. J\u2019ouvre maintenant la dynamique affective dominante, le n\u0153ud du lien et la guidance la plus utile pour la suite. \u00c0 quoi sert un tirage tarot amour ? Le tirage tarot amour permet d\u2019\u00e9clairer une situation sentimentale, de mieux comprendre les \u00e9motions en jeu et d\u2019identifier les tendances d\u2019une relation. Il peut \u00eatre utilis\u00e9 pour un couple, une relation naissante, un \u00e9loignement, une rupture ou une interrogation sur les sentiments d\u2019une personne. Le tarot amoureux ne sert pas seulement \u00e0 pr\u00e9dire : il aide aussi \u00e0 prendre du recul, \u00e0 rep\u00e9rer les blocages affectifs et \u00e0 mieux comprendre ce qui se joue dans la relation. C\u2019est un excellent support pour retrouver de la clart\u00e9 lorsque la vie sentimentale devient floue ou \u00e9motionnellement lourde. Comment bien faire un tirage amoureux ? Pour bien faire un tirage tarot amour, il faut commencer par se recentrer et poser une question claire. L\u2019id\u00e9al est de cibler une situation pr\u00e9cise : une relation, un retour amoureux, une h\u00e9sitation sentimentale ou un besoin de compr\u00e9hension. Les questions les plus efficaces sont celles qui cherchent \u00e0 \u00e9clairer une dynamique plut\u00f4t qu\u2019\u00e0 forcer un r\u00e9sultat. Par exemple : \u201cQue dois-je comprendre de cette relation ?\u201d ou \u201cQuel est le potentiel de cette histoire ?\u201d. Plus la question est sinc\u00e8re et pr\u00e9cise, plus le tirage amoureux peut apporter un message utile. Il est pr\u00e9f\u00e9rable d\u2019aborder le tarot avec ouverture plut\u00f4t qu\u2019avec obsession. Comment interpr\u00e9ter un tarot amour ? L\u2019interpr\u00e9tation d\u2019un tarot amour repose sur le sens des cartes, mais aussi sur la dynamique globale du tirage. Certaines cartes parlent d\u2019\u00e9lan, d\u2019attachement, de rapprochement ou d\u2019\u00e9volution positive. D\u2019autres peuvent r\u00e9v\u00e9ler un blocage, une peur, une attente, une illusion ou une difficult\u00e9 \u00e0 communiquer. Le but n\u2019est pas de rester bloqu\u00e9 sur un verdict, mais de comprendre l\u2019\u00e9nergie r\u00e9elle de la situation. Un tirage amoureux bien interpr\u00e9t\u00e9 permet souvent de voir plus clairement les intentions, les fragilit\u00e9s de la relation et les possibilit\u00e9s d\u2019\u00e9volution. C\u2019est une aide pr\u00e9cieuse pour prendre du recul sur ses \u00e9motions et avancer avec plus de lucidit\u00e9.<\/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-686","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/686","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=686"}],"version-history":[{"count":148,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/686\/revisions"}],"predecessor-version":[{"id":3114,"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/pages\/686\/revisions\/3114"}],"wp:attachment":[{"href":"https:\/\/tirage-oracle.com\/en\/wp-json\/wp\/v2\/media?parent=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}