/*
 * V69 act 04 · Hooded Wireframe · r2 «route operator»
 * Фигура Бивиса (ANIM04-R5) встроена в route-choice: оператор над двумя дверями.
 * r2 по приказу шефа 27.07: (1) силуэт подрезан по периметру (новый клип +
 * растворение низа), (2) краски сочнее (сатурация, глубокие glow, двухтоновый
 * ореол), (3) лого вплавлено в грудь (ореол-ядро, пульс), (4) ninja-эффект:
 * фигура оторвана от заднего плана, spring-параллакс в стороны, боковые
 * угли-частицы с физикой (канвас, как атмосфера vnish.ninja hero).
 * Канон-мотор поворота головы не тронут. Снега и фоновых полей нет.
 * Откат: минус этот файл + v69-act04.js + блок .wf-scene из route-heading.
 */

.route-heading--operator {
  --wf-blue: #86cfff;
  --wf-gold: #f1c36b;
  display: grid;
  grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}

.route-heading-copy { position: relative; z-index: 2; }

.wf-caption {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  color: rgba(247, 243, 234, 0.44);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3em;
}

.wf-caption i {
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, var(--wf-gold), transparent);
}

/* ---------- сцена: отрыв от заднего плана ---------- */
.wf-scene {
  position: relative;
  height: clamp(460px, 46vw, 640px);
  isolation: isolate;
}

.wf-embers { display: none; }

/* атмосфера за фигурой: золотой дым с турбулентностью + искры (канвас) */
.wf-smoke {
  position: absolute;
  inset: -4%;
  z-index: 1;
  width: 108%;
  height: 108%;
  pointer-events: none;
  mix-blend-mode: screen;
}

/* ---------- фигура r10: чистый вырез над полем, своя физика ---------- */
.wf-artifact {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: 55%;
  width: min(108%, 640px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  pointer-events: none;
  perspective: 1500px;
  mask-image: linear-gradient(180deg, black 0 86%, rgba(0, 0, 0, 0.6) 94%, transparent 100%);
}

.wf-artifact::before {
  content: "";
  position: absolute;
  inset: 8% 4% -2%;
  z-index: 1;
  background: radial-gradient(ellipse at 50% 58%, rgba(0, 0, 0, 0.8) 0 36%, transparent 66%);
  filter: blur(16px);
  transform: translateX(calc(var(--wf-px, 0) * -8px));
}

/* поза: деликатный наклон канон-цикла + пружина курсора (без деформаций) */
.wf-pose {
  position: absolute;
  inset: 0;
  z-index: 2;
  transform:
    translate3d(calc(var(--wf-ax, 0px) + var(--wf-px, 0) * 16px), calc(var(--wf-ay, 0px) + var(--wf-py, 0) * 9px), 0)
    rotateY(calc(var(--wf-ry, 0deg) * 1.6 + var(--wf-px, 0) * 6deg))
    rotateX(calc(var(--wf-rx, 0deg) + var(--wf-py, 0) * -2.8deg))
    scale(var(--wf-scale, 1));
  transform-style: preserve-3d;
  transform-origin: 50% 62%;
  will-change: transform;
}

.wf-detail {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  mix-blend-mode: screen;
  opacity: 0.85;
  pointer-events: none;
}

.wf-art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: screen;
  filter: contrast(1.28) saturate(1.55) brightness(1.1);
}

/* ---------- r2 лого: ядро бренда в груди, не наклейка ---------- */
.wf-brandcore {
  position: absolute;
  z-index: 5;
  left: 46.2%;
  top: 66.5%;
  width: 11.2%;
  transform: translate(-50%, -50%);
  animation: wfCorePulse 5.8s ease-in-out infinite;
}

.wf-brandcore img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  filter:
    brightness(1.12)
    contrast(1.18)
    saturate(1.1)
    drop-shadow(0 2px 3px rgba(0, 0, 0, 0.7));
}

@keyframes wfCorePulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.028); }
}

/* ---------- responsive ---------- */
@media (max-width: 1120px) {
  .route-heading--operator { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .wf-scene { height: clamp(420px, 52vw, 560px); }
  .wf-artifact { width: min(124%, 600px); }
}

@media (max-width: 760px) {
  .route-heading--operator { grid-template-columns: 1fr; gap: 22px; }
  .wf-scene { height: clamp(380px, 104vw, 470px); border-radius: 20px; }
  .wf-artifact { top: 55%; width: min(132%, 520px); }
  .wf-brandcore { width: 13.6%; top: 84%; }
  .wf-caption { margin-top: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .wf-brandcore { animation: none; }
  .wf-embers { display: none; }
}
