// sections.jsx — top-level building blocks of the maison page // Exports onto window so app.jsx can compose them. const { useState, useEffect, useRef, useMemo } = React; // ─── Reveal-on-scroll wrapper ──────────────────────────────────────────────── function Reveal({ children, delay = 0, as = 'div', className = '', ...rest }) { const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el) return; const io = new IntersectionObserver( (entries) => { entries.forEach((e) => { if (e.isIntersecting) { el.classList.add('in'); io.unobserve(el); } }); }, { threshold: 0.12, rootMargin: '0px 0px -8% 0px' } ); io.observe(el); return () => io.disconnect(); }, []); const Tag = as; return ( {children} ); } // ─── NAV ───────────────────────────────────────────────────────────────────── function Nav({ onBook }) { const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 80); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); return (
Lamia Abi Nader Haute Couture
); } // ─── HERO ──────────────────────────────────────────────────────────────────── const HERO_SHOTS = [ { src: 'media/media-01-bridal-2026-1.webp', label: 'Look I — Constellation', code: 'LAN/26-01' }, { src: 'media/media-02-bridal-2026-2.webp', label: 'Look II — Étoile', code: 'LAN/26-02' }, { src: 'media/media-03-bridal-2026-3.webp', label: 'Look III — Aurore', code: 'LAN/26-03' }, ]; function Hero({ onBook, heroIdx, setHeroIdx, scale }) { const shot = HERO_SHOTS[heroIdx] || HERO_SHOTS[0]; // gentle auto-rotate when not hovered const hoverRef = useRef(false); useEffect(() => { const id = setInterval(() => { if (!hoverRef.current) setHeroIdx((i) => (i + 1) % HERO_SHOTS.length); }, 8500); return () => clearInterval(id); }, [setHeroIdx]); const titleSize = scale === 'cinematic' ? 'clamp(64px, 10vw, 156px)' : 'clamp(54px, 8vw, 132px)'; return (
(hoverRef.current = true)} onMouseLeave={() => (hoverRef.current = false)} >
N° 037 · MMXXVI
Collection Index — Bridal 2026 · {shot.code}
{HERO_SHOTS.map((s, i) => ( ))}
A Lebanese Maison — Beirut MMII Haute couture for the bride's defining moment. View Bridal 2026
{shot.label} Photographed for Bridal 2026 — by appointment, Dubai & Beirut.
Scroll
d3 — Dubai Design District
Jisr El Basha — Beirut
); } // ─── PEDIGREE STRIP ────────────────────────────────────────────────────────── const PEDIGREE = [ { y: 'MMII', l: 'Maison founded — Beirut' }, { y: 'MMVI', l: 'First bridal collection' }, { y: '·', l: 'Paris · Italy' }, { y: 'SS23', l: 'Dubai Fashion Week — Haute Couture' }, { y: 'XX+', l: 'Years of couture practice' }, ]; function PedigreeStrip() { return ( {PEDIGREE.map((p, i) => (
{p.y} {p.l}
{i < PEDIGREE.length - 1 && }
))}
); } // ─── INTRO ─────────────────────────────────────────────────────────────────── function Intro() { return (
§01 — The Maison

Couture, made to one body, one occasion. Each gown begins with a private fitting at the atelier and is constructed by hand — embroidery, beadwork, drapery — in the Lebanese tradition.

Practice
Bridal & evening couture
Method
Made-to-measure, by appointment
Ateliers
Dubai Design District · Beirut
Lead time
By consultation
Pricing
Price on request
); } // ─── BRIDAL LOOKBOOK ───────────────────────────────────────────────────────── const LOOKS = [ { src: 'media/media-01-bridal-2026-1.webp', name: 'Constellation', n: '01', col: 'Bridal 2026', cls: 'lb-1' }, { src: 'media/media-03-bridal-2026-3.webp', name: 'Aurore', n: '02', col: 'Bridal 2026', cls: 'lb-2' }, { src: 'media/media-10-wedding-2025-1.webp', name: 'Sève', n: '03', col: 'Wedding 2025', cls: 'lb-3' }, { src: 'media/media-07-wedding-2025-9.webp', name: 'Lys d\'or', n: '04', col: 'Wedding 2025', cls: 'lb-4' }, { src: 'media/media-11-wedding-2025-5.webp', name: 'Cathédrale', n: '05', col: 'Wedding 2025', cls: 'lb-5' }, { src: 'media/media-06-wedding-2025-11.webp', name: 'Veilleuse', n: '06', col: 'Wedding 2025', cls: 'lb-6' }, { src: 'media/media-04-wedding-2025-18.webp', name: 'Fleur', n: '07', col: 'Wedding 2025', cls: 'lb-7' }, ]; function Bridal({ onOpenLook }) { return (
§02 — Bridal

Bridal 2026, &
the Wedding archive.

A study in light. Hand-cut crystal florets and bead-set tulle on a midnight horizon — the latest bridal series, photographed for private viewing at the Dubai and Beirut ateliers.

Seven looks of seventeen. Full collection on appointment.

{LOOKS.map((l) => ( ))}
); } // ─── EVENING ───────────────────────────────────────────────────────────────── function Evening({ onBook }) { return (
§03 — Evening

Evening couture, by request.

Eveningwear is offered as a private commission. The atelier draws from the same vocabulary as bridal — embroidery, hand-set crystal, structured silhouettes — translated into colour.

Argent · 2024 Evening — Argent (Silver)

The "Argent" gown — a study in light, in silver. One of several looks in the evening atelier; the full evening register is shown by appointment.

Each evening commission is dressed to occasion: gala, opera, première, or wedding ceremony of state. Fabric is sourced in Lyon, Como and Beirut; embellishment is executed by hand in the Lebanese tradition.

A full evening lookbook is shared in confidence at the atelier visit.

); } // ─── MAISON (Designer Story) ───────────────────────────────────────────────── function Maison() { return (
§04 — The Designer
Lamia Abi Nader
— Lamia Abi Nader
Founder & Couturière

A Beirut maison, since 2002.

Lamia Abi Nader founded her maison de couture in Beirut in 2002 and presented her first bridal collection there in 2006. The house has since shown internationally in Paris and Italy, and now keeps a second atelier in Dubai's Design District.

The practice is, deliberately, small. Each gown is fitted and finished in the atelier by a tight workroom — the way couture houses have always made bridal: privately, slowly, and to the body of one client.

2002Maison founded — Beirut.
2006First bridal collection presented in Beirut.
·Couture shows in Paris & Italy.
SS23Haute Couture, Dubai Fashion Week — Arab Fashion Council.
d3Dubai Design District atelier — by private appointment.
); } // ─── PRESS / RUNWAY ────────────────────────────────────────────────────────── const PRESS = [ { src: 'Dubai Fashion Week — Arab Fashion Council', title: 'Lamia Abi Nader — Haute Couture Spring/Summer 2023', meta: 'Profile · Runway', href: 'https://dubaifashionweek.ae/' }, { src: 'FashionNetwork', title: 'Spring-Summer 2023 — Dubai Haute Couture, full gallery.', meta: 'Gallery · Press', href: 'https://www.fashionnetwork.com/' }, { src: 'OrientPalms', title: 'Couture Spring/Summer 2023 — collection gallery.', meta: 'Gallery · Press', href: 'https://www.orientpalms.com/' }, ]; function Press() { return (
§05 — Runway & Press

Shown in Beirut, Paris,
and on the Dubai runway.

A selection of attributed press and runway records. For full press kit and high-resolution runway imagery, contact the atelier directly.

{PRESS.map((p, i) => (
{p.src}
"{p.title}"
{p.meta}
))}
); } // ─── CONTACT ───────────────────────────────────────────────────────────────── function Contact() { return (
§07 — Atelier I

Dubai — d3

Building 1B, Office 308B
3rd Floor, Dubai Design District (d3)
D3 Street, Za'abeel, Dubai, UAE
+971 54 353 3337 lamiaabinader@hotmail.com
By private appointment — hours on confirmation.
§07 — Atelier II

Beirut — Mkalles

Jisr El Basha, Mkalles
Beirut, Lebanon
+961 3 941 575 lamiaabinader@hotmail.com
By private appointment.
); } // ─── FOOTER ────────────────────────────────────────────────────────────────── function Footer() { return ( ); } // Expose to global scope so app.jsx can use them Object.assign(window, { Reveal, Nav, Hero, PedigreeStrip, Intro, Bridal, Evening, Maison, Press, Contact, Footer, HERO_SHOTS, LOOKS });