initialize Antalya locations landing page with responsive grid and animation styles

This commit is contained in:
Alaguraj0361 2026-04-03 19:24:00 +05:30
parent f0f5d85532
commit 4230a41692
2 changed files with 266 additions and 304 deletions

View File

@ -1,14 +1,17 @@
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Inter:wght@300;400;500;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&family=Inter:wght@300;400;500;600&family=Outfit:wght@300;400;600;700&display=swap');
:root {
--color-heading: #d3cab3;
--color-button: #d28839;
--color-paragraph: #c49c5c;
--color-gold: #d28839;
--color-gold-light: #f5e6d3;
--color-dark: #0a0a0a;
--color-dark-accent: #110908;
--color-text-light: #f5f5f5;
--font-heading: var(--font-playfair), serif;
--font-body: var(--font-inter), sans-serif;
--font-heading: 'Playfair Display', serif;
--font-accent: 'Outfit', sans-serif;
--font-body: 'Inter', sans-serif;
}
* {
@ -34,15 +37,16 @@ h3,
h4 {
font-family: var(--font-heading);
color: var(--color-heading);
letter-spacing: -0.02em;
}
.grand-text {
font-family: var(--font-heading);
background: linear-gradient(45deg,
background: linear-gradient(135deg,
#d3cab3 0%,
#d28839 25%,
#c49c5c 50%,
#d28839 75%,
#fff 25%,
#d28839 50%,
#fff 75%,
#d3cab3 100%);
background-size: 200% auto;
-webkit-background-clip: text;
@ -50,20 +54,19 @@ h4 {
-webkit-text-fill-color: transparent;
display: inline-block;
position: relative;
animation: colorShift 8s linear infinite;
animation: colorShift 12s linear infinite;
filter: drop-shadow(0 0 10px rgba(210, 136, 57, 0.2));
}
@keyframes colorShift {
0% {
background-position: 0% center;
}
100% {
background-position: 200% center;
}
}
.shine-effect {
position: relative;
overflow: hidden;
@ -73,41 +76,32 @@ h4 {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 50%;
left: -200%;
width: 100%;
height: 100%;
background: linear-gradient(to right,
rgba(255, 255, 255, 0) 0%,
rgba(210, 136, 57, 0.4) 50%,
rgba(255, 255, 255, 0) 100%);
transparent 0%,
rgba(255, 255, 255, 0.3) 50%,
transparent 100%);
transform: skewX(-25deg);
animation: shine 6s infinite;
animation: shine 4s ease-in-out infinite;
}
@keyframes shine {
0% {
left: -100%;
}
20% {
left: 100%;
}
100% {
left: 100%;
}
0% { left: -200%; }
35% { left: 200%; }
100% { left: 200%; }
}
.glass-card {
background: rgba(15, 15, 15, 0.7);
backdrop-filter: blur(15px);
background: rgba(15, 15, 15, 0.45);
backdrop-filter: blur(25px) saturate(180%);
border: 1px solid rgba(210, 136, 57, 0.15);
border-radius: 24px;
transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
border-radius: 32px;
transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
overflow: hidden;
position: relative;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
}
.glass-card::before {
@ -117,17 +111,29 @@ h4 {
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(210, 136, 57, 0.5), transparent);
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
z-index: 5;
opacity: 0.5;
opacity: 0.8;
}
.glass-card:hover {
transform: translateY(-12px) scale(1.02);
border-color: rgba(210, 136, 57, 0.8);
transform: translateY(-20px) scale(1.02);
border-color: rgba(210, 136, 57, 0.6);
box-shadow:
0 25px 50px rgba(0, 0, 0, 0.7),
0 0 30px rgba(210, 136, 57, 0.25);
0 40px 80px rgba(0, 0, 0, 0.6),
0 0 40px rgba(210, 136, 57, 0.3);
background: rgba(20, 10, 10, 0.6);
}
.card-frame {
position: absolute;
inset: 16px;
border: 1px solid rgba(210, 136, 57, 0.2);
pointer-events: none;
z-index: 10;
opacity: 0;
transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
border-radius: 20px;
}
.glass-card:hover .card-frame {
@ -135,90 +141,43 @@ h4 {
inset: 12px;
}
.card-frame {
position: absolute;
inset: 24px;
border: 1px solid rgba(210, 136, 57, 0.3);
pointer-events: none;
z-index: 10;
opacity: 0;
transition: all 0.6s ease;
border-radius: 12px;
.transition-image {
transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-link {
color: var(--color-heading);
text-decoration: none;
transition: color 0.3s ease;
position: relative;
.glass-card:hover .transition-image {
transform: scale(1.1);
}
.nav-link:hover {
color: var(--color-gold);
}
.nav-link::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 1px;
background-color: var(--color-gold);
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
.overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to top, rgba(10, 10, 10, 0.9) 0%, rgba(10, 10, 10, 0.4) 50%, transparent 100%);
background: linear-gradient(180deg,
rgba(0,0,0,0.1) 0%,
rgba(0,0,0,0.4) 40%,
rgba(0,0,0,0.9) 100%);
z-index: 1;
transition: opacity 0.5s ease;
}
.btn-primary {
background-color: var(--color-button);
color: white;
padding: 12px 28px;
border-radius: 50px;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 1px;
transition: all 0.3s ease;
border: none;
cursor: pointer;
display: inline-block;
}
.btn-primary:hover {
background-color: #e39a4a;
transform: scale(1.05);
box-shadow: 0 10px 20px rgba(210, 136, 57, 0.3);
}
/* Layout Utilities */
.main-container {
min-height: 100vh;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 24px;
justify-content: flex-start;
padding: 40px 24px;
overflow: hidden;
background: radial-gradient(circle at center, transparent 0%, rgba(0, 0, 0, 0.4) 100%);
background-color: var(--color-dark);
}
@media (min-width: 768px) {
.main-container {
padding: 48px;
padding: 80px 48px;
}
}
@ -226,149 +185,180 @@ h4 {
position: relative;
z-index: 10;
width: 100%;
max-width: 1152px;
/* 6xl */
max-width: 1280px;
margin: 0 auto;
}
.hero-section {
text-align: center;
margin-bottom: 64px;
margin-bottom: 80px;
}
.locations-grid {
display: grid;
grid-template-columns: 1fr;
gap: 40px;
margin-top: 48px;
gap: 48px;
margin-top: 60px;
}
@media (min-width: 768px) {
@media (min-width: 860px) {
.locations-grid {
grid-template-columns: 1fr 1fr;
}
}
@media (min-width: 1024px) {
.locations-grid {
gap: 64px;
}
}
/* Card Specifics */
.card-image-container {
position: relative;
height: 384px;
/* 24rem / 96 */
height: 440px;
overflow: hidden;
}
@media (max-width: 767px) {
.card-image-container {
height: 320px;
}
}
.card-content {
padding: 40px;
border-top: 1px solid rgba(176, 124, 75, 0.1);
background-color: #410d0a;
padding: 48px;
border-top: 1px solid rgba(210, 136, 57, 0.1);
background: linear-gradient(180deg, rgba(65, 13, 10, 0.8) 0%, rgba(15, 0, 0, 0.95) 100%);
position: relative;
}
/* Text & Typography */
.text-center {
text-align: center;
.card-content::after {
content: '';
position: absolute;
bottom: 0;
right: 0;
width: 150px;
height: 150px;
background: radial-gradient(circle at bottom right, rgba(210, 136, 57, 0.1), transparent 70%);
pointer-events: none;
}
.text-gold {
.signature-badge {
display: flex;
align-items: center;
gap: 8px;
background: rgba(210, 136, 57, 0.15);
border: 1px solid rgba(210, 136, 57, 0.3);
padding: 6px 12px;
border-radius: 99px;
margin-bottom: 20px;
width: fit-content;
}
.signature-text {
font-family: var(--font-accent);
font-size: 11px;
letter-spacing: 0.25em;
text-transform: uppercase;
font-weight: 600;
color: var(--color-gold);
}
.flex-center {
display: flex;
justify-content: center;
.explore-btn {
display: inline-flex;
align-items: center;
gap: 16px;
color: #fff;
font-family: var(--font-accent);
font-size: 14px;
letter-spacing: 0.15em;
text-transform: uppercase;
font-weight: 500;
transition: all 0.3s ease;
padding: 10px 0;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.flex-col {
display: flex;
flex-direction: column;
}
.gap-2 {
gap: 8px;
}
.mb-2 {
margin-bottom: 8px;
}
.mb-3 {
margin-bottom: 12px;
}
.mb-4 {
margin-bottom: 16px;
}
.mb-6 {
margin-bottom: 24px;
}
.mb-8 {
margin-bottom: 32px;
}
.mt-12 {
margin-top: 48px;
}
.mt-24 {
margin-top: 96px;
.glass-card:hover .explore-btn {
color: var(--color-gold);
border-bottom-color: var(--color-gold);
gap: 24px;
}
.footer-copyright {
margin-top: 80px;
margin-top: 120px;
text-align: center;
padding: 40px 0;
border-top: 1px solid rgba(210, 136, 57, 0.15);
color: rgba(196, 156, 92, 0.6);
font-size: 0.9rem;
font-weight: 300;
letter-spacing: 0.05em;
padding: 60px 0;
border-top: 1px solid rgba(210, 136, 57, 0.1);
color: rgba(255, 255, 255, 0.4);
font-size: 0.85rem;
letter-spacing: 0.1em;
font-family: var(--font-accent);
}
.footer-copyright a {
color: var(--color-gold);
text-decoration: none;
font-weight: 500;
font-weight: 600;
transition: all 0.3s ease;
position: relative;
}
.footer-copyright a:hover {
text-shadow: 0 0 10px rgba(210, 136, 57, 0.4);
opacity: 0.8;
.footer-copyright a::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 100%;
height: 1px;
background-color: var(--color-gold);
transform: scaleX(0);
transform-origin: right;
transition: transform 0.4s ease;
}
.footer-copyright a:hover::after {
transform: scaleX(1);
transform-origin: left;
}
.noise-bg {
position: fixed;
inset: 0;
opacity: 0.04;
background-image: url('https://grainy-gradients.vercel.app/noise.svg');
pointer-events: none;
z-index: 1;
}
.hero-gradient {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:
radial-gradient(circle at 20% 30%, rgba(210, 136, 57, 0.08) 0%, transparent 40%),
radial-gradient(circle at 80% 70%, rgba(65, 13, 10, 0.15) 0%, transparent 40%);
pointer-events: none;
z-index: 0;
}
.decorative-blob {
position: fixed;
border-radius: 50%;
filter: blur(100px);
filter: blur(120px);
pointer-events: none;
background: rgba(210, 136, 57, 0.1);
z-index: 0;
opacity: 0.4;
animation: pulse 12s infinite alternate ease-in-out;
}
@keyframes pulse {
0% { transform: scale(1) translate(0, 0); }
100% { transform: scale(1.2) translate(30px, 20px); }
}
.blob-1 {
top: -16px;
left: -16px;
width: 256px;
height: 256px;
top: -10%;
left: -10%;
width: 40vw;
height: 40vw;
background: radial-gradient(circle, rgba(210, 136, 57, 0.2), transparent);
}
.blob-2 {
bottom: -16px;
right: -16px;
width: 384px;
height: 384px;
bottom: -15%;
right: -10%;
width: 50vw;
height: 50vw;
background: radial-gradient(circle, rgba(65, 13, 10, 0.3), transparent);
}

View File

@ -2,7 +2,7 @@
import { motion, Variants } from "framer-motion";
import Image from "next/image";
import { MapPin, Globe, ExternalLink, Utensils } from "lucide-react";
import { MapPin, Globe, ExternalLink, Utensils, ArrowRight } from "lucide-react";
const locations = [
{
@ -23,13 +23,11 @@ const locations = [
},
];
const titleLetters = "Antalya".split("");
const container: Variants = {
hidden: { opacity: 0 },
visible: (i = 1) => ({
opacity: 1,
transition: { staggerChildren: 0.12, delayChildren: 0.04 * i },
transition: { staggerChildren: 0.15, delayChildren: 0.2 * i },
}),
};
@ -39,18 +37,13 @@ const child: Variants = {
y: 0,
transition: {
type: "spring",
damping: 12,
stiffness: 100,
damping: 15,
stiffness: 80,
},
},
hidden: {
opacity: 0,
y: 20,
transition: {
type: "spring",
damping: 12,
stiffness: 100,
},
y: 40,
},
};
@ -65,7 +58,10 @@ export default function Home() {
return (
<main className="main-container">
{/* Background Hero */}
{/* Dynamic Environment */}
<div className="hero-gradient" />
<div className="noise-bg" />
<div style={{ position: 'fixed', inset: 0, zIndex: 0, pointerEvents: 'none' }}>
<Image
src="/images/home-banner.webp"
@ -73,67 +69,56 @@ export default function Home() {
fill
style={{
objectFit: 'cover',
opacity: 0.55,
animation: 'slowZoom 30s infinite alternate ease-in-out'
opacity: 0.25,
filter: 'grayscale(0.3) contrast(1.1)'
}}
priority
/>
<style jsx global>{`
@keyframes slowZoom {
from { transform: scale(1); }
to { transform: scale(1.15); }
}
`}</style>
<div style={{
position: 'absolute',
inset: 0,
background: 'radial-gradient(circle, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.9) 100%)'
}} />
<div style={{
position: 'absolute',
inset: 0,
opacity: 0.1,
backgroundImage: 'url("https://grainy-gradients.vercel.app/noise.svg")',
pointerEvents: 'none'
background: 'radial-gradient(circle at center, transparent 0%, rgba(10,10,10,0.95) 100%)'
}} />
</div>
<div className="decorative-blob blob-1" />
<div className="decorative-blob blob-2" />
{/* Content */}
<div className="content-wrapper">
<motion.div
initial={{ opacity: 0, y: 30 }}
initial={{ opacity: 0, y: 50 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8 }}
transition={{ duration: 1.2, ease: [0.16, 1, 0.3, 1] }}
className="hero-section"
>
<motion.div
initial={{ scale: 0.8 }}
animate={{ scale: 1 }}
transition={{ duration: 0.5, delay: 0.3 }}
className="flex-center gap-2 mb-6"
initial={{ opacity: 0, scale: 0.9 }}
animate={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.8, delay: 0.2 }}
className="flex-center gap-4 mb-8"
>
<div style={{ height: '1px', width: '48px', backgroundColor: '#d28839' }} />
<Utensils className="text-gold" size={16} style={{ color: '#d28839' }} />
<span style={{ color: '#d28839', letterSpacing: '0.4em', fontWeight: 600, fontSize: '0.8rem', textTransform: 'uppercase' }}>
EXPERIENCE UNFORGETTABLE TURKISH FUSION
<div style={{ height: '1px', width: '60px', background: 'linear-gradient(to right, transparent, var(--color-gold))' }} />
<Utensils className="text-gold" size={18} />
<span style={{ color: 'var(--color-gold)', letterSpacing: '0.5em', fontWeight: 600, fontSize: '0.75rem', textTransform: 'uppercase', fontFamily: 'var(--font-accent)' }}>
Legacy of Flavor
</span>
<div style={{ height: '1px', width: '48px', backgroundColor: '#d28839' }} />
<div style={{ height: '1px', width: '60px', background: 'linear-gradient(to left, transparent, var(--color-gold))' }} />
</motion.div>
<motion.div
initial={{ opacity: 0, scale: 0.8 }}
animate={{ opacity: 1, scale: 1 }}
transition={{ duration: 1 }}
style={{ marginBottom: '24px', display: 'flex', justifyContent: 'center' }}
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 1, delay: 0.4 }}
style={{ marginBottom: '32px', display: 'flex', justifyContent: 'center' }}
>
<Image
src="/images/logo.png"
alt="Antalya Logo"
width={160}
height={80}
style={{ objectFit: 'contain' }}
width={180}
height={90}
style={{ objectFit: 'contain', filter: 'drop-shadow(0 0 20px rgba(210, 136, 57, 0.3))' }}
priority
loading="eager"
/>
</motion.div>
@ -142,45 +127,50 @@ export default function Home() {
initial="hidden"
animate="visible"
style={{
fontSize: 'clamp(3.5rem, 12vw, 8rem)',
fontWeight: 'bold',
fontSize: 'clamp(3.5rem, 15vw, 10rem)',
lineHeight: 1.2,
marginBottom: '32px',
letterSpacing: '0.05em',
marginTop: '-10px',
display: 'flex',
justifyContent: 'center',
overflow: 'hidden'
gap: '0.02em',
paddingBottom: '0.1em'
}}
className="grand-text shine-effect"
>
{titleLetters.map((letter, index) => (
<motion.span
variants={child}
key={index}
style={{ display: 'inline-block' }}
>
{letter}
</motion.span>
{"Antalya".split("").map((letter, index) => (
<motion.span variants={child} key={index}>{letter}</motion.span>
))}
</motion.h1>
<motion.p
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ delay: 1, duration: 1 }}
style={{ color: '#c49c5c', fontSize: 'clamp(1.1rem, 3vw, 1.5rem)', maxWidth: '850px', margin: '0 auto', fontWeight: 300, fontStyle: 'italic', lineHeight: 1.6 }}
transition={{ delay: 1, duration: 1.5 }}
style={{
color: 'var(--color-paragraph)',
fontSize: 'clamp(1rem, 2.5vw, 1.35rem)',
maxWidth: '700px',
margin: '0 auto',
fontWeight: 300,
lineHeight: 1.8,
letterSpacing: '0.02em'
}}
>
"Savour a journey through Turkish culture crafted on the grill. Traditional charcoal-grilled kebabs, handcrafted dishes, and warm hospitality since 2010."
Experience the art of authentic Turkish charcoal grilling. A culinary heritage crafted with fire, passion, and Mediterranean excellence since 2010.
</motion.p>
</motion.div>
<div className="locations-grid">
{locations.map((loc, index) => (
<motion.div
className="locations-grid"
variants={container}
initial="hidden"
animate="visible"
custom={1.5}
>
{locations.map((loc) => (
<motion.div
key={loc.id}
initial={{ opacity: 0, y: 40 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: index * 0.2 + 0.8 }}
variants={child}
className="glass-card group"
style={{ cursor: 'pointer' }}
onClick={() => handleLocationSelect(loc.url)}
@ -193,84 +183,66 @@ export default function Home() {
fill
style={{ objectFit: 'cover' }}
className="transition-image"
sizes="(max-width: 768px) 100vw, 50vw"
sizes="(max-width: 860px) 100vw, 50vw"
/>
<div className="overlay" />
<div style={{ position: 'absolute', top: '24px', right: '24px', zIndex: 20 }}>
<div style={{ position: 'absolute', top: '32px', right: '32px', zIndex: 20 }}>
<motion.div
whileHover={{ scale: 1.1, rotate: 5 }}
whileHover={{ scale: 1.1, rotate: 90 }}
style={{
backgroundColor: 'rgba(0,0,0,0.4)',
backdropFilter: 'blur(10px)',
padding: '12px',
borderRadius: '9999px',
border: '1px solid rgba(210, 136, 57, 0.4)'
backgroundColor: 'rgba(0,0,0,0.6)',
backdropFilter: 'blur(12px)',
padding: '14px',
borderRadius: '50%',
border: '1px solid rgba(210, 136, 57, 0.4)',
boxShadow: '0 0 20px rgba(0,0,0,0.4)'
}}
>
<ExternalLink size={20} style={{ color: '#d3cab3' }} />
<ExternalLink size={20} style={{ color: 'var(--color-gold)' }} />
</motion.div>
</div>
<div style={{
position: 'absolute',
bottom: '40px',
left: '40px',
right: '40px',
bottom: '48px',
left: '48px',
right: '48px',
zIndex: 20,
display: 'flex',
flexDirection: 'column',
alignItems: 'flex-start'
}}>
<div style={{ display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '12px' }}>
<Globe size={14} style={{ color: '#d28839' }} />
<span style={{ fontSize: '10px', letterSpacing: '0.3em', textTransform: 'uppercase', fontWeight: 'bold', color: '#d28839' }}>
Signature Spot
</span>
</div>
<h2 style={{ fontSize: 'clamp(2rem, 5vw, 3rem)', fontWeight: 'bold', marginBottom: '16px', color: '#d3cab3' }}>
<h2 style={{ fontSize: 'clamp(2.5rem, 5vw, 3.5rem)', fontWeight: 700, marginBottom: '20px', color: '#fff', textShadow: '0 2px 10px rgba(0,0,0,0.5)' }}>
{loc.name}
</h2>
<div style={{ display: 'flex', alignItems: 'flex-start', gap: '8px', color: '#d1d5db', fontSize: '0.875rem' }}>
<MapPin size={16} style={{ marginTop: '4px', flexShrink: 0, color: '#d28839' }} />
<span style={{ fontWeight: 300 }}>{loc.address}</span>
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', color: 'rgba(255,255,255,0.7)', fontSize: '0.9rem', fontFamily: 'var(--font-accent)' }}>
<MapPin size={16} style={{ color: 'var(--color-gold)' }} />
<span style={{ fontWeight: 400, letterSpacing: '0.05em' }}>{loc.address}</span>
</div>
</div>
</div>
<div className="card-content">
<p style={{ fontSize: '1rem', color: 'rgba(196, 156, 92, 0.8)', marginBottom: '32px', fontWeight: 300, lineHeight: 1.6 }}>
<p style={{ fontSize: '1.05rem', color: 'rgba(245, 230, 211, 0.7)', marginBottom: '40px', fontWeight: 300, lineHeight: 1.8 }}>
{loc.description}
</p>
<div style={{ display: 'inline-flex', alignItems: 'center', gap: '12px', color: 'white', fontWeight: 500 }}>
<span style={{ letterSpacing: '0.2em', textTransform: 'uppercase', fontSize: '0.875rem', borderBottom: '1px solid transparent' }}>
Explore House
</span>
<div style={{
width: '32px',
height: '32px',
borderRadius: '50%',
border: '1px solid rgba(255,255,255,0.2)',
display: 'flex',
alignItems: 'center',
justifyContent: 'center'
}}>
<Globe size={14} color="white" />
</div>
<div className="explore-btn">
<span>Visit Restaurant</span>
<ArrowRight size={18} />
</div>
</div>
</motion.div>
))}
</div>
</motion.div>
<footer className="footer-copyright">
<p>© Copyright 2025 Antalya Restaurant | Powered by <a href="https://metatroncubesolutions.com/" target="_blank" rel="noopener noreferrer">MetatronCube</a> All Rights Reserved</p>
</footer>
<motion.footer
initial={{ opacity: 0 }}
whileInView={{ opacity: 1 }}
viewport={{ once: true }}
className="footer-copyright"
>
<p>© 2025 Antalya Restaurant Group | Handcrafted by <a href="https://metatroncubesolutions.com/" target="_blank" rel="noopener noreferrer">MetatronCube</a></p>
</motion.footer>
</div>
{/* Decorative Elements */}
<div className="decorative-blob blob-1" />
<div className="decorative-blob blob-2" />
</main>
);
}