/* ═══════════════════ ЗАГРУЗКА ═══════════════════
   Пустой экран → лого проступает → по одному
   морганию на каждый узел стола; каждое выращивает спицу
   к своему узлу. Дорастает последняя — рёбра между узлами,
   проступают подписи, и это уже живой рабочий стол: отдельной заставки и финального
   проявления нет, лого остаётся в центре как часть стола.
   Всё движение ведёт рендер-цикл (bootTick в main.js),
   тайминги — токены --boot-* в style.css; здесь только
   то, во что цикл пишет.
═══════════════════════════════════════════════════════ */

.boot {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  /* Рабочий стол — «линии → лого → иконки»: лого — фон места, а не
     объект; спицы уходят под его лепестки, иконки можно положить поверх
     (см. .os-links / .os-apps в desktop.css). Указатель лого не ловит
     (pointer-events: none наследуется всем содержимым), поэтому иконка
     поверх лого и клики рядом с ним работают. */
  z-index: calc(var(--z-lines) + 1);
  pointer-events: none;
}

/* Лого — компактнее, чем раньше */
#logo-wrap {
  width: calc(380 * var(--icon-up));
  height: calc(238 * var(--icon-up));
}

/* Брейкпоинт размера лого — НЕ одно из двух осознанных исключений
   (technical-execution.md, «Брейкпоинтов нет»), а наследие, старше
   docs/CHANGELOG.md; описан 25.09, поведение не менялось.
   Что делает: до 900px включительно обёртка лого — min(220px, 56vw) по
   ширине, высота из пропорции 780/488 (≈ пропорция PNG 2000×1250); шире
   900px — фиксированные 380×238 выше. На границе скачок: 901px → 380px,
   900px → 220px. Меняется число, а не структура раскладки, поэтому по
   правилам проекта это должно быть текучее значение (clamp от vw), а не
   @media. Решение владельца 25.09: оставить как есть — замена поменяла
   бы размер лого на ширинах около 600–900px.
   От размера обёртки зависит защитная зона лого на столе: currentHubZone
   в main.js берёт offsetWidth/Height #logo-wrap и видимую часть PNG
   (LOGO_ART) — начальная раскладка Profile и «Работ» на узких экранах
   считается от этого размера. */
@media (max-width: 900px) {
  #logo-wrap { width: min(220px, 56vw); height: auto; aspect-ratio: 780 / 488; }
}

/* Проступание лого: --logo-in (0 → 1, уже со смягчением) пишет только
   рендер-цикл (bootTick; без загрузки — сразу 1). До первого кадра лого
   не видно. Только прозрачность — без роста, размытия и фильтров. */
#logo-inner {
  opacity: var(--logo-in, 0);
}

/* Моргание: сжатие по оси --boot-blink-angle. Пишется в картинку, а не в
   #logo-wrap — там transform левитации (один писатель на свойство);
   --blink-y пишет только рендер-цикл, вне загрузки он не задан. */
#logo-img {
  transform: rotate(var(--boot-blink-angle)) scaleY(var(--blink-y, 1)) rotate(calc(-1 * var(--boot-blink-angle)));
}
