import React, { useState, useEffect, useRef } from 'react';
import { MapPin, Calendar, Clock, Phone, Sparkles, Heart, Music, Music2, CalendarPlus, Navigation } from 'lucide-react';
// --- Custom Styles for Premium Look ---
const PremiumStyles = () => (
);
// --- Reusable Interactive Components ---
// 1. Scroll Reveal Component for smooth fade-ins
const Reveal = ({ children, delay = 0 }) => {
const [isVisible, setIsVisible] = useState(false);
const ref = useRef(null);
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
setIsVisible(true);
observer.unobserve(entry.target);
}
},
{ threshold: 0.1, rootMargin: '0px 0px -50px 0px' }
);
if (ref.current) {
observer.observe(ref.current);
}
return () => observer.disconnect();
}, []);
return (
{children}
);
};
// 2. Interactive 3D Tilt Image Component
const InteractiveImage = ({ src, alt, className }) => {
const [style, setStyle] = useState({});
const imageRef = useRef(null);
const handleMouseMove = (e) => {
if (!imageRef.current) return;
const { left, top, width, height } = imageRef.current.getBoundingClientRect();
const x = (e.clientX - left) / width;
const y = (e.clientY - top) / height;
// Calculate tilt angles (max 15 degrees)
const tiltX = (y - 0.5) * 30;
const tiltY = (x - 0.5) * -30;
setStyle({
transform: `perspective(1000px) rotateX(${tiltX}deg) rotateY(${tiltY}deg) scale3d(1.02, 1.02, 1.02)`,
transition: 'transform 0.1s ease-out'
});
};
const handleMouseLeave = () => {
setStyle({
transform: 'perspective(1000px) rotateX(0deg) rotateY(0deg) scale3d(1, 1, 1)',
transition: 'transform 0.5s ease-out'
});
};
return (
{
// Fallback if local image isn't available during dev
e.target.src = 'https://images.unsplash.com/photo-1583939003579-730e3918a45a?auto=format&fit=crop&w=800&q=80';
}}
/>
{/* Interactive Glare Effect Overlay */}
);
};
// 3. Falling Petals Animation
const Petals = () => {
const [petals, setPetals] = useState([]);
useEffect(() => {
// Generate petals with random properties
const newPetals = Array.from({ length: 25 }).map((_, i) => ({
id: i,
left: `${Math.random() * 100}%`,
animationDuration: `${Math.random() * 5 + 5}s`, // 5 to 10s
animationDelay: `${Math.random() * 5}s`,
width: `${Math.random() * 10 + 10}px`, // 10 to 20px
opacity: Math.random() * 0.5 + 0.3,
}));
setPetals(newPetals);
}, []);
return (
{petals.map((petal) => (
))}
);
};
// --- Main Application ---
export default function App() {
const [isMusicPlaying, setIsMusicPlaying] = useState(false);
const handleSaveDate = () => {
// Simulated Add to Calendar functionality
alert("Event 'Armahi Engagement' has been added to your calendar!");
};
return (
{/* Floating Music Button */}
setIsMusicPlaying(!isMusicPlaying)}
className="fixed bottom-6 right-6 z-50 bg-gradient-to-br from-[#5C0A19] to-[#8A162B] text-[#D4AF37] p-4 rounded-full shadow-2xl hover:scale-110 transition-all duration-300 border border-[#D4AF37]/40 group"
>
{isMusicPlaying ? : }
{/* Decorative Top Border */}
{/* Hero Section */}
{/* Background Mandala/Pattern Suggestion */}
II Shree Ganeshaya Namah II
We invite you to the engagement ceremony of
Armahi
{/* Decorative underline */}
Arpita
&
Mahendra
{/* Hero Interactive Image */}
{/* Glowing background blob matching the neon sign vibe */}
{/* Floating Ring SVG Icon with enhanced animation */}
{/* Decorative Sparkles around the image mimicking background lights */}
{/* Details Section */}
{/* The Couple Details */}
{/* Bride */}
{/* Using object-position to focus on the bride's face from the group photo */}
Arpita
D/O Late Rajlakshmi Devi & Mr. Yogendra Kumar
{/* Heart Divider */}
{/* Groom */}
{/* Using object-position to focus on the groom's face from the group photo */}
Mahendra
S/O Mrs. Ramkanwari Devi & Mr. Kunnaram
{/* Event Details Card */}
Gracious Presence
Join us to celebrate this special day
{/* Date & Time */}
Wednesday
16 Sep, 2026
Evening 7 PM
{/* Venue */}
{/* Action Button */}
Save the Date
{/* Interactive Memories Gallery Section */}
Precious Moments
Our Celebration
A glimpse of our joy and the beautiful journey ahead together.
{/* Family & Contact Section */}
Welcome Eagerly
Mr. Arun Kumar
Dr. Anoop Kumar
Aspirants
Ankita Gupta, Khushi, Anmol, Ujjawal, Vikhyaat, Lakshyaraj, Rudransh, Saanvi, and all relatives & friends.
Connect
Mr. Yogendra Kumar
Himgiri Colony, Moradabad
{/* Footer Text */}
Created with love for Arpita & Mahendra
);
}