@@ -193,8 +193,8 @@ function applyTheme(theme) {
193193 html . style . setProperty ( '--bg-footer' , `hsl(${ h } , 40%, 5%)` ) ; // Deepest
194194 html . style . setProperty ( '--text-main' , `hsl(${ h } , 20%, 95%)` ) ; // Near White
195195 html . style . setProperty ( '--text-muted' , `hsl(${ h } , 15%, 70%)` ) ; // Softened
196- html . style . setProperty ( '--accent' , `hsl(${ h } , 90 %, 65 %)` ) ; // Vivid Pop
197- html . style . setProperty ( '--accent-light' , `hsla(${ h } , 90 %, 65 %, 0.15 )` ) ;
196+ html . style . setProperty ( '--accent' , `hsl(${ h } , 95 %, 70 %)` ) ; // Vivid Pop
197+ html . style . setProperty ( '--accent-light' , `hsla(${ h } , 95 %, 70 %, 0.2 )` ) ;
198198 html . style . setProperty ( '--border-color' , `hsl(${ h } , 30%, 20%)` ) ;
199199
200200 if ( heart ) {
@@ -439,32 +439,81 @@ window.startSelfDestruct = function() {
439439function scrollToRandomUser ( ) {
440440 playSound ( 'click' ) ;
441441
442- // 1. Secret Unlock Logic
443442 surpriseClickCount ++ ;
444443 if ( surpriseClickCount >= 5 ) {
445444 surpriseClickCount = 0 ;
446- // This triggers the Matrix overlay
447445 triggerSecretUnlock ( 'matrix' ) ;
446+ return ;
448447 }
449448
450- // 2. Scrolling Logic
451449 const cards = document . querySelectorAll ( '.user-card' ) ;
452- if ( cards . length === 0 ) {
453- console . warn ( "No .user-card elements found to scroll to." ) ;
454- return ;
455- }
450+ if ( cards . length === 0 ) return ;
456451
457- // Clear previous highlights
458- cards . forEach ( c => c . classList . remove ( 'highlight-pulse' ) ) ;
452+ // Clean up previous selection
453+ cards . forEach ( c => {
454+ c . classList . remove ( 'selected-fancy' ) ;
455+ const oldTrace = c . querySelector ( '.border-trace' ) ;
456+ if ( oldTrace ) oldTrace . remove ( ) ;
457+ } ) ;
459458
460- // Pick a random card and scroll
461459 const randomCard = cards [ Math . floor ( Math . random ( ) * cards . length ) ] ;
462- randomCard . scrollIntoView ( { behavior : 'smooth' , block : 'center' } ) ; // Changed to center for better visibility
460+ randomCard . scrollIntoView ( { behavior : 'smooth' , block : 'center' } ) ;
461+
462+ setTimeout ( ( ) => {
463+ playSound ( 'levelUp' ) ;
464+ randomCard . classList . add ( 'selected-fancy' ) ;
465+
466+ // Inject the Tracing SVG
467+ const svgNamespace = "http://www.w3.org/2000/svg" ;
468+ const svg = document . createElementNS ( svgNamespace , "svg" ) ;
469+ const rect = document . createElementNS ( svgNamespace , "rect" ) ;
470+
471+ svg . setAttribute ( "class" , "border-trace" ) ;
472+ rect . setAttribute ( "fill" , "none" ) ;
473+ rect . setAttribute ( "width" , "100%" ) ;
474+ rect . setAttribute ( "height" , "100%" ) ;
475+
476+ svg . appendChild ( rect ) ;
477+ randomCard . appendChild ( svg ) ;
463478
464- // Add the pulse animation
465- randomCard . classList . add ( 'highlight-pulse' ) ;
479+ // Remove trace and fancy class after the 7.5s animation ends
480+ setTimeout ( ( ) => {
481+ randomCard . classList . remove ( 'selected-fancy' ) ;
482+ svg . remove ( ) ;
483+ } , 7500 ) ;
484+ } , 400 ) ;
466485}
467486
487+ /**
488+ * UTILITY: SCREENSHOT MODE
489+ */
490+ window . toggleScreenshotMode = function ( ) {
491+ const devPanel = document . getElementById ( 'dev-tools' ) ;
492+ const header = document . querySelector ( 'header' ) ;
493+ const footer = document . querySelector ( 'footer' ) ;
494+ const gameStats = document . getElementById ( 'game-stats' ) ;
495+
496+ // Hide everything
497+ [ devPanel , header , footer , gameStats ] . forEach ( el => {
498+ if ( el ) el . style . opacity = '0' ;
499+ if ( el ) el . style . pointerEvents = 'none' ;
500+ } ) ;
501+
502+ // Show a tiny notification that it's active
503+ const toast = document . createElement ( 'div' ) ;
504+ toast . style . cssText = "position:fixed; bottom:20px; left:50%; transform:translateX(-50%); color:var(--text-muted); font-family:monospace; font-size:10px; z-index:9999;" ;
505+ toast . innerText = "SCREENSHOT MODE ACTIVE - RESTORING IN 5S" ;
506+ document . body . appendChild ( toast ) ;
507+
508+ setTimeout ( ( ) => {
509+ [ devPanel , header , footer , gameStats ] . forEach ( el => {
510+ if ( el ) el . style . opacity = '1' ;
511+ if ( el ) el . style . pointerEvents = 'auto' ;
512+ } ) ;
513+ toast . remove ( ) ;
514+ } , 5000 ) ;
515+ } ;
516+
468517/**
469518 * 8. INITIALIZATION
470519 */
0 commit comments