/*
 * V69 chain-cinema pass r2 (additive only).
 * Комета по цепи + поджиг узлов + голо-растворение дальней дуги.
 * Земля, орбитальная математика и позиционирование не тронуты.
 * Rollback: убрать этот файл + v69-chain.js из index.html.
 */

@property --v69-mult {
  syntax: "<number>";
  inherits: false;
  initial-value: 1;
}

/* плавный множитель присутствия: дальняя дуга растворяет объект в голо-след */
.hero--v53 .global-orbit-miner,
.hero--v53 .global-orbit-logo {
  --v69-mult: 1;
  transition: --v69-mult 0.65s ease;
}

.hero--v53 .global-orbit-miner {
  opacity: calc(var(--miner-opacity, 0.4) * var(--v69-mult, 1));
}

.hero--v53 .global-orbit-logo {
  opacity: calc(var(--logo-opacity, 0.4) * var(--v69-mult, 1));
}

.hero--v53 .global-orbit-miner.v69-ghost,
.hero--v53 .global-orbit-logo.v69-ghost {
  --v69-mult: 0.16;
}

/* голо-срез и сжатие на дальней дуге: объект читается как проекция */
.v69-ghost .global-orbit-miner__visual,
.hero--v53 .global-orbit-logo.v69-ghost img {
  -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 2.4px, rgba(0, 0, 0, 0.24) 2.4px 4px);
  mask-image: repeating-linear-gradient(0deg, #000 0 2.4px, rgba(0, 0, 0, 0.24) 2.4px 4px);
}

.global-orbit-miner__visual,
.hero--v53 .global-orbit-logo img {
  transition: transform 0.65s ease;
}

.v69-ghost .global-orbit-miner__visual,
.hero--v53 .global-orbit-logo.v69-ghost img {
  transform: scale(0.93);
}

/* МАТРИЦА-материализация: выплывая из дальней дуги, объект трещит срезами
   и проявляется в полную силу только через секунду */
.v69-materialize .global-orbit-miner__visual,
.hero--v53 .global-orbit-logo.v69-materialize img {
  animation: v69Matrix 1.15s steps(1, end) both;
}

@keyframes v69Matrix {
  0% {
    opacity: 0.22;
    transform: translateX(-1.6px) scale(0.965);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 1.4px, transparent 1.4px 3.6px);
    mask-image: repeating-linear-gradient(0deg, #000 0 1.4px, transparent 1.4px 3.6px);
  }
  8% {
    opacity: 0.82;
    transform: translateX(1.2px) scale(0.985);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 2.6px, transparent 2.6px 3.2px);
    mask-image: repeating-linear-gradient(0deg, #000 0 2.6px, transparent 2.6px 3.2px);
  }
  15% {
    opacity: 0.3;
    transform: translateX(-1px) scale(0.975);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 1.1px, transparent 1.1px 4px);
    mask-image: repeating-linear-gradient(0deg, #000 0 1.1px, transparent 1.1px 4px);
  }
  24% {
    opacity: 0.88;
    transform: translateX(0.8px) scale(0.99);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 3px, transparent 3px 3.4px);
    mask-image: repeating-linear-gradient(0deg, #000 0 3px, transparent 3px 3.4px);
  }
  33% {
    opacity: 0.42;
    transform: translateX(-0.6px);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 1.8px, transparent 1.8px 3.2px);
    mask-image: repeating-linear-gradient(0deg, #000 0 1.8px, transparent 1.8px 3.2px);
  }
  44% {
    opacity: 0.94;
    transform: translateX(0.4px);
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 3.4px, transparent 3.4px 2.4px);
    mask-image: repeating-linear-gradient(0deg, #000 0 3.4px, transparent 3.4px 2.4px);
  }
  56% {
    opacity: 0.66;
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 2.2px, transparent 2.2px 2.6px);
    mask-image: repeating-linear-gradient(0deg, #000 0 2.2px, transparent 2.2px 2.6px);
  }
  70% {
    opacity: 1;
    transform: none;
    -webkit-mask-image: repeating-linear-gradient(0deg, #000 0 5px, rgba(0, 0, 0, 0.7) 5px 5.6px);
    mask-image: repeating-linear-gradient(0deg, #000 0 5px, rgba(0, 0, 0, 0.7) 5px 5.6px);
  }
  84% {
    opacity: 0.96;
    -webkit-mask-image: linear-gradient(#000, #000);
    mask-image: linear-gradient(#000, #000);
  }
  100% {
    opacity: 1;
    transform: none;
    -webkit-mask-image: linear-gradient(#000, #000);
    mask-image: linear-gradient(#000, #000);
  }
}

/* типографический лок-ап в узлах цепи: знак + VNISH GLOBAL основным шрифтом */
.v69-typelogo {
  display: grid;
  justify-items: center;
  gap: 8%;
  width: 100%;
}

.hero--v53 .global-orbit-logo .v69-typelogo img {
  width: 56%;
}

.v69-typelogo b {
  color: #e3c47d;
  font-size: clamp(6px, 0.6vw, 9px);
  font-weight: 800;
  letter-spacing: 0.2em;
  white-space: nowrap;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.85);
}

@media (max-width: 760px) {
  .v69-typelogo b { font-size: 5.5px; letter-spacing: 0.16em; }
}

/* импульс r10: волна бежит ПО САМИМ ЗВЕНЬЯМ пунктира - жирный клон точек
   виден только в мягком скользящем окне-маске (никаких инородных тел на линии) */
.hero--v53 .global-orbit-chain path.v69-dotwave {
  stroke: rgba(255, 238, 184, 0.96);
  stroke-width: 3.6;
  filter:
    drop-shadow(0 0 3px rgba(255, 228, 158, 0.95))
    drop-shadow(0 0 9px rgba(168, 214, 240, 0.55));
}

@media (max-width: 760px) {
  .hero--v53 .global-orbit-chain path.v69-dotwave { stroke-width: 2.8; }
}

/* отклик узлов на проход волны */
.v69-relay .global-orbit-miner__visual,
.hero--v53 .global-orbit-logo.v69-relay img,
.hero--v53 .global-orbit-logo.v69-relay .v69-typelogo {
  animation: v69RelayPop 1.05s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes v69RelayPop {
  0% { transform: scale(1); }
  18% { transform: scale(1.11); }
  40% { transform: scale(1.03); }
  62%, 100% { transform: scale(1); }
}

/* мягкий блум-вдох за узлом: без расходящихся кругов, просто дыхание света */
.hero--v53 .global-orbit-miner.v69-relay::after,
.hero--v53 .global-orbit-logo.v69-relay::after {
  content: "";
  position: absolute;
  inset: -14% -8%;
  z-index: -1;
  border-radius: 32%;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(170, 224, 250, 0.4), transparent 62%),
    radial-gradient(ellipse at 50% 60%, rgba(244, 205, 112, 0.22), transparent 70%);
  mix-blend-mode: screen;
  opacity: 0;
  animation: v69RelayBloom 1.05s ease-in-out both;
  pointer-events: none;
}

@keyframes v69RelayBloom {
  0% { opacity: 0; transform: scale(0.96); }
  30% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.02); }
}

/* объекты цепи всегда над лучом: усиленная тёмная подложка гасит свет за корпусом */
.hero--v53 .global-orbit-miner::before,
.hero--v53 .global-orbit-logo::before {
  content: "";
  position: absolute;
  inset: -5% 0%;
  z-index: -1;
  border-radius: 24%;
  background: radial-gradient(ellipse at 50% 50%, rgba(4, 5, 5, 0.96) 42%, rgba(4, 5, 5, 0.66) 64%, transparent 82%);
  pointer-events: none;
}

.hero--v53 .global-orbit-logo::before {
  inset: 4% 6%;
}

@media (prefers-reduced-motion: reduce) {
  .hero--v53 .global-orbit-chain path.v69-dotwave { display: none; }

  .v69-relay .global-orbit-miner__visual,
  .hero--v53 .global-orbit-logo.v69-relay img,
  .hero--v53 .global-orbit-logo.v69-relay .v69-typelogo,
  .hero--v53 .global-orbit-miner.v69-relay::after,
  .hero--v53 .global-orbit-logo.v69-relay::after,
  .v69-materialize .global-orbit-miner__visual,
  .hero--v53 .global-orbit-logo.v69-materialize img {
    animation: none;
  }
}
