{"id":7994,"date":"2026-01-15T18:35:50","date_gmt":"2026-01-15T10:35:50","guid":{"rendered":"https:\/\/louisthai.com\/?page_id=7994"},"modified":"2026-01-16T13:55:36","modified_gmt":"2026-01-16T05:55:36","slug":"the-full-moon-premium-consultation","status":"publish","type":"page","link":"https:\/\/louisthai.com\/hk\/the-full-moon-premium-consultation\/","title":{"rendered":"THE Full Moon Premium Consultation"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7994\" class=\"elementor elementor-7994\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-056756e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"056756e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fef8fdb\" data-id=\"fef8fdb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a897c7b elementor-widget elementor-widget-html\" data-id=\"a897c7b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <title>Full Moon Premium Consultation | LOUIS THAI (Black Edition)<\/title>\n  <meta name=\"description\" content=\"Full Moon Premium Consultation \u2014 Black Edition with animated starfield.\" \/>\n  <style>\n    :root {\n      --bg: #05060a;\n      --ink: #f3f5ff;\n      --muted: rgba(243, 245, 255, .72);\n      --muted2: rgba(243, 245, 255, .58);\n      --line: rgba(255, 255, 255, .12);\n      --card: rgba(255, 255, 255, .06);\n      --card2: rgba(255, 255, 255, .08);\n      --shadow: 0 28px 80px rgba(0, 0, 0, .55);\n      --shadow2: 0 16px 50px rgba(0, 0, 0, .40);\n      --radius: 24px;\n      --max: 1140px;\n      --gold: #d7b57a;\n      --blue: #78a6ff;\n      --red: #ff453a;\n      --focus: rgba(120, 166, 255, .22);\n      --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n      --sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"SF Pro Text\", \"Helvetica Neue\", Arial, system-ui, sans-serif;\n      --smooth: cubic-bezier(.2, .9, .2, 1);\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    html {\n      height: 100%;\n      overscroll-behavior-y: none;\n    }\n\n    body {\n      min-height: 100%;\n      overscroll-behavior-y: none;\n    }\n\n    body {\n      margin: 0;\n      background: var(--bg);\n      color: var(--ink) !important;\n      font-family: var(--sans);\n      font-size: 17px;\n      line-height: 1.4;\n      -webkit-font-smoothing: antialiased;\n      -moz-osx-font-smoothing: grayscale;\n      overflow-x: hidden;\n      width: 100%;\n      position: relative;\n    }\n\n    \/* Star canvas *\/\n    #stars {\n      position: fixed;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      z-index: 0;\n      display: block;\n      pointer-events: none;\n      background: radial-gradient(1200px 700px at 50% 30%, rgba(120, 166, 255, .10), transparent 65%),\n        radial-gradient(1000px 700px at 18% 12%, rgba(215, 181, 122, .10), transparent 60%),\n        radial-gradient(1000px 700px at 86% 18%, rgba(120, 166, 255, .08), transparent 62%),\n        radial-gradient(900px 600px at 50% 85%, rgba(255, 255, 255, .05), transparent 60%),\n        linear-gradient(180deg, #04050a, #05060a);\n    }\n\n    .vignette {\n      position: fixed;\n      inset: 0;\n      pointer-events: none;\n      z-index: 1;\n      background:\n        radial-gradient(1400px 900px at 50% 30%, transparent 58%, rgba(0, 0, 0, .55) 100%),\n        radial-gradient(1200px 800px at 50% 100%, transparent 55%, rgba(0, 0, 0, .62) 100%);\n    }\n\n    .grain {\n      position: fixed;\n      inset: 0;\n      pointer-events: none;\n      z-index: 1;\n      opacity: .06;\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='320' height='320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'\/%3E%3C\/svg%3E\");\n      background-size: 320px 320px;\n      mix-blend-mode: overlay;\n    }\n\n    a {\n      color: var(--ink) !important;\n      text-decoration: none !important;\n    }\n\n    h1,\n    h2,\n    h3,\n    h4,\n    h5,\n    h6,\n    header,\n    main,\n    footer,\n    section {\n      color: var(--ink) !important;\n    }\n\n    .wrap {\n      width: min(var(--max), calc(100% - 48px));\n      margin: 0 auto;\n    }\n\n    header {\n      position: sticky;\n      top: 0;\n      z-index: 10;\n      backdrop-filter: blur(16px);\n      -webkit-backdrop-filter: blur(16px);\n      background: rgba(6, 7, 12, .55);\n      border-bottom: 1px solid rgba(255, 255, 255, .10);\n    }\n\n    .topbar {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 14px;\n      padding: 14px 0;\n    }\n\n    .brand {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      min-width: 220px;\n    }\n\n    .mark {\n      width: 34px;\n      height: 34px;\n      border-radius: 12px;\n      background:\n        radial-gradient(16px 16px at 35% 35%, rgba(255, 255, 255, .88), rgba(255, 255, 255, .25) 55%, transparent 70%),\n        radial-gradient(26px 26px at 70% 70%, rgba(215, 181, 122, .75), rgba(215, 181, 122, .18) 60%, transparent 70%),\n        linear-gradient(145deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .04));\n      box-shadow: 0 18px 40px rgba(0, 0, 0, .55);\n      border: 1px solid rgba(255, 255, 255, .18);\n    }\n\n    .brand h1 {\n      margin: 0;\n      font-size: 13px;\n      letter-spacing: .22em;\n      text-transform: uppercase;\n      font-weight: 800;\n    }\n\n    .brand .sub {\n      font-size: 12px;\n      color: var(--muted2) !important;\n      letter-spacing: .02em;\n    }\n\n    nav {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      flex-wrap: wrap;\n      justify-content: flex-end;\n    }\n\n    .pill {\n      font-size: 14px;\n      padding: 10px 12px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n      text-decoration: none;\n      transition: transform .18s var(--smooth), box-shadow .18s var(--smooth), border-color .18s var(--smooth), background .18s var(--smooth);\n    }\n\n    .pill:hover {\n      transform: translateY(-1px);\n      box-shadow: 0 14px 34px rgba(0, 0, 0, .35);\n      border-color: rgba(120, 166, 255, .35);\n      background: rgba(255, 255, 255, .08);\n    }\n\n    .pill.primary {\n      border-color: rgba(215, 181, 122, .38);\n      background: radial-gradient(120% 120% at 20% 10%, rgba(215, 181, 122, .12), rgba(255, 255, 255, .05) 60%),\n        linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .05));\n    }\n\n    \/* Controls: language + stars *\/\n    .controls {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      padding: 8px 10px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      border-radius: 999px;\n      background: rgba(255, 255, 255, .06);\n      box-shadow: 0 18px 50px rgba(0, 0, 0, .35);\n    }\n\n    .controls label {\n      font-size: 12px;\n      color: var(--muted2) !important;\n    }\n\n    .seg {\n      display: inline-flex;\n      border: 1px solid rgba(255, 255, 255, .14);\n      border-radius: 999px;\n      overflow: hidden;\n      background: rgba(255, 255, 255, .06);\n    }\n\n    .seg button {\n      appearance: none;\n      border: 0;\n      background: transparent;\n      cursor: pointer;\n      padding: 8px 10px;\n      font-size: 12px;\n      font-weight: 800;\n      letter-spacing: .06em;\n      color: rgba(243, 245, 255, .70);\n      transition: background .18s var(--smooth), color .18s var(--smooth);\n    }\n\n    .seg button[aria-pressed=\"true\"] {\n      background: rgba(120, 166, 255, .14);\n      color: rgba(243, 245, 255, .92);\n    }\n\n    .switch {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 6px 8px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n    }\n\n    .toggle {\n      width: 38px;\n      height: 22px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .18);\n      background: rgba(255, 255, 255, .08);\n      position: relative;\n      cursor: pointer;\n      outline: none;\n    }\n\n    .toggle::after {\n      content: \"\";\n      width: 18px;\n      height: 18px;\n      border-radius: 999px;\n      position: absolute;\n      top: 1px;\n      left: 2px;\n      background: rgba(243, 245, 255, .86);\n      box-shadow: 0 10px 18px rgba(0, 0, 0, .35);\n      transition: transform .18s var(--smooth), background .18s var(--smooth);\n    }\n\n    .toggle[aria-checked=\"true\"] {\n      background: rgba(215, 181, 122, .14);\n      border-color: rgba(215, 181, 122, .28);\n    }\n\n    .toggle[aria-checked=\"true\"]::after {\n      transform: translateX(16px);\n      background: rgba(215, 181, 122, .92);\n    }\n\n    .hero {\n      padding: 56px 0 10px;\n    }\n\n    .heroGrid {\n      display: grid;\n      grid-template-columns: 1.2fr .8fr;\n      gap: 28px;\n      align-items: center;\n    }\n\n    .kicker {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      padding: 10px 12px;\n      border-radius: 999px;\n      border: 1px solid rgba(215, 181, 122, .22);\n      background: rgba(255, 255, 255, .06);\n      box-shadow: 0 22px 70px rgba(0, 0, 0, .35);\n      width: fit-content;\n    }\n\n    .kicker .dot {\n      width: 10px;\n      height: 10px;\n      border-radius: 50%;\n      background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, .9), rgba(255, 255, 255, .18) 55%, transparent 65%),\n        radial-gradient(circle at 70% 70%, rgba(215, 181, 122, .9), rgba(215, 181, 122, .25) 55%, transparent 70%);\n      border: 1px solid rgba(215, 181, 122, .45);\n      box-shadow: 0 14px 26px rgba(215, 181, 122, .20);\n    }\n\n    .kicker span {\n      font-size: 12px;\n      letter-spacing: .10em;\n      text-transform: uppercase;\n      color: rgba(243, 245, 255, .88);\n      font-weight: 750;\n    }\n\n    h2 {\n      margin: 16px 0 10px;\n      font-size: clamp(34px, 4.8vw, 56px);\n      letter-spacing: -0.03em;\n      line-height: 1.04;\n      text-shadow: 0 20px 50px rgba(0, 0, 0, .55);\n    }\n\n    .lead {\n      margin: 0 0 18px;\n      font-size: 18px;\n      color: var(--muted) !important;\n      max-width: 60ch;\n    }\n\n    .ctaRow {\n      display: flex;\n      gap: 12px;\n      flex-wrap: wrap;\n      align-items: center;\n      margin-top: 16px;\n    }\n\n    .btn {\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 10px;\n      padding: 13px 16px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n      text-decoration: none;\n      font-size: 13px;\n      font-weight: 750;\n      letter-spacing: .02em;\n      transition: transform .18s var(--smooth), box-shadow .18s var(--smooth), border-color .18s var(--smooth), background .18s var(--smooth);\n      box-shadow: var(--shadow2);\n      outline: none;\n    }\n\n    .btn:hover {\n      transform: translateY(-1px);\n      box-shadow: 0 22px 70px rgba(0, 0, 0, .45);\n      background: rgba(255, 255, 255, .08);\n    }\n\n    .btn:focus {\n      box-shadow: 0 0 0 5px var(--focus), 0 22px 70px rgba(0, 0, 0, .45);\n    }\n\n    .btn.primary {\n      border-color: rgba(120, 166, 255, .30);\n      background: radial-gradient(120% 120% at 20% 10%, rgba(120, 166, 255, .16), rgba(255, 255, 255, .05) 60%),\n        linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .05));\n    }\n\n    .btn.gold {\n      border-color: rgba(215, 181, 122, .30);\n      background: radial-gradient(120% 120% at 20% 10%, rgba(215, 181, 122, .16), rgba(255, 255, 255, .05) 60%),\n        linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .05));\n    }\n\n    .moonCard {\n      border-radius: var(--radius);\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n      box-shadow: var(--shadow);\n      overflow: hidden;\n      position: relative;\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    .moonCard::before {\n      content: \"\";\n      position: absolute;\n      inset: -70px -70px auto auto;\n      width: 260px;\n      height: 260px;\n      border-radius: 999px;\n      background:\n        radial-gradient(circle at 35% 35%, rgba(255, 255, 255, .16), transparent 60%),\n        radial-gradient(circle at 70% 70%, rgba(215, 181, 122, .22), transparent 62%);\n      opacity: .95;\n      transform: rotate(-10deg);\n    }\n\n    .moonCard::after {\n      content: \"\";\n      position: absolute;\n      inset: auto -90px -110px auto;\n      width: 340px;\n      height: 340px;\n      border-radius: 999px;\n      background:\n        radial-gradient(circle at 30% 30%, rgba(120, 166, 255, .18), transparent 62%),\n        radial-gradient(circle at 70% 70%, rgba(0, 0, 0, .35), transparent 60%);\n    }\n\n    .moonInner {\n      position: relative;\n      padding: 22px;\n    }\n\n    .meta {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 12px;\n      margin-bottom: 14px;\n    }\n\n    .meta .tag {\n      font-size: 12px;\n      padding: 8px 10px;\n      border-radius: 999px;\n      border: 1px solid rgba(215, 181, 122, .22);\n      background: rgba(255, 255, 255, .06);\n      letter-spacing: .10em;\n      text-transform: uppercase;\n      font-weight: 850;\n      color: rgba(243, 245, 255, .88);\n    }\n\n    .meta .window {\n      font-family: var(--mono);\n      font-size: 12px;\n      color: rgba(243, 245, 255, .62);\n      padding: 8px 10px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n      white-space: nowrap;\n    }\n\n    .price {\n      margin: 10px 0 6px;\n      font-size: 36px;\n      letter-spacing: -.03em;\n      line-height: 1.02;\n    }\n\n    .price small {\n      font-size: 12px;\n      color: rgba(243, 245, 255, .60);\n      font-weight: 700;\n    }\n\n    .fine {\n      margin: 0 0 14px;\n      color: var(--muted) !important;\n      font-size: 13px;\n    }\n\n    .list {\n      display: grid;\n      gap: 10px;\n      margin-top: 10px;\n    }\n\n    .li {\n      display: flex;\n      gap: 10px;\n      align-items: flex-start;\n      padding: 12px 12px;\n      border-radius: 14px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .05);\n    }\n\n    .tick {\n      width: 22px;\n      height: 22px;\n      border-radius: 7px;\n      border: 1px solid rgba(120, 166, 255, .26);\n      background: rgba(120, 166, 255, .12);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex: 0 0 auto;\n      margin-top: 1px;\n    }\n\n    .tick svg {\n      width: 14px;\n      height: 14px;\n    }\n\n    .li b {\n      display: block;\n      font-size: 13px;\n    }\n\n    .li span {\n      display: block;\n      font-size: 12px;\n      color: var(--muted) !important;\n      margin-top: 2px;\n    }\n\n    section {\n      padding: 44px 0;\n    }\n\n    .sectionHead {\n      display: flex;\n      align-items: flex-end;\n      justify-content: space-between;\n      gap: 18px;\n      margin-bottom: 18px;\n    }\n\n    .sectionHead h3 {\n      margin: 0;\n      font-size: 22px;\n      letter-spacing: -.02em;\n    }\n\n    .sectionHead p {\n      margin: 0;\n      color: var(--muted) !important;\n      max-width: 60ch;\n      font-size: 13px;\n    }\n\n    .cards {\n      display: grid;\n      grid-template-columns: repeat(12, 1fr);\n      gap: 14px;\n    }\n\n    .card {\n      grid-column: span 4;\n      border-radius: var(--radius);\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .05);\n      box-shadow: var(--shadow2);\n      padding: 18px;\n      position: relative;\n      overflow: hidden;\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    .card::before {\n      content: \"\";\n      position: absolute;\n      inset: -90px -90px auto auto;\n      width: 260px;\n      height: 260px;\n      border-radius: 999px;\n      background: radial-gradient(circle at 35% 35%, rgba(215, 181, 122, .14), transparent 60%);\n      opacity: .9;\n    }\n\n    .card h4 {\n      margin: 0 0 6px;\n      font-size: 14px;\n      letter-spacing: .02em;\n    }\n\n    .card p {\n      margin: 0;\n      color: var(--muted) !important;\n      font-size: 13px;\n    }\n\n    .monoNote {\n      margin-top: 12px;\n      font-family: var(--mono);\n      font-size: 12px;\n      color: rgba(243, 245, 255, .55);\n      border-top: 1px dashed rgba(255, 255, 255, .18);\n      padding-top: 12px;\n    }\n\n    .notice {\n      border-radius: var(--radius);\n      border: 1px solid rgba(255, 69, 58, .26);\n      background: rgba(255, 255, 255, .05);\n      box-shadow: var(--shadow2);\n      padding: 18px;\n      display: flex;\n      gap: 12px;\n      align-items: flex-start;\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    .warn {\n      width: 34px;\n      height: 34px;\n      border-radius: 14px;\n      border: 1px solid rgba(255, 69, 58, .28);\n      background: rgba(255, 69, 58, .12);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex: 0 0 auto;\n      margin-top: 2px;\n    }\n\n    .notice h4 {\n      margin: 0 0 6px;\n      font-size: 14px;\n    }\n\n    .notice p {\n      margin: 0;\n      color: rgba(243, 245, 255, .78);\n      font-size: 13px;\n    }\n\n    .notice ul {\n      margin: 10px 0 0;\n      padding-left: 18px;\n      color: rgba(243, 245, 255, .72);\n      font-size: 13px;\n    }\n\n    .notice li {\n      margin: 6px 0;\n    }\n\n    details {\n      border-radius: 18px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .05);\n      box-shadow: var(--shadow2);\n      padding: 14px 14px;\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    details+details {\n      margin-top: 10px;\n    }\n\n    summary {\n      cursor: pointer;\n      list-style: none;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 12px;\n      font-weight: 750;\n      font-size: 13px;\n    }\n\n    summary::-webkit-details-marker {\n      display: none;\n    }\n\n    .chev {\n      width: 20px;\n      height: 20px;\n      border-radius: 8px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      background: rgba(255, 255, 255, .06);\n      transition: transform .18s var(--smooth);\n      flex: 0 0 auto;\n    }\n\n    details[open] .chev {\n      transform: rotate(180deg);\n    }\n\n    details p {\n      margin: 10px 0 0;\n      color: var(--muted) !important;\n      font-size: 13px;\n    }\n\n    .ctaPanel {\n      border-radius: calc(var(--radius) + 6px);\n      border: 1px solid rgba(215, 181, 122, .22);\n      background: rgba(255, 255, 255, .05);\n      box-shadow: var(--shadow);\n      padding: 22px;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 16px;\n      overflow: hidden;\n      position: relative;\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    .ctaPanel::before {\n      content: \"\";\n      position: absolute;\n      inset: auto -80px -100px auto;\n      width: 320px;\n      height: 320px;\n      border-radius: 999px;\n      background: radial-gradient(circle at 40% 40%, rgba(215, 181, 122, .16), transparent 62%);\n      opacity: .95;\n    }\n\n    .ctaPanel h3 {\n      margin: 0 0 6px;\n      font-size: 18px;\n      letter-spacing: -.02em;\n    }\n\n    .ctaPanel p {\n      margin: 0;\n      color: var(--muted) !important;\n      font-size: 13px;\n      max-width: 62ch;\n    }\n\n    .ctaPanel .right {\n      display: flex;\n      gap: 10px;\n      flex-wrap: wrap;\n      justify-content: flex-end;\n      position: relative;\n    }\n\n    footer {\n      padding: 34px 0 50px;\n      color: rgba(243, 245, 255, .55);\n      font-size: 12px;\n    }\n\n    .footGrid {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 10px;\n      flex-wrap: wrap;\n      border-top: 1px solid rgba(255, 255, 255, .12);\n      padding-top: 16px;\n    }\n\n    .legal {\n      display: flex;\n      gap: 10px;\n      flex-wrap: wrap;\n      align-items: center;\n    }\n\n    .badge {\n      font-family: var(--mono);\n      font-size: 11px;\n      padding: 8px 10px;\n      border-radius: 999px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .06);\n      color: rgba(243, 245, 255, .62);\n    }\n\n    \/* i18n show\/hide *\/\n    [data-i18n] {\n      display: none;\n    }\n\n    body[data-lang=\"en\"] [data-i18n=\"en\"] {\n      display: inline;\n    }\n\n    body[data-lang=\"zh\"] [data-i18n=\"zh\"] {\n      display: inline;\n    }\n\n    @media (max-width: 920px) {\n      .heroGrid {\n        grid-template-columns: 1fr;\n      }\n\n      nav {\n        justify-content: flex-start;\n      }\n\n      .brand {\n        min-width: unset;\n      }\n\n      .card {\n        grid-column: span 6;\n      }\n\n      .ctaPanel {\n        flex-direction: column;\n        align-items: flex-start;\n      }\n\n      .ctaPanel .right {\n        justify-content: flex-start;\n      }\n    }\n\n    @media (max-width: 560px) {\n      body {\n        font-size: 16px;\n      }\n\n      .wrap {\n        width: min(var(--max), calc(100% - 28px));\n      }\n\n      .card {\n        grid-column: span 12;\n      }\n\n      .topbar {\n        padding: 12px 0;\n      }\n\n      h2 {\n        font-size: 36px;\n      }\n\n      .price {\n        font-size: 32px;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      * {\n        transition: none !important;\n        scroll-behavior: auto !important;\n      }\n\n      #stars {\n        display: none;\n      }\n    }\n\n    \/* Smaller hero line as requested *\/\n    .miniHeadline {\n      font-size: 0.72em;\n      line-height: 1.12;\n      display: inline-block;\n      color: rgba(243, 245, 255, .92);\n    }\n\n    \/* Premium pricing\/slots table *\/\n    .tableWrap {\n      overflow-x: auto;\n      border-radius: var(--radius);\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(255, 255, 255, .05);\n      box-shadow: var(--shadow2);\n      backdrop-filter: blur(14px);\n      -webkit-backdrop-filter: blur(14px);\n    }\n\n    table.pricing {\n      width: 100%;\n      border-collapse: collapse;\n      min-width: 920px;\n    }\n\n    table.pricing th,\n    table.pricing td {\n      padding: 14px 14px;\n      border-bottom: 1px solid rgba(255, 255, 255, .10);\n      vertical-align: top;\n      font-size: 14px;\n      color: rgba(243, 245, 255, .84);\n    }\n\n    table.pricing th {\n      text-align: left;\n      font-size: 13px;\n      letter-spacing: .10em;\n      text-transform: uppercase;\n      color: rgba(243, 245, 255, .70);\n      background: rgba(255, 255, 255, .04);\n      position: sticky;\n      top: 0;\n      backdrop-filter: blur(10px);\n      -webkit-backdrop-filter: blur(10px);\n      border-bottom: 1px solid rgba(255, 255, 255, .14);\n    }\n\n    table.pricing tr:last-child td {\n      border-bottom: 0;\n    }\n\n    .mutedCell {\n      color: rgba(243, 245, 255, .66) !important;\n    }\n\n    .money {\n      font-weight: 850;\n      letter-spacing: -.01em;\n    }\n\n\n    \/* Optional moon PNG decoration *\/\n    .tableWrap {\n      position: relative;\n    }\n\n    .moonDeco {\n      position: absolute;\n      right: -34px;\n      top: -46px;\n      width: 140px;\n      height: 140px;\n      pointer-events: none;\n      filter: drop-shadow(0 22px 55px rgba(0, 0, 0, .55));\n      opacity: .92;\n      transform: rotate(6deg);\n    }\n\n    @media (max-width: 920px) {\n      .moonDeco {\n        right: -18px;\n        top: -34px;\n        width: 120px;\n        height: 120px;\n      }\n    }\n\n    @media (max-width: 560px) {\n      .moonDeco {\n        right: -10px;\n        top: -28px;\n        width: 98px;\n        height: 98px;\n        opacity: .85;\n      }\n    }\n\n\n    html,\n    body {\n      background: transparent;\n    }\n\n    main,\n    header {\n      position: relative;\n      z-index: 5;\n    }\n\n\n    \/* Embedded MoonPhases *\/\n    .moonEmbed {\n      margin-top: 18px;\n      border-radius: 26px;\n      overflow: hidden;\n      border: 1px solid rgba(255, 255, 255, .10);\n      background: radial-gradient(1200px 500px at 20% 10%, rgba(255, 255, 255, .06), transparent 60%),\n        radial-gradient(900px 420px at 80% 70%, rgba(255, 255, 255, .05), transparent 62%),\n        rgba(10, 12, 16, .58);\n      box-shadow: 0 28px 80px rgba(0, 0, 0, .55);\n    }\n\n    .moonEmbedHeader {\n      padding: 18px 18px 0 18px;\n      display: flex;\n      align-items: flex-end;\n      justify-content: space-between;\n      gap: 12px;\n    }\n\n    .moonEmbedHeader h4 {\n      margin: 0;\n      font-size: 18px;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      color: rgba(245, 247, 255, .92);\n    }\n\n    \/* Embedded MoonPhases Native Implementation Styles *\/\n    .moonPanel {\n      margin: 18px auto 0;\n      border-radius: 26px;\n      overflow: hidden;\n      position: relative;\n    }\n\n    .moonGrid {\n      display: grid;\n      grid-template-columns: 1.18fr .92fr;\n      gap: 0;\n      position: relative;\n      z-index: 2;\n    }\n\n    @media (max-width: 920px) {\n      .moonGrid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    .moonViz {\n      position: relative;\n      padding: 24px;\n      min-height: 720px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      background: rgba(0, 0, 0, 0.2);\n    }\n\n    #moonVizStars {\n      position: absolute;\n      inset: 0;\n      width: 100%;\n      height: 100%;\n      z-index: 0;\n      pointer-events: none;\n      opacity: 0.6;\n    }\n\n    @media (max-width: 920px) {\n      .moonViz {\n        min-height: 620px;\n        padding: 18px;\n      }\n    }\n\n    .moonSvgWrap {\n      width: min(780px, 100%);\n      aspect-ratio: 1 \/ 1;\n      position: relative;\n      border-radius: 999px;\n      user-select: none;\n      touch-action: none;\n      z-index: 1;\n    }\n\n    .moonHint {\n      position: absolute;\n      left: 50%;\n      bottom: -44px;\n      transform: translateX(-50%);\n      font-size: 12px;\n      color: rgba(245, 247, 255, .64);\n      background: rgba(0, 0, 0, .25);\n      border: 1px solid rgba(255, 255, 255, .10);\n      border-radius: 999px;\n      padding: 8px 12px;\n      backdrop-filter: blur(10px);\n      -webkit-backdrop-filter: blur(10px);\n      user-select: none;\n    }\n\n    .moonSide {\n      padding: 22px 22px 24px;\n      border-left: 1px solid rgba(255, 255, 255, .10);\n      background: rgba(0, 0, 0, .12);\n      position: relative;\n      z-index: 1;\n    }\n\n    @media (max-width: 920px) {\n      .moonSide {\n        border-left: 0;\n        border-top: 1px solid rgba(255, 255, 255, .10);\n      }\n    }\n\n    .moonInCard {\n      border-radius: 18px;\n      border: 1px solid rgba(255, 255, 255, .12);\n      background: rgba(255, 255, 255, .04);\n      padding: 16px 16px;\n      box-shadow: 0 18px 50px rgba(0, 0, 0, .35);\n    }\n\n    .moonInCard+.moonInCard {\n      margin-top: 12px;\n    }\n\n    .moonKicker {\n      font-size: 11px;\n      letter-spacing: .14em;\n      text-transform: uppercase;\n      color: rgba(245, 247, 255, .66);\n    }\n\n    .moonTitle {\n      margin: 8px 0 0;\n      font-size: 17px;\n      letter-spacing: -.01em;\n      font-weight: 800;\n    }\n\n    .moonDesc {\n      margin: 8px 0 0;\n      color: rgba(245, 247, 255, .76);\n      font-size: 13px;\n      line-height: 1.5;\n    }\n\n    .moonRow {\n      display: flex;\n      gap: 10px;\n      align-items: center;\n      flex-wrap: wrap;\n      margin-top: 12px;\n    }\n\n    .moonLegend {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 10px 12px;\n      margin-top: 12px;\n    }\n\n    .moonChip {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      padding: 10px 12px;\n      border-radius: 14px;\n      border: 1px solid rgba(255, 255, 255, .12);\n      background: rgba(255, 255, 255, .04);\n      cursor: pointer;\n      user-select: none;\n      transition: transform .15s ease, border-color .15s ease, background .15s ease;\n    }\n\n    .moonChip:hover {\n      transform: translateY(-1px);\n      border-color: rgba(255, 255, 255, .20);\n      background: rgba(255, 255, 255, .06);\n    }\n\n    .moonDot {\n      width: 10px;\n      height: 10px;\n      border-radius: 999px;\n      box-shadow: 0 0 0 3px rgba(255, 255, 255, .05);\n    }\n\n    .moonDot.full {\n      background: #f5f7ff;\n    }\n\n    .moonDot.first {\n      background: rgba(245, 247, 255, .78);\n    }\n\n    .moonDot.last {\n      background: rgba(245, 247, 255, .56);\n    }\n\n    .moonDot.new {\n      background: rgba(245, 247, 255, .28);\n    }\n\n    .moonDot.eclipse {\n      background: #ff4d5a;\n    }\n\n    .moonChip span {\n      font-size: 13px;\n      color: rgba(245, 247, 255, .86);\n    }\n\n    .moonChip[data-on=\"0\"] {\n      opacity: .45;\n    }\n\n    .moonChip[data-on=\"0\"] .moonDot {\n      box-shadow: none;\n    }\n\n    \/* Tooltip *\/\n    .moonTip {\n      position: fixed;\n      z-index: 1000;\n      pointer-events: none;\n      transform: translate(-50%, calc(-100% - 14px));\n      min-width: 220px;\n      border-radius: 16px;\n      border: 1px solid rgba(255, 255, 255, .14);\n      background: rgba(10, 12, 18, .92);\n      backdrop-filter: blur(12px);\n      -webkit-backdrop-filter: blur(12px);\n      box-shadow: 0 22px 70px rgba(0, 0, 0, .55);\n      padding: 12px;\n      opacity: 0;\n      transition: opacity .12s ease;\n    }\n\n    .moonTip.on {\n      opacity: 1;\n    }\n\n    .moonTip .t1 {\n      font-weight: 900;\n      font-size: 14px;\n    }\n\n    .moonTip .t2 {\n      margin-top: 4px;\n      color: rgba(245, 247, 255, .74);\n      font-size: 12px;\n    }\n\n    .moonTip .t3 {\n      margin-top: 8px;\n      font-size: 11px;\n      color: rgba(245, 247, 255, .55);\n      text-transform: uppercase;\n      letter-spacing: .05em;\n    }\n\n    \/* SVG styles *\/\n    .moonRing {\n      fill: none;\n      stroke: rgba(255, 255, 255, .12);\n      stroke-width: 1;\n    }\n\n    .moonRing2 {\n      fill: none;\n      stroke: rgba(255, 255, 255, .06);\n      stroke-width: 1;\n    }\n\n    .moonTick {\n      stroke: rgba(255, 255, 255, .18);\n      stroke-width: 1;\n    }\n\n    .moonLabel {\n      font-size: 15px;\n      fill: rgba(255, 255, 255, .82);\n      letter-spacing: .10em;\n    }\n\n    .moonMarker {\n      cursor: pointer;\n      transform-origin: center;\n      transition: transform .18s ease, opacity .18s ease, filter .18s ease;\n      filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .55));\n    }\n\n    .moonMarker:hover {\n      transform: scale(1.14);\n    }\n\n    .moonMarker[aria-hidden=\"true\"] {\n      opacity: .10;\n      pointer-events: none;\n    }\n\n    .m-full {\n      fill: #f5f7ff;\n    }\n\n    .m-first {\n      fill: rgba(245, 247, 255, .78);\n    }\n\n    .m-last {\n      fill: rgba(245, 247, 255, .56);\n    }\n\n    .m-new {\n      fill: rgba(245, 247, 255, .28);\n    }\n\n    .m-eclipse {\n      fill: #ff4d5a;\n    }\n\n    .moonMarker.is-full {\n      animation: fullPulse 2.6s ease-in-out infinite;\n      filter: drop-shadow(0 14px 30px rgba(245, 247, 255, .22)) drop-shadow(0 10px 26px rgba(120, 166, 255, .14));\n    }\n\n    .moonMarker.is-blood {\n      animation: bloodBreath 4.4s ease-in-out infinite;\n      filter: drop-shadow(0 14px 34px rgba(255, 69, 58, .20)) drop-shadow(0 10px 28px rgba(255, 69, 58, .10));\n    }\n\n    .moonMarker .halo {\n      fill: none;\n      stroke-width: 1.2;\n      opacity: .28;\n    }\n\n    .moonMarker.is-full .halo {\n      stroke: rgba(245, 247, 255, .55);\n      animation: haloFull 2.6s ease-in-out infinite;\n    }\n\n    .moonMarker.is-blood .halo {\n      stroke: rgba(255, 69, 58, .62);\n      animation: haloBlood 4.4s ease-in-out infinite;\n    }\n\n    @keyframes fullPulse {\n\n      0%,\n      100% {\n        transform: scale(1);\n        opacity: .95;\n      }\n\n      50% {\n        transform: scale(1.10);\n        opacity: 1;\n      }\n    }\n\n    @keyframes bloodBreath {\n\n      0%,\n      100% {\n        transform: scale(1);\n        opacity: .92;\n      }\n\n      50% {\n        transform: scale(1.06);\n        opacity: 1;\n      }\n    }\n\n    @keyframes haloFull {\n\n      0%,\n      100% {\n        opacity: .16;\n      }\n\n      50% {\n        opacity: .48;\n      }\n    }\n\n    @keyframes haloBlood {\n\n      0%,\n      100% {\n        opacity: .18;\n      }\n\n      50% {\n        opacity: .52;\n      }\n    }\n\n    .centerMoon {\n      cursor: pointer;\n      filter: drop-shadow(0 22px 60px rgba(0, 0, 0, .55));\n    }\n  <\/style>\n<\/head>\n\n<body data-lang=\"en\" data-stars=\"on\">\n  <canvas id=\"stars\" aria-hidden=\"true\"><\/canvas>\n  <div class=\"vignette\"><\/div>\n  <div class=\"grain\"><\/div>\n\n  <header>\n    <div class=\"wrap topbar\">\n      <div class=\"brand\">\n        <div class=\"mark\" aria-hidden=\"true\"><\/div>\n        <div>\n          <h1>LOUIS THAI<\/h1>\n          <div class=\"sub\">\n            <span data-i18n=\"en\">Premium Consultation \ud83c\udf15 Full Moon Window<\/span>\n            <span data-i18n=\"zh\">\u5c0a\u4eab\u54a8\u8be2 \ud83c\udf15 \u6ee1\u6708\u9650\u5b9a\u65f6\u6bb5<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <nav aria-label=\"Primary\">\n        <a class=\"pill\" href=\"#overview\"><span data-i18n=\"en\">Overview<\/span><span data-i18n=\"zh\">\u7b80\u4ecb<\/span><\/a>\n        <a class=\"pill\" href=\"#workflow\"><span data-i18n=\"en\">Workflow<\/span><span data-i18n=\"zh\">\u6d41\u7a0b<\/span><\/a>\n        <a class=\"pill\" href=\"#notice\"><span data-i18n=\"en\">Important Notice<\/span><span data-i18n=\"zh\">\u91cd\u8981\u58f0\u660e<\/span><\/a>\n        <a class=\"pill primary\" href=\"https:\/\/wa.me\/601116223916\" target=\"_blank\"><span\n            data-i18n=\"en\">WhatsApp<\/span><span data-i18n=\"zh\">WhatsApp<\/span><\/a>\n\n        <div class=\"controls\" role=\"group\" aria-label=\"Controls\">\n          <label><span data-i18n=\"en\">Language<\/span><span data-i18n=\"zh\">\u8bed\u8a00<\/span><\/label>\n          <div class=\"seg\" aria-label=\"Language toggle\">\n            <button type=\"button\" id=\"langEN\" aria-pressed=\"true\">EN \ud83c\uddec\ud83c\udde7<\/button>\n            <button type=\"button\" id=\"langZH\" aria-pressed=\"false\">\u4e2d\u6587 \ud83c\udde8\ud83c\uddf3<\/button>\n          <\/div>\n        <\/div>\n      <\/nav>\n    <\/div>\n  <\/header>\n\n  <main>\n    <section class=\"hero\" id=\"overview\">\n      <div class=\"wrap heroGrid\">\n        <div>\n          <div class=\"kicker\">\n            <div class=\"dot\" aria-hidden=\"true\"><\/div>\n            <span data-i18n=\"en\">Full Moon \ud83c\udf15 Premium Consultation<\/span>\n            <span data-i18n=\"zh\">\u6ee1\u6708 \ud83c\udf15 \u5c0a\u4eab\u54a8\u8be2<\/span>\n          <\/div>\n\n          <h2>\n            <span data-i18n=\"en\"><span class=\"miniHeadline\">Structured X Focused X Extended<br \/>A quieter session\n                during the Full Moon \ud83c\udf15<\/span><\/span>\n            <span data-i18n=\"zh\"><span class=\"miniHeadline\">\u66f4\u7ed3\u6784\u5316 X \u66f4\u805a\u7126 X \u66f4\u6df1\u5165<br \/>\u5728\u6ee1\u6708\u65f6\u6bb5 \ud83c\udf15 \u7ed9\u4f60\u66f4\u5b89\u9759\u4e0d\u88ab\u6253\u6270\u7684\u54a8\u8be2\u4f53\u9a8c<\/span><\/span>\n          <\/h2>\n\n          <p class=\"lead\">\n            <span data-i18n=\"en\">\n              This is a time-specific premium consultation session conducted during the \ud83c\udf15 Full Moon period.\n              Designed for clients who prefer a more structured, focused, and extended consultation experience,\n              including deeper analytical discussion and a quieter, uninterrupted session environment.\n            <\/span>\n            <span data-i18n=\"zh\">\n              \u8fd9\u662f\u5728\u300c\u6ee1\u6708\ud83c\udf15\u671f\u95f4\u300d\u8fdb\u884c\u7684\u9650\u5b9a\u65f6\u6bb5\u5c0a\u4eab\u54a8\u8be2\n              \u9002\u5408\u5e0c\u671b\u54a8\u8be2\u66f4\u7ed3\u6784\u5316\u3001\u66f4\u805a\u7126\u3001\u66f4\u5ef6\u957f\uff0c\u5e76\u91cd\u89c6\u6df1\u5ea6\u5206\u6790\u4e0e\u5b89\u9759\u4e0d\u53d7\u6253\u6270\u7684\u5ba2\u6237\n            <\/span>\n          <\/p>\n\n          <div class=\"ctaRow\">\n            <a class=\"btn gold\" href=\"https:\/\/wa.me\/601116223916\" target=\"_blank\"><span data-i18n=\"en\">\ud83d\udcc5 WhatsApp\n                Now<\/span><span data-i18n=\"zh\">\ud83d\udcc5 WhatsApp \u7acb\u5373\u9884\u7ea6<\/span><span aria-hidden=\"true\">\u2192<\/span><\/a>\n            <a class=\"btn primary\" href=\"#workflow\"><span data-i18n=\"en\">\ud83d\udcca See the Workflow<\/span><span\n                data-i18n=\"zh\">\ud83d\udcca \u67e5\u770b\u6d41\u7a0b<\/span><span aria-hidden=\"true\">\u2198<\/span><\/a>\n            <a class=\"btn\" href=\"#notice\"><span data-i18n=\"en\">Read \ud83d\udcd6 Important Notice<\/span><span\n                data-i18n=\"zh\">\u9605\u8bfb\ud83d\udcd6\u91cd\u8981\u58f0\u660e<\/span><span aria-hidden=\"true\">\u26a0\ufe0f<\/span><\/a>\n          <\/div>\n\n          <p class=\"fine\" style=\"margin-top:12px;\">\n            <span data-i18n=\"en\">\ud83e\udea7 Pricing reflects the extended consultation duration, limited booking availability,\n              and enhanced service workflow during this specific time window<\/span>\n            <span data-i18n=\"zh\">\ud83e\udea7 \u5b9a\u4ef7\u5c06\u53cd\u6620\uff1a\u54a8\u8be2\u65f6\u957f\u5ef6\u957f\u3001\u540d\u989d\u6709\u9650\uff0c\u4ee5\u53ca\u5728\u8be5\u65f6\u6bb5\u63d0\u4f9b\u66f4\u5b8c\u5584\u7684\u670d\u52a1\u6d41\u7a0b<\/span>\n          <\/p>\n        <\/div>\n\n        <aside class=\"moonCard\" aria-label=\"Package Summary Card\">\n          <div class=\"moonInner\">\n            <div class=\"meta\">\n              <div class=\"tag\"><span data-i18n=\"en\">Premium Window<\/span><span data-i18n=\"zh\">\u5c0a\u4eab\u65f6\u6bb5<\/span><\/div>\n              <div class=\"window\"><span data-i18n=\"en\">Time-specific \u2022 Full Moon \ud83c\udf15<\/span><span data-i18n=\"zh\">\u9650\u5b9a\u65f6\u6bb5 \u2022 \u6ee1\u6708\n                  \ud83c\udf15<\/span><\/div>\n            <\/div>\n\n            <div class=\"price\">\n              RM <span contenteditable=\"true\" aria-label=\"Editable price\">850.00<\/span>\n              <small><span data-i18n=\"en\">\/ session<\/span><span data-i18n=\"zh\">\/ \u6bcf\u6b21<\/span><\/small>\n            <\/div>\n            <p class=\"fine\">\n              <span data-i18n=\"en\">Price is pre-set. You can still edit notes below to match your exact process<\/span>\n              <span data-i18n=\"zh\">\u4ef7\u683c\u5df2\u9884\u8bbe\uff0c\u4f60\u4ecd\u53ef\u6309\u4f60\u7684\u5b9e\u9645\u6d41\u7a0b\u4fee\u6539\u4e0b\u65b9\u8bf4\u660e<\/span>\n            <\/p>\n\n            <div class=\"list\" role=\"list\">\n              <div class=\"li\" role=\"listitem\">\n                <div class=\"tick\" aria-hidden=\"true\">\n                  <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                    <path d=\"M6.2 12.6l3.2 3.3L17.9 8.5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\n                      stroke-linejoin=\"round\" \/>\n                  <\/svg>\n                <\/div>\n                <div>\n                  <b><span data-i18n=\"en\">Extended duration<\/span><span data-i18n=\"zh\">\u66f4\u957f\u65f6\u957f<\/span><\/b>\n                  <span><span data-i18n=\"en\">More time for depth, clarity, & structured discussion<\/span><span\n                      data-i18n=\"zh\">\u66f4\u5145\u8db3\u65f6\u95f4\u8fdb\u884c\u6df1\u5ea6\u5206\u6790\u4e0e\u7ed3\u6784\u5316\u8ba8\u8bba<\/span><\/span>\n                <\/div>\n              <\/div>\n\n              <div class=\"li\" role=\"listitem\">\n                <div class=\"tick\" aria-hidden=\"true\">\n                  <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                    <path d=\"M6.2 12.6l3.2 3.3L17.9 8.5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\n                      stroke-linejoin=\"round\" \/>\n                  <\/svg>\n                <\/div>\n                <div>\n                  <b><span data-i18n=\"en\">Focused scope<\/span><span data-i18n=\"zh\">\u805a\u7126\u8303\u56f4<\/span><\/b>\n                  <span><span data-i18n=\"en\">A clear structure to keep the session aligned and productive<\/span><span\n                      data-i18n=\"zh\">\u4ee5\u6e05\u6670\u7ed3\u6784\u786e\u4fdd\u54a8\u8be2\u5bf9\u7126\u5e76\u9ad8\u6548\u63a8\u8fdb<\/span><\/span>\n                <\/div>\n              <\/div>\n\n              <div class=\"li\" role=\"listitem\">\n                <div class=\"tick\" aria-hidden=\"true\">\n                  <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                    <path d=\"M6.2 12.6l3.2 3.3L17.9 8.5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\"\n                      stroke-linejoin=\"round\" \/>\n                  <\/svg>\n                <\/div>\n                <div>\n                  <b><span data-i18n=\"en\">Quiet, uninterrupted environment<\/span><span data-i18n=\"zh\">\u5b89\u9759\u4e0d\u6253\u6270<\/span><\/b>\n                  <span><span data-i18n=\"en\">Designed for clients who value privacy and a calm session flow<\/span><span\n                      data-i18n=\"zh\">\u9002\u5408\u91cd\u89c6\u9690\u79c1\u4e0e\u7a33\u5b9a\u8282\u594f\u7684\u5ba2\u6237<\/span><\/span>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"monoNote\">\n              <span data-i18n=\"en\">Editable fields: price, session notes, booking link, availability text and phone call\n                by booking<\/span>\n              <span data-i18n=\"zh\">\u53ef\u7f16\u8f91\uff1a\u4ef7\u683c\u3001\u8bf4\u660e\u6587\u5b57\u3001\u9884\u7ea6\u94fe\u63a5\u3001\u540d\u989d\u63d0\u793a<\/span>\n            <\/div>\n          <\/div>\n        <\/aside>\n      <\/div>\n    <\/section>\n\n    <section id=\"workflow\">\n      <div class=\"wrap\">\n        <div class=\"sectionHead\">\n          <div>\n            <h3><span data-i18n=\"en\">Enhanced Service Workflow<\/span><span data-i18n=\"zh\">\u5347\u7ea7\u7248\u670d\u52a1\u6d41\u7a0b<\/span><\/h3>\n            <p><span data-i18n=\"en\">This services is built for clarity and depth\u2014without rushing as a core of\n                service<\/span><span data-i18n=\"zh\">\u6b64\u670d\u52a1\u5c06\u4ee5\u6e05\u6670\u4e0e\u6df1\u5ea6\u5206\u6790\u4e3a\u4e3b\u8981\u6838\u5fc3<\/span><\/p>\n          <\/div>\n          <div class=\"badge\">LOUIS THAI \u2022 Premium Services<\/div>\n        <\/div>\n\n        <div class=\"cards\">\n          <div class=\"card\">\n            <h4><span data-i18n=\"en\">\u24f5 Structured Intake<\/span><span data-i18n=\"zh\">\u2460 \u7ed3\u6784\u5316\u6536\u96c6\u4fe1\u606f<\/span><\/h4>\n            <p><span data-i18n=\"en\">Clear session scope and question framing to ensure focused interpretation and\n                discussion.<\/span><span data-i18n=\"zh\">\u24f5 \u660e\u786e\u54a8\u8be2\u8303\u56f4\u4e0e\u95ee\u9898\u6846\u67b6\uff0c\u786e\u4fdd\u89e3\u8bfb\u4e0e\u8ba8\u8bba\u66f4\u805a\u7126<\/span><\/p>\n            <div class=\"monoNote\"><span data-i18n=\"en\"> Optional: pre-session questionnaire \/ document\n                checklist.<\/span><span data-i18n=\"zh\">\u53ef\u9009\uff1a\u54a8\u8be2\u524d\u95ee\u5377 \/ \u8d44\u6599\u6e05\u5355\u3002<\/span><\/div>\n          <\/div>\n\n          <div class=\"card\">\n            <h4><span data-i18n=\"en\">\u24f6 Deep Analytical Discussion<\/span><span data-i18n=\"zh\">2\uff09\u6df1\u5ea6\u5206\u6790\u8ba8\u8bba<\/span><\/h4>\n            <p><span data-i18n=\"en\">Extended time for layered interpretation, scenario mapping, and practical decision\n                guidance.<\/span><span data-i18n=\"zh\">\u24f6 \u66f4\u957f\u65f6\u95f4\u8fdb\u884c\u5c42\u6b21\u5316\u89e3\u8bfb\u3001\u60c5\u5883\u63a8\u6f14\u4e0e\u5b9e\u9645\u51b3\u7b56\u5efa\u8bae<\/span><\/p>\n            <div class=\"monoNote\"><span data-i18n=\"en\">Optional: priorities list + action steps.<\/span><span\n                data-i18n=\"zh\">\u53ef\u9009\uff1a\u4f18\u5148\u7ea7\u6e05\u5355 + \u884c\u52a8\u6b65\u9aa4<\/span><\/div>\n          <\/div>\n\n          <div class=\"card\">\n            <h4><span data-i18n=\"en\">\u24f7 Quiet, Uninterrupted Session<\/span><span data-i18n=\"zh\">3\uff09\u5b89\u9759\u4e0d\u88ab\u6253\u6270<\/span><\/h4>\n            <p><span data-i18n=\"en\">Designed for clients who prefer a calm environment and continuous flow without\n                distractions.<\/span><span data-i18n=\"zh\">\u24f7 \u4e3a\u8ffd\u6c42\u5b89\u9759\u73af\u5883\u4e0e\u8fde\u7eed\u8282\u594f\u7684\u5ba2\u6237\u800c\u8bbe<\/span><\/p>\n            <div class=\"monoNote\"><span data-i18n=\"en\">Optional: dedicated time-slot policy.<\/span><span\n                data-i18n=\"zh\">\u53ef\u9009\uff1a\u4e13\u5c5e\u65f6\u6bb5\u653f\u7b56<\/span><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section id=\"notice\">\n      <div class=\"wrap\">\n        <div class=\"sectionHead\">\n          <div>\n            <h3><span data-i18n=\"en\">\u26a0\ufe0f Important Notice<\/span><span data-i18n=\"zh\">\u26a0\ufe0f \u91cd\u8981\u58f0\u660e<\/span><\/h3>\n            <p><span data-i18n=\"en\">Clear expectations to protect both client and practitioner.<\/span><span\n                data-i18n=\"zh\">\u660e\u786e\u5ba2\u6237\u9884\u671f\uff0c\u4fdd\u62a4\u5ba2\u6237\u4e0e\u670d\u52a1\u65b9\u53cc\u65b9\u6743\u76ca<\/span><\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"notice\" role=\"note\" aria-label=\"Important Notice\">\n          <div class=\"warn\" aria-hidden=\"true\">\u26a0\ufe0f<\/div>\n          <div>\n            <h4><span data-i18n=\"en\">Interpretative & Advisory Only<\/span><span data-i18n=\"zh\">\u4ec5\u4f9b\u89e3\u8bfb\u4e0e\u5efa\u8bae<\/span><\/h4>\n            <p>\n              <span data-i18n=\"en\">All consultations are interpretative and advisory in nature. No guarantees are\n                provided regarding outcomes, predictions, or future events.<\/span>\n              <span data-i18n=\"zh\">\u6240\u6709\u54a8\u8be2\u4ec5\u5c5e\u4e8e\u89e3\u8bfb\u4e0e\u5efa\u8bae\u6027\u8d28\u3002\u5bf9\u7ed3\u679c\u3001\u9884\u6d4b\u51c6\u786e\u5ea6\u6216\u672a\u6765\u4e8b\u4ef6\u4e0d\u4f5c\u4efb\u4f55\u4fdd\u8bc1<\/span>\n            <\/p>\n            <ul>\n              <li><span data-i18n=\"en\">Results may vary due to personal choices, external factors, and\n                  timing.<\/span><span data-i18n=\"zh\">\u7ed3\u679c\u53ef\u80fd\u53d7\u4e2a\u4eba\u9009\u62e9\u3001\u5916\u5728\u56e0\u7d20\u4e0e\u65f6\u673a\u5f71\u54cd\u800c\u4e0d\u540c<\/span><\/li>\n              <li><span data-i18n=\"en\">Clients remain responsible for their own decisions and actions.<\/span><span\n                  data-i18n=\"zh\">\u5ba2\u6237\u987b\u81ea\u884c\u627f\u62c5\u5176\u51b3\u5b9a\u4e0e\u884c\u52a8\u7684\u8d23\u4efb<\/span><\/li>\n              <li><span data-i18n=\"en\">This service does not replace professional legal, medical, or financial\n                  advice.<\/span><span data-i18n=\"zh\">\u672c\u670d\u52a1\u4e0d\u66ff\u4ee3\u6cd5\u5f8b\u3001\u533b\u7597\u6216\u8d22\u52a1\u7b49\u4e13\u4e1a\u610f\u89c1<\/span><\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section id=\"book\">\n      <div class=\"wrap\">\n        <div class=\"sectionHead\">\n          <div>\n            <h3><span data-i18n=\"en\">Booking \ud83d\udcc5<\/span><span data-i18n=\"zh\">\u9884\u7ea6 \ud83d\udcc5<\/span><\/h3>\n            <p><span data-i18n=\"en\">Limited availability during the Full Moon window<\/span><span\n                data-i18n=\"zh\">\u6ee1\u6708\u65f6\u6bb5\u540d\u989d\u6709\u9650<\/span><\/p>\n          <\/div>\n        <\/div>\n\n\n\n        <div class=\"moonEmbed\" id=\"moon-phases\">\n          <div class=\"moonEmbedHeader\">\n            <div>\n              <h4><span data-i18n=\"en\">Moon Phases 2026 \ud83c\udf15<\/span><span data-i18n=\"zh\">2026 \u6708\u76f8\u4e92\u52a8\u56fe \ud83c\udf15<\/span><\/h4>\n              <p>\n                <span data-i18n=\"en\">Click a Full Moon \ud83c\udf15 marker to open booking with the date pre-filled.<\/span>\n                <span data-i18n=\"zh\">\u70b9\u51fb\u300c\u6ee1\u6708 \ud83c\udf15\u300d\u6807\u8bb0\u5373\u53ef\u5e26\u65e5\u671f\u6253\u5f00\u9884\u7ea6\u3002<\/span>\n              <\/p>\n            <\/div>\n          <\/div>\n\n          <div class=\"moonPanel\">\n            <div class=\"moonGrid\">\n              <section class=\"moonViz\">\n                <canvas id=\"moonVizStars\"><\/canvas>\n                <div class=\"moonSvgWrap\" id=\"svgWrap\">\n                  <svg id=\"moonSvg\" viewbox=\"0 0 900 900\" width=\"100%\" height=\"100%\"\n                    aria-label=\"Interactive moon phases calendar\">\n                    <circle class=\"moonRing\" cx=\"450\" cy=\"450\" r=\"330\" \/>\n                    <circle class=\"moonRing2\" cx=\"450\" cy=\"450\" r=\"300\" \/>\n                    <circle class=\"moonRing2\" cx=\"450\" cy=\"450\" r=\"270\" \/>\n                    <circle class=\"moonRing2\" cx=\"450\" cy=\"450\" r=\"240\" \/>\n                    <circle class=\"moonRing2\" cx=\"450\" cy=\"450\" r=\"210\" \/>\n\n                    <g id=\"monthLayer\"><\/g>\n                    <g id=\"markerLayer\"><\/g>\n\n                    <g class=\"centerMoon\" id=\"centerMoon\">\n                      <defs>\n                        <radialgradient id=\"moonGrad\" cx=\"35%\" cy=\"35%\" r=\"70%\">\n                          <stop offset=\"0%\" stop-color=\"#ffffff\" \/>\n                          <stop offset=\"28%\" stop-color=\"#d6d9e2\" \/>\n                          <stop offset=\"58%\" stop-color=\"#8a8f9d\" \/>\n                          <stop offset=\"100%\" stop-color=\"#3a3f4b\" \/>\n                        <\/radialgradient>\n                        <radialgradient id=\"moonShine\" cx=\"30%\" cy=\"30%\" r=\"60%\">\n                          <stop offset=\"0%\" stop-color=\"rgba(255,255,255,.35)\" \/>\n                          <stop offset=\"60%\" stop-color=\"rgba(255,255,255,.06)\" \/>\n                          <stop offset=\"100%\" stop-color=\"rgba(0,0,0,0)\" \/>\n                        <\/radialgradient>\n                      <\/defs>\n                      <circle cx=\"450\" cy=\"450\" r=\"120\" fill=\"url(#moonGrad)\" \/>\n                      <circle cx=\"420\" cy=\"420\" r=\"110\" fill=\"url(#moonShine)\" opacity=\".7\" \/>\n                      <circle cx=\"450\" cy=\"450\" r=\"121\" fill=\"none\" stroke=\"rgba(255,255,255,.10)\" \/>\n                    <\/g>\n                  <\/svg>\n\n                  <div class=\"moonHint\">\n                    <span data-i18n=\"en\">Drag to rotate \u2022 Hover to preview \u2022 Click to book<\/span>\n                    <span data-i18n=\"zh\">\u62d6\u62fd\u65cb\u8f6c \u2022 \u60ac\u505c\u9884\u89c8 \u2022 \u70b9\u51fb\u9884\u7ea6<\/span>\n                  <\/div>\n                <\/div>\n              <\/section>\n\n              <aside class=\"moonSide\">\n                <div class=\"moonInCard\">\n                  <div class=\"moonKicker\"><span data-i18n=\"en\">Booking<\/span><span data-i18n=\"zh\">\u9884\u7ea6<\/span><\/div>\n                  <div class=\"moonTitle\"><span data-i18n=\"en\">Direct Connection<\/span><span\n                      data-i18n=\"zh\">\u70b9\u51fb\u6708\u4eae\u76f4\u63a5\u9884\u7ea6<\/span>\n                  <\/div>\n                  <p class=\"moonDesc\">\n                    <span data-i18n=\"en\">Click any moon marker to open WhatsApp with the selected date.<\/span>\n                    <span data-i18n=\"zh\">\u70b9\u51fb\u4efb\u4f55\u6708\u7403\u6807\u8bb0\uff0c\u5c06\u5e26\u65e5\u671f\u6253\u5f00 WhatsApp\u3002<\/span>\n                  <\/p>\n                  <div class=\"moonRow\">\n                    <button class=\"btn primary\" id=\"resetMoon\" type=\"button\">Reset view<\/button>\n                  <\/div>\n                <\/div>\n\n                <div class=\"moonInCard\">\n                  <div class=\"moonKicker\"><span data-i18n=\"en\">Legend & Filters<\/span><span data-i18n=\"zh\">\u56fe\u4f8b\u4e0e\u7b5b\u9009<\/span>\n                  <\/div>\n                  <div class=\"moonLegend\" id=\"moonLegend\">\n                    <div class=\"moonChip\" data-key=\"full\" data-on=\"1\"><span\n                        class=\"moonDot full\"><\/span><span>Full<\/span>\n                    <\/div>\n                    <div class=\"moonChip\" data-key=\"first\" data-on=\"1\"><span\n                        class=\"moonDot first\"><\/span><span>1st<\/span>\n                    <\/div>\n                    <div class=\"moonChip\" data-key=\"last\" data-on=\"1\"><span\n                        class=\"moonDot last\"><\/span><span>Last<\/span>\n                    <\/div>\n                    <div class=\"moonChip\" data-key=\"new\" data-on=\"1\"><span class=\"moonDot new\"><\/span><span>New<\/span>\n                    <\/div>\n                    <div class=\"moonChip\" data-key=\"eclipse\" data-on=\"1\"><span\n                        class=\"moonDot eclipse\"><\/span><span>Eclipse<\/span><\/div>\n                  <\/div>\n                <\/div>\n              <\/aside>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"moonTip\" id=\"moonTip\" aria-hidden=\"true\">\n          <div class=\"t1\" id=\"tipTitle\">Full Moon<\/div>\n          <div class=\"t2\" id=\"tipDate\">2026-01-01<\/div>\n          <div class=\"t3\"><span data-i18n=\"en\">Click to WhatsApp<\/span><span data-i18n=\"zh\">\u70b9\u51fb WhatsApp \u9884\u7ea6<\/span><\/div>\n        <\/div>\n\n        <div class=\"sectionHead\" style=\"margin-top:18px;\">\n          <div>\n            <h3><span data-i18n=\"en\">Packages & Booking Windows<\/span><span data-i18n=\"zh\">\u914d\u5957\u4e0e\u9884\u7ea6\u65f6\u6bb5<\/span><\/h3>\n            <p><span data-i18n=\"en\">All times shown are local time. Full Moon Premium runs for 3 nights (day before,\n                day-of, day after).<\/span><span data-i18n=\"zh\">\u4ee5\u4e0b\u65f6\u95f4\u5747\u4e3a\u5f53\u5730\u65f6\u95f4\u3002\u6ee1\u6708\u5c0a\u4eab\u4e3a 3 \u665a\uff08\u524d\u4e00\u5929\u3001\u5f53\u5929\u3001\u540e\u4e00\u5929\uff09<\/span><\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"tableWrap\" role=\"region\" aria-label=\"Pricing and booking table\" tabindex=\"0\">\n          <!-- Optional: place moon.png in the same folder as this HTML -->\n          <img decoding=\"async\" class=\"moonDeco\" src=\"moon.png\" alt=\"Moon\" onerror=\"this.style.display='none'\">\n\n          <table class=\"pricing\">\n            <thead>\n              <tr>\n                <th><span data-i18n=\"en\">\ud83d\uded2 Package<\/span><span data-i18n=\"zh\">\ud83d\uded2 \u914d\u5957<\/span><\/th>\n                <th><span data-i18n=\"en\">\ud83c\udf81 Type of Package<\/span><span data-i18n=\"zh\">\ud83c\udf81 \u914d\u5957\u7c7b\u578b<\/span><\/th>\n                <th><span data-i18n=\"en\">\ud83d\udcb3 Price<\/span><span data-i18n=\"zh\">\ud83d\udcb3 \u4ef7\u683c<\/span><\/th>\n                <th><span data-i18n=\"en\">\ud83d\udcf2 Availability<\/span><span data-i18n=\"zh\">\ud83d\udcf2 \u53ef\u9884\u7ea6\u65f6\u95f4<\/span><\/th>\n                <th><span data-i18n=\"en\">\ud83d\uddd3\ufe0f Slots<\/span><span data-i18n=\"zh\">\ud83d\uddd3\ufe0f \u65f6\u6bb5<\/span><\/th>\n                <th><span data-i18n=\"en\">\ud83d\udcd1 Notes<\/span><span data-i18n=\"zh\">\ud83d\udcd1 \u5907\u6ce8<\/span><\/th>\n              <\/tr>\n            <\/thead>\n            <tbody>\n              <tr>\n                <td>\n                  <div class=\"money\"><span data-i18n=\"en\">Full Moon Premium Consultation<\/span><span\n                      data-i18n=\"zh\">\u6ee1\u6708\u5c0a\u4eab\u54a8\u8be2<\/span><\/div>\n                  <div class=\"mutedCell\" style=\"margin-top:6px;\">\n                    <span data-i18n=\"en\">Time-specific premium session<\/span><span data-i18n=\"zh\">\u9650\u5b9a\u65f6\u6bb5\u5c0a\u4eab<\/span>\n                  <\/div>\n                <\/td>\n                <td class=\"mutedCell\"><span data-i18n=\"en\">i\u2011Premium 3 Years<\/span><span data-i18n=\"zh\">i\u2011Premium 3\n                    Years<\/span><\/td>\n                <td class=\"money\">RM 850.00<\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">3 nights: Day -1, Day 0 (Full Moon \ud83c\udf15), Day +1<\/span>\n                  <span data-i18n=\"zh\">\u5171 3 \u665a\uff1a\u6ee1\u6708\u524d 1 \u5929\u3001\u6ee1\u6708\u5f53\u5929\u3001\u6ee1\u6708\u540e 1 \u5929<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <div><span class=\"money\"><span data-i18n=\"en\">Slot 1<\/span><span data-i18n=\"zh\">\u65f6\u6bb5 1<\/span><\/span>:\n                    9:00pm \u2013 11:00pm<\/div>\n                  <div style=\"margin-top:6px;\"><span class=\"money\"><span data-i18n=\"en\">Slot 2<\/span><span\n                        data-i18n=\"zh\">\u65f6\u6bb5 2<\/span><\/span>: 12:00am \u2013 2:00am<\/div>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Limited booking availability. Quiet, uninterrupted workflow.<\/span>\n                  <span data-i18n=\"zh\">\u540d\u989d\u6709\u9650\u3002\u5b89\u9759\u4e0d\u88ab\u6253\u6270\u7684\u5347\u7ea7\u6d41\u7a0b<\/span>\n                <\/td>\n              <\/tr>\n\n              <tr>\n                <td>\n                  <div class=\"money\"><span data-i18n=\"en\">Blood Moon Upgrade<\/span><span data-i18n=\"zh\">\u8840\u6708\u52a0\u4ef7\u914d\u5957<\/span>\n                  <\/div>\n                  <div class=\"mutedCell\" style=\"margin-top:6px;\">\n                    <span data-i18n=\"en\">Only when it occurs on a Full Moon<\/span><span data-i18n=\"zh\">\u4ec5\u5728\u6ee1\u6708\u9047\u5230\u8840\u6708\u65f6<\/span>\n                  <\/div>\n                <\/td>\n                <td class=\"mutedCell\"><span data-i18n=\"en\">i\u2011Premium 3 Years<\/span><span data-i18n=\"zh\">i\u2011Premium 3\n                    Years<\/span><\/td>\n                <td class=\"money\">RM 1,000.00<\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Any time (by appointment)<\/span><span data-i18n=\"zh\">\u4efb\u4f55\u65f6\u95f4\uff08\u9700\u9884\u7ea6\uff09<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span class=\"money\">2 hours<\/span> <span data-i18n=\"en\">per slot<\/span><span data-i18n=\"zh\">\/\n                    \u6bcf\u4e2a\u65f6\u6bb5<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Book 12\u201324 hours in advance to confirm whether Blood Moon conditions\n                    apply.<\/span>\n                  <span data-i18n=\"zh\">\u9700\u63d0\u524d 12\u201324 \u5c0f\u65f6\u9884\u7ea6\u4e0e\u786e\u8ba4\u662f\u5426\u7b26\u5408\u8840\u6708\u6761\u4ef6<\/span>\n                <\/td>\n              <\/tr>\n\n              <tr>\n                <td>\n                  <div class=\"money\"><span data-i18n=\"en\">Super Moon Upgrade<\/span><span data-i18n=\"zh\">\u8d85\u7ea7\u6708\u4eae\u52a0\u4ef7\u914d\u5957<\/span>\n                  <\/div>\n                  <div class=\"mutedCell\" style=\"margin-top:6px;\">\n                    <span data-i18n=\"en\">Only when it occurs on a Full Moon<\/span><span\n                      data-i18n=\"zh\">\u4ec5\u5728\u6ee1\u6708\u9047\u5230\u8d85\u7ea7\u6708\u4eae\u65f6<\/span>\n                  <\/div>\n                <\/td>\n                <td class=\"mutedCell\"><span data-i18n=\"en\">i\u2011Premium 3 Years<\/span><span data-i18n=\"zh\">i\u2011Premium 3\n                    Years<\/span><\/td>\n                <td class=\"money\">RM 1,200.00<\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Any time (by appointment)<\/span><span data-i18n=\"zh\">\u4efb\u4f55\u65f6\u95f4\uff08\u9700\u9884\u7ea6\uff09<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span class=\"money\">2 hours<\/span> <span data-i18n=\"en\">per slot<\/span><span data-i18n=\"zh\">\/\n                    \u6bcf\u4e2a\u65f6\u6bb5<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Book 12\u201324 hours in advance to confirm whether Super Moon conditions\n                    apply.<\/span>\n                  <span data-i18n=\"zh\">\u9700\u63d0\u524d 12\u201324 \u5c0f\u65f6\u9884\u7ea6\u4e0e\u786e\u8ba4\u662f\u5426\u7b26\u5408\u8d85\u7ea7\u6708\u4eae\u6761\u4ef6<\/span>\n                <\/td>\n              <\/tr>\n\n              <tr>\n                <td>\n                  <div class=\"money\"><span data-i18n=\"en\">Harvest Moon Upgrade<\/span><span data-i18n=\"zh\">\u4e30\u6536\u6708\u52a0\u4ef7\u914d\u5957<\/span>\n                  <\/div>\n                  <div class=\"mutedCell\" style=\"margin-top:6px;\">\n                    <span data-i18n=\"en\">Only when it occurs on a Full Moon<\/span><span data-i18n=\"zh\">\u4ec5\u5728\u6ee1\u6708\u9047\u5230\u4e30\u6536\u6708\u65f6<\/span>\n                  <\/div>\n                <\/td>\n                <td class=\"mutedCell\"><span data-i18n=\"en\">i\u2011Premium 3 Years<\/span><span data-i18n=\"zh\">i\u2011Premium 3\n                    Years<\/span><\/td>\n                <td class=\"money\">RM 950.00<\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Any time (by appointment)<\/span><span data-i18n=\"zh\">\u4efb\u4f55\u65f6\u95f4\uff08\u9700\u9884\u7ea6\uff09<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span class=\"money\">2 hours<\/span> <span data-i18n=\"en\">per slot<\/span><span data-i18n=\"zh\">\/\n                    \u6bcf\u4e2a\u65f6\u6bb5<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Book 12\u201324 hours in advance to confirm whether Harvest Moon conditions\n                    apply.<\/span>\n                  <span data-i18n=\"zh\">\u9700\u63d0\u524d 12\u201324 \u5c0f\u65f6\u9884\u7ea6\u4e0e\u786e\u8ba4\u662f\u5426\u7b26\u5408\u4e30\u6536\u6708\u6761\u4ef6<\/span>\n                <\/td>\n              <\/tr>\n\n              <tr>\n                <td>\n                  <div class=\"money\"><span data-i18n=\"en\">Ritual Services<\/span><span data-i18n=\"zh\">\u6cd5\u4e8b\u670d\u52a1<\/span><\/div>\n                  <div class=\"mutedCell\" style=\"margin-top:6px;\">\n                    <span data-i18n=\"en\">During Full Moon period<\/span><span data-i18n=\"zh\">\u6ee1\u6708\u76f8\u5173\u65f6\u6bb5<\/span>\n                  <\/div>\n                <\/td>\n                <td class=\"mutedCell\"><span data-i18n=\"en\">Any Type of Ritual Products<\/span><span\n                    data-i18n=\"zh\">\u4efb\u4f55\u7c7b\u578b\u6cd5\u4e8b\u4ea7\u54c1<\/span><\/td>\n                <td class=\"money\"><span data-i18n=\"en\">2\u00d7 standard price<\/span><span data-i18n=\"zh\">\u539f\u4ef7 2 \u500d<\/span><\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Advance booking required<\/span><span data-i18n=\"zh\">\u9700\u63d0\u524d\u9884\u7ea6<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Max 2 clients per night<\/span><span data-i18n=\"zh\">\u6bcf\u665a\u6700\u591a 2 \u4f4d\u5ba2\u6237<\/span>\n                <\/td>\n                <td class=\"mutedCell\">\n                  <span data-i18n=\"en\">Capacity-controlled due to workflow intensity and preparation\n                    requirements.<\/span>\n                  <span data-i18n=\"zh\">\u56e0\u6d41\u7a0b\u5f3a\u5ea6\u4e0e\u51c6\u5907\u5de5\u4f5c\u8f83\u9ad8\uff0c\u91c7\u53d6\u9650\u989d\u5236<\/span>\n                <\/td>\n              <\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n\n        <div class=\"ctaPanel\">\n          <div>\n            <h3><span data-i18n=\"en\">\ud83c\udf15 Full Moon Premium Consultation<\/span><span data-i18n=\"zh\">\ud83c\udf15 \u6ee1\u6708\u5c0a\u4eab\u54a8\u8be2<\/span><\/h3>\n            <p>\n              <span data-i18n=\"en\">Premium time-specific session \u2022 structured and extended consultation \u2022 quiet\n                environment.<\/span>\n              <span data-i18n=\"zh\">\u9650\u5b9a\u65f6\u6bb5\u5c0a\u4eab \u2022 \u7ed3\u6784\u5316\u4e0e\u5ef6\u957f\u54a8\u8be2 \u2022 \u5b89\u9759\u4e0d\u6253\u6270<\/span>\n              <span contenteditable=\"true\" aria-label=\"Editable booking note\" style=\"display:inline-block;\">\n                <span data-i18n=\"en\">\ud83d\udcd6 Read the policy click here<\/span>\n                <span data-i18n=\"zh\">\ud83d\udcd6 \u9605\u8bfb\u5b8c\u6574\u7248\u7684\u5177\u4f53\u65f6\u957f\u3001\u5e73\u53f0\u3001\u6ee1\u6708\u65f6\u6bb5\u670d\u52a1\u653f\u7b56<\/span>\n              <\/span>\n            <\/p>\n          <\/div>\n          <div class=\"right\">\n            <a class=\"btn gold\" href=\"https:\/\/wa.me\/601116223916\" target=\"_blank\">\n              <span data-i18n=\"en\">\ud83d\uded2 WhatsApp Now<\/span><span data-i18n=\"zh\">\ud83d\uded2 WhatsApp \u7acb\u5373\u9884\u7ea6<\/span>\n              <span aria-hidden=\"true\">\u2192<\/span>\n            <\/a>\n            <a class=\"btn\" href=\"#faq\"><span data-i18n=\"en\">\ud83d\udc81\ud83c\udffc\u200d\u2640\ufe0f FAQ<\/span><span data-i18n=\"zh\">\ud83d\udc81\ud83c\udffc\u200d\u2640\ufe0f\n                \u5e38\u89c1\u95ee\u9898<\/span><\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <section id=\"faq\">\n      <div class=\"wrap\">\n        <div class=\"sectionHead\">\n          <div>\n            <h3><span data-i18n=\"en\">\ud83d\ude47\ud83c\udffc\u200d\u2642\ufe0f FAQ<\/span><span data-i18n=\"zh\">\ud83d\ude47\ud83c\udffc\u200d\u2642\ufe0f \u5e38\u89c1\u95ee\u9898<\/span><\/h3>\n            <p><span data-i18n=\"en\">Short premium answers\u2014clean expectations.<\/span><span\n                data-i18n=\"zh\">\u7b80\u6d01\u9ad8\u7aef\u56de\u7b54\uff0c\u660e\u786e\u9884\u671f<\/span><\/p>\n          <\/div>\n        <\/div>\n\n        <details>\n          <summary>\n            <span data-i18n=\"en\">Why is this package priced higher than standard sessions?<\/span>\n            <span data-i18n=\"zh\">\u4e3a\u4ec0\u4e48\u8fd9\u4e2a\u914d\u5957\u6bd4\u4e00\u822c\u54a8\u8be2\u66f4\u8d35\uff1f<\/span>\n            <span class=\"chev\" aria-hidden=\"true\">\u2304<\/span>\n          <\/summary>\n          <p>\n            <span data-i18n=\"en\">Pricing reflects extended consultation duration, limited booking availability, and an\n              enhanced service workflow during this specific Full Moon time window.<\/span>\n            <span data-i18n=\"zh\">\u5b9a\u4ef7\u53cd\u6620\u4e86\u54a8\u8be2\u65f6\u957f\u5ef6\u957f\u3001\u540d\u989d\u6709\u9650\uff0c\u4ee5\u53ca\u5728\u8be5\u6ee1\u6708\u65f6\u6bb5\u63d0\u4f9b\u66f4\u5b8c\u5584\u7684\u670d\u52a1\u6d41\u7a0b<\/span>\n          <\/p>\n        <\/details>\n\n        <details>\n          <summary>\n            <span data-i18n=\"en\">Do you guarantee accuracy or outcomes?<\/span>\n            <span data-i18n=\"zh\">\u4f1a\u4fdd\u8bc1\u51c6\u786e\u5ea6\u6216\u7ed3\u679c\u5417\uff1f<\/span>\n            <span class=\"chev\" aria-hidden=\"true\">\u2304<\/span>\n          <\/summary>\n          <p>\n            <span data-i18n=\"en\">No. All consultations are interpretative and advisory in nature. No guarantees are\n              provided regarding outcomes, predictions, or future events.<\/span>\n            <span data-i18n=\"zh\">\u4e0d\u4f1a\u3002\u6240\u6709\u54a8\u8be2\u4ec5\u5c5e\u4e8e\u89e3\u8bfb\u4e0e\u5efa\u8bae\u6027\u8d28\uff0c\u5bf9\u7ed3\u679c\u3001\u9884\u6d4b\u6216\u672a\u6765\u4e8b\u4ef6\u4e0d\u4f5c\u4efb\u4f55\u4fdd\u8bc1<\/span>\n          <\/p>\n        <\/details>\n\n        <details>\n          <summary>\n            <span data-i18n=\"en\">What should I prepare before the session?<\/span>\n            <span data-i18n=\"zh\">\u54a8\u8be2\u524d\u9700\u8981\u51c6\u5907\u4ec0\u4e48\uff1f<\/span>\n            <span class=\"chev\" aria-hidden=\"true\">\u2304<\/span>\n          <\/summary>\n          <p>\n            <span data-i18n=\"en\">Prepare your key questions and any relevant context. If you use an intake form, add it\n              to the booking flow for a more structured session.<\/span>\n            <span data-i18n=\"zh\">\u51c6\u5907\u4f60\u7684\u6838\u5fc3\u95ee\u9898\u4e0e\u76f8\u5173\u80cc\u666f\u4fe1\u606f\u3002\u82e5\u4f60\u6709\u54a8\u8be2\u524d\u95ee\u5377\uff0c\u53ef\u52a0\u5165\u9884\u7ea6\u6d41\u7a0b\uff0c\u8ba9\u54a8\u8be2\u66f4\u7ed3\u6784\u5316<\/span>\n          <\/p>\n        <\/details>\n      <\/div>\n    <\/section>\n\n    <footer>\n      <div class=\"wrap footGrid\">\n        <div class=\"legal\">\n          <span>\u00a9 <span id=\"y\"><\/span> LOUIS THAI <span data-i18n=\"en\">All rights reserved.<\/span><span\n              data-i18n=\"zh\">\u7248\u6743\u6240\u6709<\/span><\/span>\n          <span class=\"badge\"><span data-i18n=\"en\">Interpretative \u2022 Advisory \u2022 No Guarantees<\/span><span\n              data-i18n=\"zh\">\u89e3\u8bfb \u2022 \u5efa\u8bae \u2022 \u4e0d\u4fdd\u8bc1<\/span><\/span>\n        <\/div>\n        <div class=\"legal\">\n          <span class=\"badge\"><span data-i18n=\"en\">Premium Edition<\/span><span data-i18n=\"zh\">\u9ed1\u91d1\u7248\u672c<\/span><\/span>\n          <span class=\"badge\"><span data-i18n=\"en\">The service has been undergone internal beta tested and\n              experimentally tested<\/span><span data-i18n=\"zh\">\u670d\u52a1\u5df2\u8fdb\u884c\u5185\u90e8\u5b9e\u9a8c\u4e0e\u9a8c\u8bc1<\/span><\/span>\n        <\/div>\n      <\/div>\n    <\/footer>\n  <\/main>\n\n  <script>\n    \/\/ year\n    document.getElementById(\"y\").textContent = new Date().getFullYear();\n\n    \/\/ language toggle + persistence\n    const btnEN = document.getElementById(\"langEN\");\n    const btnZH = document.getElementById(\"langZH\");\n    const setLang = (lang) => {\n      document.body.setAttribute(\"data-lang\", lang);\n      btnEN.setAttribute(\"aria-pressed\", String(lang === \"en\"));\n      btnZH.setAttribute(\"aria-pressed\", String(lang === \"zh\"));\n      try { localStorage.setItem(\"LT_LANG\", lang); } catch (e) { }\n      document.documentElement.lang = lang === \"zh\" ? \"zh-Hans\" : \"en\";\n    };\n    btnEN.addEventListener(\"click\", () => setLang(\"en\"));\n    btnZH.addEventListener(\"click\", () => setLang(\"zh\"));\n    let saved = \"en\";\n    try { saved = localStorage.getItem(\"LT_LANG\") || \"en\"; } catch (e) { }\n    setLang(saved === \"zh\" ? \"zh\" : \"en\");\n\n    \/\/ stars always on (toggle removed)\n    const starsCanvas = document.getElementById(\"stars\");\n    let starsOn = true;\n    starsCanvas.style.display = \"block\";\n    document.body.setAttribute(\"data-stars\", \"on\");\n\n    \/\/ Canvas starfield (lightweight, premium)\n    const ctx = starsCanvas.getContext(\"2d\", { alpha: true });\n    let W = 0, H = 0, DPR = 1;\n    const stars = [];\n    const twinkles = [];\n    let raf = null;\n\n    let lastW = 0, lastH = 0;\n    function resize() {\n      const newW = Math.floor(window.innerWidth);\n      const newH = Math.floor(window.innerHeight);\n\n      if (Math.abs(newW - lastW) < 5 && Math.abs(newH - lastH) < 100) {\n        starsCanvas.style.width = newW + \"px\";\n        starsCanvas.style.height = newH + \"px\";\n        return;\n      }\n\n      lastW = newW;\n      lastH = newH;\n\n      DPR = Math.min(2, window.devicePixelRatio || 1);\n      W = newW;\n      H = newH;\n      starsCanvas.width = Math.floor(W * DPR);\n      starsCanvas.height = Math.floor(H * DPR);\n      starsCanvas.style.width = W + \"px\";\n      starsCanvas.style.height = H + \"px\";\n      ctx.setTransform(DPR, 0, 0, DPR, 0, 0);\n\n      const count = Math.floor((W * H) \/ 8500); \/\/ density\n      for (let i = 0; i < count; i++) {\n        const x = Math.random() * W;\n        const y = Math.random() * H;\n        const r = Math.random() * 1.6 + 0.2;\n        const a = Math.random() * 0.55 + 0.18;\n        const vx = (Math.random() * 1.05 + 0.35); \/\/ ultra-fast drift\n        stars.push({ x, y, r, a, vx });\n      }\n      \/\/ a few bright \"feature\" stars\n      for (let i = 0; i < 14; i++) {\n        const x = Math.random() * W;\n        const y = Math.random() * H * 0.85;\n        const r = Math.random() * 2.6 + 1.2;\n        const a = Math.random() * 0.55 + 0.30;\n        const t = Math.random() * Math.PI * 2;\n        twinkles.push({ x, y, r, a, phase: t });\n      }\n    }\n\n    function clear() {\n      ctx.clearRect(0, 0, W, H);\n    }\n\n    function draw() {\n      if (!starsOn) { raf = requestAnimationFrame(draw); return; }\n      clear();\n\n      \/\/ subtle nebula glow strokes\n      ctx.save();\n      ctx.globalCompositeOperation = \"lighter\";\n      const g1 = ctx.createRadialGradient(W * 0.22, H * 0.18, 0, W * 0.22, H * 0.18, Math.max(W, H) * 0.55);\n      g1.addColorStop(0, \"rgba(215,181,122,0.06)\");\n      g1.addColorStop(1, \"rgba(215,181,122,0)\");\n      ctx.fillStyle = g1;\n      ctx.fillRect(0, 0, W, H);\n\n      const g2 = ctx.createRadialGradient(W * 0.78, H * 0.22, 0, W * 0.78, H * 0.22, Math.max(W, H) * 0.55);\n      g2.addColorStop(0, \"rgba(120,166,255,0.06)\");\n      g2.addColorStop(1, \"rgba(120,166,255,0)\");\n      ctx.fillStyle = g2;\n      ctx.fillRect(0, 0, W, H);\n      ctx.restore();\n\n      \/\/ stars\n      ctx.save();\n      ctx.globalCompositeOperation = \"source-over\";\n      for (const s of stars) {\n        s.x += s.vx * 1.8;\n        if (s.x > W + 10) s.x = -10;\n\n        ctx.beginPath();\n        ctx.fillStyle = `rgba(243,245,255,${s.a})`;\n        ctx.arc(s.x, s.y, s.r, 0, Math.PI * 2);\n        ctx.fill();\n      }\n\n      \/\/ twinkles\n      const tNow = performance.now() * 0.0022;\n      ctx.globalCompositeOperation = \"lighter\";\n      for (const t of twinkles) {\n        const pulse = (Math.sin(tNow * 2.4 + t.phase) + 1) \/ 2; \/\/ 0..1\n        const alpha = t.a * (0.55 + pulse * 0.55);\n        const rr = t.r * (0.9 + pulse * 0.25);\n\n        \/\/ glow\n        const gg = ctx.createRadialGradient(t.x, t.y, 0, t.x, t.y, rr * 6);\n        gg.addColorStop(0, `rgba(215,181,122,${alpha * 0.18})`);\n        gg.addColorStop(0.35, `rgba(120,166,255,${alpha * 0.10})`);\n        gg.addColorStop(1, \"rgba(0,0,0,0)\");\n        ctx.fillStyle = gg;\n        ctx.fillRect(t.x - rr * 6, t.y - rr * 6, rr * 12, rr * 12);\n\n        \/\/ core\n        ctx.beginPath();\n        ctx.fillStyle = `rgba(243,245,255,${alpha})`;\n        ctx.arc(t.x, t.y, rr, 0, Math.PI * 2);\n        ctx.fill();\n      }\n      ctx.restore();\n\n      raf = requestAnimationFrame(draw);\n    }\n    \/\/ Reduced-motion preference: keep stars visible (no auto-disable)\n\n    window.addEventListener(\"resize\", () => resize(), { passive: true });\n    resize();\n    draw();\n\n    \/* =========================\n       MOON PHASES LOGIC (Merged)\n    ========================= *\/\n    (function moonPhases() {\n      const WHATSAPP_LINK = \"https:\/\/wa.me\/601116223916\";\n\n      \/* Dedicated Section Starfield (Trails version) *\/\n      (function innerStarfield() {\n        const c = document.getElementById(\"moonVizStars\");\n        if (!c) return;\n        const ictx = c.getContext(\"2d\");\n        let w = 0, h = 0, dpr = 1;\n        let stars = [];\n\n        function resizeInner() {\n          dpr = Math.max(1, Math.min(2, window.devicePixelRatio || 1));\n          const rect = c.parentElement.getBoundingClientRect();\n          w = c.width = Math.floor(rect.width * dpr);\n          h = c.height = Math.floor(rect.height * dpr);\n          c.style.width = rect.width + \"px\";\n          c.style.height = rect.height + \"px\";\n\n          const count = Math.max(80, Math.floor((rect.width * rect.height) \/ 10000));\n          stars = new Array(count).fill(0).map(() => ({\n            x: Math.random() * w,\n            y: Math.random() * h,\n            r: (Math.random() * 1.5 + 0.35) * dpr,\n            a: Math.random() * 0.72 + 0.12,\n            vx: (Math.random() * 0.8 + 0.2) * dpr,\n            tw: Math.random() * 3.1 + 1.2,\n            ph: Math.random() * Math.PI * 2\n          }));\n        }\n\n        function drawInner(t) {\n          ictx.fillStyle = \"rgba(0,0,0,0.06)\";\n          ictx.fillRect(0, 0, w, h);\n\n          const time = t * 0.0022;\n          for (const s of stars) {\n            s.x += s.vx;\n            if (s.x > w + 20) s.x = -20;\n            const pulse = (Math.sin(time * s.tw + s.ph) + 1) \/ 2;\n            ictx.beginPath();\n            ictx.fillStyle = `rgba(245,247,255,${(s.a * (0.35 + 0.65 * pulse)).toFixed(3)})`;\n            ictx.arc(s.x, s.y, s.r, 0, Math.PI * 2);\n            ictx.fill();\n          }\n          requestAnimationFrame(drawInner);\n        }\n        resizeInner();\n        window.addEventListener(\"resize\", resizeInner, { passive: true });\n        requestAnimationFrame(drawInner);\n      })();\n\n      const EVENTS_2026 = (() => {\n        const pad = (n) => String(n).padStart(2, \"0\");\n        const out = [];\n        for (let m = 1; m <= 12; m++) {\n          const base = `2026-${pad(m)}-`;\n          out.push({ date: base + \"14\", type: \"full\" });\n          out.push({ date: base + \"07\", type: \"first\" });\n          out.push({ date: base + \"21\", type: \"last\" });\n          out.push({ date: base + \"29\", type: \"new\" });\n        }\n        out.push({ date: \"2026-03-03\", type: \"eclipse\", label: \"Total Lunar Eclipse\" });\n        out.push({ date: \"2026-08-28\", type: \"eclipse\", label: \"Partial Lunar Eclipse\" });\n        return out;\n      })();\n\n      const svgWrap = document.getElementById(\"svgWrap\");\n      const monthLayer = document.getElementById(\"monthLayer\");\n      const markerLayer = document.getElementById(\"markerLayer\");\n      const moonTip = document.getElementById(\"moonTip\");\n      const tipTitle = document.getElementById(\"tipTitle\");\n      const tipDate = document.getElementById(\"tipDate\");\n      const moonLegend = document.getElementById(\"moonLegend\");\n\n      const phaseMeta = {\n        full: { label: \"Full Moon\", cls: \"m-full\", r: 9.6 },\n        first: { label: \"First Quarter\", cls: \"m-first\", r: 8.6 },\n        last: { label: \"Last Quarter\", cls: \"m-last\", r: 8.6 },\n        new: { label: \"New Moon\", cls: \"m-new\", r: 8.2 },\n        eclipse: { label: \"Lunar Eclipse\", cls: \"m-eclipse\", r: 9.2 }\n      };\n\n      const mState = {\n        rot: 0,\n        dragging: false,\n        dragStartX: 0,\n        rotStart: 0,\n        filters: { full: true, first: true, last: true, new: true, eclipse: true }\n      };\n\n      function polar(cx, cy, r, ang) {\n        const a = ang - Math.PI \/ 2;\n        return { x: cx + r * Math.cos(a), y: cy + r * Math.sin(a) };\n      }\n\n      function angleForDate(iso) {\n        const d = new Date(iso + \"T00:00:00\");\n        const start = new Date(2026, 0, 1);\n        const doy = Math.floor((d - start) \/ 86400000);\n        return (doy \/ 365) * (Math.PI * 2);\n      }\n\n      function drawMonths() {\n        const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n        monthLayer.innerHTML = \"\";\n        const cx = 450, cy = 450;\n        const r0 = 350, r1 = 330;\n\n        for (let i = 0; i < 12; i++) {\n          const ang0 = (i \/ 12) * Math.PI * 2;\n          const ang1 = ((i + 1) \/ 12) * Math.PI * 2;\n          const p0 = polar(cx, cy, r0, ang0);\n          const p1 = polar(cx, cy, r1, ang0);\n          const line = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n          line.setAttribute(\"x1\", p0.x); line.setAttribute(\"y1\", p0.y);\n          line.setAttribute(\"x2\", p1.x); line.setAttribute(\"y2\", p1.y);\n          line.setAttribute(\"class\", \"moonTick\");\n          monthLayer.appendChild(line);\n\n          const mid = (ang0 + ang1) \/ 2;\n          const pl = polar(cx, cy, 372, mid);\n          const txt = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"text\");\n          txt.textContent = months[i].toUpperCase();\n          txt.setAttribute(\"x\", pl.x); txt.setAttribute(\"y\", pl.y);\n          txt.setAttribute(\"text-anchor\", \"middle\");\n          txt.setAttribute(\"dominant-baseline\", \"middle\");\n          txt.setAttribute(\"class\", \"moonLabel\");\n          txt.setAttribute(\"transform\", `rotate(${(mid * 180 \/ Math.PI)} ${pl.x} ${pl.y})`);\n          monthLayer.appendChild(txt);\n        }\n      }\n\n      function showTip(e, ev) {\n        const meta = phaseMeta[ev.type] || phaseMeta.full;\n        tipTitle.textContent = meta.label;\n        tipDate.textContent = ev.date + (ev.label ? \" \u2014 \" + ev.label : \"\");\n        moonTip.style.left = e.clientX + \"px\";\n        moonTip.style.top = e.clientY + \"px\";\n        moonTip.classList.add(\"on\");\n      }\n\n      function hideTip() { moonTip.classList.remove(\"on\"); }\n\n      function applyFilters() {\n        markerLayer.querySelectorAll(\".moonMarker\").forEach(m => {\n          m.setAttribute(\"aria-hidden\", mState.filters[m.dataset.type] ? \"false\" : \"true\");\n        });\n      }\n\n      function applyRotation() {\n        monthLayer.setAttribute(\"transform\", `rotate(${mState.rot} 450 450)`);\n        markerLayer.setAttribute(\"transform\", `rotate(${mState.rot} 450 450)`);\n      }\n\n      function buildMarkers() {\n        markerLayer.innerHTML = \"\";\n        EVENTS_2026.forEach(ev => {\n          const meta = phaseMeta[ev.type] || phaseMeta.full;\n          const ang = angleForDate(ev.date);\n          const p = polar(450, 450, 300, ang);\n\n          const g = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"g\");\n          g.setAttribute(\"class\", \"moonMarker\");\n          if (ev.type === \"full\") g.classList.add(\"is-full\");\n          if (ev.type === \"eclipse\") g.classList.add(\"is-blood\");\n          g.dataset.type = ev.type;\n\n          const c = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"circle\");\n          c.setAttribute(\"cx\", p.x); c.setAttribute(\"cy\", p.y); c.setAttribute(\"r\", meta.r);\n          c.setAttribute(\"class\", meta.cls);\n          g.appendChild(c);\n\n          if (ev.type === \"full\" || ev.type === \"eclipse\") {\n            \/\/ Inner decorative ring\n            const o = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"circle\");\n            o.setAttribute(\"cx\", p.x); o.setAttribute(\"cy\", p.y);\n            o.setAttribute(\"r\", meta.r + 6.2);\n            o.setAttribute(\"fill\", \"none\");\n            o.setAttribute(\"stroke\", \"rgba(255,255,255,.12)\");\n            o.setAttribute(\"stroke-width\", \"1\");\n            g.appendChild(o);\n\n            const h = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"circle\");\n            h.setAttribute(\"cx\", p.x); h.setAttribute(\"cy\", p.y); h.setAttribute(\"r\", meta.r + 12.5);\n            h.setAttribute(\"class\", \"halo\");\n            g.appendChild(h);\n          }\n\n          g.addEventListener(\"mousemove\", (e) => showTip(e, ev));\n          g.addEventListener(\"mouseleave\", hideTip);\n          g.addEventListener(\"click\", () => {\n            const msg = `Hello Louis Thai, I would like to inquire about the consultation on ${ev.date} (${meta.label}).`;\n            window.open(`${WHATSAPP_LINK}?text=${encodeURIComponent(msg)}`, \"_blank\");\n          });\n          markerLayer.appendChild(g);\n        });\n        applyFilters(); applyRotation();\n      }\n\n      svgWrap.addEventListener(\"pointerdown\", (e) => {\n        mState.dragging = true;\n        svgWrap.setPointerCapture(e.pointerId);\n        mState.dragStartX = e.clientX;\n        mState.rotStart = mState.rot;\n      });\n      svgWrap.addEventListener(\"pointermove\", (e) => {\n        if (!mState.dragging) return;\n        mState.rot = mState.rotStart + (e.clientX - mState.dragStartX) * 0.18;\n        applyRotation();\n      });\n      svgWrap.addEventListener(\"pointerup\", () => mState.dragging = false);\n\n      moonLegend.addEventListener(\"click\", (e) => {\n        const chip = e.target.closest(\".moonChip\");\n        if (!chip) return;\n        const key = chip.dataset.key;\n        const on = chip.dataset.on === \"1\";\n        chip.dataset.on = on ? \"0\" : \"1\";\n        mState.filters[key] = !on;\n        applyFilters();\n      });\n\n      document.getElementById(\"centerMoon\").addEventListener(\"click\", () => window.open(WHATSAPP_LINK, \"_blank\"));\n      document.getElementById(\"resetMoon\").addEventListener(\"click\", () => { mState.rot = 0; applyRotation(); });\n\n      let lastInteract = performance.now();\n      [\"pointermove\", \"touchstart\"].forEach(v => window.addEventListener(v, () => lastInteract = performance.now(), { passive: true }));\n      function autoRot(t) {\n        if (!mState.dragging && (t - lastInteract) > 2000) { mState.rot += 0.03; applyRotation(); }\n        requestAnimationFrame(autoRot);\n      }\n\n      drawMonths(); buildMarkers(); requestAnimationFrame(autoRot);\n    })();\n  <\/script>\n<\/body>\n\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Full Moon Premium Consultation | LOUIS THAI (Black Edition) LOUIS THAI Premium Consultation \ud83c\udf15 Full Moon Window \u5c0a\u4eab\u54a8\u8be2 \ud83c\udf15 \u6ee1\u6708\u9650\u5b9a\u65f6\u6bb5 Overview\u7b80\u4ecb Workflow\u6d41\u7a0b Important Notice\u91cd\u8981\u58f0\u660e WhatsAppWhatsApp Language\u8bed\u8a00 EN \ud83c\uddec\ud83c\udde7 \u4e2d\u6587 \ud83c\udde8\ud83c\uddf3 Full Moon \ud83c\udf15 Premium Consultation \u6ee1\u6708 \ud83c\udf15 \u5c0a\u4eab\u54a8\u8be2 Structured X Focused X ExtendedA quieter session during the Full Moon \ud83c\udf15 \u66f4\u7ed3\u6784\u5316 X \u66f4\u805a\u7126 X \u66f4\u6df1\u5165\u5728\u6ee1\u6708\u65f6\u6bb5 [&hellip;]<\/p>","protected":false},"author":3,"featured_media":8015,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","_joinchat":[],"footnotes":""},"class_list":["post-7994","page","type-page","status-publish","has-post-thumbnail","hentry","entry","has-media"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7994","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/comments?post=7994"}],"version-history":[{"count":19,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7994\/revisions"}],"predecessor-version":[{"id":8014,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7994\/revisions\/8014"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/media\/8015"}],"wp:attachment":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/media?parent=7994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}