{"id":59,"date":"2025-11-26T03:33:38","date_gmt":"2025-11-26T03:33:38","guid":{"rendered":"https:\/\/soulemedia.com\/?page_id=59"},"modified":"2025-11-26T03:59:05","modified_gmt":"2025-11-26T03:59:05","slug":"59-2","status":"publish","type":"page","link":"https:\/\/soulemedia.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <meta name=\"description\" content=\"Soule Media presents behind-the-scenes content from all our shoots. Discover the creative process in this slideshow.\">\n  <meta name=\"keywords\" content=\"Soule Media, behind-the-scenes, BTS, photography, videography, professional media, slideshow\">\n  <meta name=\"robots\" content=\"index, follow\">\n  <title>Soule Media &#8211; BTS from All Our Shoots<\/title>\n\n  <!-- Open Graph Meta Tags -->\n  <meta property=\"og:title\" content=\"Soule Media - BTS from All Our Shoots\">\n  <meta property=\"og:description\" content=\"Soule Media presents behind-the-scenes content from all our shoots. Discover the creative process in this slideshow.\">\n  <meta property=\"og:image\" content=\"https:\/\/your-logo-image-link.com\/logo.jpg\">\n  <meta property=\"og:url\" content=\"https:\/\/www.soulemedia.com\">\n  <meta property=\"og:type\" content=\"website\">\n\n  <!-- Twitter Card Meta Tags -->\n  <meta name=\"twitter:card\" content=\"summary_large_image\">\n  <meta name=\"twitter:title\" content=\"Soule Media - BTS from All Our Shoots\">\n  <meta name=\"twitter:description\" content=\"Soule Media presents behind-the-scenes content from all our shoots. Discover the creative process in this slideshow.\">\n  <meta name=\"twitter:image\" content=\"https:\/\/your-logo-image-link.com\/logo.jpg\">\n\n  <style>\n    \/* Slideshow container *\/\n    .slideshow-container {\n      max-width: 100%;\n      position: relative;\n      margin: auto;\n      overflow: hidden;\n      height: 100vh;\n    }\n\n    \/* Hide the images by default *\/\n    .mySlides {\n      display: none;\n      position: absolute;\n      width: 100%;\n      height: 100vh;\n      object-fit: contain;\n      cursor: pointer;\n    }\n\n    \/* Slide-in animations *\/\n    .slide-right-enter {\n      animation-name: slideRightIn;\n      animation-duration: 0.5s;\n      animation-fill-mode: forwards;\n      z-index: 2;\n    }\n\n    .slide-left-exit {\n      animation-name: slideLeftOut;\n      animation-duration: 0.5s;\n      animation-fill-mode: forwards;\n      z-index: 1;\n    }\n\n    @keyframes slideRightIn {\n      from {left: 100%; opacity: 0.4;}\n      to {left: 0; opacity: 1;}\n    }\n\n    @keyframes slideLeftOut {\n      from {left: 0; opacity: 1;}\n      to {left: -100%; opacity: 0.4;}\n    }\n\n    \/* Opposite direction *\/\n    .slide-left-enter {\n      animation-name: slideLeftIn;\n      animation-duration: 0.5s;\n      animation-fill-mode: forwards;\n      z-index: 2;\n    }\n\n    .slide-right-exit {\n      animation-name: slideRightOut;\n      animation-duration: 0.5s;\n      animation-fill-mode: forwards;\n      z-index: 1;\n    }\n\n    @keyframes slideLeftIn {\n      from {left: -100%; opacity: 0.4;}\n      to {left: 0; opacity: 1;}\n    }\n\n    @keyframes slideRightOut {\n      from {left: 0; opacity: 1;}\n      to {left: 100%; opacity: 0.4;}\n    }\n\n    \/* Arrow buttons *\/\n    .prev, .next {\n      cursor: pointer;\n      position: absolute;\n      top: 50%;\n      padding: 16px;\n      color: grey;\n      font-weight: bold;\n      font-size: 40px;\n      transition: 0.3s ease;\n      user-select: none;\n      z-index: 3;\n\n      \/* FIX line under arrows *\/\n      text-decoration: none !important;\n      line-height: 0 !important;\n      display: flex !important;\n      align-items: center;\n      justify-content: center;\n    }\n\n    .next { right: 0; }\n    .prev { left: 0; }\n\n    @media screen and (min-width: 768px) {\n      .prev:hover, .next:hover { color: black; }\n    }\n\n    \/* Dots *\/\n    .dot {\n      cursor: pointer;\n      height: 15px;\n      width: 15px;\n      margin: 0 2px;\n      background-color: #bbb;\n      display: inline-block;\n      transition: background-color 0.3s ease;\n    }\n\n    .active, .dot:hover { background-color: #717171; }\n\n    .slideshow-container img {\n      width: 100%;\n      height: 100vh;\n      object-fit: contain;\n    }\n\n    @media screen and (max-width: 767px) {\n      .slideshow-container { height: 70vh; }\n      .mySlides { height: 70vh; }\n      .slideshow-container img { height: 70vh; }\n    }\n  <\/style>\n<\/head>\n\n<body>\n\n<!-- SLIDESHOW START -->\n<div class=\"slideshow-container\">\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8402346-Edit-Edit-scaled.jpg\">\n  <\/div>\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8406584-scaled.jpg\">\n  <\/div>\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8406803-2-scaled.jpg\">\n  <\/div>\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8406042-scaled.jpg\">\n  <\/div>\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8408288-scaled.jpg\">\n  <\/div>\n\n  <div class=\"mySlides\" onclick=\"toggleAutoSlide()\" oncontextmenu=\"return false;\">\n    <img decoding=\"async\" src=\"https:\/\/soulemedia.com\/wp-content\/uploads\/2025\/11\/8408269-Edit-Edit-scaled.jpg\">\n  <\/div>\n\n  <a class=\"prev\" onclick=\"manualSlide(-1)\">&#10094;<\/a>\n  <a class=\"next\" onclick=\"manualSlide(1)\">&#10095;<\/a>\n<\/div>\n\n<br>\n\n<div id=\"dotContainer\" style=\"text-align:center\"><\/div>\n\n<!-- JAVASCRIPT -->\n<script>\nlet slideIndex = 1;\nlet isAnimating = false;\nlet autoSlideInterval;\nlet userInteracted = false;\nlet autoSlideEnabled = true;\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  randomizeSlides();\n  createDots();\n  showSlides(slideIndex);\n  startAutoSlide();\n});\n\nfunction randomizeSlides() {\n  const container = document.querySelector('.slideshow-container');\n  const slides = Array.from(container.getElementsByClassName('mySlides'));\n  slides.sort(() => Math.random() - 0.5);\n  slides.forEach(slide => container.appendChild(slide));\n}\n\nfunction createDots() {\n  const dotContainer = document.getElementById('dotContainer');\n  const slides = document.getElementsByClassName('mySlides');\n  dotContainer.innerHTML = '';\n  for (let i = 0; i < slides.length; i++) {\n    const dot = document.createElement('span');\n    dot.classList.add('dot');\n    dot.addEventListener('click', () => {\n      userInteracted = true;\n      stopAutoSlide();\n      autoSlideEnabled = false;\n      if (i + 1 > slideIndex) animateSlide(i + 1, 'right');\n      else animateSlide(i + 1, 'left');\n    });\n    dotContainer.appendChild(dot);\n  }\n}\n\nfunction plusSlides(n) {\n  if (isAnimating) return;\n  if (n > 0) animateSlide(slideIndex + n, 'right');\n  else animateSlide(slideIndex + n, 'left');\n}\n\nfunction currentSlide(n) {\n  if (isAnimating) return;\n  userInteracted = true;\n  stopAutoSlide();\n  autoSlideEnabled = false;\n  if (n > slideIndex) animateSlide(n, 'right');\n  else animateSlide(n, 'left');\n}\n\nfunction showSlides(n) {\n  let slides = document.getElementsByClassName(\"mySlides\");\n  let dots = document.getElementsByClassName(\"dot\");\n  if (n > slides.length) {slideIndex = 1}\n  if (n < 1) {slideIndex = slides.length}\n  for (let i = 0; i < slides.length; i++) {\n    slides[i].style.display = \"none\";\n    slides[i].classList.remove(\"slide-right-enter\", \"slide-left-exit\", \"slide-left-enter\", \"slide-right-exit\");\n  }\n  for (let i = 0; i < dots.length; i++) dots[i].classList.remove(\"active\");\n  slides[slideIndex-1].style.display = \"block\";\n  dots[slideIndex-1].classList.add(\"active\");\n}\n\nfunction animateSlide(newIndex, direction) {\n  const slides = document.getElementsByClassName(\"mySlides\");\n  if (newIndex > slides.length) newIndex = 1;\n  else if (newIndex < 1) newIndex = slides.length;\n\n  const currentSlide = document.querySelector('.mySlides:not([style*=\"display: none\"])');\n  isAnimating = true;\n  const newSlide = slides[newIndex - 1];\n  newSlide.style.display = \"block\";\n\n  if (direction === 'right') {\n    newSlide.classList.add('slide-right-enter');\n    currentSlide.classList.add('slide-left-exit');\n  } else {\n    newSlide.classList.add('slide-left-enter');\n    currentSlide.classList.add('slide-right-exit');\n  }\n\n  setTimeout(() => {\n    currentSlide.style.display = \"none\";\n    currentSlide.classList.remove('slide-left-exit', 'slide-right-exit');\n    slideIndex = newIndex;\n    showSlides(slideIndex);\n\n    setTimeout(() => {\n      newSlide.classList.remove('slide-right-enter', 'slide-left-enter');\n      isAnimating = false;\n    }, 500);\n  }, 500);\n}\n\nfunction startAutoSlide() {\n  autoSlideInterval = setInterval(() => {\n    if (!userInteracted && autoSlideEnabled) plusSlides(1);\n  }, 4000);\n}\n\nfunction stopAutoSlide() {\n  clearInterval(autoSlideInterval);\n}\n\nfunction manualSlide(n) {\n  userInteracted = true;\n  stopAutoSlide();\n  autoSlideEnabled = false;\n  plusSlides(n);\n}\n\nfunction toggleAutoSlide() {\n  autoSlideEnabled = !autoSlideEnabled;\n  if (autoSlideEnabled) {\n    userInteracted = false;\n    startAutoSlide();\n  } else {\n    stopAutoSlide();\n  }\n}\n\ndocument.querySelector('.prev').addEventListener('click', () => manualSlide(-1));\ndocument.querySelector('.next').addEventListener('click', () => manualSlide(1));\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Soule Media &#8211; BTS from All Our Shoots &#10094; &#10095;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-59","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/pages\/59","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soulemedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59"}],"version-history":[{"count":9,"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/pages\/59\/revisions"}],"predecessor-version":[{"id":83,"href":"https:\/\/soulemedia.com\/index.php?rest_route=\/wp\/v2\/pages\/59\/revisions\/83"}],"wp:attachment":[{"href":"https:\/\/soulemedia.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}