CommanderLazarus commited on
Commit
c3bb20b
·
verified ·
1 Parent(s): 3216ecf

Create me a website dedicated to my photos of awesome alien and ufo photos. Give me the option to enter details about each piece, so that I may tell a story.

Browse files
Files changed (8) hide show
  1. README.md +7 -4
  2. add-photo.html +99 -0
  3. components/footer.js +59 -0
  4. components/navbar.js +78 -0
  5. components/photo-card.js +94 -0
  6. index.html +48 -19
  7. script.js +73 -0
  8. style.css +41 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Alien Lens Chronicles
3
- emoji: 🏢
4
- colorFrom: indigo
5
  colorTo: purple
 
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Alien Lens Chronicles 👽📸
3
+ colorFrom: red
 
4
  colorTo: purple
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
add-photo.html ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Add New Sighting | Alien Lens Chronicles</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/footer.js"></script>
13
+ </head>
14
+ <body class="bg-gray-900 text-gray-100 min-h-screen">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="container mx-auto px-4 py-8 max-w-4xl">
18
+ <h1 class="text-4xl font-bold mb-8 text-purple-500">Document Your Encounter</h1>
19
+
20
+ <form id="photo-form" class="space-y-6">
21
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
22
+ <div>
23
+ <label for="title" class="block text-sm font-medium mb-1">Sighting Title</label>
24
+ <input type="text" id="title" name="title" required class="w-full px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent">
25
+ </div>
26
+
27
+ <div>
28
+ <label for="date" class="block text-sm font-medium mb-1">Date of Sighting</label>
29
+ <input type="date" id="date" name="date" required class="w-full px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent">
30
+ </div>
31
+ </div>
32
+
33
+ <div>
34
+ <label for="location" class="block text-sm font-medium mb-1">Location</label>
35
+ <input type="text" id="location" name="location" required class="w-full px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent">
36
+ </div>
37
+
38
+ <div>
39
+ <label for="image" class="block text-sm font-medium mb-1">Upload Image</label>
40
+ <div class="flex items-center justify-center w-full">
41
+ <label for="image" class="flex flex-col items-center justify-center w-full h-64 border-2 border-gray-700 border-dashed rounded-lg cursor-pointer bg-gray-800 hover:bg-gray-800/50">
42
+ <div class="flex flex-col items-center justify-center pt-5 pb-6">
43
+ <i data-feather="upload" class="w-12 h-12 mb-3 text-gray-400"></i>
44
+ <p class="mb-2 text-sm text-gray-400">Click to upload</p>
45
+ <p class="text-xs text-gray-500">PNG, JPG, GIF (MAX. 5MB)</p>
46
+ </div>
47
+ <input id="image" type="file" class="hidden" accept="image/*" required>
48
+ </label>
49
+ </div>
50
+ </div>
51
+
52
+ <div>
53
+ <label for="description" class="block text-sm font-medium mb-1">Your Story</label>
54
+ <textarea id="description" name="description" rows="5" required class="w-full px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent" placeholder="Describe your encounter in detail..."></textarea>
55
+ </div>
56
+
57
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
58
+ <div>
59
+ <label for="type" class="block text-sm font-medium mb-1">Type of Sighting</label>
60
+ <select id="type" name="type" class="w-full px-4 py-2 bg-gray-800 border border-gray-700 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent">
61
+ <option value="ufo">UFO</option>
62
+ <option value="alien">Alien Being</option>
63
+ <option value="light">Strange Lights</option>
64
+ <option value="artifact">Alien Artifact</option>
65
+ <option value="other">Other</option>
66
+ </select>
67
+ </div>
68
+
69
+ <div>
70
+ <label for="credibility" class="block text-sm font-medium mb-1">Credibility Rating</label>
71
+ <div class="flex items-center space-x-2">
72
+ <input type="range" id="credibility" name="credibility" min="0" max="10" value="5" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer">
73
+ <span id="credibility-value" class="text-purple-400 font-medium">5</span>
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <div class="flex justify-end space-x-4 pt-4">
79
+ <a href="index.html" class="px-6 py-2 border border-gray-700 rounded-lg hover:bg-gray-800 transition-colors">Cancel</a>
80
+ <button type="submit" class="px-6 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg transition-colors flex items-center gap-2">
81
+ <i data-feather="save"></i>
82
+ <span>Save Encounter</span>
83
+ </button>
84
+ </div>
85
+ </form>
86
+ </main>
87
+
88
+ <custom-footer></custom-footer>
89
+
90
+ <script src="script.js"></script>
91
+ <script>
92
+ feather.replace();
93
+ // Update credibility rating display
94
+ document.getElementById('credibility').addEventListener('input', function() {
95
+ document.getElementById('credibility-value').textContent = this.value;
96
+ });
97
+ </script>
98
+ </body>
99
+ </html>
components/footer.js ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomFooter extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ footer {
7
+ background-color: rgba(17, 24, 39, 0.8);
8
+ backdrop-filter: blur(10px);
9
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
10
+ }
11
+
12
+ .social-icon {
13
+ transition: all 0.3s ease;
14
+ }
15
+
16
+ .social-icon:hover {
17
+ transform: translateY(-3px) scale(1.1);
18
+ color: #a855f7;
19
+ }
20
+ </style>
21
+ <footer class="py-8 mt-12">
22
+ <div class="container mx-auto px-6">
23
+ <div class="flex flex-col md:flex-row justify-between items-center">
24
+ <div class="mb-6 md:mb-0">
25
+ <h3 class="text-xl font-bold text-purple-400 mb-2">Alien Lens Chronicles</h3>
26
+ <p class="text-gray-400 max-w-md">Documenting the unexplained through the lens of curiosity</p>
27
+ </div>
28
+
29
+ <div class="flex space-x-6">
30
+ <a href="#" class="text-gray-400 hover:text-purple-400 social-icon">
31
+ <i data-feather="twitter"></i>
32
+ </a>
33
+ <a href="#" class="text-gray-400 hover:text-purple-400 social-icon">
34
+ <i data-feather="instagram"></i>
35
+ </a>
36
+ <a href="#" class="text-gray-400 hover:text-purple-400 social-icon">
37
+ <i data-feather="youtube"></i>
38
+ </a>
39
+ <a href="#" class="text-gray-400 hover:text-purple-400 social-icon">
40
+ <i data-feather="github"></i>
41
+ </a>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center">
46
+ <p class="text-gray-500 text-sm mb-4 md:mb-0">© 2023 Alien Lens Chronicles. All rights reserved.</p>
47
+ <div class="flex space-x-6">
48
+ <a href="#" class="text-gray-500 hover:text-purple-400 text-sm">Privacy Policy</a>
49
+ <a href="#" class="text-gray-500 hover:text-purple-400 text-sm">Terms of Service</a>
50
+ <a href="#" class="text-gray-500 hover:text-purple-400 text-sm">Contact</a>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </footer>
55
+ `;
56
+ }
57
+ }
58
+
59
+ customElements.define('custom-footer', CustomFooter);
components/navbar.js ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ nav {
7
+ background-color: rgba(17, 24, 39, 0.8);
8
+ backdrop-filter: blur(10px);
9
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
10
+ }
11
+
12
+ .nav-link {
13
+ position: relative;
14
+ }
15
+
16
+ .nav-link::after {
17
+ content: '';
18
+ position: absolute;
19
+ bottom: -2px;
20
+ left: 0;
21
+ width: 0;
22
+ height: 2px;
23
+ background-color: #a855f7;
24
+ transition: width 0.3s ease;
25
+ }
26
+
27
+ .nav-link:hover::after {
28
+ width: 100%;
29
+ }
30
+
31
+ .logo {
32
+ text-shadow: 0 0 10px rgba(168, 85, 247, 0.5);
33
+ }
34
+ </style>
35
+ <nav class="py-4 px-6 sticky top-0 z-50">
36
+ <div class="container mx-auto flex justify-between items-center">
37
+ <a href="index.html" class="text-2xl font-bold text-purple-400 logo flex items-center gap-2">
38
+ <i data-feather="camera"></i>
39
+ <span>Alien Lens</span>
40
+ </a>
41
+
42
+ <div class="hidden md:flex items-center space-x-8">
43
+ <a href="index.html" class="text-gray-300 hover:text-purple-400 transition-colors nav-link">Gallery</a>
44
+ <a href="add-photo.html" class="text-gray-300 hover:text-purple-400 transition-colors nav-link">Add Sighting</a>
45
+ <a href="#" class="text-gray-300 hover:text-purple-400 transition-colors nav-link">About</a>
46
+ </div>
47
+
48
+ <button id="mobile-menu-button" class="md:hidden text-gray-300 hover:text-purple-400">
49
+ <i data-feather="menu"></i>
50
+ </button>
51
+ </div>
52
+
53
+ <!-- Mobile menu -->
54
+ <div id="mobile-menu" class="hidden md:hidden mt-4 space-y-3 pb-4">
55
+ <a href="index.html" class="block px-4 py-2 text-gray-300 hover:bg-gray-800 rounded-lg transition-colors">Gallery</a>
56
+ <a href="add-photo.html" class="block px-4 py-2 text-gray-300 hover:bg-gray-800 rounded-lg transition-colors">Add Sighting</a>
57
+ <a href="#" class="block px-4 py-2 text-gray-300 hover:bg-gray-800 rounded-lg transition-colors">About</a>
58
+ </div>
59
+ </nav>
60
+ `;
61
+
62
+ // Mobile menu toggle
63
+ this.shadowRoot.getElementById('mobile-menu-button').addEventListener('click', () => {
64
+ const menu = this.shadowRoot.getElementById('mobile-menu');
65
+ menu.classList.toggle('hidden');
66
+
67
+ const icon = this.shadowRoot.querySelector('#mobile-menu-button i');
68
+ if (menu.classList.contains('hidden')) {
69
+ icon.setAttribute('data-feather', 'menu');
70
+ } else {
71
+ icon.setAttribute('data-feather', 'x');
72
+ }
73
+ feather.replace();
74
+ });
75
+ }
76
+ }
77
+
78
+ customElements.define('custom-navbar', CustomNavbar);
components/photo-card.js ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomPhotoCard extends HTMLElement {
2
+ connectedCallback() {
3
+ const id = this.getAttribute('data-id');
4
+ const title = this.getAttribute('data-title');
5
+ const date = this.getAttribute('data-date');
6
+ const location = this.getAttribute('data-location');
7
+ const image = this.getAttribute('data-image');
8
+ const description = this.getAttribute('data-description');
9
+ const type = this.getAttribute('data-type');
10
+ const credibility = this.getAttribute('data-credibility');
11
+
12
+ this.attachShadow({ mode: 'open' });
13
+ this.shadowRoot.innerHTML = `
14
+ <style>
15
+ .card {
16
+ transition: all 0.3s ease;
17
+ transform-style: preserve-3d;
18
+ }
19
+
20
+ .card:hover {
21
+ transform: translateY(-5px) rotateX(5deg);
22
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
23
+ }
24
+
25
+ .type-badge {
26
+ position: absolute;
27
+ top: 1rem;
28
+ right: 1rem;
29
+ z-index: 10;
30
+ }
31
+
32
+ .credibility-meter {
33
+ height: 4px;
34
+ background: linear-gradient(90deg, #ef4444 0%, #f59e0b 50%, #10b981 100%);
35
+ }
36
+
37
+ .credibility-indicator {
38
+ width: ${credibility * 10}%;
39
+ height: 100%;
40
+ background-color: white;
41
+ box-shadow: 0 0 10px rgba(255, 255, 255, 0.7);
42
+ }
43
+ </style>
44
+ <div class="card bg-gray-800 rounded-xl overflow-hidden shadow-lg hover:shadow-xl transition-all duration-300">
45
+ <div class="relative">
46
+ <img src="${image}" alt="${title}" class="w-full h-48 object-cover">
47
+ <span class="type-badge px-3 py-1 rounded-full text-xs font-semibold ${
48
+ type === 'ufo' ? 'bg-purple-600' :
49
+ type === 'alien' ? 'bg-green-600' :
50
+ 'bg-blue-600'
51
+ }">
52
+ ${type.charAt(0).toUpperCase() + type.slice(1)}
53
+ </span>
54
+ </div>
55
+
56
+ <div class="p-6">
57
+ <div class="flex justify-between items-start mb-2">
58
+ <h3 class="text-xl font-bold text-purple-400">${title}</h3>
59
+ <span class="text-gray-400 text-sm">${new Date(date).toLocaleDateString()}</span>
60
+ </div>
61
+
62
+ <div class="flex items-center text-gray-400 text-sm mb-4">
63
+ <i data-feather="map-pin" class="w-4 h-4 mr-1"></i>
64
+ <span>${location}</span>
65
+ </div>
66
+
67
+ <p class="text-gray-300 mb-4 line-clamp-3">${description}</p>
68
+
69
+ <div class="credibility-meter rounded-full mb-4 overflow-hidden">
70
+ <div class="credibility-indicator"></div>
71
+ </div>
72
+ <div class="flex justify-between text-xs text-gray-400">
73
+ <span>Questionable</span>
74
+ <span>Credible</span>
75
+ </div>
76
+
77
+ <a href="photo-detail.html?id=${id}" class="mt-4 inline-block px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg transition-colors text-sm font-medium">
78
+ View Full Story
79
+ </a>
80
+ </div>
81
+ </div>
82
+ `;
83
+
84
+ // Replace feather icons after the element is rendered
85
+ setTimeout(() => {
86
+ const featherIcons = this.shadowRoot.querySelectorAll('[data-feather]');
87
+ featherIcons.forEach(icon => {
88
+ feather.replace(icon);
89
+ });
90
+ }, 100);
91
+ }
92
+ }
93
+
94
+ customElements.define('custom-photo-card', CustomPhotoCard);
index.html CHANGED
@@ -1,19 +1,48 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Alien Lens Chronicles 👽📸</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/footer.js"></script>
13
+ <script src="components/photo-card.js"></script>
14
+ </head>
15
+ <body class="bg-gray-900 text-gray-100 min-h-screen">
16
+ <custom-navbar></custom-navbar>
17
+
18
+ <main class="container mx-auto px-4 py-8">
19
+ <section class="text-center mb-12">
20
+ <h1 class="text-5xl font-bold mb-4 text-purple-500">Alien Lens Chronicles</h1>
21
+ <p class="text-xl text-gray-300 max-w-2xl mx-auto">Documenting the unexplained through the lens of curiosity</p>
22
+ </section>
23
+
24
+ <div class="flex justify-end mb-6">
25
+ <a href="add-photo.html" class="bg-purple-600 hover:bg-purple-700 text-white px-6 py-3 rounded-lg flex items-center gap-2 transition-colors">
26
+ <i data-feather="plus"></i>
27
+ <span>Add New Sighting</span>
28
+ </a>
29
+ </div>
30
+
31
+ <div id="gallery" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
32
+ <!-- Photo cards will be inserted here by JavaScript -->
33
+ </div>
34
+ </main>
35
+
36
+ <custom-footer></custom-footer>
37
+
38
+ <script src="script.js"></script>
39
+ <script>
40
+ feather.replace();
41
+ // Load sample data on page load
42
+ document.addEventListener('DOMContentLoaded', () => {
43
+ loadGallery();
44
+ });
45
+ </script>
46
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
47
+ </body>
48
+ </html>
script.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Sample data for the gallery
2
+ const samplePhotos = [
3
+ {
4
+ id: 1,
5
+ title: "The Phoenix Lights",
6
+ date: "1997-03-13",
7
+ location: "Phoenix, Arizona",
8
+ image: "http://static.photos/technology/640x360/1",
9
+ description: "One of the most famous mass UFO sightings in history. Thousands of people reported seeing a huge V-shaped object with lights silently gliding over the city.",
10
+ type: "ufo",
11
+ credibility: 8
12
+ },
13
+ {
14
+ id: 2,
15
+ title: "Roswell Incident",
16
+ date: "1947-07-08",
17
+ location: "Roswell, New Mexico",
18
+ image: "http://static.photos/science/640x360/2",
19
+ description: "The alleged crash of an extraterrestrial spacecraft and subsequent cover-up by the U.S. government. The debris field contained strange metallic fragments with unearthly properties.",
20
+ type: "alien",
21
+ credibility: 7
22
+ },
23
+ {
24
+ id: 3,
25
+ title: "Tic-Tac Encounter",
26
+ date: "2004-11-14",
27
+ location: "Pacific Ocean",
28
+ image: "http://static.photos/aerial/640x360/3",
29
+ description: "Navy pilots encountered a white, oblong object resembling a tic-tac candy that demonstrated impossible flight characteristics, captured on FLIR video.",
30
+ type: "ufo",
31
+ credibility: 9
32
+ }
33
+ ];
34
+
35
+ // Load gallery with sample data
36
+ function loadGallery() {
37
+ const gallery = document.getElementById('gallery');
38
+
39
+ if (!gallery) return;
40
+
41
+ gallery.innerHTML = '';
42
+
43
+ samplePhotos.forEach(photo => {
44
+ const photoCard = document.createElement('custom-photo-card');
45
+ photoCard.setAttribute('data-id', photo.id);
46
+ photoCard.setAttribute('data-title', photo.title);
47
+ photoCard.setAttribute('data-date', photo.date);
48
+ photoCard.setAttribute('data-location', photo.location);
49
+ photoCard.setAttribute('data-image', photo.image);
50
+ photoCard.setAttribute('data-description', photo.description);
51
+ photoCard.setAttribute('data-type', photo.type);
52
+ photoCard.setAttribute('data-credibility', photo.credibility);
53
+
54
+ gallery.appendChild(photoCard);
55
+ });
56
+
57
+ feather.replace();
58
+ }
59
+
60
+ // Handle form submission for new sightings
61
+ document.getElementById('photo-form')?.addEventListener('submit', function(e) {
62
+ e.preventDefault();
63
+
64
+ // In a real app, you would save to a database
65
+ // For now, we'll just redirect to the gallery
66
+ alert('Sighting saved successfully!');
67
+ window.location.href = 'index.html';
68
+ });
69
+
70
+ // Initialize the app
71
+ document.addEventListener('DOMContentLoaded', () => {
72
+ feather.replace();
73
+ });
style.css CHANGED
@@ -1,28 +1,51 @@
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
 
 
 
 
 
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Space+Mono:wght@400;700&display=swap');
2
+
3
  body {
4
+ font-family: 'Space Mono', monospace;
5
+ }
6
+
7
+ h1, h2, h3, h4, h5, h6 {
8
+ font-family: 'Orbitron', sans-serif;
9
+ }
10
+
11
+ /* Custom scrollbar */
12
+ ::-webkit-scrollbar {
13
+ width: 8px;
14
  }
15
 
16
+ ::-webkit-scrollbar-track {
17
+ background: #1a1a1a;
 
18
  }
19
 
20
+ ::-webkit-scrollbar-thumb {
21
+ background: #7e22ce;
22
+ border-radius: 4px;
 
 
23
  }
24
 
25
+ ::-webkit-scrollbar-thumb:hover {
26
+ background: #9333ea;
 
 
 
 
27
  }
28
 
29
+ /* Animation for alien-themed elements */
30
+ @keyframes float {
31
+ 0%, 100% {
32
+ transform: translateY(0);
33
+ }
34
+ 50% {
35
+ transform: translateY(-10px);
36
+ }
37
  }
38
+
39
+ .float-animation {
40
+ animation: float 4s ease-in-out infinite;
41
+ }
42
+
43
+ /* Glow effect for UFO elements */
44
+ .glow-effect {
45
+ box-shadow: 0 0 15px rgba(124, 58, 237, 0.5);
46
+ transition: box-shadow 0.3s ease;
47
+ }
48
+
49
+ .glow-effect:hover {
50
+ box-shadow: 0 0 25px rgba(124, 58, 237, 0.8);
51
+ }