/* Люкс-слой VOICEPRINT: кинозерно, курсор-спутник, магнит, наклон, шиммер. */

/* Кинозерно поверх всего — 4%, как плёнка */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  opacity: .045;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.lux-cursor {
  position: fixed;
  left: -14px;
  top: -14px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 998;
  background: radial-gradient(circle, rgba(105, 226, 203, .35), rgba(105, 226, 203, .08) 55%, transparent 70%);
  mix-blend-mode: screen;
  transition: transform 0s;
  will-change: transform;
}

.magnetic { transition: translate .35s cubic-bezier(.2, .8, .25, 1.4); position: relative; overflow: hidden; }
.magnetic::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .18) 50%, transparent 70%);
  transform: translateX(-120%);
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .magnetic:hover::after { animation: lux-shimmer .9s ease; }
  @keyframes lux-shimmer { to { transform: translateX(120%); } }
}

.tilt {
  transform: perspective(720px) rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg));
  transition: transform .18s ease-out;
  position: relative;
}
.tilt::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, .13), transparent 55%);
  opacity: 0;
  transition: opacity .25s;
  pointer-events: none;
  z-index: 2;
}
.tilt:hover::before { opacity: 1; }

/* Сургучная печать */
.wax-seal { display: block; width: 110px; height: 110px; margin: 6px auto 2px; }
@media (prefers-reduced-motion: no-preference) {
  .wax-seal { animation: wax-stamp .55s cubic-bezier(.2, .9, .3, 1.3) both; }
  @keyframes wax-stamp {
    0% { transform: scale(1.7) rotate(-9deg); opacity: 0; }
    60% { transform: scale(.94) rotate(2deg); opacity: 1; }
    100% { transform: scale(1) rotate(0deg); }
  }
}
