feat: thông tin liên hệ chính thức + lớp nghệ thuật (grain, marquee), bỏ em-dash

- Thông tin liên hệ thật: Thôn Đình Dù, Xã Như Quỳnh, tỉnh Hưng Yên · ĐT 02213 985 074
  · cổng nhuquynh.hungyen.gov.vn (1 nguồn dữ liệu `contact`, dùng ở footer + liên hệ + bản đồ)
- Thêm lớp nhiễu hạt phim cố định (chiều sâu cao cấp) + dải tên di tích chạy ngang (1 dải/trang)
- Thay toàn bộ em-dash trong nội dung hiển thị bằng dấu câu chuẩn

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
tuyenio
2026-06-23 15:56:15 +07:00
parent 25772c9c25
commit dd6dadaa55
11 changed files with 151 additions and 42 deletions
@@ -0,0 +1,28 @@
import { heritageSites } from "@/app/content";
// Dải tên di tích chạy ngang liên tục, gợi bề dày của hệ thống di sản.
// Lặp danh sách 2 lần để vòng lặp khép kín; dừng khi prefers-reduced-motion.
export function HeritageMarquee() {
const names = heritageSites.map((site) => site.name);
const loop = [...names, ...names];
return (
<section
className="border-y border-[var(--surface-border)] bg-[var(--surface-band)] py-6"
aria-label="Hệ thống di tích Xã Như Quỳnh"
>
<div className="heritage-marquee">
<div className="heritage-marquee-track">
{loop.map((name, index) => (
<span key={index} className="flex items-center" aria-hidden={index >= names.length}>
<span className="public-display text-lg font-semibold text-[var(--tour-ink)]/85 sm:text-xl">
{name}
</span>
<span className="mx-7 inline-block h-1.5 w-1.5 rotate-45 bg-[var(--primary)]/70" />
</span>
))}
</div>
</div>
</section>
);
}
+16 -10
View File
@@ -1,13 +1,13 @@
import Link from "next/link";
import { Globe2, Mail, MapPin } from "lucide-react";
import { navigation } from "@/app/content";
import { Globe2, Mail, MapPin, Phone } from "lucide-react";
import { contact, navigation } from "@/app/content";
export function SiteFooter() {
return (
<footer id="contact" className="px-4 pb-8 sm:px-6">
<div className="mx-auto grid max-w-7xl gap-8 border-t border-[var(--surface-border)] pt-8 lg:grid-cols-[1.1fr_0.72fr_0.82fr]">
<div className="min-w-0">
<p className="text-lg font-bold text-[var(--tour-ink)]">VR360 Như Quỳnh</p>
<p className="public-display text-xl font-bold text-[var(--tour-ink)]">VR360 Như Quỳnh</p>
<p className="mt-3 max-w-[62ch] text-sm leading-6 text-[var(--muted-foreground)]">
Cổng số hóa di tích không gian văn hóa Như Quỳnh, tỉnh Hưng Yên bằng công nghệ VR360.
</p>
@@ -24,18 +24,24 @@ export function SiteFooter() {
<div className="grid gap-3 text-sm leading-6 text-[var(--muted-foreground)] lg:text-right">
<p className="font-bold text-[var(--tour-ink)]">Thông tin liên hệ</p>
<p className="inline-flex items-center gap-2 lg:justify-end">
<MapPin className="h-4 w-4 text-[var(--primary)]" strokeWidth={1.8} />
Như Quỳnh, tỉnh Hưng Yên
<p className="inline-flex items-start gap-2 lg:justify-end">
<MapPin className="mt-0.5 h-4 w-4 shrink-0 text-[var(--primary)]" strokeWidth={1.8} />
{contact.address}
</p>
<a href={contact.phoneHref} className="inline-flex items-center gap-2 font-semibold text-[var(--tour-ink)] transition-colors hover:text-[var(--primary)] lg:justify-end">
<Phone className="h-4 w-4 text-[var(--primary)]" strokeWidth={1.8} />
{contact.phone}
</a>
<a
href="#"
className="inline-flex items-center gap-2 font-semibold text-[var(--tour-ink)] hover:text-[var(--primary)] lg:justify-end"
href={contact.website}
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 font-semibold text-[var(--tour-ink)] transition-colors hover:text-[var(--primary)] lg:justify-end"
>
<Globe2 className="h-4 w-4 text-[var(--primary)]" strokeWidth={1.8} />
Cổng thông tin Như Quỳnh
{contact.websiteLabel}
</a>
<Link href="/lien-he" className="inline-flex items-center gap-2 font-semibold text-[var(--tour-ink)] hover:text-[var(--primary)] lg:justify-end">
<Link href="/lien-he" className="inline-flex items-center gap-2 font-semibold text-[var(--tour-ink)] transition-colors hover:text-[var(--primary)] lg:justify-end">
<Mail className="h-4 w-4 text-[var(--primary)]" strokeWidth={1.8} />
Gửi góp ý hoặc liệu
</Link>
+15 -7
View File
@@ -9,9 +9,17 @@ export const commune = {
"Vùng đất cổ giàu truyền thống văn hiến và khoa bảng, nơi lưu giữ hệ thống di tích đình, chùa, đền, văn miếu trải dài nhiều thế kỷ.",
};
export const contact = {
address: "Thôn Đình Dù, Xã Như Quỳnh, tỉnh Hưng Yên",
phone: "02213 985 074",
phoneHref: "tel:02213985074",
website: "https://nhuquynh.hungyen.gov.vn/",
websiteLabel: "nhuquynh.hungyen.gov.vn",
};
export const activeTour = {
title: "Chùa Thái Lạc (Pháp Vân tự)",
subtitle: "Di tích quốc gia chạm khắc gỗ thời Trần",
subtitle: "Di tích quốc gia, chạm khắc gỗ thời Trần",
href: "/tour/chua-thai-lac",
heroImage: img("01.jpg"), // Chính diện cổng chùa
coverImage: img("08.jpg"), // Chính sảnh
@@ -45,7 +53,7 @@ export type Antiquity = {
export const antiquities: Antiquity[] = [
{
id: "chuong-dong-1",
name: "Chuông đồng Hiện vật I",
name: "Chuông đồng (Hiện vật I)",
site: "Cụm di tích Xã Như Quỳnh",
material: "Đồng",
period: "Đang cập nhật",
@@ -59,7 +67,7 @@ export const antiquities: Antiquity[] = [
},
{
id: "chuong-dong-2",
name: "Chuông đồng Hiện vật II",
name: "Chuông đồng (Hiện vật II)",
site: "Cụm di tích Xã Như Quỳnh",
material: "Đồng",
period: "Đang cập nhật",
@@ -122,8 +130,8 @@ export const heritageSites: HeritageSite[] = [
shortDescription:
"Ngôi chùa cổ thờ Pháp Vân trong hệ Tứ Pháp, nổi tiếng với những mảng chạm khắc gỗ thời Trần (thế kỷ 14) thuộc hàng quý hiếm bậc nhất Việt Nam.",
longDescription: [
"Chùa Thái Lạc, tên chữ là Pháp Vân tự, là một trong những ngôi chùa cổ tiêu biểu của vùng Như Quỳnh, thờ Pháp Vân vị thần Mây trong tín ngưỡng Tứ Pháp của cư dân nông nghiệp đồng bằng Bắc Bộ.",
"Giá trị đặc biệt của di tích nằm ở hệ thống ván chạm khắc gỗ có niên đại thời Trần (thế kỷ 14), khắc họa các nhạc công, vũ nữ, hình tượng Phật giáo với kỹ thuật điêu luyện nguồn tư liệu quý cho nghiên cứu mỹ thuật cổ Việt Nam.",
"Chùa Thái Lạc, tên chữ là Pháp Vân tự, là một trong những ngôi chùa cổ tiêu biểu của vùng Như Quỳnh, thờ Pháp Vân, vị thần Mây trong tín ngưỡng Tứ Pháp của cư dân nông nghiệp đồng bằng Bắc Bộ.",
"Giá trị đặc biệt của di tích nằm ở hệ thống ván chạm khắc gỗ có niên đại thời Trần (thế kỷ 14), khắc họa các nhạc công, vũ nữ, hình tượng Phật giáo với kỹ thuật điêu luyện, là nguồn tư liệu quý cho nghiên cứu mỹ thuật cổ Việt Nam.",
"Không gian chùa gồm cổng, sân, tiền đường, thượng điện cùng các ban thờ và cảnh quan vườn, ao, được số hóa đầy đủ trong tour VR360.",
],
image: img("01.jpg"), // Chính diện cổng chùa
@@ -137,7 +145,7 @@ export const heritageSites: HeritageSite[] = [
nationalStub("tu-vu-ho-truong", "Từ Vũ họ Trương", "Di tích khác",
"Từ đường dòng họ Trương, di tích phản ánh truyền thống dòng tộc và tín ngưỡng thờ tổ tiên của địa phương."),
nationalStub("bai-da-den-tu-vu", "Bãi đá đền Từ Vũ", "Di tích khác",
"Cụm di tích khảo cổ kiến trúc đá gắn với đền Từ Vũ, mang giá trị lịch sử và văn hóa lâu đời."),
"Cụm di tích khảo cổ kiến trúc đá gắn với đền Từ Vũ, mang giá trị lịch sử và văn hóa lâu đời."),
nationalStub("dinh-at", "Đình Ất", "Đình",
"Đình làng cổ, không gian sinh hoạt tín ngưỡng và cộng đồng tiêu biểu của làng quê Như Quỳnh."),
nationalStub("chua-hanh-lac", "Chùa Hành Lạc", "Chùa",
@@ -155,7 +163,7 @@ export const heritageSites: HeritageSite[] = [
provincialStub("chua-tu-kinh", "Chùa Từ Kính", "Chùa",
"Ngôi chùa cổ, điểm sinh hoạt Phật giáo và văn hóa tâm linh của cộng đồng."),
provincialStub("cung-chi-nguyen", "Cung Chí Nguyên", "Di tích khác",
"Di tích gắn với nhà văn Thạch Lam nơi khơi nguồn cảm hứng cho truyện ngắn \"Dưới bóng hoàng lan\"."),
"Di tích gắn với nhà văn Thạch Lam, nơi khơi nguồn cảm hứng cho truyện ngắn \"Dưới bóng hoàng lan\"."),
provincialStub("van-mieu-nhu-quynh", "Văn miếu Như Quỳnh", "Văn miếu",
"Văn miếu tôn vinh truyền thống hiếu học và khoa bảng của vùng đất Như Quỳnh."),
provincialStub("dau-tich-chua-la", "Dấu tích Chùa Lá", "Chùa",
+2 -2
View File
@@ -11,7 +11,7 @@ import { activeTour, heritageSites } from "@/app/content";
export const metadata: Metadata = {
title: "Di tích | VR360 Như Quỳnh",
description:
"Danh sách toàn bộ di tích lịch sử văn hóa và tour VR360 của Xã Như Quỳnh, tỉnh Hưng Yên.",
"Danh sách toàn bộ di tích lịch sử, văn hóa và tour VR360 của Xã Như Quỳnh, tỉnh Hưng Yên.",
};
export default function HeritageListPage() {
@@ -36,7 +36,7 @@ export default function HeritageListPage() {
Hệ thống di tích Như Quỳnh
</h1>
<p className="public-subpage-copy mt-6 text-base leading-8 text-[var(--foreground)]/82 sm:text-lg">
Khám phá 15 di tích lịch sử văn hóa của Như Quỳnh: 9 di tích xếp hạng cấp quốc gia 6 di tích cấp tỉnh.
Khám phá 15 di tích lịch sử, văn hóa của Như Quỳnh: 9 di tích xếp hạng cấp quốc gia 6 di tích cấp tỉnh.
</p>
<div className="mt-7 flex flex-wrap gap-3">
<span className="public-chip">
+3 -3
View File
@@ -21,7 +21,7 @@ import { activeTour, antiquities, heritageSites, img } from "@/app/content";
export const metadata: Metadata = {
title: "Giới thiệu | VR360 Như Quỳnh",
description:
"Giới thiệu về Xã Như Quỳnh, tỉnh Hưng Yên vùng đất văn hiến và hệ thống di tích lịch sử văn hóa được số hóa bằng công nghệ VR360.",
"Giới thiệu về Xã Như Quỳnh, tỉnh Hưng Yên: vùng đất văn hiến và hệ thống di tích lịch sử, văn hóa được số hóa bằng công nghệ VR360.",
};
const nationalCount = heritageSites.filter((s) => s.level === "Cấp quốc gia").length;
@@ -41,7 +41,7 @@ const paragraphs = [
];
const values = [
{ icon: Landmark, title: "Không gian tín ngưỡng", detail: "Đình, chùa, đền, văn miếu nơi gìn giữ kiến trúc và đời sống tâm linh của cộng đồng làng quê." },
{ icon: Landmark, title: "Không gian tín ngưỡng", detail: "Đình, chùa, đền, văn miếu, nơi gìn giữ kiến trúc và đời sống tâm linh của cộng đồng làng quê." },
{ icon: BookOpenText, title: "Vùng đất khoa bảng", detail: "Truyền thống hiếu học được tôn vinh qua hệ thống văn miếu và các bậc danh nhân của quê hương." },
{ icon: Building2, title: "Kiến trúc nghệ thuật", detail: "Những mảng chạm khắc, đồ thờ tự và hiện vật mang giá trị mỹ thuật cổ tiêu biểu." },
{ icon: Users, title: "Ký ức cộng đồng", detail: "Lễ hội, phong tục và câu chuyện dân gian gắn liền với từng di tích qua nhiều thế hệ." },
@@ -178,7 +178,7 @@ export default function AboutPage() {
{activeTour.title}
</h2>
<p className="mt-4 max-w-[52ch] text-sm leading-7 text-[var(--foreground)]/80 sm:text-base">
Ngôi chùa cổ thờ Pháp Vân, nổi tiếng với mảng chạm khắc gỗ thời Trần di tích đu tiên
Ngôi chùa cổ thờ Pháp Vân, nổi tiếng với mảng chạm khắc gỗ thời Trần. Đây di tích đu tiên
đưc số hóa thành tour VR360 hoàn chỉnh.
</p>
<div className="mt-7 flex flex-wrap gap-3">
+44
View File
@@ -1399,3 +1399,47 @@ a {
filter: saturate(1.08) brightness(1.03);
}
}
/* Lớp nhiễu hạt phim cố định — tạo chiều sâu, chất liệu cao cấp cho nền tối. */
.site-grain {
position: fixed;
inset: 0;
z-index: 60;
pointer-events: none;
opacity: 0.05;
mix-blend-mode: overlay;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
background-size: 160px 160px;
}
/* Dải tên di tích chạy ngang — gợi bề dày hệ thống di sản. Một dải/trang. */
.heritage-marquee {
position: relative;
overflow: hidden;
mask-image: linear-gradient(90deg, transparent, black 9%, black 91%, transparent);
-webkit-mask-image: linear-gradient(90deg, transparent, black 9%, black 91%, transparent);
}
.heritage-marquee-track {
display: inline-flex;
width: max-content;
align-items: center;
white-space: nowrap;
will-change: transform;
}
@media (prefers-reduced-motion: no-preference) {
.heritage-marquee-track {
animation: heritage-marquee 46s linear infinite;
}
.heritage-marquee:hover .heritage-marquee-track {
animation-play-state: paused;
}
}
@keyframes heritage-marquee {
to {
transform: translate3d(-50%, 0, 0);
}
}
+4 -1
View File
@@ -34,7 +34,10 @@ export default function RootLayout({
}>) {
return (
<html lang="vi" className={`${notoSans.variable} ${notoSerifDisplay.variable} h-full antialiased`}>
<body className="min-h-full flex flex-col">{children}</body>
<body className="min-h-full flex flex-col">
{children}
<div className="site-grain" aria-hidden="true" />
</body>
</html>
);
}
+31 -14
View File
@@ -1,8 +1,9 @@
import type { Metadata } from "next";
import { Clock, ImagePlus, Landmark, Mail, MapPin, MessageSquareText, Phone, Send } from "lucide-react";
import { Clock, Globe2, ImagePlus, Landmark, MapPin, MessageSquareText, Phone, Send } from "lucide-react";
import { BackToTopButton } from "@/app/components/landing/BackToTopButton";
import { SiteFooter } from "@/app/components/landing/SiteFooter";
import { SiteHeader } from "@/app/components/landing/SiteHeader";
import { contact } from "@/app/content";
export const metadata: Metadata = {
title: "Liên hệ | VR360 Như Quỳnh",
@@ -10,10 +11,10 @@ export const metadata: Metadata = {
};
const contacts = [
{ icon: MapPin, label: "Địa chỉ", value: "Xã Như Quỳnh, tỉnh Hưng Yên" },
{ icon: Phone, label: "Điện thoại", value: "Đang cập nhật" },
{ icon: Mail, label: "Email", value: "Đang cập nhật" },
{ icon: Clock, label: "Thời gian tiếp nhận", value: "Trong giờ hành chính các ngày làm việc" },
{ icon: MapPin, label: "Địa chỉ", value: contact.address, href: undefined, external: false },
{ icon: Phone, label: "Điện thoại", value: contact.phone, href: contact.phoneHref, external: false },
{ icon: Globe2, label: "Cổng thông tin", value: contact.websiteLabel, href: contact.website, external: true },
{ icon: Clock, label: "Thời gian tiếp nhận", value: "Trong giờ hành chính các ngày làm việc", href: undefined, external: false },
];
const steps = [
@@ -77,22 +78,38 @@ export default function ContactPage() {
<div className="mt-6 grid gap-3">
{contacts.map((c) => {
const Icon = c.icon;
return (
<div key={c.label} className="public-panel flex items-center gap-4 rounded-[14px] p-5">
const inner = (
<>
<span className="grid h-11 w-11 shrink-0 place-items-center rounded-full bg-[rgb(200_164_106_/_0.18)]">
<Icon className="h-5 w-5 text-[var(--primary)]" strokeWidth={1.8} />
</span>
<span>
<span className="min-w-0">
<span className="block text-xs font-bold uppercase tracking-[0.1em] text-[var(--muted-foreground)]">{c.label}</span>
<span className="block text-base font-semibold text-[var(--tour-ink)]">{c.value}</span>
<span className="block break-words text-base font-semibold text-[var(--tour-ink)]">{c.value}</span>
</span>
</>
);
const base = "public-panel flex items-center gap-4 rounded-[14px] p-5";
return c.href ? (
<a
key={c.label}
href={c.href}
target={c.external ? "_blank" : undefined}
rel={c.external ? "noopener noreferrer" : undefined}
className={`${base} group transition hover:-translate-y-0.5`}
>
{inner}
</a>
) : (
<div key={c.label} className={base}>
{inner}
</div>
);
})}
</div>
<p className="mt-4 inline-flex items-center gap-2 text-xs leading-5 text-[var(--muted-foreground)]">
<Send className="h-3.5 w-3.5 text-[var(--primary)]" strokeWidth={1.8} />
Thông tin số điện thoại và email chính thức sẽ đưc cập nhật khi sẵn sàng.
<p className="mt-4 inline-flex items-start gap-2 text-xs leading-5 text-[var(--muted-foreground)]">
<Send className="mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--primary)]" strokeWidth={1.8} />
Mọi thông tin, hình nh liệu đóng góp xin gửi v y ban nhân dân Như Quỳnh theo đa chỉ số điện thoại trên.
</p>
</div>
</section>
@@ -101,8 +118,8 @@ export default function ContactPage() {
<section className="mx-auto max-w-7xl px-4 pb-16 sm:px-6 lg:pb-24">
<div className="public-map-frame overflow-hidden rounded-[16px] border border-[var(--surface-border)]">
<iframe
title="Bản đồ Xã Như Quỳnh, tỉnh Hưng Yên"
src="https://www.google.com/maps?q=Nh%C6%B0%20Qu%E1%BB%B3nh%2C%20H%C6%B0ng%20Y%C3%AAn&output=embed"
title="Bản đồ Thôn Đình Dù, Xã Như Quỳnh, tỉnh Hưng Yên"
src={`https://www.google.com/maps?q=${encodeURIComponent(contact.address)}&output=embed`}
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
className="h-[360px] w-full sm:h-[440px]"
+4 -1
View File
@@ -3,6 +3,7 @@ import Image from "next/image";
import Link from "next/link";
import { ArrowRight, Box, Globe2, Landmark, PlayCircle, Rotate3d, School, Sparkles } from "lucide-react";
import { BackToTopButton } from "@/app/components/landing/BackToTopButton";
import { HeritageMarquee } from "@/app/components/landing/HeritageMarquee";
import { SiteFooter } from "@/app/components/landing/SiteFooter";
import { SiteHeader } from "@/app/components/landing/SiteHeader";
import { HeroShaderBackground } from "@/app/components/ui/hero-shader-background";
@@ -79,6 +80,8 @@ export default function Home() {
</section>
</HeroShaderBackground>
<HeritageMarquee />
<section className="mx-auto grid max-w-7xl gap-10 px-4 py-14 sm:px-6 lg:grid-cols-[0.8fr_1.2fr] lg:items-center lg:py-20">
<div className="min-w-0">
<p className="public-kicker">Giới thiệu nhanh</p>
@@ -135,7 +138,7 @@ export default function Home() {
<p className="mt-1 text-sm font-bold text-[var(--primary)]">Phòng trưng bày số</p>
<h3 className="mt-2 text-2xl font-extrabold leading-tight text-[var(--tour-ink)]">Cổ vật & hiện vật 3D</h3>
<p className="mt-3 text-sm leading-6 text-[var(--muted-foreground)]">
Chiêm ngưỡng các cổ vật tiêu biểu đưc dựng thành hình ba chiều xoay, phóng to quan sát từng chi tiết.
Chiêm ngưỡng các cổ vật tiêu biểu đưc dựng thành hình ba chiều: xoay, phóng to quan sát từng chi tiết.
</p>
<Link href="/co-vat" className="mt-auto inline-flex items-center gap-2 pt-5 text-sm font-extrabold text-[var(--tour-ink)] transition hover:text-[var(--primary)]">
Khám phá cổ vật 3D
+1 -1
View File
@@ -4,7 +4,7 @@ import VirtualTour from "@/app/components/VirtualTour";
export const metadata: Metadata = {
title: "VR360 Chùa Thái Lạc (Pháp Vân tự)",
description:
"Trải nghiệm tham quan thực tế ảo 360° Chùa Thái Lạc (Pháp Vân tự) di tích quốc gia tại Xã Như Quỳnh, tỉnh Hưng Yên.",
"Trải nghiệm tham quan thực tế ảo 360° Chùa Thái Lạc (Pháp Vân tự), di tích quốc gia tại Xã Như Quỳnh, tỉnh Hưng Yên.",
};
export default function ChuaThaiLacTourPage() {
+3 -3
View File
@@ -33,7 +33,7 @@ const seeds: SceneSeed[] = [
pitch: -2,
iconType: "info",
content: [
"Chùa Thái Lạc, tên chữ là Pháp Vân tự, là ngôi chùa cổ thờ Pháp Vân vị thần Mây trong tín ngưỡng Tứ Pháp của cư dân nông nghiệp đồng bằng Bắc Bộ.",
"Chùa Thái Lạc, tên chữ là Pháp Vân tự, là ngôi chùa cổ thờ Pháp Vân, vị thần Mây trong tín ngưỡng Tứ Pháp của cư dân nông nghiệp đồng bằng Bắc Bộ.",
"Di tích được xếp hạng cấp quốc gia, nổi tiếng với hệ thống ván chạm khắc gỗ thời Trần (thế kỷ 14) thuộc hàng quý hiếm bậc nhất Việt Nam.",
],
},
@@ -86,7 +86,7 @@ const seeds: SceneSeed[] = [
pitch: -2,
iconType: "envelope",
content: [
"Khu vực tôn trí tượng Quan Âm Bồ Tát cùng các pho tượng La Hán, Phật không gian chiêm bái trang nghiêm trong khuôn viên chùa.",
"Khu vực tôn trí tượng Quan Âm Bồ Tát cùng các pho tượng La Hán, Phật, là không gian chiêm bái trang nghiêm trong khuôn viên chùa.",
],
},
],
@@ -147,7 +147,7 @@ const mapRoutes = scenes
export const chuaThaiLacTour: Omit<TourConfig, "sceneById" | "locationGroups"> = {
id: "chua-thai-lac",
title: "Chùa Thái Lạc (Pháp Vân tự)",
subtitle: "Di tích quốc gia chạm khắc gỗ thời Trần",
subtitle: "Di tích quốc gia, chạm khắc gỗ thời Trần",
welcomeTitle: "Chùa Thái Lạc",
welcomeAccent: "Pháp Vân tự",
welcomeSubtitle: