@charset "UTF-8";

/* полный (агрессивный) сброс всех стилей для всех элементов */
/*
*,
*::before,
*::after {
  all: unset;
  display: revert;
  box-sizing: inherit;
  min-width: 0;
  -webkit-tap-highlight-color: transparent;
}
*/

/**
 * Современный сброс стилей
 * ------------------------
 * 1. Обрабатываем все элементы и их псевдоэлементы.
 * 2. Сбрасываем отступы, но не трогаем другие свойства (безопаснее, чем all: unset).
 */
*,
*::before,
*::after {
  box-sizing: inherit; /* Наследуем модель box-sizing от родителя. */
  margin: 0; /* Сбрасываем внешние отступы. */
  padding: 0; /* Сбрасываем внутренние отступы. */
  min-width: 0; /* Позволяем элементам сжиматься ниже min-content. */
  min-height: 0; /* Добавим для симметрии и гибкости в верстке. */
  -webkit-tap-highlight-color: transparent; /* Убираем синее подсвечивание при тапе на мобильных. */
  color: white;
}

/**
 * 3. Меняем модель корневого элемента на border-box.
 *    Это делает расчеты размеров интуитивно понятными.
 */
html {
  box-sizing: border-box; /* Задаем модель для корня. */
  -webkit-text-size-adjust: 100%; /* Предотвращает автоматический поворот шрифта на iOS. */
}

/**
 * 4. Наследуем основные свойства шрифта для элементов форм.
 *    Иначе они не наследуют семейство и размер шрифта от родителя.
 */
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

/**
 * 5. Восстанавливаем стандартное поведение некоторых блочных элементов.
 *    revert более безопасен, чем явное указание block, т.к. возвращает значение по умолчанию из user-agent stylesheet.
 */
article, aside, figure, footer, header, main, nav, section {
  display: revert;
}

/**
 * 6. Убираем стандартные маркеры у списков (которые убрал сброс отступов).
 */
ol, ul {
  list-style: none;
}

/**
 * 7. Убираем подчеркивание у ссылок, оставляя им курсор-указатель.
 */
a {
  text-decoration: none;
  cursor: pointer;
}

/**
 * 8. Возвращаем курсор для кнопок и интерактивных элементов.
 */
button, label {
  cursor: pointer;
}

/**
 * 9. Делаем медиа-элементы более управляемыми.
 */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/**
 * 10. Убираем аутлайн по умолчанию, но оставляем для accessibility (доступности).
 *     Убираем только тогда, когда элемент в фокусе по клику/тапу, но НЕ с клавиатуры.
 */
:focus-visible {
  outline: auto;
}



/*
/* Авто-правила для layout и контента
   ================================== * /

/* 1. Сброс min-width/min-height для вложенных элементов * /
:where(:not(.default-rules) *) {
  min-width: 0;
  min-height: 0;
}

/* 2. Изображения (общие настройки) * /
:where(:not(.default-rules) img),
:where(.inline-images :not(.default-rules) img) {
  max-width: 100%;
  height: auto;
  max-height: 100%;
}

/* 2.1. Изображения (блочные) * /
:where(:not(.default-rules) img) {
  display: block; /* убираем пробелы и baseline * /
}

/* 2.2. Для inline-изображений в текстовом контенте * /
:where(.inline-images :not(.default-rules) img) {
  display: inline-block;
  vertical-align: bottom;
}

/* 3. Медиа элементы (video, iframe, и т.д.) * /
:where(:not(.default-rules) video,
       :not(.default-rules) audio,
       :not(.default-rules) canvas,
       :not(.default-rules) iframe,
       :not(.default-rules) object,
       :not(.default-rules) embed) {
  display: block;
  max-width: 100%;
  height: auto;
}

/* 4. Класс для cover-режима (video, img) * /
.cover-img,
.cover-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 5. Слова с переносами * /
.break-word,
:where(.break-words :not(.default-rules) h1,
       .break-words :not(.default-rules) h2,
       .break-words :not(.default-rules) h3,
       .break-words :not(.default-rules) h4,
       .break-words :not(.default-rules) h5,
       .break-words :not(.default-rules) h6,
       .break-words :not(.default-rules) p,
       .break-words :not(.default-rules) li) {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}

/* 6. Формы и кнопки (адаптивные) * /
:where(:not(.default-rules) input,
       :not(.default-rules) select,
       :not(.default-rules) textarea,
       :not(.default-rules) button) {
  font: inherit;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 7. Исключение для специфичных input * /
:where(:not(.default-rules) input[type="checkbox"],
       :not(.default-rules) input[type="radio"],
       :not(.default-rules) input[type="range"],
       :not(.default-rules) input[type="submit"],
       :not(.default-rules) input[type="button"],
       :not(.default-rules) input[type="reset"],
       :not(.default-rules) input[type="color"],
       :not(.default-rules) input[type="file"]) {
  width: auto;
  max-width: none;
}

/* 8. Таблицы * /
:where(:not(.default-rules) table) {
  table-layout: fixed;
  width: 100%;
}

/* 9. Прогресс-бары * /
:where(:not(.default-rules) progress) {
  width: 100%;
}

/* 10. Убираем стандартный вид у select * /
:where(:not(.default-rules) select) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
*/


/* ===========================
   Глобальные авто-правила (опт-аут через .default-rules на любом предке)
   =========================== */

/* 1) Layout-fix: сброс переполнений для любых потомков */
:where(*:not(.default-rules *)) {
  min-width: 0;
  min-height: 0;
}

/* 2) IMG: общие адаптивные настройки (по умолчанию блочно) */
:where(img:not(.default-rules *)) {
  display: block;        /* убирает пробелы/baseline */
  max-width: 100%;
  height: auto;
  max-height: 100%;
}

/* 2.1) Контентные inline-изображения (включается на контейнере .inline-images) */
:where(.inline-images img:not(.default-rules *)) {
  display: inline-block;
  width: auto;
  vertical-align: bottom;
}

/* 3) Прочие медиа (video/audio/canvas/iframe/object/embed) */
:where(video:not(.default-rules *),
       audio:not(.default-rules *),
       canvas:not(.default-rules *),
       iframe:not(.default-rules *),
       object:not(.default-rules *),
       embed:not(.default-rules *)) {
  display: block;
  max-width: 100%;
  height: auto;
}

/* 4) Cover-утилиты (опт-ин классы – специально не «гейтим», чтобы работали везде) */
.cover-img,
.cover-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 5) Переносы слов для контента */
.break-word,
:where(.break-words h1:not(.default-rules *),
       .break-words h2:not(.default-rules *),
       .break-words h3:not(.default-rules *),
       .break-words h4:not(.default-rules *),
       .break-words h5:not(.default-rules *),
       .break-words h6:not(.default-rules *),
       .break-words p:not(.default-rules *),
       .break-words li:not(.default-rules *)) {
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
}

/* 6) Формы (адаптивные поля по умолчанию) */
:where(input:not(.default-rules *),
       select:not(.default-rules *),
       textarea:not(.default-rules *),
       button:not(.default-rules *)) {
  font: inherit;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 6.1) Исключения для специфичных input-ов */
:where(input[type="checkbox"]:not(.default-rules *),
       input[type="radio"]:not(.default-rules *),
       input[type="range"]:not(.default-rules *),
       input[type="submit"]:not(.default-rules *),
       input[type="button"]:not(.default-rules *),
       input[type="reset"]:not(.default-rules *),
       input[type="color"]:not(.default-rules *),
       input[type="file"]:not(.default-rules *)) {
  width: auto;
  max-width: none;
}

/* 7) Таблицы и прогресс-бары */
:where(table:not(.default-rules *)) {
  table-layout: fixed;
  width: 100%;
}
:where(progress:not(.default-rules *)) {
  width: 100%;
}

/* 8) Сброс внешнего вида у select */
:where(select:not(.default-rules *)) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}




/* КРОССБРАУЗЕРНЫЙ СБРОС МАРКЕРОВ
   ------------------------------
   Для списков: */
ul, ol {
  list-style: none;
  padding-left: 0; /* Дополнительно убираем отступ слева. */
}
/* Для summary: */
summary { list-style: none; }
summary::-webkit-details-marker,
summary::marker {
  content: "";
  display: none;
}
/* Сброс отступов: */
ul, ol, li, details, summary {
  margin: 0;
  padding: 0;
}




:root {
  --shadow-gradient: linear-gradient(
    45deg,
    #fb0094,
    #0000ff,
    #00ff00,
    #ffff00,
    #ff0000,
    #fb0094,
    #0000ff,
    #00ff00,
    #ffff00,
    #ff0000
  );
  --background-linear-gradient: linear-gradient(0deg, #000, #262626);
  --gap-big: 40px;
}




/* НАСТРОЙКА ЭЛЕМЕНТОВ */




.document {
  font-size: 62.5%; /* теперь 1rem равен 10px */
  overflow-y: scroll;
}

.document--body {
  min-height: 100vh;
  padding: var(--gap-big);
  background: #000;
}

.document--body * {
  user-select: none;
}

a {
  /* cursor: pointer; */
  color: white;
  /* text-decoration-line: none; /* underline */
  /* transition-property: color; */
  /* transition-duration: .12s; */
}
a:link /* непосещённые ссылки */ {}
a:visited /* посещённые ссылки */ {}
a:hover, /* при наведении */
a:focus /* при перемещении клавишей Tab */ {
  /* color: currentColor */
}
a:active  /* при клике по ссылке */ {}




/* УНИВЕРСАЛЬНЫЕ КЛАССЫ */




.basic-typography {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Adjusted", "Segoe UI", "Liberation Sans", sans-serif;
  font-size: 2rem;
  line-height: 140%;
  font-weight: 400;
  color: white;
}




/* КЛАССЫ ДЛЯ ЭЛЕМЕНТОВ */




/*.page-home {
  position: relative;
}*/

/* Кнопки */
.button-color {
  width: auto;
  height: auto;
  background-image: var(--background-linear-gradient);
  color: white;
  font-size: 1.7rem;
  font-weight: bold;
  text-align: center;
  /*font-family: monospace;*/
  text-transform: uppercase;
  display: grid;
  place-items: center;
}




/* КЛАССЫ МОДУЛЕЙ */




/* Цветная анимированная тень */

.shadow-color-animated {
  display: grid;
  place-items: center;
  position: relative;
}

.shadow-color-animated:before,
.shadow-color-animated:after {
  --border-width: 2px;
  content: "";
  position: absolute;
  top: calc(-1 * var(--border-width));
  left: calc(-1 * var(--border-width));
  width: calc(100% + var(--border-width) * 2);
  height: calc(100% + var(--border-width) * 2);
  background-image: var(--shadow-gradient);
  background-size: 400%;
  animation: animate 20s linear infinite;
  z-index: -1;
}

.shadow-color-animated:after {
  filter: blur(20px);
}

/*
/*.shadow:before,* /
.shadow:after {
--border-width: 2px;
  content: "";
  position: absolute;
  top: calc(-1 * var(--border-width));
  left: calc(-1 * var(--border-width));
  width: calc(100% + var(--border-width) * 2);
  height: calc(100% + var(--border-width) * 2);
}

.shadow:after {
  background-image: var(--shadow-gradient);
  background-size: 400%;
  filter: blur(20px);
  animation: animate 20s linear infinite;
  z-index: -1;
}
*/

@keyframes animate {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 300% 0;
  }
  100% {
    background-position: 0 0;
  }
}




/*
//
//
//
// Локальные настройки элементов
//
//
//
*/

.page-home {
  display: grid;
  justify-items: center;
  align-items: center;
}

.page-home > :not(.page-home--box) {
  display: none !important;
}

.page-home--box {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  /*grid-template-rows: auto 1fr auto;*/
  grid-template-rows: auto auto auto;
  column-gap: var(--gap-big);
  row-gap: var(--gap-big);
}

.page-home--button-box {}

/* Цветная кнопка-логотип:
   Общие стили для всех страниц */
.button-color--logo {
  background:
    url(logo-white.png) no-repeat 50% center / 78% ,
    var(--background-linear-gradient)
  ;
}

/* Цветная кнопка-логотип:
   Позиционирование контейнера для кнопки-логотипа на главной странице */
.page-home--button-box--logo {
  grid-column: 2 / 3;
  grid-row: 1 / -1;
  align-self: center;
}

.page-home--button-color--logo {
  width: 250px;
  height: 250px;
}

.button-color--logo,
.button-color--logo:before {
  border-radius: 50%;
}

.button-color--logo:after {
  border-radius: 50%;
}

.page-home--button-color {
  --button-color-height: 80px;
  width: 450px;
  height: var(--button-color-height);
}

.page-home--button-color,
.page-home--button-color:before {
  border-radius: calc(var(--button-color-height) / 2);
}

.page-home--button-box--aka {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}

.page-home--button-box--tat {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
}

.page-home--button-box--oso {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}

.page-home--button-box--sas {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}

.page-home--button-box--izi {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}

.page-home--button-box--kok {
  grid-column: 3 / 4;
  grid-row: 3 / 4;
}




/*////////////////////////////////////////////////////////////////////////////*/




.single a {
  pointer-events: none;
}

.single > * ~ * {
  margin-top: 5rem;
}

.single--body * + * {
  margin-top: 2rem !important;
}

.page-archive li::before {
  content: "❧"; /* Любой символ, эмодзи или текст */
  color: inherit;
  font-size: inherit;
  margin-right: 1rem;
}




.text-align--center > * {
  margin: 0 auto;
}
