/* Gallery Section with Grid Layout */ .gallery { background-color: white; padding-top: 80px; padding-bottom: 80px; } .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; margin: 0 auto; max-width: 1200px; } .gallery-item { position: relative; overflow: hidden; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); aspect-ratio: 1; cursor: pointer; transition: transform 0.3s, box-shadow 0.3s; } .gallery-item:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); } .gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; } .gallery-item:hover img { transform: scale(1.05); } /* Gallery Modal */ .gallery-modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.9); animation: fadeIn 0.3s; } .gallery-modal-content { margin: auto; display: block; max-width: 90%; max-height: 90%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .gallery-modal-close { position: absolute; top: 20px; right: 30px; color: #f1f1f1; font-size: 40px; font-weight: bold; transition: 0.3s; cursor: pointer; } .gallery-modal-close:hover { color: var(--accent); } /* Timeline with Smaller Thumbnail Images */ .timeline-content { display: flex; flex-direction: row; align-items: flex-start; padding: 20px 30px; background-color: white; position: relative; border-radius: 6px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); gap: 15px; } .timeline-text { flex: 3; } .timeline-image { flex: 1; border-radius: 6px; overflow: hidden; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); max-width: 100px; max-height: 100px; cursor: pointer; } .timeline-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s; } .timeline-item:hover .timeline-image img { transform: scale(1.05); } /* Gallery Carousel */ .gallery { background-color: white; padding-top: 80px; padding-bottom: 80px; } .carousel-container { position: relative; max-width: 800px; margin: 0 auto; overflow: hidden; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .carousel-slides { display: flex; transition: transform 0.5s ease; } .carousel-slide { min-width: 100%; box-sizing: border-box; display: flex; justify-content: center; align-items: center; } .carousel-slide img { width: 100%; height: auto; max-height: 500px; object-fit: contain; } .carousel-controls { position: absolute; top: 50%; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; transform: translateY(-50%); } .carousel-control { background-color: rgba(0, 0, 0, 0.3); color: white; border: none; width: 50px; height: 50px; border-radius: 50%; font-size: 24px; cursor: pointer; transition: background-color 0.3s; display: flex; justify-content: center; align-items: center; margin: 0 10px; } .carousel-control:hover { background-color: rgba(0, 0, 0, 0.5); } .carousel-indicators { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; } .carousel-indicator { width: 12px; height: 12px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.5); border: none; cursor: pointer; transition: background-color 0.3s; } .carousel-indicator.active { background-color: white; } /* Modal for Timeline Images */ .timeline-modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.8); animation: fadeIn 0.3s; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .modal-content { position: relative; background-color: var(--light); margin: 10% auto; padding: 30px; border-radius: 10px; width: 80%; max-width: 800px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); animation: slideIn 0.3s; } @keyframes slideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .close-modal { position: absolute; top: 15px; right: 20px; color: var(--dark); font-size: 28px; font-weight: bold; transition: 0.3s; cursor: pointer; } .close-modal:hover { color: var(--accent2); } .modal-image { width: 100%; max-height: 400px; object-fit: contain; margin-bottom: 20px; border-radius: 5px; } .modal-title { font-family: 'Playfair Display', serif; color: var(--primary); margin-bottom: 10px; } /* Responsive layout for timeline on mobile */ @media (max-width: 768px) { .timeline-content { flex-direction: row; align-items: center; } .timeline-image { max-width: 80px; max-height: 80px; } } /* Footer */ footer { background-color: var(--dark); color: var(--light); padding: 50px 0 30px; position: relative; } .footer-content { text-align: center; max-width: 700px; margin: 0 auto; position: relative; z-index: 1; } .footer-logo { font-family: 'Great Vibes', cursive; color: var(--accent); font-size: 2.5rem; margin-bottom: 20px; } .footer-date { font-family: 'Playfair Display', serif; font-size: 1.2rem; margin-bottom: 20px; } .footer-nav { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; flex-wrap: wrap; } .footer-link { color: var(--light); text-decoration: none; transition: color 0.3s; } .footer-link:hover { color: var(--accent); } .copyright { margin-top: 30px; font-size: 0.9rem; color: rgba(247, 244, 234, 0.7); } /* Responsive */ @media (max-width: 768px) { .header-title { font-size: 3.5rem; } .header-date { font-size: 1.5rem; } .countdown { gap: 10px; } .countdown-item { padding: 10px; min-width: 70px; } .countdown-value { font-size: 1.5rem; } .countdown-label { font-size: 0.7rem; } .nav-menu { display: none; flex-direction: column; gap: 10px; position: absolute; top: 100%; left: 0; right: 0; background-color: var(--dark); padding: 20px; box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } .nav-menu.active { display: flex; } .mobile-menu-button { display: block; } .timeline::after { left: 31px; } .timeline-item { width: 100%; padding-left: 70px; padding-right: 25px; } .timeline-item::before { left: 60px; border: medium solid white; border-width: 10px 10px 10px 0; border-color: transparent white transparent transparent; } .left::after, .right::after { left: 18px; } .right { left: 0%; } .details-grid { grid-template-columns: 1fr; } .modal-content { width: 95%; margin: 20% auto; } .venue-info-overlay { max-width: 100%; padding: 15px; } .venue-image-container { display: none; } .venue-overlay { background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 70%, rgba(0,0,0,0) 100%); } .carousel-slide { width: 80%; height: 80%; left: 10%; top: 10%; } }

Morgan & Robert

September 6, 2025

Join us to celebrate our special day

00
Days
00
Hours
00
Minutes
00
Seconds

Our Story

We met online and began our journey together with a memorable first date at Tropical Smoothie, where we talked for over an hour past closing time. Since then, we've been enjoying adventures from thrilling roller coasters to peaceful hikes, all while growing in our faith and love for each other.

January 25, 2024

We had our first date at Tropical Smoothie, where we were so engrossed in conversation that we stayed talking an hour past closing time!

Our First Date

Easter 2024

We made our relationship official, beginning our journey together with faith at the center.

Making It Official

Summer 2024

We enjoyed trips to Carowinds where we conquered the Fury 325, spent time at the lake, went hiking, and visited the Noah's Ark in Kentucky.

Summer Adventures

Easter 2025

Robert proposed in the azalea gardens in Raleigh, exactly one year after we made our relationship official.

The Proposal

September 6, 2025

We will begin our life together, surrounded by our loved ones in a beautiful rustic farm ceremony and celebration.

Our Wedding Day

Wedding Details

Ceremony

Date: September 6, 2025

Time: 1:00 PM

Location: Farm Venue

Address: 6622 NC 43, Fountain, NC

Our ceremony will take place in a beautiful rustic farm setting. Please arrive 30 minutes early to be seated.

Reception

Time: 2:30 PM - 7:00 PM

Location: Farm Venue (same location)

Immediately following the ceremony, join us for cocktails, dinner, and dancing at the same beautiful farm location.

Accommodations

Hotel: Hilton Greenville

Address: 207 SW Greenville Blvd, Greenville, NC 27834

Phone: (252) 355-5000

We have reserved a block of rooms at the Hilton Greenville under "Morgan & Robert Wedding" at a special rate. Please book by August 6, 2025 to secure this rate.

Book Your Room →

Dress Code

Our dress code is Formal/Semi-Formal.

Ladies: Nice dresses with appropriate coverage (no exposed cleavage or extremely short hemlines).

Gentlemen: Dress slacks with button-down shirts, ties, and dress shoes.

Our ceremony and reception will take place on a farm, so please choose appropriate footwear for grassy/outdoor surfaces.

Our Beautiful Venue

We're excited to celebrate our special day at this beautiful rustic farm venue. The ceremony will take place in the garden area, with the reception following in the beautifully restored historic barn.

Parking: Ample parking is available on-site.

Accessibility: The venue is wheelchair accessible.

Our Beautiful Wedding Venue Barn
👆 Click for Directions

Registry

Thank you for considering a gift to help us begin our married life together. We've created a registry with some items we would love to have in our new home.

RSVP

Please Enter Your Invitation Code

Your invitation code can be found on your invitation card.