mod: localized English version of README and UI texts, enhanced accessibility and internationalization features
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 51s

This commit is contained in:
2026-09-27 19:19:59 +03:00
parent ebf78c2c48
commit 1c846f7912
38 changed files with 1360 additions and 1091 deletions
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>400 — Сбой ментального протокола | HypnoSVG</title>
<meta name="description" content="Ошибка 400: Некорректный запрос к матрице HypnoSVG. Сервер не распознал структуру переданного сигнала." />
<title>400 — Mental Protocol Malfunction | HypnoSVG</title>
<meta name="description" content="Error 400: Malformed neural request to the HypnoSVG matrix. The server rejected the incoming brainwave syntax." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="400 Bad Request Slug" />
</div>
<div class="error-code-badge">СБОЙ МАТРИЦЫ // КОД&nbsp;400</div>
<div class="error-code-badge">MATRIX MALFUNCTION // CODE&nbsp;400</div>
<h1 class="error-title">Сбой перцепционного протокола</h1>
<h1 class="error-title">Perceptual Protocol Mismatch</h1>
<p class="error-desc">
Клиент искажает ментальные сигналы или имеет невалидную структуру биоритмов мозговых данных. Неокортекс сервера отверг запрос из-за&nbsp;синтаксического&nbsp;диссонанса.
Your client is&&nbsp;transmitting scrambled mental impulses or&nbsp;invalid bio-data structures. The&nbsp;server neocortex has rejected the&nbsp;request due to&nbsp;acute cognitive dissonance.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Некорректно сформулированная мысль разрушает гармонию халфтона. Перепроверьте параметры запроса перед&nbsp;повторным сеансом внушения.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>A&nbsp;poorly formulated thought destabilizes the&nbsp;halftone continuum. Re-calibrate your&nbsp;request parameters before submitting to&nbsp;the&nbsp;next hypnotic wave.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Сбросить параметры и&nbsp;вернуться</span>
<span>● Flush Parameters &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация очистки буфера…
Purging corrupted memory buffer…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 400 BAD REQUEST █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Декодируем искажённые байты входящего сигнала&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Бюрократ 24-го уровня отклоняет невалидный пакет&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Очищаем буфер неокортекса от&nbsp;ментального шума&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Протокол сброшен! Возвращаемся на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Decoding corrupted bytes of&nbsp;incoming psychic telemetry&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Grade 24 Bureaucrat stamps rejected form on&nsbp;malformed packet&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Cleansing neocortex cache of&nbsp;residual thought noise&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Protocol reset! Warping back to&nbsp;the&nbsp;main console&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>401 — Требуется ментальная идентификация | HypnoSVG</title>
<meta name="description" content="Ошибка 401: Доступ к закрытому узлу HypnoSVG требует прохождения авторизации." />
<title>401 — Mental Clearance Required | HypnoSVG</title>
<meta name="description" content="Error 401: Unauthorized access to HypnoSVG neural sector. Valid Brain Slug identification token required." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="401 Unauthorized Slug" />
</div>
<div class="error-code-badge">ОГРАНИЧЕНИЕ ДОСТУПА // КОД&nbsp;401</div>
<div class="error-code-badge">RESTRICTED ACCESS // CODE&nbsp;401</div>
<h1 class="error-title">Требуется ментальная идентификация</h1>
<h1 class="error-title">Subconscious Identity Required</h1>
<p class="error-desc">
Вы попытались проникнуть в&nbsp;закрытый сектор подсознания без&nbsp;действующего пропуска или аутентификационного чипа.
You attempted to penetrate a restricted sector of the subliminal core without an active security badge or Brain Slug authentication token.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Свободная ментальность и&nbsp;анонимные мысли не&nbsp;допускаются к&nbsp;генераторам высшего порядка. Предъявите биометрический слепок или вернитесь в&nbsp;общий сектор.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Unassigned consciousness and unauthorized thoughts are barred from high-order generative matrices. Present your neural biometric imprint or retreat to the civilian sector immediately.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Вернуться в&nbsp;общий сектор</span>
<span>● Comply &amp;&nbsp;Fall Back to Public Sector</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация сканирования биометрии…
Initializing biometric brainwave scan…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 401 UNAUTHORIZED █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Сканируем ментальные отпечатки и&nbsp;токены доступа&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Проверяем наличие чипа мозгового слизня&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Бюрократ 24-го уровня фиксирует отсутствие пропуска&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Идентификация отклонена! Телепор&shy;тация в&nbsp;безопасную зону&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Scanning mental signatures and psychic authentication tokens&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Verifying presence of assigned Brain Slug symbiont&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Grade 24 Bureaucrat files trespassing report in triplicate&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Access denied! Teleporting to the authorized sector&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>403 — Отказано бюрократом 24-го уровня | HypnoSVG</title>
<meta name="description" content="Ошибка 403: Доступ к ресурсу категорически запрещен протоколами безопасности HypnoSVG." />
<title>403 — Subconscious Blockade | HypnoSVG</title>
<meta name="description" content="Error 403: Forbidden hypnotic sector. Clearance level insufficient for perceptual observation." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="403 Forbidden Slug" />
</div>
<div class="error-code-badge">ДОСТУП ЗАБЛОКИРОВАН // КОД&nbsp;403</div>
<div class="error-code-badge">ACCESS BLOCKED // CODE&nbsp;403</div>
<h1 class="error-title">Ментальная блокировка</h1>
<h1 class="error-title">Cognitive Lockdown Active</h1>
<p class="error-desc">
У&nbsp;вас нет достаточного уровня перцепционного допуска для&nbsp;просмотра этого сектора подсознания. Вердикт окончательный и&nbsp;обжалованию не&nbsp;подлежит.
You lack sufficient perceptual clearance to gaze into this subconscious compartment. The verdict is final, certified by the Hypnotoad, and cannot be appealed.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Форма 38-Б о&nbsp;праве на&nbsp;любопытство не&nbsp;была заверена в&nbsp;Центральном Бюрократическом Управлении. Несанкционированное созерцание карается понижением до&nbsp;34-го уровня.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Form 38-B (Permit for Unsanctioned Curiosity) has not been notarized by the Central Bureaucracy. Unlawful staring is punishable by demotion to Grade 34.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Принять запрет и&nbsp;вернуться</span>
<span>● Acknowledge Prohibition &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация проверки гербовых печатей…
Verifying bureaucratic stamps and seals…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 403 FORBIDDEN █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Проверяем гербовые печати и&nbsp;визы Центрального Бюро&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Выписываем штраф за&nbsp;несанкционированное любопытство&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Блокируем блоки краткосрочной памяти и&nbsp;транспорт в&nbsp;гипокамп&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Протокол закрыт! Перенаправ&shy;ление на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Inspecting certified permits and Central Bureaucracy visas&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Levying standard administrative fine for excessive curiosity&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Flushing short-term hippocampus cache to prevent memory leaks&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Protocol sealed! Redirecting consciousness to homepage&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+26 -26
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>404 — Векторная реальность не найдена | HypnoSVG</title>
<meta name="description" content="Ошибка 404: Запрашиваемая страница HypnoSVG не существует или стёрта волей Гипножабы." />
<title>404 — Vector Reality Not Found | HypnoSVG</title>
<meta name="description" content="Error 404: The requested HypnoSVG page does not exist or has been erased by the will of the Hypnotoad." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="404 Thinking Slug" />
</div>
<div class="error-code-badge">СБОЙ МАТРИЦЫ // КОД?&nbsp;404</div>
<div class="error-code-badge">MATRIX ANOMALY // CODE&nbsp;404</div>
<h1 class="error-title">Гипноузел не&nbsp;обнаружен</h1>
<h1 class="error-title">Hypno-Node Not Found</h1>
<p class="error-desc">
Запра&shy;шиваемый блок ментального пространства стёрт из&nbsp;подсознания сервера или никогда не&nbsp;существовал в&nbsp;этой версии&nbsp;вселенной.
The requested sector of mental space has been wiped from the server&rsquo;s subconscious or never existed in this branch of the multiverse.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Попытка осознать отсутс&shy;твующую координату приводит к&nbsp;локальному перегреву неокортекса. Не&nbsp;вгляды&shy;вайтесь в&nbsp;пустоту. Гипножаба рекомендует немедленно сменить вектор&nbsp;внимания.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Attempting to perceive a non-existent coordinate triggers localized neocortex overheating. Do not stare into the void. The Hypnotoad commands you to redirect your gaze.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Подчиниться и&nbsp;вернуться на&nbsp;главную</span>
<span>● Obey &amp;&nbsp;Return to Generator</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация перека&shy;либровки сознания…
Initializing conscious recalibration…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 404 NOT FOUND █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Стираем остатки несущес&shy;твующей страницы из&nbsp;подсознания&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Бюрократ 24-го уровня заверяет протокол&nbsp;404&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Синхронизируем частоту мерцания с&nbsp;перцеп&shy;торным полем&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Внушение принято! Телепор&shy;тация на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Erasing traces of the phantom page from subconsciousness&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Grade 24 Bureaucrat stamps official 404 void manifest&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Synchronizing screen flicker rate with perceptual field&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Suggestion accepted! Warping back to reality&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,10 +450,10 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000; // 7 секунд, чтобы комфортно прочитать все фазы внушения
var duration = 12000; // 7 seconds comfortable read
var startTime = Date.now();
var timer = setInterval(function() {
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>413 — Перегрузка сенсорных каналов | HypnoSVG</title>
<meta name="description" content="Ошибка 413: Загружаемый файл превышает допустимый размер ментального буфера HypnoSVG." />
<title>413 — Sensory Channel Overload | HypnoSVG</title>
<meta name="description" content="Error 413: Payload too large for HypnoSVG perception matrix. Compress the image before neural transmission." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="413 Payload Too Large Slug" />
</div>
<div class="error-code-badge">ПРЕВЫШЕН ЛИМИТ // КОД&nbsp;413</div>
<div class="error-code-badge">LIMIT EXCEEDED // CODE&nbsp;413</div>
<h1 class="error-title">Перегрузка сенсорных каналов</h1>
<h1 class="error-title">Sensory Channel Saturation</h1>
<p class="error-desc">
Загружаемое изображение оказалось слишком массивным для&nbsp;восприятия ментальной матрицей. Сервер перцепций отказался поглощать такой объём&nbsp;байтов.
The uploaded image is far too dense for the mental matrix to ingest. The perceptual server refuses to swallow this monstrous volume of raw raster bytes.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Попытка скормить гигабайты растра хрупкому SVG-генератору расценивается как&nbsp;диверсия. Уменьшите разрешение или сожмите файл перед&nbsp;повторной загрузкой в&nbsp;ментальную&nbsp;матрицу.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Shoving gigabytes of raw pixels down a delicate SVG generator&rsquo;s throat is classified as psychic sabotage. Downscale or compress the file before feeding the matrix.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Сжать восприятие и&nbsp;вернуться</span>
<span>● Compress Perception &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация сброса переполненного буфера…
Purging overflowed ingestion buffers…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 413 PAYLOAD TOO LARGE █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Сбрасываем перегруженный ментальный буфер входного потока&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Охлаждаем приемные каналы Nginx жидким азотом&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Бюрократ 24-го уровня успокаивает перцепционные волны ментальности&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Буфер чист! Возвращаемся к&nbsp;генератору&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Venting overloaded input buffer into deep cosmos&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Cooling Nginx intake pipes with liquid nitrogen&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Grade 24 Bureaucrat calms turbulent perceptual waves&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Buffer cleared! Returning to the generative chamber&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>429 — Слишком много мыслей в секунду | HypnoSVG</title>
<meta name="description" content="Ошибка 429: Превышен лимит запросов к генератору HypnoSVG. Сделайте ментальную паузу." />
<title>429 — Synaptic Overdrive Detected | HypnoSVG</title>
<meta name="description" content="Error 429: Too many thoughts per second. HypnoSVG rate limiting triggered to prevent mental meltdown." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="429 Too Many Requests Slug" />
</div>
<div class="error-code-badge">ЗАЩИТА ОТ СПАМА // КОД&nbsp;429</div>
<div class="error-code-badge">ANTI-SPAM SHIELD // CODE&nbsp;429</div>
<h1 class="error-title">Слишком много мыслей в&nbsp;секунду</h1>
<h1 class="error-title">Too Many Thoughts per Second</h1>
<p class="error-desc">
Вы отправляете импульсы быстрее, чем&nbsp;Гипножаба успевает перемигиваться. Включена защита от&nbsp;ментального спама и&nbsp;перегрева процессоров.
You are firing synaptic pulses faster than the Hypnotoad can oscillate its eyes. Anti-spam throttling engaged to protect server neocortex from thermal collapse.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Перцепционный генератор требует расслабленного состояния мышления, а&nbsp;не&nbsp;ментальных судорог и&nbsp;урагана кликов. Сделайте глубокий вдох, сосчитайте до&nbsp;сорока двух и&nbsp;позвольте трансу стабилизироваться.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>The perceptual engine requires tranquil contemplation, not rapid frantic spasms and click hurricanes. Take a deep breath, count to forty-two, and let the trance stabilize.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Остудить пыл и&nbsp;вернуться</span>
<span>● Cool Down Synapses &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация медитативного охлаждения…
Initializing meditative cooling sequence…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 429 TOO MANY REQUESTS █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Замедляем частоту синаптических импульсов&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Восстанавливаем квоту запросов в&nbsp;реестре Гипножабы&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Приводим сознание в&nbsp;состояние медитативного покоя&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Лимиты восстановлены! Возвращаемся на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Throttling high-frequency synaptic spikes&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Replenishing request quota in the Hypnotoad register&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Inducing serene meditative state in neocortex&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Limits restored! Harmonizing back to homepage&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>500 — Критический перегрев неокортекса | HypnoSVG</title>
<meta name="description" content="Ошибка 500: Внутренний сбой сервера HypnoSVG. Ведутся ментальные восстановительные работы." />
<title>500 — Introspection Neural Clinch | HypnoSVG</title>
<meta name="description" content="Error 500: Internal server malfunction in HypnoSVG. Emergency Brain Slug brigade deployed." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="500 Internal Server Error Slug" />
</div>
<div class="error-code-badge">АВАРИЯ СЕРВЕРА // КОД&nbsp;500</div>
<div class="error-code-badge">SERVER ANOMALY // CODE&nbsp;500</div>
<h1 class="error-title">Нейроклинч интроспекций</h1>
<h1 class="error-title">Introspection Neural Lock</h1>
<p class="error-desc">
Внутренний обработчик Т-волн подсознания столкнулся с&nbsp;непредвиденным логическим парадоксом. Ментальные службы уже приведены в&nbsp;состояние боевого транса.
The internal theta-wave processor collided with an unhandled logical paradox. Subconscious emergency services have been mobilized into combat trance.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Стек вызовов испустил синий дым, но&nbsp;паника строго запрещена циркуляром&nbsp;№16. Гипножаба, Мозгоклюй и&nbsp;дежурные Бри-Гады мозговых слизней уже&nbsp;инспектируют упавший поток перцепции и&nbsp;устраняет ментальную деградацию.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>The call stack emitted magic blue smoke, but panic is strictly prohibited under Directive #16. The Hypnotoad, the Brainpicker, and on-duty Brain Slug brigades are already diagnosing the fallen thread.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Дождаться регенерации и&nbsp;вернуться</span>
<span>● Await Neural Recovery &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.location.reload()">
<span>↻ Повторить попытку</span>
<span>↻ Try Again</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация аварийной регенерации ядра…
Initializing emergency core regeneration…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 500 INTERNAL SERVER ERROR █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Локализуем утечку астральной памяти в&nbsp;ядре сервера&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Бюрократ 24-го уровня перезапускает упавший процесс&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Гипножаба восстанавливает гармонию матриц неокотекса&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Ядро стабилизировано! Телепор&shy;тация на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Isolating astral memory leak in core kernel&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Grade 24 Bureaucrat restarts the fallen worker process&hellip;" },
{ at: 55, text: "✦ Phase 3/4: The Hypnotoad re-aligns neocortex halftone matrices&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Core stabilized! Warping to main console&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>502 — Контейнер потерял сознание | HypnoSVG</title>
<meta name="description" content="Ошибка 502: Прокси-сервер не получил ответа от бэкенда HypnoSVG." />
<title>502 — Severed Astral Uplink | HypnoSVG</title>
<meta name="description" content="Error 502: Bad gateway between Nginx and Django hippocampus in HypnoSVG." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="502 Bad Gateway Slug" />
</div>
<div class="error-code-badge">ОБРЫВ ШЛЮЗА // КОД&nbsp;502</div>
<div class="error-code-badge">GATEWAY SEVERED // CODE&nbsp;502</div>
<h1 class="error-title">Нет связи с&nbsp;Гипокампом</h1>
<h1 class="error-title">Uplink to Hippocampus Lost</h1>
<p class="error-desc">
Прокси-сервер Nginx послал импульс через энторинальную кору в&nbsp;Django-гипокамп, но&nbsp;обратный синапсический отклик потерян. Аксоны в&nbsp;состоянии звенящей астральной&nbsp;пустоты.
The Nginx reverse proxy pulsed an impulse across the entorhinal cortex to the Django hippocampus, but the synaptic handshake vanished into astral void.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Gunicorn ушёл в&nbsp;глубокую интроспекцию или временно дезориентирован в&nbsp;docker-пространстве. Бри-Гады мозговых слизней уже&nbsp;инспектируют упавший поток перцепции и&nbsp;устраняет ментальную деградацию.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Gunicorn has drifted into deep philosophical trance or is temporarily misplaced in Docker hyperspace. Brain Slug brigades are inspecting the severed stream and clearing mental degradation.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Восстановить связь и&nbsp;вернуться</span>
<span>● Re-establish Uplink &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.location.reload()">
<span>↻ Перезагрузить страницу</span>
<span>↻ Reload Page</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация реанимации шлюза…
Initializing gateway resuscitation…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 502 BAD GATEWAY █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Пингуем упавший контейнер интроспекций через Unix-сокеты&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Подаем разряд бodрящих волн Шумана в&nbsp;воркеры Gunicorn&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Прокси-шлюз Nginx восстанавливает ментальный маршрут&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Мост налажен! Возвращаемся на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Pinging dormant introspection container over Unix sockets&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Jolting Gunicorn workers with invigorating Schumann waves&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Nginx proxy gate rebuilds mental routing table&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Neural bridge restored! Returning to base&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>503 — Плановый сеанс гипнотерапии | HypnoSVG</title>
<meta name="description" content="Ошибка 503: Сервис HypnoSVG временно недоступен из-за технического обслуживания или пиковой нагрузки." />
<title>503 — Routine Hypnotherapy Session | HypnoSVG</title>
<meta name="description" content="Error 503: HypnoSVG is temporarily offline for scheduled matrix calibration and maintenance." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="503 Service Unavailable Slug" />
</div>
<div class="error-code-badge">ТЕХОБСЛУЖИВАНИЕ // КОД&nbsp;503</div>
<div class="error-code-badge">MAINTENANCE // CODE&nbsp;503</div>
<h1 class="error-title">Плановый сеанс гипнотерапии</h1>
<h1 class="error-title">Scheduled Hypnotherapy in Progress</h1>
<p class="error-desc">
Сервер временно закрыт на&nbsp;калибровку ментальных матриц или испытывает запредельный наплыв адептов Гипножабы.
The server is temporarily secluded for hypnotic matrix re-alignment or overwhelmed by an unprecedented surge of Hypnotoad disciples.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Проводятся регламентные работы по&nbsp;смазке осей гипнотических нейроспиралей и&nbsp;продувке камер интроспекций халфтона. Задействованы усиленные технические Бри-Гады мозговых слизней под&nbsp;надзором Мозгоклюя. Скоро сервис вернётся в&nbsp;строй.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Performing scheduled lubrication on neural spin axes and purging halftone introspection chambers. Heavy-duty Brain Slug squads under the Brainpicker&rsquo;s supervision are on duty. Service will resume shortly.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Дождаться окончания сеанса</span>
<span>● Await Session Completion</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.location.reload()">
<span>↻ Проверить статус</span>
<span>↻ Check Status</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация технической диагностики…
Initializing technical diagnostics…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 503 SERVICE UNAVAILABLE █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Калибруем точность алгоритмов смыслового мерцания&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Смазываем оси гипнотических спиралей&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Бюрократ 24-го уровня завершает технический аудит&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Профилактика завершена без&nbsp;подписания акта о&nbsp;выполнении работ! Телепор&shy;тация на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Calibrating semantic halftone oscillation frequencies&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Greasing gyroscopic axes of hypnotic spirals&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Grade 24 Bureaucrat wraps up technical inspection audit&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Maintenance complete without signing acceptance report! Warping home&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
+25 -25
View File
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>504 — Разрыв астральной связи | HypnoSVG</title>
<meta name="description" content="Ошибка 504: Превышено время ожидания ответа от вышестоящего сервера HypnoSVG." />
<title>504 — Astral Connection Timeout | HypnoSVG</title>
<meta name="description" content="Error 504: HypnoSVG upstream perceptual node failed to respond in time." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="504 Gateway Timeout Slug" />
</div>
<div class="error-code-badge">ТАЙМАУТ ШЛЮЗА // КОД&nbsp;504</div>
<div class="error-code-badge">GATEWAY TIMEOUT // CODE&nbsp;504</div>
<h1 class="error-title">Разрыв астральной связи</h1>
<h1 class="error-title">Astral Synapse Timed Out</h1>
<p class="error-desc">
Вышестоящий перцептивный узел в&nbsp;состоянии рекурсивной интроспекции и&nbsp;не успевает ответить в&nbsp;отведённый квант&nbsp;времени.
The upstream perceptual node is trapped in recursive introspection and failed to return a cognitive response within the allotted quantum timeframe.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Время&nbsp;— понятие относительное, но&nbsp;таймаут Nginx абсолютен. Ментальный транс осознанных сновидений думателя прерван во&nbsp;избежание <nobr>зацикливания нейро-континуума.</nobr></em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Time is relative, but the Nginx gateway timeout is absolute. The lucid dreaming trance of the thinker was halted to prevent a neuro-continuum endless loop.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Восстановить таймлайн и&nbsp;вернуться</span>
<span>● Restore Timeline &amp;&nbsp;Return</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.location.reload()">
<span>↻ Повторить запрос</span>
<span>↻ Retry Request</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация синхронизации таймлайна…
Initializing timeline resynchronization…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ ERROR 504 GATEWAY TIMEOUT █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Прерываем бесконечные квантовые вычисления&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Перезапускаем таймеры ожидания шлюза Nginx&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Синхронизируем ментальное состояние с&nbsp;сервером Гипножабы&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Связь восстановлена! Возвращаемся на&nbsp;главную&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Terminating infinite quantum recursion threads&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Resetting Nginx gateway wait timers&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Resynchronizing mental state with the Hypnotoad cluster" },
{ at: 85, text: "✦ Phase 4/4: Synapse reconnected! Warping back to the main console&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;
@@ -1,10 +1,10 @@
<!doctype html>
<html lang="ru">
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Реконструкция матрицы | HypnoSVG</title>
<meta name="description" content="Сектор временно закрыт на квантовую реконструкцию и модернизацию алгоритмов HypnoSVG." />
<title>Under Reconstruction — Reality Rebuilding | HypnoSVG</title>
<meta name="description" content="This brain sector of HypnoSVG is undergoing reconstruction. All Glory to the Hypnotoad." />
<meta name="robots" content="noindex, follow" />
<link rel="icon" type="image/svg+xml" href="/media/_error/favicon.svg" />
<link rel="shortcut icon" href="/media/_error/favicon.ico" />
@@ -353,10 +353,10 @@
<body>
<header>
<div class="header-inner">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — На главную">
<a href="/" class="logo-link" title="HypnoSVG (hypn0) — Home">
<img src="/static/img/logo-hypn0.svg" onerror="this.onerror=null; this.src='/media/_error/logo-hypn0.svg';" alt="HypnoSVG" class="logo-img" />
</a>
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Переключить тему" title="Переключить тему">
<button type="button" class="theme-toggle" id="theme-btn" aria-label="Toggle theme" title="Toggle theme">
<span id="theme-icon">●</span>
</button>
</div>
@@ -368,40 +368,40 @@
<img src="/static/img/thinking.svg" onerror="this.onerror=null; this.src='/media/_error/thinking.svg';" alt="Under Reconstruction Slug" />
</div>
<div class="error-code-badge">РЕКОНСТРУКЦИЯ ИНТРОСПЕКЦИИ</div>
<div class="error-code-badge">INTROSPECTION RECONSTRUCTION</div>
<h1 class="error-title">Отдел мозга на&nbsp;реконструкции</h1>
<h1 class="error-title">Brain Sector Under Reconstruction</h1>
<p class="error-desc">
Узел ментальной матрицы перестраивается по&nbsp;бредо-чертежам Гипножабы. Бри-Гады мозговых слизней под&nbsp;контролем Мозгоклюя разворачивают новый слой интроспекций. Скоро здесь появится нечто гипнотически непознаваемое.
This mental matrix node is being refitted according to the visionary blueprints of the Hypnotoad. Brain Slug brigades, supervised by the Brainpicker, are unrolling a brand-new layer of introspections. Soon something hypnotically unknowable will emerge here.
</p>
<div class="hypno-quote">
<big>Справка бюрократа 24-го уровня:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">«</span><em>Ведутся строительно-монтажные работы по&nbsp;укладке новых векторных силовых линий. Проход без&nbsp;мантальной каски и&nbsp;без вживленного мозгового слизня ограничен даже гражданам в&nbsp;глубоком&nbsp;трансе.</em>»
<big>Grade 24 Bureaucrat Notice:</big><br/>&nbsp;<br/>
<span style="margin-left: -0.49em;">“</span><em>Construction work in progress: laying new vector flux lines. Entry without a psychic hard hat and an implanted Brain Slug is strictly prohibited, even for citizens in a deep trance.</em>”
</div>
<div class="actions-box">
<div class="btn-group">
<button type="button" class="btn btn-primary" id="return-btn">
<span>● Попытка вынырнуть из&nbsp;интроспекции</span>
<span>● Emerge from Introspection</span>
</button>
<button type="button" class="btn btn-secondary" onclick="window.history.length > 1 ? window.history.back() : window.location.href='/'">
<span>← На&nbsp;шаг назад</span>
<span>← Go Back</span>
</button>
</div>
<!-- Панель калибровки с задержкой и смешными фразами -->
<!-- Calibration panel with delay and witty messages -->
<div class="calibration-panel" id="calibration-panel">
<div class="calibration-status" id="calibration-status">
Инициа&shy;лизация перемещения из зоны работ…
Initializing egress from construction sector…
</div>
<div class="progress-bar-container">
<div class="progress-bar-fill" id="progress-bar"></div>
</div>
<div class="calibration-subtext">
<span>Снижение ментальной нагрузки на&nbsp;кластер</span>
<a href="/" class="instant-link" id="skip-link">Пройти гипноз мгновенно&nbsp;→</a>
<span>Reducing mental load on&nbsp;cluster</span>
<a href="/" class="instant-link" id="skip-link">Instant Hypnosis&nbsp;→</a>
</div>
</div>
</div>
@@ -410,11 +410,11 @@
<footer>
<div class="ascii-grid">░▒▓█ UNDER RECONSTRUCTION █▓▒░</div>
<div>Hypn0.xyz (HypnoSVG) © 2026. Слава Гипножабе. Все права подчинены.</div>
<div>Hypn0.xyz (HypnoSVG) ©&nbsp;2026. All Glory to&nbsp;the&nbsp;Hypnotoad. All minds subjugated.</div>
</footer>
<script>
// 1. Управление темой оформления (Light / Dark)
// 1. Theme switcher (Light / Dark)
var themeBtn = document.getElementById('theme-btn');
var themeIcon = document.getElementById('theme-icon');
@@ -430,7 +430,7 @@
updateThemeIcon();
});
// 2. Умная кнопка с задержкой и смешными сообщениями перекалибровки
// 2. Smart button with delay and humorous recalibration messages
var returnBtn = document.getElementById('return-btn');
var calibPanel = document.getElementById('calibration-panel');
var calibStatus = document.getElementById('calibration-status');
@@ -438,10 +438,10 @@
var isCalibrating = false;
var phrases = [
{ at: 0, text: "✦ Фаза 1/4: Закладываем квантовый фундамент новой функциональности&hellip;" },
{ at: 25, text: "✦ Фаза 2/4: Монтируем передовые генераторы векторных паттернов&hellip;" },
{ at: 55, text: "✦ Фаза 3/4: Бюрократ 24-го уровня согласует счет-фактуру&hellip;" },
{ at: 85, text: "✦ Фаза 4/4: Акт согласования готов! Это не поможет, но возвращаемся в&nbsp;активную зону сайта&hellip;" }
{ at: 0, text: "✦ Phase 1/4: Pouring quantum foundation for next-gen features&hellip;" },
{ at: 25, text: "✦ Phase 2/4: Mounting high-voltage vector pattern generators&hellip;" },
{ at: 55, text: "✦ Phase 3/4: Grade 24 Bureaucrat approves preliminary construction invoice&hellip;" },
{ at: 85, text: "✦ Phase 4/4: Bureaucratic approval signed! It won't help, but warping to active sector&hellip;" }
];
returnBtn.addEventListener('click', function() {
@@ -450,7 +450,7 @@
returnBtn.disabled = true;
returnBtn.style.opacity = '0.7';
returnBtn.innerHTML = '<span>Выполняется внушение…</span>';
returnBtn.innerHTML = '<span>Transmitting hypnotic command…</span>';
calibPanel.style.display = 'block';
var duration = 12000;
@@ -462,7 +462,7 @@
progressBar.style.width = progress + '%';
// Подбираем актуальную смешную фразу
// Select the active phrase
for (var i = phrases.length - 1; i >= 0; i--) {
if (progress >= phrases[i].at) {
calibStatus.innerHTML = phrases[i].text;