Шрифт в постах

Стиль оформления

Дополнительно

Размер элементов форума
вверх
вниз

Shadows of Old

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Shadows of Old » Анкетирование » Sealgair | shapeshifter


Sealgair | shapeshifter

Сообщений 1 страница 4 из 4

1

ЛЛАЙВЕЛИН УОРД / ШАЛАКУР | LLYWELYN WARD / SEALGAIR
охотник, следопыт

https://upforme.ru/uploads/001c/03/d9/307/538438.pngии генерация

47 лет | полукровка (Айре Эланн - человек), двудушник (сапсан) | Вальден (Дунадд)

••••••••••••••••••••••••••••••••••••••••••••

Образ персонажа[html]<center><div><iframe width="600" height="50" src="https://vocaroo.com/embed/14kZGA7eCKN2?autoplay=0" frameborder="0" allow="autoplay"></iframe><br><a href="https://voca.ro/14kZGA7eCKN2" title="Диктофон Vocaroo" target="_blank"></a></div>[/html]На каждой стороне света хватает и своих положительных героев и своих ублюдков. Сэр Гилрой Уорд, счастливый в браке, отец двух сильных сыновей и здоровой дочери, вассал барона земель Дунадда, был, для многих, обычным человеком. Да, холодным, да, жестоким, да, не раз замечалось, что он относится к людям - даже к собственной семье - как к инструментам, но это было будто бы нормально. Мол, ничего не поделаешь, жизнь такая, да и власть развращает. Однако вся эта безнаказанность лишь потому, что никто не знал глубины и даже и не думал, что тот, кто молится богам света, будто бы проклят душой и воплощает собой чистую тьму. И показательнее всего это скрытое безумие сработало в отношении интрижки, что лорд завел на стороне в одном из визитов куда-то в другие земли.

Она была из народа Айре Эланн. Не богата, без статуса, случайная встречная небесной красоты, от которой теперь не осталось и имени. Как это случается с чистой, доброй наивностью, она повелась на “песни”, что ей пел человек, на деле возжелавший лишь экзотическую игрушку. Он даже привёз её к себе поближе, как тайное увлечение, “женщина выходного дня”, но увы, однажды случилось то, что полностью ломало идеально выстроенную систему психопата. Она забеременела, внося в идиллию непредвиденное последствие, которое не порицалось обществом, да, к внебрачным детям знати все привыкли, но не устраивало самого Гилроя - лишняя деталь. И видят боги, он убил бы мать с ребенком в утробе не глядя ещё тогда, но вынужденные дела и постоянные разъезды отца дали полукровке родиться.

Мать дала ему имя Ллайвелин, но фамилию Гилроя он так и не получил. Хотя сейчас уже и не ясно, что было бы лучше - кануть в лету вслед за Айре или, как случилось в итоге, оказаться игрушкой для собственного отца. Ирония в том, что полукровка родился двудушником и с самого младенчества будто бы не мог до конца решить, зверь он или человек. Красивый зверь, а если точнее - хищная птица, что и навело Гилроя на мысль найти выродку выгодное лорду применение.

Статус для знатного человека - это не только достижения и богатство. Во многом, среди равных, имеет значение любая мелочь, которой можно превзойти кого-то и похвастаться. Более того, именно в случае Гилроя такие вещи отвлекали общественность от его “странностей”, создавая имидж такого же обыкновенного рыцаря, как все другие. Так его и посетила мысль о “приобретении” лучшей охотничьей птицы во всем Вальдене. Лучшей, потому что думает, как человек.

Посвятив в идею несколько беспрекословно, абсолютно лояльных и отбитых на всю голову людей, Гилрой расширяет свой соколиный двор вглубь, обустроив для мальчика достаточно условий, чтобы расти и тренироваться ночами не только в облике сапсана, но и человеческом, однако с младенчества лишает его трех самых важных аспектов в формировании личности: образования академического (Ллайвелин не умеет ни читать, ни писать, не знает языков кроме тех, что слышал и запоминал словами и несвязанными знаниями о грамматике выражениями от вальдийцев в окружении лорда), имени (теперь мальчика звали просто Шалакур, что значило банально “охотник” и имелось ввиду, что так зовут сокола, а не человека), и самое главное - любви. А потому хорошей птицей очень скоро стало быть комфортнее, чем плохим человеком, который даже не знал, что его хозяин - его собственный отец, (Ллайвелин слишком много взял от матери и не мог уловить сходства). Но нехватка простых человеческих чувств и эмоций не могла не оставить отпечатка. Получая травмы на тренировках или охоте, подростком, не приученный ни к каким духовным таинствам и доктринам юноша, открыл для себя единственный доступный путь к чему-то живому и яркому - к боли, вырезав первые шрамы, как неосознаваемые руны поклонения, ещё в 15 лет. Когда всю жизнь испытываешь одни только ограничения, они становятся куда более естественным порядком вещей, нежели те эмоции, о которых говорят свободные люди. Боль честна. Она снимает маски, освобождает мысли, а если нужно, даже возвращает контроль и собранность. Боль рациональна и не знает ни титулов, ни рас. Язык боли понятен каждому живому существу.

Однако, вечно заточение продолжаться не могло. Шалакур рос, наблюдал мир с высоты птичьего полета, слушал людей вокруг и мечта о свободе постепенно превращалась из неосуществимой фантазии во вполне реализуемый план крепкого и опытного война. К тому же одной только охоты по указке отца уже не хватало. Ему нужно было больше настоящего, живого, дикого, без команд. И однажды хищник вырвался на волю, воспользовавшись тем, что за долгие годы подчинения, его сторожа за глаза Гилроя перестали относиться к охране ручного сокола лорда серьезно. Оставив за собой кровавый след, Шалакур в чем было - вооружённый только луком, стрелами и одноручным клинком - пересек городскую стену уже к рассвету. Мужчине было 32. И мир не встретил его с распростёртыми объятиями.

Ни грамотности, ни статуса, ни имени, ни настоящего понимания, кто он. И даже вернуться за местью некуда, потому что буквально через год лорд Уорд был убит в ходе какого-то локального конфликта между вассалами, а на его сыновей, унаследовавших землю, сапсан не держал зла. Почти четыре года полукровка провёл в лесах, правда как дикий хищник, пока однажды странный человек не обратил внимание на шрамы Шалакура и показал, что боль - это не просто ощущение. У него есть смысл и покровитель. И на последующие десять лет община леди шипов стала домом для мужчины. Он охотился для них и охранял, они учили его всему, что не дал хозяин. Но, как и следовало ожидать, и здесь он не прижился окончательно. Сапсан - перелётная, вольная птица, одиночный хищник, и в свои 46 Шалакур покидает общину, унося с собой знания и привязанность к идеям Лалит, но следуя куда-то, куда зовёт природа. Так он болтается уже год, зарабатывая всё той же охотой и сопровождением караванов.   

Дополнительная информация

Не владеет никакой магией. Все его дары - исключительно тренировки, кровь Айре и особенности от птичьей души. Его зрение в 8 раз острее человеческого - он способен зафиксировать цель на расстоянии в 800 метров, а в форме птицы этот отрезок увеличивается до 1,5–2 километров. Отсюда же феноменальная меткость и в особенности относительно движущихся целей. (Что интересно, из-за того, что Шалакур будто бы больше птица, чем человек, он плохо воспринимает статичные объекты вблизи и буквально может забыть о чём был разговор, но зато с точностью до мелочей будет помнить все жесты и микромимику собеседника). Он воспринимает мир его движением, а стиль его боя - это всегда максимальная дистанция и точечные удары. Он не тратит стрелы и/или силы зря, не вступая в бой без особой необходимости и не атакуя навскидку. По аналогии с птицей, если сапсан начал пикирование - он всегда достигнет цели, потому что выбор жертвы рассчитан до мелочей. Ближний бой не любит, но если приходится - бьёт с целью обездвижить, чтобы дать себе время уйти из ближнего поля в дальнее. Плох в массовой схватке и вообще в толпе, по этому всегда избегает её и в целом держится всегда "над головами". Даже в мирной обстановке из всех мест в зале выберет подоконник окна или стеллаж, чтобы иметь максимально возможный угол обзора всего помещения, а зайдя на рынок, пройдёт его по крышам.

Планы игру, пожелания по сюжетам и игровые табу

Играю всё, где есть возможность пожевать стекло. Персонаж максимально гибок и даже на светском мероприятие будет смотреться глупо, но если потащат - пойдёт. У меня страдает только скорость отдачи постов. Есть аллергия на полотна и сам не пишу их. Птица-тройка - ван лав.

Что делать с вашим персонажем в случае ухода с проекта

Просто убейте его нахрен.

Пример поста

Вертеться в холодном поту без возможности уснуть - не самое приятное состояние. Особенно когда тебе уже под 60, в какой бы отличной физической форме ты не был. Картинки прошлого перемежаются с панорамами неба из кабины любимого "боевого сокола" и "видениями" настоящего, едва стоит закрыть глаза. А вот уже земля, кровь и песок, голубые береты и чёрные хиджабы - ВВС подразумевает не только полёты. Дети с автоматами Калашникова... этот чёртов "пророк" Линкольн Риндт, ясно видящийся распятым на кресте вниз головой, как апостол Пётр, потому что не достоин умирать, как настоящий "спаситель", коим, на деле не был и тот, ввергший своим появлением мир во тьму вместо света. Дочь с вечно тоскливыми глазами, словно служба для неё - это рабство, Пол - обозлённый и обиженный на отца. Елена что-то в сердцах кричит про предательство... И вот ты уже вскакиваешь с койки, держась за голову руками. Блять... На настенных часах, которые изрядно достали своим механическим тиканьем секундной стрелки, второй час ночи. А он опять встаёт, чтобы втиснуть себя наскоро в майку, тренировочные штаны и кроссовки - отличное время для тренировки. Хотя, если бы его кто-то видел сейчас - подобное трудно было бы ей назвать. Скорее старик мерился силами со смертью, будто ожидая, что в любой момент его должен хватить инсульт или инфаркт - что-нибудь подобное, что бьёт по не первой свежести организму от регулярной перенагрузки - а он всё никак не наступал. Сама костлявая нечисть в балахоне будто бы смеялась над мужчиной, стоя в стороне, затачивая косу и улыбаясь, мол, "не пришло ещё твоё время, даже не надейся". Но, благо, бывшего бригадного генерала в таком состоянии ещё никто не видел. Здесь, сейчас, наедине с самим собой - со своим отражением в зеркалах спортзала - он мог быть собой, мог быть просто человеком. Но только не на глазах у подчинённых. Для них он несгибаемый ублюдок, который требует того же уровня подготовки от каждого вигиланта, даже если ты только-только вступил на службу и до этого дня вообще не имел никакого представления о боевых формированиях и действиях, даже если ты совсем юн и мало заботишься о субординации, даже если ты - его родная плоть и кровь...

О том, как он будет чувствовать себя после, Рассел Илвет думал уже потом, удар за ударом выбивая песок из боксёрской груши или из воздуха, представляя, что избивает самого себя - свою тёмную тень, ту сторону, которую ненавидел больше всего, но так нуждался в ней. Однако прошедший разговор с дочерью до сих пор не выходил у него из головы. Перегнул палку. Сильно. Был слишком груб. И стоило ли действовать насильно, внушая свою волю через псионическое воздействие убеждением, когда он и так знал, что Бонни достаточно умна, чтобы принять в итоге правильное решение? Да, она вся в него - девочка с характером, умеет взбрыкнуть, упереться рогами. Но если бы это было всем, на что она была способна - ни за что не добилась бы таких успехов ни раньше, ни сейчас - в условиях войны. А он опять выставил её жертвой отца-тирана, да ещё и перед кем? Перед слащавым мальчишкой, чутким французиком-новичком, что был даже младше Бонни по возрасту. Муэ... от этой фамилии тошнота подкатывает к глотке. "Очаровательный принц-спаситель", жаждущий выкрасть сердце принцессы и защитить её от дракона. Если бы только этот юноша вообще знал, что его мечта сама пожирает потроха направо и налево. Да, "плоть от плоти моей". Рассел видел, как Бонни общается с Гриффином, как они смотрят друг на друга. Она Илвет с ног до головы - верность присяге для них очень далека от верности любовной. Когда ты всего себя отдаёшь службе, что с каждым днём всё больше превращает тебя из человека в машину для убийства, то хватаешься за чувства, как за воздух - за любые, даже самые глупые, но будоражащие романы длиной в одну яркую ночь. Они вспыхивают, как от броска гранаты и гаснут так же быстро, как оседает поднятая взрывной волной пыль на месте воронки. Но если с самим Расселом всё было понятно, а с Полом очень просто - в нужный момент взросления отец просто вручил старшему сыну пачку презервативов и пригрозил оторвать яйца собственноручно, если случатся неожиданности - Бонни даже в свои 29 лет всё ещё оставалась для него маленькой девочкой и уж кому, ни Фабьену и не Гриффину, а именно ему, отцу, яростно защищать свою дочь от ошибок.

А как будет реагировать на это она сама? Он никогда не скажет ей, насколько болезненно колок тот мороз, что прокатывается по спине, когда она смотрит на него позади волком - исподлобья - точь в точь повторяя его собственный взгляд, только глаза у неё всё-таки теплее - красивые, выразительные, глубокомысленные, каре-зелёные, доставшиеся от матери. Но тем не менее, этот прищур - что бы он не значил, а мысли Рассел читать не умел, о чём, порой, даже жалел - действует как обрушившейся на тебя холодный душ вместе с осколками льдинок. 

Последний удар по боксёрской груше оказывается настолько тяжёлым, что увесистый снаряд, и сверху и снизу подвешенный на цепи, опасно пошатнулся, будто вот-вот сорвётся с одного из креплений. Илвет останавливается, и выпрямляя спину, расправляя массивные плечи, делает глубокий вдох, прежде чем заговорить, поднимая холодно отливающий оружейной сталью взгляд небесно-голубых глаз к отражению Бонни в зеркалах. Можно было легко заметить, как под мокрой, налипшей на тело майкой мышечные волокна трапеции и широчайшей затвердевают металлом неврозоподобного напряжения. 1, 2, 3...

- Я лётчик, Бонни - меня тренировали видеть на 360°. Не стой за спиной. - Как не старайся, а его рычащий тембр всё равно отдаёт командным тоном. Это не смог смягчить даже родной эстонский, на котором Илвет-старший всегда разговаривал со своей семьёй, не столько чтобы не забывать свои корни, а для верности, что никто больше не поймёт о чём они говорят между собой.

Подбирая с ближестоящей жерди с гантелями своё полотенце, мужчина вешает его на шею и оборачивается к дочери лицом, правым концом вытирая пот с седых висков, а заодно и будто бы пытаясь стереть последние намёки на испытываемые ещё с минуту назад чувства.

Отредактировано Sealgair (2026-04-24 06:25:52)

Подпись автора

https://upforme.ru/uploads/001c/03/d9/307/744900.png

+5

2

Вы приняты, добро пожаловать!

Коды для заполнения (следующим сообщением в теме анкеты):
Заполните поля во вкладках "Основа", "Профиль", "Плашка", "Фон" и нажмите на кнопку "Скопировать код" ниже, чтобы скопировать заполненные шаблоны.

[html]
<script>
// --------- FILL BACKGROUNDS ------------

function labelBg(className, nameCategory, src) {
    return `<label class="${className}"><input type="radio" name="${nameCategory}" id="${src}" onchange="updateProfilePreview()"><img src="${src}" loading="lazy"> </label>`;
}

function fillBgs(bgs) {
    document.getElementById('bgContainer').innerHTML = bgs
        .map(bg => labelBg("profileBgLabel", "profileBg", bg)).join('');
}

// --------- FILL STRIPES ------------

function labelStripe(className, nameCategory, src) {
    return `<label class="${className}"><input type="radio" name="${nameCategory}" id="${src}" onchange="updateProfilePreview()"><img src="${src}"> </label>`;
}

function fillStripes(stripes) {
    document.getElementById('stripeContainer').innerHTML = stripes
        .map(stripe => labelStripe("profileStripeLabel", "profileStripe", stripe)).join('');
}

// --------- USER DATA ------------

let userLatinName = '';
let userProfileUrl = '';
let userApplicationFormUrl = '';

window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'profileFillingResponce') return;
    userLatinName = event.data.userLatinName;
    userProfileUrl = event.data.userProfileUrl;
    userApplicationFormUrl = event.data.userApplicationFormUrl;
    fillStripes(event.data.stripes);
    fillBgs(event.data.backgrounds);
});

window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'fontChange') return;
    $('.post-content p, .post-content div').css('font-size', event.data.fontSize + 'px');
});

const sendProfileRequest = () => {
    window.parent.postMessage({ eventName: 'profileFillingRequest' }, "*");
};
sendProfileRequest();
const intervalId = setInterval(sendProfileRequest, 1000);
window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName === 'profileFillingResponce') {
        clearInterval(intervalId);
    }
});

function copyResults() {
    let copyContent = '';
   
    // -- форма внешности --
    const actorName = document.getElementById('actor').value;
    if (actorName) {
        const actorForm = `${actorName} — ${String.fromCharCode(91)}url=${userProfileUrl}${String.fromCharCode(93)}${userLatinName}${String.fromCharCode(91)}/url${String.fromCharCode(93)}`;
        copyContent += `Форма внешности: 
${String.fromCharCode(91)}code${String.fromCharCode(93)}${actorForm}${String.fromCharCode(91)}/code${String.fromCharCode(93)}`;
    }

    // -- форма заполнения профиля --
    const cyrillicName = document.getElementById('cyrillicName').value;
    if (cyrillicName) {
        const profileDescrName = document.getElementById('mainDescr').value;
        let profileForm = `<a href='${userApplicationFormUrl}'>${cyrillicName}</a>, ${profileDescrName}`;
       
    const profileAdd = document.getElementById('addDescr').value;
        const profileAddNotFilled = profileAdd == '' || profileAdd == `любое описание на ваш вкус <a href='ссылка на анкету персонажа'>имя на кириллице</a>`;
        if (document.getElementById('hrAdd').checked) {
            profileForm += '<hr>';
        } else if (!profileAddNotFilled) {
            profileForm += '<br>';
        }
        if (!profileAddNotFilled) {
            profileForm += profileAdd;
        }
       
        copyContent += `\n\nФорма профиля:
${String.fromCharCode(91)}code${String.fromCharCode(93)}${profileForm}${String.fromCharCode(91)}/code${String.fromCharCode(93)}\n\n`;
    }

    // -- форма плашки --
    const stripeForm = Array.from(document.getElementsByName('profileStripe'))
        .filter(element => element.checked)
        .map(element => element.id)
        .join('');

    if (stripeForm) {
        copyContent += `Плашка:
${String.fromCharCode(91)}img${String.fromCharCode(93)}${stripeForm}${String.fromCharCode(91)}/img${String.fromCharCode(93)}\n\n`;
    }

        // -- форма фона --
    const bgForm = Array.from(document.getElementsByName('profileBg'))
        .filter(element => element.checked)
        .map(element => element.id)
        .join('');

    if (bgForm) {
        copyContent += `Фон:
${String.fromCharCode(91)}img${String.fromCharCode(93)}${bgForm}${String.fromCharCode(91)}/img${String.fromCharCode(93)}\n\n`;
    }

    // -- форма списка ролей --
    const listsDescription = document.getElementById('listsDescription').value;
    if (cyrillicName && listsDescription) {
        const listsForm = `${String.fromCharCode(91)}url=${userProfileUrl}${String.fromCharCode(93)}${cyrillicName}${String.fromCharCode(91)}/url${String.fromCharCode(93)} — ${listsDescription}`;
        copyContent += `Список ролей:
${String.fromCharCode(91)}code${String.fromCharCode(93)}${listsForm}${String.fromCharCode(91)}/code${String.fromCharCode(93)}\n\n`;
    }

    window.parent.postMessage({
        eventName: 'profileCopyInfoRequest',
        copyData: copyContent.trim() // Удаляем лишние переносы в конце
    }, "*");
};

document.getElementById('instructionResult').onclick = copyResults;

// --------- post user profile update ------------
function updateProfilePreview() {
    const cyrillicName = document.getElementById('cyrillicName').value ?? userLatinName;
    const profileDescrName = document.getElementById('mainDescr').value;
    let profileForm = `<a href='${userApplicationFormUrl}'>${cyrillicName}</a>, ${profileDescrName}`;
   
    const profileAdd = document.getElementById('addDescr').value;
        const profileAddNotFilled = profileAdd == '' || profileAdd == `любое описание на ваш вкус <a href='ссылка на анкету персонажа'>имя на кириллице</a>`;
        if (document.getElementById('hrAdd').checked) {
            profileForm += '<hr>';
        } else if (!profileAddNotFilled) {
            profileForm += '<br>';
        }
        if (!profileAddNotFilled) {
            profileForm += profileAdd;
        }

    const stripeForm = Array.from(document.getElementsByName('profileStripe'))
        .filter(element => element.checked)
        .map(element => element.id)
        .join('');

    const bgForm = Array.from(document.getElementsByName('profileBg'))
        .filter(element => element.checked)
        .map(element => element.id)
        .join('');

    window.parent.postMessage({
        eventName: 'profileDemo',
        profileDescr: profileForm,
        stripe: stripeForm,
        background: bgForm
    }, "*");
}

updateProfilePreview();

window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'fontChange') return;
    $('.post-content p, .post-content div').css('font-size', event.data.fontSize + 'px');
});

window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'styleChange') return;
    const style = event.data.style === 'system'
        ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
        : event.data.style;
    $("body").attr("class", style);
});

window.parent.postMessage({ eventName: 'askStyle' }, "*");

</script>

<div class="fillingForm">
<label class="fillingCategoryRadio"><input type="radio" id="main" name="fillingCategoryRadio" checked /> <span>Основа</span></label>
<label class="fillingCategoryRadio"><input type="radio" id="profileF" name="fillingCategoryRadio" /> <span>Профиль</span></label>
<label class="fillingCategoryRadio"><input type="radio" id="stripesF" name="fillingCategoryRadio" /> <span>Плашка</span></label>
<label class="fillingCategoryRadio"><input type="radio" id="bgsF" name="fillingCategoryRadio" /> <span>Фон</span></label>

<div class="instructionBlock mainInstruction">
<h2 class="instructionHeading">Основа</h2>
<label for="cyrillicName" class="labelDescr">Имя (кирилица):</label>
<input type="text" id="cyrillicName" name="cyrillicName" placeholder="кириллица" oninput="updateProfilePreview()">

<label for="actor" class="labelDescr">Внешность (латиница):</label>
<input type="text" id="actor" name="actor" placeholder="если не нужно, оставьте поле пустым">

<label for="listsDescription" class="labelDescr">Описание для списка ролей:</label>
<input type="text" id="listsDescription" name="listsDescription" placeholder="род деятельности, занятость">
</div>

<div class="instructionBlock profileInstruction">
<h2 class="instructionHeading">Описание в профиль</h2>
<label for="mainDescr" class="labelDescr">Описание в профиль:</label>
<input type="text" id="mainDescr" name="mainDescr" value="возраст, раса, род деятельности" oninput="updateProfilePreview()">

<label for="hrAdd" class="hrAdd">
<input type="checkbox" id="hrAdd" name="hrAdd" onchange="updateProfilePreview()" />
<span>Добавить полосу между секциями</span>
</label>

<label for="addDescr" class="labelDescr">При желании можете добавить в профиль пару, красивую цитату, важного родственника, врага и тому подобное через это поле. Если не нужно, оставьте его пустым или не меняйте:</label>
<textarea id="addDescr" oninput="updateProfilePreview()" name="addDescr" rows="4">любое описание на ваш вкус <a href='ссылка на анкету персонажа'>имя на кириллице</a></textarea>
</div>

<div class="instructionBlock stripeInstruction">
<h2 class="instructionHeading">Плашки</h2>
<div id="stripeContainer"></div>
</div>

<div class="instructionBlock bgInstruction">
<h2 class="instructionHeading">Фоны</h2>
<div id="bgContainer"></div>
</div>

<div class="formButtons">
<input type="button" id="instructionResult" value="Скопировать код">
</div>
</div>

<style>
body { color: var(--text1); }

h2.instructionHeading {
    font-size: 16px;
    font-family: 'Palatino Linotype';
    font-weight: bold;
    letter-spacing: 1px;
}

.labelDescr {
    display: block;
    margin: 9px 0px 1px 0px;
}

.fillingForm { text-align: center; }

.instructionBlock {
    text-align: left;
    margin: 10px 0 !important;
    padding: 14px 14px 12px 14px !important;
    border: 1px solid var(--borders);
    background: var(--qBG);
    border-radius: 4px;
}

.instructionBlock input[type="text"] {
    width: calc(100% - 10px);
}

label.hrAdd {
    margin: 10px 0 0 0;
    display: block;
}

input#hrAdd  {
    accent-color: var(--darkpinkText);
}

label.fillingCategoryRadio {
    border-radius: 16px;
    border: 1px solid var(--borders);
    background: var(--beg300);
    padding: 2px 6px;
    display: inline-block;
    margin: 0px 4px 5px 0px;
}

.instructionBlock textarea {
    width: calc(100% - 10px);
    resize: vertical;
}

label.fillingCategoryRadio:has(input:checked) {
    background: var(--borders);
    color: var(--text1);
}

.fillingCategoryRadio input[type="radio"] {
    display: none;
}

label.fillingCategoryRadio {
    cursor: pointer;
}

.mainInstruction, .profileInstruction, .stripeInstruction, .bgInstruction { display: none; }
.fillingCategoryRadio:has(#main:checked) ~ .mainInstruction { display: block !important; }
.fillingCategoryRadio:has(#profileF:checked) ~ .profileInstruction { display: block !important; }
.fillingCategoryRadio:has(#stripesF:checked) ~ .stripeInstruction { display: block !important; }
.fillingCategoryRadio:has(#bgsF:checked) ~ .bgInstruction { display: block !important; }

.profileStripeLabel, .profileBgLabel {
    margin: 5px 5px;
    display: inline-block;
    width: 180px;
    border-radius: 5px;
    padding: 5px;
    background: rgb(255 255 255 / 17%);
}

.profileStripeLabel img, .profileBgLabel img { border-radius: 3px; }
.profileBgLabel img {
    width: 180px;
    height: 40px;
    object-fit: cover;
    object-position: top;
}

.profileStripeLabel input, .profileBgLabel input { display: none; }

.profileStripeLabel:has(input:checked), .profileBgLabel:has(input:checked) {
    background: rgb(0 0 0 / 12%);
}

div#stripeContainer, div#bgContainer  {
    align-items: baseline;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-content: flex-start;
    height: 190px;
    overflow-x: auto;
    overflow-y: hidden;
}

</style>
[/html]

0

3

[html]<link href="https://fonts.googleapis.com/css2?family=Oswald&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css2?family=Cuprum&display=swap" rel="stylesheet"><style>
<style>.chr2, .chr2 * {box-sizing:border-box;}
.chr2 { color: var(--text1); }
.chr2 {
--chrw: 659px; /* ширина блока */
}
.chr2 {width:var(--chrw); background:var(--beg300); border-radius:16px; border:1px solid var(--borders);
margin:10px auto 10px 10px; padding:26px 20px 24px 10px; position:relative;}
.chr2 p {padding:0px !important; margin:0px !important;}
.chr2 h7 {display:block; text-align:center; font-family:Cuprum, Tahoma, sans-serif; font-size:24px;}
.ch1 {position:relative; padding: 15px 0px; display:grid; grid-template-columns: 180px 1fr; grid-template-rows:auto; align-items:stretch;}
.ch1:first-of-type {/*shipovnik*/ padding-top:0px;}
.ch1:last-of-type {padding-bottom:0px;}
.ch2 {display:block; grid-column:1 / 2; grid-row:1 / -1; text-align:center; padding-right:10px; border-right:1px solid var(--borders);}
.ch3 {display:block; grid-column:-2 / -1; grid-row:1 / -1; padding-left:14px; text-align:justify;}
.ch2 em {display:block; font-style:normal !important; font-weight:600; font-family:Cuprum, Tahoma, sans-serif; font-size:16px; padding-bottom:4px;}
.ch4 {text-transform:uppercase; font-family:Oswald, Tahoma, sans-serif; font-size:14px; letter-spacing:0.03em;}
.ch1:before {content:''; display:block; width:12px; height:12px; border-radius:50%; position:absolute; top:15px; left:-10px; transform:translateX(-50%);
background: var(--links); border:1px solid var(--borders);}
.close.ch1:before {background:var(--text1);}
</style>
<div class="chr2"><!----- START ----->

<div class="ch1">
  <div class="ch2"><em> сентябрь, 584 </em>
  Мэйв Бретиль
  </div>
  <div class="ch3"><a href="https://oldshadows.rusff.me/viewtopic.php?id=1315#p150795" class="ch4">The guarding eye</a>
  <p> Случайная встреча в лесу. Спасение, которого не ждали и знакомство, о котором, возможно было бы бессмысленно и мечтать.</p>
  </div>
</div>

<div class="ch1 close">
  <div class="ch2"><em> дата эпизода </em>
  Участники
  </div>
  <div class="ch3"><a href="ссылка" class="ch4">Название эпизода</a>
  <p> Описание эпизода </p>
  </div>
</div>

<!----- END -----></div>
<script>
window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'fontChange') return;
    $('.post-content p, .post-content div').css('font-size', event.data.fontSize + 'px');
});

window.addEventListener("message", (event) => {
    if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
    if (event.data.eventName != 'styleChange') return;
    const style = event.data.style === 'system'
        ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
        : event.data.style;
    $("body").attr("class", style);
});
window.parent.postMessage({ eventName: 'askStyle' }, "*");
</script>
[/html]

Отредактировано Sealgair (2026-04-25 22:12:11)

Подпись автора

https://upforme.ru/uploads/001c/03/d9/307/744900.png

0

4

[html]
<link href="https://fonts.googleapis.com/css2?family=Oswald&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cuprum&display=swap" rel="stylesheet">

<style>
/* ===== SHALAKUR CONTACT JOURNAL / RED NAMES ===== */

.sj2,.sj2 *{box-sizing:border-box;}

.sj2{
  --w:659px;
  width:var(--w);
  margin:10px auto 10px 10px;
  padding:14px 18px 14px 12px;
  border-radius:16px;
  border:1px solid var(--borders);
  background:var(--beg300);
  color:var(--text1);
  font-family:Cuprum,Tahoma,sans-serif;
  line-height:1.55;
  position:relative;
  overflow:hidden;
}

/* texture */
.sj2:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 10%, rgba(0,0,0,.04), transparent 40%),
    radial-gradient(circle at 80% 90%, rgba(0,0,0,.03), transparent 45%),
    repeating-linear-gradient(135deg, rgba(0,0,0,.02) 0px, rgba(0,0,0,.02) 1px, transparent 1px, transparent 6px);
  opacity:.35;
  pointer-events:none;
}

/* sigils */
.sj2:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(45deg, rgba(179,58,58,.08), transparent 30%) top left,
    linear-gradient(-45deg, rgba(179,58,58,.06), transparent 35%) top right,
    linear-gradient(-135deg, rgba(0,0,0,.05), transparent 40%) bottom left,
    linear-gradient(135deg, rgba(0,0,0,.04), transparent 40%) bottom right;
  background-size:120px 120px;
  background-repeat:no-repeat;
  opacity:.4;
  pointer-events:none;
}

/* entry */
.sj-entry{
  position:relative;
  display:grid;
  grid-template-columns:265px 1fr;
  padding:15px 0;
  align-items:start;
}

.sj-entry:not(:last-child){
  border-bottom:1px dashed var(--borders);
}

/* marker */
.sj-entry:before{
  content:'';
  display:block;
  width:10px;
  height:10px;
  border-radius:50%;
  position:absolute;
  top:18px;
  left:-10px;
  transform:translateX(-50%);
  background:var(--links);
  border:1px solid var(--borders);
  box-shadow:0 0 0 3px rgba(179,58,58,.08);
}

/* line */
.sj-entry:after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(0,0,0,.12), transparent);
  opacity:.35;
}

/* left */
.sj-left{
  display:grid;
  grid-template-columns:80px 1fr;
  gap:12px;
  padding-right:12px;
  border-right:1px solid var(--borders);
  align-items:start;
  position:relative;
}

/* avatar */
.sj-avatar{
  width:80px;
  height:80px;
  border-radius:8px;
  border:1px solid var(--borders);
  background:
    linear-gradient(135deg, rgba(0,0,0,.08), rgba(255,255,255,.04)),
    var(--beg200);
  overflow:hidden;
  position:relative;
}

.sj-avatar:after{
  content:"";
  position:absolute;
  inset:6px;
  border:1px dashed rgba(179,58,58,.25);
  border-radius:6px;
  pointer-events:none;
}

.sj-avatar img{
  width:80px;
  height:80px;
  display:block;
  object-fit:cover;
  filter:contrast(1.05) saturate(.95);
}

/* name */
.sj-name,
.sj-name:link,
.sj-name:visited{
  display:block;
  font-family:Oswald,Tahoma,sans-serif;
  font-size:18px;
  letter-spacing:.04em;
  text-transform:uppercase;
  line-height:1.1;
  margin-bottom:6px;
  text-decoration:none;
  color:#b33a3a !important;
  transition:.2s;
  position:relative;
}

.sj-name:before{
  content:"⌖";
  margin-right:6px;
  font-size:12px;
  opacity:.6;
}

.sj-name:hover{
  color:#d84b4b !important;
  text-shadow:0 0 6px rgba(179,58,58,.25);
}

/* place */
.sj-place{
  font-size:13px;
  line-height:1.35;
  opacity:.78;
}

/* right */
.sj-right{
  padding-left:14px;
  text-align:justify;
  position:relative;
}

.sj-right:before{
  content:"";
  position:absolute;
  left:6px;
  top:0;
  bottom:0;
  width:1px;
  background:linear-gradient(to bottom, transparent, rgba(179,58,58,.2), transparent);
  opacity:.35;
}

.sj-text{
  margin-bottom:10px;
}

.sj-feel{
  padding-left:10px;
  border-left:2px solid #b33a3a;
  font-style:italic;
  opacity:.92;
}

.sj-feel:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  width:60%;
  height:1px;
  background:rgba(179,58,58,.25);
}

/* end */
.sj-end{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--borders);
  text-align:center;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.62;
}

.sj-end:before{
  content:"✶ ✶ ✶";
  display:block;
  font-size:10px;
  opacity:.4;
  margin-bottom:6px;
}

/* responsive */
@media (max-width:760px){

.sj2{
  width:100%;
  margin:8px auto;
  padding:12px;
}

.sj-entry{
  grid-template-columns:1fr;
  gap:10px;
}

.sj-left{
  border-right:none;
  border-bottom:1px solid var(--borders);
  padding-right:0;
  padding-bottom:10px;
}

.sj-right{
  padding-left:0;
}

.sj-entry:before{
  left:-6px;
}
}

/* dossier layer */
.sj-entry[data-dossier]:after{
  content: attr(data-dossier);
  position:absolute;
  bottom:6px;
  right:10px;
  font-size:9px;
  letter-spacing:.12em;
  opacity:.18;
  font-family:monospace;
  text-transform:uppercase;
  pointer-events:none;
}

.sj-entry[data-time]:before{
  content: attr(data-time);
  position:absolute;
  top:6px;
  right:10px;
  font-size:9px;
  opacity:.22;
  font-family:monospace;
  letter-spacing:.08em;
  pointer-events:none;
}

.sj-entry[data-coords] .sj-right:after{
  content: attr(data-coords);
  position:absolute;
  bottom:-2px;
  left:6px;
  font-size:8px;
  opacity:.15;
  font-family:monospace;
  letter-spacing:.1em;
  pointer-events:none;
}
</style>

<div class="sj2">

  <div class="sj-entry">
    <div class="sj-left">
      <div class="sj-avatar">
        <img src="https://via.placeholder.com/80x80">
      </div>

      <div>
        <a href="ССЫЛКА_НА_ПРОФИЛЬ" class="sj-name">ИМЯ ПЕРСОНАЖА</a>
        <div class="sj-place">Место первой встречи</div>
      </div>
    </div>

    <div class="sj-right">
      <div class="sj-text">Обстоятельство первой встречи.</div>
      <div class="sj-feel">Личное отношение Шалакура.</div>
    </div>
  </div>

  <div class="sj-entry">
    <div class="sj-left">
      <div class="sj-avatar">
        <img src="https://via.placeholder.com/80x80">
      </div>

      <div>
        <a href="ССЫЛКА_НА_ПРОФИЛЬ" class="sj-name">ИМЯ ПЕРСОНАЖА</a>
        <div class="sj-place">Место первой встречи</div>
      </div>
    </div>

    <div class="sj-right">
      <div class="sj-text">Обстоятельство первой встречи.</div>
      <div class="sj-feel">Личное отношение Шалакура.</div>
    </div>
  </div>

  <div class="sj-end">
    ни один странник не уходит прежним с той дороги, что выбрал сам
  </div>

</div>

<script>
window.addEventListener("message", (event) => {
  if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
  if (event.data.eventName != 'fontChange') return;
  $('.post-content p, .post-content div').css('font-size', event.data.fontSize + 'px');
});

window.addEventListener("message", (event) => {
  if (!event.origin.match(/oldshadows\.rusff\.me$/)) return;
  if (event.data.eventName != 'styleChange') return;

  const style = event.data.style === 'system'
    ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
    : event.data.style;

  $("body").attr("class", style);
});

window.parent.postMessage({ eventName: 'askStyle' }, "*");
</script>
[/html]

Отредактировано Sealgair (2026-04-27 07:21:11)

Подпись автора

https://upforme.ru/uploads/001c/03/d9/307/744900.png

0


Вы здесь » Shadows of Old » Анкетирование » Sealgair | shapeshifter


Рейтинг форумов | Создать форум бесплатно