2026, мистика, 18+
    Kindred Spirits

    Kindred Spirits

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

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


    Вы здесь » Kindred Spirits » Админка » Локации


    Локации

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

    1

    Локации Академии

    Академия находится в Салеме, что севернее Бостона. Её кампус раскинулся на острове Уинтер, узкой и вытянутой вдоль океана земле в восточной части города с солёным ветром и испещрённую дорожками, которые то уходят в тень деревьев, то резко выводят к камням и воде. Здесь постоянно слышно море: оно обволакивает берег, приносит ветер и иногда окутывает всё вязким туманом.[float=right]https://forumstatic.ru/files/001c/b8/c1/94338.webp
    42.529617251361515, -70.868893210953[/float]

    Для простых людей это место известно как частное образовательное учреждение — «Салемский подготовительный колледж», в инфраструктуру которого входят яхтовый клуб и здания бывшего морского исследовательского центра Cat Cove. Для одарённых же это место в котором они могут находить друг друга и развивать свои магические таланты.

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


    [html]
    <!doctype html>
    <html lang="ru">
      <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width,initial-scale=1" />
        <title>Карта кампуса</title>

        <link rel="preconnect" href="https://forumstatic.ru" crossorigin />
        <link rel="preload" href="https://forumstatic.ru/files/001c/b8/c1/54570.svg" as="fetch" crossorigin />
        <link rel="stylesheet" href="https://forumstatic.ru/files/001c/b8/c1/95532.css?v=8" />
        <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/theme-switcher/theme-iframe.js"></script>
        <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/font-resizer/font-resizer-iframe.js"></script>
      </head>

      <body class="ks-map-page">
        <main class="ks-map-shell" aria-labelledby="mapTitle">
          <div class="ks-map-shell__inner">
            <header class="ks-map-head">
              <p class="ks-map-kicker">Winter Island Campus</p>
              <h1 class="ks-title" id="mapTitle">Карта кампуса</h1>
            </header>

            <div class="ks-map-layout">
              <aside class="ks-map-panel" aria-label="Объекты кампуса">
                <p class="ks-panel-title">Объекты кампуса</p>
                <p class="ks-map-status" id="mapStatus">Выбери объект на карте или в списке.</p>
                <div class="ks-location-list" id="mapLocations" aria-label="Список объектов кампуса"></div>
              </aside>

              <section class="ks-map-card" aria-label="Интерактивная карта">
                <div class="ks-map-card__head">
                  <p class="ks-map-card__title">План острова</p>
                </div>

                <div class="ks-map" id="mapRoot">
                  <div class="ks-map__viewport" id="mapViewport">
                    <div class="ks-map__loading" id="mapLoading">Карта загрузится, когда дойдёшь до неё…</div>
                  </div>
                </div>
              </section>

              <section class="ks-map-details" id="mapDetails" aria-live="polite" aria-label="Описание выбранного объекта">
                <div class="ks-map-details__empty" id="detailsEmpty">
                  <p class="ks-map-details__eyebrow">Описание</p>
                  <h2 class="ks-map-details__title">Ничего не выбрано</h2>
                  <p class="ks-map-details__desc">Нажми на объект карты или выбери пункт в списке, чтобы открыть описание локации.</p>
                </div>

                <div class="ks-map-details__content" id="detailsContent" hidden>
                  <img class="ks-map-details__img" id="detailsImg" alt="" />
                  <div class="ks-map-details__text">
                    <p class="ks-map-details__eyebrow">Выбранный объект</p>
                    <h2 class="ks-map-details__title" id="detailsTitle">—</h2>
                    <p class="ks-map-details__desc" id="detailsDesc">—</p>
                    <a class="ks-map-details__more" id="detailsMore" href="#" target="_blank" rel="noopener noreferrer" hidden>Читать описание в теме</a>
                  </div>
                </div>
              </section>
            </div>
          </div>
        </main>

        <div class="ks-tooltip" id="mapTooltip" hidden role="tooltip">
          <span class="ks-tooltip__title" id="tipTitle">—</span>
        </div>

        <div id="mapData" hidden>
          <div
            data-map-id="_Слой_2-2"
            data-title="Главное здание"
            data-desc="Главное здание Академии расположено в южной части острова, ближе к открытому побережью. Его архитектура сочетает массивные каменные конструкции и современные элементы: стекло, металл, строгие линии фасада."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1110"
          ></div>

          <div
            data-map-id="_Слой_3"
            data-title="Медицинский корпус"
            data-desc="Медицинский центр в салемском кампусе куда уместнее было бы называть небольшим медицинским центром. Он представляет из себя отдельное здание в западной части острова, неподалёку от КПП и общежитий."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1122"
          ></div>

          <div
            data-map-id="_Слой_4"
            data-title="Мужское общежитие"
            data-desc="Жилые корпуса студентов находятся в северной части острова, ближе к въезду и внешней инфраструктуре кампуса. Такое расположение позволяет отделить учебные и жилые зоны, сохраняя при этом удобную связь между ними. Общежития стоят чуть в стороне от оживлённых маршрутов и окружены зелёными участками, создающими более спокойную и камерную атмосферу."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1115"
          ></div>

          <div
            data-map-id="_Слой_12"
            data-title="Женское общежитие"
            data-desc="Жилые корпуса студентов находятся в северной части острова, ближе к въезду и внешней инфраструктуре кампуса. Такое расположение позволяет отделить учебные и жилые зоны, сохраняя при этом удобную связь между ними. Общежития стоят чуть в стороне от оживлённых маршрутов и окружены зелёными участками, создающими более спокойную и камерную атмосферу."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1115"
          ></div>

          <div
            data-map-id="_Слой_5"
            data-title="КПП"
            data-desc="Основной доступ на территорию кампуса осуществляется через северный въезд со стороны материка. Дорога выводит к контрольно-пропускному пункту..."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1111"
          ></div>

          <div
            data-map-id="_Слой_6"
            data-title="Здание Службы безопасности"
            data-desc="Здания бывшего университетского комплекса Cat Cove используются как административно-служебная зона Академии. Здесь размещаются подразделения службы безопасности, технические службы и центры связи."
            data-img="https://forumstatic.ru/files/001c/8d/fd/24675.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1121"
          ></div>

          <div
            data-map-id="ks_science_complex"
            data-title="Научный комплекс"
            data-desc="Научный комплекс располагается в западной части острова между медицинским корпусом и Главным зданием, ограждая остров Уинтер от взглядом любопытных жителей. Он представляет из себя несколько блоков, соединённых друг с другом переходами. Само здание имеет пять этажей, один из которых является подземным. Предназначение комплекса - учёба студентов Академии и научные изыскания."
            data-img="https://forumstatic.ru/files/001c/b8/c1/17838.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p104343"
          ></div>

          <div
            data-map-id="ks_fountain_square"
            data-title="Площадь с фонтаном"
            data-desc="Его украшают фигуры юноши и девушки, ведьмы и её фамильяра. Бронзовые силуэты стоят почти вплотную, но не касаются друг друга: между ладонью ведьмы и зверем — тем самым, в котором каждый неизменно узнаёт своего, — струя воды сворачивается в тонкую мерцающую ленту, будто живая связь, обвивающая их тела. Фонтан не знает зимы и даже в сильные морозы вода в нём продолжает течь, а над чашей поднимается лёгкий пар."
            data-img="https://forumstatic.ru/files/001c/b8/c1/41119.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1111"
          ></div>

          <div
            data-map-id="Слой_4"
            data-title="Оранжереи и теплицы"
            data-desc="Оранжерейный комплекс Академии расположен на восточной окраине кампуса в Салеме. Комплекс возведён на слегка возвышенном участке, дренированном естественными подземными ключами, и обращён к юго-востоку для максимального захвата утреннего солнца, которое в этих краях часто скрыто за туманами."
            data-img="https://forumstatic.ru/files/001c/b8/c1/45827.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1111"
          ></div>

          <div
            data-map-id="Слой_5"
            data-title="Спортплощадка"
            data-desc="По территории разбросан целый комплекс спортивных площадок. У общежитий расположена небольшая площадка с уличными тренажёрами, в том числе с баскетбольным кольцом. Беговые дорожки проложены в западной части, в том числе вокруг нескольких зданий. На искусственно созданном насыпном пляже установлены стойки для волейбола. Пользоваться всем этим можно и в свободное от учёбы время. Иногда занятия проводятся на пляже и, в том числе, в воде — тогда защиту обеспечивают ведьмы, контролируя прибрежное пространство."
            data-img="https://forumstatic.ru/files/001c/b8/c1/84921.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1111"
          ></div>

          <div
            data-map-id="Слой_6"
            data-title="Сады и пруды"
            data-desc="Более двух гектаров островной земли отведено под сады, искусственные водные объекты и озеленение. Конечно, где-то сохранён естественный рельеф острова, но в основном пространство благоустроено и облагорожено так, чтобы по нему было легко и приятно гулять."
            data-img="https://forumstatic.ru/files/001c/b8/c1/66511.png"
            data-url="https://kindredspirits.ru/viewtopic.php?id=84#p1111"
          ></div>
        </div>

        <script>
          const SETTINGS = {
            svgUrl: 'https://forumstatic.ru/files/001c/b8/c1/54570.svg',
            hitPadding: 10,
            lazyRootMargin: '300px',
          };

          const PLACEHOLDER_IMG =
            'data:image/svg+xml;charset=utf-8,' +
            encodeURIComponent(
              '<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 192 192">' +
                '<defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1">' +
                '<stop offset="0" stop-color="#cfe1f3"/><stop offset="1" stop-color="#bfc8d0"/>' +
                '</linearGradient></defs>' +
                '<rect width="192" height="192" rx="28" fill="url(#g)"/>' +
                '<path d="M52 88l44-34 44 34v50a8 8 0 0 1-8 8H60a8 8 0 0 1-8-8V88z" fill="rgba(0,0,0,0.10)"/>' +
                '<path d="M82 146V110h28v36" fill="rgba(0,0,0,0.14)"/>' +
                '<path d="M52 88l44-34 44 34" fill="none" stroke="rgba(0,0,0,0.18)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>' +
                '</svg>',
            );

          const mapRoot = document.getElementById('mapRoot');
          const viewport = document.getElementById('mapViewport');
          const loading = document.getElementById('mapLoading');
          const tooltip = document.getElementById('mapTooltip');
          const tipTitle = document.getElementById('tipTitle');
          const locationList = document.getElementById('mapLocations');
          const mapStatus = document.getElementById('mapStatus');
          const detailsCard = document.getElementById('mapDetails');
          const detailsEmpty = document.getElementById('detailsEmpty');
          const detailsContent = document.getElementById('detailsContent');
          const detailsImg = document.getElementById('detailsImg');
          const detailsTitle = document.getElementById('detailsTitle');
          const detailsDesc = document.getElementById('detailsDesc');
          const detailsMore = document.getElementById('detailsMore');

          const escapeCss = (s) =>
            window.CSS && typeof CSS.escape === 'function'
              ? CSS.escape(s)
              : String(s).replace(
                  /([ !"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~])/g,
                  '\\$1',
                );

          function parseHotspotsFromData() {
            const nodes = Array.from(
              document.querySelectorAll('#mapData [data-map-id]'),
            );
            return nodes
              .map((n) => ({
                id: n.dataset.mapId || '',
                title: n.dataset.title || '',
                desc: n.dataset.desc || '',
                img: n.dataset.img || '',
                url: n.dataset.url || '',
              }))
              .filter((x) => x.id && x.title);
          }

          function sanitizeSvgText(svgText) {
            const parser = new DOMParser();
            const doc = parser.parseFromString(svgText, 'image/svg+xml');
            const svg = doc.documentElement;

            Array.from(svg.querySelectorAll('script')).forEach((n) => n.remove());
            Array.from(svg.querySelectorAll('foreignObject')).forEach((n) =>
              n.remove(),
            );

            for (const el of svg.querySelectorAll('*')) {
              for (const attr of Array.from(el.attributes)) {
                if (/^on/i.test(attr.name)) el.removeAttribute(attr.name);
              }
            }

            return svg.outerHTML;
          }

          function svgEl(tag) {
            return document.createElementNS('http://www.w3.org/2000/svg', tag);
          }

          function closestHotspot(node) {
            if (!node) return null;
            if (node.closest) return node.closest('[data-map-id]');

            let cur = node;
            while (cur && cur.getAttribute) {
              if (cur.getAttribute('data-map-id')) return cur;
              cur = cur.parentNode;
            }
            return null;
          }

          function isHoverDisabled() {
            return (
              document.documentElement.classList.contains('force-mobile') ||
              document.body.classList.contains('force-mobile') ||
              window.matchMedia('(hover: none), (pointer: coarse)').matches
            );
          }

          function isMobileLayout() {
            return (
              document.documentElement.classList.contains('force-mobile') ||
              document.body.classList.contains('force-mobile') ||
              window.matchMedia('(max-width: 760px)').matches
            );
          }

          function attachHitRect(target, data) {
            let bbox = null;
            try {
              bbox = target.getBBox();
            } catch (e) {
              bbox = null;
            }
            if (!bbox) return null;

            const pad = SETTINGS.hitPadding;
            const rect = svgEl('rect');
            rect.setAttribute('x', String(bbox.x - pad));
            rect.setAttribute('y', String(bbox.y - pad));
            rect.setAttribute('width', String(bbox.width + pad * 2));
            rect.setAttribute('height', String(bbox.height + pad * 2));
            rect.setAttribute('fill', '#000');
            rect.setAttribute('fill-opacity', '0');
            rect.classList.add('ks-map__hitbox');

            rect.dataset.mapId = data.id;
            rect.dataset.title = data.title;
            rect.dataset.desc = data.desc;
            rect.dataset.img = data.img;
            rect.dataset.url = data.url;

            target.classList.add('ks-map__hotspot-target', 'is-click-through');
            target.dataset.mapId = data.id;

            const parent = target.parentNode;
            if (parent) parent.insertBefore(rect, target.nextSibling);

            return rect;
          }

          function getDataFromHotspotEl(hs) {
            return {
              id: hs.dataset.mapId || '',
              title: hs.dataset.title || '',
              desc: hs.dataset.desc || '',
              img: hs.dataset.img || '',
              url: hs.dataset.url || '',
            };
          }

          let svgRoot = null;
          let activeTarget = null;
          let hoveredTarget = null;

          const idToTarget = new Map();
          const buttonById = new Map();

          function setHovered(target, on) {
            if (!target) return;
            target.classList.toggle('is-hovered', !!on);
          }

          function setActive(target, on) {
            if (!target) return;
            target.classList.toggle('is-active', !!on);
            const button = buttonById.get(target.dataset.mapId || '');
            if (button) button.classList.toggle('is-active', !!on);
          }

          function showTitleTooltip(title, x, y) {
            if (isHoverDisabled()) return;
            tipTitle.textContent = title || '—';
            tooltip.hidden = false;
            moveTitleTooltip(x, y);
          }

          function moveTitleTooltip(x, y) {
            if (tooltip.hidden) return;
            const gap = 14;
            const rect = tooltip.getBoundingClientRect();
            const left = Math.min(
              Math.max(10, x + gap),
              window.innerWidth - rect.width - 10,
            );
            const top = Math.min(
              Math.max(10, y + gap),
              window.innerHeight - rect.height - 10,
            );
            tooltip.style.left = left + 'px';
            tooltip.style.top = top + 'px';
          }

          function hideTitleTooltip() {
            tooltip.hidden = true;
            tooltip.style.left = '0px';
            tooltip.style.top = '0px';
          }

          function updateDetails(data) {
            detailsEmpty.hidden = true;
            detailsContent.hidden = false;
            detailsTitle.textContent = data.title || '—';
            detailsDesc.textContent = data.desc || 'Описание пока не добавлено.';
            detailsImg.src = data.img || PLACEHOLDER_IMG;
            detailsImg.alt = data.title || '';

            if (data.url) {
              detailsMore.href = data.url;
              detailsMore.hidden = false;
            } else {
              detailsMore.hidden = true;
              detailsMore.removeAttribute('href');
            }
          }

          function selectHotspot(data, target, options = {}) {
            if (!target) return;

            if (activeTarget && activeTarget !== target) setActive(activeTarget, false);
            activeTarget = target;
            setActive(activeTarget, true);
            mapRoot.classList.add('is-focus');
            if (mapStatus) mapStatus.textContent = 'Выбрано: ' + (data.title || 'объект кампуса');
            updateDetails(data);
            hideTitleTooltip();

            if (options.scrollDetails && isMobileLayout()) {
              detailsCard.scrollIntoView({ behavior: 'smooth', block: 'start' });
            }
          }

          function pickHotspot(item, options = {}) {
            const target = idToTarget.get(item.id);
            if (!target) return;
            selectHotspot(item, target, options);
          }

          function renderLocationList(hotspots) {
            if (!locationList) return;
            locationList.replaceChildren();
            buttonById.clear();

            const frag = document.createDocumentFragment();
            hotspots.forEach((item, index) => {
              const button = document.createElement('button');
              button.className = 'ks-location-card';
              button.type = 'button';
              button.dataset.mapId = item.id;

              const number = document.createElement('span');
              number.className = 'ks-location-card__num';
              number.textContent = String(index + 1).padStart(2, '0');
              button.appendChild(number);

              const title = document.createElement('span');
              title.className = 'ks-location-card__title';
              title.textContent = item.title;
              button.appendChild(title);

              button.addEventListener('click', () =>
                pickHotspot(item, { scrollDetails: true }),
              );

              buttonById.set(item.id, button);
              frag.appendChild(button);
            });

            locationList.appendChild(frag);
          }

          function bindDelegatedEvents() {
            svgRoot.addEventListener('pointerover', (e) => {
              if (e.pointerType !== 'mouse' || isHoverDisabled()) return;

              const hs = closestHotspot(e.target);
              if (!hs) return;

              const id = hs.dataset.mapId || '';
              const target = idToTarget.get(id);
              if (!target || target === hoveredTarget) return;

              if (hoveredTarget) setHovered(hoveredTarget, false);
              hoveredTarget = target;
              setHovered(hoveredTarget, true);
              showTitleTooltip(getDataFromHotspotEl(hs).title, e.clientX, e.clientY);
            });

            svgRoot.addEventListener('pointerout', (e) => {
              if (e.pointerType !== 'mouse' || isHoverDisabled()) return;

              const from = closestHotspot(e.target);
              if (!from) return;

              const to = closestHotspot(e.relatedTarget);
              if (to && to.dataset.mapId === from.dataset.mapId) return;

              if (hoveredTarget) {
                setHovered(hoveredTarget, false);
                hoveredTarget = null;
              }
              hideTitleTooltip();
            });

            svgRoot.addEventListener('pointermove', (e) => {
              if (e.pointerType !== 'mouse' || isHoverDisabled()) return;
              moveTitleTooltip(e.clientX, e.clientY);
            });

            svgRoot.addEventListener('click', (e) => {
              const hs = closestHotspot(e.target);
              if (!hs) return;

              e.stopPropagation();

              const target = idToTarget.get(hs.dataset.mapId || '');
              selectHotspot(getDataFromHotspotEl(hs), target, { scrollDetails: true });
            });
          }

          async function loadMap() {
            try {
              const hotspots = parseHotspotsFromData();
              const res = await fetch(SETTINGS.svgUrl, { cache: 'force-cache' });
              if (!res.ok) throw new Error('HTTP ' + res.status);

              const raw = await res.text();
              const cleaned = sanitizeSvgText(raw);

              viewport.innerHTML = cleaned;
              svgRoot = viewport.querySelector('svg');
              if (!svgRoot) throw new Error('SVG не найден');

              svgRoot.setAttribute('preserveAspectRatio', 'xMidYMid meet');

              const misses = [];

              for (const h of hotspots) {
                const target = svgRoot.querySelector('#' + escapeCss(h.id));
                if (!target) {
                  misses.push(h.id);
                  continue;
                }

                idToTarget.set(h.id, target);

                const hit = attachHitRect(target, h);
                if (!hit) {
                  target.dataset.mapId = h.id;
                  target.dataset.title = h.title;
                  target.dataset.desc = h.desc;
                  target.dataset.img = h.img;
                  target.dataset.url = h.url;
                  target.classList.add('ks-map__hotspot-target');
                }
              }

              renderLocationList(hotspots);
              bindDelegatedEvents();

              detailsImg.addEventListener('error', () => {
                detailsImg.src = PLACEHOLDER_IMG;
              });

              window.addEventListener('keydown', (e) => {
                if (e.key === 'Escape') hideTitleTooltip();
              });

              window.addEventListener('resize', hideTitleTooltip, { passive: true });

              if (loading) loading.remove();

              if (misses.length) {
                const warn = document.createElement('div');
                warn.className = 'ks-map__error';
                warn.textContent = 'Часть объектов не найдена по ID: ' + misses.join(', ');
                viewport.appendChild(warn);
                setTimeout(() => warn.remove(), 3800);
              }
            } catch (err) {
              viewport.innerHTML = '';
              const box = document.createElement('div');
              box.className = 'ks-map__error';
              box.textContent = 'Не удалось загрузить карту. Проверь доступность SVG по ссылке и CORS.';
              viewport.appendChild(box);
            }
          }

          function initLazy() {
            if (!('IntersectionObserver' in window)) {
              loadMap();
              return;
            }

            const observer = new IntersectionObserver(
              (entries) => {
                if (!entries.some((entry) => entry.isIntersecting)) return;
                observer.disconnect();
                loadMap();
              },
              { rootMargin: SETTINGS.lazyRootMargin },
            );

            observer.observe(mapRoot);
          }

          initLazy();
        </script>
      </body>
    </html>
    [/html]
    [hideprofile]

    0

    2

    [html]
    <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/theme-switcher/theme-iframe.js"></script>
    <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/font-resizer/font-resizer-iframe.js"></script>
    <style>
    :root {
      --frame-font-size: 14px;
    }

    html,
    body {
      margin: 0;
      padding: 0;
      font-size: var(--frame-font-size) !important;
    }

    #main-building-interiors,
    #main-building-interiors * {
      box-sizing: border-box;
    }

    #main-building-interiors.academy-section {
      margin: 0;
    }

    #main-building-interiors .academy-tabs {
      display: grid;
      grid-template-columns: minmax(230px, 320px) minmax(0, 1fr);
      grid-template-areas: "tabs panels";
      gap: 14px;
      align-items: start;
      width: 100%;
      min-width: 0;
      background: var(--htm-clr);
      padding: 20px;
      border-radius: 5px;
      border: 1px solid var(--bord);
    }

    #main-building-interiors .academy-tab-control {
      display: none !important;
    }

    #main-building-interiors .academy-tab-list {
      grid-area: tabs;
      display: grid;
      gap: 10px;
      min-width: 0;
      align-self: start;
      text-align: left;
    }

    #main-building-interiors .academy-tab-list label {
      display: flex;
      align-items: center;
      gap: 10px;
      width: 100%;
      padding: 10px 14px;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      color: var(--sec-text, #0e0c0b);
      font-family: var(--main-font);
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: .3px;
      font-size: inherit !important;
      transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.06s;
    }

    #main-building-interiors .academy-tab-list label:hover {
      background: rgba(201, 200, 200, 0.4);
    }

    #main-building-interiors .academy-tab-list label:active {
      transform: translateY(1px);
    }

    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(1):checked
      ~ .academy-tab-list
      > label:nth-of-type(1),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(2):checked
      ~ .academy-tab-list
      > label:nth-of-type(2),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(3):checked
      ~ .academy-tab-list
      > label:nth-of-type(3),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(4):checked
      ~ .academy-tab-list
      > label:nth-of-type(4),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(5):checked
      ~ .academy-tab-list
      > label:nth-of-type(5),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(6):checked
      ~ .academy-tab-list
      > label:nth-of-type(6),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(7):checked
      ~ .academy-tab-list
      > label:nth-of-type(7),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(8):checked
      ~ .academy-tab-list
      > label:nth-of-type(8),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(9):checked
      ~ .academy-tab-list
      > label:nth-of-type(9) {
      background: var(--accent2);
      color: var(--bt-bg);
      border-color: var(--accent2);
    }

    #main-building-interiors .academy-tab-panels {
      grid-area: panels;
      min-width: 0;
      width: 100%;
      border: 0;
      border-radius: 0;
      background: transparent;
      overflow: visible;
      align-self: start;
    }

    #main-building-interiors .academy-panel {
      display: none;
      min-width: 0;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      overflow: hidden;
      font-family: var(--main-font);
    }

    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(1):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(1),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(2):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(2),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(3):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(3),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(4):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(4),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(5):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(5),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(6):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(6),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(7):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(7),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(8):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(8),
    #main-building-interiors
      .academy-tabs
      > input:nth-of-type(9):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(9) {
      display: block;
    }

    #main-building-interiors .academy-panel-header {
      position: relative;
      min-width: 0;
      overflow: hidden;
      background: var(--base-bg2) center / cover no-repeat;
    }

    #main-building-interiors .academy-panel-header img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 7;
      object-fit: cover;
    }

    #main-building-interiors .academy-panel-header::after {
        pointer-events: none;
        background-color: var(--accent) !important;
        mix-blend-mode: color;
        opacity: 0.6;
    }

    #main-building-interiors .academy-panel-header::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 45%,
        rgba(0, 0, 0, 0.45) 100%
      );
    }

    #main-building-interiors .academy-panel-title {
      position: absolute;
      left: 16px;
      bottom: 10px;
      margin: 0;
      color: #fff;
      font-family: var(--sec-font, serif);
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    }

    #main-building-interiors .academy-panel-body {
      min-width: 0;
      padding: 12px 16px 16px;
      background: var(--htm-clr);
      margin: 20px;
      border-radius: 5px;
      font-size: inherit !important;
    }

    #main-building-interiors .academy-panel-body p {
      margin: 6px 0 10px;
      color: var(--text, #000);
      font-family: var(--main-font, system-ui, sans-serif);
    }

    #main-building-interiors .academy-panel-body details {
      margin: 14px 0 0;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      overflow: hidden;
    }

    #main-building-interiors .academy-panel-body summary {
        cursor: pointer;
        padding: 10px 14px;
        font-weight: 700;
        list-style: none;
        user-select: none;
        color: var(--text);
    }

    #main-building-interiors .academy-panel-body summary::-webkit-details-marker {
      display: none;
    }

    #main-building-interiors .academy-panel-body summary::after {
      content: '+';
      float: right;
      font-weight: 700;
    }

    #main-building-interiors .academy-panel-body details[open] summary::after {
      content: '−';
    }

    #main-building-interiors .academy-panel-details-content {
      padding: 0 14px 12px;
    }

    #main-building-interiors .academy-panel-details-content p {
      margin: 8px 0;
    }

    @media (max-width: 759px) {
      #main-building-interiors .academy-tabs {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
          "tabs"
          "panels";
      }
    }

    @media (max-width: 640px) {
      #main-building-interiors .academy-panel-header img {
        aspect-ratio: 16 / 9;
      }
    }

    :root[data-style='summer'] body::before,
    :root[data-style='summer'] body::after {
      content: none !important;
      display: none !important;
      background: none !important;
    }
    </style>

    <section id="main-building-interiors" class="academy-section">
      <div class="academy-tabs" role="tablist" aria-label="Помещения Главного корпуса">
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-1" class="academy-tab-control" checked />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-2" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-3" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-4" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-5" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-6" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-7" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-8" class="academy-tab-control" />
        <input type="radio" name="tabs-main-interiors" id="tab-main-i-9" class="academy-tab-control" />

        <div class="academy-tab-list">
          <label for="tab-main-i-1"><span>Главный корпус</span></label>
          <label for="tab-main-i-2"><span>Административный блок</span></label>
          <label for="tab-main-i-3"><span>Столовая и кухня</span></label>
          <label for="tab-main-i-4"><span>Учебные аудитории</span></label>
          <label for="tab-main-i-5"><span>Помещение дисциплинарного комитета</span></label>
          <label for="tab-main-i-6"><span>Спортивный комплекс</span></label>
          <label for="tab-main-i-7"><span>Библиотека</span></label>
          <label for="tab-main-i-8"><span>Арена</span></label>
          <label for="tab-main-i-9"><span>Большой зал</span></label>
        </div>

        <div class="academy-tab-panels">
          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-1">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Главный корпус</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Главное здание Академии расположено в южной части острова, ближе к открытому побережью. Его архитектура сочетает массивные каменные конструкции и современные элементы: стекло, металл, строгие линии фасада. Здание выглядит устойчивым и замкнутым, словно изначально рассчитанным на суровые погодные условия и постоянное воздействие морского воздуха.
              </p>
              <p>
                Внутренние пространства организованы рационально: здесь расположены учебные аудитории, административные помещения, залы для собраний, спортивный зал с бассейном, кухня со столовой и множество комнат отдыха. Окна помещений выходят к морю, и шум волн нередко становится фоном для занятий и работы. Территория вокруг корпуса оформлена минималистично: каменные дорожки, открытые площадки и низкие ограды не отвлекают внимания от самого здания и окружающего пейзажа.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-2">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Административный блок</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Административный блок располагается в башне восточного крыла Главного корпуса из которой открывается вид на весь остров. Внутри он представляет из себя светлые коридоры с современным дизайном.
              </p>
              <p>
                Здесь находятся канцелярия, кабинеты деканов и директора, архивы текущих дел, а также приёмная, в которой как и прежде на стене висит табличка «Тайна охраняет мир, знание — тех, кто в нём живёт.». В этом крыле всегда пахнет бумагой, кофе и морским ветром, который тянет с улицы, когда кто-то открывает окна.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-3">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Столовая и кухня</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Столовая в Салеме находится на первом этаже Главного корпуса. Просторная и тёплая, с большими окнами, выходящими на гавань, она наполнена как небольшими, так и длинными столами для студентов, тянущимися через всё помещение. В дальнем конце столовой располагаются зоны, где могут уединиться преподаватели и сотрудники Академии, а вдоль большой стены напротив окон стоят островки с готовой едой на которых даже поздно вечером можно найти что-то простое и сытное.
              </p>
              <p>
                Кухня скрыта за отдельным проходом и работает как небольшая фабрика: с раннего утра и до позднего вечера повара трудятся, чтобы накормить всех студентов и сотрудников Академии.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-4">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Учебные аудитории</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Учебные аудитории распределены по всем этажам Главного корпуса и представляют из себя как небольшие кабинеты, так и несколько крупных аудиторий, способных вместить в себя больше сотни студентов.
              </p>
              <p>
                По настроению аудитории очень разные и зависят от дисциплин и преподавателей, которые ведут в них занятия.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-5">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Помещение дисциплинарного комитета</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Кабинет находится в Главном корпусе в дальнем углу на втором этаже западного крыла. Представляет из себя просторное светлое помещение в нейтральных тонах. В центре находится длинный стол, окружённый несколькими стульями, напротив на стене висит доска для заметок и записей на заседаниях, а по бокам расположены шкафчики для хранения личных дел и документов дисциплинарного комитета. В противоположном углу расположился буфет с неиссякаемым запасом чая, кофе и печенья на любой вкус и цвет, а на паре больших окон выстроились горшки неприхотливых домашних растений.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-6">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Спортивный комплекс</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Спортивный комплекс Академии примыкает к западному крылу главного корпуса и занимает 1 и −1 этажи. Вход ведёт в светлый вестибюль с постом дежурного и стойками для инвентаря; дальше пространство расходится на несколько зон, чтобы занятия разных направлений не мешали друг другу.
              </p>
              <p>
                На 1 этаже расположены тренажёрные залы: кардио-секция с беговыми дорожками и дорожками для интервальных тренировок, силовой зал со свободными весами и станциями, а также функциональная зона для растяжки и работы с собственным весом. Там же находятся несколько рингов и площадка для спаррингов с мягким покрытием, настенными экранами для разбора техники и нишами для перчаток, бинтов и защиты. Здесь же находятся основные раздевалки: шкафчики, сушилки, душевые и отдельные кабины для быстрого восстановления (холодный душ/контраст).
              </p>
              <p>
                −1 этаж отдан под «мокрую» часть: бассейн с размеченными дорожками и небольшой зоной для отработки техники, зал реабилитации, кабинет спортивного врача, а также тихая комната для дыхательных практик и растяжки.
              </p>
              <p>
                Сердце комплекса — большое универсальное поле с искусственным газоном размером с футбольное. По периметру располагается внутренний круг для бега и разминки, а рядом — кладовые с мячами, щитами, конусами и переносными воротами. Обычно это поле используется для тренировок фамильяров, но частенько на нём можно увидеть студентов, играющих в какие-либо игры.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-7">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Библиотека</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Библиотека в Салеме располагается в специальной пристройке соединённой с основной частью Главного зала в самой западной его части. Библиотека современная и светлая, и внутри имеется множество высоких книжных полок с передвижными лестницами, чтобы достать необходимое смог каждый даже с самых высоких полок. У входа располагается стойка библиотекаря, где студенты могут получить помощь, оформить выдачу книг или заказать новые.
              </p>
              <p>
                Учебная зона представляет собой множество столов, расставленных «островками» по несколько штук. За ними можно расположиться как в одиночестве, так и небольшой группой. На столах всегда есть канцелярские принадлежности для составления заметок. Часть столов оснащена компьютерами с доступом к открытым библиотечным онлайн-фондам мира.
              </p>
              <p>
                Фонд самой библиотеки включает учебную и художественную литературу, магические фолианты и древние манускрипты. Что-то удалось найти на руинах Фасги, другие — приобретены Академией или получены в дар из частных коллекций. Для быстрого поиска книги можно воспользоваться каталогом, помощью библиотекаря или небольшими зачарованными статуями кота — маскота салемской академии. Достаточно назвать название книги, и статуя подскажет нужный раздел и номер ряда. А если же студентов замучила жажда, то в разных концах помещения находится несколько кулеров с водой.
              </p>

              <details>
                <summary>Подробнее о фондах и зонах библиотеки</summary>
                <div class="academy-panel-details-content">
                  <p>
                    <strong>Зона открытого доступа:</strong><br>
                    · Учебный фонд: Учебники по теории Потока, базовые сборники заклинаний для начинающих, труды по истории магического сообщества, энциклопедии по магической флоре и фауне. Эти книги доступны всем студентам без специального разрешения. Они часто имеют защитные заклинания от выноса и порчи, но не несут в себе опасной информации.<br>
                    · Зона ведьм: Здесь можно найти углублённые труды по разным направлениям врождённого дара, сборники заклинаний по стихиям и техникам.<br>
                    · Зона фамильяров: Отделы с литературой по кинологии, орнитологии, герпетологии, но в магическом контексте. Книги об усилении звериной формы, техниках восприятия Потока и Скверны, травники и справочники по ингредиентам.
                  </p>

                  <p>
                    <strong>Зона Специальных Коллекций:</strong><br>
                    · Фолианты по уникальным дарам: Секции, посвящённые редким и малоизученным проявлениям магии. Доступ к ним получают студенты старших курсов с разрешения профильного декана.<br>
                    · Архив Инквизиции (копии): Копии документов, касающихся истории Инквизиции, протоколов допросов и описаний операций. Оригиналы хранятся в штаб-квартирах Инквизиции, но здесь собрана обширная база для изучения истории и тактики.<br>
                    · Картографическая комната: Огромная коллекция магических карт, многие из которых постоянно обновляются. Здесь можно найти карты потоков Потока, очагов Скверны, территорий Ковенов.<br>
                    · Зал Связи: Небольшая комната, где собраны труды, исследующие феномен Связи между ведьмой и фамильяром. Истории пар, теоретические выкладки, анализ сшивок. Это место пользуется особой популярностью у студентов, пытающихся понять свои отношения.
                  </p>

                  <p>
                    · Зал Запрещённых Книг: Здесь хранятся гримуары, содержащие опасные и тёмные заклинания, связанные со Скверной. Книги, которые «шепчут», пытаются влиять на читателя или сами по себе являются осквернёнными артефактами. Если просто убрать, будет так:
    Доступ сюда имеют только преподаватели и изредка — студенты выпускных курсов, выполняющие задания декана полевых операций, и только в сопровождении опытного наставника-библиотекаря.<br>
                    · Редкие манускрипты: Древнейшие тексты, написанные до основания Инквизиции. Некоторые на неизвестных языках. Они хранятся в специальных магических капсулах, поддерживающих их сохранность. Изучать их можно только в самом Хранилище под наблюдением.
                  </p>

                  <p>
                    <strong>Зоны тишины и общения:</strong> в Главном зале — абсолютная тишина. В галереях можно перешёптываться, говорить вполголоса.
                  </p>

                  <p>
                    <strong>Выдача и возврат:</strong> книги из открытого доступа выдаются на руки под расписку, которая фиксирует, кто и когда взял книгу. Книги из Специальных коллекций и Крипты из библиотеки не выносятся.
                  </p>
                </div>
              </details>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-8">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Арена</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Подземная арена — место, где ведьмы и фамильяры могут использовать свои способности, не боясь рассекречивания и разрушения. Здесь проходят практические занятия и тренировки, а также спарринги и экзамены. При необходимости ведьмы и ведьмаки могут изменить ландшафт арены, создав полосу препятствий или особые климатические условия.
              </p>
              <p>
                Арена представляет собой большое открытое пространство в центре и трибуны вдоль одной из стен. Ничего лишнего здесь нет — даже отделки на стенах и уж тем более какого-то декора. Всё сделано так, чтобы в случае разбушевавшейся магии не пришлось каждый раз переделывать и чинить.
              </p>
              <p>
                Защита повсюду в основном магическая, чтобы способности не могли нанести вред и вырваться куда-то за пределы арены. Во время каких-либо событий трибуну укрывают барьером.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-i-9">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Большой зал</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Большой зал расположен в Главном корпусе и служит пространством, где учебная жизнь легко перетекает в общественную.
              </p>
              <p>
                Это просторное помещение с высоким потолком, длинными окнами и сценой в глубине. В обычные дни здесь могут проходить крупные лекции, семинары и собрания, а по вечерам зал меняется: на сцене ставят спектакли, показывают фильмы, выступают кружки и музыкальные группы, а в праздники пространство заполняют огни, украшения и музыка.
              </p>
              <p>
                Интерьер сочетает академическую строгость и уют. Светлое дерево, тёмный камень, мягкое освещение, плотные шторы и хорошая акустика делают зал одинаково подходящим и для официальных мероприятий, и для чего-то более тёплого, студенческого. Стулья и часть оборудования можно быстро убрать, освобождая место для ярмарок, балов, дискотек или праздничных вечеров.
              </p>
              <p>
                У студентов Большой зал давно считается местом, где Академия особенно ясно ощущается не только как учебное заведение, но и как маленький отдельный мир, в котором все рано или поздно оказываются рядом.
              </p>
            </div>
          </article>
        </div>
      </div>
    </section>
    [/html]
    [hideprofile]

    0

    3

    [html]
    <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/theme-switcher/theme-iframe.js"></script>
    <script src="https://feather-tail.github.io/MyBB-scripts-bundle/js/font-resizer/font-resizer-iframe.js"></script>
    <style>
    :root {
      --frame-font-size: 14px;
    }

    html,
    body {
      margin: 0;
      padding: 0;
      font-size: var(--frame-font-size) !important;
    }

    #main-building,
    #main-building * {
      box-sizing: border-box;
    }

    #main-building.academy-section {
      margin: 0;
    }

    #main-building .academy-tabs {
      display: grid;
      grid-template-columns: minmax(230px, 320px) minmax(0, 1fr);
      grid-template-areas: "tabs panels";
      gap: 14px;
      align-items: start;
      width: 100%;
      min-width: 0;
      background: var(--htm-clr);
      padding: 20px;
      border-radius: 5px;
      border: 1px solid var(--bord);
    }

    #main-building .academy-tab-control {
      display: none !important;
    }

    #main-building .academy-tab-list {
      grid-area: tabs;
      display: grid;
      gap: 10px;
      min-width: 0;
      align-self: start;
      text-align: left;
    }

    #main-building .academy-tab-list label {
      display: flex;
      align-items: center;
      gap: 10px;
      width: 100%;
      padding: 10px 14px;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      color: var(--sec-text, #0e0c0b);
      font-family: var(--main-font);
      cursor: pointer;
      text-transform: uppercase;
      letter-spacing: .3px;
      font-size: inherit !important;
      transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.06s;
    }

    #main-building .academy-tab-list label:hover {
      background: rgba(201, 200, 200, 0.4);
    }

    #main-building .academy-tab-list label:active {
      transform: translateY(1px);
    }

    #main-building
      .academy-tabs
      > input:nth-of-type(1):checked
      ~ .academy-tab-list
      > label:nth-of-type(1),
    #main-building
      .academy-tabs
      > input:nth-of-type(2):checked
      ~ .academy-tab-list
      > label:nth-of-type(2),
    #main-building
      .academy-tabs
      > input:nth-of-type(3):checked
      ~ .academy-tab-list
      > label:nth-of-type(3),
    #main-building
      .academy-tabs
      > input:nth-of-type(4):checked
      ~ .academy-tab-list
      > label:nth-of-type(4),
    #main-building
      .academy-tabs
      > input:nth-of-type(5):checked
      ~ .academy-tab-list
      > label:nth-of-type(5),
    #main-building
      .academy-tabs
      > input:nth-of-type(6):checked
      ~ .academy-tab-list
      > label:nth-of-type(6),
    #main-building
      .academy-tabs
      > input:nth-of-type(7):checked
      ~ .academy-tab-list
      > label:nth-of-type(7),
    #main-building
      .academy-tabs
      > input:nth-of-type(8):checked
      ~ .academy-tab-list
      > label:nth-of-type(8) {
      background: var(--accent2);
      color: var(--bt-bg);
      border-color: var(--accent2);
    }

    #main-building .academy-tab-panels {
      grid-area: panels;
      min-width: 0;
      width: 100%;
      border: 0;
      border-radius: 0;
      background: transparent;
      overflow: visible;
      align-self: start;
    }

    #main-building .academy-panel {
      display: none;
      min-width: 0;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      overflow: hidden;
      font-family: var(--main-font);
    }

    #main-building
      .academy-tabs
      > input:nth-of-type(1):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(1),
    #main-building
      .academy-tabs
      > input:nth-of-type(2):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(2),
    #main-building
      .academy-tabs
      > input:nth-of-type(3):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(3),
    #main-building
      .academy-tabs
      > input:nth-of-type(4):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(4),
    #main-building
      .academy-tabs
      > input:nth-of-type(5):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(5),
    #main-building
      .academy-tabs
      > input:nth-of-type(6):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(6),
    #main-building
      .academy-tabs
      > input:nth-of-type(7):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(7),
    #main-building
      .academy-tabs
      > input:nth-of-type(8):checked
      ~ .academy-tab-panels
      > .academy-panel:nth-of-type(8) {
      display: block;
    }

    #main-building .academy-panel-header {
      position: relative;
      min-width: 0;
      overflow: hidden;
      background: var(--base-bg2) center / cover no-repeat;
    }

    #main-building .academy-panel-img {
      position: relative;
      min-width: 0;
    }

    #main-building .academy-panel-header img {
      display: block;
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 7;
      object-fit: cover;
    }

    #main-building .academy-panel-header::before {
      content: '';
      pointer-events: none;
      position: absolute;
      inset: 0;
      z-index: 1;
      background: var(--accent);
      mix-blend-mode: color;
      opacity: 0.6;
    }

    #main-building .academy-panel-header::after {
      content: '';
      pointer-events: none;
      position: absolute;
      inset: 0;
      z-index: 2;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 45%,
        rgba(0, 0, 0, 0.45) 100%
      );
    }

    #main-building .academy-panel-title {
      position: absolute;
      z-index: 3;
      left: 16px;
      bottom: 10px;
      margin: 0;
      color: #fff;
      font-family: var(--sec-font, serif);
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    }

    #main-building .academy-panel-body {
      min-width: 0;
      padding: 12px 16px 16px;
      background: var(--htm-clr);
      margin: 20px;
      border-radius: 5px;
      font-size: inherit !important;
    }

    #main-building .academy-panel-body p {
      margin: 6px 0 10px;
      color: var(--text, #000);
      font-family: var(--main-font, system-ui, sans-serif);
    }

    #main-building .academy-list {
      padding-left: 20px;
      margin: 6px 0 10px;
      color: var(--text, #000);
    }

    #main-building .academy-list li {
      list-style: disc;
      margin: 4px 0;
    }

    #main-building .academy-panel-body details {
      margin: 14px 0 0;
      border: 1px solid var(--bord);
      border-radius: 5px;
      background: var(--quote);
      overflow: hidden;
    }

    #main-building .academy-panel-body summary {
      cursor: pointer;
      padding: 10px 14px;
      font-weight: 700;
      list-style: none;
      user-select: none;
      color: var(--text);
    }

    #main-building .academy-panel-body summary::-webkit-details-marker {
      display: none;
    }

    #main-building .academy-panel-body summary::after {
      content: '+';
      float: right;
      font-weight: 700;
    }

    #main-building .academy-panel-body details[open] summary::after {
      content: '−';
    }

    #main-building .academy-panel-body details > p,
    #main-building .academy-panel-body details > ul {
      margin-left: 14px;
      margin-right: 14px;
    }

    #main-building .academy-panel-body details > :last-child {
      margin-bottom: 14px;
    }

    @media (max-width: 759px) {
      #main-building .academy-tabs {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
          "tabs"
          "panels";
      }
    }

    @media (max-width: 640px) {
      #main-building .academy-panel-header img {
        aspect-ratio: 16 / 9;
      }
    }

    :root[data-style='summer'] body::before,
    :root[data-style='summer'] body::after {
      content: none !important;
      display: none !important;
      background: none !important;
    }
    </style>

    <section id="main-building" class="academy-section">
      <div class="academy-tabs" role="tablist" aria-label="Разделы главного корпуса">
        <input type="radio" name="tabs-main" id="tab-main-1" class="academy-tab-control" checked />
        <input type="radio" name="tabs-main" id="tab-main-2" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-3" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-4" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-5" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-6" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-7" class="academy-tab-control" />
        <input type="radio" name="tabs-main" id="tab-main-8" class="academy-tab-control" />

        <div class="academy-tab-list">
          <label for="tab-main-1"><span>Въезд и КПП</span></label>
          <label for="tab-main-2"><span>Территория и двор</span></label>
          <label for="tab-main-3"><span>Хозяйственный сектор</span></label>
          <label for="tab-main-4"><span>Яхтовый клуб и прибрежная зона</span></label>
          <label for="tab-main-5"><span>Оранжереи и теплицы</span></label>
          <label for="tab-main-6"><span>Сады и пруды</span></label>
          <label for="tab-main-7"><span>Спортплощадка</span></label>
          <label for="tab-main-8"><span>Площадь с фонтаном</span></label>
        </div>

        <div class="academy-tab-panels">
          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-1">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Въезд и КПП</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Основной доступ на территорию кампуса осуществляется через северный въезд со стороны материка. Дорога выводит к контрольно-пропускному пункту, оформленному сдержанно и без излишней строгости: небольшая постройка для комфортного нахождения 24/7, шлагбаум, кованые ворота, арочные металлодетекторы и магические детекторы. Рядом с постройкой информационные таблички с правилами пребывания на территории. Внутри несколько мониторов, на которые выведены изображения с ближайших камер видеонаблюдения.
              </p>
              <p>
                Перед КПП расположена парковка для служебного транспорта и автомобилей сотрудников, а также ограниченного числа студентов, имеющих разрешение на личный транспорт. Проверка пропусков проходит в штатном режиме, без задержек и лишних формальностей. В крайних случаях сотрудники КПП могут досмотреть вещи персонала или студентов, если есть веские основания подозревать попытку внести или вынести опасные предметы и ингредиенты.
              </p>
              <p>
                Визуально въезд ничем не отличается от контроля на территории частного учебного или исследовательского центра, однако режим доступа соблюдается строго. Это выражается в особенном контроле посторонних представителей магического мира, которые приезжают в Академию. Они проходят обязательный осмотр личных вещей и оформляют временное разрешение на пребывание.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-2">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://upforme.ru/uploads/001c/82/f2/4/378884.webp" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Территория и двор</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Внутренняя территория кампуса представляет собой сеть дорожек, зелёных зон и зданий, органично вписанных в ландшафт острова. Деревья и кустарники создают естественный заслон от внешнего мира, а пространство между корпусами не выглядит перегруженным — здесь легко ориентироваться и приятно передвигаться пешком.
              </p>
              <p>
                Центральной точкой территории является площадь перед Главным корпусом. Она открыта и хорошо просматривается, служа удобным ориентиром и местом встреч. От площади во все стороны расходятся дорожки, уходящие вглубь острова. Где-то это ровный асфальт, где-то — гравий или деревянные настилы, проложенные над камнем и песком. Вдоль маршрутов установлены фонари с мягким, ровным светом, обеспечивающим хороший обзор даже в тёмное время суток.
              </p>
              <p>
                Восточный берег острова более открыт: отсюда хорошо видно море и линию горизонта. Западная часть защищена узким проливом и используется преимущественно в служебных целях — здесь находятся технические зоны и подходы к воде. Прогулочные маршруты позволяют обойти почти весь остров, выходя к разным участкам побережья: от каменистых кос до спокойных заводей, где вода кажется тише и глубже.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-3">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://upforme.ru/uploads/001c/82/f2/4/297979.webp" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Хозяйственный сектор</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Хозяйственный сектор — комплекс современных минималистичных помещений, защищённых от различных эксцессов как с помощью рун, так и сигнализаций и датчиков. Оснащены по современным стандартам для обеспечения бесперебойной и эффективной работы академии. Представляет собой два подземных этажа, с выходами к системе подземных тоннелей и к грузовым лифтам.
              </p>

              <p><strong>Что входит в сектор:</strong></p>
              <ul class="academy-list">
                <li>
                  зона приёмки и сортировки, а также склады на минус первом этаже. Отдельные помещения и секции приспособлены под хранение техники, бытовой химии, расходных материалов, магических ингредиентов, инструментов и прочего. Имеются холодильные камеры.
                </li>
                <li>
                  генераторная и обслуживающая инфраструктура на минус втором этаже. Здесь расположено всё, что отвечает за энергию, водоснабжение, канализацию, очистку и фильтрацию, отопление.
                </li>
                <li>
                  мастерская, рабочая прачечная, хозяйственная кладовая и комната для персонала хоз.сектора на минус втором этаже. Здесь персонал может заниматься ремонтом отдельных предметов, а также отдохнуть. Отсюда мастера-ведьмы отправляются для починки чего-либо на территории академии непосредственно на места, а уборщики хранят свой инвентарь.
                </li>
              </ul>

              <p>
                На территории академии расположено несколько резервных генераторов, а также солнечные панели и ветрогенераторы, замаскированные под архитектурные элементы.
              </p>
              <p>
                Большое внимание уделено системе учёта и контроля, защите. Попасть в хозсектор может только персонал с соответствующим доступом. Во всех помещениях размещены камеры наблюдения.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-4">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Яхтовый клуб и прибрежная зона</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Яхтовый клуб и прибрежные сооружения являются важной частью территории кампуса. Официально они используются для спортивных и учебных программ, связанных с водой, а также для обслуживания островной инфраструктуры. Причалы, ангары и служебные помещения аккуратно вписаны в береговую линию и не нарушают общего облика острова. Прибрежная зона используется как для организованных занятий, так и для отдыха, делая море важной частью кампуса.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-5">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://upforme.ru/uploads/001c/82/f2/4/378884.webp" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Оранжереи и теплицы</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Оранжерейный комплекс Академии расположен на восточной окраине кампуса в Салеме. Комплекс возведён на слегка возвышенном участке, дренированном естественными подземными ключами, и обращён к юго-востоку для максимального захвата утреннего солнца, которое в этих краях часто скрыто за туманами.
              </p>

              <p>Комплекс состоит из отдельных оранжерей, образующих полукруг вокруг центрального павильона для практических занятий. Все строения выполнены в едином стиле:</p>
              <ul class="academy-list">
                <li>Фундаменты и несущие стены сложены из грубого гранита. В камне вырезаны руны-обереги.</li>
                <li>Каркасы оранжерей — чугунные викторианские конструкции, усиленные бронзовыми вставками с защитными символами.</li>
                <li>Стеклянные панели — современные, с алхимическим напылением, регулирующим спектр света и теплоизоляцию. Они вставлены в старые рамы, создавая контраст старого и нового.</li>
              </ul>

              <p>
                Комплекс соединён с главным учебным корпусом Академии и хозяйственными постройками подземными переходами.
              </p>

              <details>
                <summary>Подробнее: помещения, режимы доступа и системы</summary>

                <p><strong>1. Основная учебная оранжерея (Общедоступная)</strong></p>
                <p>
                  <strong>Расположение:</strong> центральное здание комплекса.<br>
                  <strong>Доступ:</strong> все студенты и преподаватели.<br>
                  <strong>Назначение:</strong> основное место для практических занятий. Здесь выращиваются растения, необходимые для базового учебного процесса:
                </p>
                <ul class="academy-list">
                  <li>Лекарственные травы</li>
                  <li>Растения для простых защитных зелий</li>
                  <li>Нейтральные магические растения для начальных практик</li>
                </ul>
                <p>
                  <strong>Особенности:</strong> разделена на секторы по типам экосистем (умеренная зона, субтропики, небольшой уголок пустынных растений). Имеется система автоматического полива, регулируемая руническими панелями.
                </p>
                <p><strong>Оборудование для практических занятий:</strong></p>
                <ul class="academy-list">
                  <li>Большие рабочие столы из каменной плиты, устойчивые к проливам и магическим воздействиям</li>
                  <li>Раковины с проточной водой</li>
                  <li>Печи и жаровни для сушки трав и первичной обработки</li>
                  <li>Доска с мелом и магическим проектором для демонстрации схем и рун</li>
                  <li>Полки с базовым набором горшков, грунтов (обычных и с примесями серебра/соли), инструментов</li>
                </ul>

                <p><strong>2. Декоративная и праздничная оранжерея</strong></p>
                <p>
                  <strong>Расположение:</strong> северо-западное крыло комплекса.<br>
                  <strong>Доступ:</strong> все студенты и преподаватели в роли посетителей. Для работ — обслуживающий персонал.<br>
                  <strong>Назначение:</strong> выращивание цветов и растений для украшения интерьеров Академии, проведения праздников (Колесо Года, Церемония посвящения, Выпускной бал и проч.).
                </p>
                <p><strong>Коллекция:</strong></p>
                <ul class="academy-list">
                  <li>Сезонные цветы</li>
                  <li>Розарий</li>
                  <li>Вечнозелёные вьющиеся растения для оформления залов</li>
                  <li>Деревья-бонсай, форма которых корректируется</li>
                </ul>
                <p>
                  <strong>Особенности:</strong> особый микроклимат, поддерживающий непрерывное цветение. Часто используется для медитативных практик и встреч.
                </p>

                <p><strong>3. Оранжерея опасных и ядовитых растений</strong></p>
                <p>
                  <strong>Расположение:</strong> стоящее здание к западу от основного комплекса, окружённое каменной стеной с рунами подавления.<br>
                  <strong>Доступ:</strong> только преподаватели профильных дисциплин. Двойная система допуска: ключ и печать.<br>
                  <strong>Назначение:</strong> выращивание и изучение растений, требующих крайней осторожности.
                </p>
                <p><strong>Коллекция:</strong></p>
                <ul class="academy-list">
                  <li>Мандрагора</li>
                  <li>Беладонна, болиголов, аконит</li>
                  <li>Грибы-биолюминесценты с галлюциногенными спорами</li>
                  <li>Образцы, потенциально подверженные влиянию Скверны (для исследовательских целей)</li>
                </ul>
                <p><strong>Меры безопасности:</strong></p>
                <ul class="academy-list">
                  <li>Герметичные стеклянные купола над каждым опасным экземпляром</li>
                  <li>Автономная система вентиляции с фильтрами из серебряной пыли и соли</li>
                  <li>Руничные барьеры, подавляющие распространение ядовитых испарений и магических эманаций</li>
                  <li>Аварийные амулеты нейтрализации ядов у входа</li>
                </ul>

                <p><strong>4. Оранжерея редких и ценных растений</strong></p>
                <p>
                  <strong>Расположение:</strong> подземный уровень под центральным павильоном. Доступ через скрытую дверь в подземном переходе от главного учебного комплекса Академии.<br>
                  <strong>Доступ:</strong> исключительно для старшего преподавательского состава, деканов и директора. Защищена сложнейшими печатями, требующими для открытия дактилоскопию и совместного заклинания двух уполномоченных лиц.<br>
                  <strong>Назначение:</strong> выращивание и сохранение исчезающих, чрезвычайно редких и дорогих магических растений, необходимых для создания мощных артефактов, эликсиров и исследований.
                </p>
                <p>
                  <strong>Особенности:</strong> полностью искусственное освещение кристаллами, накапливающими солнечный свет. Климат контролируется древними артефактами Ковена. Каждое растение находится под индивидуальной охраной и наблюдением.
                </p>

                <p><strong>5. Оранжерея для Кружка садоводства</strong></p>
                <p>
                  <strong>Расположение:</strong> небольшая отдельная теплица в южной части комплекса.<br>
                  <strong>Доступ:</strong> члены кружка садоводства под руководством куратора-преподавателя.<br>
                  <strong>Назначение:</strong> практические занятия кружка, самостоятельные проекты студентов, выращивание растений для личного пользования (с одобрения куратора).
                </p>
                <p><strong>Особенности:</strong></p>
                <ul class="academy-list">
                  <li>Индивидуальные грядки и стеллажи, закреплённые за активными членами кружка</li>
                  <li>Компостная яма с «живыми» удобрениями (черви, усиленные магией земли)</li>
                  <li>Небольшая библиотечка со справочниками по садоводству</li>
                  <li>Уютная зона для обсуждений и чаепитий с травами собственного выращивания</li>
                </ul>

                <p><strong>Склад инвентаря и расходных материалов</strong></p>
                <p><strong>Расположение:</strong> пристройка к основной учебной оранжерее.</p>
                <p><strong>Содержимое:</strong></p>
                <ul class="academy-list">
                  <li>Садовый инструмент (лопаты, грабли, секаторы, ножницы), часть — с рунической закалкой для работы с магическими растениями</li>
                  <li>Запасные горшки, кашпо, поддоны из различных материалов (глина, керамика, специальное стекло)</li>
                  <li>Грунты и субстраты: нейтральные, щелочные, кислые, с добавлением измельчённых артефактных материалов</li>
                  <li>Удобрения, в том числе магические</li>
                  <li>Средства индивидуальной защиты: перчатки из прочной кожи, очки, респираторы с фильтрами</li>
                  <li>Аптечка первой помощи с противоядиями и нейтрализаторами</li>
                </ul>

                <p><strong>Зона отдыха и наблюдения</strong></p>
                <p>
                  Небольшая открытая площадка с каменными скамьями в центре комплекса вокруг центральной оранжереи, откуда открывается вид на все оранжереи. Место для краткого отдыха студентов, наблюдения за изменением растений в естественном свете и проведения коротких лекций на открытом воздухе.
                </p>

                <p><strong>Системы жизнеобеспечения и безопасности</strong></p>
                <p><strong>1. Полив:</strong> комбинированная система — автоматический полив от резервуаров с дождевой водой и ручной полив заряженной водой (настоянной на кристаллах) для особых растений.</p>
                <p>
                  <strong>2. Защита:</strong> по периметру всего комплекса в землю вкопаны обереги-столбы, образующее слабое защитное поле, отпугивающее вредителей и случайных животных. В случае тревоги поле может быть усилено. Регулярная (раз в пару недель) проверка рун и технического оборудования в оранжереях с ядовитыми и редкими растениями. Наличие камер видеонаблюдения по всему периметру оранжерей.
                </p>
              </details>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-6">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://upforme.ru/uploads/001c/82/f2/4/378884.webp" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Сады и пруды</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Более двух гектаров островной земли отведено под сады и озеленение. Где-то сохранён естественный рельеф острова, но в основном пространство благоустроено и облагорожено так, чтобы по нему было легко и приятно гулять.
              </p>
              <p>
                Вымощенная камнем извилистая дорожка начинается у главного корпуса и постепенно уводит к большому пруду. По пути встречаются скамейки для отдыха, аккуратно высаженные кустарники, цветочные клумбы и вечнозеленые растения. У воды стоят беседки, а деревянный настил тянется дальше — к небольшому островку в центре водоёма. Там раскинулась старая ива, чья густая тень стала любимым убежищем студентов в жаркие дни.
              </p>
              <p>
                Неподалёку от пруда открывается центральная поляна с ровно подстриженным газоном. Здесь устраивают пикники, играют в командные игры, занимаются спортом и просто отдыхают на траве.
              </p>
              <p>
                От центрального пруда дорожка проходит через бамбуковую рощу и выводит к японскому саду. В его сердце расположен небольшой пруд с карпами и кувшинками лотоса. В разные времена года здесь можно увидеть цветение сливы, сакуры и глицинии. Рядом с водой аккуратно расставлены бонсай: миниатюрные сосны, клёны и хризантемы. Раз в сезон можно заметить, как ведьмаки обновляют руны, поддерживающие особый микроклимат этого скрытого в бамбуковой роще сада.
              </p>
              <p>
                Если не бояться испачкать ботинки и свернуть на обычные землистые тропы, уходящие в старые рощи лиственных и хвойных деревьев, можно выйти к каменной лестнице, давно поросшей мхом. Она ведёт вниз, в естественное углубление рельефа, где раскинулся влажный сад. Небольшие и множественные водоёмы здесь заросли камышом и кувшинками, а над водой часто стоит плотный туман. В траве под ногами можно заметить множество земноводных и насекомых, для которых это место стало настоящим убежищем. Через один из заросших прудов перекинулся старый каменный мостик, покрывшийся мхом от времени и сырости. Это далекое место кажется забытым и немного диким, даже зловеще-таинственным, особенно ночью, а потому студенты нечасто сюда заходят.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-7">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://forumstatic.ru/files/001c/8d/fd/24675.png" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Спортплощадка</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                По территории разбросан целый комплекс спортивных площадок.
              </p>
              <p>
                У общежитий расположена небольшая площадка с уличными тренажёрами, в том числе с баскетбольным кольцом. Беговые дорожки проложены в западной части, в том числе вокруг нескольких зданий. На искусственно созданном насыпном пляже установлены стойки для волейбола.
              </p>
              <p>
                Пользоваться всем этим можно и в свободное от учёбы время. Иногда занятия проводятся на пляже и, в том числе, в воде — тогда защиту обеспечивают ведьмы, контролируя прибрежное пространство.
              </p>
            </div>
          </article>

          <article class="academy-panel" role="tabpanel" aria-labelledby="tab-main-8">
            <header class="academy-panel-header">
              <div class="academy-panel-img">
                <div><img src="https://upforme.ru/uploads/001c/82/f2/4/378884.webp" alt="" /></div>
              </div>
              <h3 class="academy-panel-title">Площадь с фонтаном</h3>
            </header>
            <div class="academy-panel-body">
              <p>
                Прямо перед главным корпусом раскинулась небольшая площадь, покрытая зеленью в тёплое время года. Клёны и липы дают тень, кованые фонари по вечерам наполняют пространство мягким светом, а лавочки становятся пристанищем для студентов, их рюкзаков, книг и бесконечных разговоров.
              </p>
              <p>
                В самом центре площади стоит фонтан, ставший полной копией того, что находился в Академии Фасги. Его украшают фигуры юноши и девушки, ведьмы и её фамильяра. Бронзовые силуэты стоят почти вплотную, но не касаются друг друга: между ладонью ведьмы и зверем — тем самым, в котором каждый неизменно узнаёт своего, — струя воды сворачивается в тонкую мерцающую ленту, будто живая связь, обвивающая их тела. Фонтан не знает зимы и даже в сильные морозы вода в нём продолжает течь, а над чашей поднимается лёгкий пар.
              </p>
            </div>
          </article>
        </div>
      </div>
    </section>
    [/html]
    [hideprofile]

    0


    Вы здесь » Kindred Spirits » Админка » Локации


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