/* ЗОЛОТОЙ — премиальная огранка анимаций (refine pass).
   Не добавляет новых эффектов-«фокусов», а поднимает качество имеющихся:
   · единая благородная экспонента с длинным оседанием (--ease-lux);
   · кинематографичная фокус-наводка (blur→резкость) на текстовых появлениях;
   · более плавная шторка фотокадров и «дорогой» ховер;
   · выверенная, чуть разнесённая оркестровка каскадов.
   Грузится последним → переопределяет базу по порядку источника.
   Полностью отключается при prefers-reduced-motion. */

:root {
  /* главная премиум-кривая: мягкий разгон, длинный изысканный «доезд» */
  --ease-lux: cubic-bezier(0.19, 1, 0.22, 1);
  /* выход для подписей и мелких деталей */
  --ease-fine: cubic-bezier(0.22, 0.84, 0.27, 1);
}

@media (prefers-reduced-motion: no-preference) {

  /* ============================================================
     1 · Текстовые появления — фокус-наводка + длинный доезд
     ============================================================ */
  .reveal {
    transform: translateY(36px);
    filter: blur(6px);
    transition: opacity 1.2s var(--ease-lux),
                transform 1.45s var(--ease-lux),
                filter 1.15s var(--ease-lux);
    transition-delay: var(--d, 0s);
  }
  .reveal.in { filter: blur(0); }

  /* фото-карточки и план-изображение раскрываются ШТОРКОЙ, а не наводкой —
     поэтому снимаем с них блюр, оставляя подъём и clip-path */
  .g-item.reveal,
  .plan-img.reveal { filter: none; }

  /* ============================================================
     2 · Галерея — подъём собраннее, шторка длиннее и мягче
     ============================================================ */
  .g-item.reveal { transform: translateY(40px) scale(0.965); }

  .reveal .img-frame {
    transition: clip-path 1.4s var(--ease-lux) var(--imgd, 0.08s),
                box-shadow 0.6s var(--ease-fine),
                transform 0.6s var(--ease-fine);
  }
  .plan-img.reveal img {
    transition: clip-path 1.5s var(--ease-lux) 0.1s;
  }

  /* подписи под фото — тоньше, с фокус-наводкой и разнесённым каскадом */
  .g-item.reveal .g-caption > * {
    transform: translateY(14px);
    filter: blur(4px);
    transition: opacity 0.85s var(--ease-fine),
                transform 0.95s var(--ease-lux),
                filter 0.85s var(--ease-fine);
  }
  .g-item.reveal.in .g-caption > * { filter: blur(0); }
  .g-item.reveal.in .g-caption > *:nth-child(1) { transition-delay: 0.48s; }
  .g-item.reveal.in .g-caption > *:nth-child(2) { transition-delay: 0.58s; }
  .g-item.reveal.in .g-caption > *:nth-child(3) { transition-delay: 0.68s; }

  /* ============================================================
     3 · Заголовки секций — выезд из-за линейки с наводкой
     ============================================================ */
  .section-head h2 {
    transform: translateY(26px);
    filter: blur(5px);
    transition: opacity 1.1s var(--ease-fine) 0.1s,
                transform 1.15s var(--ease-lux) 0.1s,
                filter 1.05s var(--ease-fine) 0.1s;
  }
  .section-head.reveal.in h2,
  .section-head:not(.reveal) h2 { filter: blur(0); }

  /* ============================================================
     4 · Hero — пословный подъём с фокус-наводкой, спокойнее наезд фона
     ============================================================ */
  .hero h1 .w {
    transform: translateY(0.88em);
    filter: blur(9px);
    animation: wRiseLux 1.5s var(--ease-lux) forwards;
    animation-delay: var(--wd, 0s);
  }
  @keyframes wRiseLux {
    to { opacity: 1; transform: none; filter: blur(0); }
  }

  .hero-media img {
    animation-duration: 22s;
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* ============================================================
     5 · Чипы локации — плавный каскад с наводкой
     ============================================================ */
  .poi-row.reveal .poi {
    transform: translateY(16px);
    filter: blur(4px);
    transition: opacity 0.78s var(--ease-fine),
                transform 0.85s var(--ease-lux),
                filter 0.78s var(--ease-fine);
  }
  .poi-row.reveal.in .poi { filter: blur(0); }

  /* ============================================================
     6 · Ховеры — мягче, длиннее, «дороже»
     ============================================================ */
  .img-frame {
    transition: box-shadow 0.7s var(--ease-fine), transform 0.6s var(--ease-fine);
  }
  .fx-hover .img-frame img {
    transition: transform 1.05s var(--ease-lux), filter 0.6s var(--ease-fine);
  }
  .fx-hover .img-frame:hover img {
    transform: scale(1.062) translateY(var(--py, 0px));
    filter: brightness(1.035) saturate(1.04);
  }

  /* золотая волна по буквам — тянется чуть дольше и благороднее */
  .zl-hx {
    transition: transform 0.62s var(--ease-lux),
                color 0.5s var(--ease-fine),
                text-shadow 0.5s var(--ease-fine);
  }

  /* лейблы секций — мягче раскрытие трекинга */
  .section-head .label,
  .loc-head .label { transition: letter-spacing 0.7s var(--ease-lux), color 0.45s var(--ease-fine); }
}
