nromal / index.html
imbytegroup's picture
Add 2 files
81a5272 verified
<!DOCTYPE html>
<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">&times;</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">&times;</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">&times;</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>