Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Digital Solutions Ecosystem</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> | |
<script src="https://cdn.jsdelivr.net/npm/gsap@3.11.4/dist/gsap.min.js"></script> | |
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&family=Inter:wght@300;400;600;700&display=swap" rel="stylesheet"> | |
<style> | |
body { | |
font-family: 'Inter', sans-serif; | |
background-color: #0A0A0A; | |
color: white; | |
margin: 0; | |
overflow-x: hidden; | |
} | |
.code-font { | |
font-family: 'Roboto Mono', monospace; | |
} | |
.neon-teal { | |
color: #00FEFE; | |
text-shadow: 0 0 8px rgba(0, 254, 254, 0.6); | |
} | |
.neon-pink { | |
color: #FF00FF; | |
text-shadow: 0 0 8px rgba(255, 0, 255, 0.6); | |
} | |
.border-neon-teal { | |
border-color: #00FEFE; | |
box-shadow: 0 0 12px rgba(0, 254, 254, 0.4); | |
} | |
.border-neon-pink { | |
border-color: #FF00FF; | |
box-shadow: 0 0 12px rgba(255, 0, 255, 0.4); | |
} | |
.bg-dark { | |
background-color: #0A0A0A; | |
} | |
.bg-darker { | |
background-color: #050505; | |
} | |
#canvas-container { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: -1; | |
opacity: 0; | |
transition: opacity 2s; | |
} | |
.letter-animation { | |
display: inline-block; | |
opacity: 0; | |
transform: translateY(20px); | |
} | |
.service-planet { | |
transition: all 0.5s ease; | |
filter: drop-shadow(0 0 5px transparent); | |
} | |
.service-planet:hover { | |
transform: scale(1.1); | |
filter: drop-shadow(0 0 15px rgba(0, 254, 254, 0.7)); | |
} | |
.progress-bar { | |
height: 4px; | |
background: linear-gradient(90deg, #00FEFE, #FF00FF); | |
width: 0%; | |
transition: width 1s; | |
} | |
.typing-cursor { | |
display: inline-block; | |
width: 8px; | |
height: 16px; | |
background: #00FEFE; | |
animation: blink 1s infinite; | |
} | |
@keyframes blink { | |
0%, 100% { opacity: 1; } | |
50% { opacity: 0; } | |
} | |
.floating { | |
animation: floating 3s ease-in-out infinite; | |
} | |
@keyframes floating { | |
0%, 100% { transform: translateY(0); } | |
50% { transform: translateY(-15px); } | |
} | |
</style> | |
</head> | |
<body class="bg-dark text-white"> | |
<!-- 3D Canvas Container --> | |
<div id="canvas-container"></div> | |
<!-- Welcome Overlay (disappears after loading) --> | |
<div id="welcome-overlay" class="fixed inset-0 bg-black flex items-center justify-center z-50 transition-opacity duration-1000"> | |
<div class="text-center"> | |
<h1 class="text-5xl font-bold mb-6 neon-teal">DIGITAL SOLUTIONS ECOSYSTEM</h1> | |
<div class="animate-pulse">Loading interactive 3D environment...</div> | |
</div> | |
</div> | |
<!-- Hero Section --> | |
<section class="min-h-screen flex flex-col justify-center px-6 md:px-12 lg:px-24 relative overflow-hidden"> | |
<div id="hero-content" class="opacity-0 transform -translate-y-10 transition-all duration-1000"> | |
<h1 id="hero-title" class="text-4xl md:text-6xl lg:text-7xl font-bold mb-6 max-w-4xl"> | |
<!-- Letters will be injected by JS --> | |
</h1> | |
<p class="text-xl md:text-2xl text-gray-300 mb-12 neon-pink">«От чат-бота до Web3 — реализуем под ключ за 14 дней»</p> | |
<button id="cta-button" class="px-8 py-4 rounded-lg bg-gradient-to-r from-teal-400 to-purple-500 hover:from-teal-500 hover:to-purple-600 text-lg font-bold transition-all transform hover:scale-105 hover:shadow-lg hover:shadow-teal-500/30 border-2 border-white/10 animate-pulse"> | |
Начать проект | |
</button> | |
</div> | |
<div class="absolute bottom-10 left-0 right-0 flex justify-center"> | |
<div class="animate-bounce w-8 h-8 border-b-2 border-white rounded-full"></div> | |
</div> | |
<!-- 3D Objects Stats --> | |
<div class="hidden md:flex space-x-8 absolute bottom-10 right-10"> | |
<div class="bg-black/50 backdrop-blur-sm p-4 rounded-lg border-neon-teal"> | |
<p class="text-xs text-gray-400">Телеграм боты</p> | |
<p class="text-xl neon-teal">+300% к конверсии</p> | |
</div> | |
<div class="bg-black/50 backdrop-blur-sm p-4 rounded-lg border-neon-pink"> | |
<p class="text-xs text-gray-400">Mini-Apps</p> | |
<p class="text-xl neon-pink">+45% удержание</p> | |
</div> | |
</div> | |
</section> | |
<!-- Services 3D Gallery --> | |
<section class="min-h-screen py-20 px-6 md:px-12 lg:px-24"> | |
<h2 class="text-3xl md:text-5xl font-bold mb-20 text-center neon-teal">Наши решения</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8"> | |
<!-- Chat Bots --> | |
<div class="service-planet group relative"> | |
<div class="h-64 w-64 mx-auto rounded-full bg-gradient-to-br from-teal-500 to-teal-900 flex items-center justify-center border-2 border-teal-400 hover:border-teal-200 transition-all"> | |
<div class="text-center p-6 transform group-hover:scale-110 transition-all"> | |
<h3 class="text-2xl font-bold mb-2">Чат-боты</h3> | |
<p class="text-sm opacity-70 group-hover:opacity-100">Автоматизация с ИИ</p> | |
</div> | |
</div> | |
<button class="absolute top-0 right-0 -mt-3 -mr-3 bg-teal-500 w-8 h-8 rounded-full flex items-center justify-center text-black font-bold hover:bg-teal-300 transform hover:scale-110 transition-all">+</button> | |
</div> | |
<!-- Mini-Apps --> | |
<div class="service-planet group relative"> | |
<div class="h-64 w-64 mx-auto rounded-full bg-gradient-to-br from-purple-500 to-purple-900 flex items-center justify-center border-2 border-purple-400 hover:border-purple-200 transition-all"> | |
<div class="text-center p-6 transform group-hover:scale-110 transition-all"> | |
<h3 class="text-2xl font-bold mb-2">Mini-Apps</h3> | |
<p class="text-sm opacity-70 group-hover:opacity-100">Игровые экономики</p> | |
</div> | |
</div> | |
<button class="absolute top-0 right-0 -mt-3 -mr-3 bg-purple-500 w-8 h-8 rounded-full flex items-center justify-center text-black font-bold hover:bg-purple-300 transform hover:scale-110 transition-all">+</button> | |
</div> | |
<!-- Web3 --> | |
<div class="service-planet group relative"> | |
<div class="h-64 w-64 mx-auto rounded-full bg-gradient-to-br from-blue-500 to-blue-900 flex items-center justify-center border-2 border-blue-400 hover:border-blue-200 transition-all"> | |
<div class="text-center p-6 transform group-hover:scale-110 transition-all"> | |
<h3 class="text-2xl font-bold mb-2">Web3</h3> | |
<p class="text-sm opacity-70 group-hover:opacity-100">Блокчейн интеграции</p> | |
</div> | |
</div> | |
<button class="absolute top-0 right-0 -mt-3 -mr-3 bg-blue-500 w-8 h-8 rounded-full flex items-center justify-center text-black font-bold hover:bg-blue-300 transform hover:scale-110 transition-all">+</button> | |
</div> | |
<!-- AI --> | |
<div class="service-planet group relative"> | |
<div class="h-64 w-64 mx-auto rounded-full bg-gradient-to-br from-pink-500 to-pink-900 flex items-center justify-center border-2 border-pink-400 hover:border-pink-200 transition-all"> | |
<div class="text-center p-6 transform group-hover:scale-110 transition-all"> | |
<h3 class="text-2xl font-bold mb-2">AI</h3> | |
<p class="text-sm opacity-70 group-hover:opacity-100">Генеративный интеллект</p> | |
</div> | |
</div> | |
<button class="absolute top-0 right-0 -mt-3 -mr-3 bg-pink-500 w-8 h-8 rounded-full flex items-center justify-center text-black font-bold hover:bg-pink-300 transform hover:scale-110 transition-all">+</button> | |
</div> | |
</div> | |
<div id="service-details" class="mt-20 bg-black/50 backdrop-blur-sm p-8 rounded-xl border-neon-teal hidden"> | |
<div class="flex justify-between items-start"> | |
<div> | |
<h3 id="detail-title" class="text-2xl font-bold mb-2 neon-pink">Чат-боты</h3> | |
<p id="detail-description" class="mb-4">Гибкие решения для автоматизации бизнес-процессов с помощью Telegram, WhatsApp и других мессенджеров.</p> | |
<ul id="detail-features" class="list-disc pl-5 space-y-2 text-sm"> | |
<li>Интеграция с CRM и платежными системами</li> | |
<li>AI-ассистенты с NLP</li> | |
<li>Мультиязычная поддержка</li> | |
</ul> | |
</div> | |
<button id="close-details" class="text-gray-400 hover:text-white">×</button> | |
</div> | |
<div class="mt-6"> | |
<div class="mb-4"> | |
<p class="text-sm text-gray-400">Пример из практики:</p> | |
<p id="detail-case" class="font-bold">Бот для @crypto_storage: +$50K/month</p> | |
</div> | |
<button class="px-6 py-2 bg-teal-500 rounded-lg hover:bg-teal-600 font-medium">Заказать подобное решение</button> | |
</div> | |
</div> | |
</section> | |
<!-- AI Guide --> | |
<section class="min-h-screen py-20 px-6 md:px-12 lg:px-24 relative" id="ai-guide-section"> | |
<div id="ai-guide" class="bg-black/50 backdrop-blur-sm p-8 rounded-xl border-neon-pink max-w-3xl mx-auto hidden transform transition-all duration-500 opacity-0 translate-y-10"> | |
<div class="flex items-start space-x-4"> | |
<div class="w-16 h-16 rounded-full bg-gradient-to-br from-pink-500 to-purple-600 flex items-center justify-center text-xl font-bold">AI</div> | |
<div class="flex-1"> | |
<div id="ai-message" class="mb-4"> | |
<p class="typing-text">Привет! Я помогу подобрать решение под ваш бюджет. Ответьте на 3 вопроса и получите примерную стоимость.</p> | |
<span class="typing-cursor"></span> | |
</div> | |
<div id="ai-questions" class="space-y-4 hidden"> | |
<div> | |
<p class="text-sm text-gray-400 mb-1">1/3 Какой тип решения вам нужен?</p> | |
<div class="flex flex-wrap gap-2"> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">Чат-бот</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">Mini-App</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">Web3 интеграция</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">AI решение</button> | |
</div> | |
</div> | |
</div> | |
<div id="ai-result" class="hidden"> | |
<p class="font-bold neon-teal mb-2">Примерная стоимость: ~$5,000 - $15,000</p> | |
<p class="text-sm mb-4">На основе выбранных параметров и нашего опыта</p> | |
<button class="px-6 py-2 bg-gradient-to-r from-teal-400 to-purple-500 rounded-lg hover:from-teal-500 hover:to-purple-600 font-medium"> | |
Обсудить проект детально | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div id="guide-trigger" class="fixed bottom-8 right-8 w-16 h-16 rounded-full bg-gradient-to-br from-pink-500 to-purple-600 flex items-center justify-center text-xl font-bold cursor-pointer transform hover:scale-110 transition-all shadow-lg shadow-pink-500/30"> | |
AI | |
</div> | |
</section> | |
<!-- Dynamic Form --> | |
<section class="py-20 px-6 md:px-12 lg:px-24 bg-darker"> | |
<div class="max-w-3xl mx-auto"> | |
<h2 class="text-3xl md:text-5xl font-bold mb-12 text-center neon-teal">Начните свой проект</h2> | |
<form id="project-form" class="space-y-6"> | |
<div id="form-steps" class="flex justify-between mb-8"> | |
<div class="step flex-1 flex flex-col items-center"> | |
<div class="w-10 h-10 rounded-full border-2 border-teal-500 bg-black flex items-center justify-center mb-2">1</div> | |
<p class="text-xs text-center">Информация</p> | |
</div> | |
<div class="h-1 bg-gray-800 flex-1 mx-2 mt-5"></div> | |
<div class="step flex-1 flex flex-col items-center"> | |
<div class="w-10 h-10 rounded-full border-2 border-gray-600 bg-black flex items-center justify-center mb-2">2</div> | |
<p class="text-xs text-center text-gray-500">Детали</p> | |
</div> | |
<div class="h-1 bg-gray-800 flex-1 mx-2 mt-5"></div> | |
<div class="step flex-1 flex flex-col items-center"> | |
<div class="w-10 h-10 rounded-full border-2 border-gray-600 bg-black flex items-center justify-center mb-2">3</div> | |
<p class="text-xs text-center text-gray-500">Подтверждение</p> | |
</div> | |
</div> | |
<div id="step-1" class="space-y-6"> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-teal">Ваше имя</label> | |
<input type="text" class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-teal-500" required> | |
</div> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-pink">Email или Telegram</label> | |
<input type="text" class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-pink-500" required> | |
</div> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-teal">Тип проекта</label> | |
<select class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-teal-500"> | |
<option>Чат-бот</option> | |
<option>Mini-App</option> | |
<option>Web3 решение</option> | |
<option>AI интеграция</option> | |
<option>Комплексное решение</option> | |
</select> | |
</div> | |
<button type="button" onclick="nextStep(2)" class="w-full bg-gradient-to-r from-teal-500 to-purple-600 py-3 rounded-lg font-bold hover:from-teal-600 hover:to-purple-700 transition"> | |
Продолжить | |
</button> | |
</div> | |
<div id="step-2" class="space-y-6 hidden" data-depends="step-1"> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-pink">Коротко опишите ваш проект</label> | |
<textarea class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-pink-500 h-32"></textarea> | |
</div> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-teal">Бюджет проекта</label> | |
<select class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-teal-500"> | |
<option>Менее $5,000</option> | |
<option>$5,000 - $10,000</option> | |
<option>$10,000 - $25,000</option> | |
<option>$25,000+</option> | |
</select> | |
</div> | |
<div> | |
<label class="block text-sm font-medium mb-1 neon-pink">Желаемые сроки</label> | |
<input type="text" class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-pink-500" placeholder="Пример: 2-3 недели"> | |
</div> | |
<div class="flex space-x-4"> | |
<button type="button" onclick="prevStep(1)" class="flex-1 bg-gray-800 py-3 rounded-lg font-bold hover:bg-gray-700 transition"> | |
Назад | |
</button> | |
<button type="button" onclick="nextStep(3)" class="flex-1 bg-gradient-to-r from-teal-500 to-purple-600 py-3 rounded-lg font-bold hover:from-teal-600 hover:to-purple-700 transition"> | |
Продолжить | |
</button> | |
</div> | |
</div> | |
<div id="step-3" class="space-y-6 hidden" data-depends="step-2"> | |
<div class="bg-black/30 p-6 rounded-xl border border-gray-800"> | |
<h4 class="font-bold mb-3 neon-teal">Подтвердите информацию:</h4> | |
<p id="review-name" class="mb-1"><span class="text-gray-500">Имя:</span> <span class="font-medium">-</span></p> | |
<p id="review-contact" class="mb-1"><span class="text-gray-500">Контакт:</span> <span class="font-medium">-</span></p> | |
<p id="review-type" class="mb-1"><span class="text-gray-500">Тип:</span> <span class="font-medium">-</span></p> | |
<p id="review-budget" class="mb-1"><span class="text-gray-500">Бюджет:</span> <span class="font-medium">-</span></p> | |
</div> | |
<div class="bg-black/30 p-6 rounded-xl border border-gray-800"> | |
<p class="font-bold mb-3 neon-pink">Дополнительные услуги:</p> | |
<div class="space-y-3"> | |
<label class="flex items-center space-x-3"> | |
<input type="checkbox" class="form-checkbox h-5 w-5 text-teal-500 rounded"> | |
<span>Маркетинговая стратегия (+$2,000)</span> | |
</label> | |
<label class="flex items-center space-x-3"> | |
<input type="checkbox" class="form-checkbox h-5 w-5 text-teal-500 rounded"> | |
<span>Долгосрочная поддержка (+$500/мес)</span> | |
</label> | |
<label class="flex items-center space-x-3"> | |
<input type="checkbox" class="form-checkbox h-5 w-5 text-teal-500 rounded"> | |
<span>Персонализированный NFT (+$1,000)</span> | |
</label> | |
</div> | |
</div> | |
<div> | |
<textarea class="w-full bg-gray-900 border border-gray-800 rounded-lg px-4 py-3 focus:outline-none focus:border-teal-500 h-16" placeholder="Дополнительные комментарии..."></textarea> | |
</div> | |
<div class="flex space-x-4"> | |
<button type="button" onclick="prevStep(2)" class="flex-1 bg-gray-800 py-3 rounded-lg font-bold hover:bg-gray-700 transition"> | |
Назад | |
</button> | |
<button type="submit" class="flex-1 bg-gradient-to-r from-teal-500 to-purple-600 py-3 rounded-lg font-bold hover:from-teal-600 hover:to-purple-700 transition"> | |
Отправить заявку | |
</button> | |
</div> | |
</div> | |
</form> | |
</div> | |
</section> | |
<!-- Cases Section --> | |
<section class="py-20 px-6 md:px-12 lg:px-24"> | |
<h2 class="text-3xl md:text-5xl font-bold mb-20 text-center neon-pink">Наши кейсы</h2> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | |
<!-- Case 1 --> | |
<div class="bg-black/50 backdrop-blur-sm rounded-xl border-neon-teal overflow-hidden transition-transform hover:scale-105"> | |
<div class="h-48 bg-gradient-to-br from-teal-500 to-teal-900 flex items-center justify-center"> | |
<div class="text-center p-4"> | |
<h3 class="text-xl font-bold mb-2">Crypto Storage Bot</h3> | |
<p class="text-sm opacity-80">Telegram бот для криптосервиса</p> | |
</div> | |
</div> | |
<div class="p-6"> | |
<div class="flex justify-between items-center mb-3"> | |
<p class="text-xs text-gray-400">Результат:</p> | |
<p class="font-bold neon-teal">+$50K/мес</p> | |
</div> | |
<p class="text-sm mb-4">Автоматизированный сервис хранения криптовалют с опциями стекинга и защищёнными транзакциями.</p> | |
<button class="w-full px-4 py-2 bg-teal-500/10 border border-teal-500 rounded-lg hover:bg-teal-500/20 text-sm"> | |
Смотреть демо | |
</button> | |
</div> | |
</div> | |
<!-- Case 2 --> | |
<div class="bg-black/50 backdrop-blur-sm rounded-xl border-neon-pink overflow-hidden transition-transform hover:scale-105"> | |
<div class="h-48 bg-gradient-to-br from-purple-500 to-purple-900 flex items-center justify-center"> | |
<div class="text-center p-4"> | |
<h3 class="text-xl font-bold mb-2">NFT Game Mini-App</h3> | |
<p class="text-sm opacity-80">P2E игра в Telegram</p> | |
</div> | |
</div> | |
<div class="p-6"> | |
<div class="flex justify-between items-center mb-3"> | |
<p class="text-xs text-gray-400">Результат:</p> | |
<p class="font-bold neon-pink">+132K users</p> | |
</div> | |
<p class="text-sm mb-4">Игровая экономика с NFT персонажами и токенизированными наградами, интегрированная с TON.</p> | |
<button class="w-full px-4 py-2 bg-purple-500/10 border border-purple-500 rounded-lg hover:bg-purple-500/20 text-sm"> | |
Смотреть демо | |
</button> | |
</div> | |
</div> | |
<!-- Case 3 --> | |
<div class="bg-black/50 backdrop-blur-sm rounded-xl border-neon-teal overflow-hidden transition-transform hover:scale-105"> | |
<div class="h-48 bg-gradient-to-br from-blue-500 to-blue-900 flex items-center justify-center"> | |
<div class="text-center p-4"> | |
<h3 class="text-xl font-bold mb-2">AI News Aggregator</h3> | |
<p class="text-sm opacity-80">Персонализированная лента</p> | |
</div> | |
</div> | |
<div class="p-6"> | |
<div class="flex justify-between items-center mb-3"> | |
<p class="text-xs text-gray-400">Результат:</p> | |
<p class="font-bold neon-teal">+75% retention</p> | |
</div> | |
<p class="text-sm mb-4">Нейросеть анализирует предпочтения и составляет персонализированную ленту новостей и аналитики.</p> | |
<button class="w-full px-4 py-2 bg-blue-500/10 border border-blue-500 rounded-lg hover:bg-blue-500/20 text-sm"> | |
Смотреть демо | |
</button> | |
</div> | |
</div> | |
</div> | |
<div class="text-center mt-16"> | |
<button class="px-8 py-3 rounded-lg bg-gradient-to-r from-teal-400 to-purple-500 hover:from-teal-500 hover:to-purple-600 text-lg font-bold transition-all transform hover:scale-105 hover:shadow-lg hover:shadow-teal-500/30 border-2 border-white/10"> | |
Все кейсы (12+ успешных проектов) | |
</button> | |
</div> | |
</section> | |
<!-- Success Modal --> | |
<div id="success-modal" class="fixed inset-0 bg-black/80 flex items-center justify-center z-50 hidden"> | |
<div class="bg-black/60 backdrop-blur-sm rounded-xl border-2 border-teal-500 p-8 max-w-md w-full mx-4 relative"> | |
<button id="close-success" class="absolute top-4 right-4 text-gray-400 hover:text-white">×</button> | |
<div class="text-center"> | |
<div class="w-20 h-20 rounded-full bg-teal-500/20 flex items-center justify-center mx-auto mb-6"> | |
<svg class="w-10 h-10 text-teal-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> | |
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> | |
</svg> | |
</div> | |
<h3 class="text-2xl font-bold mb-2 neon-teal">Спасибо!</h3> | |
<p class="mb-6">Мы уже начали работу над вашим проектом</p> | |
<div class="mb-8"> | |
<div class="progress-bar"></div> | |
</div> | |
<p class="text-sm text-gray-400">Наш бот уже отправил вам сообщение в Telegram с деталями. Проверьте чат!</p> | |
</div> | |
</div> | |
</div> | |
<!-- Console Command Easter Egg --> | |
<div id="console-egg" class="hidden fixed inset-0 bg-black/90 flex items-center justify-center z-50 backdrop-blur-sm"> | |
<div class="bg-black/80 border border-teal-500 rounded-lg p-8 max-w-md w-full"> | |
<div class="flex justify-between items-start mb-6"> | |
<h3 class="text-xl font-bold neon-teal">Secret Command Activated</h3> | |
<button onclick="closeEasterEgg()" class="text-gray-400 hover:text-white">×</button> | |
</div> | |
<div class="bg-gray-900 p-4 rounded-lg font-mono text-sm mb-6 overflow-auto" style="max-height: 200px;"> | |
<p class="text-green-400">> start bot --demo</p> | |
<p class="text-white">Initializing demo environment...</p> | |
<p class="text-white">Loading AI assistant...</p> | |
<p class="text-white">Connecting to Telegram API...</p> | |
<p class="text-green-400">> <span class="typing-text">Demo bot ready! You can now interact with a simplified version of our AI-powered Telegram bot directly in this window.</span></p> | |
<span class="typing-cursor"></span> | |
</div> | |
<div class="bg-gray-900/50 p-4 rounded-lg"> | |
<p class="text-sm mb-3 neon-pink">Try these commands:</p> | |
<div class="grid grid-cols-2 gap-2"> | |
<button class="console-cmd px-3 py-1 bg-gray-800 rounded text-xs hover:bg-gray-700">/start</button> | |
<button class="console-cmd px-3 py-1 bg-gray-800 rounded text-xs hover:bg-gray-700">/pricing</button> | |
<button class="console-cmd px-3 py-1 bg-gray-800 rounded text-xs hover:bg-gray-700">/features</button> | |
<button class="console-cmd px-3 py-1 bg-gray-800 rounded text-xs hover:bg-gray-700">/demo</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<script> | |
// Initialize page | |
document.addEventListener('DOMContentLoaded', function() { | |
// Hide welcome overlay after load | |
setTimeout(() => { | |
document.getElementById('welcome-overlay').style.opacity = '0'; | |
setTimeout(() => { | |
document.getElementById('welcome-overlay').style.display = 'none'; | |
// Show canvas | |
document.getElementById('canvas-container').style.opacity = '1'; | |
initThreeJS(); | |
}, 1000); | |
}, 1500); | |
// Animate hero title | |
const heroTitle = "Создаём цифровые решения, которые приносят прибыль"; | |
const heroTitleElement = document.getElementById('hero-title'); | |
heroTitle.split('').forEach((char, i) => { | |
const span = document.createElement('span'); | |
span.className = 'letter-animation'; | |
span.textContent = char === ' ' ? ' ' : char; | |
span.style.transitionDelay = `${i * 0.05}s`; | |
heroTitleElement.appendChild(span); | |
}); | |
setTimeout(() => { | |
document.querySelectorAll('.letter-animation').forEach(el => { | |
el.style.opacity = '1'; | |
el.style.transform = 'translateY(0)'; | |
}); | |
document.getElementById('hero-content').style.opacity = '1'; | |
document.getElementById('hero-content').style.transform = 'translateY(0)'; | |
}, 500); | |
// Show AI guide after 15 seconds | |
setTimeout(() => { | |
document.getElementById('ai-guide').classList.remove('hidden'); | |
setTimeout(() => { | |
document.getElementById('ai-guide').style.opacity = '1'; | |
document.getElementById('ai-guide').style.transform = 'translateY(0)'; | |
// Type AI message | |
typeText("Привет! Я помогу подобрать решение под ваш бюджет. Ответьте на 3 вопроса и получите примерную стоимость.", | |
document.querySelector('.typing-text'), () => { | |
setTimeout(() => { | |
document.getElementById('ai-questions').classList.remove('hidden'); | |
}, 500); | |
}); | |
}, 100); | |
}, 15000); | |
// Service planets interaction | |
document.querySelectorAll('.service-planet button').forEach(btn => { | |
btn.addEventListener('click', function(e) { | |
e.stopPropagation(); | |
const parent = this.parentElement; | |
const title = parent.querySelector('h3').textContent; | |
// Set details based on selection | |
setServiceDetails(title); | |
document.getElementById('service-details').classList.remove('hidden'); | |
}); | |
}); | |
// Close service details | |
document.getElementById('close-details').addEventListener('click', function() { | |
document.getElementById('service-details').classList.add('hidden'); | |
}); | |
// AI Guide trigger | |
document.getElementById('guide-trigger').addEventListener('click', function() { | |
const guide = document.getElementById('ai-guide'); | |
if (guide.classList.contains('hidden')) { | |
guide.classList.remove('hidden'); | |
setTimeout(() => { | |
guide.style.opacity = '1'; | |
guide.style.transform = 'translateY(0)'; | |
}, 10); | |
} else { | |
guide.style.opacity = '0'; | |
guide.style.transform = 'translateY(10px)'; | |
setTimeout(() => { | |
guide.classList.add('hidden'); | |
}, 500); | |
} | |
}); | |
// AI questions | |
document.querySelectorAll('.ai-answer-btn').forEach(btn => { | |
btn.addEventListener('click', function() { | |
// Simple simulation of AI process | |
const questions = document.getElementById('ai-questions'); | |
questions.innerHTML = ` | |
<div> | |
<p class="text-sm text-gray-400 mb-1">2/3 Какой у вас бюджет?</p> | |
<div class="flex flex-wrap gap-2"> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">До $5K</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">$5K-$15K</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">$15K+</button> | |
</div> | |
</div> | |
`; | |
// Rebind events | |
document.querySelectorAll('.ai-answer-btn').forEach(newBtn => { | |
newBtn.addEventListener('click', function() { | |
questions.innerHTML = ` | |
<div> | |
<p class="text-sm text-gray-400 mb-1">3/3 Когда нужно запустить?</p> | |
<div class="flex flex-wrap gap-2"> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">Срочно (до 2 недель)</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">1-2 месяца</button> | |
<button class="ai-answer-btn px-4 py-2 rounded-full bg-gray-800 hover:bg-gray-700 transition">Пока в планах</button> | |
</div> | |
</div> | |
`; | |
// Final answer | |
document.querySelectorAll('.ai-answer-btn').forEach(finalBtn => { | |
finalBtn.addEventListener('click', function() { | |
document.getElementById('ai-questions').classList.add('hidden'); | |
document.getElementById('ai-result').classList.remove('hidden'); | |
}); | |
}); | |
}); | |
}); | |
}); | |
}); | |
// Form submission | |
document.getElementById('project-form').addEventListener('submit', function(e) { | |
e.preventDefault(); | |
// Update review section | |
const inputs = this.querySelectorAll('input[type="text"], input[type="email"], select'); | |
inputs.forEach(input => { | |
if (input.type !== 'checkbox') { | |
const reviewElement = document.getElementById('review-' + input.name); | |
if (reviewElement) { | |
reviewElement.innerHTML = reviewElement.innerHTML.split(':')[0] + ': <span class="font-medium">' + input.value + '</span>'; | |
} | |
} | |
}); | |
// Show success modal | |
document.getElementById('success-modal').classList.remove('hidden'); | |
// Animate progress bar | |
setTimeout(() => { | |
document.querySelector('.progress-bar').style.width = '100%'; | |
}, 100); | |
}); | |
// Close success modal | |
document.getElementById('close-success').addEventListener('click', function() { | |
document.getElementById('success-modal').classList.add('hidden'); | |
}); | |
// CTA button click | |
document.getElementById('cta-button').addEventListener('click', function() { | |
document.getElementById('project-form').scrollIntoView({ behavior: 'smooth' }); | |
}); | |
// Easter egg for console | |
console.log('%cДобро пожаловать в нашу цифровую экосистему!', 'color: #00FEFE; font-size: 14px;'); | |
console.log('%cВведите "start bot" для доступа к демо-версии', 'color: #FF00FF; font-size: 12px;'); | |
}); | |
// Three.js initialization | |
function initThreeJS() { | |
const container = document.getElementById('canvas-container'); | |
const width = container.clientWidth; | |
const height = container.clientHeight; | |
// Scene | |
const scene = new THREE.Scene(); | |
// Camera | |
const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000); | |
camera.position.z = 30; | |
// Renderer | |
const renderer = new THREE.WebGLRenderer({ alpha: true, antialias: true }); | |
renderer.setSize(width, height); | |
container.appendChild(renderer.domElement); | |
// Lights | |
const ambientLight = new THREE.AmbientLight(0x404040); | |
scene.add(ambientLight); | |
const directionalLight = new THREE.DirectionalLight(0x00FEFE, 0.8); | |
directionalLight.position.set(1, 1, 1); | |
scene.add(directionalLight); | |
const directionalLight2 = new THREE.DirectionalLight(0xFF00FF, 0.8); | |
directionalLight2.position.set(-1, -1, -1); | |
scene.add(directionalLight2); | |
// Floating objects | |
const objects = []; | |
const geometry = new THREE.SphereGeometry(1, 16, 16); | |
// Create Telegram bot model (simplified with spheres) | |
const botMaterial = new THREE.MeshPhongMaterial({ | |
color: 0x0088cc, | |
emissive: 0x006699, | |
specular: 0x00FEFE, | |
shininess: 30 | |
}); | |
const botCore = new THREE.Mesh(geometry, botMaterial); | |
scene.add(botCore); | |
objects.push(botCore); | |
// Create surrounding objects | |
for (let i = 0; i < 20; i++) { | |
const material = new THREE.MeshPhongMaterial({ | |
color: Math.random() * 0xffffff, | |
emissive: 0x0, | |
specular: i % 2 === 0 ? 0x00FEFE : 0xFF00FF, | |
shininess: 10, | |
transparent: true, | |
opacity: 0.8 | |
}); | |
const obj = new THREE.Mesh( | |
geometry, | |
material | |
); | |
obj.position.x = Math.random() * 30 - 15; | |
obj.position.y = Math.random() * 30 - 15; | |
obj.position.z = Math.random() * 30 - 15; | |
obj.userData = { | |
speed: Math.random() * 0.02 + 0.01, | |
direction: new THREE.Vector3( | |
Math.random() * 0.2 - 0.1, | |
Math.random() * 0.2 - 0.1, | |
Math.random() * 0.2 - 0.1 | |
).normalize() | |
}; | |
scene.add(obj); | |
objects.push(obj); | |
} | |
// Handle window resize | |
window.addEventListener('resize', () => { | |
camera.aspect = container.clientWidth / container.clientHeight; | |
camera.updateProjectionMatrix(); | |
renderer.setSize(container.clientWidth, container.clientHeight); | |
}); | |
// Animation loop | |
function animate() { | |
requestAnimationFrame(animate); | |
// Rotate bot core | |
botCore.rotation.x += 0.005; | |
botCore.rotation.y += 0.01; | |
// Move surrounding objects | |
objects.forEach(obj => { | |
if (obj !== botCore) { | |
// Move in direction | |
obj.position.x += obj.userData.direction.x * obj.userData.speed; | |
obj.position.y += obj.userData.direction.y * obj.userData.speed; | |
obj.position.z += obj.userData.direction.z * obj.userData.speed; | |
// Bounce off invisible walls | |
if (Math.abs(obj.position.x) > 20) obj.userData.direction.x *= -1; | |
if (Math.abs(obj.position.y) > 20) obj.userData.direction.y *= -1; | |
if (Math.abs(obj.position.z) > 20) obj.userData.direction.z *= -1; | |
// Rotate | |
obj.rotation.x += 0.01; | |
obj.rotation.y += 0.01; | |
} | |
}); | |
renderer.render(scene, camera); | |
} | |
animate(); | |
} | |
// Form steps navigation | |
function nextStep(step) { | |
document.getElementById(`step-${step-1}`).classList.add('hidden'); | |
document.getElementById(`step-${step}`).classList.remove('hidden'); | |
// Update steps UI | |
document.querySelectorAll('.step').forEach((el, i) => { | |
if (i < step) { | |
el.querySelector('div').classList.remove('border-gray-600'); | |
el.querySelector('div').classList.add('border-teal-500'); | |
el.querySelector('p').classList.remove('text-gray-500'); | |
} else { | |
el.querySelector('div').classList.add('border-gray-600'); | |
el.querySelector('div').classList.remove('border-teal-500'); | |
el.querySelector('p').classList.add('text-gray-500'); | |
} | |
}); | |
} | |
function prevStep(step) { | |
document.getElementById(`step-${step+1}`).classList.add('hidden'); | |
document.getElementById(`step-${step}`).classList.remove('hidden'); | |
// Update steps UI | |
document.querySelectorAll('.step').forEach((el, i) => { | |
if (i < step) { | |
el.querySelector('div').classList.remove('border-gray-600'); | |
el.querySelector('div').classList.add('border-teal-500'); | |
el.querySelector('p').classList.remove('text-gray-500'); | |
} else { | |
el.querySelector('div').classList.add('border-gray-600'); | |
el.querySelector('div').classList.remove('border-teal-500'); | |
el.querySelector('p').classList.add('text-gray-500'); | |
} | |
}); | |
} | |
// Type text animation | |
function typeText(text, element, callback) { | |
let i = 0; | |
element.textContent = ''; | |
const cursor = element.nextElementSibling; | |
cursor.style.display = 'inline-block'; | |
const typing = setInterval(() => { | |
if (i < text.length) { | |
element.textContent += text.charAt(i); | |
i++; | |
} else { | |
clearInterval(typing); | |
cursor.style.display = 'none'; | |
if (callback) callback(); | |
} | |
}, 30); | |
} | |
// Set service details based on selection | |
function setServiceDetails(service) { | |
const details = { | |
"Чат-боты": { | |
title: "Чат-боты", | |
description: "Гибкие решения для автоматизации бизнес-процессов с помощью Telegram, WhatsApp и других мессенджеров.", | |
features: [ | |
"Интеграция с CRM и платежными системами", | |
"AI-ассистенты с NLP", | |
"Мультиязычная поддержка", | |
"Гибкие сценарии диалогов" | |
], | |
case: "Бот для @crypto_storage: +$50K/month" | |
}, | |
"Mini-Apps": { | |
title: "Mini-Apps", | |
description: "Полноценные приложения внутри Telegram с игровыми механиками и интеграцией крипто-экономик.", | |
features: [ | |
"WebView и JS-приложения", | |
"Игровые движки", | |
"Встроенные кошельки", | |
"P2E механики" | |
], | |
case: "NFT Game Mini-App: +75% retention" | |
}, | |
"Web3": { | |
title: "Web3 решения", | |
description: "Интеграция блокчейн технологий в ваши приложения и бизнес-процессы.", | |
features: [ | |
"Смарт-контракты", | |
"NFT коллекции", | |
"Крипто-платежи", | |
"Децентрализованные приложения" | |
], | |
case: "TON Wallet Integration: 30K+ tx/month" | |
}, | |
"AI": { | |
title: "AI интеграции", | |
description: "Искусственный интеллект для обработки данных, генерации контента и автоматизации решений.", | |
features: [ | |
"NLP для чат-ботов", | |
"Генерация изображений", | |
"Анализ данных", | |
"Персонализированные рекомендации" | |
], | |
case: "AI News Aggregator: +75% retention" | |
} | |
}; | |
if (details[service]) { | |
document.getElementById('detail-title').textContent = details[service].title; | |
document.getElementById('detail-description').textContent = details[service].description; | |
const featuresList = document.getElementById('detail-features'); | |
featuresList.innerHTML = ''; | |
details[service].features.forEach(feature => { | |
const li = document.createElement('li'); | |
li.textContent = feature; | |
featuresList.appendChild(li); | |
}); | |
document.getElementById('detail-case').textContent = details[service].case; | |
// Update the order button color based on service | |
const button = document.querySelector('#service-details button'); | |
button.className = 'px-6 py-2 rounded-lg font-medium'; | |
if (service === "Чат-боты") button.classList.add('bg-teal-500', 'hover:bg-teal-600'); | |
else if (service === "Mini-Apps") button.classList.add('bg-purple-500', 'hover:bg-purple-600'); | |
else if (service === "Web3") button.classList.add('bg-blue-500', 'hover:bg-blue-600'); | |
else if (service === "AI") button.classList.add('bg-pink-500', 'hover:bg-pink-600'); | |
} | |
} | |
// Easter egg for console command | |
window.addEventListener('keydown', function(e) { | |
// Check for Ctrl+Shift+I (dev tools) | |
if (e.ctrlKey && e.shiftKey && e.key === 'I') { | |
console.log('%cВведите "start bot" для доступа к демо-версии', 'color: #FF00FF; font-size: 14px;'); | |
} | |
}); | |
// Listen for console commands | |
const originalConsoleLog = console.log; | |
console.log = function(message) { | |
originalConsoleLog.apply(console, arguments); | |
if (typeof message === 'string' && message.toLowerCase().includes('start bot')) { | |
// Show the easter egg | |
document.getElementById('console-egg').classList.remove('hidden'); | |
} | |
}; | |
function closeEasterEgg() { | |
document.getElementById('console-egg').classList.add('hidden'); | |
} | |
// Handle demo console commands | |
document.addEventListener('DOMContentLoaded', function() { | |
document.querySelectorAll('.console-cmd').forEach(btn => { | |
btn.addEventListener('click', function() { | |
const consoleOutput = document.querySelector('#console-egg .bg-gray-900'); | |
const currentText = consoleOutput.innerHTML; | |
let response = ""; | |
switch(this.textContent) { | |
case '/start': | |
response = "🤖 Добро пожаловать в демо нашего Telegram бота!\n\nЭто упрощенная версия реального бота, который мы создаем для клиентов. Вы можете попробовать команды:\n\n/pricing - стоимость услуг\n/features - возможности\n/demo - демо-сценарий"; | |
break; | |
case '/pricing': | |
response = "💰 Наши базовые цены:\n\nЧат-бот: от $3,000\nMini-App: от $8,000\nWeb3 решение: от $12,000\nПолный цикл: от $20,000\n\nЦены зависят от сложности и сроков."; | |
break; | |
case '/features': | |
response = "✨ Основные возможности:\n\n• AI-ассистенты\n• Интеграция платежей\n• Мультиязычность\n• Web3 кошельки\n• P2E механики\n• Автоматизированные процессы"; | |
break; | |
case '/demo': | |
response = "🚀 Запускаем демо-сценарий...\n\n1. Клиент пишет '/start'\n2. Бот задает уточняющие вопросы\n3. Формируется предложение\n4. Подписывается контракт\n5. Реализация за 14 дней!"; | |
break; | |
default: | |
response = "Неизвестная команда. Введите /start для списка команд."; | |
} | |
consoleOutput.innerHTML = currentText + | |
`\n<p class="text-green-400">> ${this.textContent}</p>` + | |
`\n<p class="text-white">${response.replace(/\n/g, '<br>')}</p>` + | |
`<p class="text-green-400">> <span class="typing-text"></span></p><span class="typing-cursor"></span>`; | |
// Scroll to bottom | |
consoleOutput.scrollTop = consoleOutput.scrollHeight; | |
// Type the response | |
const typingText = consoleOutput.querySelector('.typing-text'); | |
const typingCursor = consoleOutput.querySelector('.typing-cursor'); | |
typingCursor.style.display = 'inline-block'; | |
let i = 0; | |
const typingInterval = setInterval(() => { | |
if (i < response.length) { | |
typingText.textContent += response.charAt(i); | |
i++; | |
} else { | |
clearInterval(typingInterval); | |
typingCursor.style.display = 'none'; | |
} | |
consoleOutput.scrollTop = consoleOutput.scrollHeight; | |
}, 30); | |
}); | |
}); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - <a href="https://enzostvs-deepsite.hf.space?remix=imbytegroup/nromal" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body> | |
</html> |