@@ -197,9 +197,8 @@ document.querySelectorAll('.cta-bot').forEach(a => { a.href='https://t.me/Metrid
197197 var btn = lb . querySelector ( '.mdx-close' ) ;
198198 img . src = src ;
199199 lb . classList . add ( 'open' ) ;
200- document . body . classList . add ( 'mdx-no-scroll' ) ;
201- lb . removeAttribute ( 'hidden' ) ;
202- function close ( ) { lb . classList . remove ( 'open' ) ; lb . setAttribute ( 'hidden' , '' ) ; document . body . classList . remove ( 'mdx-no-scroll' ) ; }
200+ lb . removeAttribute ( 'hidden' ) ;
201+ function close ( ) { lb . classList . remove ( 'open' ) ; lb . setAttribute ( 'hidden' , '' ) ; }
203202 lb . addEventListener ( 'click' , close , { once :true } ) ;
204203 btn && btn . addEventListener ( 'click' , close , { once :true } ) ;
205204 document . addEventListener ( 'keydown' , function esc ( e ) { if ( e . key === 'Escape' ) { close ( ) ; document . removeEventListener ( 'keydown' , esc ) ; } } ) ;
@@ -314,9 +313,8 @@ lb.removeAttribute('hidden');
314313 currentSet = set ; currentIdx = idx ;
315314 lbImg . src = set [ idx ] ;
316315 lb . classList . add ( 'open' ) ;
317- document . body . classList . add ( 'mdx-no-scroll' ) ;
318- }
319- function hide ( ) { lb && lb . classList . remove ( 'open' ) ; document . body . classList . remove ( 'mdx-no-scroll' ) ; }
316+ }
317+ function hide ( ) { lb && lb . classList . remove ( 'open' ) ; }
320318 function trigger ( dir ) {
321319 if ( ! currentSet . length ) return ;
322320 if ( dir === 'prev' ) currentIdx = ( currentIdx - 1 + currentSet . length ) % currentSet . length ;
@@ -690,61 +688,21 @@ lb.removeAttribute('hidden');
690688} ) ( ) ;
691689
692690
693- // === Screens RESET (AURUM-DELTA 2025-10-02) ===
691+ // === Lightbox harden ( 2025-10-02) ===
694692( function ( ) {
695- const body = document . body ;
696693 const lb = document . querySelector ( '.mdx-lightbox' ) ;
697694 if ( ! lb ) return ;
695+ // Always attach to body to avoid stacking-context issues
696+ if ( lb . parentElement !== document . body ) {
697+ document . body . appendChild ( lb ) ;
698+ }
699+ const body = document . body ;
698700 const lbImg = lb . querySelector ( '.mdx-lb-img' ) ;
699701 const btnClose = lb . querySelector ( '.mdx-close' ) ;
700702 const btnPrev = lb . querySelector ( '.mdx-lb-prev' ) ;
701703 const btnNext = lb . querySelector ( '.mdx-lb-next' ) ;
702704
703- let currentGroup = null ;
704- let currentIndex = - 1 ;
705- let groups = { } ;
706-
707- document . querySelectorAll ( '#screens .screen' ) . forEach ( sc => {
708- const group = sc . getAttribute ( 'data-group' ) || 'g' ;
709- const imgs = Array . from ( sc . querySelectorAll ( '.mdx-track img' ) ) . map ( img => img . getAttribute ( 'src' ) ) ;
710- groups [ group ] = imgs ;
711- sc . querySelectorAll ( '.mdx-track img' ) . forEach ( ( img , idx ) => {
712- img . addEventListener ( 'click' , ( ) => openLB ( group , idx ) ) ;
713- } ) ;
714- const track = sc . querySelector ( '.mdx-track' ) ;
715- sc . querySelector ( '.mdx-prev' ) . addEventListener ( 'click' , ( ) => track . scrollBy ( { left :- track . clientWidth , behavior :'smooth' } ) ) ;
716- sc . querySelector ( '.mdx-next' ) . addEventListener ( 'click' , ( ) => track . scrollBy ( { left : track . clientWidth , behavior :'smooth' } ) ) ;
717- } ) ;
718-
719- function openLB ( group , index ) {
720- currentGroup = group ;
721- currentIndex = index ;
722- const src = groups [ group ] [ index ] ;
723- lbImg . setAttribute ( 'src' , src ) ;
724- lb . removeAttribute ( 'hidden' ) ;
725- lb . classList . add ( 'open' ) ;
726- body . classList . add ( 'mdx-no-scroll' ) ;
727- }
728- function closeLB ( ) {
729- lb . classList . remove ( 'open' ) ;
730- lb . setAttribute ( 'hidden' , '' ) ;
731- body . classList . remove ( 'mdx-no-scroll' ) ;
732- }
733- function step ( delta ) {
734- if ( currentGroup == null ) return ;
735- const arr = groups [ currentGroup ] ;
736- currentIndex = ( currentIndex + delta + arr . length ) % arr . length ;
737- lbImg . setAttribute ( 'src' , arr [ currentIndex ] ) ;
738- }
739-
740- btnClose . addEventListener ( 'click' , closeLB ) ;
741- btnPrev . addEventListener ( 'click' , ( ) => step ( - 1 ) ) ;
742- btnNext . addEventListener ( 'click' , ( ) => step ( 1 ) ) ;
743- lb . addEventListener ( 'click' , ( e ) => { if ( e . target === lb ) closeLB ( ) ; } ) ;
744- document . addEventListener ( 'keydown' , ( e ) => {
745- if ( ! lb . classList . contains ( 'open' ) ) return ;
746- if ( e . key === 'Escape' ) closeLB ( ) ;
747- if ( e . key === 'ArrowLeft' ) step ( - 1 ) ;
748- if ( e . key === 'ArrowRight' ) step ( 1 ) ;
749- } ) ;
705+ // If previous handlers exist, remove by cloning (simple reset)
706+ const lbClone = lb . cloneNode ( true ) ;
707+ lb . replaceWith ( lbClone ) ;
750708} ) ( ) ;
0 commit comments