/* Maison Silya — The Signature Collection. A catalogue raisonné, entered like a private viewing room: the house is named in the dark, then the numbered editions are shown in full daylight — large, quiet, uncrowded. No filters, no prices. The pieces are simply presented. */ function MsCollCard({ p, n, onPiece }) { const lang = window.__MS_LANG || 'en'; const [h, setH] = React.useState(false); const hov = h && MS_CAN_HOVER; return (
onPiece(msPiece(p.name, p))} onMouseEnter={() => setH(true)} onMouseLeave={() => setH(false)} style={{ gridColumn: p.span, marginTop: p.off || 0, cursor: 'pointer' }} className="ms-coll-item">
{/* a soft light crosses the surface as the eye rests on it */}
{lang === 'fr' ? 'Découvrir' : 'Discover'}
{t('home.plate')} N° {n} {p.prov}{p.edition ? ' · ' + p.edition : ''}

{p.name}

{lang === 'fr' ? 'Sur mesure' : 'Made to order'}
{p.line &&

{p.line}

}
); } function CollectionScreen({ onPiece, onNav }) { const lang = window.__MS_LANG || 'en'; const L = (fr, en) => (lang === 'fr' ? fr : en); const ed = (n) => (lang === 'fr' ? 'Édition de ' : 'Edition of ') + n; const rom = ['Ⅰ', 'Ⅱ', 'Ⅲ', 'Ⅳ', 'Ⅴ', 'Ⅵ', 'Ⅶ']; const pieces = [ { name: 'Monolith I', prov: t('p.prov.nepal'), detail: '300 × 400 cm', edition: ed(8), tone: 'stone-300', image: 'media/monolith-i.jpg', line: t('p.monolith.line'), span: '1 / 7', off: 0 }, { name: 'Sediment II', prov: t('p.prov.marrakech'), detail: '250 × 350 cm', tone: 'stone-200', image: 'media/sediment-ii.jpg', line: t('p.sediment.line'), span: '8 / 13', off: 'clamp(5rem,16vh,12rem)' }, { name: 'Travertine', prov: t('p.prov.nepal'), detail: '270 × 360 cm', edition: ed(12), tone: 'travertine', image: 'media/travertine.jpg', line: L('Tirée des carrières de travertin — cavités, strates, un relief d’architecture.', 'Drawn from travertine quarries — cavities, strata, an architectural relief.'), span: '2 / 7', off: 0 }, { name: 'Plaster Field', prov: t('p.prov.marrakech'), detail: '240 × 300 cm', tone: 'champagne', image: 'media/plaster-field.jpg', line: L('Un champ de plâtre écru — la matité totale, pour seul sujet.', 'A field of bare plaster — total matteness, as the only subject.'), span: '8 / 13', off: 'clamp(4rem,11vh,9rem)' }, { name: 'Terra', prov: t('p.prov.nepal'), edition: ed(10), tone: 'stone-400', image: 'media/terra.jpg', materials: L('100% laine de Nouvelle-Zélande', '100% New Zealand wool'), pile: L('14 mm, velours bouclé dense', '14 mm, dense looped pile'), knots: '150 / in²', line: L('La terre cuite au crépuscule — une chaleur qui monte du sol.', 'Terracotta at dusk — a warmth that rises from the floor.'), desc: L('Un champ de laine couleur terre brûlée dont le relief dense retient la lumière basse comme une braise.', 'A field of burnt-earth wool whose dense relief holds low light like a banked ember.'), details: ['media/terra-d1.jpg', 'media/terra-d2.jpg', 'media/terra-d3.jpg'], span: '1 / 7', off: 0 }, { name: 'Émeraude', prov: t('p.prov.nepal'), edition: ed(6), tone: 'stone-700', image: 'media/emeraude.jpg', materials: L('80% laine · 20% soie · rehauts d’or', '80% wool · 20% silk · gold highlights'), pile: L('12 mm, relief sculpté · fil d’or', '12 mm, sculpted relief · gold thread'), knots: '200 / in²', line: L('Le vert profond, traversé d’un filet d’or.', 'Deep green, crossed by a thread of gold.'), desc: L('Un vert forêt sourd, parcouru de veines dorées qui dessinent une géométrie discrète — la nuit d’un salon, éclairée d’or.', 'A muted forest green, run through with gilded veins tracing a quiet geometry — a salon at night, lit with gold.'), details: ['media/emeraude-d1.jpg', 'media/emeraude-d2.jpg', 'media/emeraude-d3.jpg'], span: '8 / 13', off: 'clamp(5rem,16vh,12rem)' }, { name: 'Bleu Profond', prov: t('p.prov.nepal'), edition: ed(8), tone: 'stone-800', image: 'media/bleu-profond.jpg', materials: L('80% laine · 20% soie · rehauts d’or', '80% wool · 20% silk · gold highlights'), pile: L('12 mm, relief sculpté · fil d’or', '12 mm, sculpted relief · gold thread'), knots: '200 / in²', line: L('Le bleu de minuit, veiné d’or.', 'Midnight blue, veined with gold.'), desc: L('Un bleu nuit dense où l’or trace de fines rivières — une présence grave et feutrée, faite pour les pièces sombres.', 'A dense midnight blue where gold traces fine rivers — a grave, hushed presence made for dark rooms.'), details: ['media/bleu-profond-d1.jpg', 'media/bleu-profond-d2.jpg', 'media/bleu-profond-d3.jpg'], span: '3 / 11', off: 0 }, ]; return (
{/* ── I · Overture — the house, named in the dark ── */}
{t('sg.kicker')}

{t('sg.title')}

{L('Des éditions numérotées, conçues comme des surfaces d’architecture — nouées à la main, sur de longs mois, et réalisées sur commande à vos dimensions.', 'Numbered editions, conceived as surfaces of architecture — knotted by hand, over many months, and made to order to your dimensions.')}

{L('Sept pièces · Paris, sur rendez-vous', 'Seven pieces · Paris, by appointment')}
{L('La collection', 'The collection')}
{/* ── II · The catalogue, in full daylight ── */}
{pieces.map((p, i) => ( ))}
{/* ── III · The invitation — back into the dark ── */}
{L('Sur rendez-vous', 'By appointment')}

{L('Chaque pièce commence par une conversation.', 'Every piece begins with a conversation.')}

{L('La collection se découvre sur rendez-vous — à Paris, et partout où un projet l’appelle.', 'The collection is shown by appointment — in Paris, and wherever a project calls for it.')}

onNav && onNav('contact')}>{t('home.cta_view2')}
); } Object.assign(window, { CollectionScreen });