<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>La Bataille &#8211; Brian Mura</title>
	<atom:link href="https://brianmura.fr/tag/la-bataille/feed/" rel="self" type="application/rss+xml" />
	<link>https://brianmura.fr</link>
	<description></description>
	<lastBuildDate>Fri, 12 Jun 2026 09:56:22 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://brianmura.fr/wp-content/uploads/2024/12/cropped-courtesy-logo-32x32.jpg</url>
	<title>La Bataille &#8211; Brian Mura</title>
	<link>https://brianmura.fr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>La Bataille</title>
		<link>https://brianmura.fr/dessin-peinture/la-bataille/</link>
		
		<dc:creator><![CDATA[Brian Mura]]></dc:creator>
		<pubDate>Sun, 30 Nov 2025 15:25:29 +0000</pubDate>
				<category><![CDATA[Dessin | Peinture]]></category>
		<category><![CDATA[La Bataille]]></category>
		<guid isPermaLink="false">https://brianmura.fr/?p=10162</guid>

					<description><![CDATA[La Bataille &#124; papier &#124; craies grasses &#124; 2021.]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="10162" class="elementor elementor-10162">
				<div class="elementor-element elementor-element-f0aa26d e-flex e-con-boxed wpr-particle-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent" data-id="f0aa26d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4471454 elementor-widget elementor-widget-html" data-id="4471454" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					
<div id="bataille-viewer" class="serie-viewer">

  <aside id="bataille-caption" class="serie-caption">

    <div class="serie-title">La Bataille</div>

          <div class="serie-meta">
                  <span>- Papier</span>
                  <span>- Craies grasses</span>
                  <span>- 2021</span>
              </div>
    
      <div class="serie-description">

        			<p>Une fois la porte ouverte, un entêtant bruit confus s'échappa de la chambre.</p>
		
		
        		
		
      </div>

    
  </aside>


<div id="bataille-stage" class="serie-stage">

  
          <img decoding="async"
        id="bataille-img"
        class="serie-img"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-2.jpg"
        alt="La Bataille — 1"
      >
    
  
      <button class="serie-prev" aria-label="Précédent">&#8592;</button>
    <button class="serie-next" aria-label="Suivant">&#8594;</button>
    <div class="serie-counter">1 / 18</div>
  
</div>

<!-- Grille mobile — images empilées -->
<!-- Grille mobile — images et vidéos empilées -->
<div id="bataille-mobile-grid" class="serie-mobile-grid">
            <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-2.jpg"
        alt="La Bataille — 1"
        class="serie-mobile-img"
        data-index="0"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-4.jpg"
        alt="La Bataille — 2"
        class="serie-mobile-img"
        data-index="1"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-5.jpg"
        alt="La Bataille — 3"
        class="serie-mobile-img"
        data-index="2"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-6-scaled.jpg"
        alt="La Bataille — 4"
        class="serie-mobile-img"
        data-index="3"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-7.jpg"
        alt="La Bataille — 5"
        class="serie-mobile-img"
        data-index="4"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-8.jpg"
        alt="La Bataille — 6"
        class="serie-mobile-img"
        data-index="5"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-8.jpg"
        alt="La Bataille — 7"
        class="serie-mobile-img"
        data-index="6"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-9.jpg"
        alt="La Bataille — 8"
        class="serie-mobile-img"
        data-index="7"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-10.jpg"
        alt="La Bataille — 9"
        class="serie-mobile-img"
        data-index="8"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-11.jpg"
        alt="La Bataille — 10"
        class="serie-mobile-img"
        data-index="9"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-12.jpg"
        alt="La Bataille — 11"
        class="serie-mobile-img"
        data-index="10"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-12.jpg"
        alt="La Bataille — 12"
        class="serie-mobile-img"
        data-index="11"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-13.jpg"
        alt="La Bataille — 13"
        class="serie-mobile-img"
        data-index="12"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-14.jpg"
        alt="La Bataille — 14"
        class="serie-mobile-img"
        data-index="13"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-15-scaled.jpg"
        alt="La Bataille — 15"
        class="serie-mobile-img"
        data-index="14"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-16.jpg"
        alt="La Bataille — 16"
        class="serie-mobile-img"
        data-index="15"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-17.jpg"
        alt="La Bataille — 17"
        class="serie-mobile-img"
        data-index="16"
      >
                <img decoding="async"
        src="https://brianmura.fr/wp-content/uploads/2025/11/b-18.jpg"
        alt="La Bataille — 18"
        class="serie-mobile-img"
        data-index="17"
      >
      </div>

<!-- Lightbox mobile -->
<div id="bataille-lightbox" class="serie-lightbox" aria-hidden="true">
  <button class="slb-close">✕</button>
  <button class="slb-prev">&#8592;</button>
  <img decoding="async" class="slb-img" src="" alt="">
  <button class="slb-next">&#8594;</button>
  <div class="slb-counter"></div>
</div>

</div><script>
(function () {

  const viewerId = 'bataille';
  const media    = [{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-2.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-4.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-5.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-6-scaled.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-7.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-8.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-8.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-9.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-10.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-11.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-12.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-12.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-13.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-14.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-15-scaled.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-16.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-17.jpg"},{"type":"image","src":"https:\/\/brianmura.fr\/wp-content\/uploads\/2025\/11\/b-18.jpg"}];
  const total    = media.length;
  let   current  = 0;

  const stage   = document.getElementById(viewerId + '-stage');
  const counter = stage ? stage.querySelector('.serie-counter') : null;
  const btnPrev = stage ? stage.querySelector('.serie-prev') : null;
  const btnNext = stage ? stage.querySelector('.serie-next') : null;
  const viewer  = document.getElementById(viewerId + '-viewer');

  function getOrCreateMedia(item) {
    const existing = document.getElementById(viewerId + '-img');

    if (item.type === 'video') {
      if (existing && existing.tagName === 'VIDEO') {
        existing.src = item.src;
        existing.load();
        existing.play();
        return;
      }
      const vid = document.createElement('video');
      vid.id        = viewerId + '-img';
      vid.className = 'serie-img serie-video';
      vid.src       = item.src;
      vid.controls  = true;
      vid.setAttribute('playsinline', '');
	  vid.loop      = item.loop === true;
      vid.style.cssText = 'max-width:100%; max-height:100%; object-fit:contain;';
      if (existing) existing.replaceWith(vid);
      else stage.prepend(vid);

    } else {
      if (existing && existing.tagName === 'IMG') {
        existing.src = item.src;
        existing.alt = 'La Bataille — ' + (current + 1);
        return;
      }
      const img = document.createElement('img');
      img.id        = viewerId + '-img';
      img.className = 'serie-img';
      img.src       = item.src;
      img.alt       = 'La Bataille — ' + (current + 1);
      img.style.cursor = 'pointer';
      img.addEventListener('click', () => go(current + 1));
      if (existing) existing.replaceWith(img);
      else stage.prepend(img);
    }
  }

  function go(n) {
    current = (n + total) % total;
    getOrCreateMedia(media[current]);
    if (counter) counter.textContent = (current + 1) + ' / ' + total;
  }

  /* Clic sur l'image initiale = suivant */
  const initImg = document.getElementById(viewerId + '-img');
  if (initImg && initImg.tagName === 'IMG') {
    initImg.style.cursor = 'pointer';
    initImg.addEventListener('click', () => go(current + 1));
  }

  if (btnPrev) btnPrev.addEventListener('click', () => go(current - 1));
  if (btnNext) btnNext.addEventListener('click', () => go(current + 1));

  document.addEventListener('keydown', e => {
    if (e.key === 'ArrowLeft')  go(current - 1);
    if (e.key === 'ArrowRight') go(current + 1);
  });

  /* Swipe */
  let touchX = null;
  if (viewer) {
    viewer.addEventListener('touchstart', e => {
      touchX = e.touches[0].clientX;
    }, { passive: true });
    viewer.addEventListener('touchend', e => {
      if (touchX === null) return;
      const diff = touchX - e.changedTouches[0].clientX;
      if (Math.abs(diff) > 40) go(current + (diff > 0 ? 1 : -1));
      touchX = null;
    }, { passive: true });
  }

  /* Player audio */
  const playerEl = document.getElementById(viewerId + '-player');
  if (playerEl) {
    const audioEl  = document.querySelector('#' + viewerId + '-viewer .serie-audio');
    const playBtn  = playerEl.querySelector('.sp-play');
    const playIcon = playerEl.querySelector('.sp-play-icon');
    const prevBtn  = playerEl.querySelector('.sp-prev');
    const nextBtn  = playerEl.querySelector('.sp-next');
    const tracks   = [...playerEl.querySelectorAll('.sp-track')];
    const timeCur  = playerEl.querySelector('.sp-cur');
    const timeTot  = playerEl.querySelector('.sp-tot');
    let   trackIdx = 0;

    function fmt(s) {
      if (isNaN(s) || !isFinite(s)) return '0:00';
      return Math.floor(s / 60) + ':' + String(Math.floor(s % 60)).padStart(2, '0');
    }

    function setIcon(playing) {
      playIcon.innerHTML = playing
        ? '<rect x="6" y="4" width="4" height="16" rx="1"/><rect x="14" y="4" width="4" height="16" rx="1"/>'
        : '<polygon points="5 3 19 12 5 21 5 3"/>';
    }

    function loadTrack(i) {
      trackIdx = i;
      audioEl.src = tracks[i].dataset.src;
      timeCur.textContent = '0:00';
      timeTot.textContent = '0:00';
      tracks.forEach((t, j) => t.classList.toggle('active', j === i));
    }

    playBtn.addEventListener('click',  () => { audioEl.paused ? audioEl.play() : audioEl.pause(); });
    audioEl.addEventListener('play',   () => setIcon(true));
    audioEl.addEventListener('pause',  () => setIcon(false));
    audioEl.addEventListener('timeupdate', () => {
      timeCur.textContent = fmt(audioEl.currentTime);
      timeTot.textContent = fmt(audioEl.duration);
    });
    audioEl.addEventListener('ended', () => {
      if (tracks.length < 2) return;
      loadTrack((trackIdx + 1) % tracks.length);
      audioEl.play();
    });
    prevBtn.addEventListener('click', () => {
      loadTrack((trackIdx - 1 + tracks.length) % tracks.length);
      audioEl.play();
    });
    nextBtn.addEventListener('click', () => {
      loadTrack((trackIdx + 1) % tracks.length);
      audioEl.play();
    });
    tracks.forEach((t, i) => {
      t.addEventListener('click', () => { loadTrack(i); audioEl.play(); });
    });
    loadTrack(0);
  }
  
  
  /* ========================
     LIGHTBOX MOBILE
  ======================== */

  const mobileGrid = document.getElementById(viewerId + '-mobile-grid');
  const lightbox   = document.getElementById(viewerId + '-lightbox');

  if (mobileGrid && lightbox) {

    const lbImg     = lightbox.querySelector('.slb-img');
    const lbPrev    = lightbox.querySelector('.slb-prev');
    const lbNext    = lightbox.querySelector('.slb-next');
    const lbClose   = lightbox.querySelector('.slb-close');
    const lbCounter = lightbox.querySelector('.slb-counter');

    /* Uniquement les images — pas les vidéos */
    const imgItems = media.filter(m => m.type === 'image');
    let   lbCurrent = 0;

    function lbGo(n) {
      lbCurrent = (n + imgItems.length) % imgItems.length;
      lbImg.src = imgItems[lbCurrent].src;
      lbCounter.textContent = (lbCurrent + 1) + ' / ' + imgItems.length;
    }

    function openLightbox(index) {
      lbCurrent = index;
      lbImg.src = imgItems[index].src;
      lbCounter.textContent = (index + 1) + ' / ' + imgItems.length;
      lightbox.classList.add('open');
      lightbox.setAttribute('aria-hidden', 'false');
      document.body.style.overflow = 'hidden';
    }

    function closeLightbox() {
      lightbox.classList.remove('open');
      lightbox.setAttribute('aria-hidden', 'true');
      document.body.style.overflow = '';
    }

    /* Tap sur image → lightbox */
    mobileGrid.querySelectorAll('.serie-mobile-img').forEach((img, i) => {
      img.addEventListener('click', () => openLightbox(i));
    });

    lbClose.addEventListener('click', closeLightbox);
    lbPrev.addEventListener('click',  () => lbGo(lbCurrent - 1));
    lbNext.addEventListener('click',  () => lbGo(lbCurrent + 1));

    /* Swipe dans la lightbox */
    let lbTouchX = null;
    lightbox.addEventListener('touchstart', e => {
      lbTouchX = e.touches[0].clientX;
    }, { passive: true });
    lightbox.addEventListener('touchend', e => {
      if (lbTouchX === null) return;
      const diff = lbTouchX - e.changedTouches[0].clientX;
      if (Math.abs(diff) > 40) lbGo(lbCurrent + (diff > 0 ? 1 : -1));
      lbTouchX = null;
    }, { passive: true });

    /* Escape */
    document.addEventListener('keydown', e => {
      if (e.key === 'Escape' && lightbox.classList.contains('open')) closeLightbox();
    });

    /* Ferme au clic sur le fond */
    lightbox.addEventListener('click', e => {
      if (e.target === lightbox) closeLightbox();
    });
  }
  
}());
</script>				</div>
				</div>
					</div>
				</div>
				</div>
		]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
