Spaces:
Running
Running
I need you to make me an amazing wedding website. My name is Dennis Loevlie and my partner is Cait Morrow. We are getting married September 5th 2026 in Pittsburgh PA. We want a party section that is just going to be pictures (no titles) and then a carasael of everyones names. We are getting married in the Aviary so a cute penguin or Pittsburgh oriented theme would be cool. Also I would like to include my story of how we met We met in undergrad as classmates in the same major, stayed friends, and finally started dating senior year. After graduation, we moved to Pittsburgh and began building a life we love—exploring neighborhoods, taking weekend trips, and finding “our” spots around the city. At home, we cook together and unwind with romantic comedies. From lecture halls to city streets, we’re still choosing each other—and can’t wait to celebrate with you. Also, please add an interactive map feature showing significant places in our relationship journey that visitors can click through to see photos, stories, or details about each location. Include these places: United States: Morgantown, WV (West Virginia University) Pittsburgh, PA San Diego, CA Boston, MA Bar Harbor, ME Ocean City, MD Salem, MA Nantucket, MA Chicago, IL Denver, CO Europe: Amsterdam, Netherlands Berlin, Germany Oslo, Norway Flekkerøy, Norway Kristiansand, Norway Grimstad, Norway London, UK Liverpool, UK Positano, Italy Mexico: Cancun The map should be visually appealing and allow users to click each location to reveal why it's special to us. Consider using markers, pins, or a travel path connecting the locations chronologically if possible.
Browse files- README.md +7 -4
- index.html +357 -18
README.md
CHANGED
|
@@ -1,10 +1,13 @@
|
|
| 1 |
---
|
| 2 |
title: Penguin Love Story
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
| 1 |
---
|
| 2 |
title: Penguin Love Story
|
| 3 |
+
colorFrom: yellow
|
| 4 |
+
colorTo: blue
|
| 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://deepsite.hf.co).
|
index.html
CHANGED
|
@@ -1,19 +1,358 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
</html>
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>Dennis & Cait - Wedding Celebration</title>
|
| 7 |
+
<link rel="icon" type="image/x-icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🐧</text></svg>">
|
| 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 |
+
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
|
| 12 |
+
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
|
| 13 |
+
<style>
|
| 14 |
+
@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&family=Playfair+Display:wght@400;700&display=swap');
|
| 15 |
+
.font-dancing { font-family: 'Dancing Script', cursive; }
|
| 16 |
+
.font-playfair { font-family: 'Playfair Display', serif; }
|
| 17 |
+
.penguin-bg {
|
| 18 |
+
background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M50 25 C55 30, 60 30, 65 25 C70 20, 75 20, 80 25 L80 75 C75 80, 70 80, 65 75 C60 70, 55 70, 50 75 C45 70, 40 70, 35 75 C30 80, 25 80, 20 75 L20 25 C25 20, 30 20, 35 25 C40 30, 45 30, 50 25 Z' fill='%23e0f2fe' opacity='0.3'/%3E%3Ccircle cx='40' cy='40' r='3' fill='%231e3a8a'/%3E%3Ccircle cx='60' cy='40' r='3' fill='%231e3a8a'/%3E%3Cpath d='M45 55 Q50 60, 55 55' stroke='%231e3a8a' stroke-width='2' fill='none'/%3E%3C/svg%3E");
|
| 19 |
+
}
|
| 20 |
+
.aviary-gradient {
|
| 21 |
+
background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 100%);
|
| 22 |
+
}
|
| 23 |
+
.map-container {
|
| 24 |
+
height: 500px;
|
| 25 |
+
border-radius: 12px;
|
| 26 |
+
overflow: hidden;
|
| 27 |
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
|
| 28 |
+
}
|
| 29 |
+
.location-popup {
|
| 30 |
+
min-width: 250px;
|
| 31 |
+
}
|
| 32 |
+
.carousel-item {
|
| 33 |
+
transition: transform 0.5s ease;
|
| 34 |
+
}
|
| 35 |
+
.story-section::before {
|
| 36 |
+
content: "";
|
| 37 |
+
position: absolute;
|
| 38 |
+
top: 0;
|
| 39 |
+
left: 0;
|
| 40 |
+
right: 0;
|
| 41 |
+
bottom: 0;
|
| 42 |
+
background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="%2393c5fd" opacity="0.5"/><circle cx="50" cy="50" r="1.5" fill="%2393c5fd" opacity="0.5"/><circle cx="80" cy="30" r="1" fill="%2393c5fd" opacity="0.5"/></svg>');
|
| 43 |
+
opacity: 0.1;
|
| 44 |
+
}
|
| 45 |
+
</style>
|
| 46 |
+
</head>
|
| 47 |
+
<body class="bg-blue-50 text-gray-800 font-sans">
|
| 48 |
+
<!-- Hero Section -->
|
| 49 |
+
<div class="relative aviary-gradient penguin-bg">
|
| 50 |
+
<div class="container mx-auto px-4 py-20 text-center">
|
| 51 |
+
<div class="flex justify-center mb-6">
|
| 52 |
+
<div class="bg-white rounded-full p-4 shadow-lg">
|
| 53 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-blue-600" viewBox="0 0 24 24" fill="currentColor">
|
| 54 |
+
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-2-10H8v2h2v2h2v-2h2v-2h-2V8h-2v2zm6 4h-2v2h2v-2zm0-4h-2v2h2v-2z"/>
|
| 55 |
+
</svg>
|
| 56 |
+
</div>
|
| 57 |
+
</div>
|
| 58 |
+
<h1 class="font-dancing text-5xl md:text-7xl text-blue-900 mb-4">Dennis & Cait</h1>
|
| 59 |
+
<p class="text-xl md:text-2xl text-blue-700 mb-2">Are Getting Married</p>
|
| 60 |
+
<p class="text-lg text-blue-600 mb-6">September 5, 2026 • The Aviary • Pittsburgh, PA</p>
|
| 61 |
+
<div class="flex justify-center space-x-4">
|
| 62 |
+
<a href="#story" class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-6 rounded-full transition duration-300 flex items-center">
|
| 63 |
+
<i data-feather="heart" class="mr-2"></i> Our Story
|
| 64 |
+
</a>
|
| 65 |
+
<a href="#map" class="bg-white hover:bg-blue-50 text-blue-600 font-bold py-3 px-6 rounded-full transition duration-300 border border-blue-200 flex items-center">
|
| 66 |
+
<i data-feather="map-pin" class="mr-2"></i> Journey Map
|
| 67 |
+
</a>
|
| 68 |
+
</div>
|
| 69 |
+
</div>
|
| 70 |
+
</div>
|
| 71 |
+
|
| 72 |
+
<!-- Story Section -->
|
| 73 |
+
<section id="story" class="py-20 relative story-section bg-white">
|
| 74 |
+
<div class="container mx-auto px-4">
|
| 75 |
+
<div class="text-center mb-16">
|
| 76 |
+
<h2 class="font-dancing text-4xl md:text-5xl text-blue-900 mb-4">Our Love Story</h2>
|
| 77 |
+
<div class="w-24 h-1 bg-blue-500 mx-auto"></div>
|
| 78 |
+
</div>
|
| 79 |
+
|
| 80 |
+
<div class="max-w-4xl mx-auto">
|
| 81 |
+
<div class="bg-blue-50 rounded-2xl p-8 md:p-12 shadow-lg border border-blue-100">
|
| 82 |
+
<p class="text-lg md:text-xl leading-relaxed text-gray-700 mb-6">
|
| 83 |
+
We met in undergrad as classmates in the same major, stayed friends, and finally started dating senior year.
|
| 84 |
+
After graduation, we moved to Pittsburgh and began building a life we love—exploring neighborhoods,
|
| 85 |
+
taking weekend trips, and finding "our" spots around the city.
|
| 86 |
+
</p>
|
| 87 |
+
<p class="text-lg md:text-xl leading-relaxed text-gray-700 mb-6">
|
| 88 |
+
At home, we cook together and unwind with romantic comedies. From lecture halls to city streets,
|
| 89 |
+
we're still choosing each other—and can't wait to celebrate with you.
|
| 90 |
+
</p>
|
| 91 |
+
<div class="flex items-center justify-center mt-8">
|
| 92 |
+
<div class="bg-blue-100 rounded-full p-4 mr-4">
|
| 93 |
+
<i data-feather="users" class="text-blue-600"></i>
|
| 94 |
+
</div>
|
| 95 |
+
<p class="text-blue-600 font-medium">Together since 2018</p>
|
| 96 |
+
</div>
|
| 97 |
+
</div>
|
| 98 |
+
</div>
|
| 99 |
+
</div>
|
| 100 |
+
</section>
|
| 101 |
+
|
| 102 |
+
<!-- Interactive Map Section -->
|
| 103 |
+
<section id="map" class="py-20 bg-blue-50">
|
| 104 |
+
<div class="container mx-auto px-4">
|
| 105 |
+
<div class="text-center mb-16">
|
| 106 |
+
<h2 class="font-dancing text-4xl md:text-5xl text-blue-900 mb-4">Our Journey Together</h2>
|
| 107 |
+
<p class="text-xl text-blue-700 max-w-2xl mx-auto">Click on the map markers to explore the special places in our relationship</p>
|
| 108 |
+
<div class="w-24 h-1 bg-blue-500 mx-auto mt-4"></div>
|
| 109 |
+
</div>
|
| 110 |
+
|
| 111 |
+
<div class="max-w-6xl mx-auto">
|
| 112 |
+
<div id="wedding-map" class="map-container"></div>
|
| 113 |
+
</div>
|
| 114 |
+
</div>
|
| 115 |
+
</section>
|
| 116 |
+
|
| 117 |
+
<!-- Party Photos Section -->
|
| 118 |
+
<section class="py-20 bg-white">
|
| 119 |
+
<div class="container mx-auto px-4">
|
| 120 |
+
<div class="text-center mb-16">
|
| 121 |
+
<h2 class="font-dancing text-4xl md:text-5xl text-blue-900 mb-4">Celebration Moments</h2>
|
| 122 |
+
<p class="text-xl text-blue-700">A glimpse into our joyous times together</p>
|
| 123 |
+
<div class="w-24 h-1 bg-blue-500 mx-auto mt-4"></div>
|
| 124 |
+
</div>
|
| 125 |
+
|
| 126 |
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-16">
|
| 127 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 128 |
+
<img src="http://static.photos/people/640x360/1" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 129 |
+
</div>
|
| 130 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 131 |
+
<img src="http://static.photos/people/640x360/2" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 132 |
+
</div>
|
| 133 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 134 |
+
<img src="http://static.photos/people/640x360/3" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 135 |
+
</div>
|
| 136 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 137 |
+
<img src="http://static.photos/people/640x360/4" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 138 |
+
</div>
|
| 139 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 140 |
+
<img src="http://static.photos/people/640x360/5" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 141 |
+
</div>
|
| 142 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 143 |
+
<img src="http://static.photos/people/640x360/6" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 144 |
+
</div>
|
| 145 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 146 |
+
<img src="http://static.photos/people/640x360/7" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 147 |
+
</div>
|
| 148 |
+
<div class="overflow-hidden rounded-xl shadow-lg">
|
| 149 |
+
<img src="http://static.photos/people/640x360/8" alt="Celebration" class="w-full h-64 object-cover hover:scale-105 transition duration-500">
|
| 150 |
+
</div>
|
| 151 |
+
</div>
|
| 152 |
+
|
| 153 |
+
<!-- Names Carousel -->
|
| 154 |
+
<div class="bg-blue-50 rounded-2xl p-8 shadow-lg">
|
| 155 |
+
<h3 class="font-playfair text-2xl text-center text-blue-900 mb-8">With Love From Our Family & Friends</h3>
|
| 156 |
+
<div class="overflow-hidden">
|
| 157 |
+
<div class="flex animate-marquee whitespace-nowrap">
|
| 158 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Sarah Johnson</span>
|
| 159 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Michael Chen</span>
|
| 160 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Emma Rodriguez</span>
|
| 161 |
+
<span class="mx-6 text-xl font-medium text-blue-700">James Wilson</span>
|
| 162 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Olivia Parker</span>
|
| 163 |
+
<span class="mx-6 text-xl font-medium text-blue-700">William Thompson</span>
|
| 164 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Sophia Martinez</span>
|
| 165 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Benjamin Lee</span>
|
| 166 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Isabella Davis</span>
|
| 167 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Alexander Moore</span>
|
| 168 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Mia Taylor</span>
|
| 169 |
+
<span class="mx-6 text-xl font-medium text-blue-700">Ethan Anderson</span>
|
| 170 |
+
</div>
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
</div>
|
| 174 |
+
</section>
|
| 175 |
+
|
| 176 |
+
<!-- Footer -->
|
| 177 |
+
<footer class="bg-blue-900 text-white py-12">
|
| 178 |
+
<div class="container mx-auto px-4 text-center">
|
| 179 |
+
<div class="flex justify-center mb-6">
|
| 180 |
+
<div class="bg-blue-700 rounded-full p-3">
|
| 181 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" viewBox="0 0 24 24" fill="currentColor">
|
| 182 |
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/>
|
| 183 |
+
</svg>
|
| 184 |
+
</div>
|
| 185 |
+
</div>
|
| 186 |
+
<h3 class="font-dancing text-3xl mb-4">Dennis & Cait</h3>
|
| 187 |
+
<p class="text-blue-200 mb-6">September 5, 2026 • The Aviary • Pittsburgh, PA</p>
|
| 188 |
+
<p class="text-blue-300">Made with love ❤️</p>
|
| 189 |
+
</div>
|
| 190 |
+
</footer>
|
| 191 |
+
|
| 192 |
+
<script>
|
| 193 |
+
// Initialize Feather Icons
|
| 194 |
+
feather.replace();
|
| 195 |
+
|
| 196 |
+
// Create interactive map
|
| 197 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 198 |
+
// Initialize map centered on Pittsburgh
|
| 199 |
+
var map = L.map('wedding-map').setView([40.4406, -80.0], 3);
|
| 200 |
+
|
| 201 |
+
// Add tile layer
|
| 202 |
+
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
| 203 |
+
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
| 204 |
+
}).addTo(map);
|
| 205 |
+
|
| 206 |
+
// Location data with stories
|
| 207 |
+
var locations = [
|
| 208 |
+
{
|
| 209 |
+
name: "Morgantown, WV",
|
| 210 |
+
coords: [39.6295, -79.9559],
|
| 211 |
+
story: "Where it all began! We met as classmates at West Virginia University and spent countless hours studying together in the engineering library.",
|
| 212 |
+
image: "http://static.photos/university/320x240/1"
|
| 213 |
+
},
|
| 214 |
+
{
|
| 215 |
+
name: "Pittsburgh, PA",
|
| 216 |
+
coords: [40.4406, -79.9959],
|
| 217 |
+
story: "Our home base! We moved here after graduation and fell in love with the bridges, parks, and vibrant neighborhoods of the Steel City.",
|
| 218 |
+
image: "http://static.photos/cityscape/320x240/1"
|
| 219 |
+
},
|
| 220 |
+
{
|
| 221 |
+
name: "San Diego, CA",
|
| 222 |
+
coords: [32.7157, -117.1611],
|
| 223 |
+
story: "Our first big trip together! Spent days at Balboa Park and evenings watching sunsets over the Pacific.",
|
| 224 |
+
image: "http://static.photos/beach/320x240/1"
|
| 225 |
+
},
|
| 226 |
+
{
|
| 227 |
+
name: "Boston, MA",
|
| 228 |
+
coords: [42.3601, -71.0589],
|
| 229 |
+
story: "Autumn leaves and fresh seafood! Walked the Freedom Trail and shared our first Boston cream pie.",
|
| 230 |
+
image: "http://static.photos/cityscape/320x240/2"
|
| 231 |
+
},
|
| 232 |
+
{
|
| 233 |
+
name: "Bar Harbor, ME",
|
| 234 |
+
coords: [44.3881, -68.2033],
|
| 235 |
+
story: "Coastal paradise! Watched sunrise atop Cadillac Mountain and enjoyed lobster rolls by the pier.",
|
| 236 |
+
image: "http://static.photos/nature/320x240/1"
|
| 237 |
+
},
|
| 238 |
+
{
|
| 239 |
+
name: "Ocean City, MD",
|
| 240 |
+
coords: [38.3365, -75.0849],
|
| 241 |
+
story: "Beach week tradition! Built sandcastles, rode the ferris wheel, and indulged in Thrasher's fries.",
|
| 242 |
+
image: "http://static.photos/beach/320x240/2"
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
name: "Salem, MA",
|
| 246 |
+
coords: [42.5200, -70.8967],
|
| 247 |
+
story: "Halloween adventure! Explored historic sites and tried to solve the mystery of the House of the Seven Gables.",
|
| 248 |
+
image: "http://static.photos/historical/320x240/1"
|
| 249 |
+
},
|
| 250 |
+
{
|
| 251 |
+
name: "Nantucket, MA",
|
| 252 |
+
coords: [41.2835, -70.0994],
|
| 253 |
+
story: "Quaint island escape! Rented bikes to explore cobblestone streets and watched seals from the harbor.",
|
| 254 |
+
image: "http://static.photos/island/320x240/1"
|
| 255 |
+
},
|
| 256 |
+
{
|
| 257 |
+
name: "Chicago, IL",
|
| 258 |
+
coords: [41.8781, -87.6298],
|
| 259 |
+
story: "Windy City romance! Visited Millennium Park, ate deep dish pizza, and took a boat tour on Lake Michigan.",
|
| 260 |
+
image: "http://static.photos/cityscape/320x240/3"
|
| 261 |
+
},
|
| 262 |
+
{
|
| 263 |
+
name: "Denver, CO",
|
| 264 |
+
coords: [39.7392, -104.9903],
|
| 265 |
+
story: "Mountain high! Explored Red Rocks Amphitheatre and hiked trails with breathtaking views of the Rockies.",
|
| 266 |
+
image: "http://static.photos/mountain/320x240/1"
|
| 267 |
+
},
|
| 268 |
+
{
|
| 269 |
+
name: "Amsterdam, Netherlands",
|
| 270 |
+
coords: [52.3676, 4.9041],
|
| 271 |
+
story: "Canal-side strolls and museum marvels! Rented a tandem bike and got lost in the charm of the Jordaan district.",
|
| 272 |
+
image: "http://static.photos/europe/320x240/1"
|
| 273 |
+
},
|
| 274 |
+
{
|
| 275 |
+
name: "Berlin, Germany",
|
| 276 |
+
coords: [52.5200, 13.4050],
|
| 277 |
+
story: "History and modernity collide! Visited the Berlin Wall remnants and enjoyed currywurst under the Brandenburg Gate.",
|
| 278 |
+
image: "http://static.photos/europe/320x240/2"
|
| 279 |
+
},
|
| 280 |
+
{
|
| 281 |
+
name: "Oslo, Norway",
|
| 282 |
+
coords: [59.9139, 10.7522],
|
| 283 |
+
story: "Scandinavian serenity! Took fjord tours and warmed up in cozy cafes with views of the Oslofjord.",
|
| 284 |
+
image: "http://static.photos/europe/320x240/3"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
name: "Flekkerøy, Norway",
|
| 288 |
+
coords: [58.1467, 8.0114],
|
| 289 |
+
story: "Hidden coastal gem! Stayed in a seaside cabin and enjoyed the peaceful Norwegian coastline.",
|
| 290 |
+
image: "http://static.photos/coastal/320x240/1"
|
| 291 |
+
},
|
| 292 |
+
{
|
| 293 |
+
name: "Kristiansand, Norway",
|
| 294 |
+
coords: [58.1599, 8.0182],
|
| 295 |
+
story: "Summer festival vibes! Experienced local culture and enjoyed fresh seafood by the harbor.",
|
| 296 |
+
image: "http://static.photos/europe/320x240/4"
|
| 297 |
+
},
|
| 298 |
+
{
|
| 299 |
+
name: "Grimstad, Norway",
|
| 300 |
+
coords: [58.3405, 8.5934],
|
| 301 |
+
story: "University town charm! Explored the historic old town and hiked to scenic viewpoints overlooking the sea.",
|
| 302 |
+
image: "http://static.photos/europe/320x240/5"
|
| 303 |
+
},
|
| 304 |
+
{
|
| 305 |
+
name: "London, UK",
|
| 306 |
+
coords: [51.5074, -0.1278],
|
| 307 |
+
story: "Royal romance! Saw the Changing of the Guard and enjoyed afternoon tea with scones and clotted cream.",
|
| 308 |
+
image: "http://static.photos/europe/320x240/6"
|
| 309 |
+
},
|
| 310 |
+
{
|
| 311 |
+
name: "Liverpool, UK",
|
| 312 |
+
coords: [53.4084, -2.9914],
|
| 313 |
+
story: "Music pilgrimage! Visited the Beatles landmarks and sang along at a local pub session.",
|
| 314 |
+
image: "http://static.photos/music/320x240/1"
|
| 315 |
+
},
|
| 316 |
+
{
|
| 317 |
+
name: "Positano, Italy",
|
| 318 |
+
coords: [40.6333, 14.4981],
|
| 319 |
+
story: "Amalfi Coast dream! Stayed in a cliffside hotel with panoramic views and savored authentic Italian cuisine.",
|
| 320 |
+
image: "http://static.photos/europe/320x240/7"
|
| 321 |
+
},
|
| 322 |
+
{
|
| 323 |
+
name: "Cancun, Mexico",
|
| 324 |
+
coords: [21.1619, -86.8515],
|
| 325 |
+
story: "Tropical paradise! Snorkeled in turquoise waters and relaxed on pristine white sand beaches.",
|
| 326 |
+
image: "http://static.photos/beach/320x240/3"
|
| 327 |
+
}
|
| 328 |
+
];
|
| 329 |
+
|
| 330 |
+
// Add markers to map
|
| 331 |
+
locations.forEach(function(location) {
|
| 332 |
+
var marker = L.marker(location.coords).addTo(map);
|
| 333 |
+
marker.bindPopup(`
|
| 334 |
+
<div class="location-popup">
|
| 335 |
+
<h3 class="font-bold text-lg mb-2">${location.name}</h3>
|
| 336 |
+
<img src="${location.image}" alt="${location.name}" class="w-full h-32 object-cover rounded mb-3">
|
| 337 |
+
<p class="text-sm">${location.story}</p>
|
| 338 |
+
</div>
|
| 339 |
+
`, {maxWidth: 300});
|
| 340 |
+
});
|
| 341 |
+
|
| 342 |
+
// Add animated marquee for names
|
| 343 |
+
const style = document.createElement('style');
|
| 344 |
+
style.innerHTML = `
|
| 345 |
+
@keyframes marquee {
|
| 346 |
+
0% { transform: translateX(100%); }
|
| 347 |
+
100% { transform: translateX(-100%); }
|
| 348 |
+
}
|
| 349 |
+
.animate-marquee {
|
| 350 |
+
display: inline-block;
|
| 351 |
+
animation: marquee 30s linear infinite;
|
| 352 |
+
}
|
| 353 |
+
`;
|
| 354 |
+
document.head.appendChild(style);
|
| 355 |
+
});
|
| 356 |
+
</script>
|
| 357 |
+
</body>
|
| 358 |
</html>
|