Build: Arhitectura României — interactive 3D scrollytelling

Astro 6 + Tailwind 4 + Three.js + GSAP/Lenis stack.

- Hero with animated procedural 3D Maramures house silhouette
- Six typology sections (Maramures, cula, sasesc, interbelic, comunist, contemporan), each with a low-poly Three.js model and interactive drag-to-rotate
- 5-question quiz that recommends a typology, with native + social share
- Beletage backlinks throughout: footer, header CTA, dedicated section, quiz result, share strip
- Full SEO: dynamic OG image, JSON-LD WebSite/Organization/Article, sitemap (i18n), robots, canonical, hreflang
- RO primary, EN landing variant
- Romanian-warm palette (terra/wood/sky-mist/bone), Fraunces + Inter fonts
- Lazy-init Three scenes via IntersectionObserver, prefers-reduced-motion respected

Static output, ready for Cloudflare Pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude (Beletage)
2026-04-20 03:21:18 +03:00
parent afc9477d3e
commit df35ee6632
28 changed files with 7575 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

+6
View File
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<rect width="64" height="64" rx="12" fill="#3a1c10"/>
<path d="M12 44 L32 12 L52 44 Z" fill="#d4703f"/>
<rect x="14" y="44" width="36" height="8" fill="#5e2d1a"/>
<circle cx="32" cy="34" r="3" fill="#fae8da"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

+4
View File
@@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://2d3d.ro/sitemap-index.xml
+14
View File
@@ -0,0 +1,14 @@
{
"name": "2D3D — Arhitectura României",
"short_name": "2D3D",
"description": "Arhitectura României în 3D interactiv",
"start_url": "/",
"display": "standalone",
"background_color": "#faf8f3",
"theme_color": "#3a1c10",
"lang": "ro-RO",
"icons": [
{ "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml" },
{ "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" }
]
}