Landing for the first interfaith retreat in Tatarstan: a 12-section funnel, mentors of four traditions, day-by-day programme, enquiry form with mailto fallback, Telegram shortcut and Robokassa payment in PHP. Vanilla HTML/CSS/JS on Reg.ru hosting.
"Unity in Diversity" is an eight-day retreat in Tatarstan (16–23 August 2026) where an Orthodox priest, an imam, a Vaishnava mentor and a musician lead practices for people of different traditions. The client is the "Breathe Life Anew" project (Alexey Tonkikh).
The format is new and sensitive: the site had to explain that this is not about arguing over religion, show the comfort level (an eco-hotel on the Kama Sea + AZIMUT in Kazan), and lead the visitor to an enquiry.
"The audience is 30–55, arriving on a phone from a Telegram channel link. So: mobile speed, trust from the first screen, minimum steps to contact."

The page runs as a sequence: the "Is this about you?" hook with four self-identifying statements → atmosphere video → mentors → what the week gives → day-by-day programme → the place → accommodation and food → kids' programme → price → FAQ → contacts. Twelve sections, each ending with "Book" or "Calculate the price".

A warm, calm palette: cream, sand, deep blue, olive gold. Cormorant Garamond for headings, Manrope for text. The symbols of four traditions — cross, crescent, om, tilaka — as a visual leitmotif, none dominating.



Mentor modals, an FAQ accordion, a room-gallery lightbox with navigation, scroll reveals, a sticky header, a mobile menu — all in plain JS, ~10 KB, zero dependencies.
Performance: lazy-loading of every image and background via IntersectionObserver (data-src / data-bg), a fallback for unavailable images, video with a poster and deferred loading.
function loadImg(el) {
if (el.dataset.src) { el.src = el.dataset.src; el.removeAttribute('data-src'); }
if (el.dataset.bg) { el.style.backgroundImage = 'url(' + el.dataset.bg + ')'; el.removeAttribute('data-bg'); }
}
var io = new IntersectionObserver(function (entries, obs) {
entries.forEach(function (e) { if (e.isIntersecting) { loadImg(e.target); obs.unobserve(e.target); } });
}, { rootMargin: '200px' });
document.querySelectorAll('[data-src],[data-bg]').forEach(function (el) { io.observe(el); });

Three selling paths on one page:
mailto fallback with the message body already assembled.MD5(MerchantLogin:OutSum:InvId:Pass1) signature, supports test and live modes, with success and failure pages and a public offer.
// pay.php — signature and payment link
$signature = md5(ROBOKASSA_LOGIN . ":" . $sum . ":" . $inv_id . ":" . ROBOKASSA_PASS1);
$payUrl = "https://auth.robokassa.ru/Merchant/Index.aspx?"
. "MerchantLogin=" . urlencode(ROBOKASSA_LOGIN)
. "&OutSum=" . urlencode($sum) . "&InvId=" . urlencode($inv_id)
. "&Description=" . urlencode($desc)
. "&SignatureValue=" . $signature
. (ROBOKASSA_TEST ? '&IsTest=1' : '');

Static files + PHP on Reg.ru shared hosting, an FTP auto-deploy script; a Vercel preview for client sign-off. The whole site is one index.html (44 KB), one CSS and one JS.

The client got a standalone site with no CMS or subscriptions, edited in one HTML file and deployed with one command. Every selling path — enquiry, Telegram, online payment — is closed within a single page.