"use client";
import { motion, AnimatePresence } from "framer-motion";
import { useState, useEffect } from "react";
import type { DemoData } from "@/data/demos";
const fadeUp = {
hidden: { opacity: 0, y: 35 },
show: { opacity: 1, y: 0, transition: { duration: 0.65, ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number] } },
};
const stagger = {
hidden: {},
show: { transition: { staggerChildren: 0.08 } },
};
const translations = {
tr: {
navIdeology: "Tasarım Felsefesi",
navServices: "Seçkin Hizmetler",
navPortfolio: "Portföyümüz",
navEnquire: "Ziyaret Başvurusu",
scheduleAccess: "Giriş Planla",
badge: "MİNİMAL MONOLİTİK VİLLA",
sloganTail: "BRÜT BETON ÇİZGİLERİYLE",
heroDesc: "Bodrum Yalıkavak kıyılarında saf yapısal lüksü yaşayın. Brüt monolitik beton formlar, sıfır kenar taşmalı sonsuzluk havuzları ve akıllı ev ses sistemleriyle tasarlandı.",
scheduleVisit: "ZİYARET PLANLA",
estatePortfolio: "VİLLA PORTFÖYÜ",
statTitle1: "PARAMETRE 1",
statTitle2: "PARAMETRE 2",
statTitle3: "PARAMETRE 3",
privateAmenities: "Özel Ayrıcalıklar",
bespokeServices: "SEÇKİN VİLLA HİZMETLERİ",
secureRes: "GİRİŞ BAŞVURUSU YAP →",
privilegedRequest: "Ayrıcalıklı Talep",
enquirePrivate: "ZİYARET VE EMLAK BAŞVURUSU",
formDesc: "Özel mimari koordinatörlerimizle iletişime geçerek yapılandırılmış villa gezilerini planlayın.",
fieldsName: "İsim Soyisim",
fieldsEmail: "E-Posta Adresi",
fieldsPhone: "İletişim Numarası",
fieldsProperty: "Mülk Kategorisi",
fieldsNotes: "Özel istekler",
fieldsNotesPlaceholder: "Helikopter pisti talepleri, kişisel güvenlik önlemleri...",
dispatchForm: "GÜVENLİK FORMUNU GÖNDER",
diaries: "Görüşler",
trustedOwners: "MÜLK SAHİPLERİNİN GÜVENCESİ",
vipCoords: "VIP KOORDİNATLAR",
securityHours: "Güvenlik Birimi",
securityActive: "24 Saat Kesintisiz Aktif",
heliport: "Özel Helikopter Pisti",
heliportActive: "Otomatik rötar senkronizasyonu",
estateServices: "VİLLA HİZMETLERİ",
privacyRegs: "Gizlilik Sözleşmesi",
termsStay: "Brüt Beton Koşulları",
dismiss: "KAPAT",
enquiryActive: "ZİYARET ONAYLANDI",
ambassadorActive: "Güvenlik Doğrulaması Başlatıldı",
enquirySuccess: "Yalıkavak brüt beton villa gezi talebinizi kaydettik. Güvenlik doğrulama koordinatörümüz, giriş detaylarını onaylamak için en kısa sürede sizinle iletişime geçecektir. Teşekkürler!",
},
en: {
navIdeology: "Design ideology",
navServices: "Bespoke services",
navPortfolio: "Bento portfolio",
navEnquire: "Enquire access",
scheduleAccess: "Schedule Access",
badge: "MINIMAL MONOLITHIC VILLA",
sloganTail: "WITH CONCRETE LINES",
heroDesc: "Indulge in sheer structural luxury at Bodrum Yalıkavak coast lines. Designed with raw monolithic architectural concrete forms, zero-edge pools, and smart voice systems.",
scheduleVisit: "SCHEDULE VISIT",
estatePortfolio: "ESTATE PORTFOLIO",
statTitle1: "PARAMETER 1",
statTitle2: "PARAMETER 2",
statTitle3: "PARAMETER 3",
privateAmenities: "Private Amenities",
bespokeServices: "BESPOKE VILLA SERVICES",
secureRes: "ENQUIRE ACCESS →",
privilegedRequest: "Privileged Request",
enquirePrivate: "ENQUIRE PRIVATE ACCESS",
formDesc: "Connect with our somatic architectural coordinators to schedule structured property walkthroughs.",
fieldsName: "Name",
fieldsEmail: "Email",
fieldsPhone: "Phone",
fieldsProperty: "Property Category",
fieldsNotes: "Special details",
fieldsNotesPlaceholder: "Helipad requirements, personalized security levels...",
dispatchForm: "DISPATCH SECURITY FORM",
diaries: "Sommelier Reviews",
trustedOwners: "TRUSTED BY OWNERS",
vipCoords: "VIP COORDINATES",
securityHours: "Security Hours",
securityActive: "Active 24 Hours",
heliport: "Lounge Heliport",
heliportActive: "Automated delay syncing",
estateServices: "ESTATE SERVICES",
privacyRegs: "Privacy Regulations",
termsStay: "Terms of Concrete",
dismiss: "DISMISS",
enquiryActive: "VISIT GRANTED",
ambassadorActive: "Security Clearing Initiated",
enquirySuccess: "We have registered your executive Yalıkavak concrete villa walkthrough request. A security clearance coordinator will contact you shortly to authorize access parameters. Thank you!",
}
};
export default function HotelTemplate3({ data }: { data: DemoData }) {
const { firma, istatistikler = [], hizmetler = [], yorumlar = [] } = data;
const [showModal, setShowModal] = useState(false);
const [lang, setLang] = useState<"tr" | "en">("tr");
const [preloader, setPreloader] = useState(true);
const t = translations[lang];
// 1. Lenis Smooth Scroll Integration
useEffect(() => {
let lenis: any;
import("@studio-freight/lenis").then(({ default: Lenis }) => {
lenis = new Lenis({ duration: 1.2, easing: (t: number) => Math.min(1, 1.001 - Math.pow(2, -10 * t)) });
function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); }
requestAnimationFrame(raf);
});
return () => lenis?.destroy();
}, []);
// 2. Preloader Curtain Timer
useEffect(() => {
const timer = setTimeout(() => {
setPreloader(false);
}, 1500);
return () => clearTimeout(timer);
}, []);
// Localized statistics
const getLocalizedStat = (deger: string, etiket: string) => {
if (deger.includes("Concrete")) {
return {
deger: lang === "tr" ? "Brüt Beton" : "Concrete",
etiket: lang === "tr" ? "Tik ağacı zemin kaplamaları ile birleştirilmiş brüt monolitik beton formlar." : etiket
};
}
if (deger.includes("Smart")) {
return {
deger: lang === "tr" ? "Akıllı Konut" : "Smart Estate",
etiket: lang === "tr" ? "Tam entegre ses arayüzleri, otomatik havalandırma ve yedek güneş enerjisi." : etiket
};
}
return {
deger: lang === "tr" ? "Deniz Manzarası" : "Sea View",
etiket: lang === "tr" ? "Yerden tavana kadar kesintisiz cam panellerle tasarlanmış konsol yatak odaları." : etiket
};
};
// Localized services
const getLocalizedService = (baslik: string, aciklama: string) => {
if (baslik.includes("ARCHITECTURAL")) {
return {
title: lang === "tr" ? "MİMARİ TURLAR" : "ARCHITECTURAL TOURS",
desc: lang === "tr" ? "Karbon yapılar, brüt beton dokular ve taşmalı havuzları gösteren özel emlak turları." : aciklama
};
}
if (baslik.includes("MASTERCLASSES")) {
return {
title: lang === "tr" ? "TASARIM EĞİTİMLERİ" : "DESIGN MASTERCLASSES",
desc: lang === "tr" ? "Minimalist yaşam, özel mobilya yerleşimi ve sürdürülebilir brüt beton tasarımı atölyelerimiz." : aciklama
};
}
return {
title: lang === "tr" ? "ÖZEL LÜKS VİLLA" : "EXECUTIVE LUXURY VILLA",
desc: lang === "tr" ? "Kişisel sommelier desteği, otomatik helikopter pisti ve üst düzey güvenlik ile tam mülk kiralama." : aciklama
};
};
const css = `
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
:root {
--color-apex-emerald: #059669;
--color-apex-slate: #09090C;
--color-apex-card: #14141A;
--color-apex-white: #FAF8F5;
--color-apex-muted: rgba(250, 248, 245, 0.5);
}
.font-apex-heading {
font-family: 'Inter', sans-serif;
font-weight: 900;
letter-spacing: -0.04em;
}
.font-sans-apex {
font-family: 'Inter', sans-serif;
}
.bg-apex-mesh {
background-image:
radial-gradient(circle at 10% 20%, rgba(5, 150, 105, 0.04) 0%, transparent 45%),
radial-gradient(circle at 90% 80%, rgba(250, 248, 245, 0.01) 0%, transparent 50%),
linear-gradient(rgba(255, 255, 255, 0.005) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.005) 1px, transparent 1px);
background-size: 100% 100%, 100% 100%, 40px 40px, 40px 40px;
}
.emerald-glow {
box-shadow: 0 0 25px rgba(5, 150, 105, 0.15);
}
.hero-title-clamp {
font-size: clamp(34px, 5.5vw, 85px);
line-height: 0.95;
}
`;
return (
<>
{/* ── IMZA AN: CURTAIN REVEAL PRELOADER ── */}
{locStat.etiket}
{locServ.desc}
{t.formDesc}
“{y.yorum}”
{t.ambassadorActive}
{t.enquirySuccess}