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

daymare

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

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


Вы здесь » daymare » town guide » порождения бухты


порождения бухты

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

1

[hideprofile]

Код:
<!--HTML--><div class="daymare-theme-wrapper daymare-theme-pick04">

<div class="daymare-theme-header">
<div class="daymare-theme-title">порождения бухты</div>
</div>

<div class="daymare-theme-body">
<div class="daymare-theme-text">
Мистика так или иначе всегда просачивалась сквозь городскую жизнь: странные тени за углом родного дома; голоса в гостиной, что слышны после полуночи; внезапно исчезающие предметы и встречи с тем, чему сложно найти рациональное объяснение — всё это встречалось хоть и редко, но достаточно, чтобы Хорсшу-Бэй оброс целой <b>паутиной неприглядных легенд</b>. Какие-то из них особенно редкие, другие — будь то призраки в тринадцатом номере в пригородном мотеле или полтергейсты в душевой популярного фитнес-центра — более привычные местному уху байки.
<br><br>
Список порождений, населяющих бухту, может оказаться огромным, но в настоящее время для ознакомления вам доступна лишь их малая часть. Остальные создания скрыты и <b>еще не явили</b> свой лик местным жителям, однако вскоре вы начнете собирать частички этого пазла, дабы докопаться до правды.
<br><br>
В своих личных историях <b>вы можете</b> воплощать в реальность самые разные мистические задумки, пока они не оказывают серьёзного влияния на других жителей и могут остаться частью местного фольклора, <b>не нашумевшего</b> на первых полосах городских газет.
</div>
</div>
</div>

+11

2

[hideprofile]

Код:
<!--HTML-->
<style>
/* Карточная галерея RUSFF. Все правила изолированы префиксом rusff-reveal-deck. */

.html_newspost.rusff-reveal-deck-post,
.html_newspost.rusff-reveal-deck-post * {
  box-sizing: border-box;
}

/* Оболочка взята из шаблона поста Daymare, но боковая картинка здесь не нужна. */
.html_newspost.rusff-reveal-deck-post {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  color: var(--text-02, #323232);
  background: var(--backgr-03, #e6e6e6);
  border-radius: 6px;
  transform: none !important;
  font-family: var(--font, Inter), Arial, sans-serif;
}

.html_newspost.rusff-reveal-deck-post .html_newspost-side {
  display: none !important;
}

.html_newspost.rusff-reveal-deck-post .html_newspost-main {
  display: block !important;
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 12px !important;
  transform: none !important;
}

.html_newspost.rusff-reveal-deck-post .html_newspost-box {
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 12px !important;
  overflow: hidden;
  color: var(--text-02, #323232);
  background: var(--backgr-07, #ebebeb);
  border: 0;
  border-radius: 6px;
  box-shadow: none;
  transform: none !important;
}

.rusff-reveal-deck {
  /* БЫСТРЫЕ НАСТРОЙКИ РАЗМЕРА И ЦВЕТОВ */
  --rusff-reveal-deck-accent: var(--links-01, #53778b);
  --rusff-reveal-deck-text: var(--text-02, #323232);
  --rusff-reveal-deck-surface: var(--backgr-03, #e6e6e6);
  --rusff-reveal-deck-modal-surface: var(--backgr-07, #ebebeb);
  --rusff-reveal-deck-max-width: 820px;
  /* Точный формат присланной PNG-карты: 600 × 1000 px. */
  --rusff-reveal-deck-card-ratio: 600 / 1000;
  --rusff-reveal-deck-title-size: 16px;
  --rusff-reveal-deck-text-size: 12px;
  --rusff-reveal-deck-back-text: #f7f1df;
  width: 100%;
  max-width: var(--rusff-reveal-deck-max-width);
  min-width: 0;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  color: var(--rusff-reveal-deck-text);
  background: transparent;
  font: inherit;
  text-align: left;
}

.rusff-reveal-deck [hidden] {
  display: none !important;
}

.rusff-reveal-deck .rusff-reveal-deck-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  overflow: visible;
}

.rusff-reveal-deck .rusff-reveal-deck-card {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  aspect-ratio: var(--rusff-reveal-deck-card-ratio);
  margin: 0;
  padding: 0;
  overflow: visible;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 6px;
  appearance: none;
  cursor: pointer;
  perspective: 900px;
  -webkit-tap-highlight-color: transparent;
}

.rusff-reveal-deck .rusff-reveal-deck-card:focus {
  outline: none;
}

.rusff-reveal-deck .rusff-reveal-deck-card:focus-visible {
  outline: 2px solid var(--rusff-reveal-deck-accent);
  outline-offset: 3px;
}

.rusff-reveal-deck .rusff-reveal-deck-card-inner {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
}

.rusff-reveal-deck .rusff-reveal-deck-card-face {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: var(--rusff-reveal-deck-surface);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(50, 50, 50, .18);
  transition:
    transform .56s cubic-bezier(.2, .72, .24, 1),
    opacity .22s ease;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.rusff-reveal-deck .rusff-reveal-deck-card-front {
  opacity: 1;
  transform: rotateY(0);
}

.rusff-reveal-deck .rusff-reveal-deck-card-back {
  opacity: 0;
  transform: rotateY(180deg);
}

.rusff-reveal-deck .rusff-reveal-deck-card-back::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(6, 20, 16, .46);
  pointer-events: none;
}

.rusff-reveal-deck .rusff-reveal-deck-card-back .rusff-reveal-deck-card-image {
  filter: brightness(.58) saturate(.82);
}

.rusff-reveal-deck .rusff-reveal-deck-card.is-flipped .rusff-reveal-deck-card-front {
  opacity: 0;
  transform: rotateY(-180deg);
}

.rusff-reveal-deck .rusff-reveal-deck-card.is-flipped .rusff-reveal-deck-card-back {
  opacity: 1;
  transform: rotateY(0);
}

/*
 * contain показывает PNG целиком и никогда не искажает пропорции.
 * Если когда-нибудь понадобится заполнение с обрезкой, замените contain на cover.
 */
.rusff-reveal-deck .rusff-reveal-deck-card-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center;
}

.rusff-reveal-deck .rusff-reveal-deck-card-copy {
  position: absolute;
  inset: 8px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 10px;
  overflow-y: auto;
  color: var(--rusff-reveal-deck-back-text);
  background: transparent;
  border: 0;
  border-radius: 6px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .82);
  scrollbar-width: thin;
}

.rusff-reveal-deck .rusff-reveal-deck-card-copy-title {
  display: block;
  margin: 0 0 8px;
  color: inherit;
  font-family: inherit;
  font-size: var(--rusff-reveal-deck-title-size);
  font-weight: 700;
  line-height: 1.12;
  text-align: left;
}

.rusff-reveal-deck .rusff-reveal-deck-card-copy-text {
  display: block;
  margin: 0;
  color: inherit;
  font-family: inherit;
  font-size: var(--rusff-reveal-deck-text-size);
  font-weight: 400;
  line-height: 1.42;
  text-align: justify;
  hyphens: auto;
  overflow-wrap: anywhere;
}

.rusff-reveal-deck .rusff-reveal-deck-card-more {
  display: inline-block;
  align-self: flex-start;
  margin: 9px 0 0;
  padding: 0;
  color: #d7e7ef;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-size: var(--rusff-reveal-deck-text-size);
  font-weight: 600;
  line-height: 1.3;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.rusff-reveal-deck .rusff-reveal-deck-card-more:hover,
.rusff-reveal-deck .rusff-reveal-deck-card-more:focus-visible {
  color: #ffffff;
}

.rusff-reveal-deck .rusff-reveal-deck-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(18, 31, 27, .76);
}

/* Пока окно открыто, страница форума под ним не прокручивается. */
html.rusff-reveal-deck-page-locked,
body.rusff-reveal-deck-page-locked {
  overflow: hidden !important;
}

/* Портал выводит окно из слоёв поста поверх фиксированной шапки форума. */
.rusff-reveal-deck.rusff-reveal-deck-portal {
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  box-sizing: border-box;
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: visible;
  pointer-events: none;
}

.rusff-reveal-deck-portal .rusff-reveal-deck-modal {
  z-index: 1;
  pointer-events: auto;
}

.rusff-reveal-deck-portal,
.rusff-reveal-deck-portal * {
  box-sizing: border-box;
}

.rusff-reveal-deck .rusff-reveal-deck-modal-dialog {
  position: relative;
  width: min(520px, 100%);
  max-height: calc(100vh - 48px);
  padding: 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  color: var(--rusff-reveal-deck-text);
  font-family: var(--font, Inter), Arial, sans-serif;
  background: var(--rusff-reveal-deck-modal-surface);
  border-radius: 6px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, .32);
}

.rusff-reveal-deck .rusff-reveal-deck-modal-close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  color: var(--rusff-reveal-deck-text);
  background: transparent;
  border: 0;
  border-radius: 6px;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  text-align: center;
  cursor: pointer;
}

.rusff-reveal-deck .rusff-reveal-deck-modal-close:hover,
.rusff-reveal-deck .rusff-reveal-deck-modal-close:focus-visible {
  background: var(--rusff-reveal-deck-surface);
}

.rusff-reveal-deck .rusff-reveal-deck-modal-title {
  display: block;
  margin: 0 34px 14px 0;
  color: inherit;
  font-family: inherit;
  font-size: var(--rusff-reveal-deck-title-size);
  font-weight: 700;
  line-height: 1.2;
}

.rusff-reveal-deck .rusff-reveal-deck-modal-text {
  color: inherit;
  font-family: inherit;
  font-size: var(--rusff-reveal-deck-text-size);
  font-weight: 400;
  line-height: 1.55;
  text-align: justify;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

.rusff-reveal-deck .rusff-reveal-deck-modal-poem {
  width: min(410px, 100%);
  margin: 24px auto;
  padding: 17px 12px;
  color: inherit;
  border-top: 1px solid var(--rusff-reveal-deck-accent);
  border-bottom: 1px solid var(--rusff-reveal-deck-accent);
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(var(--rusff-reveal-deck-text-size) + 1px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.75;
  letter-spacing: .02em;
  text-align: center;
  white-space: pre-line;
  overflow-wrap: anywhere;
}

@media (max-width: 620px) {
  .rusff-reveal-deck .rusff-reveal-deck-modal {
    padding: 16px;
  }

  .rusff-reveal-deck .rusff-reveal-deck-modal-dialog {
    max-height: calc(100vh - 32px);
    padding: 20px;
  }
}

.rusff-reveal-deck .rusff-reveal-deck-card.is-locked {
  cursor: default;
}

@media (max-width: 620px) {
  .html_newspost.rusff-reveal-deck-post .html_newspost-main {
    padding: 8px !important;
  }

  .html_newspost.rusff-reveal-deck-post .html_newspost-box {
    padding: 8px !important;
  }

  .rusff-reveal-deck .rusff-reveal-deck-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
}

@media (max-width: 360px) {
  .html_newspost.rusff-reveal-deck-post .html_newspost-main {
    padding: 6px !important;
  }

  .html_newspost.rusff-reveal-deck-post .html_newspost-box {
    padding: 6px !important;
  }

  .rusff-reveal-deck .rusff-reveal-deck-grid {
    gap: 10px 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .rusff-reveal-deck .rusff-reveal-deck-card-face {
    transition-duration: .01ms;
  }
}
</style>

<div class="html_newspost rusff-reveal-deck-post">
  <div class="html_newspost-side"></div>

  <div class="html_newspost-main">
    <div class="html_newspost-box">
      <div class="rusff-reveal-deck" id="rusffRevealDeck">
        <div class="rusff-reveal-deck-grid" data-rusff-reveal-grid></div>

        <div class="rusff-reveal-deck-modal" data-rusff-reveal-modal hidden>
          <div
            class="rusff-reveal-deck-modal-dialog"
            role="dialog"
            aria-modal="true"
            aria-labelledby="rusffRevealModalTitle"
          >
            <button
              class="rusff-reveal-deck-modal-close"
              type="button"
              data-rusff-reveal-modal-close
              aria-label="Закрыть"
            >×</button>
            <strong class="rusff-reveal-deck-modal-title" id="rusffRevealModalTitle"></strong>
            <div class="rusff-reveal-deck-modal-text" data-rusff-reveal-modal-text></div>
            <div class="rusff-reveal-deck-modal-poem" data-rusff-reveal-modal-poem hidden></div>
            <div class="rusff-reveal-deck-modal-text" data-rusff-reveal-modal-after hidden></div>
          </div>
        </div>

        <noscript>Для переворота карт в браузере должен быть включён JavaScript.</noscript>
      </div>
    </div>
  </div>
</div>

<script>
(function () {
  "use strict";

  /*
   * ==========================================================
   * РЕДАКТИРОВАТЬ ТОЛЬКО ЭТОТ БЛОК
   * ==========================================================
   */

  /* Общий фон закрытых карт. Настоящие front-картинки при этом сохраняются. */
  var LOCK_IMAGE = "https://i6.imageban.ru/out/2026/07/27/a3b1db577c010ef5edb5a285d6d64a19.png";

  /* Общая рубашка открытых карт. Поле back у конкретной карты может её заменить. */
  var BACK_IMAGE = "https://i8.imageban.ru/out/2026/07/27/594aeaefcba8a2f134fc2d337cb2e637.png";

  /*
   * У каждой карты семь возможных настроек:
   * locked — true: закрыта, false: открыта;
   * front  — лицевая картинка; у закрытой карты это её неподвижный фон;
   * lock   — необязательная личная заглушка закрытой карты вместо LOCK_IMAGE;
   * back   — ссылка на картинку оборотной стороны;
   * title  — жирный заголовок;
   * text   — основной текст.
   * fullText — полный текст в окне по ссылке «читать дальше»;
   * для переноса строки пишите \n, для пустой строки между абзацами — \n\n.
   */
  var CARDS = [
      {
        locked: false,
        front: "https://i7.imageban.ru/out/2026/07/27/69fef35d8c03ceedb49d5bb06088b8b0.png",
        back: "https://i8.imageban.ru/out/2026/07/27/594aeaefcba8a2f134fc2d337cb2e637.png",
        title: "Королевы Бухты",
        fullText: "По городу ходит слух, что после полуночи на побережье, где долгое время проходил Фестиваль Мечехвоста, иногда можно найти атласную ленту победительницы конкурса «Королева бухты». Она всегда лежит на влажном песке у самой кромки воды, даже если до этого несколько часов наступал прилив, и никогда не бывает мокрой. Если поднять её и забрать с собой, нужно ждать появления шести девушек, прежних победительниц конкурса. Они возникают неподалёку, выходя из тумана над водой, и сначала кажутся совершенно обычными, но при ближайшем взгляде становится понятно, что все они мертвы: их фигуры местами распадаются белёсым туманом, рябят и гаснут, возникая вновь уже немного ближе, а на шее каждой отчётливо проступает тёмный кольцевой след удушья.\n\nШесть королев получили шелка,\nКаждую сжала сухая рука.\nДжессика больше не может дышать,\nСабрине пришлось на полу замолчать.\nТереза синеет в безмолвном бреду,\nСаманта нашла в своей ленте беду.\nМэри-Джейн задохнулась в плену темноты,\nНэнси завяжет потуже банты.\nШесть королев не дожили до дня.\nКто же седьмая? Ловите меня!\n\nОни произносят её снова и снова, каждый раз указывая на одну из стоящих перед ними фигур. Если считалка заканчивается на человеке, который подобрал ленту, ему нужно бежать к свету и ни в коем случае не оборачиваться. Говорят, что если обернуться, девушки оказываются совсем близко, а на следующее утро тело жертвы находят на берегу, задушенное собственной одеждой. После этого на месте убийства всегда обнаруживают шесть следов ног, уходящих в море.\n\nПосле убийства Бренды Нэш многие старожилы опасаются, что совсем скоро призраков девушек станет на одну больше, а скрыться от них станет ещё труднее.",
        text: "По городу ходит слух, что после полуночи на побережье, где долгое время проходил Фестиваль Мечехвоста, иногда можно найти атласную ленту победительницы конкурса «Королева бухты»..."
      },
      {
        locked: false,
        front: "https://i5.imageban.ru/out/2026/07/27/36eded6807a82cecb1a3b59192258fc9.png",
        back: "",
        title: "Телеканал 13",
        fullText: "С тех пор как маяк на Блэк-Туск снова загорается после землетрясения, жители Хорсшу-Бэй один за другим рассказывают о странной передаче, внезапно появившейся в эфире нового канала. Канал всегда находится под номером «13» и обычно так и обозначается в верхнем правом углу экрана, но иногда его название меняется на «Канал 13» или «W-HSB 13». Никакой информации о лицензии, владельцах или студии найти не удаётся, а местные телевизионщики и вовсе уверяют, что на этой частоте ничего не вещает. Тем не менее канал появляется исключительно ночью, обычно после полуночи, и особенно хорошо ловится во время тумана или сильного прилива.\n\nГлавная и единственная передача канала называется «Вечерняя гостиная». Она выглядит как образец домашнего уюта прямиком из шестидесятых: ведущий в безупречном твидовом костюме сидит в кресле на фоне нарочито уютной декорации с камином, книжными полками и окнами с короткими занавесками, за которыми неизменно виден морской пейзаж с маяком, разрезающим своим светом тёмную воду у скалистого мыса. По обыкновению студию тесно заполняет массовка, однотипно улыбаясь и аплодируя ведущему в нужных местах. Ведущий разговаривает с гостями о совершенно обычных вещах: о жизни в Хорсшу-Бэй, семье, работе, любви, детстве, переезде в город или желании из него уехать. В каждом выпуске он приглашает местных жителей рассказать о своих проблемах, реже в студии появляются незнакомцы.\n\nИногда зритель видит на экране собственную спину среди массовки или собственное лицо, внимательно следящее за ведущим. Среди однотипных фигур можно заметить родственника, спящего в этот момент в соседней комнате, или даже друга, давно покинувшего здешние края. Долгий просмотр передачи неизменно привлекает внимание ведущего, а его последующие вопросы, даже если зритель остаётся всего лишь одним из участников массовки, так или иначе побуждают его задержаться у экрана подольше.\n\nВпрочем, это далеко не самое страшное, что может произойти. Те, кому посчастливилось хотя бы на одну ночь стать не просто зрителем, а почётным гостем «Вечерней гостиной», вскоре после эфира оказываются заложниками череды несчастий. Кто-то в одночасье лишается зрения, и ни один врач не находит тому объяснения; кто-то ломает обе ноги, падая с лестничного пролёта, и убеждает окружающих, что во время эфира на съёмочной площадке его толкает неизвестный, а позже, уже днём, человек вновь ощущает точно такой же удар в спину; другие гости просыпаются со скрюченные артритом пальцами, а кто-то получает травмы, подозрительно напоминающие события, произошедшие с ним во время ночной программы.\n\nУдивительно, ведь в настоящей жизни они никогда там не были. Это ведь чистой воды фантазия: включить телевизор ночью и увидеть кого-то, похожего на себя как две капли воды среди гостей новой телепередачи.\n\nПередача выходит в прямом эфире каждую ночь и неизменно заканчивается единственной фразой ведущего: «Не выключайте телевизор, чтобы свет маяка всегда освещал ваш путь!». После завершения программы экран перекрывает бледно-жёлтая рябь, а если переключить канал, ещё некоторое время где-то на фоне слышится шум морского прибоя и тихий, едва различимый шёпот, подозрительно напоминающий голос самого зрителя.",
        text: "С тех пор как маяк на Блэк-Туск снова загорается после землетрясения, жители Хорсшу-Бэй один за другим рассказывают о странной передаче, внезапно появившейся в эфире нового канала..."
      },
      {
        locked: false,
        front: "https://i6.imageban.ru/out/2026/07/27/056d0ac275b6e90eccaa8c65d6be55df.png",
        back: "",
        title: "Сбитый олень на шоссе № 264",
        fullText: "Покидая пределы Хорсшу-Бэй в ночное время по трассе № 264 на личном автомобиле, вы можете стать очевидцем неприятной картины: на соседней полосе опустевшей трассы, тяжело хрипя и издавая жалобный гортанный звук, лежит олень с перебитыми ногами. По всей видимости, животному не повезло столкнуться с проезжавшей фурой, водитель которой не рискнул помогать раненому зверю. Если заглушить мотор и остановиться, вскоре становится понятно, что единственная трасса опустела: ни через пять минут, ни через десять или двадцать мимо не проезжает ни одного автомобиля, а все попытки связаться с цивилизацией, вызвать помощь или сообщить о случившемся разбиваются об отсутствие мобильной связи в лесной глуши.\n\nСамое странное, впрочем, начинается ровно в тот момент, когда вы решаете покинуть машину, чтобы осмотреть раненое животное. Его внимание, до сих пор рассеянное, подозрительно быстро фокусируется на вас, и тотчас пропадают сбитое дыхание и болезненные стоны. Вскоре становится заметно, как из-за туши оленя поднимается высокая, скрюченная антропоморфная фигура. Руки её длинные, влачащиеся по земле и неестественно искривлённые, колени выгнуты в обратную сторону, а вся кожа покрыта рыхлым слоем чёрного вещества, абсорбирующего свет. Едва выбравшись из своего укрытия, нечто тотчас бросается в вашу сторону, раскрыв глубокую пасть, полную длинных игольчатых зубов. Нечеловечески быстрое, оно преследует вас, даже когда вы возвращаетесь в машину и изо всех сил вдавливаете газ в пол.\n\nХодят слухи, что время от времени на шоссе в предрассветные часы можно заметить брошенное авто с глубокой вмятиной на капоте, словно от сильного удара, а из распахнутых дверей тянется длинный кровавый след, уходящий в лес. Поиски ещё ни разу не увенчались успехом, и единственное, что удаётся найти на месте происшествия, это обрывки одежды или обувь без вести пропавших.\n\nСреди старожилов ходит слух, что так Бухта удерживает жителей в городе и наказывает предателей. Считается, что если вам не посчастливилось столкнуться со сбитым оленем на ночной трассе, лучше ни в коем случае не останавливаться и как можно скорее покинуть злосчастный километр, не оглядываясь в зеркало заднего вида. А если всё же оглянулись, постарайтесь не запачкать сиденье, увидев в паре метров от автомобиля преследующую вас фигуру чудовища.",
        text: "Покидая пределы Хорсшу-Бэй в ночное время по трассе № 264 на личном автомобиле, вы можете стать очевидцем неприятной картины: на соседней полосе опустевшей трассы, тяжело хрипя и издавая жалобный гортанный звук, лежит олень с перебитыми ногами..."
      },
      {
        locked: false,
        front: "https://upforme.ru/uploads/001c/c1/8b/13/507802.png",
        back: "",
        title: "Проклятый автомобиль",
        fullText: "В 1977 году мужчина по имени Рой Салливан из Виргинии задумал скупить прибрежную зону вокруг Хорсшу-Бэй и превратить ее в шикарный морской парк развлечений. Вместе со своей командой он явился в город и принялся убеждать членов городского совета и влиятельных местных жителей в том, что парк развлечений принесет городу дополнительный доход от притока туристов и новые рабочие места. За несколько недель Рой свел близкие знакомства почти со всеми горожанами, чей голос что-либо значил — молодой, красноречивый, объездивший, казалось, всю страну от западного до восточного побережья, рассказывающий о своей дружбе с голливудскими актрисами и техасскими нефтяниками, Рой казался воплощением успеха и американской мечты, и не последнюю роль в этом впечатлении играл его автомобиль, новенький, с иголочки Форд Торино.\n\nТемно-вишневый блестящий Форд с кожаным салоном цвета слоновой кожи стал привычным зрелищем на улицах Хорсшу-Бэй, но чаще всего его замечали у дома мистера Харриса, председателя исторического общества города. Казалось, Рой Салливан искренне интересуется историей залива Памлико и Хорсшу-Бэй, но дело, конечно же, было в белокурой дочери мистера Харриса Лорен. Ходили слухи, что она питает ответную симпатию к Рою Салливану и даже когда грянули новые инициативы Джимми Картера в сфере экологии и место запланированной стройки получило статус национального парка, из-за чего пришлось прекратить уже начатые работы по расчистке берега, Рой не расстроился. Он распустил свою команду и начал присматривать дом в городе, подходящий для молодой семьи — но на главный вопрос Лорен ответила отказом.\n\nГородская легенда гласит, что Рой молча вышел из дома Харрисов, сел в свой автомобиль и вдавил педаль газа в пол. Задние габаритные огни вишневого Форда исчезли в тумане, и только через три дня водолазы достали автомобиль из залива. Тело Роя так и не было найдено, его компания разорилась без своего главы, оставленная на строительстве техника и автомобиль были проданы с молотка тут же, в городе, но, говорят, даже полностью пересобранный, Форд Торино приносил несчастье своим владельцам: кому-то отчаянно не везло в любви, кому-то — в делах, а кое-кто и вовсе рассказывал, что, сидя за рулем, видел в зеркале заднего вида мертвеца вместо водителя, мертвеца, который пытался заговорить с живыми, а автомобильные фары освещали давно закрытую дорогу вдоль залива Памлико, но все новые владельцы Форда, казалось, были одержимы им — и все больше напомнили бы Роя Салливана новыми привычками и словечками тем старожилам, кто мог его помнить. Эта одержимость неизменно заканчивалась смертью на дороге — не всегда в автомобильной аварии, но всегда с участием Форда, и хотя у каждой такой смерти было вполне логичное объяснение, игнорировать эти совпадения было трудно.\n\nПользующийся дурной славой автомобиль оказался на свалке и ржавел там, пока новый владелец свалки не решил отреставрировать его и продать через интернет в погоне за выгодой — и посмотрите внимательно, не вы ли теперь сидите за рулем вишневого Форда Торино?..",
        text: "В 1977 году мужчина по имени Рой Салливан из Виргинии задумал скупить прибрежную зону вокруг Хорсшу-Бэй и превратить ее в шикарный морской парк развлечений..."
      },
      {
        locked: false,
        front: "https://upforme.ru/uploads/001c/c1/8b/13/645081.png",
        back: "",
        title: "Тайный круг Хорсшу-Бэй",
        fullText: "Говорят, в Хорсшу-Бэй существует закрытая община, связанная со старым маяком и существом, которое спит под скалой. Никто не знает, как они себя называют и сколько их на самом деле. Кто-то клянется, что встречал этих людей на благотворительных сборах, другие шепчутся, что члены общины собираются в лесу ровно в полночь, укутанные длинными плащами, а в барах и вовсе обсуждают, что ко всему происходящему причастна местная церковь. Злые языки называют общину культом, который связывают с исчезновениями людей. Полиция обычно списывает все на несчастный случай или самоубийство; лишь старые рыбаки замечают, что после каждой такой смерти залив возле острова ненадолго успокаивается.\n\nСлухи ещё ни разу не приводили к «Тайдпоинту» — частному реабилитационному центру на скалистом побережье Брейкуотера. Центр пользуется хорошей репутацией: здесь проводят бесплатные группы поддержки, помогают людям с зависимостями, оплачивают лечение нуждающимся и участвуют в городских благотворительных программах. Большинство пациентов никогда не сталкивается ни с чем подозрительным и знает «Тайдпоинт» исключительно с этой стороны. Изнутри культ устроен примерно так же. Первый круг открыт для всех: психологи, медитации, группы поддержки и обычные программы восстановления. Некоторые постоянные посетители получают приглашение на закрытые встречи, где разговоры постепенно смещаются к местным легендам, странным болезням, снам и событиям возле воды. Здесь человеку дают почувствовать, что его опыт имеет особое значение и что он замечает в Хорсшу-Бэй то, чего не видят остальные. Именно из этого круга позднее выбирают как будущих посвящённых, так и жертв.\n\nПосвящённых немного. Они знают об истинном назначении центра и верят, что ради блага города необходимо сдерживать голод существа, связанного со старым маяком. Некоторые члены культа работают с архивами Хорсшу-Бэй: собирают сведения о странных заболеваниях жителей и о попытках покинуть город. Другие занимаются пациентами, благотворительными вечерами, работают в городской ратуше, в полиции или просто занимаются обрядами.",
        text: "Говорят, в Хорсшу-Бэй существует закрытая община, связанная со старым маяком и существом, которое спит под скалой..."
      },
      {
        locked: true,
        front: "https://i6.imageban.ru/out/2026/07/27/a3b1db577c010ef5edb5a285d6d64a19.png",
        back: "",
        title: "Карта 06",
        fullText: "",
        text: "Здесь будет текст шестой карты."
      },
      {
        locked: true,
        front: "https://i6.imageban.ru/out/2026/07/27/a3b1db577c010ef5edb5a285d6d64a19.png",
        back: "",
        title: "Карта 07",
        fullText: "",
        text: "Здесь будет текст седьмой карты."
      },
      {
        locked: true,
        front: "https://i6.imageban.ru/out/2026/07/27/a3b1db577c010ef5edb5a285d6d64a19.png",
        back: "",
        title: "Карта 08",
        fullText: "",
        text: "Здесь будет текст восьмой карты."
      }
  ];

  /*
   * ==========================================================
   * НИЖЕ НИЧЕГО РЕДАКТИРОВАТЬ НЕ НУЖНО
   * ==========================================================
   */

  var ROOT_ID = "rusffRevealDeck";
  var CARD_SELECTOR = "[data-rusff-reveal-card]";

  function makeElement(tagName, className, text) {
    var element = document.createElement(tagName);

    if (className) element.className = className;
    if (typeof text === "string") element.textContent = text;

    return element;
  }

  function addImage(side, url, altText, loadOnFlip) {
    if (!url) return;

    var image = makeElement("img", "rusff-reveal-deck-card-image");
    image.alt = altText;
    image.loading = "lazy";
    image.decoding = "async";

    if (loadOnFlip) {
      image.setAttribute("data-rusff-reveal-src", url);
    } else {
      image.src = url;
    }

    side.appendChild(image);
  }

  function makeCard(data, number) {
    var numberText = number < 10 ? "0" + number : String(number);
    var cardTitle = data.title || "Без заголовка";
    var card = makeElement("div", "rusff-reveal-deck-card");
    var inner = makeElement("span", "rusff-reveal-deck-card-inner");
    var front = makeElement(
      "span",
      "rusff-reveal-deck-card-face rusff-reveal-deck-card-front"
    );

    card.setAttribute("data-rusff-reveal-card", numberText);

    if (data.locked) {
      card.className += " is-locked";
      card.setAttribute("aria-disabled", "true");
      card.setAttribute("aria-label", "Карта " + numberText);

      addImage(
        front,
        data.lock || LOCK_IMAGE || data.front,
        "Карта " + numberText,
        false
      );
      inner.appendChild(front);
      card.appendChild(inner);

      return card;
    }

    var back = makeElement(
      "span",
      "rusff-reveal-deck-card-face rusff-reveal-deck-card-back"
    );
    var copy = makeElement("span", "rusff-reveal-deck-card-copy");
    var title = makeElement(
      "strong",
      "rusff-reveal-deck-card-copy-title",
      cardTitle
    );
    var text = makeElement(
      "span",
      "rusff-reveal-deck-card-copy-text",
      data.text || ""
    );
    var more;

    card.setAttribute("role", "button");
    card.setAttribute("tabindex", "0");

    card.setAttribute("aria-pressed", "false");
    card.setAttribute("aria-label", "Перевернуть карту " + cardTitle);

    addImage(
      front,
      data.front,
      "",
      false
    );
    addImage(
      back,
      data.back || BACK_IMAGE,
      "",
      true
    );

    copy.appendChild(title);
    copy.appendChild(text);
    back.appendChild(copy);

    if (data.fullText) {
      more = makeElement(
        "button",
        "rusff-reveal-deck-card-more",
        "читать дальше"
      );
      more.type = "button";
      more.setAttribute("data-rusff-reveal-more", "");
      more.rusffRevealCard = data;
      copy.appendChild(more);
    }
    inner.appendChild(front);
    inner.appendChild(back);
    card.appendChild(inner);

    return card;
  }

  function renderCards(root) {
    var cardIndex;
    var grid = root.querySelector("[data-rusff-reveal-grid]");

    if (!grid) return;

    for (cardIndex = 0; cardIndex < CARDS.length; cardIndex += 1) {
      grid.appendChild(makeCard(CARDS[cardIndex], cardIndex + 1));
    }
  }

  function toggleCard(card) {
    var backImage = card.querySelector("[data-rusff-reveal-src]");
    var isFlipped;

    if (backImage) {
      backImage.src = backImage.getAttribute("data-rusff-reveal-src");
      backImage.removeAttribute("data-rusff-reveal-src");
    }

    isFlipped = card.classList.toggle("is-flipped");
    card.setAttribute("aria-pressed", String(isFlipped));
  }

  function splitModalText(value) {
    var poemStartText = "Шесть королев получили шелка,";
    var poemEndText = "Кто же седьмая? Ловите меня!";
    var poemStart;
    var poemEndStart;
    var poemEnd;

    value = value || "";
    poemStart = value.indexOf(poemStartText);
    poemEndStart = value.indexOf(poemEndText, poemStart);

    if (poemStart === -1 || poemEndStart === -1) {
      return { before: value, poem: "", after: "" };
    }

    poemEnd = poemEndStart + poemEndText.length;

    return {
      before: value.slice(0, poemStart).replace(/\s+$/, ""),
      poem: value.slice(poemStart, poemEnd),
      after: value.slice(poemEnd).replace(/^\s+/, "")
    };
  }

  function openModal(root, more) {
    var data = more.rusffRevealCard || {};
    var parts = splitModalText(data.fullText || "");
    var modal = root.querySelector("[data-rusff-reveal-modal]");
    var title = root.querySelector("#rusffRevealModalTitle");
    var text = root.querySelector("[data-rusff-reveal-modal-text]");
    var poem = root.querySelector("[data-rusff-reveal-modal-poem]");
    var after = root.querySelector("[data-rusff-reveal-modal-after]");
    var close = root.querySelector("[data-rusff-reveal-modal-close]");
    var portal;

    if (!modal || !title || !text || !poem || !after || !close) return;

    title.textContent = data.title || "Без заголовка";
    text.textContent = parts.before;
    text.hidden = !parts.before;
    poem.textContent = parts.poem;
    poem.hidden = !parts.poem;
    after.textContent = parts.after;
    after.hidden = !parts.after;

    portal = makeElement("div", "rusff-reveal-deck rusff-reveal-deck-portal");
    root.rusffRevealModal = modal;
    root.rusffRevealModalParent = modal.parentNode;
    root.rusffRevealModalPortal = portal;
    portal.appendChild(modal);
    document.body.appendChild(portal);

    modal.hidden = false;
    document.documentElement.classList.add("rusff-reveal-deck-page-locked");
    document.body.classList.add("rusff-reveal-deck-page-locked");
    root.rusffRevealLastFocus = more;
    close.focus();
  }

  function closeModal(root) {
    var modal = root.rusffRevealModal || root.querySelector("[data-rusff-reveal-modal]");
    var parent = root.rusffRevealModalParent;
    var portal = root.rusffRevealModalPortal;
    var lastFocus = root.rusffRevealLastFocus;

    if (!modal || modal.hidden) return;

    modal.hidden = true;
    document.documentElement.classList.remove("rusff-reveal-deck-page-locked");
    document.body.classList.remove("rusff-reveal-deck-page-locked");

    if (parent) parent.appendChild(modal);
    if (portal && portal.parentNode) portal.parentNode.removeChild(portal);

    root.rusffRevealModalPortal = null;

    if (lastFocus && typeof lastFocus.focus === "function") {
      lastFocus.focus();
    }
  }

  function handleModalClick(event) {
    var close = event.target.closest("[data-rusff-reveal-modal-close]");

    if (close || event.target === this) {
      event.stopPropagation();
      closeModal(this.rusffRevealRoot);
    }
  }

  function handleModalKeydown(event) {
    if (event.key === "Escape") {
      event.stopPropagation();
      closeModal(this.rusffRevealRoot);
    }
  }

  function handleClick(event) {
    var more = event.target.closest("[data-rusff-reveal-more]");
    var close = event.target.closest("[data-rusff-reveal-modal-close]");
    var modal = event.target.closest("[data-rusff-reveal-modal]");
    var card;

    if (close || (modal && event.target === modal)) {
      closeModal(this);
      return;
    }

    if (more && this.contains(more)) {
      openModal(this, more);
      return;
    }

    card = event.target.closest(CARD_SELECTOR);
    if (!card || !this.contains(card) || card.classList.contains("is-locked")) {
      return;
    }

    toggleCard(card);
  }

  function handleKeydown(event) {
    var card;

    if (event.key === "Escape") {
      closeModal(this);
      return;
    }

    card = event.target.closest(CARD_SELECTOR);
    if (
      !card ||
      event.target !== card ||
      card.classList.contains("is-locked") ||
      (event.key !== "Enter" && event.key !== " ")
    ) {
      return;
    }

    event.preventDefault();
    toggleCard(card);
  }

  function handleImageError(event) {
    if (event.target.classList.contains("rusff-reveal-deck-card-image")) {
      event.target.hidden = true;
    }
  }

  function initDeck() {
    var root = document.getElementById(ROOT_ID);

    if (
      !root ||
      !root.querySelector("[data-rusff-reveal-modal]") ||
      !root.querySelector("[data-rusff-reveal-modal-text]") ||
      !root.querySelector("[data-rusff-reveal-modal-poem]") ||
      !root.querySelector("[data-rusff-reveal-modal-after]") ||
      !root.querySelector("[data-rusff-reveal-modal-close]") ||
      root.rusffRevealDeckReady
    ) {
      return;
    }
    root.rusffRevealDeckReady = true;

    var modal = root.querySelector("[data-rusff-reveal-modal]");
    modal.rusffRevealRoot = root;
    modal.addEventListener("click", handleModalClick);
    modal.addEventListener("keydown", handleModalKeydown);

    renderCards(root);
    root.addEventListener("click", handleClick);
    root.addEventListener("keydown", handleKeydown);
    root.addEventListener("error", handleImageError, true);
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initDeck);
  } else {
    initDeck();
  }
})();
</script>

+20


Вы здесь » daymare » town guide » порождения бухты