From 9227f2de3011ec95ecfbe57d038d0236ab4f530c Mon Sep 17 00:00:00 2001 From: tolst Date: Thu, 23 Apr 2026 19:38:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B0=D0=BD=D0=BD=D0=BE=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA=20=D0=B8=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82=D0=B8=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D0=BE=D0=BB=D0=BE=D0=B2=D0=BA=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/WikiHeader.astro | 95 ++++++++++++++++ src/content/docs/general.md | 17 +++ src/content/docs/rules.md | 193 +++++++++++++++++++++++++------- src/styles/wiki-egames.css | 88 +++++++++++++-- 4 files changed, 342 insertions(+), 51 deletions(-) diff --git a/src/components/WikiHeader.astro b/src/components/WikiHeader.astro index a6ad8e9..936397a 100644 --- a/src/components/WikiHeader.astro +++ b/src/components/WikiHeader.astro @@ -185,6 +185,99 @@ const topLinks = [ }); }; + const trimDestination = (value, maxLength = 42) => { + if (value.length <= maxLength) return value; + return `${value.slice(0, Math.max(0, maxLength - 1))}…`; + }; + + const decodePath = (value) => { + try { + return decodeURIComponent(value); + } catch { + return value; + } + }; + + const annotateLinkDestinations = () => { + const links = document.querySelectorAll('a[href]'); + + links.forEach((linkNode) => { + if (!(linkNode instanceof HTMLAnchorElement)) return; + if (linkNode.dataset.linkAnnotated === 'true') return; + + const rawHref = linkNode.getAttribute('href')?.trim(); + if (!rawHref || rawHref.toLowerCase().startsWith('javascript:')) return; + + let parsedUrl; + try { + parsedUrl = new URL(rawHref, window.location.href); + } catch { + return; + } + + const isHashOnly = rawHref.startsWith('#'); + const isHttp = parsedUrl.protocol === 'http:' || parsedUrl.protocol === 'https:'; + const isMail = parsedUrl.protocol === 'mailto:'; + const isTel = parsedUrl.protocol === 'tel:'; + const isExternal = isHttp && parsedUrl.origin !== window.location.origin; + const isSamePageAnchor = + !isExternal && !!parsedUrl.hash && parsedUrl.pathname === window.location.pathname; + + const isContentLink = linkNode.closest('.sl-markdown-content') instanceof HTMLElement; + const shouldDecorate = + isContentLink && + !isHashOnly && + !linkNode.classList.contains('sl-anchor-link') && + !linkNode.classList.contains('map-cta-button') && + !linkNode.classList.contains('map-ghost-button') && + !linkNode.classList.contains('sl-link-button'); + + if (shouldDecorate) { + let kind = 'internal'; + if (isExternal) kind = 'external'; + else if (isMail) kind = 'mail'; + else if (isTel) kind = 'tel'; + else if (isSamePageAnchor) kind = 'anchor'; + linkNode.dataset.linkKind = kind; + + let destination = ''; + if (isExternal) destination = parsedUrl.hostname.replace(/^www\./, ''); + else if (isMail) destination = rawHref.replace(/^mailto:/i, ''); + else if (isTel) destination = rawHref.replace(/^tel:/i, ''); + else destination = `${decodePath(parsedUrl.pathname)}${parsedUrl.hash || ''}`; + if (destination) { + linkNode.dataset.linkDestination = trimDestination(destination); + } + } + + if (isExternal) { + const relValues = new Set((linkNode.rel || '').split(/\s+/).filter(Boolean)); + relValues.add('noopener'); + relValues.add('noreferrer'); + linkNode.rel = Array.from(relValues).join(' '); + if (!linkNode.target) { + linkNode.target = '_blank'; + } + } + + if (!linkNode.title) { + if (isHashOnly || isSamePageAnchor) { + linkNode.title = `Переход к разделу: ${parsedUrl.hash || rawHref}`; + } else if (isExternal) { + linkNode.title = `Внешняя ссылка: ${parsedUrl.hostname.replace(/^www\./, '')}`; + } else if (isMail) { + linkNode.title = `Написать: ${rawHref.replace(/^mailto:/i, '')}`; + } else if (isTel) { + linkNode.title = `Позвонить: ${rawHref.replace(/^tel:/i, '')}`; + } else { + linkNode.title = `Перейти: ${decodePath(parsedUrl.pathname)}${parsedUrl.hash || ''}`; + } + } + + linkNode.dataset.linkAnnotated = 'true'; + }); + }; + const copyTextToClipboard = async (value) => { if (navigator.clipboard?.writeText) { await navigator.clipboard.writeText(value); @@ -312,6 +405,7 @@ const topLinks = [ sanitizeNavLabels(); sanitizeDocHeadings(); decorateSectionIcons(); + annotateLinkDestinations(); bindCopyIpChips(); setReadProgress(); window.addEventListener('scroll', setReadProgress, { passive: true }); @@ -329,6 +423,7 @@ const topLinks = [ sanitizeNavLabels(); sanitizeDocHeadings(); decorateSectionIcons(); + annotateLinkDestinations(); bindCopyIpChips(); setReadProgress(); }); diff --git a/src/content/docs/general.md b/src/content/docs/general.md index 1d595a3..78cac55 100644 --- a/src/content/docs/general.md +++ b/src/content/docs/general.md @@ -19,3 +19,20 @@ description: "Общая информация и веб-карта сервер Как использовать карту для городов + +--- + +## Как сменить скин + +На сервере доступна система скинов, которая позволяет установить любой внешний вид. Скин будет отображаться в чате, на карте и в других местах. + +### Способ 1. Через команду + +- для установки: `/skin set <ссылка на скин / ник лицензионного аккаунта>` +- для сброса: `/skin clear` + +### Способ 2. Через сайт SkinRestorer + +1. Загрузите скин файлом на сайт: [SkinRestorer](https://skinsrestorer.net/upload) +2. Нажмите кнопку `GENERATE` и скопируйте полученную команду. +3. Введите команду в чате Minecraft. diff --git a/src/content/docs/rules.md b/src/content/docs/rules.md index 2e7d3cc..56c44ec 100644 --- a/src/content/docs/rules.md +++ b/src/content/docs/rules.md @@ -2,6 +2,10 @@ title: "Правила" description: "Полный свод правил сервера PARABOX: пункты, подпункты, санкции и порядок разбирательств." --- +# Правила сервера **PARABOX** + +--- + ### Как работает этот документ Этот документ нужен для того, чтобы на сервере **PARABOX** были: @@ -116,10 +120,9 @@ description: "Полный свод правил сервера PARABOX: пун Базовый порядок урегулирования споров на сервере следующий: 1. добровольное мирное урегулирование; -2. консул; -3. президент; -4. верховный суд; -5. главная администрация как высшая инстанция. +2. суд; +3. президент и консул в пределах своих полномочий; +4. главная администрация как высшая инстанция. #### Взаимная подотчётность ветвей власти Президент, суд и исполнительная власть находятся в системе взаимного контроля, влияния и подотчётности. @@ -173,8 +176,8 @@ description: "Полный свод правил сервера PARABOX: пун ### 1.6 Границы мира Мир сервера ограничен следующими рамками: -- верхний мир — **20 000 × 20 000** блоков; -- нижний мир — **3 000 × 3 000** блоков. +- верхний мир — **20 000 × 20 000** блоков (10000 блоков во все стороны сервера); +- нижний мир — **3 000 × 3 000** блоков (1500 блоков во все стороны сервера). Выход за установленные границы, обход ограничений мира и попытки использовать их в ущерб серверу запрещены. @@ -259,7 +262,7 @@ description: "Полный свод правил сервера PARABOX: пун - по инициативе президента; - через установленный порядок обсуждения и согласования. -Для вступления изменений в силу требуется согласование с администрацией и предусмотренное сервером подтверждение со стороны игроков, если такая процедура объявлена как обязательная. Также о всех изменениях в своде правил администрация должна оповещать игроков. +Для вступления изменений в силу требуется согласование с администрацией и предусмотренное сервером подтверждение со стороны игроков, если такая процедура объявлена как обязательная. --- @@ -322,7 +325,6 @@ description: "Полный свод правил сервера PARABOX: пун - блокировать проходы; - перекрывать общественные объекты; - срывать ивенты; -- мешать лору и сюжету; - преследовать игроков; - постоянно провоцировать их на конфликт; - использовать механики для вреда чужому прогрессу. @@ -353,7 +355,7 @@ description: "Полный свод правил сервера PARABOX: пун На общественных объектах действуют правила, установленные их владельцами, городом, государством, президентом или судом, если они не противоречат основным правилам сервера. ### 2.14 Ключевые общественные точки -Ближайший общественный портал в Энд, незерская магистраль и иные стратегически важные точки мира, признанные общественными, не могут использоваться в личных интересах, если это ограничивает других игроков. +Ближайший общественный портал в Энд и иные стратегически важные точки мира, признанные общественными, не могут использоваться в личных интересах, если это ограничивает других игроков. Запрещено: @@ -476,8 +478,8 @@ description: "Полный свод правил сервера PARABOX: пун Администрация вправе отдельно разрешать или запрещать иные моды по своему решению. -### 4.4 Freecam + ReplayMode -Использование Freecam + ReplayMode с прохождением через блоки, просмотром скрытых помещений, баз, тайников, шахт и иных недоступных зон запрещено. +### 4.4 Freecam и ReplayMode +Использование Freecam, ReplayMode, миникарт с отображением пещер и сущностей, или модов с хожим функционалом, таким как прохождением через блоки, просмотром скрытых помещений, баз, тайников, шахт и иных недоступных зон и сущностей запрещено. ### 4.5 Прямо запрещённые инструменты Запрещены, в том числе: @@ -557,7 +559,7 @@ AFK допускается только в разумных пределах и - фермы; - мастерские; - шахтные комплексы; -- определенные части города; +- города; - служебные объекты; - любые явно обозначенные или логически принадлежащие кому-либо места. @@ -571,7 +573,7 @@ AFK допускается только в разумных пределах и - признана городом, судом, президентом либо администрацией. ### 5.3 Спавн -Территория спавна составляет **500×500 блоков**. +Территория спавна составляет **500×500 блоков** (250 блоков во все стороны от нулевых координат). На спавне запрещены: @@ -583,7 +585,7 @@ AFK допускается только в разумных пределах и - действия, мешающие использованию спавна как общественной зоны. ### 5.4 Регистрация города -Город считается официальным только после подачи заявки по форме и её подтверждения. +Город считается официальным только после подачи заявки и её подтверждения. Заявка на регистрацию города подтверждается: @@ -600,7 +602,7 @@ AFK допускается только в разумных пределах и - местные проекты; - участие в суде и политических процессах. -Все внутренние правила города действуют только в части, не противоречащей правилам сервера. Внутренние правила и распорядки города, также могут быть пересмотрены решением вышестоящей власти. +Все внутренние правила города действуют только в части, не противоречащей правилам сервера. ### 5.6 Открытые общественные зоны города Каждый официальный город обязан иметь открытые территории для приёма игроков и нормального публичного взаимодействия. @@ -766,15 +768,13 @@ RP является важной частью сервера **PARABOX**, но ### 6.4 Лор сервера Официальный лор сервера продвигается, направляется и при необходимости корректируется администрацией. -Игроки и города могут участвовать в лоре и развивать собственные сюжеты, если они: +Игроки могут участвовать в лоре и развивать собственные сюжеты, если они: - не противоречат основным правилам; - не ломают атмосферу сервера; - не присваивают игроку необоснованную власть; - не мешают общему развитию проекта. -Также игроки могут связывать свой лор и идеи, с помощью администрации, после тщательного изучения и одобрения с их стороны. - ### 6.5 Политические и государственные процессы RP-политика, законы, указы, решения органов власти, выборы и государственные процессы допустимы, если они не противоречат правилам сервера и не превращаются в средство злоупотребления. @@ -804,7 +804,7 @@ RP-политика, законы, указы, решения органов в ### 7.2 Срок полномочий Президент, судья и консул избираются на срок **1 месяц**. -После завершения срока полномочий проводятся новые выборы или иная предусмотренная сервером процедура подтверждения новой власти. При этом президентом нельзя становиться более 2 сроков за общее время. +После завершения срока полномочий проводятся новые выборы или иная предусмотренная сервером процедура подтверждения новой власти. ### 7.3 Выборность должностей На сервере могут выбираться: @@ -818,7 +818,7 @@ RP-политика, законы, указы, решения органов в Запрещено: -- одновременно занимать две или более высшие выборные должности; +- одновременно занимать две или три высшие выборные должности; - одновременно участвовать как кандидат сразу в нескольких выборах в рамках одного избирательного цикла; - использовать снятие кандидатуры с одной должности для скрытого обхода ограничений другой должности, если это нарушает порядок выборов. @@ -1290,7 +1290,7 @@ RP-политика, законы, указы, решения органов в Консул не получает автоматически: - административные команды; -- право отменять суд; +- право отменять суд без причины; - право подменять администрацию; - право действовать вне закона и процедуры. @@ -1312,6 +1312,9 @@ RP-политика, законы, указы, решения органов в - использовать служебные инструменты проверки, включая **CoreProtect**, если доступ к ним предоставлен сервером; - устанавливать, кто посещал территорию, кто взаимодействовал с блоками, кто мог совершить кражу или иное действие; - проводить обследования местности; +- проводить оперативные мероприятия и оперативные расследования в пределах закона и своей компетенции; +- собирать, фиксировать и передавать в суд улики, полученные законным способом; +- использовать данные CoreProtect и иных разрешённых сервером инструментов для получения улик против предполагаемого нарушителя; - организовывать законные осмотры и проверки; - проверять инвентарь игрока, если это необходимо для задержания, расследования, исполнения решения суда или иной установленной процедуры; - назначать исполнителей и распределять обязанности в рамках исполнительной ветви, если это предусмотрено устройством сервера; @@ -1342,7 +1345,7 @@ RP-политика, законы, указы, решения органов в - вмешиваться в дела администрации вне своей компетенции. ### 11.7 Основания для действий исполнительной власти -Задержания, обследования, проверки инвентаря, охрана, конфискации и иные исполнительные действия допускаются только при наличии одного из оснований: +Задержания, обследования, проверки инвентаря, охрана, конфискации, оперативные мероприятия, оперативные расследования и иные исполнительные действия допускаются только при наличии одного из оснований: - решения суда; - официального расследования; @@ -1351,6 +1354,8 @@ RP-политика, законы, указы, решения органов в - прямого поручения уполномоченного органа сервера; - чрезвычайной ситуации, где требуется немедленное вмешательство. +При оперативных расследованиях исполнительная власть вправе использовать CoreProtect и иные разрешённые сервером инструменты для поиска следов нарушений, установления действий игроков и получения улик, пригодных для передачи в суд или администрации. + ### 11.8 Обязанность фиксации Исполнительная власть обязана по возможности фиксировать свои действия. @@ -1398,6 +1403,14 @@ RP-политика, законы, указы, решения органов в - политические и должностные дела; - иные вопросы, переданные на рассмотрение. +Суд также отвечает за: + +- хранение судебных документов; +- ведение делопроизводства; +- оформление решений; +- работу с судебными материалами; +- передачу официальных документов участникам процесса. + ### 12.3 Как подаётся дело Дело может быть подано через: @@ -1417,7 +1430,40 @@ RP-политика, законы, указы, решения органов в 6. требования заявителя; 7. свидетелей, если они есть. -### 12.4 Ведение доказательств +### 12.4 Досудебный порядок урегулирования +До обращения в суд стороны обязаны попытаться урегулировать конфликт в досудебном порядке, если это возможно по характеру спора. + +#### 12.4.1 Что включает досудебный порядок +Досудебный порядок предполагает: + +- попытку мирного урегулирования; +- обращение к другой стороне с претензией; +- предложение решить вопрос без судебного разбирательства; +- фиксацию того, что спор действительно пытались урегулировать. + +В суде участники не выясняют отношения заново, а излагают свою позицию, предъявляют доказательства и добиваются правового решения. + +#### 12.4.2 Если досудебный порядок не соблюдён +Если досудебный порядок отсутствовал без уважительной причины, суд вправе отказать в принятии заявления или оставить дело без рассмотрения до соблюдения предварительного порядка урегулирования. + +### 12.5 Государственная пошлина +Подача судебного заявления облагается фиксированной государственной пошлиной в размере **10 ар.** + +Иной размер, льготы, освобождение или особый порядок могут быть установлены отдельным решением сервера, суда или администрации. + +### 12.6 Предоставление доказательств до заседания +Все основные доказательства необходимо предоставить судье **до начала судебного заседания**. + +#### 12.6.1 Кому можно передать доказательства +В крайнем случае доказательства могут быть переданы: + +- судье; +- либо любому члену администрации, если судья временно недоступен. + +#### 12.6.2 Последствия поздней подачи +Несвоевременная подача доказательств может повлиять на их оценку, допустимость или возможность учёта в конкретном заседании. + +### 12.7 Ведение доказательств Для защиты своих интересов в суде игрокам настоятельно рекомендуется вести фиксацию важных событий. Желательно использовать: @@ -1433,7 +1479,7 @@ RP-политика, законы, указы, решения органов в Чем лучше сторона фиксирует события, тем проще суду установить факты. -### 12.5 Доказательства +### 12.8 Доказательства Суд вправе учитывать: - скриншоты; @@ -1444,25 +1490,69 @@ RP-политика, законы, указы, решения органов в - показания свидетелей; - координаты; - состояние территории; -- логи и технические данные, если они предоставлены уполномоченным лицом. +- логи и технические данные, если они предоставлены уполномоченным лицом; +- улики, полученные исполнительной властью законным способом. -### 12.6 Поведение в суде -Стороны и участники процесса обязаны вести себя в суде уважительно. +### 12.9 Правила поведения в судебном заседании +В судебном заседании участники обязаны вести себя корректно и уважительно. -За непристойное, оскорбительное, срывающее процесс или демонстративно неуважительное поведение суд может вынести: +#### 12.9.1 Запрещается +Запрещается: -- предупреждение; -- удаление с заседания; -- дополнительный штраф; -- иные процессуальные меры в пределах своих полномочий. +- выяснять личные отношения вместо изложения позиции по делу; +- бегать, прыгать и иным образом нарушать порядок; +- отвлекать суд, присяжных, если они предусмотрены процессом, или иных участников; +- оскорблять присяжных, потерпевших, ответчиков, истцов, прокурора, заинтересованных лиц, понятых, свидетелей, судью и иных участников процесса; +- вмешиваться в действия суда и других участников процесса; +- мешать ведению разбирательства репликами, вопросами и комментариями без разрешения суда; +- допускать шум, спам, хаос и иные формы неуважения к процессу. -### 12.7 Участие президента в судебном процессе +#### 12.9.2 Участники обязаны +Участники обязаны: + +- выполнять законные требования и распоряжения судьи; +- соблюдать порядок; +- не проявлять неуважение к суду и другим участникам процесса; +- бережно относиться к имуществу суда; +- соблюдать чистоту, тишину и порядок в здании суда и на его территории. + +### 12.10 Формы обращения к суду +#### 12.10.1 Допустимые формы обращения +Во время судебного заседания к суду обращаются следующим образом: + +- **если гражданский процесс** — **«Уважаемый Суд»**; +- **если уголовный процесс** — **«Ваша честь»**. + +### 12.11 Порядок выступления в судебном заседании +Свои объяснения, показания, вопросы другим участникам и ответы на вопросы участники дают **стоя**, если суд не разрешит иное. + +#### 12.11.1 Для уголовного процесса +Участники дают объяснение своей позиции и доказывают её, **без споров между собой**. +Они не ведут взаимную полемику и не отвечают по кругу на тезисы друг друга, если суд прямо этого не разрешил. + +#### 12.11.2 Для гражданского процесса +Участники дают объяснение своей позиции и доказывают её. +Допускается **один раз** ответить на **один основной тезис** противоположной стороны, без превращения заседания в спор между участниками. + +### 12.12 Фото-, видео- и иная фиксация заседания +Лица, присутствующие в зале суда и осуществляющие разрешённую судом фото- и видеосъёмку, трансляцию, запись или иную фиксацию заседания, не должны мешать порядку в судебном заседании. + +### 12.13 Отсутствие участника и доверенное лицо +#### 12.13.1 Участие доверенного лица +Если потерпевший, ответчик, истец или иной участник не может присутствовать на судебном заседании, вместо него может присутствовать доверенное лицо, если такой формат допустим по делу и признан судом. + +#### 12.13.2 Если доверенное лицо отсутствует +Если доверенное лицо не предусмотрено либо не представлено, суд вправе провести заседание без отсутствующей стороны на основании доказательств, заранее переданных суду, в том числе через Telegram или иной официальный канал связи. + +### 12.14 Поведение в суде и участие президента в процессе +#### 12.14.1 В каких ролях может выступать президент Президент в рамках суда может выступать: - как адвокат; - как подсудимый; - как лицо, исполняющее роль прокурора. +#### 12.14.2 Какие ограничения действуют для президента Однако при этом президент: - не получает процессуальных преимуществ; @@ -1470,27 +1560,45 @@ RP-политика, законы, указы, решения органов в - не может требовать особого порядка только по причине должности; - обязан подчиняться регламенту суда наравне с другими участниками. -### 12.8 Ложные обращения +### 12.15 Выдача решений и материалов дела +Все официальные решения суда, ходы дела, постановления и иные документы выдаются участникам процесса после официального постановления суда для последующего: + +- обжалования; +- апелляции; +- передачи в вышестоящие органы; +- исполнения решения. + +### 12.16 Ложные обращения Запрещено подавать ложные иски, фальшивые доказательства, поддельные обвинения и использовать суд как инструмент травли. -### 12.9 Решения суда -Суд может выносить, например, следующие наказания и меры: +### 12.17 Меры за нарушение порядка в суде и решения суда +#### 12.17.1 Возможные меры +За нарушение порядка в суде либо по итогам рассмотрения дела суд может применить одну или несколько мер: - предупреждение; +- удаление с судебного заседания; +- удаление с заседания после **3 предупреждений**; +- дополнительный штраф; - обязательство вернуть имущество; - компенсацию; -- штраф; - общественные работы; - тюремное заключение; - ограничение прав; - временное отстранение от должности; - запрет на отдельные действия; +- мут в Minecraft при неоднократных нарушениях в игровом чате; +- мут в Discord при неоднократных нарушениях в чате или голосовых каналах; +- наложение ареста на имущество; +- ограничение свободы; +- исправительные работы; +- изъятие имущества с последующим возвращением игроку, законному владельцу либо передаче администрации по законному решению; +- лишение права занимать определённую должность или заниматься определённой деятельностью; - иные законные меры, предусмотренные сервером. -### 12.10 Исполнение судебных решений +### 12.18 Исполнение судебных решений Исполнение решений суда обеспечивает консул и исполнительная власть в пределах своих полномочий. -### 12.11 Пределы суда +### 12.19 Пределы суда Суд не вправе легализовывать: - читы; @@ -1500,10 +1608,11 @@ RP-политика, законы, указы, решения органов в - слив данных; - любые иные прямые нарушения основных правил сервера. -### 12.12 Апелляция +### 12.20 Апелляция Сторона вправе обжаловать решение суда в установленном порядке. Высшей инстанцией по исключительным делам и конфликтам между органами власти выступает администрация. -### 12.13 Роль администрации в судебной системе +### 12.21 Роль администрации в судебной системе +#### 12.21.1 Функции администрации Администрация не обязана заменять суд в обычных спорах, но выступает: - высшей инстанцией; @@ -1511,7 +1620,7 @@ RP-политика, законы, указы, решения органов в - органом вмешательства в исключительных случаях; - финальной стороной при конфликте между формальным порядком и безопасностью сервера. -### 12.14 Неисполнение судебного решения +### 12.22 Неисполнение судебного решения Отказ исполнять законное решение суда может повлечь дополнительную ответственность, вплоть до вмешательства исполнительной власти или администрации. --- diff --git a/src/styles/wiki-egames.css b/src/styles/wiki-egames.css index 84a8663..b48d8f6 100644 --- a/src/styles/wiki-egames.css +++ b/src/styles/wiki-egames.css @@ -338,7 +338,8 @@ starlight-menu-button button:hover { .sl-markdown-content h1, .sl-markdown-content h2, -.sl-markdown-content h3 { +.sl-markdown-content h3, +.sl-markdown-content h4 { font-family: 'Sora', sans-serif; letter-spacing: 0.005em; line-height: 1.24; @@ -362,6 +363,13 @@ starlight-menu-button button:hover { margin-bottom: 0.5rem; } +.sl-markdown-content h4 { + margin-top: 1rem; + margin-bottom: 0.36rem; + font-size: clamp(0.96rem, 0.93rem + 0.18vw, 1.07rem); + color: color-mix(in srgb, var(--sl-color-white) 86%, var(--wiki-blue-2)); +} + .sl-markdown-content .sl-heading-wrapper.level-h3 > h3 { display: inline-flex; align-items: center; @@ -413,6 +421,61 @@ starlight-menu-button button:hover { text-decoration-thickness: 0.07em; } +.sl-markdown-content :is(p, li, td, blockquote) a[href]:not(.sl-anchor-link):not(.map-cta-button):not( + .map-ghost-button + ):not(.sl-link-button):not([href^='#']) { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 2.44rem; + max-width: min(100%, 100ch); + margin: 0.1rem 0.2rem 0.1rem 0; + padding: 0.55rem 1rem; + border: 1px solid color-mix(in srgb, var(--sl-color-accent) 48%, transparent); + border-radius: 0.2rem; + background: linear-gradient( + 110deg, + color-mix(in srgb, var(--wiki-blue-2) 76%, #233145), + color-mix(in srgb, var(--wiki-purple-2) 66%, #273850) + ); + color: #f8fbff; + text-decoration: none; + font-family: 'Sora', sans-serif; + font-weight: 600; + font-size: 0.95rem; + letter-spacing: 0.008em; + line-height: 1; + overflow-wrap: anywhere; + box-shadow: 0 6px 14px color-mix(in srgb, var(--sl-color-accent) 18%, transparent); + transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease; +} + +.sl-markdown-content :is(p, li, td, blockquote) a[href]:not(.sl-anchor-link):not(.map-cta-button):not( + .map-ghost-button + ):not(.sl-link-button):not([href^='#']):hover { + color: #ffffff; + text-decoration: none; + transform: translateY(-1px); + border-color: color-mix(in srgb, var(--sl-color-accent) 64%, transparent); + box-shadow: 0 10px 18px color-mix(in srgb, var(--sl-color-accent) 24%, transparent); +} + +.sl-markdown-content :is(p, li, td, blockquote) a[href]:not(.sl-anchor-link):not(.map-cta-button):not( + .map-ghost-button + ):not(.sl-link-button):not([href^='#']):focus-visible { + outline: none; + border-color: color-mix(in srgb, var(--sl-color-accent) 72%, transparent); + box-shadow: + 0 0 0 1px color-mix(in srgb, var(--sl-color-accent) 30%, transparent), + 0 0 0 4px color-mix(in srgb, var(--sl-color-accent) 20%, transparent); +} + +.sl-markdown-content :is(p, li, td, blockquote) a[href]:not(.sl-anchor-link):not(.map-cta-button):not( + .map-ghost-button + ):not(.sl-link-button):not([href^='#']):active { + transform: translateY(0) scale(0.98); +} + .sl-markdown-content code { border-radius: 0.16rem; border: 1px solid color-mix(in srgb, var(--sl-color-hairline) 78%, transparent); @@ -924,21 +987,28 @@ starlight-theme-select .caret { min-height: 2.44rem; padding: 0.55rem 1rem; border-radius: 0.2rem; - border: 1px solid color-mix(in srgb, var(--sl-color-hairline) 92%, transparent); - background: color-mix(in srgb, var(--wiki-card) 94%, transparent); - color: var(--sl-color-gray-1); + border: 1px solid color-mix(in srgb, var(--sl-color-accent) 48%, transparent); + background: linear-gradient( + 110deg, + color-mix(in srgb, var(--wiki-blue-2) 76%, #233145), + color-mix(in srgb, var(--wiki-purple-2) 66%, #273850) + ); + color: #f8fbff; text-decoration: none; + font-family: 'Sora', sans-serif; font-weight: 600; - font-size: 0.92rem; - transition: border-color 170ms ease, background 170ms ease, color 170ms ease, transform 170ms ease; + font-size: 0.95rem; + letter-spacing: 0.008em; + box-shadow: 0 6px 14px color-mix(in srgb, var(--sl-color-accent) 18%, transparent); + transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease; } .map-ghost-button:hover { - color: var(--sl-color-white); + color: #ffffff; text-decoration: none; transform: translateY(-1px); - border-color: color-mix(in srgb, var(--sl-color-accent) 44%, transparent); - background: color-mix(in srgb, var(--sl-color-accent-low) 60%, transparent); + border-color: color-mix(in srgb, var(--sl-color-accent) 66%, transparent); + box-shadow: 0 10px 18px color-mix(in srgb, var(--sl-color-accent) 24%, transparent); } @media (min-width: 50rem) {