{"id":12,"date":"2026-03-05T11:21:08","date_gmt":"2026-03-05T11:21:08","guid":{"rendered":"http:\/\/fzbrrzj.cluster121.hosting.ovh.net\/b2truth.com\/?page_id=12"},"modified":"2026-03-25T13:29:51","modified_gmt":"2026-03-25T13:29:51","slug":"home","status":"publish","type":"page","link":"https:\/\/b2truth.com\/","title":{"rendered":""},"content":{"rendered":"\n<!--\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551              B2T \u2014 TOUS LES R\u00c9GLAGES SONT ICI                   \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2551  \ud83d\udfe0 ORANGE  = Position (haut\/bas, gauche\/droite)                 \u2551\n\u2551  \ud83d\udfe2 VERT    = Taille                                             \u2551\n\u2551  \ud83d\udfe3 VIOLET  = Zoom \/ \u00e9chelle                                     \u2551\n\u2551  \u26aa BLANC   = Vitesse d'animation                                \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n-->\n<script>\nwindow.B2T = {\n  sgTaille  : 0.72,\n  sgHaut    : 0.54,\n  sgGauche  : 0.53,\n  irTaille  : 0.95,\n  irDecalX  : 0,\n  irDecalY  : -0.2,\n  rotation  : 0.35,\n  glowStep  : 60,\n  solHauteur: 22,\n  dhdLargeur    : 0.85,\n  dhdGauche     : 0.50,\n  dhdZoomLargeur: 2.5,\n  dhdDescente   : 82,\n  dhdZoomDescente: 30,\n  debug : false,\n  btns: [\n    { url:'\/index.php\/sante\/',           bx:240, by:55,  bw:110, bh:50 },\n    { url:'\/index.php\/culture\/',         bx:138, by:75,  bw:90,  bh:50 },\n    { url:'\/index.php\/streetwear\/',      bx:345, by:80,  bw:115, bh:55 },\n    { url:'\/index.php\/famille\/',         bx:88,  by:128, bw:130, bh:50 },\n    { url:'\/index.php\/business\/',        bx:385, by:135, bw:130, bh:50 },\n    { url:'\/index.php\/savoirs-oublies\/', bx:145, by:190, bw:130, bh:60 },\n    { url:'\/index.php\/musique\/',         bx:335, by:190, bw:130, bh:60 },\n  ],\n};\n<\/script>\n\n<style>\nbody, html { overflow:hidden!important; touch-action:none!important; }\n\n#b2t-root {\n  position:fixed!important; top:0; left:0;\n  width:100vw!important; height:100vh!important;\n  overflow:visible!important; background:transparent!important;\n  z-index:9000; pointer-events:none;\n}\n\n#b2t-logo-wrap {\n  position:absolute; top:52px; left:50%;\n  transform:translateX(-50%);\n  z-index:200; pointer-events:none;\n}\n#b2t-logo {\n  display:block; max-height:60px; max-width:240px; width:auto;\n  filter:drop-shadow(0 0 10px rgba(0,180,255,0.8));\n  animation:lp 3s ease-in-out infinite;\n}\n@keyframes lp {\n  0%,100%{ filter:drop-shadow(0 0 8px rgba(0,180,255,0.5)); }\n  50%    { filter:drop-shadow(0 0 22px rgba(0,220,255,1)); }\n}\n\n#b2t-sg { position:absolute; z-index:10; pointer-events:all; cursor:crosshair; }\n\n#b2t-outer {\n  position:absolute; top:0; left:0; width:100%; height:100%;\n  z-index:30; pointer-events:none; transition:filter 0.25s ease;\n}\n\n#b2t-inner {\n  position:absolute!important; top:0!important; left:0!important;\n  width:100%!important; height:100%!important;\n  right:auto!important; bottom:auto!important;\n  display:block!important; margin:0!important; padding:0!important;\n  z-index:20; pointer-events:none;\n  transform-origin:50% 50%; will-change:transform;\n  mix-blend-mode:multiply;\n  filter:brightness(0.85) saturate(1.1);\n  transition:filter 0.8s ease;\n}\n#b2t-inner.g1{ filter:brightness(0.90) saturate(1.2) drop-shadow(0 0 5px rgba(100,180,255,0.5)); }\n#b2t-inner.g2{ filter:brightness(1.00) saturate(1.5) drop-shadow(0 0 8px rgba(100,180,255,0.65)); }\n#b2t-inner.g3{ filter:brightness(1.10) saturate(1.8) drop-shadow(0 0 12px rgba(120,200,255,0.8)); }\n#b2t-inner.g4{ filter:brightness(1.20) saturate(2.0) drop-shadow(0 0 16px rgba(140,210,255,0.9)); }\n#b2t-inner.g5{ filter:brightness(1.30) saturate(2.2) drop-shadow(0 0 20px rgba(160,220,255,0.95)); }\n#b2t-inner.g6{ filter:brightness(1.40) saturate(2.4) drop-shadow(0 0 24px rgba(180,230,255,1)); }\n#b2t-inner.gmax{\n  filter:brightness(1.3) saturate(0.5);\n  transition:filter 0.2s ease;\n}\n\n#b2t-sol-mask {\n  display:none!important; position:fixed; left:0; width:100vw;\n  pointer-events:none; z-index:9100;\n  background:linear-gradient(to top,\n    rgba(82,68,52,1.00) 0%, rgba(90,75,58,0.92) 25%,\n    rgba(100,83,64,0.70) 55%, rgba(110,92,72,0.30) 80%, transparent 100%);\n  -webkit-mask-image:radial-gradient(ellipse 55% 100% at 50% 100%,black 0%,black 45%,transparent 72%);\n  mask-image:radial-gradient(ellipse 55% 100% at 50% 100%,black 0%,black 45%,transparent 72%);\n}\n\n#b2t-dhd-wrap {\n  position:fixed!important; bottom:0!important; z-index:9500!important;\n  pointer-events:all!important; transform-origin:bottom center!important;\n  transition:transform 1.6s cubic-bezier(.22,1,.36,1),\n             width 1.6s cubic-bezier(.22,1,.36,1),\n             opacity 0.8s ease!important;\n}\n#b2t-dhd-img { display:block!important; width:100%!important; height:auto!important; filter:none; }\n\n#b2t-btns { position:absolute; inset:0; pointer-events:none; }\n.b2t-btn {\n  position:absolute; pointer-events:none; opacity:0;\n  background:transparent; border:none; border-radius:50%;\n  cursor:default; transition:opacity .3s ease; font-size:0; color:transparent;\n}\n#b2t-dhd-wrap.zoomed .b2t-btn {\n  opacity:1; pointer-events:all!important; cursor:pointer!important; transition-delay:0.35s;\n}\n.b2t-btn.hovered { opacity:1!important; pointer-events:all!important; cursor:pointer!important; }\n.b2t-btn.debug-on {\n  background:rgba(255,0,0,0.25)!important; border:2px dashed red!important;\n  border-radius:50%!important; opacity:1!important; font-size:8px!important;\n  color:white!important; display:flex!important; align-items:center!important;\n  justify-content:center!important; text-align:center!important;\n  font-weight:bold!important; text-shadow:0 0 3px black!important;\n}\n\n\/* Canvas vortex dans la porte *\/\n#b2t-vortex-canvas {\n  position:absolute; top:0; left:0;\n  width:100%; height:100%;\n  z-index:50; pointer-events:none;\n  opacity:0; transition:opacity 0.2s;\n}\n\n\/* Canvas tunnel plein \u00e9cran *\/\n#b2t-canvas {\n  position:fixed; inset:0; width:100vw; height:100vh;\n  z-index:9999; display:none; pointer-events:none; background:#000;\n}\n\n\/* \u2550\u2550 FONDS PAGES SANT\u00c9 & SAVOIRS OUBLI\u00c9S \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   Ces styles s'appliquent uniquement sur ces deux pages\n   L'image de fond est partag\u00e9e entre les deux\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nbody.page-id-44,\nbody.page-id-20 {\n  background-image: url('https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/Fond-SO.png') !important;\n  background-size: cover !important;\n  background-position: center !important;\n  background-attachment: fixed !important;\n  background-repeat: no-repeat !important;\n}\n<\/style>\n\n\n<!-- \u2550\u2550 HTML \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div id=\"b2t-root\">\n\n  <div id=\"b2t-logo-wrap\">\n    <img decoding=\"async\" id=\"b2t-logo\" src=\"https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/B2T-TP.png\" alt=\"B2T\"\/>\n  <\/div>\n\n  <div id=\"b2t-sg\">\n    <img decoding=\"async\" id=\"b2t-outer\" src=\"https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/outer-ring-1.png\" alt=\"Outer\"\/>\n    <img decoding=\"async\" id=\"b2t-inner\" src=\"https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/inner_ring_accents.png\" alt=\"Inner\"\/>\n    <canvas id=\"b2t-vortex-canvas\"><\/canvas>\n  <\/div>\n\n  <div id=\"b2t-sol-mask\"><\/div>\n\n  <div id=\"b2t-dhd-wrap\">\n    <img decoding=\"async\" id=\"b2t-dhd-img\" src=\"https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/IMG_20260315_125747.png\" alt=\"DHD\"\/>\n    <div id=\"b2t-btns\"><\/div>\n  <\/div>\n\n<\/div>\n\n<canvas id=\"b2t-canvas\"><\/canvas>\n<audio id=\"b2t-sound\" preload=\"auto\">\n  <source src=\"https:\/\/b2truth.com\/wp-content\/uploads\/2026\/03\/stargate-whoosh.mp3\" type=\"audio\/mpeg\"\/>\n<\/audio>\n\n\n<!-- \u2550\u2550 JS MOTEUR \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n(function(){\n  var C      = window.B2T;\n  var sg     = document.getElementById('b2t-sg');\n  var outer  = document.getElementById('b2t-outer');\n  var inn    = document.getElementById('b2t-inner');\n  var sol    = document.getElementById('b2t-sol-mask');\n  var dhd    = document.getElementById('b2t-dhd-wrap');\n  var vCv    = document.getElementById('b2t-vortex-canvas');\n  var sound  = document.getElementById('b2t-sound');\n  var canvas = document.getElementById('b2t-canvas');\n  var ctx    = canvas ? canvas.getContext('2d') : null;\n\n  \/* \u2500\u2500 Boutons \u2500\u2500 *\/\n  var btnsContainer = document.getElementById('b2t-btns');\n  C.btns.forEach(function(b){\n    var btn = document.createElement('button');\n    btn.className = 'b2t-btn'; btn.dataset.url = b.url;\n    btn.style.left = b.bx+'px'; btn.style.top = b.by+'px';\n    btn.style.width = b.bw+'px'; btn.style.height = b.bh+'px';\n    btn.style.borderRadius = '50%'; btn.style.transform = 'translate(-50%,-50%)';\n    if(C.debug) btn.textContent = b.url.replace(\/\\\/\/g,'');\n    btnsContainer.appendChild(btn);\n  });\n  var btns = document.querySelectorAll('.b2t-btn');\n  if(C.debug) btns.forEach(function(b){ b.classList.add('debug-on'); });\n\n  \/* \u2500\u2500 Layout \u2500\u2500 *\/\n  var sgSize = 0;\n  function layout(){\n    var vw=window.innerWidth, vh=window.innerHeight;\n    sgSize = Math.round(Math.min(vw,vh)*C.sgTaille);\n    sg.style.width=sg.style.height=sg.style.minWidth=sg.style.minHeight=\n    sg.style.maxWidth=sg.style.maxHeight=sgSize+'px';\n    sg.style.top  = Math.round(vh*C.sgHaut)+'px';\n    sg.style.left = Math.round(vw*C.sgGauche)+'px';\n    sg.style.transform = 'translate(-50%,-50%)';\n    var sgBot = Math.round(vh*C.sgHaut)+sgSize\/2;\n    sol.style.height = Math.round(sgSize*(C.solHauteur\/100))+'px';\n    sol.style.bottom = Math.round(vh-sgBot)+'px';\n    var sc=Math.min(Math.max(C.irTaille||0.88,0.3),1.0);\n    inn.style.transform='rotate('+angle+'deg) scale('+sc+')';\n    if(!inn._measured) measureAndCorrect();\n    vCv.width=sgSize; vCv.height=sgSize;\n    var dw=Math.min(Math.round(vw*C.dhdLargeur),480);\n    dhd.style.width=dw+'px'; dhd.style.left=Math.round(vw*C.dhdGauche)+'px';\n    if(!dhd.classList.contains('init')){\n      dhd.classList.add('init'); dhd.style.transition='none';\n      dhd.style.transform='translateX(-50%) translateY('+C.dhdDescente+'%)';\n      setTimeout(function(){ dhd.style.transition=''; },30);\n    }\n  }\n  layout(); window.addEventListener('resize',layout);\n\n  \/* \u2500\u2500 Correction d\u00e9calage PNG \u2500\u2500 *\/\n  function measureAndCorrect(){\n    if(!outer.complete||!inn.complete){\n      outer.addEventListener('load',measureAndCorrect,{once:true});\n      inn.addEventListener('load',measureAndCorrect,{once:true}); return;\n    }\n    inn._measured=true;\n    var sz=200,offO=document.createElement('canvas'),offI=document.createElement('canvas');\n    offO.width=offO.height=offI.width=offI.height=sz;\n    var cO=offO.getContext('2d'),cI=offI.getContext('2d');\n    cO.drawImage(outer,0,0,sz,sz); cI.drawImage(inn,0,0,sz,sz);\n    function com(c,w,h){\n      var d=c.getImageData(0,0,w,h).data,sx=0,sy=0,t=0;\n      for(var y=0;y<h;y++) for(var x=0;x<w;x++){var a=d[(y*w+x)*4+3];if(a>10){sx+=x;sy+=y;t++;}}\n      return t>0?{x:sx\/t,y:sy\/t}:{x:w\/2,y:h\/2};\n    }\n    var coO=com(cO,sz,sz),coI=com(cI,sz,sz);\n    inn.style.transformOrigin=(50+(coO.x-coI.x)\/sz*100)+'% '+(50+(coO.y-coI.y)\/sz*100)+'%';\n  }\n\n  \/* \u2500\u2500 Rotation \u2500\u2500 *\/\n  var angle=0,totalAngle=0,glowLvl=0,spinning=false,raf=null;\n  function spin(){\n    if(!spinning) return;\n    angle=(angle+C.rotation)%360; totalAngle+=C.rotation;\n    var sc=Math.min(Math.max(C.irTaille||0.88,0.3),1.0);\n    inn.style.transform='rotate('+angle+'deg) scale('+sc+')';\n    var lvl=Math.min(Math.floor(totalAngle\/C.glowStep),6);\n    if(lvl!==glowLvl){ glowLvl=lvl; inn.className=inn.className.replace(\/\\bg\\d\\b\/g,'').trim(); if(glowLvl>0) inn.classList.add('g'+glowLvl); }\n    raf=requestAnimationFrame(spin);\n  }\n\n  \/* \u2500\u2500 DHD \u2500\u2500 *\/\n  var zoomed=false,activated=false;\n  function zoomIn(){\n    if(zoomed||activated) return; zoomed=true;\n    if(!spinning){ spinning=true; requestAnimationFrame(spin); }\n    var vw=window.innerWidth,dw=Math.min(Math.round(vw*C.dhdLargeur),480);\n    dhd.style.width=dw+'px';\n    dhd.style.transform='translateX(-50%) translateY('+C.dhdZoomDescente+'%) scale('+C.dhdZoomLargeur+')';\n    dhd.classList.add('zoomed');\n  }\n  function zoomOut(){\n    btns.forEach(function(b){b.classList.remove('hovered');}); dhd.classList.remove('zoomed');\n    requestAnimationFrame(function(){ dhd.style.transform='translateX(-50%) translateY(55%) scale(1.6)'; });\n  }\n  document.addEventListener('mousemove',function f(){zoomIn();document.removeEventListener('mousemove',f);});\n  document.addEventListener('touchstart',function f(){zoomIn();document.removeEventListener('touchstart',f);},{passive:true});\n\n  btns.forEach(function(btn){\n    btn.addEventListener('mouseenter',function(){ if(!dhd.classList.contains('zoomed')) return; btn.classList.add('hovered'); });\n    btn.addEventListener('mouseleave',function(){ btn.classList.remove('hovered'); });\n    btn.addEventListener('touchstart',function(){ if(!dhd.classList.contains('zoomed')) return; btn.classList.add('hovered'); },{passive:true});\n    btn.addEventListener('touchend',function(){ setTimeout(function(){btn.classList.remove('hovered');},600); });\n    btn.addEventListener('click',function(){\n      if(activated) return;\n      var isMobile=('ontouchstart' in window);\n      if(!isMobile&&!btn.classList.contains('hovered')) return;\n      if(!dhd.classList.contains('zoomed')) return;\n      activated=true; var url=btn.dataset.url||'\/';\n      zoomOut(); spinning=false; cancelAnimationFrame(raf);\n      inn.className=inn.className.replace(\/\\bg\\d\\b\/g,'').trim(); inn.classList.add('gmax');\n\n      setTimeout(function(){\n        lightChevrons(function(){\n          try{ sound.play(); }catch(e){}\n          launchKawoosh(function(){\n            dhd.style.opacity='0'; inn.style.opacity='0.15';\n            \/* Fondu noir puis tunnel \u2014 effet immersif sans bouger la porte *\/\n            var fadeEl=document.createElement('div');\n            fadeEl.style.cssText='position:fixed;inset:0;background:#000;opacity:0;z-index:9998;pointer-events:none;transition:opacity 0.6s ease;';\n            document.body.appendChild(fadeEl);\n            requestAnimationFrame(function(){ fadeEl.style.opacity='1'; });\n            setTimeout(function(){ startTunnel(url); },650);\n          });\n        });\n      },900);\n    });\n  });\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CHEVRONS \u2014 pulsation orange s\u00e9quentielle sur l'outer ring\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  function lightChevrons(cb){\n    var step=0, total=9;\n    var iv=setInterval(function(){\n      if(step>=total){ clearInterval(iv); setTimeout(cb,200); return; }\n      outer.style.filter='brightness('+(1+step*0.015)+')';\n      step++;\n    },210);\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     KAWOOSH CIN\u00c9MATOGRAPHIQUE\n     Fid\u00e8le \u00e0 la s\u00e9rie : explosion d'eau bleue qui jaillit\n     vers l'avant puis se r\u00e9tracte en vortex stable\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  function launchKawoosh(cb){\n    var cv2=vCv, c2=cv2.getContext('2d');\n    var W=cv2.width, H=cv2.height, cx=W\/2, cy=H\/2;\n    var R=W*0.44; \/* rayon int\u00e9rieur de la porte *\/\n    cv2.style.opacity='1';\n\n    \/* Gerbes d'eau \u2014 lignes qui jaillissent depuis le centre *\/\n    var jets=[];\n    for(var i=0;i<80;i++){\n      jets.push({\n        a: Math.random()*Math.PI*2,\n        r: Math.random()*R*0.3,\n        sp: 4+Math.random()*9,\n        w: 1+Math.random()*3,\n        life: 0.5+Math.random()*0.5,\n        hue: 190+Math.random()*30\n      });\n    }\n\n    \/* Gouttelettes *\/\n    var drops=[];\n    for(var j=0;j<200;j++){\n      drops.push({\n        a: Math.random()*Math.PI*2,\n        r: Math.random()*R*0.2,\n        sp: 2+Math.random()*7,\n        sz: 1+Math.random()*3,\n        life: Math.random()\n      });\n    }\n\n    var t0=performance.now();\n    var TOTAL=2800; \/* ms *\/\n\n    function draw(ts){\n      var elapsed=ts-t0;\n      var p=Math.min(elapsed\/TOTAL,1);\n      c2.clearRect(0,0,W,H);\n\n      \/* \u2500\u2500 Phase 0\u21920.25 : explosion \u2014 vague primaire jaillit vers l'avant \u2500\u2500 *\/\n      \/* \u2500\u2500 Phase 0.25\u21920.65 : vortex stable \u2014 disque d'eau tourbillonne \u2500\u2500 *\/\n      \/* \u2500\u2500 Phase 0.65\u21921.0 : absorption \u2014 vortex se resserre et dispara\u00eet \u2500\u2500 *\/\n\n      \/* Masque circulaire : tout se passe \u00e0 l'int\u00e9rieur du cercle de la porte *\/\n      c2.save();\n      c2.beginPath(); c2.arc(cx,cy,R,0,Math.PI*2); c2.clip();\n\n      \/* \u2500\u2500 Disque de fond bleu\/blanc \u2500\u2500 *\/\n      var discAlpha = p<0.15 ? p\/0.15 : p<0.65 ? 1 : 1-(p-0.65)\/0.35;\n      discAlpha *= 0.92;\n      var gd=c2.createRadialGradient(cx,cy,0,cx,cy,R);\n      gd.addColorStop(0,   'rgba(240,250,255,'+discAlpha+')');\n      gd.addColorStop(0.25,'rgba(160,220,255,'+(discAlpha*0.95)+')');\n      gd.addColorStop(0.55,'rgba(60,140,230,'+(discAlpha*0.85)+')');\n      gd.addColorStop(0.85,'rgba(20,80,180,'+(discAlpha*0.6)+')');\n      gd.addColorStop(1.0, 'rgba(5,30,100,'+(discAlpha*0.3)+')');\n      c2.fillStyle=gd; c2.fillRect(0,0,W,H);\n\n      \/* \u2500\u2500 Vague primaire d'explosion (phase 0\u21920.35) \u2500\u2500 *\/\n      if(p<0.40){\n        var wp=p\/0.40;\n        \/* Vague principale \u2014 anneau blanc qui se dilate vers le bord *\/\n        var wR=R*(0.05+wp*1.1);\n        var wA=(1-wp)*0.95;\n        var wW=12*(1-wp*0.6)+4;\n        c2.save();\n        c2.beginPath(); c2.arc(cx,cy,Math.min(wR,R*1.05),0,Math.PI*2);\n        c2.strokeStyle='rgba(255,255,255,'+wA+')';\n        c2.lineWidth=wW; c2.shadowColor='rgba(200,240,255,1)'; c2.shadowBlur=30; c2.stroke();\n        \/* 2e vague l\u00e9g\u00e8rement en retard *\/\n        if(wp>0.15){\n          var w2p=(wp-0.15)\/0.85, w2R=R*(0.02+w2p*0.95);\n          c2.beginPath(); c2.arc(cx,cy,Math.min(w2R,R*1.0),0,Math.PI*2);\n          c2.strokeStyle='rgba(180,230,255,'+(0.7*(1-w2p))+')';\n          c2.lineWidth=7*(1-w2p*0.5); c2.shadowBlur=20; c2.stroke();\n        }\n        c2.restore();\n      }\n\n      \/* \u2500\u2500 Gerbes d'eau \u2500\u2500 *\/\n      jets.forEach(function(j){\n        j.r+=j.sp*(p<0.35?2.8:p<0.65?1.2:0.5);\n        if(j.r>R*1.1) j.r=Math.random()*R*0.15;\n        var jA=discAlpha*j.life*Math.min(j.r\/(R*0.15),1);\n        var x1=cx+Math.cos(j.a)*Math.max(j.r-j.sp*3,0);\n        var y1=cy+Math.sin(j.a)*Math.max(j.r-j.sp*3,0);\n        var x2=cx+Math.cos(j.a)*j.r, y2=cy+Math.sin(j.a)*j.r;\n        c2.save();\n        var gg=c2.createLinearGradient(x1,y1,x2,y2);\n        gg.addColorStop(0,'rgba(200,235,255,0)');\n        gg.addColorStop(1,'hsla('+j.hue+',100%,90%,'+jA+')');\n        c2.strokeStyle=gg; c2.lineWidth=j.w;\n        c2.shadowColor='rgba(150,220,255,0.6)'; c2.shadowBlur=6;\n        c2.beginPath(); c2.moveTo(x1,y1); c2.lineTo(x2,y2); c2.stroke();\n        c2.restore();\n      });\n\n      \/* \u2500\u2500 Tourbillon (phase 0.25\u21920.75) \u2500\u2500 *\/\n      if(p>0.2&&p<0.8){\n        var vp=p<0.25?(p-0.2)\/0.05:p<0.7?1:(0.8-p)\/0.1;\n        vp=Math.max(0,Math.min(1,vp));\n        var nArms=12, armSpeed=elapsed*0.0018;\n        for(var a=0;a<nArms;a++){\n          var baseA=(a\/nArms)*Math.PI*2+armSpeed;\n          c2.save(); c2.beginPath();\n          for(var s=0;s<50;s++){\n            var fr=s\/50, rr=fr*R;\n            var aa=baseA+fr*Math.PI*(2.2+Math.sin(elapsed*0.001)*0.4);\n            var sx2=cx+Math.cos(aa)*rr, sy2=cy+Math.sin(aa)*rr;\n            if(s===0) c2.moveTo(sx2,sy2); else c2.lineTo(sx2,sy2);\n          }\n          var aA=vp*0.28*(1-(a%3)*0.1);\n          c2.strokeStyle='rgba(200,235,255,'+aA+')';\n          c2.lineWidth=2; c2.shadowColor='rgba(120,210,255,0.7)'; c2.shadowBlur=10; c2.stroke();\n          c2.restore();\n        }\n        \/* Noyau central lumineux *\/\n        var coreR=R*(0.06+Math.sin(elapsed*0.004)*0.02)*vp;\n        var gc=c2.createRadialGradient(cx,cy,0,cx,cy,coreR);\n        gc.addColorStop(0,'rgba(255,255,255,'+(vp*0.95)+')');\n        gc.addColorStop(0.5,'rgba(200,240,255,'+(vp*0.7)+')');\n        gc.addColorStop(1,'rgba(100,180,255,0)');\n        c2.beginPath(); c2.arc(cx,cy,coreR,0,Math.PI*2); c2.fillStyle=gc; c2.fill();\n      }\n\n      \/* \u2500\u2500 Gouttelettes \u2500\u2500 *\/\n      drops.forEach(function(d){\n        d.r+=d.sp*(p<0.35?2.5:1.0);\n        if(d.r>R) d.r=Math.random()*R*0.1;\n        var dA=discAlpha*d.life*0.7*Math.min(d.r\/(R*0.1),1);\n        var dx=cx+Math.cos(d.a)*d.r, dy=cy+Math.sin(d.a)*d.r;\n        c2.beginPath(); c2.arc(dx,dy,d.sz,0,Math.PI*2);\n        c2.fillStyle='rgba(220,245,255,'+dA+')'; c2.fill();\n      });\n\n      \/* \u2500\u2500 Flash blanc final : absorption \u2500\u2500 *\/\n      if(p>0.85){\n        var fa=(p-0.85)\/0.15;\n        c2.fillStyle='rgba(255,255,255,'+(fa*fa)+')';\n        c2.fillRect(0,0,W,H);\n      }\n\n      c2.restore(); \/* fin clip *\/\n\n      if(p<1){ requestAnimationFrame(draw); }\n      else{ cv2.style.opacity='0'; setTimeout(cb,80); }\n    }\n    requestAnimationFrame(draw);\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     TUNNEL WORMHOLE CIN\u00c9MATOGRAPHIQUE\n     Plein \u00e9cran \u2014 trou de ver avec distorsion lumineuse,\n     \u00e9toiles filantes en warp, anneaux d'\u00e9nergie, flash final\n  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  function startTunnel(url){\n    if(!canvas||!ctx){ window.location.href=url; return; }\n    canvas.width=window.innerWidth; canvas.height=window.innerHeight;\n    var w=canvas.width, h=canvas.height, cx=w\/2, cy=h\/2;\n    canvas.style.display='block';\n\n    \/* \u00c9toiles filantes en warp *\/\n    var stars=[];\n    for(var i=0;i<400;i++){\n      var a=Math.random()*Math.PI*2;\n      stars.push({ a:a, d:Math.random()*40, sp:6+Math.random()*14,\n        sz:0.5+Math.random()*2.5, hue:185+Math.random()*45 });\n    }\n\n    \/* Anneaux d'\u00e9nergie *\/\n    var rings=[];\n    for(var j=0;j<20;j++){\n      rings.push({ r:j*Math.min(w,h)*0.055, sp:8+j*1.2,\n        a:0.55-j*0.02, hue:195+j*3 });\n    }\n\n    \/* Filaments de lumi\u00e8re (comme une distorsion gravitationnelle) *\/\n    var filaments=[];\n    for(var f=0;f<16;f++){\n      filaments.push({ a:(f\/16)*Math.PI*2, twist:0.8+Math.random()*1.2,\n        hue:190+Math.random()*40, w:1+Math.random()*2.5 });\n    }\n\n    var rot=0, t0=performance.now(), DUR=3000;\n\n    (function draw(ts){\n      var p=Math.min((ts-t0)\/DUR,1);\n      rot+=0.8*(1+p*5);\n\n      \/* Trail sombre avec teinte bleue *\/\n      ctx.fillStyle='rgba(1,3,16,'+(0.12+p*0.6)+')';\n      ctx.fillRect(0,0,w,h);\n\n      \/* \u2500\u2500 Glow central : trou de ver \u2500\u2500 *\/\n      var holeR=Math.min(w,h)*(0.06+p*0.3);\n      var ghc=ctx.createRadialGradient(cx,cy,0,cx,cy,holeR*2.5);\n      ghc.addColorStop(0,'rgba(255,255,255,'+(0.7+p*0.3)+')');\n      ghc.addColorStop(0.15,'rgba(200,235,255,'+(0.5+p*0.3)+')');\n      ghc.addColorStop(0.4,'rgba(80,160,255,'+(0.3+p*0.2)+')');\n      ghc.addColorStop(0.75,'rgba(20,60,180,'+(0.15+p*0.1)+')');\n      ghc.addColorStop(1,'rgba(0,10,50,0)');\n      ctx.fillStyle=ghc; ctx.fillRect(0,0,w,h);\n\n      \/* \u2500\u2500 Anneaux d'\u00e9nergie \u2500\u2500 *\/\n      rings.forEach(function(rg){\n        rg.r+=rg.sp*(1+p*7);\n        if(rg.r>Math.max(w,h)*1.5) rg.r=5+Math.random()*30;\n        var ra=rg.a*(1-p*0.4)*Math.min(rg.r\/100,1);\n        ctx.save();\n        ctx.translate(cx,cy);\n        ctx.rotate(rot*0.018);\n        ctx.beginPath(); ctx.arc(0,0,rg.r,0,Math.PI*2);\n        ctx.strokeStyle='hsla('+rg.hue+',90%,75%,'+ra+')';\n        ctx.lineWidth=3.5+Math.sin(ts\/120+rg.r*0.05)*1.5;\n        ctx.shadowColor='hsla('+rg.hue+',100%,85%,0.9)';\n        ctx.shadowBlur=18; ctx.stroke(); ctx.restore();\n      });\n\n      \/* \u2500\u2500 Filaments de distorsion \u2500\u2500 *\/\n      if(p>0.05){\n        filaments.forEach(function(fl){\n          ctx.save(); ctx.beginPath();\n          for(var s=0;s<60;s++){\n            var fr=s\/60, rr=fr*Math.min(w,h)*0.7;\n            var aa=fl.a+rot*0.012+fr*fl.twist*Math.PI*2;\n            var fx=cx+Math.cos(aa)*rr, fy=cy+Math.sin(aa)*rr;\n            if(s===0) ctx.moveTo(fx,fy); else ctx.lineTo(fx,fy);\n          }\n          var fA=p*(0.25+fl.w*0.05)*Math.min(1,p*3);\n          ctx.strokeStyle='hsla('+fl.hue+',100%,80%,'+fA+')';\n          ctx.lineWidth=fl.w; ctx.shadowColor='hsla('+fl.hue+',100%,90%,0.6)';\n          ctx.shadowBlur=12; ctx.stroke(); ctx.restore();\n        });\n      }\n\n      \/* \u2500\u2500 \u00c9toiles en warp speed \u2500\u2500 *\/\n      stars.forEach(function(s){\n        s.d+=s.sp*(1+p*8);\n        if(s.d>Math.max(w,h)*1.3) s.d=3+Math.random()*25;\n        var x=cx+Math.cos(s.a)*s.d, y=cy+Math.sin(s.a)*s.d;\n        var al=Math.min(1,s.d\/60);\n        var trailLen=s.sp*(3+p*9);\n        var tx=cx+Math.cos(s.a)*Math.max(s.d-trailLen,0);\n        var ty=cy+Math.sin(s.a)*Math.max(s.d-trailLen,0);\n        ctx.save();\n        var gg=ctx.createLinearGradient(tx,ty,x,y);\n        gg.addColorStop(0,'hsla('+s.hue+',100%,75%,0)');\n        gg.addColorStop(0.6,'hsla('+s.hue+',100%,85%,'+(al*0.6)+')');\n        gg.addColorStop(1,'hsla('+s.hue+',100%,98%,'+al+')');\n        ctx.strokeStyle=gg; ctx.lineWidth=s.sz*(0.8+p*0.6);\n        ctx.shadowColor='hsla('+s.hue+',100%,95%,0.8)';\n        ctx.shadowBlur=10; ctx.beginPath(); ctx.moveTo(tx,ty); ctx.lineTo(x,y); ctx.stroke();\n        ctx.beginPath(); ctx.arc(x,y,s.sz*(0.8+p*0.4),0,Math.PI*2);\n        ctx.fillStyle='hsla('+s.hue+',100%,98%,'+al+')'; ctx.fill();\n        ctx.restore();\n      });\n\n      \/* \u2500\u2500 Flash final blanc-bleu \u2500\u2500 *\/\n      if(p>0.80){\n        var fa=(p-0.80)\/0.20;\n        ctx.fillStyle='rgba(220,238,255,'+(fa*fa*0.9)+')'; ctx.fillRect(0,0,w,h);\n      }\n      if(p>0.92){\n        var fb=(p-0.92)\/0.08;\n        ctx.fillStyle='rgba(255,255,255,'+(fb)+')'; ctx.fillRect(0,0,w,h);\n      }\n\n      if(p<1){ requestAnimationFrame(draw); }\n      else{ setTimeout(function(){ window.location.href=url; },60); }\n    })(performance.now());\n  }\n\n})();\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":309,"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":584,"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions\/584"}],"wp:attachment":[{"href":"https:\/\/b2truth.com\/index.php\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}