// landing.jsx — StarPath landing page const landingStyles = { hero: { position: 'relative', minHeight: '92vh', padding: '40px 56px 80px', overflow: 'hidden', display: 'grid', gridTemplateColumns: '1.15fr 1fr', gap: '40px', alignItems: 'center', }, heroBg: { position: 'absolute', right: '-180px', top: '50%', transform: 'translateY(-50%)', pointerEvents: 'none', opacity: 0.6, }, }; const HeroBackdrop = () => (
{/* Radial vignette */}
{/* Large background chart on the right */}
); const Hero = () => (
{/* Left column — copy */}

Узнай себя
за две минуты —
в пятидесяти
страницах.

Натальная карта как инструмент самопознания. То, что психолог собирает за полгода терапии — за цену одного сеанса. Без шарлатанства и душных опросов.

{/* Trust strip */}
{[ { num: '2', unit: 'мин', label: 'от заказа до PDF' }, { num: '50', unit: 'стр.', label: 'в одном разборе' }, { num: '7', unit: 'дней', label: 'гарантия возврата' }, ].map((s, i) => (
{s.num} {s.unit}
{s.label}
))}
{/* Right column — natal chart */}
{/* Floating annotation */}
Текущий момент
Луна в Скорпионе
18.05.2026 · 14:32 MSK
Транзит
Юпитер ↔ Сатурн
оппозиция, 4° орб
); // ——— Marquee strip with running zodiac glyphs ——— const ZodiacMarquee = () => (
{[...ZODIAC_ORDER, ...ZODIAC_ORDER, ...ZODIAC_ORDER].map((z, i) => (
{{ aries: 'Овен', taurus: 'Телец', gemini: 'Близнецы', cancer: 'Рак', leo: 'Лев', virgo: 'Дева', libra: 'Весы', scorpio: 'Скорпион', sagittarius: 'Стрелец', capricorn: 'Козерог', aquarius: 'Водолей', pisces: 'Рыбы' }[z]}
))}
); // ——— Products ——— const Products = () => { const items = [ { title: catalogTitle('natal', 'Натальная карта'), tag: 'бестселлер', planets: ['sun', 'moon', 'mercury'], price: rubFmt(catalogPrice('natal', 1990)), desc: 'Глубокий разбор личности: Солнце, Луна, асцендент. Любовь, карьера, предназначение, ритуалы.', pages: '50 страниц', accent: 'gold', }, { title: catalogTitle('year_ahead', 'Прогноз на год'), tag: 'прогноз', planets: ['jupiter', 'saturn'], price: rubFmt(catalogPrice('year_ahead', 2990)), desc: 'Транзиты Юпитера, Сатурна, Урана. Окна возможностей помесячно.', pages: '38 страниц + календарь', accent: 'celest', }, { title: catalogTitle('compatibility', 'Совместимость'), tag: 'двое', planets: ['venus', 'mars'], price: rubFmt(catalogPrice('compatibility', 2490)), desc: 'Синастрия двух карт: страсть, коммуникация, конфликты, потенциал отношений.', pages: '42 страницы', accent: 'rose', }, { title: 'Индивидуальный гороскоп', tag: 'на каждый день', planets: ['moon', 'mercury'], price: 'от ' + rubFmt(catalogPrice('forecast_week', 199)), desc: 'Прогноз именно для тебя: транзиты на твою натальную карту. Неделя, месяц или год — выбери период.', pages: 'неделя · месяц · год', accent: 'sage', }, ]; return (
Каталог · 03

Выбери, что важно сейчас

Четыре продукта под четыре разных вопроса. Все — на основе твоей натальной карты.
{items.map((p, i) => (
{/* corner ornament */}
{p.tag} 0{i + 1}
{p.planets.map((pl, j) => (
))}

{p.title}

{p.desc}

{p.pages} {p.price}
))}
); }; // ——— Sample chapter preview ——— const SampleChapter = () => (
Что внутри PDF · 04

50 страниц о тебе
структурированно.

Не магия и не «звёзды велят». Структурированный взгляд через древнюю символическую систему — то, что психологи называют self-discovery.

{[ { ic: , title: 'Ядро личности', sub: 'Солнце, Луна, асцендент' }, { ic: , title: 'Любовь и отношения', sub: 'Венера, Марс, 7 дом' }, { ic: , title: 'Карьера и реализация', sub: 'МС, Сатурн, 10 дом' }, { ic: , title: 'Предназначение', sub: 'Лунные узлы, 12 дом' }, { ic: , title: 'Здоровье и энергия', sub: 'Марс, 6 дом, Хирон' }, { ic: , title: 'Ритуалы и практики', sub: 'Журнал, аффирмации' }, ].map((c, i) => (
{c.ic}
{c.title}
{c.sub}
))}
{/* PDF Preview mockup */}
STAR PATH
стр. 07 / 50
Глава 1 · Ядро личности

Солнце в Раке,
Луна в Скорпионе

«В тебе с рождения живёт парадокс: мягкость снаружи (Рак), но глубокий, иногда тёмный внутренний мир (Скорпион). Это даёт тебе редкий дар — видеть людей насквозь, не теряя при этом доброты...»

Пример из реального разбора · анонимизировано
{/* page peek behind */}
); // ——— How it works ——— const HowItWorks = () => (
Как это работает · 05

Три шага

Без долгих опросников и шаманизма.
{[ { n: '01', title: 'Введи данные', desc: 'Имя, дата, время и место рождения. Время точно не знаешь — оставь пустым.', ic: }, { n: '02', title: 'Алгоритм считает карту', desc: 'Swiss Ephemeris рассчитывает планетарные позиции, AI пишет интерпретацию по методике школы Левин/Подводный.', ic: }, { n: '03', title: 'PDF в кабинете', desc: 'Готовый разбор приходит на email и сохраняется в личном кабинете навсегда.', ic: }, ].map((s, i) => (
{s.n}
{s.ic}

{s.title}

{s.desc}

))}
); // ——— Testimonials ——— const Testimonials = () => (
Отзывы · 06

Что говорят

{[ { txt: 'После двух лет терапии — наконец-то почувствовала, что меня кто-то по-настоящему понял. Прочитала и расплакалась. В хорошем смысле.', name: 'Анна', role: 'дизайнер, 28', sign: 'cancer' }, { txt: 'Купила натальную карту и совместимость с парнем. С первой узнала про свой темный месяц, со второй — почему мы ссоримся по одному и тому же.', name: 'Маша', role: 'маркетолог, 31', sign: 'taurus' }, { txt: 'Скептически отнеслась. Описание характера — буквально я. Раздел "карьера" дал ответ на вопрос, который я мусолила год.', name: 'Катя', role: 'SMM, 26', sign: 'virgo' }, ].map((t, i) => (

«{t.txt}»

{t.name}
{t.role}
))}
); // ——— FAQ ——— const FAQItem = ({ q, a }) => { const [open, setOpen] = React.useState(false); return (
{open && (
{a}
)}
); }; const FAQ = () => (
Вопросы · 07

Что обычно спрашивают

); // ——— CTA ——— const FinalCTA = () => (

Готова узнать о
себе всё?

50 страниц о тебе — твоя личная инструкция. Сохранится в кабинете навсегда.

); // ——— Footer ——— const Footer = () => ( ); // ——— Top navbar (logo + section anchors + auth) ——— const LandingNav = () => { const [user, setUser] = React.useState(null); React.useEffect(() => { fetch('/api/auth/me', { credentials: 'same-origin' }) .then(r => r.ok ? r.json() : null) .then(d => { if (d) setUser(d.user || d); }) .catch(() => {}); }, []); const navLinkStyle = { fontSize: '13px', color: 'var(--ink-secondary)', textDecoration: 'none', padding: '6px 4px', transition: 'color 160ms', }; return (
Star Path
{user ? ( <> Кабинет Новый разбор ) : ( <> Войти Создать аккаунт )}
); }; const Landing = () => (
); // ——— 404 — страница не найдена (общий навбар + подвал + стили лендинга) ——— const NotFound = () => (
{/* Faint orbital backdrop — тот же мотив, что и на лендинге */}
Ошибка 404

404

Эта страница затерялась среди звёзд

Возможно, ссылка устарела или в адресе опечатка. Вернитесь на главную или выберите разбор из каталога.

Каталог разборов
); Object.assign(window, { Landing, NotFound });