{"title":"Music Catalog","description":"","products":[{"product_id":"starborne-digital-album","title":"STARBORNE - Digital Album","description":"\u003cp\u003eThe first EP \"STARBORNE\" digital album has arrived!\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"lightjourner-product-player\"\u003e\n  \u003ch2 style=\"text-align:center; margin:40px 0 20px; color:#111827; font-size:1.8rem;\"\u003e\n    💫 Preview the Full Album 🎧\n  \u003c\/h2\u003e\n\u003cp style=\"text-align: center;\"\u003ePress play to begin\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n  \n  \u003cul id=\"track-list\" style=\"list-style:none; padding:0; max-width:800px; margin:0 auto 30px;\"\u003e\u003c\/ul\u003e\n\n  \u003cdiv id=\"lightjourner-player\" class=\"amazing-bar-player\"\u003e\n    \u003cdiv class=\"player-bar\"\u003e\n      \u003cbutton id=\"prev-btn\" class=\"player-btn\"\u003e⏮\u003c\/button\u003e\n      \u003cbutton id=\"play-pause-btn\" class=\"player-btn play\"\u003e▶\u003c\/button\u003e\n      \u003cbutton id=\"next-btn\" class=\"player-btn\"\u003e⏭\u003c\/button\u003e\n      \u003cdiv class=\"track-info\"\u003e\n        \u003cdiv id=\"track-title\" class=\"track-title\"\u003eLoading track...\u003c\/div\u003e\n        \u003cdiv id=\"track-artist\" class=\"track-artist\"\u003eLightJourner\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"progress-container\"\u003e\n        \u003cspan id=\"current-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n        \u003cprogress id=\"progress-bar\" class=\"progress-bar\" value=\"0\" max=\"100\"\u003e\u003c\/progress\u003e\n        \u003cspan id=\"total-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003caudio id=\"audio-player\" preload=\"metadata\"\u003e\u003c\/audio\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .amazing-bar-player { margin: 0 auto; max-width: 1000px; }\n  .player-bar { background:#111827; border-radius:9999px; padding:14px 24px; display:flex; align-items:center; gap:18px; box-shadow:0 10px 25px -5px rgb(0 0 0 \/ 0.3); color:white; }\n  .player-btn { background:none; border:none; color:#fbbf24; font-size:28px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; }\n  .player-btn:hover { color:#fefce8; transform:scale(1.15); }\n  .track-info { flex:1; min-width:0; }\n  .track-title { font-weight:600; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n  .track-artist { font-size:13px; opacity:0.75; }\n  .progress-container { flex:2; display:flex; align-items:center; gap:12px; }\n  \n  .progress-bar {\n    flex: 1; height: 14px; appearance: none; background: #374151; border-radius: 9999px; overflow: hidden;\n  }\n  .progress-bar::-webkit-progress-bar { background: #374151; }\n  .progress-bar::-webkit-progress-value { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  .progress-bar::-moz-progress-bar { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  \n  .time { font-size:13px; font-family:monospace; min-width:40px; }\n  .lightjourner-product-player ul li { padding:16px 20px; margin-bottom:6px; background:#f8fafc; border-radius:12px; cursor:pointer; display:flex; align-items:center; gap:16px; transition:all 0.2s; }\n  .lightjourner-product-player ul li:hover { background:#f1f5f9; }\n  .lightjourner-product-player ul li.active { background:#111827; color:white; }\n  .lightjourner-product-player ul li span.track-number { font-weight:700; width:28px; font-size:1.1rem; }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  function initLightjournerPlayer() {\n    const playlist = [\n      { title: \"STARBREATH\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/1.STARBREATH_PREVIEW.mp3?v=1775627876\" },\n      { title: \"STARFALL\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/2.STARFALL_PREVIEW.mp3?v=1775628485\" },\n      { title: \"STARSTATIC\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/3.STARSTATIC_PREVIEW.mp3?v=1775628505\" },\n      { title: \"STARTORN\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/4.STARTORN_PREVIEW.mp3?v=1775628914\" },\n      { title: \"STARHELD\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/5.STARHELD_PREVIEW.mp3?v=1775629573\" },\n      { title: \"STARBURST\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/6.STARBURST_PREVIEW.mp3?v=1775629587\" },\n      { title: \"STARJOINED\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/7.STARJOINED_PREVIEW.mp3?v=1775629602\" }\n    ];\n\n    const audio = document.getElementById('audio-player');\n    const progressBar = document.getElementById('progress-bar');\n    if (!audio || !progressBar) return false;\n\n    const playPauseBtn = document.getElementById('play-pause-btn');\n    const prevBtn = document.getElementById('prev-btn');\n    const nextBtn = document.getElementById('next-btn');\n    const titleEl = document.getElementById('track-title');\n    const currentTimeEl = document.getElementById('current-time');\n    const totalTimeEl = document.getElementById('total-time');\n    const trackListEl = document.getElementById('track-list');\n\n    let currentTrack = 0;\n    let progressInterval = null;\n\n    function loadTrack(index) {\n      currentTrack = index;\n      audio.src = playlist[index].url;\n      titleEl.textContent = `${playlist[index].title} — ${playlist[index].artist}`;\n      renderPlaylist();\n    }\n\n    function renderPlaylist() {\n      trackListEl.innerHTML = '';\n      playlist.forEach((track, index) =\u003e {\n        const li = document.createElement('li');\n        li.className = index === currentTrack ? 'active' : '';\n        li.innerHTML = `\u003cspan class=\"track-number\"\u003e${index + 1}\u003c\/span\u003e\u003cdiv style=\"flex:1\"\u003e\u003cstrong\u003e${track.title}\u003c\/strong\u003e\u003cbr\u003e\u003csmall\u003e${track.artist}\u003c\/small\u003e\u003c\/div\u003e`;\n        li.addEventListener('click', () =\u003e { loadTrack(index); audio.play(); playPauseBtn.innerHTML = '❚❚'; });\n        trackListEl.appendChild(li);\n      });\n    }\n\n    function updateProgress() {\n      if (!audio.duration) return;\n      const percent = (audio.currentTime \/ audio.duration) * 100;\n      progressBar.value = percent;\n      currentTimeEl.textContent = formatTime(audio.currentTime);\n      totalTimeEl.textContent = formatTime(audio.duration);\n    }\n\n    function formatTime(seconds) {\n      const min = Math.floor(seconds \/ 60);\n      const sec = Math.floor(seconds % 60);\n      return `${min}:${sec \u003c 10 ? '0' : ''}${sec}`;\n    }\n\n    function startProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n      progressInterval = setInterval(updateProgress, 200);\n    }\n\n    function stopProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n    }\n\n    function playPause() {\n      if (audio.paused) {\n        audio.play();\n        playPauseBtn.innerHTML = '❚❚';\n        startProgress();\n      } else {\n        audio.pause();\n        playPauseBtn.innerHTML = '▶';\n        stopProgress();\n      }\n    }\n\n    progressBar.addEventListener('click', e =\u003e {\n      const rect = progressBar.getBoundingClientRect();\n      const pos = (e.clientX - rect.left) \/ rect.width;\n      audio.currentTime = pos * audio.duration;\n    });\n\n    playPauseBtn.addEventListener('click', playPause);\n    prevBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack - 1 + playlist.length) % playlist.length; loadTrack(currentTrack); audio.play(); });\n    nextBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack + 1) % playlist.length; loadTrack(currentTrack); audio.play(); });\n\n    audio.onended = () =\u003e {\n      currentTrack = (currentTrack + 1) % playlist.length;\n      loadTrack(currentTrack);\n      audio.play();\n    };\n\n    loadTrack(0);\n    return true;\n  }\n\n  let attempts = 0;\n  const interval = setInterval(() =\u003e {\n    attempts++;\n    if (initLightjournerPlayer() || attempts \u003e= 30) clearInterval(interval);\n  }, 200);\n\u003c\/script\u003e\n","brand":"LightJourner ","offers":[{"title":"Default Title","offer_id":48758491119845,"sku":null,"price":9.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/starbornedressfinal_upscayl_4x_upscayl-standard-4x_abf07f07-2410-479f-8bda-bc5392de8a51.png?v=1775826693"},{"product_id":"christ-is-king-digital-album","title":"CHRIST IS KING - Digital Album","description":"\u003cp\u003eThe first classical Christian hymns collection  \"CHRIST IS KING\" digital album has arrived!\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"lightjourner-product-player\"\u003e\n  \u003ch2 style=\"text-align:center; margin:40px 0 20px; color:#111827; font-size:1.8rem;\"\u003e\n    💫 Preview the Full Album 🎧\n  \u003c\/h2\u003e\n\u003cp style=\"text-align: center;\"\u003ePress play to begin\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n  \n  \u003cul id=\"track-list\" style=\"list-style:none; padding:0; max-width:800px; margin:0 auto 30px;\"\u003e\u003c\/ul\u003e\n\n  \u003cdiv id=\"lightjourner-player\" class=\"amazing-bar-player\"\u003e\n    \u003cdiv class=\"player-bar\"\u003e\n      \u003cbutton id=\"prev-btn\" class=\"player-btn\"\u003e⏮\u003c\/button\u003e\n      \u003cbutton id=\"play-pause-btn\" class=\"player-btn play\"\u003e▶\u003c\/button\u003e\n      \u003cbutton id=\"next-btn\" class=\"player-btn\"\u003e⏭\u003c\/button\u003e\n      \u003cdiv class=\"track-info\"\u003e\n        \u003cdiv id=\"track-title\" class=\"track-title\"\u003eLoading track...\u003c\/div\u003e\n        \u003cdiv id=\"track-artist\" class=\"track-artist\"\u003eLightJourner\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"progress-container\"\u003e\n        \u003cspan id=\"current-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n        \u003cprogress id=\"progress-bar\" class=\"progress-bar\" value=\"0\" max=\"100\"\u003e\u003c\/progress\u003e\n        \u003cspan id=\"total-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003caudio id=\"audio-player\" preload=\"metadata\"\u003e\u003c\/audio\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .amazing-bar-player { margin: 0 auto; max-width: 1000px; }\n  .player-bar { background:#111827; border-radius:9999px; padding:14px 24px; display:flex; align-items:center; gap:18px; box-shadow:0 10px 25px -5px rgb(0 0 0 \/ 0.3); color:white; }\n  .player-btn { background:none; border:none; color:#fbbf24; font-size:28px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; }\n  .player-btn:hover { color:#fefce8; transform:scale(1.15); }\n  .track-info { flex:1; min-width:0; }\n  .track-title { font-weight:600; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n  .track-artist { font-size:13px; opacity:0.75; }\n  .progress-container { flex:2; display:flex; align-items:center; gap:12px; }\n  \n  .progress-bar {\n    flex: 1; height: 14px; appearance: none; background: #374151; border-radius: 9999px; overflow: hidden;\n  }\n  .progress-bar::-webkit-progress-bar { background: #374151; }\n  .progress-bar::-webkit-progress-value { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  .progress-bar::-moz-progress-bar { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  \n  .time { font-size:13px; font-family:monospace; min-width:40px; }\n  .lightjourner-product-player ul li { padding:16px 20px; margin-bottom:6px; background:#f8fafc; border-radius:12px; cursor:pointer; display:flex; align-items:center; gap:16px; transition:all 0.2s; }\n  .lightjourner-product-player ul li:hover { background:#f1f5f9; }\n  .lightjourner-product-player ul li.active { background:#111827; color:white; }\n  .lightjourner-product-player ul li span.track-number { font-weight:700; width:28px; font-size:1.1rem; }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  function initLightjournerPlayer() {\n    const playlist = [\n      { title: \"Angels We Have Heard on High\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_1._Angels_We_Have_Heard_on_High_-_Preview.mp3?v=1775704655\" },\n      { title: \"Angels from the Realms of Glory\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_2._Angels_From_the_Realms_of_Glory_-_Preview.mp3?v=1775704694\" },\n      { title: \"We Three Kings\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_3._We_Three_Kings_-_Preview.mp3?v=1775704700\" },\n      { title: \"Auld Lang Syne\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_4._Auld_Lang_Syne_-_Preview.mp3?v=1775704729\" },\n      { title: \"The First Noel\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_5._The_First_Noel_-_Preview.mp3?v=1775704737\" },\n      { title: \"Away in a Manger\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_6._Away_in_a_Manger_-_Preview.mp3?v=1775704744\" },\n      { title: \"Coventry Carol\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_7._Coventry_Carol_-_Preview.mp3?v=1775704751\" },\n      { title: \"Silent Night\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_8._Silent_Night_-_Preview.mp3?v=1775704759\" },\n      { title: \"O Come All Ye Faithful\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_9._O_Come_All_Ye_Faithful_-_Preview.mp3?v=1775704768\" },\n      { title: \"O Holy Night\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_10._O_Holy_Night_-_Preview.mp3?v=1775704779\" },\n      { title: \"Joy to the World\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_11._Joy_to_the_World_-_Preview.mp3?v=1775704785\" },\n      { title: \"Once in Royal Davids City\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_12._Once_in_Royal_Davids_City_-_Preview.mp3?v=1775704793\" },\n      { title: \"Christmas Bells\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/LJ_Christ_is_King_13._Christmas_Bells_-_Preview.mp3?v=1775704802\" }\n    ];\n\n    const audio = document.getElementById('audio-player');\n    const progressBar = document.getElementById('progress-bar');\n    if (!audio || !progressBar) return false;\n\n    const playPauseBtn = document.getElementById('play-pause-btn');\n    const prevBtn = document.getElementById('prev-btn');\n    const nextBtn = document.getElementById('next-btn');\n    const titleEl = document.getElementById('track-title');\n    const currentTimeEl = document.getElementById('current-time');\n    const totalTimeEl = document.getElementById('total-time');\n    const trackListEl = document.getElementById('track-list');\n\n    let currentTrack = 0;\n    let progressInterval = null;\n\n    function loadTrack(index) {\n      currentTrack = index;\n      audio.src = playlist[index].url;\n      titleEl.textContent = `${playlist[index].title} — ${playlist[index].artist}`;\n      renderPlaylist();\n    }\n\n    function renderPlaylist() {\n      trackListEl.innerHTML = '';\n      playlist.forEach((track, index) =\u003e {\n        const li = document.createElement('li');\n        li.className = index === currentTrack ? 'active' : '';\n        li.innerHTML = `\u003cspan class=\"track-number\"\u003e${index + 1}\u003c\/span\u003e\u003cdiv style=\"flex:1\"\u003e\u003cstrong\u003e${track.title}\u003c\/strong\u003e\u003cbr\u003e\u003csmall\u003e${track.artist}\u003c\/small\u003e\u003c\/div\u003e`;\n        li.addEventListener('click', () =\u003e { loadTrack(index); audio.play(); playPauseBtn.innerHTML = '❚❚'; });\n        trackListEl.appendChild(li);\n      });\n    }\n\n    function updateProgress() {\n      if (!audio.duration) return;\n      const percent = (audio.currentTime \/ audio.duration) * 100;\n      progressBar.value = percent;\n      currentTimeEl.textContent = formatTime(audio.currentTime);\n      totalTimeEl.textContent = formatTime(audio.duration);\n    }\n\n    function formatTime(seconds) {\n      const min = Math.floor(seconds \/ 60);\n      const sec = Math.floor(seconds % 60);\n      return `${min}:${sec \u003c 10 ? '0' : ''}${sec}`;\n    }\n\n    function startProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n      progressInterval = setInterval(updateProgress, 200);\n    }\n\n    function stopProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n    }\n\n    function playPause() {\n      if (audio.paused) {\n        audio.play();\n        playPauseBtn.innerHTML = '❚❚';\n        startProgress();\n      } else {\n        audio.pause();\n        playPauseBtn.innerHTML = '▶';\n        stopProgress();\n      }\n    }\n\n    progressBar.addEventListener('click', e =\u003e {\n      const rect = progressBar.getBoundingClientRect();\n      const pos = (e.clientX - rect.left) \/ rect.width;\n      audio.currentTime = pos * audio.duration;\n    });\n\n    playPauseBtn.addEventListener('click', playPause);\n    prevBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack - 1 + playlist.length) % playlist.length; loadTrack(currentTrack); audio.play(); });\n    nextBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack + 1) % playlist.length; loadTrack(currentTrack); audio.play(); });\n\n    audio.onended = () =\u003e {\n      currentTrack = (currentTrack + 1) % playlist.length;\n      loadTrack(currentTrack);\n      audio.play();\n    };\n\n    loadTrack(0);\n    return true;\n  }\n\n  let attempts = 0;\n  const interval = setInterval(() =\u003e {\n    attempts++;\n    if (initLightjournerPlayer() || attempts \u003e= 30) clearInterval(interval);\n  }, 200);\n\u003c\/script\u003e\n\n","brand":"LightJourner","offers":[{"title":"Default Title","offer_id":48763159118053,"sku":null,"price":9.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/silence_j_--ar_11_--v_7_18d1ced4-ed61-4896-b83f-7ec88069974a.png?v=1775697182"},{"product_id":"eternities-digital-album","title":"ETERNITIES - Digital Album","description":"\u003cp\u003eThe second LightJourner album \"ETERNITIES\" digital album has arrived!\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"lightjourner-product-player\"\u003e\n  \u003ch2 style=\"text-align:center; margin:40px 0 20px; color:#111827; font-size:1.8rem;\"\u003e\n    💫 Preview the Full Album 🎧\n  \u003c\/h2\u003e\n\u003cp style=\"text-align: center;\"\u003ePress play to begin\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e\n  \n  \u003cul id=\"track-list\" style=\"list-style:none; padding:0; max-width:800px; margin:0 auto 30px;\"\u003e\u003c\/ul\u003e\n\n  \u003cdiv id=\"lightjourner-player\" class=\"amazing-bar-player\"\u003e\n    \u003cdiv class=\"player-bar\"\u003e\n      \u003cbutton id=\"prev-btn\" class=\"player-btn\"\u003e⏮\u003c\/button\u003e\n      \u003cbutton id=\"play-pause-btn\" class=\"player-btn play\"\u003e▶\u003c\/button\u003e\n      \u003cbutton id=\"next-btn\" class=\"player-btn\"\u003e⏭\u003c\/button\u003e\n      \u003cdiv class=\"track-info\"\u003e\n        \u003cdiv id=\"track-title\" class=\"track-title\"\u003eLoading track...\u003c\/div\u003e\n        \u003cdiv id=\"track-artist\" class=\"track-artist\"\u003eLightJourner\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"progress-container\"\u003e\n        \u003cspan id=\"current-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n        \u003cprogress id=\"progress-bar\" class=\"progress-bar\" value=\"0\" max=\"100\"\u003e\u003c\/progress\u003e\n        \u003cspan id=\"total-time\" class=\"time\"\u003e0:00\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003caudio id=\"audio-player\" preload=\"metadata\"\u003e\u003c\/audio\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .amazing-bar-player { margin: 0 auto; max-width: 1000px; }\n  .player-bar { background:#111827; border-radius:9999px; padding:14px 24px; display:flex; align-items:center; gap:18px; box-shadow:0 10px 25px -5px rgb(0 0 0 \/ 0.3); color:white; }\n  .player-btn { background:none; border:none; color:#fbbf24; font-size:28px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; }\n  .player-btn:hover { color:#fefce8; transform:scale(1.15); }\n  .track-info { flex:1; min-width:0; }\n  .track-title { font-weight:600; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n  .track-artist { font-size:13px; opacity:0.75; }\n  .progress-container { flex:2; display:flex; align-items:center; gap:12px; }\n  \n  .progress-bar {\n    flex: 1; height: 14px; appearance: none; background: #374151; border-radius: 9999px; overflow: hidden;\n  }\n  .progress-bar::-webkit-progress-bar { background: #374151; }\n  .progress-bar::-webkit-progress-value { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  .progress-bar::-moz-progress-bar { background: #fbbf24; box-shadow: 0 0 15px 5px #fbbf24; }\n  \n  .time { font-size:13px; font-family:monospace; min-width:40px; }\n  .lightjourner-product-player ul li { padding:16px 20px; margin-bottom:6px; background:#f8fafc; border-radius:12px; cursor:pointer; display:flex; align-items:center; gap:16px; transition:all 0.2s; }\n  .lightjourner-product-player ul li:hover { background:#f1f5f9; }\n  .lightjourner-product-player ul li.active { background:#111827; color:white; }\n  .lightjourner-product-player ul li span.track-number { font-weight:700; width:28px; font-size:1.1rem; }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  function initLightjournerPlayer() {\n    const playlist = [\n      { title: \"STAND\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_1._STAND_-_Preview.mp3?v=1776692082\" },\n      { title: \"DRIFTING\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_2._DRIFTING_-_Preview.mp3?v=1776692093\" },\n      { title: \"DEPTHS\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_3._DEPTHS_-_Preview.mp3?v=1776692103\" },\n      { title: \"LATENT\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_4._LATENT_-_Preview.mp3?v=1776692119\" },\n      { title: \"SOULATES\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_5._SOULATES_-_Preview.mp3?v=1776692129\" },\n      { title: \"THRILL\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_6._THRILL_-_Preview.mp3?v=1776692220\" },\n      { title: \"ENDLESS\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_7._ENDLESS_-_Preview.mp3?v=1776692232\" },\n      { title: \"TIMELESS\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_8._TIMELESS_-_Preview.mp3?v=1776692247\" },\n      { title: \"Bonus - DEPTHS - LIVE\",      artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_3._DEPTHS_LIVE_-_Preview.mp3?v=1776692270\" },\n      { title: \"Bonus - LATENT - ACOUSTIC\",     artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_4._LATENT_ACOUSTIC_-_Preview.mp3?v=1776692279\" },\n      { title: \"Bonus - THRILL - LIVE\",    artist: \"LightJourner\", url: \"https:\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/ET_6._THRILL_LIVE_-_Preview.mp3?v=1776692289\" }\n          ];\n\n    const audio = document.getElementById('audio-player');\n    const progressBar = document.getElementById('progress-bar');\n    if (!audio || !progressBar) return false;\n\n    const playPauseBtn = document.getElementById('play-pause-btn');\n    const prevBtn = document.getElementById('prev-btn');\n    const nextBtn = document.getElementById('next-btn');\n    const titleEl = document.getElementById('track-title');\n    const currentTimeEl = document.getElementById('current-time');\n    const totalTimeEl = document.getElementById('total-time');\n    const trackListEl = document.getElementById('track-list');\n\n    let currentTrack = 0;\n    let progressInterval = null;\n\n    function loadTrack(index) {\n      currentTrack = index;\n      audio.src = playlist[index].url;\n      titleEl.textContent = `${playlist[index].title} — ${playlist[index].artist}`;\n      renderPlaylist();\n    }\n\n    function renderPlaylist() {\n      trackListEl.innerHTML = '';\n      playlist.forEach((track, index) =\u003e {\n        const li = document.createElement('li');\n        li.className = index === currentTrack ? 'active' : '';\n        li.innerHTML = `\u003cspan class=\"track-number\"\u003e${index + 1}\u003c\/span\u003e\u003cdiv style=\"flex:1\"\u003e\u003cstrong\u003e${track.title}\u003c\/strong\u003e\u003cbr\u003e\u003csmall\u003e${track.artist}\u003c\/small\u003e\u003c\/div\u003e`;\n        li.addEventListener('click', () =\u003e { loadTrack(index); audio.play(); playPauseBtn.innerHTML = '❚❚'; });\n        trackListEl.appendChild(li);\n      });\n    }\n\n    function updateProgress() {\n      if (!audio.duration) return;\n      const percent = (audio.currentTime \/ audio.duration) * 100;\n      progressBar.value = percent;\n      currentTimeEl.textContent = formatTime(audio.currentTime);\n      totalTimeEl.textContent = formatTime(audio.duration);\n    }\n\n    function formatTime(seconds) {\n      const min = Math.floor(seconds \/ 60);\n      const sec = Math.floor(seconds % 60);\n      return `${min}:${sec \u003c 10 ? '0' : ''}${sec}`;\n    }\n\n    function startProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n      progressInterval = setInterval(updateProgress, 200);\n    }\n\n    function stopProgress() {\n      if (progressInterval) clearInterval(progressInterval);\n    }\n\n    function playPause() {\n      if (audio.paused) {\n        audio.play();\n        playPauseBtn.innerHTML = '❚❚';\n        startProgress();\n      } else {\n        audio.pause();\n        playPauseBtn.innerHTML = '▶';\n        stopProgress();\n      }\n    }\n\n    progressBar.addEventListener('click', e =\u003e {\n      const rect = progressBar.getBoundingClientRect();\n      const pos = (e.clientX - rect.left) \/ rect.width;\n      audio.currentTime = pos * audio.duration;\n    });\n\n    playPauseBtn.addEventListener('click', playPause);\n    prevBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack - 1 + playlist.length) % playlist.length; loadTrack(currentTrack); audio.play(); });\n    nextBtn.addEventListener('click', () =\u003e { currentTrack = (currentTrack + 1) % playlist.length; loadTrack(currentTrack); audio.play(); });\n\n    audio.onended = () =\u003e {\n      currentTrack = (currentTrack + 1) % playlist.length;\n      loadTrack(currentTrack);\n      audio.play();\n    };\n\n    loadTrack(0);\n    return true;\n  }\n\n  let attempts = 0;\n  const interval = setInterval(() =\u003e {\n    attempts++;\n    if (initLightjournerPlayer() || attempts \u003e= 30) clearInterval(interval);\n  }, 200);\n\u003c\/script\u003e\n","brand":"LightJourner","offers":[{"title":"Default Title","offer_id":48869726028005,"sku":null,"price":9.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0727\/5292\/2853\/files\/grok-image-e2a73ad7-7742-4893-9651-a00bee56625c_upscayl_4x_upscayl-standard-4x.png?v=1776671332"}],"url":"https:\/\/lightjourner.com\/collections\/music-catalog.oembed","provider":"LightJourner ","version":"1.0","type":"link"}