{"product_id":"xo-chain-cz","title":"Timeless XO","description":"\u003cstyle\u003e\n  .vx-section,\n  .vx-modal-backdrop{\n    --vx-gold:#d4af37; --vx-gold-light:#f4e4a6;\n    --vx-text:#fff; --vx-text-muted:rgba(255,255,255,.90); --vx-text-subtle:rgba(255,255,255,.72);\n    --vx-border:rgba(255,255,255,.10); --vx-border-gold:rgba(212,175,55,.30);\n    --vx-radius:12px; --vx-radius-sm:8px; --vx-transition:.22s cubic-bezier(.4,0,.2,1);\n  }\n\n  .vx-section{\n    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,\"SF Pro Text\",\"Segoe UI\",Roboto,Arial,sans-serif;\n    font-size:14px; line-height:1.65; color:var(--vx-text);\n    background:transparent; padding:0 0 8px; margin:0 !important;\n    -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;\n  }\n  .vx-section *{box-sizing:border-box}\n  .vx-section \u003e :first-child{margin-top:0 !important}\n\n  .vx-body{font-size:13.5px; line-height:1.7; color:var(--vx-text-muted); margin:0}\n  .vx-body strong{color:#fff;font-weight:700}\n  .vx-caption{font-size:12.5px; line-height:1.55; color:var(--vx-text-subtle); margin:0}\n\n  .vx-link{color:var(--vx-gold); text-decoration:none; transition:opacity var(--vx-transition)}\n  .vx-link:hover{opacity:.85; text-decoration:underline}\n\n  .vx-badges{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:12px 0 14px}\n  .vx-badge{\n    position:relative; overflow:hidden;\n    display:inline-flex; align-items:center; gap:6px;\n    padding:7px 12px; border-radius:999px;\n    border:1px solid var(--vx-border-gold);\n    background:linear-gradient(135deg, rgba(212,175,55,.14) 0%, rgba(0,0,0,.78) 100%);\n    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);\n    font-size:10px; font-weight:650; text-transform:uppercase; letter-spacing:.08em;\n    color:var(--vx-text-muted); white-space:nowrap;\n    transition:transform var(--vx-transition), border-color var(--vx-transition), box-shadow var(--vx-transition);\n  }\n  .vx-badge:hover{transform:translateY(-1px); border-color:var(--vx-gold)}\n  .vx-badge svg{flex-shrink:0; width:12px; height:12px}\n  .vx-badge::after{\n    content:''; position:absolute; top:0; bottom:0; width:50%;\n    background:linear-gradient(120deg, transparent, rgba(255,255,255,.25), transparent);\n    transform:translateX(-150%); pointer-events:none;\n  }\n  .vx-badge:hover::after{animation:vx-sweep .6s ease-out}\n  @keyframes vx-sweep{to{transform:translateX(250%)}}\n\n  .vx-badge--action{\n    background:linear-gradient(135deg, var(--vx-gold) 0%, var(--vx-gold-light) 100%);\n    border-color:var(--vx-gold);\n    color:#000; font-weight:900; cursor:pointer;\n  }\n  .vx-badge--action:hover{transform:translateY(-2px); box-shadow:0 4px 16px rgba(212,175,55,.26)}\n  .vx-badge--action svg{stroke:#000}\n  .vx-badge--btn{appearance:none; -webkit-appearance:none; border:none; background:none}\n\n  .vx-accordion{border-top:1px solid var(--vx-border)}\n  .vx-accordion:last-of-type{border-bottom:1px solid var(--vx-border)}\n  .vx-accordion summary{\n    cursor:pointer; list-style:none;\n    display:flex; align-items:center; justify-content:space-between; gap:12px;\n    padding:16px 0; min-height:56px;\n    transition:color var(--vx-transition);\n    font-weight:900; letter-spacing:.02em; color:rgba(255,255,255,.92);\n  }\n  .vx-accordion summary::-webkit-details-marker{display:none}\n  .vx-accordion summary:hover{color:var(--vx-gold)}\n  .vx-accordion-chevron{\n    flex-shrink:0; width:20px; height:20px;\n    color:var(--vx-text-subtle);\n    transition:transform var(--vx-transition), color var(--vx-transition);\n  }\n  .vx-accordion[open] .vx-accordion-chevron{transform:rotate(180deg); color:var(--vx-gold)}\n  .vx-accordion-body{padding-bottom:18px}\n\n  .vx-features{display:grid; grid-template-columns:repeat(2,1fr); gap:16px 18px}\n  @media (max-width:640px){.vx-features{grid-template-columns:1fr; gap:14px}}\n  .vx-feature{display:flex; gap:12px}\n  .vx-feature-icon{\n    width:36px; height:36px; border-radius:50%;\n    background:linear-gradient(135deg, rgba(212,175,55,.16) 0%, rgba(0,0,0,.86) 100%);\n    border:1px solid var(--vx-border-gold);\n    display:flex; align-items:center; justify-content:center;\n    flex-shrink:0;\n  }\n  .vx-feature-icon svg{width:18px; height:18px; stroke:var(--vx-gold)}\n  .vx-feature-title{\n    font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.1em;\n    color:#fff; margin:0 0 4px;\n  }\n  .vx-feature-desc{font-size:12.5px; color:var(--vx-text-muted); line-height:1.55; margin:0}\n\n  .vx-specs{display:flex; flex-direction:column}\n  .vx-spec-row{\n    display:flex; justify-content:space-between; align-items:center; gap:16px;\n    padding:10px 12px; font-size:13px; border-radius:10px;\n  }\n  .vx-spec-row:nth-child(odd){background:rgba(255,255,255,.04)}\n  .vx-spec-label{color:var(--vx-text-subtle); font-weight:650}\n  .vx-spec-value{color:#fff; font-weight:800; text-align:right}\n\n  .vx-chain-options{display:flex; flex-direction:column; gap:12px; margin-bottom:10px}\n  .vx-chain-card{\n    display:flex; align-items:center; justify-content:space-between; gap:14px;\n    padding:14px 16px;\n    background:rgba(255,255,255,.045);\n    border:1px solid var(--vx-border);\n    border-radius:var(--vx-radius);\n    transition:transform var(--vx-transition), border-color var(--vx-transition), box-shadow var(--vx-transition);\n  }\n  .vx-chain-card:hover{transform:translateY(-1px); border-color:rgba(255,255,255,.20)}\n  .vx-chain-card--highlight{\n    border-color:var(--vx-border-gold);\n    background:linear-gradient(135deg, rgba(212,175,55,.10) 0%, rgba(0,0,0,.55) 100%);\n    box-shadow:0 10px 30px rgba(0,0,0,.35);\n  }\n  .vx-chain-info{display:flex; flex-direction:column; gap:3px}\n  .vx-chain-name{\n    font-size:12px; font-weight:900; color:#fff;\n    letter-spacing:.08em; text-transform:uppercase; margin:0;\n  }\n  .vx-chain-desc{font-size:12.5px; color:var(--vx-text-muted); margin:0}\n  .vx-tag{\n    flex:0 0 auto;\n    font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.12em;\n    padding:4px 9px; border-radius:999px;\n    background:rgba(255,255,255,.10);\n    border:1px solid rgba(255,255,255,.18);\n    color:#fff; white-space:nowrap;\n  }\n  .vx-tag--gold{background:linear-gradient(135deg, var(--vx-gold), var(--vx-gold-light)); border:none; color:#000}\n\n  .vx-faq{display:flex; flex-direction:column; gap:12px}\n  .vx-faq-item{padding:0 0 12px 0; border-bottom:1px solid rgba(255,255,255,.08)}\n  .vx-faq-item:last-child{border-bottom:none; padding-bottom:0}\n  .vx-faq-question{font-size:13px; font-weight:900; color:#fff; margin:0 0 4px}\n  .vx-faq-answer{font-size:13px; color:var(--vx-text-muted); margin:0; line-height:1.6}\n\n  .vx-payline{\n    margin-top:10px;\n    padding:14px 14px 12px;\n    border-radius:var(--vx-radius);\n    border:1px solid rgba(255,255,255,.10);\n    background:linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(255,255,255,.012) 100%);\n    position:relative; overflow:hidden;\n    box-shadow:0 10px 28px rgba(0,0,0,.45);\n  }\n  .vx-payline::before{\n    content:\"\"; position:absolute; inset:0;\n    background:radial-gradient(90% 160% at 0% 0%,\n      rgba(212,175,55,.22) 0%,\n      rgba(212,175,55,.08) 25%,\n      rgba(0,0,0,0) 60%);\n    opacity:.95; pointer-events:none;\n  }\n  .vx-payline-head{position:relative; display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:10px}\n  .vx-payline-title{\n    font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.16em;\n    color:rgba(255,255,255,.92);\n    display:flex; align-items:center; gap:8px;\n  }\n  .vx-payline-sub{font-size:12px; color:rgba(255,255,255,.68); white-space:nowrap}\n  .vx-payline-grid{position:relative; display:grid; grid-template-columns:1fr 1fr; gap:10px}\n  .vx-payitem{\n    border-radius:10px;\n    border:1px solid rgba(255,255,255,.10);\n    background:rgba(0,0,0,.35);\n    padding:10px 10px 9px;\n    display:flex; flex-direction:column; gap:4px;\n  }\n  .vx-paytag{font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.72)}\n  .vx-paytext{font-size:13px; font-weight:850; color:rgba(255,255,255,.92); line-height:1.2}\n  .vx-paynote{font-size:12px; color:rgba(255,255,255,.68); line-height:1.25}\n  .vx-paynote a{color:var(--vx-gold-light); text-decoration:underline; text-decoration-color:rgba(212,175,55,.45); text-underline-offset:2px}\n  @media (max-width:520px){\n    .vx-payline-grid{grid-template-columns:1fr}\n    .vx-payline-sub{white-space:normal}\n  }\n\n  .vx-contact-box{\n    padding:14px 16px;\n    background:rgba(255,255,255,.03);\n    border:1px solid var(--vx-border);\n    border-radius:var(--vx-radius);\n  }\n  .vx-contact-box p{margin:0; font-size:13px; color:var(--vx-text-muted); line-height:1.65}\n\n  html.vx-lock, body.vx-lock{overflow:hidden !important}\n  .vx-modal-backdrop{\n    position:fixed; inset:0;\n    display:flex; align-items:center; justify-content:center;\n    padding:18px;\n    background:rgba(0,0,0,.78);\n    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);\n    opacity:0; visibility:hidden; pointer-events:none;\n    z-index:999999;\n    transition:opacity .22s ease, visibility .22s ease;\n  }\n  .vx-modal-backdrop.is-open{opacity:1; visibility:visible; pointer-events:auto}\n  .vx-modal{\n    width:100%; max-width:440px;\n    background:linear-gradient(180deg,#151515 0%, #0a0a0a 100%);\n    border-radius:16px;\n    border:1px solid var(--vx-border-gold);\n    box-shadow:0 24px 80px rgba(0,0,0,.8);\n    padding:18px;\n    transform:translateY(8px) scale(.985);\n    transition:transform .22s ease;\n  }\n  .vx-modal-backdrop.is-open .vx-modal{transform:translateY(0) scale(1)}\n  .vx-modal-header{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px}\n  .vx-modal-kicker{font-size:9px; text-transform:uppercase; letter-spacing:.15em; color:var(--vx-gold); margin:0 0 4px; font-weight:900}\n  .vx-modal-heading{font-size:14px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; color:#fff; margin:0 0 2px}\n  .vx-modal-subhead{font-size:12px; color:var(--vx-text-subtle); margin:0}\n  .vx-modal-body{font-size:13px; line-height:1.6; color:var(--vx-text-muted); margin-bottom:14px}\n  .vx-modal-body p{margin:0 0 8px}\n  .vx-modal-body ul{margin:10px 0 0; padding-left:18px}\n  .vx-modal-body li{margin:6px 0}\n  .vx-modal-footer{display:flex; justify-content:flex-end; gap:10px}\n  .vx-modal-confirm{\n    padding:10px 18px;\n    border-radius:999px;\n    border:none;\n    background:linear-gradient(135deg, var(--vx-gold), var(--vx-gold-light));\n    color:#000;\n    font-size:11px;\n    font-weight:900;\n    text-transform:uppercase;\n    letter-spacing:.12em;\n    cursor:pointer;\n    transition:transform var(--vx-transition), box-shadow var(--vx-transition);\n  }\n  .vx-modal-confirm:hover{transform:translateY(-1px); box-shadow:0 4px 16px rgba(212,175,55,.35)}\n  @media (prefers-reduced-motion: reduce){\n    .vx-badge, .vx-modal, .vx-modal-backdrop, .vx-accordion-chevron{transition:none !important}\n    .vx-badge:hover::after{animation:none !important}\n  }\n\n  #vx-root.vx-instock .vx-po { display: none !important; }\n  #vx-root.vx-preorder .vx-is { display: none !important; }\n\n  .vx-po-urgency{\n    color:#e6c250;\n    font-weight:700;\n  }\n\u003c\/style\u003e\n\n\u003c!--\n  MODE TOGGLE\n  Use ONE of these classes on #vx-root:\n  - vx-preorder\n  - vx-instock\n\n  RECOMMENDED DEFAULTS:\n  - Keep data-show-limit=\"false\" unless the cap is real\n  - Keep both button texts as \"Add to Cart\"\n--\u003e\n\u003cdiv id=\"vx-root\" class=\"vx-preorder\" data-store-timezone=\"America\/Toronto\" data-batch-start-day=\"21\" data-cutoff-day=\"20\" data-ship-day=\"1\" data-show-limit=\"false\" data-batch-limit=\"10\" data-preorder-hero-text=\"Monthly batch release\" data-preorder-button-text=\"Add to Cart\" data-instock-button-text=\"Add to Cart\"\u003e\n  \u003cdiv class=\"vx-section\"\u003e\n    \u003cdiv style=\"margin:0;\"\u003e\n      \u003cp class=\"vx-body\" style=\"margin:0;\"\u003e\n        The everyday XO chain: high-sparkle \u003cstrong\u003e5A CZ\u003c\/strong\u003e, a \u003cstrong\u003e925 sterling silver base\u003c\/strong\u003e, and a clean look that hits under flash.\n        \u003cstrong class=\"vx-is\"\u003eShips in 1–3 business days (while stock lasts).\u003c\/strong\u003e\n        \u003cstrong class=\"vx-po js-vx-po-hero-cta\"\u003eMonthly batch release.\u003c\/strong\u003e\n      \u003c\/p\u003e\n\n      \u003cp class=\"vx-caption\" style=\"margin-top:8px;\"\u003e\n        \u003cspan class=\"vx-is\"\u003eLimited batch drops. When it sells out, it sells out.\u003c\/span\u003e\n        \u003cspan class=\"vx-po vx-po-urgency js-vx-po-urgency\"\u003eNext batch ships June 1. Order by May 20 to secure yours.\u003c\/span\u003e\n        \u003cem\u003eFan-inspired piece. Not affiliated with or endorsed by any artist or label.\u003c\/em\u003e\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"vx-badges\"\u003e\n      \u003cdiv class=\"vx-badge\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003e5A CZ\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"vx-badge\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003e925 Sterling Silver\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"vx-badge\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003ccircle cx=\"12\" cy=\"8\" r=\"6\"\u003e\u003c\/circle\u003e\n          \u003cpath d=\"M15.477 12.89 17 22l-5-3-5 3 1.523-9.11\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eRhodium \/ Gold Finish\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"vx-badge\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"M4 7h16\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"M6 7l1 14h10l1-14\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"M9 7V5a3 3 0 0 1 6 0v2\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eAnti-Tarnish\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"vx-badge vx-po\"\u003e\n        \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"M8 2v4\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"M16 2v4\"\u003e\u003c\/path\u003e\n          \u003crect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"\u003e\u003c\/rect\u003e\n          \u003cpath d=\"M3 10h18\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan class=\"js-vx-batch-badge\"\u003eNext batch ships June 1\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cbutton type=\"button\" class=\"vx-badge vx-badge--action vx-badge--btn\" data-vx-open=\"vxGuarantee_TimelessCZ\" aria-haspopup=\"dialog\"\u003e\n        \u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n        \u003cspan\u003eXO·TWOD Guarantee\u003c\/span\u003e\n      \u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003cdetails class=\"vx-accordion\"\u003e\n      \u003csummary\u003e\n        Why Choose Timeless XO?\n        \u003csvg class=\"vx-accordion-chevron\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n      \u003c\/summary\u003e\n      \u003cdiv class=\"vx-accordion-body\"\u003e\n        \u003cdiv class=\"vx-features\"\u003e\n          \u003cdiv class=\"vx-feature\"\u003e\n            \u003cdiv class=\"vx-feature-icon\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                \u003cpath d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003ch4 class=\"vx-feature-title\"\u003e5A CZ Sparkle\u003c\/h4\u003e\n              \u003cp class=\"vx-feature-desc\"\u003e5A stones for a bright, diamond-like look. Perfect for everyday wear.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-feature\"\u003e\n            \u003cdiv class=\"vx-feature-icon\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                \u003cpath d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003ch4 class=\"vx-feature-title\"\u003e925 Sterling Silver\u003c\/h4\u003e\n              \u003cp class=\"vx-feature-desc\"\u003eStamped “925”. Real jewelry metal, not a costume base.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-feature\"\u003e\n            \u003cdiv class=\"vx-feature-icon\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                \u003ccircle cx=\"12\" cy=\"12\" r=\"10\"\u003e\u003c\/circle\u003e\n                \u003cpath d=\"m9 12 2 2 4-4\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003ch4 class=\"vx-feature-title\"\u003eClean Finish\u003c\/h4\u003e\n              \u003cp class=\"vx-feature-desc\"\u003eRhodium or gold finish + protective coat for better everyday longevity.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-feature\"\u003e\n            \u003cdiv class=\"vx-feature-icon\"\u003e\n              \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                \u003cpath d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"\u003e\u003c\/path\u003e\n                \u003cpath d=\"M21 3v5h-5\"\u003e\u003c\/path\u003e\n              \u003c\/svg\u003e\n            \u003c\/div\u003e\n            \u003cdiv\u003e\n              \u003ch4 class=\"vx-feature-title\"\u003eEasy Daily Stack\u003c\/h4\u003e\n              \u003cp class=\"vx-feature-desc\"\u003eClean size that layers well and sits right with tees and hoodies.\u003c\/p\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails class=\"vx-accordion\"\u003e\n      \u003csummary\u003e\n        Chain Options\n        \u003csvg class=\"vx-accordion-chevron\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n      \u003c\/summary\u003e\n      \u003cdiv class=\"vx-accordion-body\"\u003e\n        \u003cdiv class=\"vx-chain-options\"\u003e\n          \u003cdiv class=\"vx-chain-card\"\u003e\n            \u003cdiv class=\"vx-chain-info\"\u003e\n              \u003cp class=\"vx-chain-name\"\u003eRope Chain 22″ - Stainless Steel\u003c\/p\u003e\n              \u003cp class=\"vx-chain-desc\"\u003eIncluded. Casual everyday look.\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cspan class=\"vx-tag\"\u003eIncluded\u003c\/span\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-chain-card vx-chain-card--highlight\"\u003e\n            \u003cdiv class=\"vx-chain-info\"\u003e\n              \u003cp class=\"vx-chain-name\"\u003eTennis Chain 22″ - 925 Silver (3mm)\u003c\/p\u003e\n              \u003cp class=\"vx-chain-desc\"\u003eCleaner, premium shine. The jewelry look.\u003c\/p\u003e\n            \u003c\/div\u003e\n            \u003cspan class=\"vx-tag vx-tag--gold\"\u003eUpgrade\u003c\/span\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"vx-caption\"\u003eRope = casual. Tennis = cleaner and more premium on camera.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails class=\"vx-accordion\"\u003e\n      \u003csummary\u003e\n        Product Specifications\n        \u003csvg class=\"vx-accordion-chevron\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n      \u003c\/summary\u003e\n      \u003cdiv class=\"vx-accordion-body\"\u003e\n        \u003cdiv class=\"vx-specs\"\u003e\n          \u003cdiv class=\"vx-spec-row\"\u003e\n\u003cspan class=\"vx-spec-label\"\u003ePendant Size\u003c\/span\u003e \u003cspan class=\"vx-spec-value\"\u003eApprox. 1.7\" × 2\" (no bail)\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"vx-spec-row\"\u003e\n\u003cspan class=\"vx-spec-label\"\u003eStones\u003c\/span\u003e \u003cspan class=\"vx-spec-value\"\u003e5A cubic zirconia\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"vx-spec-row\"\u003e\n\u003cspan class=\"vx-spec-label\"\u003ePendant Metal\u003c\/span\u003e \u003cspan class=\"vx-spec-value\"\u003e925 sterling silver, stamped “925”\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"vx-spec-row\"\u003e\n\u003cspan class=\"vx-spec-label\"\u003eFinish\u003c\/span\u003e \u003cspan class=\"vx-spec-value\"\u003eRhodium or gold finish + protective coat\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"vx-spec-row\"\u003e\n\u003cspan class=\"vx-spec-label\"\u003eChain Length\u003c\/span\u003e \u003cspan class=\"vx-spec-value\"\u003e22\" standard\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails class=\"vx-accordion\"\u003e\n      \u003csummary\u003e\n        FAQ\n        \u003csvg class=\"vx-accordion-chevron\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n      \u003c\/summary\u003e\n      \u003cdiv class=\"vx-accordion-body\"\u003e\n        \u003cdiv class=\"vx-faq\"\u003e\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eIs this XO chain real silver?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003eYes. The \u003cstrong\u003ependant\u003c\/strong\u003e is solid \u003cstrong\u003e925 sterling silver\u003c\/strong\u003e and stamped “925”. Choose the \u003cstrong\u003eTennis upgrade\u003c\/strong\u003e and the chain is 925 as well. The free Rope option is stainless.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eWill this chain turn my neck green?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003eNo green-neck energy. The core piece is \u003cstrong\u003e925 silver\u003c\/strong\u003e with a high-grade finish, built for daily wear. For best longevity, avoid showering or swimming in it.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eDoes it pass a diamond tester?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003eNo. \u003cstrong\u003e5A CZ\u003c\/strong\u003e is diamond-like, but it won’t test as diamond. Want a tester-friendly upgrade? \u003ca class=\"vx-link\" href=\"https:\/\/xo-twod.com\/products\/xo-chain-moissanite\" rel=\"noopener noreferrer\" target=\"_blank\"\u003eShop Moissanite\u003c\/a\u003e.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eHow long does shipping take?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003e\n              \u003cspan class=\"vx-is\"\u003e\n                \u003cstrong\u003eReady to ship\u003c\/strong\u003e - typically ships in \u003cstrong\u003e1–3 business days\u003c\/strong\u003e. \u003cstrong\u003eFree tracked shipping\u003c\/strong\u003e to US \u0026amp; Canada; worldwide options at checkout.\n              \u003c\/span\u003e\n              \u003cspan class=\"vx-po js-vx-po-shipping\"\u003e\n                \u003cstrong\u003eBatch release\u003c\/strong\u003e - this piece ships with our next monthly batch on \u003cstrong\u003eJune 1\u003c\/strong\u003e. Order by \u003cstrong\u003eMay 20\u003c\/strong\u003e. You’ll receive a confirmation email with your estimated ship date immediately after ordering. \u003cstrong\u003eFree tracked shipping\u003c\/strong\u003e to US \u0026amp; Canada; worldwide options at checkout.\n              \u003c\/span\u003e\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eNeed a payment plan?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003e\u003cstrong\u003eWant to split the payment?\u003c\/strong\u003e\u003c\/p\u003e\n            \u003cdiv aria-label=\"Installment payment options\" class=\"vx-payline\"\u003e\n              \u003cdiv class=\"vx-payline-head\"\u003e\n                \u003cdiv class=\"vx-payline-title\"\u003e\n                  \u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#d4af37\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                    \u003crect rx=\"3\" height=\"14\" width=\"20\" y=\"5\" x=\"2\"\u003e\u003c\/rect\u003e\n                    \u003cline y2=\"10\" x2=\"22\" y1=\"10\" x1=\"2\"\u003e\u003c\/line\u003e\n                    \u003cline y2=\"15\" x2=\"10\" y1=\"15\" x1=\"6\"\u003e\u003c\/line\u003e\n                  \u003c\/svg\u003e\n                  Installments\n                \u003c\/div\u003e\n                \u003cdiv class=\"vx-payline-sub\"\u003eSplit payments, keep it simple.\u003c\/div\u003e\n              \u003c\/div\u003e\n\n              \u003cdiv class=\"vx-payline-grid\"\u003e\n                \u003cdiv class=\"vx-payitem\"\u003e\n                  \u003cdiv class=\"vx-paytag\"\u003eCanada\u003c\/div\u003e\n                  \u003cdiv class=\"vx-paytext\"\u003eShop Pay\u003c\/div\u003e\n                  \u003cdiv class=\"vx-paynote\"\u003eInstallments at checkout, where available.\u003c\/div\u003e\n                \u003c\/div\u003e\n                \u003cdiv class=\"vx-payitem\"\u003e\n                  \u003cdiv class=\"vx-paytag\"\u003eInternational\u003c\/div\u003e\n                  \u003cdiv class=\"vx-paytext\"\u003eKlarna \/ Afterpay\u003c\/div\u003e\n                  \u003cdiv class=\"vx-paynote\"\u003eAvailable via \u003ca href=\"https:\/\/xotwodchains.etsy.com\" rel=\"noopener noreferrer\" target=\"_blank\"\u003eEtsy\u003c\/a\u003e.\u003c\/div\u003e\n                \u003c\/div\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item vx-po\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eWhy does this ship later?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer js-vx-po-why\"\u003e\n              This piece is released in small monthly batches. Order by \u003cstrong\u003eMay 20\u003c\/strong\u003e for the \u003cstrong\u003eJune 1\u003c\/strong\u003e shipment. If the batch fills early, ordering will pause until the next release.\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item vx-po\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eCan I cancel before it ships?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003eYes. \u003cstrong\u003eFull refund, no questions asked\u003c\/strong\u003e, any time before your piece ships. You’ll get an email the moment it ships with full tracking.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item vx-po\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eDon’t want to wait?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003eThe \u003ca class=\"vx-link\" href=\"\/products\/xo-chain-moissanite\"\u003eMoissanite Edition\u003c\/a\u003e is in stock and ships now. More fire, GRA certified, same XO design.\u003c\/p\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"vx-faq-item\"\u003e\n            \u003cp class=\"vx-faq-question\"\u003eWhat’s your return policy?\u003c\/p\u003e\n            \u003cp class=\"vx-faq-answer\"\u003e\n              \u003cspan class=\"vx-is\"\u003eReturns accepted within \u003cstrong\u003e7 days of delivery\u003c\/strong\u003e for \u003cstrong\u003eunused\u003c\/strong\u003e items in original packaging.\u003c\/span\u003e\n              \u003cspan class=\"vx-po\"\u003eOrders can be cancelled for a \u003cstrong\u003efull refund\u003c\/strong\u003e any time before the piece ships. Once shipped, standard policy applies: returns accepted within \u003cstrong\u003e7 days of delivery\u003c\/strong\u003e for \u003cstrong\u003eunused\u003c\/strong\u003e items in original packaging.\u003c\/span\u003e\n            \u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n\n    \u003cdetails class=\"vx-accordion\"\u003e\n      \u003csummary\u003e\n        Questions?\n        \u003csvg class=\"vx-accordion-chevron\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n          \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e\n      \u003c\/summary\u003e\n      \u003cdiv class=\"vx-accordion-body\"\u003e\n        \u003cdiv class=\"vx-contact-box\"\u003e\n          \u003cp\u003eNot sure which chain to choose? DM \u003ca href=\"https:\/\/instagram.com\/xo.twod.store\" rel=\"noopener noreferrer\" class=\"vx-link\" target=\"_blank\"\u003e@xo.twod.store\u003c\/a\u003e and we’ll help you pick.\u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/details\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"vx-modal-backdrop\" id=\"vxGuarantee_TimelessCZ\" aria-hidden=\"true\" role=\"dialog\"\u003e\n  \u003cdiv class=\"vx-modal\" role=\"document\" aria-modal=\"true\"\u003e\n    \u003cdiv class=\"vx-modal-header\"\u003e\n      \u003cdiv\u003e\n        \u003cp class=\"vx-modal-kicker\"\u003eXOTWOD Promise\u003c\/p\u003e\n        \u003ch4 class=\"vx-modal-heading\"\u003eXO·TWOD Guarantee\u003c\/h4\u003e\n        \u003cp class=\"vx-modal-subhead\"\u003eHow we stand behind Timeless XO\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"vx-modal-body\"\u003e\n      \u003cp\u003e\u003cstrong\u003eWe stand behind every piece we ship.\u003c\/strong\u003e\u003c\/p\u003e\n      \u003cp\u003eIf your item arrives with a \u003cstrong\u003emanufacturing defect\u003c\/strong\u003e, we’ll work with you to \u003cstrong\u003erepair or replace\u003c\/strong\u003e it under our policy.\u003c\/p\u003e\n      \u003cul\u003e\n        \u003cli\u003eCovers production faults such as settings, clasps, or major defects.\u003c\/li\u003e\n        \u003cli\u003eNormal wear, finish fading over time, accidental damage, or loss aren’t covered.\u003c\/li\u003e\n        \u003cli\u003eIf something feels off, message us with photos and we’ll review it.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"vx-modal-footer\"\u003e\n      \u003cbutton type=\"button\" class=\"vx-modal-confirm\" data-vx-close=\"vxGuarantee_TimelessCZ\"\u003eGot it\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function () {\n  const root = document.getElementById('vx-root');\n  if (!root) return;\n\n  const config = {\n    timeZone: root.dataset.storeTimezone || 'America\/Toronto',\n    batchStartDay: Number(root.dataset.batchStartDay || 21),\n    cutoffDay: Number(root.dataset.cutoffDay || 20),\n    shipDay: Number(root.dataset.shipDay || 1),\n    showLimit: root.dataset.showLimit === 'true',\n    batchLimit: Number(root.dataset.batchLimit || 0),\n    preorderHeroText: root.dataset.preorderHeroText || 'Monthly batch release',\n    preorderButtonText: root.dataset.preorderButtonText || 'Add to Cart',\n    instockButtonText: root.dataset.instockButtonText || 'Add to Cart'\n  };\n\n  const isPreorder = root.classList.contains('vx-preorder');\n\n  function getTodayPartsInZone(timeZone) {\n    const parts = new Intl.DateTimeFormat('en-CA', {\n      timeZone,\n      year: 'numeric',\n      month: 'numeric',\n      day: 'numeric'\n    }).formatToParts(new Date());\n\n    const map = {};\n    parts.forEach(part =\u003e {\n      if (part.type !== 'literal') map[part.type] = part.value;\n    });\n\n    return {\n      year: Number(map.year),\n      monthIndex: Number(map.month) - 1,\n      day: Number(map.day)\n    };\n  }\n\n  function addMonths(year, monthIndex, delta) {\n    const d = new Date(Date.UTC(year, monthIndex + delta, 1, 12));\n    return {\n      year: d.getUTCFullYear(),\n      monthIndex: d.getUTCMonth()\n    };\n  }\n\n  function formatMonthDay(year, monthIndex, day, timeZone) {\n    const dt = new Date(Date.UTC(year, monthIndex, day, 12));\n    return new Intl.DateTimeFormat('en-US', {\n      timeZone,\n      month: 'long',\n      day: 'numeric'\n    }).format(dt);\n  }\n\n  function getBatchDates() {\n    const today = getTodayPartsInZone(config.timeZone);\n\n    let cutoffBase;\n    let shipBase;\n\n    if (today.day \u003e= config.batchStartDay) {\n      cutoffBase = addMonths(today.year, today.monthIndex, 1);\n      shipBase = addMonths(today.year, today.monthIndex, 2);\n    } else {\n      cutoffBase = { year: today.year, monthIndex: today.monthIndex };\n      shipBase = addMonths(today.year, today.monthIndex, 1);\n    }\n\n    return {\n      cutoff: {\n        year: cutoffBase.year,\n        monthIndex: cutoffBase.monthIndex,\n        day: config.cutoffDay\n      },\n      ship: {\n        year: shipBase.year,\n        monthIndex: shipBase.monthIndex,\n        day: config.shipDay\n      }\n    };\n  }\n\n  function setText(selector, text) {\n    root.querySelectorAll(selector).forEach(el =\u003e {\n      el.textContent = text;\n    });\n  }\n\n  function setHtml(selector, html) {\n    root.querySelectorAll(selector).forEach(el =\u003e {\n      el.innerHTML = html;\n    });\n  }\n\n  function normalizeSentence(text) {\n    const trimmed = (text || '').trim();\n    if (!trimmed) return '';\n    return \/[.!?]$\/.test(trimmed) ? trimmed : trimmed + '.';\n  }\n\n  function updateProductButtons(text) {\n    const selectors = [\n      'form[action*=\"\/cart\/add\"] button[type=\"submit\"]',\n      'form[action*=\"\/cart\/add\"] [name=\"add\"]',\n      'button[name=\"add\"]',\n      '[data-add-to-cart]',\n      '[data-product-form] button[type=\"submit\"]',\n      '.shopify-payment-button__button--unbranded'\n    ];\n\n    const seen = new Set();\n\n    document.querySelectorAll(selectors.join(',')).forEach(el =\u003e {\n      if (seen.has(el)) return;\n      seen.add(el);\n\n      const labelTarget =\n        el.querySelector('span') ||\n        el.querySelector('.btn__text') ||\n        el;\n\n      if (labelTarget) {\n        labelTarget.textContent = text;\n      }\n    });\n  }\n\n  function applyButtonTextRepeatedly(text) {\n    updateProductButtons(text);\n\n    const observer = new MutationObserver(() =\u003e {\n      updateProductButtons(text);\n    });\n\n    observer.observe(document.body, {\n      childList: true,\n      subtree: true\n    });\n\n    setTimeout(() =\u003e observer.disconnect(), 8000);\n  }\n\n  if (isPreorder) {\n    const { cutoff, ship } = getBatchDates();\n    const cutoffText = formatMonthDay(cutoff.year, cutoff.monthIndex, cutoff.day, config.timeZone);\n    const shipText = formatMonthDay(ship.year, ship.monthIndex, ship.day, config.timeZone);\n\n    let urgencyText = `Next batch ships ${shipText}. Order by ${cutoffText} to secure yours.`;\n\n    if (config.showLimit \u0026\u0026 config.batchLimit \u003e 0) {\n      urgencyText += ` Small batch, up to ${config.batchLimit} pieces.`;\n    }\n\n    setText('.js-vx-po-hero-cta', normalizeSentence(config.preorderHeroText));\n    setText('.js-vx-po-urgency', urgencyText);\n    setText('.js-vx-batch-badge', `Next batch ships ${shipText}`);\n\n    setHtml(\n      '.js-vx-po-shipping',\n      `\u003cstrong\u003eBatch release\u003c\/strong\u003e - this piece ships with our next monthly batch on \u003cstrong\u003e${shipText}\u003c\/strong\u003e. Order by \u003cstrong\u003e${cutoffText}\u003c\/strong\u003e. You’ll receive a confirmation email with your estimated ship date immediately after ordering. \u003cstrong\u003eFree tracked shipping\u003c\/strong\u003e to US \u0026amp; Canada; worldwide options at checkout.`\n    );\n\n    setHtml(\n      '.js-vx-po-why',\n      `This piece is released in small monthly batches. Order by \u003cstrong\u003e${cutoffText}\u003c\/strong\u003e for the \u003cstrong\u003e${shipText}\u003c\/strong\u003e shipment. If the batch fills early, ordering will pause until the next release.`\n    );\n\n    applyButtonTextRepeatedly(config.preorderButtonText);\n  } else {\n    applyButtonTextRepeatedly(config.instockButtonText);\n  }\n\n  function openModal(id) {\n    const modal = document.getElementById(id);\n    if (!modal) return;\n    modal.classList.add('is-open');\n    modal.setAttribute('aria-hidden', 'false');\n    document.documentElement.classList.add('vx-lock');\n    document.body.classList.add('vx-lock');\n  }\n\n  function closeModal(id) {\n    const modal = document.getElementById(id);\n    if (!modal) return;\n    modal.classList.remove('is-open');\n    modal.setAttribute('aria-hidden', 'true');\n\n    const anyOpen = document.querySelector('.vx-modal-backdrop.is-open');\n    if (!anyOpen) {\n      document.documentElement.classList.remove('vx-lock');\n      document.body.classList.remove('vx-lock');\n    }\n  }\n\n  document.addEventListener('click', function (event) {\n    const openBtn = event.target.closest('[data-vx-open]');\n    if (openBtn) {\n      openModal(openBtn.getAttribute('data-vx-open'));\n      return;\n    }\n\n    const closeBtn = event.target.closest('[data-vx-close]');\n    if (closeBtn) {\n      closeModal(closeBtn.getAttribute('data-vx-close'));\n      return;\n    }\n\n    if (event.target.classList.contains('vx-modal-backdrop')) {\n      closeModal(event.target.id);\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    if (event.key !== 'Escape') return;\n    document.querySelectorAll('.vx-modal-backdrop.is-open').forEach(modal =\u003e {\n      closeModal(modal.id);\n    });\n  });\n})();\n\u003c\/script\u003e","brand":"XOTWOD","offers":[{"title":"Pendant Only (+FREE Rope Chain)","offer_id":50428230304055,"sku":"51","price":194.0,"currency_code":"USD","in_stock":true},{"title":"Tennis Chain (3mm 22\")","offer_id":51366869664055,"sku":null,"price":241.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0924\/3344\/9271\/files\/XO_Chain_XOTWOD_XO_The_Weeknd_Necklace_The_Weeknd_Merch_XO_Chains_XO_Chain_XO_Pendant.png?v=1767055920","url":"https:\/\/xo-twod.com\/products\/xo-chain-cz","provider":"XOTWOD","version":"1.0","type":"link"}