/* 이펙터 · 2026-10 제작 · 상단 비주얼 고정 모션 스타일 */

.kvfx { position: relative; --kvfx-scale: 1.2; --kvfx-origin: 50% 36%; --kvfx-oy: .36; }
.kvfx > [data-kvfx] { --kvfx-p: 0; position: sticky; top: var(--ss-header-h); z-index: 0; overflow: hidden; }
.kvfx-cover { position: relative; z-index: 1; background: var(--ss-white); border-radius: 1.5rem 1.5rem 0 0; box-shadow: 0 -1rem 2.5rem rgba(0, 0, 0, .08); }
.kvfx > [data-kvfx].is-done { visibility: hidden; }

@media (prefers-reduced-motion: no-preference) {
  .kvfx > [data-kvfx] :is(.sp-kv-img, .sk-kv-img, .ct-kv-bg, .nv-kv-bg) {
    transform-origin: var(--kvfx-ox, 50%) calc(var(--kvfx-oy) * 100%);
    scale: calc(1 + (var(--kvfx-scale) - 1) * (1 - var(--kvfx-p)));
    will-change: scale;
  }
  .kvfx > [data-kvfx] :is(.nv-kv > .container, .sk-kv-ov) {
    translate: 0 calc(var(--kvfx-p) * -26vh);
    opacity: max(0, calc(1 - var(--kvfx-p) * 1.55));
    will-change: translate, opacity;
  }
  .kvfx > [data-kvfx]::after { content: ""; position: absolute; inset: 0; z-index: 3; background: #000; opacity: calc(var(--kvfx-p) * .6); pointer-events: none; }
}

[data-gnb="skin"] .kvfx, [data-gnb="novacellix"] .kvfx { --kvfx-origin: 50% 50%; --kvfx-oy: .5; }

@media (prefers-reduced-motion: no-preference) {
  .nv-zoomin { overflow: hidden; }
  .nv-zoomin .nv-fx-img { scale: calc(1 + .25 * (1 - var(--zi, 1))); will-change: scale; }
}

html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }
