diff --git a/Frontend/Pages/index.html b/Frontend/Pages/index.html
new file mode 100644
index 0000000..4c6d9b9
--- /dev/null
+++ b/Frontend/Pages/index.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ 1. Термины и определения
+ 1.1. VPN-сервис SpectralVPN (далее — «Продавец») — онлайн-сервис, расположенный на доменном имени spectralvpn.ru, а также его официальная система в мессенджере Telegram с учетной записью @spectralvpnbot (далее — «Телеграм-бот»). Продавец предоставляет платные услуги доступа к виртуальной частной сети (VPN) на условиях настоящего соглашения.
+ 1.2. Пользователь (далее — «Покупатель») — дееспособное физическое либо юридическое лицо, посетившее Сайт или воспользовавшееся Телеграм-ботом и намеревающееся приобрести либо использующее услуги VPN-сервиса SpectralVPN. Факт использования Сайта или Телеграм-бота, включая оформление Заказа, означает полное и безоговорочное принятие Пользователем условий настоящего соглашения.
+ 1.3. Услуга — услуга платного предоставления доступа к VPN-соединению, реализуемая путем выдачи Покупателю уникального URL для подключения к VPN-серверу по протоколу VLESS с использованием Reality. URL позволяет установить защищённое соединение с интернетом через серверы Продавца.
+ 1.4. Заказ — должным образом оформленный запрос Покупателя на приобретение Услуги через Сайт или Телеграм-бот, совмещённый с внесением оплаты согласно выбранному тарифу. Оплата Заказа Покупателем признаётся акцептом настоящей оферты, то есть полным и безусловным принятием условий соглашения.
+ 1.5. Стороны — совместное именование Продавца и Покупателя в рамках настоящего соглашения.
+
+
+
+ 2. Предмет соглашения
+ 2.1. Продавец обязуется предоставить Покупателю Услугу VPN-доступа на условиях настоящего соглашения, а Покупатель обязуется оплатить предоставление данной Услуги. Услуга заключается в выдаче Покупателю уникального URL для подключения к VPN-серверу по протоколу VLESS+Reality с целью защиты интернет-соединения и данных Покупателя. Покупатель самостоятельно выбирает клиентское приложение и настраивает подключение.
+ 2.2. Настоящее соглашение является договором возмездного оказания услуг и публичной офертой в соответствии с п.2 ст. 437 ГК РФ. Полным и безоговорочным акцептом оферты признается совершение Покупателем оплаты Заказа. С момента акцепта договор считается заключённым.
+ 2.3. Сервис предоставляется «как есть» (“as is”). Продавец не гарантирует бесперебойную работу на всех устройствах. Характеристики (скорость, задержка, доступность ресурсов) зависят от внешних факторов.
+
+
+
+ 3. Порядок оформления заказа и предоставления Услуги
+ 3.1. Оформление Заказа — через spectralvpn.ru или @spectralvpnbot. Покупатель предоставляет достоверный email.
+ 3.2. Оплата — 100 % предоплата через ЮKassa. Момент зачисления — начало исполнения.
+ 3.3. URL выдаётся в течение 72 часов (обычно мгновенно) в личном кабинете, по email или в Telegram. Обязательства Продавца выполнены с момента передачи работоспособного URL.
+ 3.4. Покупатель самостоятельно настраивает клиент (Nekobox, v2rayNG и др.). Инструкции — на Сайте.
+ 3.5. Продавец вправе отказать в Услуге до оплаты без объяснений. При отказе — полный возврат.
+ 3.6. Возможны плановые работы. Перерывы не являются нарушением.
+
+
+
+ 4. Условия использования и ограничения
+ 4.1. URL — один Покупатель, неограниченное количество устройств. Передача третьим лицам запрещена.
+ 4.2. Запрещено:
+
+ - Противоправные действия (хакерство, спам, мошенничество)
+ - Распространение запрещённых материалов
+ - Торренты (P2P) — автоматически блокируются системой 3x-ui
+ - Утечка URL в открытый доступ
+
+ При нарушении — блокировка без возврата средств.
+ 4.3. Покупатель несёт полную ответственность за свои действия в сети.
+ 4.4. Продавец не ограничивает доступ к ресурсам, но оставляет право блокировки при выявлении нарушений.
+ 4.5. URL действует до конца оплаченного периода. Продление — опционально.
+ 4.6. IP-адрес сервера может меняться ежемесячно. Актуальный URL — в личном кабинете.
+
+
+
+ 5. Стоимость и расчёты
+ 5.1. Тарифы — в рублях РФ, на Сайте и в боте.
+ 5.2. Цены могут меняться. Изменения не касаются оплаченных Заказов.
+ 5.3. Оплата — 100 % предоплата через ЮKassa. Чек отправляется автоматически (ФЗ-54).
+ 5.4. Услуга считается оказанной с момента выдачи URL.
+
+
+
+ 6. Возврат средств
+ 6.1. Возврат возможен в течение 7 календарных дней с момента оплаты, если подключение по URL технически невозможно по вине Продавца.
+ 6.2. Если URL выдан и работает — возврат не производится.
+ 6.3. При невыдаче URL в течение 72 часов — полный возврат в течение 10 рабочих дней.
+ 6.4. При блокировке за нарушение — возврат не производится.
+
+
+
+ 7. Конфиденциальность и защита данных
+ 7.1. No-Logs политика: Продавец не ведёт журналы интернет-активности (IP, трафик, DNS, сайты). Вся передаваемая информация шифруется и не сохраняется.
+ 7.2. Хранятся только:
+
+ - Email (для входа)
+ - Хэш пароля
+ - Приватный ключ (UUID)
+ - Дата оплаты, тариф
+ - Дата принятия соглашения
+
+ Объём трафика, IP, DNS — НЕ хранятся.
+ 7.3. Покупатель отвечает за сохранность URL и пароля.
+ 7.5. Обработка данных — в соответствии с Политикой конфиденциальности.
+
+
+
+ 8. Ответственность сторон
+ 8.1. Ответственность — по законодательству РФ с учётом ограничений.
+ 8.2. Продавец отвечает только за выдачу работоспособного URL.
+ 8.6. Максимальная ответственность — стоимость последнего оплаченного периода.
+ 8.7. Форс-мажор: блокировки, сбои связи, действия властей.
+
+
+
+ 9. Заключительные положения
+ 9.1. Оферта действует бессрочно. Изменения публикуются на Сайте. Продолжение использования = согласие.
+ 9.3. Недействительность одного пункта не влияет на остальные.
+ 9.4. Споры — в суде по месту нахождения Продавца (РФ).
+ 9.5. Безусловный акцепт — использование spectralvpn.ru или @spectralvpnbot. Начало использования = согласие с офертой.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frontend/Pages/privacy.html b/Frontend/Pages/privacy.html
new file mode 100644
index 0000000..acfbd19
--- /dev/null
+++ b/Frontend/Pages/privacy.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+ 1. Общие положения
+ Настоящая Политика конфиденциальности регулирует порядок обработки персональных данных Пользователей сервиса SpectralVPN, расположенного по адресу spectralvpn.ru и в Telegram-боте @spectralvpnbot.
+ Использование Сервиса означает безоговорочное согласие Пользователя с настоящей Политикой.
+
+
+
+ 2. Какие данные мы собираем
+ Мы собираем минимальный объём данных, необходимый только для предоставления Услуги:
+
+ - Email — для входа и получения URL
+ - Хэш пароля — оригинал не хранится
+ - Приватный ключ (UUID) — для аутентификации по VLESS+Reality
+ - Дата оплаты и тариф
+ - Дата принятия соглашения
+
+
+ Мы НЕ собираем и НЕ храним:
+ • IP-адреса
• Объём трафика
• DNS-запросы
• Посещаемые сайты
• Содержимое передаваемых данных
+
+
+
+
+ 3. No-Logs политика
+ Сервис SpectralVPN построен на принципе нулевого логирования активности. Весь трафик шифруется сквозным шифрованием и не сохраняется на серверах.
+
+
+
+ 4. Как используются данные
+
+ - Выдача и активация URL
+ - Продление подписки
+ - Техподдержка
+ - Соблюдение ФЗ-152, ФЗ-54
+
+
+
+
+ 5. Хранение и защита
+ Данные хранятся на защищённых серверах в Европе (геолокация меняется ежемесячно). Применяется AES-256, ограничение доступа, резервное копирование. Данные удаляются через 30 дней после окончания подписки.
+
+
+
+ 6. Передача третьим лицам
+ Передача только по судебному решению РФ или ЮKassa (сумма, email, статус).
+
+
+
+ 7. Права Пользователя
+ Запрос доступа, удаления, отзыва согласия (прекратит доступ). Обращайтесь: support@spectralvpn.ru
+
+
+
+ 8. Изменения
+ Обновления публикуются здесь. Продолжение использования = согласие.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Frontend/Styles/index.css b/Frontend/Styles/index.css
new file mode 100644
index 0000000..0cf19db
--- /dev/null
+++ b/Frontend/Styles/index.css
@@ -0,0 +1,402 @@
+*{
+ margin: 0;
+ padding: 0;
+}
+
+body{
+ background-color: black;
+ color: white;
+ font-family: 'Inter';
+}
+
+header{
+ height: 5vh;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ border: 0;
+ border-bottom: 1px;
+ border-style: solid;
+ border-color: rgb(41, 41, 41);
+}
+
+header h2{
+ margin-left: 2vw;
+}
+
+h2 b{
+ color: aqua;
+}
+
+header div button{
+ height: 4vh;
+ font-size: 14pt;
+ border-width: 0;
+ font-weight: 600;
+ padding-left: 10px;
+ padding-right: 10px;
+ border-radius: 5px;
+ cursor: pointer;
+}
+
+#register{
+ background-color: black;
+ color: white;
+ border-color: aqua;
+ border-width: 1px;
+ margin-right: 10px;
+ transition: 0.1s;
+}
+
+#register:hover{
+ color: black;
+ background-color: aqua;
+}
+
+#register:active{
+ opacity: 0.7;
+}
+
+#login{
+ background-color: aqua;
+ margin-right: 2vw;
+}
+
+#login:hover{
+ background-color: black;
+ border-color: aqua;
+ border-style: solid;
+ border-width: 1px;
+ color: white;
+}
+
+#login:active{
+ opacity: 0.7;
+}
+
+#main{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ min-height: 50vh;
+}
+
+#main h1{
+ font-size: 25pt;
+ text-align: center;
+ margin-top: 10vh;
+ line-height: 35pt;
+}
+
+#main h4{
+ margin-top: 1vh;
+ font-size: 13pt;
+ font-weight: 500;
+ max-width: 550px;
+ text-align: center;
+ color: lightgrey;
+ line-height: 20pt;
+}
+
+#main h4 b{
+ font-weight: 700;
+}
+
+#container{
+ display: flex;
+ margin-top: 5vh;
+ flex-wrap: wrap;
+ justify-content: center;
+}
+
+#container div{
+ height: 4vh;
+ width: 100px;
+ background-color: rgba(10, 117, 136, 0.575);
+ border-radius: 7px;
+ border-width: 1px;
+ border-color: aqua;
+ border-style: solid;
+ margin: 5px;
+ color: aqua;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 13pt;
+ font-weight: 700;
+ flex-wrap: wrap;
+}
+
+#main button{
+ margin-top: 3vh;
+ height: 5vh;
+ padding-left: 20px;
+ padding-right: 20px;
+ background-color: aqua;
+ border-radius: 7px;
+ border-style: none;
+ font-size: 14pt;
+ font-weight: 700;
+ cursor: pointer;
+ transition: 0.1s;
+ margin-bottom: 5vh;
+}
+
+#main button:hover{
+ background-color: black;
+ border-color: aqua;
+ border-style: solid;
+ border-width: 1px;
+ color: white;
+}
+
+#main button:active{
+ opacity: 0.7;
+}
+
+#info{
+ background-color: rgb(7, 7, 7);
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-evenly;
+ padding: 5vh;
+ min-height: 30vh;
+ align-items: center;
+ border: 0;
+ border-top: 1px;
+ border-bottom: 1px;
+ border-style: solid;
+ border-color: rgb(27, 27, 27);
+}
+
+#info div{
+ margin: 5vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+#info div h1{
+ font-weight: 300;
+ font-size: 25pt;
+ color: lightgray;
+}
+
+#info div h3{
+ font-size: 14pt;
+ margin-top: 1vh;
+}
+
+#info div p{
+ width: 250px;
+ text-align: center;
+ color: gray;
+ margin-top: 1vh;
+}
+
+#final{
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 5vh;
+}
+
+#final h2{
+ font-size: 25pt;
+}
+
+#final h3{
+ font-weight: 300;
+ color:gray;
+ margin-top: 2vh;
+ max-width: 500px;
+ text-align: center;
+ line-height: 17pt;
+}
+
+#final button{
+ color: white;
+ background-color: black;
+ border-color: aqua;
+ border-style: solid;
+ border-radius: 7px;
+ padding-left: 20px;
+ padding-right: 20px;
+ height: 5vh;
+ font-size: 15pt;
+ font-weight: 700;
+ margin-top: 3vh;
+ cursor: pointer;
+ transition: 0.1s;
+}
+
+#final button:hover{
+ color: black;
+ background-color: aqua;
+}
+
+#final button:active{
+ opacity: 0.7;
+}
+
+footer{
+ height: 5vh;
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ border: 0;
+ border-top: 1px;
+ border-style: solid;
+ border-color: rgb(41, 41, 41);
+}
+
+footer a{
+ color: darkgray;
+}
+
+footer a:active{
+ color: rgb(109, 109, 109);
+}
+
+footer p{
+ color: darkgray;
+}
+
+@media (width < 600px) {
+ header {
+ height: 10vh;
+ padding: 0 15px;
+ flex-wrap: wrap;
+ width: 91vw;
+ }
+
+ header h2 {
+ margin-left: 0;
+ font-size: 18pt;
+ }
+
+ header div {
+ display: flex;
+ gap: 8px;
+ }
+
+ header div button {
+ font-size: 12pt;
+ height: 4.5vh;
+ padding: 0 12px;
+ }
+
+ #register {
+ margin-right: 0;
+ }
+
+ #login {
+ margin-right: 0;
+ }
+
+ /* Main Section */
+ #main h1 {
+ font-size: 20pt;
+ line-height: 28pt;
+ margin-top: 8vh;
+ padding: 0 20px;
+ }
+
+ #main h4 {
+ font-size: 12pt;
+ line-height: 18pt;
+ padding: 0 20px;
+ max-width: 90%;
+ }
+
+ #container {
+ flex-wrap: wrap;
+ justify-content: center;
+ gap: 10px;
+ margin-top: 4vh;
+ padding: 0 20px;
+ }
+
+ #container div {
+ width: 45%;
+ min-width: 90px;
+ height: 5.5vh;
+ font-size: 11pt;
+ margin: 0;
+ }
+
+ #main button {
+ margin-top: 4vh;
+ height: 6vh;
+ font-size: 13pt;
+ width: 80%;
+ max-width: 300px;
+ }
+
+ /* Info Section */
+ #info {
+ flex-direction: column;
+ padding: 4vh 0;
+ gap: 3vh;
+ }
+
+ #info div {
+ margin: 0;
+ width: 80%;
+ max-width: 300px;
+ }
+
+ #info div h1 {
+ font-size: 22pt;
+ }
+
+ #info div h3 {
+ font-size: 13pt;
+ }
+
+ #info div p {
+ width: 100%;
+ font-size: 12pt;
+ line-height: 16pt;
+ }
+
+ /* Final Section */
+ #final {
+ padding: 6vh 20px;
+ }
+
+ #final h2 {
+ font-size: 20pt;
+ text-align: center;
+ }
+
+ #final h3 {
+ width: 100%;
+ font-size: 12pt;
+ line-height: 18pt;
+ margin-top: 2vh;
+ }
+
+ #final button {
+ width: 80%;
+ max-width: 300px;
+ height: 6vh;
+ font-size: 13pt;
+ margin-top: 4vh;
+ }
+
+ /* Footer */
+ footer {
+ flex-direction: column;
+ height: auto;
+ padding: 15px 0;
+ text-align: center;
+ gap: 8px;
+ }
+
+ footer a, footer p {
+ font-size: 11pt;
+ }
+}
\ No newline at end of file
diff --git a/Frontend/Styles/offer.css b/Frontend/Styles/offer.css
new file mode 100644
index 0000000..641c927
--- /dev/null
+++ b/Frontend/Styles/offer.css
@@ -0,0 +1,85 @@
+:root{
+ --bg: #0f0f1a;
+ --text: #e0e0ff;
+ --accent: cyan;
+ --card: #1a1a2e;
+ --border: #333355;
+}
+
+*{ box-sizing: border-box; margin:0; padding:0; }
+
+body{
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ background: var(--bg);
+ color: var(--text);
+ line-height: 1.7;
+}
+
+.container{
+ max-width: 900px;
+ margin: 40px auto;
+ padding: 30px;
+ background: var(--card);
+ border-radius: 16px;
+ box-shadow: 0 10px 30px rgba(0,0,0,0.3);
+ border: 1px solid var(--border);
+}
+
+header{
+ text-align: center;
+ margin-bottom: 40px;
+ padding-bottom: 20px;
+ border-bottom: 1px solid var(--border);
+}
+
+h1{ font-size: 2.2rem; color: var(--accent); margin:0; }
+h2{ font-size: 1.5rem; color: var(--accent); margin-top: 2rem; border-left: 4px solid var(--accent); padding-left: 12px; }
+h3{ font-size: 1.2rem; color: #c0c0ff; margin-top: 1.5rem; }
+
+p, li{ font-size: 1rem; margin: 0.8rem 0; }
+ul, ol{ padding-left: 20px; }
+
+code{
+ background: #2a2a3a;
+ padding: 2px 6px;
+ border-radius: 4px;
+ font-family: 'Courier New', monospace;
+}
+
+.highlight{
+ background: rgba(110, 86, 207, 0.15);
+ padding: 12px;
+ border-radius: 8px;
+ border-left: 4px solid var(--accent);
+ margin: 1rem 0;
+}
+
+.footer{
+ margin-top: 50px;
+ text-align: center;
+ font-size: 0.9rem;
+ color: #888;
+ padding-top: 20px;
+ border-top: 1px solid var(--border);
+}
+
+.btn{
+ display: inline-block;
+ margin: 15px 10px 0 0;
+ padding: 10px 20px;
+ background: var(--accent);
+ color: var(--card);
+ text-decoration: none;
+ border-radius: 8px;
+ font-weight: 600;
+ transition: 0.3s;
+}
+.btn:hover{ background: #5a45b0; transform: translateY(-2px); }
+
+a{ color: var(--accent); text-decoration: none; }
+a:hover{ text-decoration: underline; }
+
+@media (max-width: 768px) {
+ .container { margin: 20px; padding: 20px; }
+ h1 { font-size: 1.8rem; }
+}
\ No newline at end of file