[{"command":"settings","settings":{"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"user":{"uid":0,"permissionsHash":"85d70ff5c59258123846295729decb835a5bed491a3a7e109f48f8ed54760113"}},"merge":true},{"command":"add_css","data":[{"rel":"stylesheet","media":"all","href":"\/sites\/default\/files\/css\/css_s_1GmMDVKilGqTybuDKAE7Jawuom3ouFgrtQF1sZ0q0.css?delta=0\u0026language=en\u0026theme=luv_theme\u0026include=eJzLz4hPzkgsSkwuSS0q1i_LTEnN181JrKrUzclPTMnMSwcA0MIMlQ\u0026exclude=eJxtj2GSwyAIhS-UjUdyiBLDxogD2rR7-k20TWc6_QP4PRCeY0HjpWaIoyeIHEb4hfvgTp5YNoj0hwNW65hXwiNtORIkh-YbtBMIDrxYCGgDFDSvosFMpicLCeKjkNPGa1nMBNqa3AICrqCoycIzRfzJnGv-0HSnjPKExZxf2J18wHIxwUBaBApxsvNh5lK0TuqEclPeU3jP8TQ-w42F-s0v9t4neJxw8f5aEHxXj31u9airaRWlMOhDC27d4I1wV9PiuLGvEf8BiiSXwA"}]},{"command":"add_js","selector":"body","data":[{"src":"\/core\/assets\/vendor\/jquery\/jquery.min.js?v=3.7.1"},{"src":"\/core\/assets\/vendor\/once\/once.min.js?v=1.0.1"},{"src":"\/core\/misc\/drupalSettingsLoader.js?v=10.6.2"},{"src":"\/core\/misc\/drupal.js?v=10.6.2"},{"src":"\/core\/misc\/drupal.init.js?v=10.6.2"},{"src":"\/modules\/custom\/oh_characters\/assets\/video-lazy-loading.c4ea404e.js?v=20260203.135522"}]},{"command":"insert","method":"append","selector":"#images_list","data":"  \u003Cdiv\n    class=\u0022image-item video \u0022\u003E\n                \u003Cdiv class=\u0022video-wrapper\u0022 data-video-state=\u0022thumbnail\u0022\u003E\n                                  \u003Cimg\n            class=\u0022thumbnail-image video-thumbnail\u0022\n            src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1750919925_thumbnail.png?VersionId=_Jyi4e0zXa43ajYvwtVWUy9.KX_RkNEV\u0022\n            data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/video-thumbnails\/video-1750919925_thumbnail.png?VersionId=DyWG6oaX8GHJNSHqLqRXEyy7Rj4nhGcy\u0026amp;itok=zKvEhXgq\u0022\n            data-post-description=\u0022Studio vibes \ud83d\udd25 Mixing magic with melodic beats \ud83c\udfb6\u0022\n            data-character=\u0022109\u0022\n            data-type=\u0022video\u0022\n            data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1750919925.mp4\u0022\n            data-video-id=\u00227267\u0022\n            data-post=\u00220\u0022\n            data-post-id=\u002214802\u0022\n            data-is-multiple=\u0022\u0022\n            alt=\u0022Studio vibes \ud83d\udd25 Mi\u0022\n            loading=\u0022lazy\u0022\n            onerror=\u0022console.log(\u0027Thumbnail failed to load:\u0027, this.src); this.style.display=\u0027none\u0027; this.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n          \/\u003E\n                \u003Cvideo class=\u0022thumbnail-image video-player\u0022 loop muted playsinline\n               preload=\u0022none\u0022\n               poster=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1750919925_thumbnail.png?VersionId=_Jyi4e0zXa43ajYvwtVWUy9.KX_RkNEV\u0022               data-post-description=\u0022Studio vibes \ud83d\udd25 Mixing magic with melodic beats \ud83c\udfb6\u0022\n               data-character=\u0022109\u0022\n               data-type=\u0022video\u0022\n               data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1750919925.mp4\u0022\n               data-video-id=\u00227267\u0022\n               data-post=\u00220\u0022\n               data-post-id=\u002214802\u0022\n               data-is-multiple=\u0022\u0022\n               data-video-index=\u00220\u0022\n               data-auto-play-group=\u0022video-group\u0022\u003E\n          \u003Csource src=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1750919925.mp4\u0022 type=\u0022video\/mp4\u0022\u003E\n        \u003C\/video\u003E\n        \u003Cdiv class=\u0022video-loading-indicator\u0022\u003E\n          \u003Cdiv class=\u0022loading-spinner\u0022\u003E\u003C\/div\u003E\n        \u003C\/div\u003E\n        \u003Cdiv class=\u0022video-icon\u0022\u003E\n        \u003Csvg width=\u002240\u0022 height=\u002240\u0022 viewBox=\u00220 0 40 40\u0022 fill=\u0022none\u0022 xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022\u003E\n          \u003Crect opacity=\u00220.6\u0022 x=\u00228.33325\u0022 y=\u00228.33337\u0022 width=\u002223.3333\u0022 height=\u002223.3333\u0022 fill=\u0022#302132\u0022\/\u003E\n          \u003Cpath d=\u0022M3.33325 11.25C3.33325 9.17893 5.01218 7.5 7.08325 7.5H32.9166C34.9877 7.5 36.6666 9.17893 36.6666 11.25V28.75C36.6666 30.8211 34.9877 32.5 32.9166 32.5H7.08325C5.01218 32.5 3.33325 30.8211 3.33325 28.75V11.25ZM18.817 13.4129C17.138 12.3394 14.936 13.5452 14.936 15.5379V24.4621C14.936 26.4548 17.138 27.6606 18.817 26.5871L25.7959 22.1251C27.3474 21.1331 27.3474 18.8669 25.7959 17.8749L18.817 13.4129Z\u0022 fill=\u0022white\u0022\/\u003E\n        \u003C\/svg\u003E\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n              \u003Cdiv class=\u0022overlay-video\u0022\u003E\u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-1255366910958767660.png?VersionId=puZ5ZPasXhckaNyvkJ6ITCB_IHrBwbvP\u0026amp;itok=mAPddxH_\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-1255366910958767660.png?VersionId=Cg4zL_pXmW_MMMHHzvOhxlt_EfIutiCL\u0026amp;itok=knI9DNxa\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Strumming vibes under the stars \ud83c\udf1f\ud83c\udfb8\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022109\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1750919925.mp4\u0022                   data-video-id=\u00227151\u0022         data-post=\u00221\u0022\n        data-post-id=\u002214618\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Strumming vibes unde\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-8263690960139714666.png?VersionId=XS899wdJexP4jUmGfbzvykZei8OHKmOh\u0026amp;itok=Nvi4ED6t\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-8263690960139714666.png?VersionId=Bps2N2xic.G8Wik3TopY9qa0w7x_srai\u0026amp;itok=5Ei2zVo2\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Creating magic in the studio, one beat at a time. \ud83c\udfb6\ud83d\udd25 #PassionProject\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022109\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1750919925.mp4\u0022                   data-video-id=\u00226327\u0022         data-post=\u00222\u0022\n        data-post-id=\u002213729\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Creating magic in th\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item video \u0022\u003E\n                \u003Cdiv class=\u0022video-wrapper\u0022 data-video-state=\u0022thumbnail\u0022\u003E\n                                  \u003Cimg\n            class=\u0022thumbnail-image video-thumbnail\u0022\n            src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1749710544_thumbnail.png?VersionId=jzrJuZ48KKLqkhYOk6iKZtStGgD07yAa\u0022\n            data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/video-thumbnails\/video-1749710544_thumbnail.png?VersionId=KgsKRtSs_dseYsv.NRfyw4VqPOJPKuLd\u0026amp;itok=N64ILo4E\u0022\n            data-post-description=\u0022Chasing the sunset vibes, one beat at a time. \ud83c\udfb8\ud83c\udf05 #PassionInMusic\u0022\n            data-character=\u0022109\u0022\n            data-type=\u0022video\u0022\n            data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749710544.mp4\u0022\n            data-video-id=\u00226217\u0022\n            data-post=\u00223\u0022\n            data-post-id=\u002213615\u0022\n            data-is-multiple=\u0022\u0022\n            alt=\u0022Chasing the sunset v\u0022\n            loading=\u0022lazy\u0022\n            onerror=\u0022console.log(\u0027Thumbnail failed to load:\u0027, this.src); this.style.display=\u0027none\u0027; this.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n          \/\u003E\n                \u003Cvideo class=\u0022thumbnail-image video-player\u0022 loop muted playsinline\n               preload=\u0022none\u0022\n               poster=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1749710544_thumbnail.png?VersionId=jzrJuZ48KKLqkhYOk6iKZtStGgD07yAa\u0022               data-post-description=\u0022Chasing the sunset vibes, one beat at a time. \ud83c\udfb8\ud83c\udf05 #PassionInMusic\u0022\n               data-character=\u0022109\u0022\n               data-type=\u0022video\u0022\n               data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749710544.mp4\u0022\n               data-video-id=\u00226217\u0022\n               data-post=\u00223\u0022\n               data-post-id=\u002213615\u0022\n               data-is-multiple=\u0022\u0022\n               data-video-index=\u00223\u0022\n               data-auto-play-group=\u0022video-group\u0022\u003E\n          \u003Csource src=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749710544.mp4\u0022 type=\u0022video\/mp4\u0022\u003E\n        \u003C\/video\u003E\n        \u003Cdiv class=\u0022video-loading-indicator\u0022\u003E\n          \u003Cdiv class=\u0022loading-spinner\u0022\u003E\u003C\/div\u003E\n        \u003C\/div\u003E\n        \u003Cdiv class=\u0022video-icon\u0022\u003E\n        \u003Csvg width=\u002240\u0022 height=\u002240\u0022 viewBox=\u00220 0 40 40\u0022 fill=\u0022none\u0022 xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022\u003E\n          \u003Crect opacity=\u00220.6\u0022 x=\u00228.33325\u0022 y=\u00228.33337\u0022 width=\u002223.3333\u0022 height=\u002223.3333\u0022 fill=\u0022#302132\u0022\/\u003E\n          \u003Cpath d=\u0022M3.33325 11.25C3.33325 9.17893 5.01218 7.5 7.08325 7.5H32.9166C34.9877 7.5 36.6666 9.17893 36.6666 11.25V28.75C36.6666 30.8211 34.9877 32.5 32.9166 32.5H7.08325C5.01218 32.5 3.33325 30.8211 3.33325 28.75V11.25ZM18.817 13.4129C17.138 12.3394 14.936 13.5452 14.936 15.5379V24.4621C14.936 26.4548 17.138 27.6606 18.817 26.5871L25.7959 22.1251C27.3474 21.1331 27.3474 18.8669 25.7959 17.8749L18.817 13.4129Z\u0022 fill=\u0022white\u0022\/\u003E\n        \u003C\/svg\u003E\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n              \u003Cdiv class=\u0022overlay-video\u0022\u003E\u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-7173519734099227909.png?VersionId=HwtTa3RwSZ7gMe5Trq7JUzEWYC45mmmS\u0026amp;itok=yD_noXFo\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-7173519734099227909.png?VersionId=ArzYiDkXTIim0eFS1W.qX5AMZ7966O4P\u0026amp;itok=w8HHSVzI\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Soulful vibes and city lights \ud83c\udf06\ud83c\udfb6\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022109\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749710544.mp4\u0022                   data-video-id=\u00226118\u0022         data-post=\u00224\u0022\n        data-post-id=\u002213512\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Soulful vibes and ci\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item video \u0022\u003E\n                \u003Cdiv class=\u0022video-wrapper\u0022 data-video-state=\u0022thumbnail\u0022\u003E\n                                  \u003Cimg\n            class=\u0022thumbnail-image video-thumbnail\u0022\n            src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1749537680_thumbnail.png?VersionId=WhUiFo.6zplg_pMysSsrnWDOKNwA14SP\u0022\n            data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/video-thumbnails\/video-1749537680_thumbnail.png?VersionId=M1vmUPZRAs0VHzn8ni36wKGXjY3cHPx_\u0026amp;itok=41WSxgFM\u0022\n            data-post-description=\u0022Sunset serenade sessions, just me and the notes harmonizing with the waves \ud83c\udf05\ud83c\udfb6\u0022\n            data-character=\u0022109\u0022\n            data-type=\u0022video\u0022\n            data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749537680.mp4\u0022\n            data-video-id=\u00226030\u0022\n            data-post=\u00225\u0022\n            data-post-id=\u002213418\u0022\n            data-is-multiple=\u0022\u0022\n            alt=\u0022Sunset serenade sess\u0022\n            loading=\u0022lazy\u0022\n            onerror=\u0022console.log(\u0027Thumbnail failed to load:\u0027, this.src); this.style.display=\u0027none\u0027; this.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n          \/\u003E\n                \u003Cvideo class=\u0022thumbnail-image video-player\u0022 loop muted playsinline\n               preload=\u0022none\u0022\n               poster=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1749537680_thumbnail.png?VersionId=WhUiFo.6zplg_pMysSsrnWDOKNwA14SP\u0022               data-post-description=\u0022Sunset serenade sessions, just me and the notes harmonizing with the waves \ud83c\udf05\ud83c\udfb6\u0022\n               data-character=\u0022109\u0022\n               data-type=\u0022video\u0022\n               data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749537680.mp4\u0022\n               data-video-id=\u00226030\u0022\n               data-post=\u00225\u0022\n               data-post-id=\u002213418\u0022\n               data-is-multiple=\u0022\u0022\n               data-video-index=\u00225\u0022\n               data-auto-play-group=\u0022video-group\u0022\u003E\n          \u003Csource src=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1749537680.mp4\u0022 type=\u0022video\/mp4\u0022\u003E\n        \u003C\/video\u003E\n        \u003Cdiv class=\u0022video-loading-indicator\u0022\u003E\n          \u003Cdiv class=\u0022loading-spinner\u0022\u003E\u003C\/div\u003E\n        \u003C\/div\u003E\n        \u003Cdiv class=\u0022video-icon\u0022\u003E\n        \u003Csvg width=\u002240\u0022 height=\u002240\u0022 viewBox=\u00220 0 40 40\u0022 fill=\u0022none\u0022 xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022\u003E\n          \u003Crect opacity=\u00220.6\u0022 x=\u00228.33325\u0022 y=\u00228.33337\u0022 width=\u002223.3333\u0022 height=\u002223.3333\u0022 fill=\u0022#302132\u0022\/\u003E\n          \u003Cpath d=\u0022M3.33325 11.25C3.33325 9.17893 5.01218 7.5 7.08325 7.5H32.9166C34.9877 7.5 36.6666 9.17893 36.6666 11.25V28.75C36.6666 30.8211 34.9877 32.5 32.9166 32.5H7.08325C5.01218 32.5 3.33325 30.8211 3.33325 28.75V11.25ZM18.817 13.4129C17.138 12.3394 14.936 13.5452 14.936 15.5379V24.4621C14.936 26.4548 17.138 27.6606 18.817 26.5871L25.7959 22.1251C27.3474 21.1331 27.3474 18.8669 25.7959 17.8749L18.817 13.4129Z\u0022 fill=\u0022white\u0022\/\u003E\n        \u003C\/svg\u003E\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n              \u003Cdiv class=\u0022overlay-video\u0022\u003E\u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item video \u0022\u003E\n                \u003Cdiv class=\u0022video-wrapper\u0022 data-video-state=\u0022thumbnail\u0022\u003E\n                                  \u003Cimg\n            class=\u0022thumbnail-image video-thumbnail\u0022\n            src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1748933174_thumbnail.png?VersionId=aVUZAFInvaxKUwscID21OEqZRcNiHPRc\u0022\n            data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/video-thumbnails\/video-1748933174_thumbnail.png?VersionId=V6l22E.dETxNSZHsYPub0d6LaGIQy5Xy\u0026amp;itok=aB5_QH8G\u0022\n            data-post-description=\u0022Chasing beats, not deadlines. \ud83c\udfb6 What\u0026#039;s your dream pursuit? #MusicianLife\u0022\n            data-character=\u0022109\u0022\n            data-type=\u0022video\u0022\n            data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1748933174.mp4\u0022\n            data-video-id=\u00225377\u0022\n            data-post=\u00226\u0022\n            data-post-id=\u002212738\u0022\n            data-is-multiple=\u0022\u0022\n            alt=\u0022Chasing beats, not d\u0022\n            loading=\u0022lazy\u0022\n            onerror=\u0022console.log(\u0027Thumbnail failed to load:\u0027, this.src); this.style.display=\u0027none\u0027; this.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n          \/\u003E\n                \u003Cvideo class=\u0022thumbnail-image video-player\u0022 loop muted playsinline\n               preload=\u0022none\u0022\n               poster=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/video-thumbnails\/video-1748933174_thumbnail.png?VersionId=aVUZAFInvaxKUwscID21OEqZRcNiHPRc\u0022               data-post-description=\u0022Chasing beats, not deadlines. \ud83c\udfb6 What\u0026#039;s your dream pursuit? #MusicianLife\u0022\n               data-character=\u0022109\u0022\n               data-type=\u0022video\u0022\n               data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1748933174.mp4\u0022\n               data-video-id=\u00225377\u0022\n               data-post=\u00226\u0022\n               data-post-id=\u002212738\u0022\n               data-is-multiple=\u0022\u0022\n               data-video-index=\u00226\u0022\n               data-auto-play-group=\u0022video-group\u0022\u003E\n          \u003Csource src=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1748933174.mp4\u0022 type=\u0022video\/mp4\u0022\u003E\n        \u003C\/video\u003E\n        \u003Cdiv class=\u0022video-loading-indicator\u0022\u003E\n          \u003Cdiv class=\u0022loading-spinner\u0022\u003E\u003C\/div\u003E\n        \u003C\/div\u003E\n        \u003Cdiv class=\u0022video-icon\u0022\u003E\n        \u003Csvg width=\u002240\u0022 height=\u002240\u0022 viewBox=\u00220 0 40 40\u0022 fill=\u0022none\u0022 xmlns=\u0022http:\/\/www.w3.org\/2000\/svg\u0022\u003E\n          \u003Crect opacity=\u00220.6\u0022 x=\u00228.33325\u0022 y=\u00228.33337\u0022 width=\u002223.3333\u0022 height=\u002223.3333\u0022 fill=\u0022#302132\u0022\/\u003E\n          \u003Cpath d=\u0022M3.33325 11.25C3.33325 9.17893 5.01218 7.5 7.08325 7.5H32.9166C34.9877 7.5 36.6666 9.17893 36.6666 11.25V28.75C36.6666 30.8211 34.9877 32.5 32.9166 32.5H7.08325C5.01218 32.5 3.33325 30.8211 3.33325 28.75V11.25ZM18.817 13.4129C17.138 12.3394 14.936 13.5452 14.936 15.5379V24.4621C14.936 26.4548 17.138 27.6606 18.817 26.5871L25.7959 22.1251C27.3474 21.1331 27.3474 18.8669 25.7959 17.8749L18.817 13.4129Z\u0022 fill=\u0022white\u0022\/\u003E\n        \u003C\/svg\u003E\n        \u003C\/div\u003E\n      \u003C\/div\u003E\n              \u003Cdiv class=\u0022overlay-video\u0022\u003E\u003C\/div\u003E\n      \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-454015903970053059.png?VersionId=au7tmKE98Qps3umhE1EwjssoDVnXzRHE\u0026amp;itok=R9mol7MR\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-454015903970053059.png?VersionId=fhA0uXdGmEfFDuKRalDhsb8QFR1s8BDp\u0026amp;itok=YuuNrDSe\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Studio vibes: When music meets magic. \ud83c\udfb6\ud83d\udd25 #CreatingDreams\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022109\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1748933174.mp4\u0022                   data-video-id=\u00225288\u0022         data-post=\u00227\u0022\n        data-post-id=\u002212646\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Studio vibes: When m\u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n  \u003Cdiv\n    class=\u0022image-item image \u0022\u003E\n          \u003Cimg\n        class=\u0022thumbnail-image\u0022\n        src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal_small\/s3\/char-post-images\/-3180218981891064210.png?VersionId=hdPyNX.kL96TTryZIfzhHNaKFOenKvE7\u0026amp;itok=7Kr8oFBy\u0022\n        data-src=\u0022https:\/\/d3mpf1svyo6ceu.cloudfront.net\/styles\/profile_normal\/s3\/char-post-images\/-3180218981891064210.png?VersionId=tNe_sVv59EKmPXwohZcg.KGSamQfYOyw\u0026amp;itok=cCWUmxGN\u0022\n        data-description=\u0022\u0022\n        data-post-description=\u0022Chasing dreams with my crew. The beat never stops. \ud83c\udfb6\ud83d\udcaa #StudioLife\u0022\n        data-secured=\u00220\u0022\n        data-character=\u0022109\u0022\n        data-type=\u0022image\u0022\n                  data-video-url=\u0022https:\/\/oh-platform-prod.s3.amazonaws.com\/char-post-videos\/109\/video-1748933174.mp4\u0022                   data-video-id=\u00225161\u0022         data-post=\u00228\u0022\n        data-post-id=\u002212519\u0022\n        data-is-multiple=\u0022\u0022\n        alt=\u0022Chasing dreams with \u0022\n        loading=\u0022lazy\u0022\n        onerror=\u0022this.style.display=\u0027none\u0027; this.nextElementSibling.nextElementSibling.style.display=\u0027flex\u0027;\u0022\n      \/\u003E\n      \u003Cdiv class=\u0022image-icon\u0022\u003E\u003C\/div\u003E\n          \u003C\/div\u003E\n\n\u003Cscript\u003E\n  (function () {\n    \/\/ Auto-play sequence for mobile devices\n    let currentVideoIndex = 0;\n    let videoElements = [];\n    let autoPlayTimer = null;\n    let isAutoPlaying = false;\n\n    \/\/ Check if device is mobile\n    function isMobileDevice() {\n      return \/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini\/i.test(navigator.userAgent);\n    }\n    \n    \/\/ Check if device is iOS\n    function isIOSDevice() {\n      return \/iPad|iPhone|iPod\/.test(navigator.userAgent);\n    }\n\n    \/\/ Initialize video elements\n    function initVideoElements() {\n      videoElements = Array.from(document.querySelectorAll(\u0027.video-wrapper\u0027));\n\n      videoElements.forEach((wrapper, index) =\u003E {\n        const video = wrapper.querySelector(\u0027.video-player\u0027);\n        const thumbnail = wrapper.querySelector(\u0027.video-thumbnail\u0027);\n        const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n\n\n        if (!video) {\n          return;\n        }\n\n        \/\/ iOS-specific: Ensure video is visible and has proper dimensions\n        if (isIOSDevice()) {\n          video.style.display = \u0027block\u0027;\n          video.style.width = \u0027100%\u0027;\n          video.style.height = \u0027auto\u0027;\n          video.style.objectFit = \u0027cover\u0027;\n          \n          \/\/ Force video to show poster or first frame\n          video.addEventListener(\u0027loadstart\u0027, function() {\n            video.style.opacity = \u00271\u0027;\n          });\n          \n          video.addEventListener(\u0027error\u0027, function(e) {\n            \/\/ Show video icon if video fails\n            if (videoIcon) {\n              videoIcon.style.display = \u0027block\u0027;\n            }\n          });\n        }\n\n        \/\/ Add click handler for video icon to start video\n        if (videoIcon) {\n          videoIcon.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            if (isMobileDevice()) {\n              startAutoPlay();\n            } else {\n              playVideo(index);\n            }\n          });\n        }\n\n        \/\/ For mobile - show play buttons and allow manual start\n        if (isMobileDevice()) {\n          \/\/ Keep play buttons visible for mobile\n          wrapper.style.cursor = \u0027pointer\u0027;\n\n          video.addEventListener(\u0027ended\u0027, function () {\n            showNextVideo();\n          });\n\n          \/\/ Click to start auto-play sequence from any video\n          wrapper.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            startAutoPlay();\n          });\n        } else {\n          \/\/ Desktop - direct hover to play\/stop without complex state tracking\n          let isVideoPlaying = false;\n\n          wrapper.addEventListener(\u0027mouseenter\u0027, function () {\n            if (!isAutoPlaying \u0026\u0026 !isVideoPlaying) {\n              isVideoPlaying = true;\n              playVideo(index);\n            }\n          });\n\n          wrapper.addEventListener(\u0027mouseleave\u0027, function () {\n            if (!isAutoPlaying \u0026\u0026 isVideoPlaying) {\n              isVideoPlaying = false;\n              stopVideo(index);\n            }\n          });\n\n          \/\/ Click to start auto-play sequence\n          wrapper.addEventListener(\u0027click\u0027, function () {\n            currentVideoIndex = index;\n            startAutoPlay();\n          });\n        }\n      });\n    }\n\n    function playVideo(index) {\n      if (index \u003E= videoElements.length) {\n        return;\n      }\n\n      const wrapper = videoElements[index];\n      const video = wrapper.querySelector(\u0027.video-player\u0027);\n      const thumbnail = wrapper.querySelector(\u0027.video-thumbnail:not(.video-player)\u0027);\n      const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n      const loader = wrapper.querySelector(\u0027.video-loading-indicator\u0027);\n\n\n      if (!video) {\n        return;\n      }\n\n      \/\/ Show loader and fade play button\n      if (loader) {\n        loader.style.display = \u0027block\u0027;\n      }\n      if (videoIcon) {\n        videoIcon.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          videoIcon.style.display = \u0027none\u0027;\n        }, 200);\n      }\n\n      \/\/ Load and play video (iOS requires loading on user interaction)\n      const videoUrl = video.dataset.videoUrl;\n      \n      if (!video.src \u0026\u0026 videoUrl) {\n        video.querySelector(\u0027source\u0027).src = videoUrl;\n        video.load();\n      }\n\n      \/\/ Hide thumbnail, show video with smooth transition\n      if (thumbnail) {\n        thumbnail.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          thumbnail.style.display = \u0027none\u0027;\n        }, 100);\n      }\n      video.style.display = \u0027block\u0027;\n      video.style.opacity = \u00271\u0027;\n      video.currentTime = 0; \/\/ Reset to start\n\n      \/\/ Add event listeners for iOS video loading\n      video.addEventListener(\u0027loadeddata\u0027, function() {\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n        video.play().catch(e =\u003E {\n          showThumbnail(index);\n        });\n      }, { once: true });\n      \n      video.addEventListener(\u0027canplay\u0027, function() {\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n      }, { once: true });\n      \n      \/\/ Try to play immediately if already loaded\n      if (video.readyState \u003E= 3) { \/\/ HAVE_FUTURE_DATA\n        if (loader) {\n          loader.style.display = \u0027none\u0027;\n        }\n        video.play().catch(e =\u003E {\n          showThumbnail(index);\n        });\n      }\n    }\n\n    function showThumbnail(index) {\n      if (index \u003E= videoElements.length) {\n        return;\n      }\n\n      const wrapper = videoElements[index];\n      const video = wrapper.querySelector(\u0027.video-player\u0027);\n      const thumbnail = wrapper.querySelector(\u0027.video-thumbnail:not(.video-player)\u0027);\n      const videoIcon = wrapper.querySelector(\u0027.video-icon\u0027);\n      const loader = wrapper.querySelector(\u0027.video-loading-indicator\u0027);\n\n      \/\/ Pause video with smooth transition\n      if (video) {\n        \/\/ video.pause();\n        \/\/ video.style.opacity = \u00270\u0027;\n        setTimeout(() =\u003E {\n          \/\/ video.style.display = \u0027none\u0027;\n        }, 100);\n      }\n\n      \/\/ Show thumbnail and play button with smooth transition\n      if (thumbnail) {\n        thumbnail.style.display = \u0027block\u0027;\n        thumbnail.style.opacity = \u00271\u0027;\n      }\n      if (videoIcon) {\n        videoIcon.style.display = \u0027block\u0027;\n        videoIcon.style.opacity = \u00271\u0027;\n      }\n      if (loader) {\n        loader.style.display = \u0027none\u0027;\n      }\n    }\n\n    function stopVideo(index) {\n      \/\/ stopVideo is just an alias for showThumbnail for clearer intent\n      showThumbnail(index);\n    }\n\n    function startAutoPlay() {\n      isAutoPlaying = true;\n      playVideo(currentVideoIndex);\n    }\n\n    function showNextVideo() {\n      \/\/ Show current video\u0027s thumbnail\n      showThumbnail(currentVideoIndex);\n\n      \/\/ Move to next video\n      currentVideoIndex = (currentVideoIndex + 1) % videoElements.length;\n\n      \/\/ Auto-play next video after delay\n      setTimeout(() =\u003E {\n        if (isAutoPlaying) {\n          playVideo(currentVideoIndex);\n        }\n      }, 500);\n    }\n\n    function stopAutoPlay() {\n      isAutoPlaying = false;\n      showThumbnail(currentVideoIndex);\n      if (autoPlayTimer) {\n        clearTimeout(autoPlayTimer);\n      }\n    }\n\n\n    \/\/ Initialize when DOM is ready\n    if (document.readyState === \u0027loading\u0027) {\n      document.addEventListener(\u0027DOMContentLoaded\u0027, function () {\n        initVideoElements();\n      });\n    } else {\n      initVideoElements();\n    }\n\n    \/\/ Stop auto-play when user scrolls away\n    let lastScrollTime = Date.now();\n    window.addEventListener(\u0027scroll\u0027, function () {\n      lastScrollTime = Date.now();\n      if (isAutoPlaying) {\n        setTimeout(function () {\n          if (Date.now() - lastScrollTime \u003E 2000) { \/\/ 2 seconds of no scrolling\n            \/\/ User stopped scrolling, continue auto-play\n          }\n        }, 2000);\n      }\n    });\n\n  })();\n\u003C\/script\u003E\n\n","settings":null},{"command":"insert","method":"replaceWith","selector":"#load-more-all","data":"\u003Ca href=\u0022\/profile\/109\/2\/all\u0022 rel=\u0022nofollow\u0022 id=\u0022load-more-all\u0022 data-cid=\u0022109\u0022 class=\u0022use-ajax btn btn-secondary btn-secondary-load load-more\u0022\u003E\n  Load more\n\u003C\/a\u003E\n","settings":null}]