// Languages typographic wall + Parents + FAQ + Closer function Languages({ t }) { const [playingIdx, setPlayingIdx] = useState(-1); const handlePlay = (i, phrase, lang) => { setPlayingIdx(i); // Try browser TTS for real playback try { if (window.speechSynthesis) { window.speechSynthesis.cancel(); const u = new SpeechSynthesisUtterance(phrase); const voiceMap = { Hindi: 'hi-IN', English: 'en-IN', Bengali: 'bn-IN', Telugu: 'te-IN', Tamil: 'ta-IN', Kannada: 'kn-IN', Malayalam: 'ml-IN', Marathi: 'mr-IN', Gujarati: 'gu-IN', Odia: 'or-IN', Punjabi: 'pa-IN' }; u.lang = voiceMap[lang] || 'en-IN'; u.rate = 0.9; u.onend = () => setPlayingIdx(-1); window.speechSynthesis.speak(u); } } catch(e) {} setTimeout(() => setPlayingIdx(p => p === i ? -1 : p), 3500); }; return ( § 04 — {t.langs.label} 11 SCRIPTS · ONE IDEA {t.langs.title} {t.langs.sub} {t.langs.list.map((l, i) => ( handlePlay(i, l.phrase, l.name)} > {l.name} {playingIdx === i ? '♪ …' : '►'} {l.phrase} {l.region} ))} * {t.langs.note} ); } function Parents({ t }) { return ( § 05 — {t.parents.label} FOUR COMMITMENTS {t.parents.items.map((item, i) => ( C/0{i + 1} {item.t} {item.d} ))} ); } function FAQ({ t }) { const [open, setOpen] = useState(0); return ( § 06 — {t.faq.label} TAP TO EXPAND {t.faq.label} {t.faq.items.map((item, i) => ( setOpen(open === i ? -1 : i)}> {item.q} + {item.a} ))} ); } function Closer({ t }) { return ( {t.closer.title} {t.closer.cta} → {t.closer.tag} {t.closer.tag_trans} {t.closer.contact_label} {t.closer.contact} {t.closer.made} {t.closer.addr} ); } window.Languages = Languages; window.Parents = Parents; window.FAQComp = FAQ; window.Closer = Closer;