IMNInfos Média Nantes
INFOS MÉDIA NANTES

LA SUITE DU MAGAZINE

À la une

L’accueil d’Infos Média Nantes, à feuilleter : les dernières informations locales, les rendez-vous et les initiatives du territoire. Actualités récentes · à lire et à partager
  • Chasses aux œufs 2026 en Loire-Atlantique : toutes les dates…
  • Pont Anne-de-Bretagne à Nantes : le tablier géant désormais installé,…

Faites glisser le coin de la page pour la tourner, ou cliquez sur Suivant

L’ACTU DU MOMENT

À la une, en un seul feuilletage.

SOMMAIREINFOS MÉDIA NANTES

Les News

745
Chasses aux œufs 2026 en Loire-Atlantique : toutes les dates à Nantes et autour pour le week-end de Pâques

Chasses aux œufs 2026 en Loire-Atlantique : toutes les dates à Nantes et autour pour le week-end de Pâques

Crédit photo : illustration / événements de Pâques en Loire-Atlantique

À l’approche du week-end de Pâques, de nombreuses chasses aux œufs sont organisées en Loire-Atlantique. Entre événements solidaires, animations familiales et activités en plein air, petits et grands ont l’embarras du choix.

La majorité des rendez-vous se concentrent autour des samedi 4, dimanche 5 et lundi 6 avril 2026, avec plusieurs prolongations jusqu’à la fin du mois.

Les principaux événements à Nantes et dans la métropole

À Nantes, plusieurs lieux proposent des animations adaptées aux enfants, avec des formats variés allant de la chasse classique au jeu de piste.

  • Parc du Grand Blottereau : dimanche 5 avril, de 10h à 17h, chasse solidaire (5 €)
  • Bellevue (Saint-Herblain) : samedi 4 avril, de 14h à 17h, animations gratuites
  • Patinoire du Petit Port : lundi 6 avril, après-midi chocolatée avec animations
  • Foire internationale de Nantes : du 2 au 6 avril, chasse intégrée sous forme de jeu de piste
  • CSC Laetitia (Breil) : samedi 26 avril, de 14h à 16h, sur inscription

Autour de Nantes : des animations dans tout le département

Dans le reste de la Loire-Atlantique, plusieurs communes et sites touristiques proposent également des chasses aux œufs.

  • Carquefou – Parc du Charbonneau : samedi 4 avril, matinée dédiée aux enfants
  • Sautron – Parc de la Linière : dimanche 5 avril, de 11h à 12h, pour les 3 à 10 ans
  • Vallet – Château du Cléray : samedi 4 avril, journée complète avec animations et dégustations
  • Planète Sauvage (Port-Saint-Père) : 5 et 6 avril, chasse dans le parc animalier avec œuf d’or
  • Boussay – Étang des Lavoirs : samedi 25 avril, matinée festive (5 €)

Ces événements combinent souvent chasse aux œufs et animations complémentaires comme des jeux, tombolas ou ateliers.

Une carte pour tout repérer facilement

Pour t’aider à organiser ton week-end, voici une carte interactive avec l’ensemble des chasses aux œufs recensées en Loire-Atlantique.

document.addEventListener("DOMContentLoaded", function(){if(window.__imnMapInit) return; window.__imnMapInit = true;var map = L.map('map').setView([47.2184, -1.5536], 10);L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{ maxZoom:19 }).addTo(map);function addMarker(lat, lng, text){ L.marker([lat,lng]).addTo(map) .bindPopup(text); }addMarker(47.230, -1.505, "Grand Blottereau – 5 avril"); addMarker(47.210, -1.600, "Bellevue – 4 avril"); addMarker(47.248, -1.553, "Petit Port – 6 avril"); addMarker(47.255, -1.524, "Foire de Nantes – 2 au 6 avril"); addMarker(47.228, -1.580, "CSC Laetitia – 26 avril");addMarker(47.296, -1.492, "Carquefou – 4 avril"); addMarker(47.264, -1.667, "Sautron – 5 avril"); addMarker(47.166, -1.267, "Vallet – 4 avril"); addMarker(47.126, -1.732, "Planète Sauvage – 5-6 avril"); addMarker(47.052, -1.283, "Boussay – 25 avril");setTimeout(()=>{ map.invalidateSize(); },300);});.leaflet-container img{max-width:none;}

Chaque point est cliquable pour identifier rapidement le lieu et la date correspondante.

Un week-end clé pour les familles

Le week-end de Pâques s’annonce particulièrement riche en animations dans le département. De nombreux événements sont gratuits, notamment dans les communes, tandis que certains sites proposent des formats payants incluant des activités supplémentaires.

Avec des propositions étalées sur tout le mois d’avril, les familles peuvent également profiter de ces animations au-delà du week-end principal.

Mini-jeu IMN : Memory spécial chasse aux œufs

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🥚","🐣","🍫","🐰","🌸","🎁","🍭","🥕","🌼", "🥚","🐣","🍫","🐰","🌸","🎁","🍭","🥕","🌼"], ["🐰","🥚","🍫","🐣","🌼","🎁","🍭","🥕","🌸", "🐰","🥚","🍫","🐣","🌼","🎁","🍭","🥕","🌸"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done") || card === first) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Informations : événements de Pâques 2026 en Loire-Atlantique.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Chaque quartier a des idées à raconter. »

Lire l’article complet →
À la une26.03.26

Les News

746
Pont Anne-de-Bretagne à Nantes : le tablier géant désormais installé, le chantier entre dans une nouvelle phase

Pont Anne-de-Bretagne à Nantes : le tablier géant désormais installé, le chantier entre dans une nouvelle phase

Crédit photo : Nantes Métropole / chantier du pont Anne-de-Bretagne

À Nantes, une étape majeure vient d’être franchie sur le chantier du pont Anne-de-Bretagne. La structure principale du futur ouvrage, acheminée depuis l’Italie à l’automne, est désormais en place.

Arrivé par voie maritime après un long trajet débuté le 24 octobre, le tablier a été installé ce mercredi 25 mars, sous les yeux de nombreux habitants venus observer cette opération technique spectaculaire.

👉 Voir le reportage complet sur l’arrivée du tablier

Une opération technique millimétrée

L’installation de cette structure imposante constituait l’une des phases les plus délicates du chantier. Le tablier, dont le poids dépasse les 3 000 tonnes avec ses équipements complets, a été positionné sur ses piliers en profitant de la marée descendante.

Sans ses mâts et ses haubans, l’élément principal représente déjà environ 2 100 tonnes. Son positionnement précis a nécessité une coordination étroite entre les équipes techniques et les conditions naturelles.

Cette manœuvre marque l’aboutissement d’un acheminement complexe, marqué notamment par des conditions météorologiques difficiles lors de la traversée depuis l’Italie.

Un futur pont hors norme

Le nouvel ouvrage viendra s’intégrer au pont Anne-de-Bretagne existant, auquel il sera directement relié. Par ses dimensions, il s’annonce comme l’un des projets les plus ambitieux en matière d’infrastructure urbaine en Europe.

À terme, il deviendra le pont le plus large d’Europe, avec une conception pensée pour accueillir différents usages et accompagner les mobilités du territoire nantais.

Ce chantier s’inscrit dans une transformation plus globale des quais de Loire et du centre-ville de Nantes.

Le chantier entre dans une nouvelle étape

Avec la pose du tablier désormais finalisée, le projet entre dans une phase d’aménagement. Les prochaines étapes concerneront notamment l’installation des équipements, des accès et des structures complémentaires.

Progressivement, le futur pont prendra sa forme définitive avant son ouverture au public. Cette avancée marque un moment clé pour ce chantier d’envergure, suivi de près par les habitants depuis plusieurs mois.

Mini-jeu IMN : Memory spécial chantier du pont

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🏗️","🌉","⚙️","🚧","🛠️","🏗️","🌊","🚢","🔩", "🌉","⚙️","🚧","🛠️","🌊","🚢","🔩","🏗️","🌉"], ["🚧","🏗️","🌉","⚙️","🛠️","🔩","🌊","🚢","🏗️", "🌉","⚙️","🚧","🛠️","🔩","🌊","🚢","🏗️","🌉"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done") || card === first) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : Nantes Métropole, observations du chantier du 25 mars 2026.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Nantes se lit autant dans les initiatives que dans les grands rendez-vous. »

Lire l’article complet →
À la une26.03.26

Entreprises locales

747
Rezé : l’ancienne brasserie du Château rouvre sous une nouvelle forme dès le 1er avril

Rezé : l’ancienne brasserie du Château rouvre sous une nouvelle forme dès le 1er avril

Crédit photo : archives / la brasserie du Château à Rezé

À Rezé, un lieu emblématique du quartier du Château s’apprête à reprendre vie. Après plusieurs mois de fermeture, l’ancienne brasserie du Château rouvrira ses portes à partir du mercredi 1er avril 2026 sous une nouvelle identité.

Fermé administrativement en juin 2025, puis placé en liquidation durant l’été, l’établissement revient aujourd’hui sous le nom de « Café du Château ». Cette réouverture s’inscrit dans une phase transitoire pilotée par la Ville de Rezé.

Une réouverture progressive et temporaire

Dans un premier temps, le lieu sera accessible sur des créneaux limités. Les habitants pourront y venir pour découvrir l’espace, partager un moment autour d’un café et s’informer sur le projet à venir.

Plusieurs acteurs locaux sont déjà associés à cette nouvelle dynamique. Le centre socioculturel du Château, l’association Amarrez ou encore les Compagnons bâtisseurs prévoient d’y organiser différentes activités.

Cette période expérimentale doit permettre de tester les usages et de redonner une place centrale à ce lieu dans la vie du quartier.

Un projet construit avec les habitants

La municipalité présente cette réouverture comme une opportunité pour engager une réflexion collective. L’objectif est de co-construire avec les habitants un futur lieu de convivialité et de mixité.

Le projet prévoit de conserver les fonctions historiques du site, notamment celles de bar et de restauration, tout en repensant son rôle dans le quartier.

Cette démarche participative vise à faire émerger un lieu adapté aux attentes locales, en lien avec les acteurs du territoire.

Un futur exploitant attendu en 2026

La phase transitoire devrait se poursuivre jusqu’au début de l’année 2027. D’ici là, un appel à manifestation d’intérêt doit être lancé à partir de mi-avril 2026.

Il permettra de sélectionner les futurs exploitants du site, avec la volonté de maintenir une activité économique tout en conservant une dimension sociale et conviviale.

Avec cette réouverture progressive, la Ville de Rezé entend redonner vie à un lieu structurant du quartier, tout en préparant son avenir sur des bases renouvelées.

Mini-jeu IMN : Memory spécial café & quartier

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["☕","🥐","🍰","🍻","🪑","🏡","🎉","🍽️","🥤", "☕","🥐","🍰","🍻","🪑","🏡","🎉","🍽️","🥤"], ["🍵","🥖","🍪","🍷","🪟","🏘️","🎶","🍴","🧁", "🍵","🥖","🍪","🍷","🪟","🏘️","🎶","🍴","🧁"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done") || card === first) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : Ville de Rezé, informations communiquées le 1er avril 2026.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Ce qui se passe près de chez nous mérite du temps et de l’attention. »

Lire l’article complet →
À la une26.03.26

Les News

748
Rezé : à l’école Jean-Jaurès, parents et enseignants mobilisés face à une possible fermeture de classe

Rezé : à l’école Jean-Jaurès, parents et enseignants mobilisés face à une possible fermeture de classe

Crédit photo : Collectif école Jean-Jaurès

À Rezé, dans le quartier de Trentemoult, l’école Jean-Jaurès se prépare à une rentrée sous tension. La baisse annoncée des effectifs pour septembre 2026 fait craindre à la communauté éducative la fermeture d’un niveau.

Cette année, l’établissement accueille environ 160 élèves. Selon les projections, ils ne seraient plus que 140 à la prochaine rentrée. Une diminution qui pourrait entraîner la suppression d’une classe, décision attendue dans les prochains jours dans le cadre de la carte scolaire.

Des effectifs jugés sous-évalués

Parents et enseignants contestent toutefois ces prévisions. Ils rappellent que l’école accueille régulièrement des enfants issus de familles itinérantes, non comptabilisés dans les chiffres officiels.

Dans un courrier adressé à l’inspecteur de l’Éducation nationale, le collectif souligne que ces arrivées en cours d’année modifient significativement les effectifs réels. Sur l’année scolaire en cours, l’établissement aurait ainsi dû accueillir vingt-quatre élèves supplémentaires par rapport aux estimations initiales.

Faute de places suffisantes, certains enfants ont été orientés vers l’école Plancher, également située à Rezé. Une situation que les parents souhaitent éviter pour les années à venir.

Une mobilisation qui s’organise

Face à cette incertitude, la mobilisation s’intensifie. Plusieurs actions sont prévues pour alerter les autorités académiques et rendre visible la situation de l’école.

  • Présence lors du vide-greniers de Trentemoult, dimanche 29 mars
  • Rassemblement devant l’école vendredi matin
  • Mobilisation prévue lundi devant la DSDEN à Nantes

En parallèle, une pétition est en cours de préparation afin de soutenir le maintien des classes et des conditions d’accueil actuelles.

Les familles espèrent ainsi peser dans les discussions à venir et faire reconnaître les spécificités de l’établissement.

Une décision attendue rapidement

La situation sera examinée lors du comité spécial d’administration départemental, prévu lundi 30 mars. Cette instance doit arrêter la carte scolaire pour la rentrée 2026 en Loire-Atlantique.

D’ici là, la communauté éducative reste mobilisée pour défendre ses arguments et tenter d’éviter une fermeture de classe, qui aurait un impact direct sur les conditions d’apprentissage des élèves.

Mini-jeu IMN : Memory spécial école

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🏫","📚","✏️","🧑‍🏫","🎒","📝","📏","🖍️","📖", "🏫","🎒","📚","✏️","🧑‍🏫","📝","📏","🖍️","📖"], ["📚","✏️","🧑‍🏫","🏫","📖","📝","🎒","📏","🖍️", "📚","✏️","🧑‍🏫","🏫","📖","📝","🎒","📏","🖍️"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done") || card === first) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : collectif de l’école Jean-Jaurès, communication aux services de l’Éducation nationale, informations locales sur la carte scolaire 2026.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Les bons repères se partagent sans attendre. »

Lire l’article complet →
À la une26.03.26

PAUSE JEU 4 · Mémoire

Memory

Retrouve les paires du dossier.

PAUSE LUDIQUEIMN

LE TERRITOIRE AU QUOTIDIEN

IMN Proximité

Une plateforme territoriale pour mettre en relation particuliers et professionnels locaux.

IMN PROXIMITÉ · SERVICES LOCAUX

Les bonnes personnes, au bon endroit, au bon moment. Transport de soins ou immobilier à la carte : déposez votre demande et recevez les réponses de professionnels vérifiés près du lieu concerné. 100 % gratuit · Sans abonnement
IMN ProximitéINFOS MÉDIA NANTES

Les News

749
Affaire Dupont de Ligonnès : un appel à témoins relancé au Texas, sans information du parquet de Nantes

Affaire Dupont de Ligonnès : un appel à témoins relancé au Texas, sans information du parquet de Nantes

Crédit photo : compte officiel Brewster County Sheriff’s Office

Un nouveau rebondissement relance l’attention autour de l’affaire Xavier Dupont de Ligonnès. Aux États-Unis, un bureau de shérif texan a récemment diffusé un appel à témoins après avoir identifié un homme ressemblant au fugitif français, disparu depuis 2011.

Cette démarche concerne une possible observation datant de 2020 dans le comté de Brewster, au Texas. L’homme aurait été vu en compagnie d’un labrador noir. L’information a été rendue publique mercredi 25 mars 2026 via les réseaux sociaux du bureau du shérif.

Une initiative américaine indépendante

Selon les éléments communiqués, les autorités locales américaines invitent toute personne disposant d’informations à se manifester. Cette initiative intervient dans une affaire qui demeure l’une des plus marquantes de ces dernières années en France.

Xavier Dupont de Ligonnès est recherché depuis la découverte, en avril 2011 à Nantes, des corps de sa femme et de ses quatre enfants. Depuis, aucune trace officielle n’a permis de localiser avec certitude le principal suspect.

Toutefois, malgré la médiatisation de cette nouvelle piste, les autorités françaises n’ont pas été associées à cette démarche.

Le parquet de Nantes non informé

Interrogé par plusieurs médias jeudi 26 mars 2026, le procureur de la République de Nantes, Antoine Leroy, a indiqué ne pas avoir été informé de cet appel à témoins.

Il précise que ni lui-même, ni le juge d’instruction en charge du dossier, ni les enquêteurs mobilisés depuis l’origine de l’affaire n’ont été avertis de cette initiative venue du Texas.

Le parquet de Nantes confirme ainsi ne pas être à l’origine de cette communication relayée sur les réseaux sociaux par les autorités américaines.

Une affaire toujours non résolue

Quinze ans après les faits, l’affaire Dupont de Ligonnès continue de susciter un fort intérêt médiatique et public. Chaque signalement ou piste potentielle alimente les espoirs de voir progresser l’enquête.

Dans ce contexte, une émission spéciale sera consacrée à cette affaire. Diffusée mardi 31 mars à 19 h 15 sur NOVO 19, elle réunira plusieurs intervenants, dont la journaliste indépendante Anne-Sophie Martin, l’ancien enquêteur Gilles Galloux et l’avocat de la famille, Me Goldenstein.

Ce programme sera également accessible en ligne sur la plateforme officielle NOVO19.fr.

Mini-jeu IMN : Memory spécial enquête

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🕵️","🔍","📁","🧩","🚨","📞","📍","🧠","🗂️", "📸","🐕","🚔","🕵️","🔍","📁","🧩","📞","🐕"], ["🔎","🕵️","📁","📸","📍","🚔","🧠","🗂️","🚨", "📞","🐕","🔍","📁","📸","🧩","🧠","📍","🚨"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done") || card === first) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : parquet de Nantes, bureau du shérif du comté de Brewster, communications médias du 25 et 26 mars 2026.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Un sujet local peut ouvrir une conversation qui compte. »

Lire l’article complet →
À la une26.03.26

Les News

750
Conseil municipal de Nantes : l’installation et l’élection du maire à suivre en direct ce vendredi

Conseil municipal de Nantes : l’installation et l’élection du maire à suivre en direct ce vendredi

Un moment clé de la vie démocratique locale se déroule ce vendredi matin à Nantes. La séance d’installation du nouveau conseil municipal marque le début officiel du mandat et conduit à l’élection du maire par les élus.

Les Nantaises et les Nantais peuvent suivre cet événement en direct, retransmis à la télévision et en ligne. Cette séance constitue une étape importante dans la mise en place de la nouvelle équipe municipale, issue des dernières élections.

Une séance officielle au cœur de la vie démocratique

La séance d’installation du conseil municipal permet aux nouveaux élus de prendre officiellement leurs fonctions. Elle débute par la validation des résultats, puis se poursuit avec l’élection du maire par les conseillers municipaux.

À Nantes, cette élection concerne Johanna Rolland, candidate à sa propre succession. Le vote se déroule à bulletin secret, conformément aux règles du code général des collectivités territoriales.

Une fois le maire élu, le conseil procède ensuite à la désignation des adjoints. Cette organisation constitue l’exécutif municipal pour les années à venir.

Une retransmission accessible à tous

Afin de permettre au plus grand nombre de suivre cette séance, la diffusion est assurée en direct sur plusieurs supports. Les habitants peuvent ainsi assister à ce moment institutionnel sans se déplacer.

Le direct débute ce vendredi à 10 heures. Il permettra de suivre l’ensemble de la séance, depuis l’ouverture jusqu’à l’élection du maire et la mise en place de l’exécutif municipal.

Ce type de retransmission s’inscrit dans une volonté de transparence et d’accès à l’information publique, en donnant à chacun la possibilité de comprendre le fonctionnement des institutions locales.

Mini-jeu IMN : Memory spécial Conseil Municipal

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🏛️","🗳️","📜","👥","🪪","📊","📣","🧾","⚖️", "🏙️","🎤","📺","📡","🗳️","🏛️","📊","📣","⚖️"], ["🏙️","🏛️","📜","📊","🗳️","👥","📺","📡","🎤", "🧾","📣","⚖️","🪪","📊","📜","🏛️","📡","🗳️"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : Télénantes, communication officielle de diffusion du conseil municipal de Nantes.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Ce qui se passe près de chez nous mérite du temps et de l’attention. »

Lire l’article complet →
À la une26.03.26

LE RENDEZ-VOUS DU JOUR

Votre horoscope

Une parenthèse légère pour regarder la journée autrement, signe après signe.

L’horoscope IMN · 19/09/2026

Bélier, votre journée en perspective

Une lecture claire et moderne de vos tendances du jour.

♈︎ Bélier

En paix avec vous-même, vous serez plus disposé encore envers les autres pour harmoniser vos relations. Si vous pouvez prendre des vacances, ce serait idéal. Une coupure du quotidien est indispensable.

Amour

Une délicieuse ambiance expansive bouscule, pour votre bien-être, vos habitudes. Aujourd'hui, respirez l'air du renouveau, accompagnez ces énergies dynamiques, ouvrez-vous à des rencontres harmonieuses. Le chemin de l'amour s'ouvre devant vous, prenez votre temps, dans une confiance totale !

Travail

Le moment est venu de revoir vos plans à la hausse, de donner libre cours à votre créativité si singulière et d'emporter la mise généreusement et immédiatement accordée par des interlocuteurs émerveillés, sous le charme de vos belles propositions.

Finances

Vous êtes parti pour faire des étincelles aujourd'hui ! Vos envies n'ont aucune limite et les commerçants que vous croiserez feront tout pour les combler. Des événements inattendus vous permettront probablement d'obtenir des prix défiant toute concurrence, profitez-en.

Bien-être

Cette journée sera faite de calme et d'optimisme. Vous penserez plus volontiers à vous sans culpabiliser. Vous aurez entièrement raison de vous accorder une pause détente bien méritée. L'occasion de vous déconnecter totalement du quotidien vous fera le plus grand bien.

Votre optimisme encourage les bonnes volontés. Vous envoyez des SMS pour proposer un « After Work » à vos amis. Il était temps de renouer avec cette dynamique créative, qui est votre marque personnelle.

Horoscope de la semaine

Du 14 septembre au 20 septembre 2026

♈︎ Bélier

Une excellente influence dynamise vos projets, alimente votre volonté, vous insuffle force et courage pour vous lancer dans une entreprise. Les contacts avec l'étranger ou de hautes sphères sont favorables à votre évolution. En envisageant les choses de plus haut, de plus loin, vous avez une vue globale de la situation et vous vous agissez à bon escient.

Amour

Le ciel vous garantit une communication fluide et vous excellez dans l'art de nouer des liens, profitez d'une conjoncture toute dévouée à vos soins et prompte à satisfaire le moindre de vos désirs. Votre magnétisme, renforcé par les astres, devrait vous valoir quelques jolis succès auprès de vos admirateurs potentiels et vous ne vous privez pas de butiner allégrement.

Finances

Lente évolution de votre situation financière ! Cette semaine s'amorce un redémarrage positif de tout ce qui touche à votre avoir, n'en faites pas trop ni trop peu, laissez faire le processus ! Réglez vos factures, ne contractez pas de dettes, oubliez pour l'instant tout achat conséquent et vous assurerez bientôt un équilibre pécuniaire bien agréable. Appréciez ce que vous possédez déjà sans chercher à grossir votre portefeuille. Patience !

Bien-être

Tonus et fougue voici un beau programme pour cette semaine, vous n'y loupez pas. Vous abordez les choses avec un grand sourire, c'est comme si rien n'était contraint. Votre caractère énergique vous pousse à faire plusieurs tâches à la fois, vous adorez bouger et vous affairer, vous êtes très rarement fatigué. Une belle euphorie vous permet d'accepter la vie comme elle vient. Vous attirez le positif.

Travail

Vous avez la clef de vos succès futurs alors optimisez vos chances en mettant les bouchées doubles, en jouant sans complexe de votre irrésistible charme et en réussissant avec aisance. Vous avez mis en route de multiples projets qui devraient voir le jour et se concrétiser, le ciel vous inspire et vous invite à redoubler de créativité.

Le conseil de la semaine

C'est une excellente influence pour vous lancer dans une entreprise ou pour obtenir une revalorisation de vos activités. C'est aussi l'occasion de trouver un meilleur accord entre votre routine et vos aspirations profondes. Toutes ces bonnes choses vous donnent envie de faire la fête, faites tout de même attention aux excès nocifs.

Source astrologique autorisée : Mon Horoscope du Jour.

Votre horoscopeINFOS MÉDIA NANTES

Les News

751
Pont Anne-de-Bretagne : un moment historique avec l’arrivée spectaculaire du tablier à Nantes

Pont Anne-de-Bretagne : un moment historique avec l’arrivée spectaculaire du tablier à Nantes

Crédit photo : Nantes Métropole / chantier du pont Anne-de-Bretagne

Nantes a vécu un moment marquant ce mardi avec l’arrivée du tablier du futur pont Anne-de-Bretagne. Sur les quais de Loire, de nombreux habitants se sont rassemblés pour assister à cette étape impressionnante du chantier, mêlant technique, précision et émotion collective.

Dès le matin, petits et grands se sont déplacés pour observer la manœuvre. La rotation du tablier, pièce centrale de l’ouvrage, a suscité l’attention et l’admiration. Ce moment, rare et spectaculaire, s’inscrit dans une transformation majeure du paysage urbain nantais.

Un ouvrage structurant pour les mobilités

Le futur pont Anne-de-Bretagne s’inscrit dans une logique de modernisation des déplacements. À terme, il permettra aux piétons, cyclistes, tramways et automobilistes de traverser la Loire dans de meilleures conditions.

Ce nouvel équipement doit accompagner les évolutions de la métropole. Il vise à faciliter les mobilités du quotidien tout en s’adaptant aux usages actuels et futurs. Le pont devient ainsi un élément clé du réseau urbain nantais.

La maire de Nantes, Johanna Rolland, a salué un moment « exceptionnel » et « historique », soulignant l’importance de cet ouvrage pour la ville et ses habitants. Elle a également insisté sur la dimension collective de cet événement, partagé par toutes les générations présentes sur les quais.

Un défi technique et une prouesse logistique

L’arrivée du tablier par voie fluviale illustre l’ampleur du projet. Acheminé sur la Loire, cet élément massif a nécessité une organisation rigoureuse et une coordination de nombreux corps de métier.

L’architecte Dietmar Feichtinger évoque un projet unique, notamment par sa conception. Le pont a été pensé comme un véritable espace public, offrant une nouvelle manière de traverser le fleuve.

La Loire, fleuve emblématique et contraignant, a imposé des choix techniques spécifiques. La proximité de l’océan et les conditions de navigation ont notamment guidé les méthodes d’acheminement et d’installation du tablier.

À lire aussi : l’arrimage du tablier du pont Anne-de-Bretagne

Retour en images et en détails sur une étape clé du chantier : l’arrimage du tablier sur la Loire, une manœuvre technique impressionnante suivie par de nombreux Nantais.

Découvrir l’article

Un symbole pour la métropole nantaise

Au-delà de l’aspect technique, ce chantier porte une dimension symbolique. Il reflète une volonté d’adaptation et de transformation du territoire, au service des habitants.

Les équipes mobilisées ont été saluées pour leur engagement et la réussite de cette opération délicate. Cette étape marque une avancée concrète dans un projet attendu depuis plusieurs années.

Dans les prochains mois, le pont prendra progressivement forme. Les Nantaises et les Nantais pourront alors se projeter dans un nouvel usage de la Loire, avec un franchissement repensé et modernisé.

Mini-jeu IMN : Memory spécial pont Anne-de-Bretagne

Retrouve toutes les paires le plus rapidement possible. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🌉","🚧","⚙️","🌊","🚢","🛠️","🏗️","🚲","🚋", "🚗","🌉","⚙️","🌊","🚢","🛠️","🏗️","🚲","🚋"], ["🌉","🌊","🚢","🚧","⚙️","🏗️","🛠️","🚋","🚲", "🚗","🌉","🌊","🚢","🚧","⚙️","🏗️","🛠️","🚋"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }

Sources : Nantes Métropole, Ville de Nantes, déclarations publiques lors de l’arrivée du tablier du pont Anne-de-Bretagne.

Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Un sujet local peut ouvrir une conversation qui compte. »

Lire l’article complet →
À la une25.03.26

PAUSE JEU 7 · Observation

Mots mêlés

Trouve les mots cachés dans une grille tactile.

PAUSE LUDIQUEIMN

Les News

752
Nantes : Margot Medkour veut incarner une nouvelle opposition de gauche après les municipales 2026

Nantes : Margot Medkour veut incarner une nouvelle opposition de gauche après les municipales 2026

À Nantes, la figure politique locale Margot Medkour annonce vouloir incarner une nouvelle opposition de gauche face à la majorité menée par Johanna Rolland. À travers une prise de position publique, elle affirme une volonté de reconstruction politique après les élections municipales de 2026.

Selon elle, le principal enseignement du scrutin est une érosion de la gauche, passée de 60 % en 2020 à 52 % en 2026. Elle y voit le signe d’un essoufflement du social-libéralisme porté par l’alliance entre le Parti socialiste et les écologistes.

Une volonté de construire une “gauche populaire”

Margot Medkour affirme vouloir structurer une nouvelle dynamique politique à Nantes. Elle appelle à rassembler autour d’une “gauche populaire”, centrée sur les préoccupations concrètes des habitants.

Cette ligne politique met en avant plusieurs enjeux : le pouvoir d’achat, le logement et les conditions de vie des classes populaires et moyennes. Elle critique notamment l’absence de mise en œuvre du plafonnement des loyers, annoncé en 2021 mais toujours non appliqué selon elle.

Elle pointe également les difficultés liées aux déplacements et à la circulation, évoquant une augmentation des embouteillages et un manque de réponses adaptées.

Un positionnement en rupture avec la majorité locale

Déjà engagée lors du précédent mandat, Margot Medkour affirme poursuivre son rôle d’opposante à la majorité actuelle. Elle estime que les politiques menées ces dernières années n’ont pas apporté de réponses jugées suffisantes sur les enjeux du quotidien.

Elle revendique une ligne indépendante, sans compromis avec les formations de gauche actuellement au pouvoir, et souhaite engager un travail collectif pour repenser les priorités politiques à Nantes.

Un parcours politique ancré localement

Engagée sur des thématiques comme le logement, l’écologie ou encore les quartiers populaires, Margot Medkour s’est fait connaître lors des municipales de 2020, avec près de 9 % des voix sous la bannière du mouvement “Nantes en commun·e·s”.

Pour les élections de 2026, elle s’est présentée avec un nouveau mouvement indépendant, “Nantes Populaire”. Sa liste a obtenu environ 5,5 % des suffrages, sans accéder au conseil municipal.

Malgré ce résultat, elle affirme vouloir poursuivre son engagement et structurer une opposition sur le long terme.

Mini-jeu IMN : Memory spécial politique locale

Retrouve toutes les paires liées à la vie politique et aux enjeux urbains. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🏛️","🗳️","📊","🏙️","🚗","🏠","💶","👥","📢", "🧾","📍","⚖️","🏛️","🏠","🚗","📊","👥","💶"], ["🗳️","🏛️","🏠","🚗","📊","👥","💶","🏙️","📢", "🧾","📍","⚖️","🏛️","🏠","🚗","📊","👥","💶"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }
Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Un sujet local peut ouvrir une conversation qui compte. »

Lire l’article complet →
À la une24.03.26

À SUIVRE AUJOURD’HUI

Le fil local

Les repères du jour, les rendez-vous et les informations qui font vivre le territoire.

Le fil localINFOS MÉDIA NANTES

Culture

753
Nantes : le chœur de l’ONPL fait ses adieux au théâtre Graslin après vingt ans d’engagement

Nantes : le chœur de l’ONPL fait ses adieux au théâtre Graslin après vingt ans d’engagement

Crédit photo : chœur de l’ONPL

À Nantes, le chœur de l’Orchestre national des Pays de la Loire a tiré sa révérence. Vendredi, dans un théâtre Graslin complet, les choristes ont donné leur dernier concert, marquant la fin d’une aventure collective stoppée par des coupes de subventions.

Annoncée en début de saison, la dissolution du chœur en juin 2025 met un terme à plusieurs décennies de travail artistique. Ce concert d’adieu, interprété uniquement avec piano, a pris une dimension particulière pour les artistes comme pour le public.

Vingt ans de travail et d’exigence musicale

Depuis deux décennies, la cheffe de chœur Valérie Fayet a construit un ensemble reconnu pour sa qualité. Les choristes, tous amateurs, se retrouvaient chaque semaine à Nantes ou à Angers pour répéter et suivre un travail approfondi de technique vocale.

Cette exigence s’est traduite par une grande maîtrise musicale, capable d’aborder des œuvres dans différentes langues et styles. Lors de ce dernier concert, le pianiste Thibault Maignan accompagnait les chanteurs sur plusieurs pièces.

La direction précise de Valérie Fayet a permis d’atteindre une homogénéité des pupitres et une richesse de nuances remarquées, notamment dans des œuvres comme les « Trois Hymnes » d’Alfred Schnittke, « Les Djinns » de Gabriel Fauré ou encore les « Chansons moraves » d’Anton Dvorák.

👉 Lire aussi notre article complet sur la fin du chœur de l’ONPL

La disparition du chœur s’inscrit dans un contexte de fortes tensions budgétaires pour l’Orchestre national des Pays de la Loire, confronté à une baisse importante de certaines subventions publiques. Une décision qui met fin à plus de vingt ans de travail artistique et à un projet reconnu dans toute la région.

Une soirée marquée par l’émotion

Sur scène comme dans la salle, l’émotion était palpable. Le public a salué les choristes par une longue ovation debout, tandis qu’une banderole apparaissait au deuxième balcon.

Le bis, « Adios Nonino » d’Astor Piazzolla, a résonné comme un symbole. Une manière de clore une histoire artistique marquée par la passion et l’engagement collectif.

Le chœur retrouvera une dernière fois l’orchestre en juin pour interpréter « l’Hymne à la joie » de Ludwig van Beethoven, ultime rendez-vous avant la disparition définitive de la formation.

Mini-jeu IMN : Memory spécial musique classique

Retrouve toutes les paires liées à l’univers du chœur et de la musique. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🎼","🎶","🎤","🎹","🎻","🎺","🎷","🎵","📜", "🎭","🎬","🎧","🎼","🎶","🎤","🎹","🎻","🎺"], ["🎶","🎼","🎤","🎹","🎻","🎺","🎷","🎵","📜", "🎭","🎬","🎧","🎶","🎼","🎤","🎹","🎻","🎺"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }
Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Une scène, un atelier, une rue : le territoire est plein de rendez-vous. »

Lire l’article complet →
À la une24.03.26

En famille · Sorties / Agenda

754
Fête foraine de Nantes 2026 : 4 nouvelles attractions inédites arrivent cours Saint-Pierre

Fête foraine de Nantes 2026 : 4 nouvelles attractions inédites arrivent cours Saint-Pierre

Crédit photo : archives Cédric Blondeel

La fête foraine fait son retour au cœur de Nantes sur le cours Saint-Pierre. Dès la fin mars, les forains s’installent progressivement pour transformer l’espace en véritable terrain de loisirs mêlant sensations fortes, gourmandises et attractions familiales.

Cette édition de printemps, plus compacte que celle de l’été, rassemble environ 40 attractions et stands. Entre jeux traditionnels, manèges et stands sucrés, l’événement s’impose comme un rendez-vous populaire du printemps nantais.

Le public pourra profiter des installations du samedi 28 mars au dimanche 19 avril 2026, avec une programmation enrichie par plusieurs nouveautés inédites à Nantes.

Des incontournables toujours au rendez-vous

Comme chaque année, la fête foraine conserve ses grands classiques. On retrouve notamment les stands de tirs, loteries, pêches aux canards ou encore les espaces gourmands proposant pommes d’amour, churros, crêpes et barbe à papa.

Côté attractions, plusieurs manèges emblématiques sont déjà présents, comme le Boomerang, le Shaker, le Palais du rire ou encore le train fantôme. Le Bomber Maxxx vient compléter l’offre avec une vue panoramique et des sensations plus intenses.

Quatre nouvelles attractions annoncées en 2026

L’édition 2026 se distingue par l’arrivée de quatre nouveautés inédites à Nantes, destinées à renouveler l’expérience des visiteurs et à renforcer l’offre en sensations.

Le Flashback, tout juste sorti des ateliers italiens de Moser’s Rides, promet une expérience particulièrement intense avec des rotations sur plusieurs axes.
Voir un aperçu du Flashback

Le Can Can Show, attraction de type sauterelle unique en France, alterne mouvements avant et arrière avec des phases de rebond accessibles au plus grand nombre.
Voir un aperçu du Can Can Show

Le Sound Machine, arrivé récemment de Hollande, s’impose comme une attraction festive et puissante, avec rotations rapides et ambiance sonore immersive.
Voir un aperçu du Sound Machine

Enfin, le Font Romeu, revisite la traditionnelle chenille avec une version modernisée mêlant vitesse, musique et effets lumineux pour un public familial.
Voir un aperçu du Font Romeu

Horaires et accès

Pendant toute la durée de l’événement, la fête foraine est accessible :

  • De 14h à 23h du lundi au jeudi et le dimanche
  • Jusqu’à 1h du matin les vendredis et samedis

Des tarifs réduits sont également proposés chaque mercredi via une carte promotionnelle dédiée.

Installée en plein centre-ville, la fête foraine reste facilement accessible et attire chaque année un public varié, entre familles et amateurs de sensations fortes.

Une ouverture en parallèle de la grande braderie

Le 28 mars 2026, jour d’ouverture de la fête, le centre-ville de Nantes accueillera également la Grande Braderie. Plus de 150 commerces participeront à cet événement, accompagné de plusieurs animations et d’une programmation musicale.

Cette simultanéité devrait renforcer l’affluence dès le lancement de la fête foraine et dynamiser l’ensemble du centre-ville.

Mini-jeu IMN : Memory spécial fête foraine

Retrouve toutes les paires inspirées de l’univers de la fête foraine. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🎡","🎢","🎠","🎟️","🍭","🍿","🎯","🎪","🎇", "🎵","🎤","🍩","🎡","🎢","🎠","🍭","🍿","🎯"], ["🎡","🎠","🎢","🍿","🍭","🎯","🎟️","🎪","🎇", "🎵","🎤","🍩","🎡","🎠","🎢","🍿","🍭","🎯"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }
Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Les artistes racontent aussi la ville qui les entoure. »

Lire l’article complet →
À la une24.03.26

PAUSE JEU 10 · Quiz rapide

Quiz Rush

Réponds aux questions avant la fin du temps.

PAUSE LUDIQUEIMN

Culture

755
Saint-Brevin-les-Pins : le festival Lire sous les Pins revient pour une 6e édition ouverte à tous

Saint-Brevin-les-Pins : le festival Lire sous les Pins revient pour une 6e édition ouverte à tous

À Saint-Brevin-les-Pins, le festival Lire sous les Pins fait son retour pour une 6e édition. Organisé par l’association du même nom, l’événement met une nouvelle fois la lecture et la rencontre avec les auteurs au cœur de sa programmation.

Temps fort du festival, le grand salon se tiendra le samedi 28 mars à la salle Étoile de Jade. Ouvert à tous, il réunira visiteurs, auteurs et passionnés autour de moments d’échanges et de découvertes.

Rencontres, dédicaces et animations pour tous les publics

Le festival propose une programmation variée, pensée pour un large public. Au programme : rencontres avec des auteurs, séances de dédicaces et différentes animations accessibles tout au long de la journée.

Les plus jeunes ne sont pas oubliés, avec des ateliers et des spectacles spécialement conçus pour eux. L’objectif reste le même : transmettre le goût de la lecture dans une ambiance conviviale et accessible.

Ce rendez-vous s’inscrit dans une dynamique locale qui valorise la culture et favorise les échanges entre créateurs et habitants.

Un événement ancré dans la vie culturelle locale

Au fil des éditions, Lire sous les Pins s’est imposé comme un rendez-vous attendu à Saint-Brevin-les-Pins. L’événement permet de rapprocher les publics du monde du livre, tout en mettant en lumière des auteurs et des univers variés.

Avec cette nouvelle édition, le festival poursuit son développement en proposant une formule accessible et ouverte, dans un cadre adapté aux familles comme aux amateurs de littérature.

Consulter les informations complètes

Mini-jeu IMN : Memory spécial lecture

Retrouve toutes les paires liées à l’univers du livre. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["📚","📖","✍️","🖋️","📘","📗","📕","🧠","💡", "🎭","📜","🗂️","📚","💡","📖","📘","📕","✍️"], ["📖","📚","📘","📕","📗","✍️","🖋️","📜","🧠", "💡","🎭","🗂️","📚","📖","📘","📕","✍️","💡"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }
Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Une sortie devient un souvenir quand on la partage. »

Lire l’article complet →
À la une24.03.26

Culture

756
Nantes : une saison 2026 riche en festivals gratuits avec l’Association culturelle de l’été

Nantes : une saison 2026 riche en festivals gratuits avec l’Association culturelle de l’été

Crédit photo : Aux heures d’été

À Nantes, l’Association culturelle de l’été s’impose comme un acteur majeur de la vie culturelle en espace public. Chaque année, elle propose une programmation ambitieuse, accessible et gratuite, portée par une volonté claire : faire vivre la culture au plus près des habitants.

Pour 2026, trois grands événements structureront la saison : Aux heures d’été, Les Rendez-vous de l’Erdre et L’étoile verte, premiers pas. Trois rendez-vous complémentaires qui investissent parcs, rivières et espaces naturels de la métropole.

Une vision culturelle ouverte et accessible

L’Association culturelle de l’été défend une approche inclusive, avec des festivals gratuits, ouverts à toutes et tous. Les propositions artistiques se déploient dans des lieux variés, favorisant la rencontre entre les publics, les artistes et le territoire.

Cette dynamique s’inscrit également dans des projets comme Jazz en phase, qui contribuent à faire rayonner la scène musicale locale.

Aux heures d’été : un voyage artistique au cœur de Nantes

Du 7 juillet au 7 août 2026, le festival Aux heures d’été transformera les parcs nantais en scènes à ciel ouvert. Concerts, spectacles jeune public, cinéma en plein air et rencontres artistiques rythmeront cette nouvelle édition.

L’événement se distingue par une programmation ouverte sur les cultures d’ici et d’ailleurs. Entre artistes émergents et créations inédites, le festival invite à la découverte, dans une ambiance conviviale et détendue.

Les Rendez-vous de l’Erdre : le jazz au fil de l’eau

Du 24 au 30 août 2026, Les Rendez-vous de l’Erdre réuniront musique et patrimoine nautique. Ce festival, entièrement gratuit, s’étend sur 86 kilomètres, de Nantes jusqu’au canal de Nantes à Brest, en traversant 14 communes.

Considéré comme l’un des plus grands festivals de jazz en France, il propose concerts en plein air et rassemblements de bateaux traditionnels. Pour sa 40e édition, une fanfare participative est annoncée, ouverte aux musiciens amateurs et aux ensembles locaux.

L’étoile verte : explorer autrement la métropole

Avec L’étoile verte, premiers pas, l’association propose une autre manière de découvrir Nantes et ses alentours. Le projet met en valeur des parcours de randonnée le long des cours d’eau, répartis sur six axes majeurs du territoire.

En 2026, plusieurs week-ends d’exploration artistique sont prévus dans ces espaces naturels. L’occasion de mêler promenade, création et découverte du patrimoine environnemental.

Débord de Loire : un retour attendu, mais pas en 2026

Événement emblématique de l’estuaire, Débord de Loire ne sera pas programmé en 2026. Sa dernière édition, organisée en juin 2025, avait rassemblé une grande parade nautique et de nombreuses animations sur les quais.

Les prochaines dates de cet événement, qui mêle navigation, spectacles et rencontres autour du fleuve, restent à venir.

Mini-jeu IMN : Memory spécial festivals nantais

Retrouve toutes les paires liées aux festivals et à la culture locale. Moins de coups + moins de temps = meilleur score.

Coups : 0Temps : 0 sScore : 0
(function(){if(window.__memIMN6x6_global) return; window.__memIMN6x6_global = true;window.imnTrack = window.imnTrack || function(){};const GAME = "memory6x6";const sets = [ ["🎷","🚤","🎶","🌿","🎭","🌊","🎺","🌳","🎤", "⚓","🎬","🎼","🌞","🎷","🌊","🎭","🌿","🎺"], ["🎶","🎷","🌳","🎭","🎤","🌊","🎺","🎬","⚓", "🌿","🎼","🌞","🚤","🎷","🎭","🌿","🎶","🎺"] ];let cards=[]; let first=null,second=null,lock=false; let matches=0,moves=0,timer=0; let timerInterval=null;const grid=document.getElementById("mem-grid"); const wrap=document.getElementById("mem-wrap"); const movesEl=document.getElementById("mem-moves"); const timerEl=document.getElementById("mem-timer"); const scoreEl=document.getElementById("mem-score"); const endEl=document.getElementById("mem-end");function getSet(){ return sets[Math.floor(Math.random()*sets.length)]; }function shuffle(){ const base = getSet(); cards=[...base,...base].sort(()=>Math.random()-0.5); }function startTimer(){ if(timerInterval) return; timerInterval=setInterval(()=>{ timer++; timerEl.textContent=timer+" s"; updateScore(); },1000); }function stopTimer(){ clearInterval(timerInterval); timerInterval=null; }function calcScore(){ let score = 10000 - (moves*10 + timer*6); return Math.max(0, score); }function updateScore(){ scoreEl.textContent = calcScore(); }function render(){ grid.innerHTML=""; cards.forEach(icon=>{ const card=document.createElement("div"); card.className="mem-card"; card.dataset.icon=icon;card.innerHTML=`
${icon}
`;card.onclick=()=>flip(card); grid.appendChild(card); }); }function flash(type){ wrap.classList.remove("flash-green","flash-red"); wrap.classList.add(type==="good"?"flash-green":"flash-red"); setTimeout(()=>wrap.classList.remove("flash-green","flash-red"),200); }function flip(card){if(lock || card.classList.contains("done")) return;startTimer(); imnTrack(GAME+"_click");card.classList.add("flip");if(!first){ first=card; return; }second=card; lock=true; moves++; movesEl.textContent=moves; updateScore();if(first.dataset.icon===second.dataset.icon){imnTrack(GAME+"_match");flash("good");setTimeout(()=>{ first.classList.add("done","match"); second.classList.add("done","match");matches++; first=null;second=null;lock=false;if(matches===18) endGame();},250);}else{imnTrack(GAME+"_wrong");flash("bad");setTimeout(()=>{ first.classList.remove("flip"); second.classList.remove("flip"); first=null;second=null;lock=false; },600); } }function endGame(){stopTimer();const finalScore = calcScore();imnTrack(GAME+"_complete",{ game:GAME, moves, time:timer, score:finalScore });endEl.style.display="block"; endEl.textContent = "Score : "+finalScore+" | "+moves+" coups | "+timer+"s"; }function restart(){imnTrack(GAME+"_restart",{game:GAME});first=null;second=null;lock=false; matches=0;moves=0;timer=0;clearInterval(timerInterval); timerInterval=null;movesEl.textContent=0; timerEl.textContent="0 s"; scoreEl.textContent="0"; endEl.style.display="none";shuffle(); render(); }document.getElementById("mem-restart").onclick=restart;document.addEventListener("DOMContentLoaded",()=>{ shuffle(); render(); imnTrack(GAME+"_start",{game:GAME}); });})();.mem-wrap{ max-width:420px; margin:0 auto; padding:10px; border-radius:12px; border:2px solid #5532F0; transition:.2s; } .flash-green{box-shadow:0 0 25px #00e676;} .flash-red{box-shadow:0 0 25px #ff1744;}.mem-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }.mem-card{aspect-ratio:1/1;perspective:800px;} .mem-inner{ width:100%;height:100%;position:relative; transform-style:preserve-3d;transition:.4s;border-radius:8px; } .mem-card.flip .mem-inner{transform:rotateY(180deg);}.mem-front,.mem-back{ position:absolute;width:100%;height:100%; display:flex;align-items:center;justify-content:center; border-radius:8px;font-size:22px;backface-visibility:hidden; }.mem-front{background:#fff;border:2px solid #5532F0;} .mem-back{background:#5532F0;color:#fff;transform:rotateY(180deg);}.mem-card.match .mem-inner{ animation:rainbowGlow 1s infinite alternate; } @keyframes rainbowGlow{ 0%{box-shadow:0 0 10px red;} 25%{box-shadow:0 0 10px orange;} 50%{box-shadow:0 0 10px yellow;} 75%{box-shadow:0 0 10px green;} 100%{box-shadow:0 0 10px blue;} }.imn-btn{ background:#5532F0;color:#fff;padding:10px 14px; border-radius:8px;font-weight:bold;cursor:pointer;margin-top:10px; }
Dans ce magazineCet aperçu présente une partie de l’article. Continuez la lecture sur Infos Média Nantes pour découvrir l’intégralité du sujet.

« Il suffit parfois d’une adresse pour changer une soirée. »

Lire l’article complet →
À la une24.03.26

INFOS MÉDIA NANTES · À LA UNE

À très bientôt
pour de nouvelles
actualités locales.

Actualités, personnalités, événements, culture : à découvrir au fil des publications.infos-media-nantes.fr
Couverture