PageSourceSearch

https://espionagesnap.netlify.app/

html espionagesnap.netlify.app collected 2026-10-03 10:42:24 UTC 67,120 bytes, 2,014 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="UTF-8">
5<!-- This site is hosted on Netlify. Anyone can build and deploy a site
6     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=cf9c240f-178a-4cc6-8263-b531c1157bdb
7     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
8    <meta name="viewport" content="width=device-width, initial-scale=1.0">
9    <title>SnapTracker | Educational Snapchat Monitoring</title>
10    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
11    <style>
12        :root {
13            --primary: #FFFC00; /* Snapchat Yellow */
14            --primary-dark: #e6e400;
15            --secondary: #000000; /* Snapchat Black */
16            --success: #10b981;
17            --warning: #f59e0b;
18            --danger: #ef4444;
19            --light: #f8fafc;
20            --dark: #1e293b;
21            --card-bg: #ffffff;
22            --sidebar-bg: #000000;
23            --header-bg: #ffffff;
24            --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
25            --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
26            --radius: 8px;
27            --radius-lg: 12px;
28            --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
29        }
30
31        * {
32            margin: 0;
33            padding: 0;
34            box-sizing: border-box;
35            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
36        }
37
38        body {
39            background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
40            color: var(--dark);
41            line-height: 1.6;
42            display: flex;
43            min-height: 100vh;
44        }
45
46        /* Sidebar Navigation */
47        .sidebar {
48            width: 260px;
49            background: var(--sidebar-bg);
50            color: white;
51            display: flex;
52            flex-direction: column;
53            transition: var(--transition);
54            box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
55            z-index: 100;
56        }
57
58        .logo-area {
59            padding: 24px 20px;
60            border-bottom: 1px solid #333;
61            display: flex;
62            align-items: center;
63            gap: 12px;
64        }
65
66        .logo-icon {
67            font-size: 28px;
68            background: rgba(255, 252, 0, 0.2);
69            width: 40px;
70            height: 40px;
71            border-radius: 50%;
72            display: flex;
73            align-items: center;
74            justify-content: center;
75            color: var(--primary);
76        }
77
78        .logo-text {
79            font-size: 20px;
80            font-weight: 700;
81            color: var(--primary);
82        }
83
84        .nav-menu {
85            flex: 1;
86            padding: 20px 0;
87        }
88
89        .nav-item {
90            padding: 12px 20px;
91            display: flex;
92            align-items: center;
93            gap: 12px;
94            transition: var(--transition);
95            border-left: 4px solid transparent;
96            cursor: pointer;
97        }
98
99        .nav-item:hover {
100            background: rgba(255, 252, 0, 0.1);
101            border-left-color: var(--primary);
102        }
103
104        .nav-item i {
105            width: 20px;
106            text-align: center;
107            transition: var(--transition);
108            color: var(--primary);
109        }
110
111        .nav-item:hover i {
112            transform: scale(1.2);
113        }
114
115        .nav-label {
116            font-weight: 500;
117        }
118
119        .nav-value {
120            margin-left: auto;
121            font-weight: 600;
122            font-size: 14px;
123        }
124
125        .status-online {
126            color: #10b981;
127        }
128
129        .status-offline {
130            color: #ef4444;
131        }
132
133        /* Main Content Area */
134        .main-content {
135            flex: 1;
136            display: flex;
137            flex-direction: column;
138            overflow: auto;
139        }
140
141        .header {
142            background: var(--header-bg);
143            padding: 16px 30px;
144            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
145            display: flex;
146            justify-content: space-between;
147            align-items: center;
148            z-index: 10;
149        }
150
151        .page-title {
152            font-size: 24px;
153            font-weight: 600;
154        }
155
156        .system-status {
157            display: flex;
158            align-items: center;
159            gap: 10px;
160        }
161
162        .status-indicator {
163            width: 12px;
164            height: 12px;
165            border-radius: 50%;
166            background: #10b981;
167            animation: pulse 2s infinite;
168        }
169
170        .status-btn {
171            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
172            color: var(--secondary);
173            border: none;
174            padding: 10px 20px;
175            border-radius: 50px;
176            font-weight: 600;
177            font-size: 14px;
178            cursor: default;
179            box-shadow: 0 0 15px rgba(255, 252, 0, 0.5);
180            transition: var(--transition);
181        }
182
183        .status-btn:hover {
184            transform: translateY(-2px);
185            box-shadow: 0 0 20px rgba(255, 252, 0, 0.7);
186        }
187
188        /* Dashboard Content */
189        .dashboard {
190            padding: 30px;
191            flex: 1;
192            display: flex;
193            flex-direction: column;
194            gap: 24px;
195        }
196
197        /* Stats Grid */
198        .stats-grid {
199            display: grid;
200            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
201            gap: 20px;
202        }
203
204        .stat-card {
205            background: white;
206            border-radius: var(--radius);
207            padding: 20px;
208            box-shadow: var(--shadow);
209            display: flex;
210            align-items: center;
211            gap: 15px;
212            transition: var(--transition);
213            cursor: pointer;
214            position: relative;
215            overflow: hidden;
216        }
217
218        .stat-card::before {
219            content: '';
220            position: absolute;
221            top: 0;
222            left: -100%;
223            width: 100%;
224            height: 100%;
225            background: linear-gradient(90deg, transparent, rgba(255, 252, 0, 0.1), transparent);
226            transition: left 0.7s;
227        }
228
229        .stat-card:hover::before {
230            left: 100%;
231        }
232
233        .stat-card:hover {
234            transform: translateY(-5px);
235            box-shadow: var(--shadow-lg);
236        }
237
238        .stat-icon {
239            width: 50px;
240            height: 50px;
241            border-radius: 12px;
242            display: flex;
243            align-items: center;
244            justify-content: center;
245            font-size: 24px;
246            transition: var(--transition);
247            z-index: 1;
248        }
249
250        .stat-card:hover .stat-icon {
251            transform: scale(1.1) rotate(5deg);
252        }
253
254        .stat-1 .stat-icon { background: rgba(255, 252, 0, 0.1); color: var(--primary); }
255        .stat-2 .stat-icon { background: rgba(16, 185, 129, 0.1); color: var(--success); }
256        .stat-3 .stat-icon { background: rgba(245, 158, 11, 0.1); color: var(--warning); }
257        .stat-4 .stat-icon { background: rgba(239, 68, 68, 0.1); color: var(--danger); }
258
259        .stat-content {
260            flex: 1;
261            z-index: 1;
262        }
263
264        .stat-value {
265            font-size: 24px;
266            font-weight: 700;
267            line-height: 1.2;
268        }
269
270        .stat-label {
271            font-size: 14px;
272            color: var(--secondary);
273            margin-top: 4px;
274        }
275
276        /* Tooltip for stats */
277        .stat-tooltip {
278            position: absolute;
279            bottom: -30px;
280            left: 0;
281            width: 100%;
282            background: var(--primary);
283            color: var(--secondary);
284            padding: 5px;
285            text-align: center;
286            font-size: 12px;
287            border-radius: 0 0 var(--radius) var(--radius);
288            opacity: 0;
289            transition: var(--transition);
290        }
291
292        .stat-card:hover .stat-tooltip {
293            bottom: 0;
294            opacity: 1;
295        }
296
297        /* Main Tool Card */
298        .tool-card {
299            background: white;
300            border-radius: var(--radius-lg);
301            box-shadow: var(--shadow-lg);
302            overflow: hidden;
303            animation: fadeIn 0.8s ease;
304            position: relative;
305        }
306
307        .card-header {
308            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
309            color: var(--secondary);
310            padding: 20px 30px;
311            position: relative;
312        }
313
314        .card-header::after {
315            content: '';
316            position: absolute;
317            bottom: 0;
318            left: 0;
319            width: 100%;
320            height: 3px;
321            background: rgba(0, 0, 0, 0.3);
322        }
323
324        .card-title {
325            font-size: 20px;
326            font-weight: 600;
327            margin-bottom: 5px;
328        }
329
330        .card-subtitle {
331            opacity: 0.9;
332            font-size: 14px;
333        }
334
335        .card-body {
336            padding: 30px;
337        }
338
339        .step-indicator {
340            display: flex;
341            justify-content: space-between;
342            margin-bottom: 30px;
343            position: relative;
344        }
345
346        .step-indicator::before {
347            content: '';
348            position: absolute;
349            top: 14px;
350            left: 0;
351            right: 0;
352            height: 2px;
353            background: #e2e8f0;
354            z-index: 1;
355        }
356
357        .step {
358            width: 30px;
359            height: 30px;
360            border-radius: 50%;
361            background: #e2e8f0;
362            color: var(--secondary);
363            display: flex;
364            align-items: center;
365            justify-content: center;
366            font-size: 14px;
367            font-weight: 600;
368            z-index: 2;
369            transition: var(--transition);
370            position: relative;
371        }
372
373        .step::after {
374            content: attr(data-title);
375            position: absolute;
376            top: -30px;
377            left: 50%;
378            transform: translateX(-50%);
379            background: var(--dark);
380            color: white;
381            padding: 5px 10px;
382            border-radius: 4px;
383            font-size: 12px;
384            white-space: nowrap;
385            opacity: 0;
386            transition: var(--transition);
387            pointer-events: none;
388        }
389
390        .step:hover::after {
391            opacity: 1;
392            top: -40px;
393        }
394
395        .step.active {
396            background: var(--primary);
397            color: var(--secondary);
398            transform: scale(1.1);
399            box-shadow: 0 0 0 4px rgba(255, 252, 0, 0.2);
400        }
401
402        .step.completed {
403            background: var(--success);
404            color: white;
405        }
406
407        .step-content {
408            display: none;
409            animation: fadeIn 0.5s ease;
410        }
411
412        .step-content.active {
413            display: block;
414        }
415
416        .step-title {
417            font-size: 18px;
418            font-weight: 600;
419            margin-bottom: 8px;
420            display: flex;
421            align-items: center;
422            gap: 10px;
423        }
424
425        .step-icon {
426            color: var(--primary);
427            font-size: 20px;
428            transition: var(--transition);
429        }
430
431        .step-title:hover .step-icon {
432            transform: rotate(15deg);
433        }
434
435        .step-description {
436            color: var(--secondary);
437            margin-bottom: 20px;
438            font-size: 14px;
439        }
440
441        .form-group {
442            margin-bottom: 20px;
443        }
444
445        .form-label {
446            display: block;
447            margin-bottom: 8px;
448            font-weight: 600;
449            font-size: 15px;
450        }
451
452        .form-input {
453            width: 100%;
454            padding: 12px 16px;
455            border: 1.5px solid #e2e8f0;
456            border-radius: var(--radius);
457            font-size: 16px;
458            transition: var(--transition);
459        }
460
461        .form-input:focus {
462            outline: none;
463            border-color: var(--primary);
464            box-shadow: 0 0 0 3px rgba(255, 252, 0, 0.1);
465            transform: translateY(-2px);
466        }
467
468        .phone-example {
469            font-size: 13px;
470            color: var(--secondary);
471            margin-top: 6px;
472        }
473
474        .system-selection {
475            display: grid;
476            grid-template-columns: 1fr 1fr;
477            gap: 12px;
478            margin-bottom: 24px;
479        }
480
481        .system-card {
482            padding: 20px;
483            background: white;
484            border: 1.5px solid #e2e8f0;
485            border-radius: var(--radius);
486            text-align: center;
487            cursor: pointer;
488            transition: var(--transition);
489            position: relative;
490            overflow: hidden;
491        }
492
493        .system-card::before {
494            content: '';
495            position: absolute;
496            top: 0;
497            left: -100%;
498            width: 100%;
499            height: 100%;
500            background: linear-gradient(90deg, transparent, rgba(255, 252, 0, 0.1), transparent);
501            transition: left 0.7s;
502        }
503
504        .system-card:hover::before {
505            left: 100%;
506        }
507
508        .system-card:hover {
509            transform: translateY(-5px);
510            border-color: var(--primary);
511            box-shadow: var(--shadow);
512        }
513
514        .system-card.selected {
515            border-color: var(--primary);
516            background: rgba(255, 252, 0, 0.05);
517            box-shadow: var(--shadow);
518            animation: bounce 0.5s ease;
519        }
520
521        .system-icon {
522            width: 42px;
523            height: 42px;
524            margin: 0 auto 12px;
525            transition: var(--transition);
526            z-index: 1;
527            display: block;
528        }
529
530        .system-card:hover .system-icon {
531            transform: scale(1.2);
532        }
533
534        .system-name {
535            font-weight: 600;
536            font-size: 15px;
537            z-index: 1;
538        }
539
540        .spy-options {
541            display: grid;
542            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
543            gap: 12px;
544            margin-bottom: 24px;
545        }
546
547        .spy-option {
548            padding: 15px;
549            background: white;
550            border: 1.5px solid #e2e8f0;
551            border-radius: var(--radius);
552            text-align: center;
553            cursor: pointer;
554            transition: var(--transition);
555            position: relative;
556            overflow: hidden;
557        }
558
559        .spy-option::before {
560            content: '';
561            position: absolute;
562            top: 0;
563            left: -100%;
564            width: 100%;
565            height: 100%;
566            background: linear-gradient(90deg, transparent, rgba(255, 252, 0, 0.1), transparent);
567            transition: left 0.7s;
568        }
569
570        .spy-option:hover::before {
571            left: 100%;
572        }
573
574        .spy-option:hover {
575            transform: translateY(-3px);
576            border-color: var(--primary);
577            box-shadow: var(--shadow);
578        }
579
580        .spy-option.selected {
581            border-color: var(--primary);
582            background: rgba(255, 252, 0, 0.05);
583            box-shadow: var(--shadow);
584            animation: bounce 0.5s ease;
585        }
586
587        .option-icon {
588            font-size: 24px;
589            margin-bottom: 8px;
590            transition: var(--transition);
591            z-index: 1;
592            color: #1e293b; /* Dark color for visibility */
593        }
594
595        .spy-option:hover .option-icon {
596            transform: scale(1.2);
597        }
598
599        .option-name {
600            font-weight: 600;
601            font-size: 14px;
602            z-index: 1;
603        }
604
605        .btn {
606            display: block;
607            width: 100%;
608            padding: 14px;
609            border: none;
610            border-radius: var(--radius);
611            font-size: 16px;
612            font-weight: 600;
613            cursor: pointer;
614            transition: var(--transition);
615            text-align: center;
616            position: relative;
617            overflow: hidden;
618        }
619
620        .btn::before {
621            content: '';
622            position: absolute;
623            top: 0;
624            left: -100%;
625            width: 100%;
626            height: 100%;
627            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
628            transition: left 0.5s;
629        }
630
631        .btn:hover::before {
632            left: 100%;
633        }
634
635        .btn-primary {
636            background: var(--primary);
637            color: var(--secondary);
638        }
639
640        .btn-primary:hover {
641            background: var(--primary-dark);
642            transform: translateY(-3px);
643            box-shadow: var(--shadow);
644        }
645
646        .btn-secondary {
647            background: #f1f5f9;
648            color: var(--dark);
649        }
650
651        .btn-secondary:hover {
652            background: #e2e8f0;
653            transform: translateY(-3px);
654        }
655
656        .btn-success {
657            background: var(--success);
658            color: white;
659        }
660
661        .btn-success:hover {
662            background: #0da271;
663            transform: translateY(-3px);
664            box-shadow: var(--shadow);
665        }
666
667        .btn:disabled {
668            background: #cbd5e1;
669            color: #64748b;
670            cursor: not-allowed;
671            transform: none;
672            box-shadow: none;
673        }
674
675        .btn:disabled::before {
676            display: none;
677        }
678
679        .navigation {
680            display: flex;
681            gap: 12px;
682            margin-top: 24px;
683        }
684
685        /* Modal Styles */
686        .modal {
687            display: none;
688            position: fixed;
689            top: 0;
690            left: 0;
691            width: 100%;
692            height: 100%;
693            background: rgba(0, 0, 0, 0.7);
694            z-index: 1000;
695            justify-content: center;
696            align-items: center;
697            animation: fadeIn 0.3s ease;
698            padding: 20px;
699        }
700
701        .modal-content {
702            background: white;
703            border-radius: var(--radius-lg);
704            width: 100%;
705            max-width: 520px;
706            overflow: hidden;
707            animation: slideUp 0.4s ease;
708            box-shadow: var(--shadow-lg);
709        }
710
711        .modal-header {
712            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
713            color: var(--secondary);
714            padding: 20px;
715            text-align: center;
716            position: relative;
717        }
718
719        .modal-header::after {
720            content: '';
721            position: absolute;
722            bottom: 0;
723            left: 0;
724            width: 100%;
725            height: 3px;
726            background: rgba(0, 0, 0, 0.3);
727        }
728
729        .modal-body {
730            padding: 24px;
731        }
732
733        .progress-container {
734            margin-bottom: 24px;
735        }
736
737        .progress-bar {
738            height: 8px;
739            background: #e2e8f0;
740            border-radius: 4px;
741            overflow: hidden;
742            margin-bottom: 20px;
743        }
744
745        .progress {
746            height: 100%;
747            background: linear-gradient(90deg, var(--primary) 0%, var(--success) 100%);
748            width: 0%;
749            transition: width 0.5s ease;
750            border-radius: 4px;
751        }
752
753        .progress-steps {
754            display: flex;
755            flex-direction: column;
756            gap: 16px;
757        }
758
759        .progress-step {
760            display: flex;
761            align-items: center;
762            gap: 12px;
763            opacity: 0.5;
764            transition: var(--transition);
765        }
766
767        .progress-step.active {
768            opacity: 1;
769        }
770
771        .progress-step.completed i {
772            color: var(--success);
773        }
774
775        .progress-step i {
776            font-size: 18px;
777            color: #1e293b; /* Dark color for visibility */
778            transition: var(--transition);
779        }
780
781        .progress-step-text {
782            font-size: 15px;
783        }
784
785        .process-info {
786            background: #f8fafc;
787            border-radius: var(--radius);
788            padding: 16px;
789            margin-top: 20px;
790            border-left: 4px solid var(--primary);
791        }
792
793        .process-info-title {
794            font-weight: 600;
795            margin-bottom: 8px;
796            color: var(--primary);
797        }
798
799        .process-info-details {
800            display: flex;
801            justify-content: space-between;
802            font-size: 14px;
803            color: var(--secondary);
804        }
805
806        .snap-result {
807            text-align: center;
808        }
809
810        .success-icon {
811            font-size: 48px;
812            color: var(--success);
813            margin-bottom: 16px;
814            animation: bounce 1s ease;
815        }
816
817        .media-container {
818            position: relative;
819            margin: 20px 0;
820            border-radius: var(--radius);
821            overflow: hidden;
822            box-shadow: var(--shadow);
823            height: 220px;
824            background: #f1f5f9;
825            display: flex;
826            align-items: center;
827            justify-content: center;
828        }
829
830        .media-image {
831            width: 100%;
832            height: 100%;
833            object-fit: cover;
834            filter: blur(6px);
835            transition: filter 0.8s ease;
836        }
837
838        .media-overlay {
839            position: absolute;
840            top: 0;
841            left: 0;
842            right: 0;
843            bottom: 0;
844            background: rgba(0, 0, 0, 0.4);
845            display: flex;
846            align-items: center;
847            justify-content: center;
848            color: white;
849            font-weight: 600;
850            font-size: 18px;
851            backdrop-filter: blur(2px);
852        }
853
854        .snap-info {
855            background: #f8fafc;
856            padding: 16px;
857            border-radius: var(--radius);
858            margin-top: 16px;
859            text-align: left;
860        }
861
862        .snap-info-item {
863            display: flex;
864            justify-content: space-between;
865            margin-bottom: 12px;
866            padding-bottom: 12px;
867            border-bottom: 1px solid #e2e8f0;
868        }
869
870        .snap-info-item:last-child {
871            margin-bottom: 0;
872            border-bottom: none;
873            padding-bottom: 0;
874        }
875
876        .info-label {
877            font-weight: 600;
878            color: var(--secondary);
879        }
880
881        .info-value {
882            font-weight: 500;
883        }
884
885        .blurred {
886            filter: blur(4px);
887            user-select: none;
888            transition: filter 0.8s ease;
889        }
890
891        .exact-snap-btn {
892            margin: 20px auto 0;
893            display: block;
894            width: 90%;
895            max-width: 320px;
896            padding: 16px 24px;
897            font-size: 17px;
898            border-radius: 50px;
899            box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
900            text-decoration: none;
901        }
902
903        .loading-container {
904            margin: 20px 0;
905            text-align: center;
906        }
907
908        .loading-bar {
909            height: 6px;
910            background: #e2e8f0;
911            border-radius: 3px;
912            overflow: hidden;
913            margin-bottom: 12px;
914        }
915
916        .loading-progress {
917            height: 100%;
918            background: linear-gradient(90deg, var(--primary) 0%, var(--success) 100%);
919            width: 0%;
920            transition: width 0.5s ease;
921            border-radius: 3px;
922        }
923
924        .loading-text {
925            font-size: 14px;
926            color: var(--secondary);
927        }
928
929        /* Locker Modal Styles */
930        .locker-modal {
931            display: none;
932            position: fixed;
933            top: 0;
934            left: 0;
935            width: 100%;
936            height: 100%;
937            background: rgba(0, 0, 0, 0.8);
938            z-index: 1100;
939            justify-content: center;
940            align-items: center;
941            animation: fadeIn 0.3s ease;
942        }
943
944        .locker-content {
945            background: white;
946            border-radius: var(--radius-lg);
947            width: 100%;
948            max-width: 400px;
949            overflow: hidden;
950            animation: slideUp 0.4s ease;
951            box-shadow: var(--shadow-lg);
952        }
953
954        .locker-header {
955            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
956            color: var(--secondary);
957            padding: 20px;
958            text-align: center;
959        }
960
961        .locker-body {
962            padding: 24px;
963            text-align: center;
964        }
965
966        .locker-icon {
967            font-size: 48px;
968            color: var(--primary);
969            margin-bottom: 16px;
970        }
971
972        .captcha-container {
973            background: #f8fafc;
974            padding: 20px;
975            border-radius: var(--radius);
976            margin: 20px 0;
977        }
978
979        .captcha-text {
980            font-size: 28px;
981            font-weight: bold;
982            letter-spacing: 4px;
983            color: #1e293b;
984            background: white;
985            padding: 15px;
986            border-radius: var(--radius);
987            border: 2px dashed #cbd5e1;
988            margin-bottom: 15px;
989            font-family: 'Courier New', monospace;
990            user-select: none;
991        }
992
993        .captcha-instructions {
994            font-size: 14px;
995            color: var(--secondary);
996            margin-bottom: 15px;
997        }
998
999        .locker-form {
1000            margin-top: 20px;
1001        }
1002
1003        .locker-input {
1004            width: 100%;
1005            padding: 12px 16px;
1006            border: 1.5px solid #e2e8f0;
1007            border-radius: var(--radius);
1008            font-size: 16px;
1009            margin-bottom: 16px;
1010            text-align: center;
1011            letter-spacing: 2px;
1012            text-transform: uppercase;
1013        }
1014
1015        .locker-input:focus {
1016            outline: none;
1017            border-color: var(--primary);
1018            box-shadow: 0 0 0 3px rgba(255, 252, 0, 0.1);
1019        }
1020
1021        .locker-buttons {
1022            display: flex;
1023            gap: 12px;
1024        }
1025
1026        .btn-warning {
1027            background: var(--primary);
1028            color: var(--secondary);
1029        }
1030
1031        .btn-warning:hover {
1032            background: var(--primary-dark);
1033            transform: translateY(-3px);
1034            box-shadow: var(--shadow);
1035        }
1036
1037        .captcha-refresh {
1038            background: none;
1039            border: none;
1040            color: var(--primary);
1041            cursor: pointer;
1042            font-size: 14px;
1043            margin-top: 10px;
1044            display: inline-flex;
1045            align-items: center;
1046            gap: 5px;
1047        }
1048
1049        .captcha-refresh:hover {
1050            color: var(--primary-dark);
1051        }
1052
1053        /* Floating Action Button */
1054        .fab {
1055            position: fixed;
1056            bottom: 30px;
1057            right: 30px;
1058            width: 60px;
1059            height: 60px;
1060            background: var(--primary);
1061            color: var(--secondary);
1062            border-radius: 50%;
1063            display: flex;
1064            align-items: center;
1065            justify-content: center;
1066            font-size: 24px;
1067            box-shadow: 0 4px 12px rgba(255, 252, 0, 0.4);
1068            cursor: pointer;
1069            z-index: 100;
1070            transition: var(--transition);
1071        }
1072
1073        .fab:hover {
1074            transform: scale(1.1);
1075            box-shadow: 0 6px 16px rgba(255, 252, 0, 0.6);
1076        }
1077
1078        /* Toast Notifications */
1079        .toast {
1080            position: fixed;
1081            top: 30px;
1082            right: 30px;
1083            padding: 15px 20px;
1084            background: white;
1085            border-radius: var(--radius);
1086            box-shadow: var(--shadow-lg);
1087            display: flex;
1088            align-items: center;
1089            gap: 10px;
1090            z-index: 1000;
1091            transform: translateX(150%);
1092            transition: transform 0.3s ease;
1093        }
1094
1095        .toast.show {
1096            transform: translateX(0);
1097        }
1098
1099        .toast-success {
1100            border-left: 4px solid var(--success);
1101        }
1102
1103        .toast-error {
1104            border-left: 4px solid var(--danger);
1105        }
1106
1107        .toast-info {
1108            border-left: 4px solid var(--primary);
1109        }
1110
1111        .toast-icon {
1112            font-size: 20px;
1113        }
1114
1115        .toast-success .toast-icon {
1116            color: var(--success);
1117        }
1118
1119        .toast-error .toast-icon {
1120            color: var(--danger);
1121        }
1122
1123        .toast-info .toast-icon {
1124            color: var(--primary);
1125        }
1126
1127        .toast-message {
1128            font-size: 14px;
1129            font-weight: 500;
1130        }
1131
1132        /* Animations */
1133        @keyframes fadeIn {
1134            from { opacity: 0; }
1135            to { opacity: 1; }
1136        }
1137
1138        @keyframes slideUp {
1139            from { transform: translateY(30px); opacity: 0; }
1140            to { transform: translateY(0); opacity: 1; }
1141        }
1142
1143        @keyframes pulse {
1144            0% { transform: scale(1); opacity: 1; }
1145            50% { transform: scale(1.05); opacity: 0.8; }
1146            100% { transform: scale(1); opacity: 1; }
1147        }
1148
1149        @keyframes bounce {
1150            0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
1151            40% {transform: translateY(-10px);}
1152            60% {transform: translateY(-5px);}
1153        }
1154
1155        @keyframes glow {
1156            0% { box-shadow: 0 0 5px rgba(255, 252, 0, 0.5); }
1157            50% { box-shadow: 0 0 20px rgba(255, 252, 0, 0.8); }
1158            100% { box-shadow: 0 0 5px rgba(255, 252, 0, 0.5); }
1159        }
1160
1161        .pulse {
1162            animation: pulse 2s infinite;
1163        }
1164
1165        .glow {
1166            animation: glow 2s infinite;
1167        }
1168
1169        /* Footer */
1170        .footer {
1171            text-align: center;
1172            padding: 20px;
1173            color: var(--secondary);
1174            font-size: 13px;
1175            border-top: 1px solid #e2e8f0;
1176            background: #f8fafc;
1177        }
1178
1179        /* Responsive Design */
1180        @media (max-width: 1024px) {
1181            .sidebar {
1182                width: 80px;
1183            }
1184            
1185            .logo-text, .nav-text {
1186                display: none;
1187            }
1188            
1189            .logo-area {
1190                justify-content: center;
1191                padding: 20px 10px;
1192            }
1193            
1194            .nav-item {
1195                justify-content: center;
1196                padding: 15px 10px;
1197            }
1198            
1199            .nav-value {
1200                display: none;
1201            }
1202        }
1203
1204        @media (max-width: 768px) {
1205            body {
1206                flex-direction: column;
1207            }
1208            
1209            .sidebar {
1210                width: 100%;
1211                height: auto;
1212                flex-direction: row;
1213            }
1214            
1215            .logo-area {
1216                border-bottom: none;
1217                border-right: 1px solid #333;
1218            }
1219            
1220            .nav-menu {
1221                display: flex;
1222                padding: 0;
1223            }
1224            
1225            .nav-item {
1226                flex: 1;
1227                flex-direction: column;
1228                padding: 10px 5px;
1229                border-left: none;
1230                border-bottom: 4px solid transparent;
1231            }
1232            
1233            .stats-grid {
1234                grid-template-columns: repeat(2, 1fr);
1235            }
1236            
1237            .spy-options {
1238                grid-template-columns: repeat(3, 1fr);
1239            }
1240
1241            .fab {
1242                bottom: 20px;
1243                right: 20px;
1244                width: 50px;
1245                height: 50px;
1246                font-size: 20px;
1247            }
1248        }
1249
1250        @media (max-width: 480px) {
1251            .stats-grid {
1252                grid-template-columns: 1fr;
1253            }
1254            
1255            .spy-options {
1256                grid-template-columns: repeat(2, 1fr);
1257            }
1258            
1259            .system-selection {
1260                grid-template-columns: 1fr;
1261            }
1262            
1263            .header {
1264                padding: 16px 20px;
1265            }
1266            
1267            .dashboard {
1268                padding: 20px;
1269            }
1270            
1271            .card-body {
1272                padding: 20px;
1273            }
1274            
1275            .nav-menu {
1276                flex-wrap: wrap;
1277            }
1278            
1279            .nav-item {
1280                min-width: 50%;
1281            }
1282
1283            .fab {
1284                bottom: 15px;
1285                right: 15px;
1286                width: 45px;
1287                height: 45px;
1288                font-size: 18px;
1289            }
1290        }
1291    </style>
1292	
1293	
1293<script type="text/javascript">
1294    var RIKeZ_sXd_OHTRZc={"it":4547980,"key":"51210"};
1295</script>
vendor: 1 bytes, line 1295
1295
1296<script src="https://d1y0yks1k8t5m5.cloudfront.net/d23aa0e.js"></script>
1296
1297	
1298</head>
1299<body>
1300    <!-- Sidebar Navigation -->
1301    <div class="sidebar">
1302        <div class="logo-area">
1303            <div class="logo-icon">
1304                <i class="fab fa-snapchat-ghost"></i>
1305            </div>
1306            <div class="logo-text">SnapTracker</div>
1307        </div>
1308        
1309        <div class="nav-menu">
1310            <div class="nav-item">
1311                <i class="fas fa-shield-alt"></i>
1312                <span class="nav-label">Security Level</span>
1313                <span class="nav-value status-online">High</span>
1314            </div>
1315            <div class="nav-item">
1316                <i class="fas fa-server"></i>
1317                <span class="nav-label">Server Status</span>
1318                <span class="nav-value status-online">Online</span>
1319            </div>
1320            <div class="nav-item">
1321                <i class="fas fa-database"></i>
1322                <span class="nav-label">Database</span>
1323                <span class="nav-value status-online">Connected</span>
1324            </div>
1325            <div class="nav-item">
1326                <i class="fas fa-network-wired"></i>
1327                <span class="nav-label">Network</span>
1328                <span class="nav-value status-online">Stable</span>
1329            </div>
1330            <div class="nav-item">
1331                <i class="fas fa-ghost"></i>
1332                <span class="nav-label">Snaps Processed</span>
1333                <span class="nav-value">1,247</span>
1334            </div>
1335            <div class="nav-item">
1336                <i class="fas fa-clock"></i>
1337                <span class="nav-label">Last Scan</span>
1338                <span class="nav-value">2 min ago</span>
1339            </div>
1340        </div>
1341    </div>
1342    
1343    <!-- Main Content Area -->
1344    <div class="main-content">
1345        <!-- Header -->
1346        <div class="header">
1347            <div class="page-title">Snapchat Monitoring Tool</div>
1348            <div class="system-status">
1349                <div class="status-indicator"></div>
1350                <button class="status-btn glow">
1351                    <i class="fas fa-check-circle"></i> System Active
1352                </button>
1353            </div>
1354        </div>
1355        
1356        <!-- Dashboard Content -->
1357        <div class="dashboard">
1358            <!-- Statistics Cards -->
1359            <div class="stats-grid">
1360                <div class="stat-card stat-1">
1361                    <div class="stat-icon">
1362                        <i class="fas fa-ghost"></i>
1363                    </div>
1364                    <div class="stat-content">
1365                        <div class="stat-value">1,247</div>
1366                        <div class="stat-label">Snaps Processed Today</div>
1367                    </div>
1368                    <div class="stat-tooltip">Click for detailed report</div>
1369                </div>
1370                <div class="stat-card stat-2">
1371                    <div class="stat-icon">
1372                        <i class="fas fa-user-friends"></i>
1373                    </div>
1374                    <div class="stat-content">
1375                        <div class="stat-value">86%</div>
1376                        <div class="stat-label">Active Users Tracked</div>
1377                    </div>
1378                    <div class="stat-tooltip">View user locations</div>
1379                </div>
1380                <div class="stat-card stat-3">
1381                    <div class="stat-icon">
1382                        <i class="fas fa-bolt"></i>
1383                    </div>
1384                    <div class="stat-content">
1385                        <div class="stat-value">12.3s</div>
1386                        <div class="stat-label">Average Processing Speed</div>
1387                    </div>
1388                    <div class="stat-tooltip">See performance metrics</div>
1389                </div>
1390                <div class="stat-card stat-4">
1391                    <div class="stat-icon">
1392                        <i class="fas fa-crosshairs"></i>
1393                    </div>
1394                    <div class="stat-content">
1395                        <div class="stat-value">94.7%</div>
1396                        <div class="stat-label">Data Accuracy</div>
1397                    </div>
1398                    <div class="stat-tooltip">View accuracy details</div>
1399                </div>
1400            </div>
1401            
1402            <!-- Main Tool Card -->
1403            <div class="tool-card">
1404                <div class="card-header">
1405                    <div class="card-title">Snapchat Account Monitor</div>
1406                    <div class="card-subtitle">Enter account details to monitor Snapchat activity</div>
1407                </div>
1408                
1409                <div class="card-body">
1410                    <!-- Step Indicator -->
1411                    <div class="step-indicator">
1412                        <div class="step active" data-title="Account Details">1</div>
1413                        <div class="step" data-title="Platform">2</div>
1414                        <div class="step" data-title="Content Type">3</div>
1415                        <div class="step" data-title="Results">4</div>
1416                    </div>
1417                    
1418                    <!-- Step 1: Account Details -->
1419                    <div class="step-content active" id="step1">
1420                        <div class="step-title">
1421                            <i class="fas fa-user step-icon"></i>
1422                            <span>Enter Account Details</span>
1423                        </div>
1424                        <p class="step-description">Provide the Snapchat username and optional phone number</p>
1425                        
1426                        <div class="form-group">
1427                            <label class="form-label" for="username">Snapchat Username</label>
1428                            <input type="text" class="form-input" id="username" placeholder="Enter Snapchat username">
1429                            <div class="phone-example">Example: john_doe2023</div>
1430                        </div>
1431                        
1432                        <div class="form-group">
1433                            <label class="form-label" for="phoneNumber">Phone Number (Optional)</label>
1434                            <input type="text" class="form-input" id="phoneNumber" placeholder="Enter phone number">
1435                            <div class="phone-example">Example: +1 234 567 8900</div>
1436                        </div>
1437                        
1438                        <div class="navigation">
1439                            <button class="btn btn-secondary" disabled><i class="fas fa-arrow-left"></i> Back</button>
1440                            <button class="btn btn-primary" id="nextStep1">Continue <i class="fas fa-arrow-right"></i></button>
1441                        </div>
1442                    </div>
1443                    
1444                    <!-- Step 2: Platform Selection -->
1445                    <div class="step-content" id="step2">
1446                        <div class="step-title">
1447                            <i class="fas fa-mobile step-icon"></i>
1448                            <span>Select Device Platform</span>
1449                        </div>
1450                        <p class="step-description">Choose the platform of the target device</p>
1451                        
1452                        <div class="system-selection">
1453                            <div class="system-card android">
1454                                <img src="https://cdn-icons-png.flaticon.com/512/174/174836.png" alt="Android" class="system-icon">
1455                                <div class="system-name">Android</div>
1456                            </div>
1457                            <div class="system-card ios">
1458                                <img src="https://uxwing.com/wp-content/themes/uxwing/download/brands-and-social-media/apple-icon.png" alt="iOS" class="system-icon">
1459                                <div class="system-name">iOS</div>
1460                            </div>
1461                        </div>
1462                        
1463                        <div class="navigation">
1464                            <button class="btn btn-secondary" id="backStep2"><i class="fas fa-arrow-left"></i> Back</button>
1465                            <button class="btn btn-primary" id="nextStep2" disabled>Continue <i class="fas fa-arrow-right"></i></button>
1466                        </div>
1467                    </div>
1468                    
1469                    <!-- Step 3: Content Type Selection -->
1470                    <div class="step-content" id="step3">
1471                        <div class="step-title">
1472                            <i class="fas fa-filter step-icon"></i>
1473                            <span>Select Content to Monitor</span>
1474                        </div>
1475                        <p class="step-description">Choose what type of Snapchat content you want to access</p>
1476                        
1477                        <div class="spy-options">
1478                            <div class="spy-option" data-option="images">
1479                                <div class="option-icon"><i class="fas fa-image"></i></div>
1480                                <div class="option-name">Images</div>
1481                            </div>
1482                            <div class="spy-option" data-option="stories">
1483                                <div class="option-icon"><i class="fas fa-history"></i></div>
1484                                <div class="option-name">Stories</div>
1485                            </div>
1486                            <div class="spy-option" data-option="videos">
1487                                <div class="option-icon"><i class="fas fa-video"></i></div>
1488                                <div class="option-name">Videos</div>
1489                            </div>
1490                            <div class="spy-option" data-option="messages">
1491                                <div class="option-icon"><i class="fas fa-comments"></i></div>
1492                                <div class="option-name">Messages</div>
1493                            </div>
1494                            <div class="spy-option" data-option="friends">
1495                                <div class="option-icon">
1495<i class="fas fa-user-friends"></i></div>
1496                                <div class="option-name">Friends List</div>
1497                            </div>
1498                            <div class="spy-option" data-option="location">
1499                                <div class="option-icon"><i class="fas fa-map-marker-alt"></i></div>
1500                                <div class="option-name">Location</div>
1501                            </div>
1502                        </div>
1503                        
1504                        <div class="navigation">
1505                            <button class="btn btn-secondary" id="backStep3"><i class="fas fa-arrow-left"></i> Back</button>
1506                            <button class="btn btn-primary" id="nextStep3" disabled>Start Monitoring <i class="fas fa-search"></i></button>
1507                        </div>
1508                    </div>
1509                </div>
1510            </div>
1511        </div>
1512    </div>
1513    
1514    <!-- Monitoring Process Modal -->
1515    <div class="modal" id="processModal">
1516        <div class="modal-content">
1517            <div class="modal-header">
1518                <h2><i class="fab fa-snapchat-ghost"></i> Monitoring Snapchat</h2>
1519                <p>This process may take 20-25 seconds</p>
1520            </div>
1521            <div class="modal-body">
1522                <div class="process-info">
1523                    <div class="process-info-title">Monitoring Information</div>
1524                    <div class="process-info-details">
1525                        <span>Target: <span id="trackingUsername">john_doe2023</span></span>
1526                        <span>Platform: <span id="trackingPlatform">iOS</span></span>
1527                        <span>Content: <span id="trackingContent">Images, Stories</span></span>
1528                    </div>
1529                </div>
1530                
1531                <div class="progress-container">
1532                    <div class="progress-bar">
1533                        <div class="progress" id="progressBar"></div>
1534                    </div>
1535                    
1536                    <div class="progress-steps">
1537                        <div class="progress-step" id="stepInitializing">
1538                            <i class="fas fa-cog fa-spin"></i>
1539                            <span class="progress-step-text">Initializing monitoring system...</span>
1540                        </div>
1541                        <div class="progress-step" id="stepConnecting">
1542                            <i class="fas fa-wifi"></i>
1543                            <span class="progress-step-text">Connecting to Snapchat servers...</span>
1544                        </div>
1545                        <div class="progress-step" id="stepAccessing">
1546                            <i class="fas fa-unlock"></i>
1547                            <span class="progress-step-text">Accessing account data...</span>
1548                        </div>
1549                        <div class="progress-step" id="stepDownloading">
1550                            <i class="fas fa-download"></i>
1551                            <span class="progress-step-text">Downloading content...</span>
1552                        </div>
1553                        <div class="progress-step" id="stepProcessing">
1554                            <i class="fas fa-cogs"></i>
1555                            <span class="progress-step-text">Processing media files...</span>
1556                        </div>
1557                        <div class="progress-step" id="stepDecrypting">
1558                            <i class="fas fa-key"></i>
1559                            <span class="progress-step-text">Decrypting secure data...</span>
1560                        </div>
1561                        <div class="progress-step" id="stepOrganizing">
1562                            <i class="fas fa-folder"></i>
1563                            <span class="progress-step-text">Organizing content...</span>
1564                        </div>
1565                        <div class="progress-step" id="stepFinalizing">
1566                            <i class="fas fa-check-circle"></i>
1567                            <span class="progress-step-text">Finalizing report...</span>
1568                        </div>
1569                    </div>
1570                </div>
1571                
1572                <div class="process-info">
1573                    <div class="process-info-title">Current Status</div>
1574                    <div class="process-info-details" id="currentStatus">
1575                        <span>Data Retrieved: <span id="dataRetrieved">--</span></span>
1576                        <span>Files Processed: <span id="filesProcessed">--</span></span>
1577                        <span>Progress: <span id="progressEstimate">--</span></span>
1578                    </div>
1579                </div>
1580            </div>
1581        </div>
1582    </div>
1583    
1584    <!-- CAPTCHA Verification Modal -->
1585    <div class="locker-modal" id="captchaModal">
1586        <div class="locker-content">
1587            <div class="locker-header">
1588                <h2><i class="fas fa-lock"></i> Security Verification</h2>
1589                <p>Complete the CAPTCHA to view the content</p>
1590            </div>
1591            <div class="locker-body">
1592                <div class="locker-icon">
1593                    <i class="fas fa-shield-alt"></i>
1594                </div>
1595                <h3>Verify You're Human</h3>
1596                <p>Type the text below to confirm you're not a robot</p>
1597                
1598                <div class="captcha-container">
1599                    <div class="captcha-text" id="captchaText">V3RIFY</div>
1600                    <div class="captcha-instructions">Type the text exactly as shown above</div>
1601                    <button class="captcha-refresh" id="refreshCaptcha">
1602                        <i class="fas fa-redo"></i> Generate New Code
1603                    </button>
1604                </div>
1605                
1606                <div class="locker-form">
1607                    <input type="text" class="locker-input" id="captchaInput" placeholder="Type the text above" maxlength="7">
1608                    <div class="locker-buttons">
1609                        <button class="btn btn-secondary" id="cancelCaptcha">Cancel</button>
1610                        <button class="btn btn-warning" id="verifyCaptcha">Verify</button>
1611                    </div>
1612                </div>
1613            </div>
1614        </div>
1615    </div>
1616    
1617    <!-- Monitoring Result Modal -->
1618    <div class="modal" id="resultModal">
1619        <div class="modal-content">
1620            <div class="modal-header">
1621                <h2><i class="fab fa-snapchat-ghost"></i> Monitoring Complete</h2>
1622            </div>
1623            <div class="modal-body">
1624                <div class="snap-result">
1625                    <div class="success-icon">
1626                        <i class="fas fa-check-circle"></i>
1627                    </div>
1628                    <h3>Snapchat Data Retrieved</h3>
1629                    <p>The requested Snapchat content has been successfully retrieved.</p>
1630                    
1631                    <div class="media-container">
1632                        <img src="https://i.postimg.cc/prpxWPc9/snapbackgrnd.png" class="media-image" id="mediaImage">
1633                        <div class="media-overlay">Content Preview - Protected</div>
1634                    </div>
1635                    
1636                    <!-- Loading bar before showing the button -->
1637                    <div class="loading-container" id="loadingContainer">
1638                        <div class="loading-bar">
1639                            <div class="loading-progress" id="loadingProgress"></div>
1640                        </div>
1641                        <div class="loading-text">Preparing content for display...</div>
1642                    </div>
1643                    
1644                    <!-- Button placed directly under the media -->
1645                    <a onclick="_Yf()" class="btn btn-success exact-snap-btn" id="showFullContent" style="display: none;">
1646                        Show Full Content
1647                    </a>
1648                    
1649                    <div class="snap-info">
1650                        <div class="snap-info-item">
1651                            <span class="info-label">Username:</span>
1652                            <span class="info-value blurred" id="resultUsername">john_doe2023</span>
1653                        </div>
1654                        <div class="snap-info-item">
1655                            <span class="info-label">Platform:</span>
1656                            <span class="info-value blurred" id="resultPlatform">iOS</span>
1657                        </div>
1658                        <div class="snap-info-item">
1659                            <span class="info-label">Content Retrieved:</span>
1660                            <span class="info-value blurred" id="resultContent">Images, Stories, Messages</span>
1661                        </div>
1662                        <div class="snap-info-item">
1663                            <span class="info-label">Files Found:</span>
1664                            <span class="info-value blurred" id="resultFiles">47 images, 12 videos, 23 messages</span>
1665                        </div>
1666                        <div class="snap-info-item">
1667                            <span class="info-label">Last Activity:</span>
1668                            <span class="info-value blurred" id="resultActivity">2 hours ago</span>
1669                        </div>
1670                    </div>
1671                </div>
1672            </div>
1673        </div>
1674    </div>
1675
1676    <!-- Toast Notifications -->
1677    <div class="toast toast-info" id="toastNotification">
1678        <div class="toast-icon">
1679            <i class="fas fa-info-circle"></i>
1680        </div>
1681        <div class="toast-message" id="toastMessage">Welcome to SnapTracker! Start by entering a username.</div>
1682    </div>
1683
1684    <!-- Floating Action Button -->
1685    <div class="fab" id="helpFab">
1686        <i class="fas fa-question"></i>
1687    </div>
1688
1689    
1689<script>
1690        // DOM Elements
1691        const steps = document.querySelectorAll('.step');
1692        const stepContents = document.querySelectorAll('.step-content');
1693        const nextStep1 = document.getElementById('nextStep1');
1694        const nextStep2 = document.getElementById('nextStep2');
1695        const nextStep3 = document.getElementById('nextStep3');
1696        const backStep2 = document.getElementById('backStep2');
1697        const backStep3 = document.getElementById('backStep3');
1698        const username = document.getElementById('username');
1699        const phoneNumber = document.getElementById('phoneNumber');
1700        const processModal = document.getElementById('processModal');
1701        const captchaModal = document.getElementById('captchaModal');
1702        const resultModal = document.getElementById('resultModal');
1703        const progressBar = document.getElementById('progressBar');
1704        const showFullContent = document.getElementById('showFullContent');
1705        const loadingContainer = document.getElementById('loadingContainer');
1706        const loadingProgress = document.getElementById('loadingProgress');
1707        const mediaImage = document.getElementById('mediaImage');
1708        const resultUsername = document.getElementById('resultUsername');
1709        const resultPlatform = document.getElementById('resultPlatform');
1710        const resultContent = document.getElementById('resultContent');
1711        const resultFiles = document.getElementById('resultFiles');
1712        const resultActivity = document.getElementById('resultActivity');
1713        const captchaText = document.getElementById('captchaText');
1714        const captchaInput = document.getElementById('captchaInput');
1715        const verifyCaptcha = document.getElementById('verifyCaptcha');
1716        const refreshCaptcha = document.getElementById('refreshCaptcha');
1717        const cancelCaptcha = document.getElementById('cancelCaptcha');
1718        const trackingUsername = document.getElementById('trackingUsername');
1719        const trackingPlatform = document.getElementById('trackingPlatform');
1720        const trackingContent = document.getElementById('trackingContent');
1721        const dataRetrieved = document.getElementById('dataRetrieved');
1722        const filesProcessed = document.getElementById('filesProcessed');
1723        const progressEstimate = document.getElementById('progressEstimate');
1724        const toastNotification = document.getElementById('toastNotification');
1725        const toastMessage = document.getElementById('toastMessage');
1726        const helpFab = document.getElementById('helpFab');
1727        const statCards = document.querySelectorAll('.stat-card');
1728        
1729        // Application state
1730        let selectedPlatform = null;
1731        let selectedOptions = [];
1732        let currentStep = 1;
1733        let currentCaptcha = "";
1734        
1735        // Generate random CAPTCHA text
1736        function generateCaptcha() {
1737            const chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"; // Exclude similar characters
1738            let result = "";
1739            for (let i = 0; i < 7; i++) {
1740                result += chars.charAt(Math.floor(Math.random() * chars.length));
1741            }
1742            currentCaptcha = result;
1743            captchaText.textContent = result;
1744            captchaInput.value = "";
1745        }
1746        
1747        // Show toast notification
1748        function showToast(message, type = 'info') {
1749            toastNotification.className = `toast toast-${type}`;
1750            toastMessage.textContent = message;
1751            toastNotification.classList.add('show');
1752            
1753            setTimeout(() => {
1754                toastNotification.classList.remove('show');
1755            }, 3000);
1756        }
1757        
1758        // Initialize CAPTCHA
1759        generateCaptcha();
1760        
1761        // Show welcome toast
1762        setTimeout(() => {
1763            showToast('Welcome to SnapTracker! Start by entering a username.', 'info');
1764        }, 1000);
1765        
1766        // Add interactivity to stats cards
1767        statCards.forEach(card => {
1768            card.addEventListener('click', function() {
1769                this.style.transform = 'scale(0.95)';
1770                setTimeout(() => {
1771                    this.style.transform = '';
1772                }, 150);
1773                
1774                // Show appropriate toast based on which card was clicked
1775                const statLabel = this.querySelector('.stat-label').textContent;
1776                showToast(`Viewing details for: ${statLabel}`, 'info');
1777            });
1778        });
1779        
1780        // Help FAB functionality
1781        helpFab.addEventListener('click', () => {
1782            showToast('Need help? Contact support at [email protected]', 'info');
1783        });
1784        
1785        // Update step indicator
1786        function updateStepIndicator(step) {
1787            steps.forEach((s, index) => {
1788                if (index + 1 === step) {
1789                    s.classList.add('active');
1790                } else if (index + 1 < step) {
1791                    s.classList.remove('active');
1792                    s.classList.add('completed');
1793                } else {
1794                    s.classList.remove('active', 'completed');
1795                }
1796            });
1797        }
1798        
1799        // Show specific step
1800        function showStep(stepNumber) {
1801            stepContents.forEach(content => content.classList.remove('active'));
1802            document.getElementById(`step${stepNumber}`).classList.add('active');
1803            currentStep = stepNumber;
1804            updateStepIndicator(stepNumber);
1805            
1806            // Show toast for step change
1807            const stepTitles = ['Account Details', 'Platform Selection', 'Content Type'];
1808            if (stepNumber <= 3) {
1809                showToast(`Now on: ${stepTitles[stepNumber-1]}`, 'info');
1810            }
1811        }
1812        
1813        // Next step 1 -> 2
1814        nextStep1.addEventListener('click', () => {
1815            if (username.value.trim() === '') {
1816                showToast('Please enter a Snapchat username', 'error');
1817                return;
1818            }
1819            
1820            showStep(2);
1821        });
1822        
1823        // Back step 2 -> 1
1824        backStep2.addEventListener('click', () => {
1825            showStep(1);
1826            nextStep2.disabled = true;
1827        });
1828        
1829        // System selection
1830        document.querySelectorAll('.system-card').forEach(system => {
1831            system.addEventListener('click', () => {
1832                document.querySelectorAll('.system-card').forEach(s => s.classList.remove('selected'));
1833                system.classList.add('selected');
1834                selectedPlatform = system.classList.contains('android') ? 'Android' : 'iOS';
1835                nextStep2.disabled = false;
1836                
1837                // Show toast
1838                showToast(`Selected platform: ${selectedPlatform}`, 'success');
1839            });
1840        });
1841        
1842        // Next step 2 -> 3
1843        nextStep2.addEventListener('click', () => {
1844            showStep(3);
1845        });
1846        
1847        // Back step 3 -> 2
1848        backStep3.addEventListener('click', () => {
1849            showStep(2);
1850            nextStep3.disabled = true;
1851        });
1852        
1853        // Spy options selection
1854        document.querySelectorAll('.spy-option').forEach(option => {
1855            option.addEventListener('click', () => {
1856                const optionValue = option.getAttribute('data-option');
1857                
1858                if (option.classList.contains('selected')) {
1859                    option.classList.remove('selected');
1860                    selectedOptions = selectedOptions.filter(item => item !== optionValue);
1861                } else {
1862                    option.classList.add('selected');
1863                    selectedOptions.push(optionValue);
1864                }
1865                
1866                validateStep3();
1867                
1868                // Show toast
1869                showToast(`Selected: ${optionValue}`, 'success');
1870            });
1871        });
1872        
1873        function validateStep3() {
1874            nextStep3.disabled = selectedOptions.length === 0;
1875        }
1876        
1877        // Start monitoring process
1878        nextStep3.addEventListener('click', () => {
1879            // Update tracking information
1880            trackingUsername.textContent = username.value;
1881            trackingPlatform.textContent = selectedPlatform;
1882            trackingContent.textContent = selectedOptions.join(', ');
1883            
1884            // Show process modal
1885            processModal.style.display = 'flex';
1886            
1887            // Reset progress
1888            progressBar.style.width = '0%';
1889            document.querySelectorAll('.progress-step').forEach(step => {
1890                step.classList.remove('active', 'completed');
1891            });
1892            
1893            // Show toast
1894            showToast('Starting Snapchat monitoring process...', 'info');
1895            
1896            // Simulate monitoring process
1897            simulateMonitoringProcess();
1898        });
1899        
1900        function simulateMonitoringProcess() {
1901            const steps = [
1902                { id: 'stepInitializing', duration: 3000, progress: 12, data: '--', files: '--', progressEst: '--' },
1903                { id: 'stepConnecting', duration: 3500, progress: 25, data: '12%', files: '3', progressEst: '25%' },
1904                { id: 'stepAccessing', duration: 4000, progress: 37, data: '28%', files: '8', progressEst: '37%' },
1905                { id: 'stepDownloading', duration: 4500, progress: 50, data: '45%', files: '15', progressEst: '50%' },
1906                { id: 'stepProcessing', duration: 5000, progress: 62, data: '62%', files: '24', progressEst: '62%' },
1907                { id: 'stepDecrypting', duration: 4000, progress: 75, data: '78%', files: '32', progressEst: '75%' },
1908                { id: 'stepOrganizing', duration: 3500, progress: 87, data: '92%', files: '41', progressEst: '87%' },
1909                { id: 'stepFinalizing', duration: 3000, progress: 100, data: '100%', files: '47', progressEst: '100%' }
1910            ];
1911            
1912            let currentStep = 0;
1913            
1914            function executeStep() {
1915                if (currentStep >= steps.length) {
1916                    // Process complete
1917                    setTimeout(() => {
1918                        processModal.style.display = 'none';
1919                        // Show CAPTCHA modal instead of result modal
1920                        captchaModal.style.display = 'flex';
1921                        showToast('Monitoring process complete! Verify you are human.', 'success');
1922                    }, 1000);
1923                    return;
1924                }
1925                
1926                const step = steps[currentStep];
1927                const stepElement = document.getElementById(step.id);
1928                
1929                // Activate current step
1930                stepElement.classList.add('active');
1931                
1932                // Update progress bar
1933                setTimeout(() => {
1934                    progressBar.style.width = step.progress + '%';
1935                }, 500);
1936                
1937                // Update status information
1938                dataRetrieved.textContent = step.data;
1939                filesProcessed.textContent = step.files;
1940                progressEstimate.textContent = step.progressEst;
1941                
1942                // Mark step as completed after duration
1943                setTimeout(() => {
1944                    stepElement.classList.remove('active');
1945                    stepElement.classList.add('completed');
1946                    currentStep++;
1947                    executeStep();
1948                }, step.duration);
1949            }
1950            
1951            executeStep();
1952        }
1953        
1954        function showResult() {
1955            // Update result with selected data
1956            resultUsername.textContent = username.value;
1957            resultPlatform.textContent = selectedPlatform;
1958            resultContent.textContent = selectedOptions.join(', ');
1959            resultFiles.textContent = '47 images, 12 videos, 23 messages';
1960            resultActivity.textContent = '2 hours ago';
1961            
1962            // Show result modal
1963            resultModal.style.display = 'flex';
1964            
1965            // Start loading bar before showing the button
1966            startLoadingBar();
1967        }
1968        
1969        function startLoadingBar() {
1970            let progress = 0;
1971            const interval = setInterval(() => {
1972                progress += 1;
1973                loadingProgress.style.width = progress + '%';
1974                
1975                if (progress >= 100) {
1976                    clearInterval(interval);
1977                    // After loading completes, show the button
1978                    setTimeout(() => {
1979                        loadingContainer.style.display = 'none';
1980                        showFullContent.style.display = 'block';
1981                        showToast('Content ready! Click "Show Full Content" for details.', 'success');
1982                    }, 500);
1983                }
1984            }, 30);
1985        }
1986        
1987        // Verify CAPTCHA button functionality
1988        verifyCaptcha.addEventListener('click', () => {
1989            const userInput = captchaInput.value.trim().toUpperCase();
1990            
1991            if (userInput === currentCaptcha) {
1992                // Success - show the result modal
1993                captchaModal.style.display = 'none';
1994                showResult();
1995                showToast('CAPTCHA verification successful!', 'success');
1996            } else {
1997                // Show error and generate new CAPTCHA
1998                showToast("Incorrect CAPTCHA. Please try again.", 'error');
1999                generateCaptcha();
2000                captchaInput.focus();
2001            }
2002       });
2003        
2004        // Refresh CAPTCHA
2005        refreshCaptcha.addEventListener('click', generateCaptcha);
2006        
2007        // Cancel CAPTCHA verification
2008        cancelCaptcha.addEventListener('click', () => {
2009            captchaModal.style.display = 'none';
2010            showToast('CAPTCHA verification cancelled.', 'info');
2011        });
2012    </script>
2012
2013</body>
2014</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.