[html]<style>
#artifact-wrap {
text-align: center;
margin: 34px 0 20px 0;
font-family: Cheque, serif;
}
/* --- Анимация парения --- */
@keyframes featherFloatY {
0% { transform: translateY(0); }
50% { transform: translateY(-14px); }
100% { transform: translateY(0); }
}
#artifact-wrap img {
max-width: 210px;
border: none;
background: none;
cursor: pointer;
display: inline-block;
animation: featherFloatY 4s ease-in-out infinite;
}
.artifact-desc {
display: inline-block;
margin-top: 17px;
font-family: Journalism, serif;
font-weight: bold;
color: #3b4630;
background: rgba(190,170,130,0.13);
border-radius: 10px;
padding: 8px 20px;
font-size: 20px;
letter-spacing: 0.02em;
border: 1px solid #bfae8b;
}
.magic-popup-overlay {
position: fixed;
inset: 0; /* top:0; left:0; right:0; bottom:0 */
z-index: 11001;
display: flex;
align-items: center;
justify-content: center;
animation: fadeIn .25s linear;
}
.magic-popup {
background: url('https://watsonyourmindharrypotter.wordpress.com/wp-content/uploads/2014/12/thehearing.jpeg') center/cover no-repeat #222;
border-radius: 16px;
color: #364a2a;
font-family: Georgia, serif;
max-width: 600px;
min-width: 300px;
width: 95vw;
max-height: 110vh;
position: relative;
animation: popupAppear .28s cubic-bezier(.25,.9,.71,.98);
padding: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
.magic-popup-content {
background: rgba(250,248,227,0.91);
border-radius: 0px;
padding: 10px 20px 15px 20px;
margin: 38px 18px 38px 18px;
box-shadow: 0 6px 34px #0000001a;
width: auto;
max-height: 100vh;
overflow-y: auto;
font-size: 12px;
}
.magic-popup-title {
font-size: 21px;
font-family: 'Journalism', serif;
font-weight: bold;
margin: 0 0 8px 0;
text-shadow: 0 1px 0 #eee;
text-align: center;
}
.magic-popup-text {
font-size: 10px;
margin-bottom: 12px;
color: #433d25;
font-weight: 500;
letter-spacing: .01em;
line-height: 1.5;
text-align: center;
}
.magic-punishment {
font-size: 10px;
margin: -10px 0 14px 0;
background: rgba(255,255,255,.73);
padding: 13px 12px 13px 12px;
border-radius: 10px;
font-weight: bold;
text-align: center;
border: 1px solid #d6c697;
box-shadow: 0 2px 11px #d1d3a963;
}
/* ТОЛЬКО обычные кнопки внутри popup */
.magic-popup button {
background: #bfae8b;
border: none;
padding: 7px 13px;
border-radius: 8px;
cursor: pointer;
font-family: Journalism, serif;
font-size: 15px;
margin: -8px 8px 0 8px;
transition: .16s;
box-shadow: 0 1px 4px #e7e4d2;
text-align: center;
}
.magic-popup button:hover {
background: #144753;
color: #fff;
}
/* ТОЛЬКО крестик-закрытие */
.magic-popup .magic-close {
background: #bfae8b;
border: none;
cursor: pointer;
font-family: Journalism, serif;
font-size: 14px;
border-radius: 8px;
position: absolute;
right: 35px;
top: 42px;
padding: 3px 11px;
margin: 0; /* убираем margin, иначе "прыгает" */
transition: .16s;
box-shadow: 0 1px 4px #e7e4d2;
text-align: center;
}
.magic-popup .magic-close:hover {
background: #144753;
color: #fff;
}
@keyframes popupAppear { from { transform: scale(.76); opacity: .7;} to { transform: scale(1); opacity: 1;}}
@keyframes fadeIn {from{opacity:0;}to{opacity:1;}}
</style>
<div id="artifact-wrap">
<img
src="https://upforme.ru/uploads/0014/d2/5e/14/91054.png"
id="magic-artifact"
alt="Магический артефакт!"
title="да, да, вот его НЕЛЬЗЯ ТРОГАТЬ"
/><br>
<span class="artifact-desc">
Собственность Министерства магии.<br>
Не трогать ни при каких обстоятельствах!
</span>
</div>
<script>
const punishments = [
"Сырный сомелье: В следующих 3 постах посвяти минимум 3 предложения тому, как твой персонаж обожает сыр (сорта, запах, дырочки).",
"Голос из прошлого: В последующем посте твой персонаж должен хотя бы раз процитировать одного из своих родителей, причем цитата должна быть максимально неуместной в текущей ситуации.",
"Эстет: Следующий игровой пост должен содержать упоминание о красоте ногтей Аргуса Филча.",
"Тяга к земле: В ближайшем посте персонаж должен минимум один раз случайно упасть или споткнуться на ровном месте.",
"Оды врагу: В следующем посте персонаж должен мысленно или вслух похвалить своего главного врага (за прическу, манеры или выбор туфель).",
"Забывчивость: Весь следующий пост персонаж не может вспомнить имя своего собеседника и называет его «Эй, ты» или «Любезный».",
"Магия жестов: Персонаж временно теряет голос. В следующем посте — только жесты, мимика и выразительные взгляды.",
"Цветовая слепота: В следующем посте персонаж должен трижды прокомментировать чей-то наряд, но перепутать все цвета (синий назвать красным и т.д.).",
"Страх пуговиц: Весь следующий пост персонажа преследует иррациональный страх перед пуговицами на одежде окружающих.",
"Эхо: В следующем посту персонаж должен повторять последнюю фразу своего собеседника вслух, прежде чем ответить.",
"Подозрительность: Весь пост персонаж уверен, что за ним следит невидимый садовый гном.",
"Комплимент интерьеру: Нужно описать потолок или пол в текущей локации на 500 символов.",
"Сон на ходу: В середине следующего поста персонаж должен на мгновение уснуть и увидеть странный сон про гиппогрифа.",
"Мания величия: Персонаж должен хотя бы раз в посте упомянуть, что он — истинный наследник Мерлина (даже если он магл).",
"Вежливость до тошноты: Использовать слова «премного благодарен» и «милостивый государь» по отношению к каждому встречному в посте.",
"Зов природы: Персонаж в следующем посте должен трижды сравнить себя с каким-либо животным.",
"Хрупкие вещи: Персонаж обязан случайно разбить или сломать любой предмет в следующем посту.",
"Тайный детектив: Весь пост персонаж должен вести себя так, будто он на секретном задании (говорить шепотом, озираться).",
"Погода — это важно: Начни и закончи следующий пост подробным описанием влажности воздуха.",
"Заклятие правды: в следующем посте ваш персонаж может говорить только правду и ничего кроме правды.",
"Анти-фокусник: Ближайшие 3 дня начинать каждое свое сообщение на форуме фразой «Опять эти ваши фокусы...» (оставить как минимум 15 сообщений).",
"Метод Снейпа: 3 дня отвечать на любые сообщения так, как это сделал бы Северус Снейп (саркастично, холодно, снимая баллы), оставить как минимум 15 сообщений.",
"Громовещатель: 3 дня писать во всех разделах (кроме игровых) только КАПСОМ (оставить хотя бы 15 сообщений).",
"Музыкальный критик: Выложить в плейлист самую нелепую песню и расхвалить её на 5 предложений, доказывая, что это шедевр.",
"Анонимный обожатель: Написать 10 случайным игрокам во флуде по одному странному комплименту (например: «У твоего персонажа отлично растут брови»).",
"Рекламная пауза: Запостить во флуде 10 «рекламы» товаров из лавки Фреда и Джорджа, которых не существует.",
"Минутка поэзии: Отвечать во флуде только стихами хотя бы 10 раз.",
"Обет молчания: Не использовать букву «А» в сообщениях на форуме в течение 3 дней, при этом оставив хотя бы 20 сообщений.",
"Эстетический детокс: Штраф за красивую аватарку — поставить на аву нечто противное/нелепое минимум на 3 дня.",
"Розовый террор: Весь профиль должен быть оформлен в стиле Долорес Амбридж минимум на 3 дня.",
"Сладкая подстава: Ближайшие 20 сообщений пиши так, будто у тебя во рту застряла гигантская ириска (заменяй буквы «с», «ш», «ч» на «ф»).",
"Свободу попугаям: Собери 10 подписей за освобождение садовых гномов: убеди десять человек согласиться подписать твою петицию.",
"Проклятие рифмы: Ближайшие 20 сообщений во флуде должны быть строго в рифму к предыдущему сообщению собеседника.",
"Смена имиджа: Поставить в статус цитату из песни, которая тебе ужасно не нравится, минимум на 3 дня.",
"Фрейдистский сбой: В статусе написать самое постыдное желание твоего персонажа, которое он обычно скрывает, минимум на 3 дня.",
"Завещание: В подписи составить список из 5 персонажей, которым твой персонаж оставляет свои \"богатства\" — долги, дырявые трусы и «ту самую неприличную колдографию из шкафа». Носить минимум 3 дня.",
"Муха на контроле: В следующем посте обязательно вставь 3 случайных факта о мухах и/или других летающих насекомых.",
"Петушиный гонец: В каждом флудовом сообщении используй слова 'петух' или 'кукареку', оставь минимум 20 сообщений.",
"Тёмный меценат: Придумай 7 случайным игрокам форума(отметь их, чтобы они тоже оценили) текст для плашки, будто их сочинял сам Темный Лорд, драматично и оооочень пафосно.",
"Рассеянный колдомедик: Давай случайным пользователям во флуде советы (хотя бы 15 штук) по магическим болезням (только не по делу).",
"Пир волшебника: Весь следующий пост герой должен говорить о еде, сравнивать с закусками, даже если сцена не связана с кухней."
];
function openMagicPopup(punishment) {
document.querySelectorAll('.magic-popup-overlay').forEach(e=>e.remove());
const overlay = document.createElement('div');
overlay.className = 'magic-popup-overlay';
overlay.innerHTML = `
<div class="magic-popup">
<button class="magic-close" title="Закрыть">×</button>
<div class="magic-popup-content">
<div class="magic-popup-title">ТРЕВОГА!</div>
<div class="magic-popup-text">
<b>Ты ослушался приказа, и твоё любопытство не осталось незамеченным!</b><br>
Всевидящее око Министерства не дремлет, и за свою оплошность тебе придётся заплатить.<br>
Скопируй свое наказание в форму ответа и отправь сообщение, ведь именно сюда тебе предстоит нести подтверждение о выполнении задания. На то, чтобы оплатить свой штраф, тебе дается <b>15 дней</b>. Если артефакт успеют спрятать подальше от любопытных глаз и потных ладошек, а ты так и не выполнишь задание, тебе придется выплатить штраф в размере <b>200 галлеонов</b>. Если же ты справишься, получишь поощрение от Отдела Тайн в размере <b>300 галлеонов.</b><br>
Трогай артефакт столько раз, сколько хочешь, но получить новое наказание можно лишь <b>после выполнения</b> старого. Ах да, и <b>не повторяй</b> чужие задания, ведь это так скучно. <br><br>
<b>Твоё наказание:</b>
</div>
<div class="magic-punishment" id="current-punishment">${punishment}</div>
<button id="magic-copy">Скопировать</button>
</div>
</div>
`;
document.body.appendChild(overlay);
overlay.querySelector('.magic-close').onclick = () => overlay.remove();
overlay.onclick = (e) => { if(e.target===overlay) overlay.remove(); }
// Новый обработчик для копирования!
overlay.querySelector('#magic-copy').onclick = function() {
const t = document.getElementById('current-punishment').innerText;
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard.writeText(t).then(
() => { alert("Скопировано!"); },
() => { fallbackCopy(t); }
);
} else {
fallbackCopy(t);
}
};
function fallbackCopy(text) {
const tmp = document.createElement('textarea');
tmp.value = text;
document.body.appendChild(tmp);
tmp.select();
try {
document.execCommand('copy');
alert("Скопировано!");
} catch (err) {
alert("Не удалось скопировать");
}
document.body.removeChild(tmp);
}
}
document.getElementById('magic-artifact').onclick = function() {
const idx = Math.floor(Math.random()*punishments.length);
openMagicPopup(punishments[idx]);
};
</script>[/html]
[hideprofile]

































