[html]<div style="position: relative; width: 600px; margin: 50px auto;">
<!-- ОСНОВНАЯ ФОТОГРАФИЯ -->
<div style="position: relative; z-index: 10; display: inline-block; width: 100%; transform: rotate(-0.5deg);">
<div style="background: #9a8b7a; border-radius: 14px; padding: 4px; box-shadow: 0 0 0 1px #7a6b5a, inset 0 0 0 1px #b8a99a;">
<div style="background: #c0c0c0; border-radius: 10px; padding: 1px; box-shadow: inset 0 0 0 1px #e8e8e8, inset 0 0 3px rgba(0,0,0,0.15);">
<div style="position: relative; overflow: hidden; border-radius: 9px;">
<!-- ⬇️ ЗАМЕНИ ССЫЛКУ НА СВОЮ КАРТИНКУ ⬇️ -->
<img src="https://i.pinimg.com/1200x/b1/89/98/b1899856a56d98c1b3751484c9f54401.jpg" width="600" height="250" style="width: 600px; height: 250px; display: block; object-fit: cover; filter: sepia(0.35) contrast(1.1) brightness(0.96); border-radius: 9px;">
<div class="scratch-overlay-main"></div>
<div class="stain-overlay-main"></div>
<div class="grain-overlay-main"></div>
</div>
</div>
</div>
</div>
</div>
<style>
/* ЦАРАПИНЫ (основное фото) */
.scratch-overlay-main {
position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none;
background-image: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(0,0,0,0.05) 2px, rgba(0,0,0,0.05) 5px),
repeating-linear-gradient(-45deg, transparent, transparent 3px, rgba(80,60,40,0.04) 3px, rgba(80,60,40,0.04) 7px);
border-radius: 9px; z-index: 2;
}
/* ПЯТНА (основное фото) */
.stain-overlay-main {
position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none;
background: radial-gradient(ellipse at 15% 25%, rgba(160,130,95,0.1) 0%, transparent 40%),
radial-gradient(ellipse at 85% 70%, rgba(110,85,60,0.08) 0%, transparent 50%),
radial-gradient(circle at 50% 50%, rgba(180,155,125,0.05) 0%, transparent 70%);
border-radius: 9px; z-index: 2;
}
/* ЗЕРНИСТОСТЬ (основное фото) */
.grain-overlay-main {
position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none;
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><filter id="noise"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23noise)" opacity="0.04"/></svg>');
background-repeat: repeat; background-size: 200px; border-radius: 9px; z-index: 3; mix-blend-mode: multiply;
}
</style>[/html]
[html]<div style="text-align: center;">
<font face="ClickClack" size="30" style="font-size: 30px; color: #3c322b; letter-spacing: 1px; display: inline-block;" id="typewriterText"></font>
</div>
<script>
const text = "ТУЛЬПА";
const container = document.getElementById('typewriterText');
let i = 0;
let isDeleting = false;
// Храним позиции для каждой буквы (фиксированные, чтобы не дёргались при каждом обновлении)
let positions = [];
function generatePositions(length) {
const newPositions = [];
for (let j = 0; j < length; j++) {
// Очень маленькое смещение: -1, 0, или +1 (редко)
const offset = Math.floor(Math.random() * 3) - 1; // -1, 0, или 1
newPositions.push(offset);
}
return newPositions;
}
function updateDisplay() {
if (i === 0) {
container.innerHTML = '';
return;
}
const currentText = text.substring(0, i);
let html = '';
for (let j = 0; j < currentText.length; j++) {
const char = currentText[j];
// Для пробела не применяем смещение
if (char === ' ') {
html += `<span style="display: inline-block;"> </span>`;
} else {
const offset = positions[j] || 0;
// Очень мягкое смещение с плавным переходом
html += `<span style="display: inline-block; transform: translateY(${offset}px); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);">${char}</span>`;
}
}
container.innerHTML = html;
}
function typeWriterEffect() {
if (!isDeleting && i < text.length) {
// Печатаем новую букву — обновляем позиции для всех напечатанных букв
if (i + 1 <= text.length) {
positions = generatePositions(i + 1);
}
i++;
updateDisplay();
setTimeout(typeWriterEffect, 140);
}
else if (!isDeleting && i === text.length) {
isDeleting = true;
setTimeout(typeWriterEffect, 2000);
}
else if (isDeleting && i > 0) {
i--;
updateDisplay();
setTimeout(typeWriterEffect, 80);
}
else if (isDeleting && i === 0) {
isDeleting = false;
positions = [];
setTimeout(typeWriterEffect, 1500);
}
}
// Запускаем анимацию
typeWriterEffect();
</script>[/html]
Паранормальное существо, созданное с помощью силы мысли и привязанное к своему создателю.
Тульпы возникают не так часто, однако являются довольно специфическими существами, которые могут как помогать своему хозяину, так и убить его. Внешний вид тульпы зависит от того, из каких именно чувств она по итогу выросла — страха, любви, боли и т.п. Чем «темнее» чувство, тем страшнее образ тульпы. Впрочем, из-за особенностей своего происхождения тульпа является крайне пластичной и может менять свой облик под то, что её хозяину будет максимально приятно. Изначально тульпа — бесполое существо, однако со временем она всё больше и больше приобретает черты характера своего хозяина, перетягивает на себя его вкусовые предпочтения и меняется под них.
Тульпа может вызывать болезни на физиологическом уровне в теле хозяина, если ей не хватает, например, его внимания, она ревнует или хочет его наказать. Между тем это существо способно также забирать в себя болезни хозяина, исцелять незначительные травмы и в целом всячески его оберегать, так как со смертью создателя и сама тульпа погибнет.
К сожалению, природа тульпы такова, что если она привязана непосредственно к хозяину, как бы сильно она его ни любила и насколько сильно у них ни была бы развита связь, рано или поздно она его убьёт. Однако этого можно избежать, если с помощью специального ритуала отсоединить тульпу от хозяина на какую-то вещь, которая станет вместилищем сущности, то есть своеобразным артефактом. Таким образом тульпа сможет не только быть «свободнее» от своего создателя, что позволит ей чувствовать, мыслить и быть отдельной, самостоятельной личностью, но и получит возможность эволюционировать, развиваться как сущность, становиться сильнее.
В крайне редких случаях эволюционировавшие тульпы могут выбираться из предметов своих создателей, чтобы вступиться за них или защитить от смертельной угрозы. Правда, после такого выхода в реальный мир им требуется достаточно длительное время на восстановление, из-за чего даже минимальный контакт с ними бывает невозможно установить, и может казаться, что тульпа после такого выхода погибла.