@keyframes zp-grad-drift{
  0%{filter:hue-rotate(0deg);transform:translate3d(0,0,0)}
  50%{filter:hue-rotate(8deg);transform:translate3d(0,-8px,0)}
  100%{filter:hue-rotate(0deg);transform:translate3d(0,0,0)}
}
@keyframes zp-glow-pulse{
  0%,100%{box-shadow:0 0 0 1px rgba(199,255,0,.14),0 18px 70px rgba(0,0,0,.62)}
  50%{box-shadow:0 0 0 1px rgba(240,255,107,.18),0 18px 70px rgba(0,0,0,.62),0 0 44px rgba(199,255,0,.10)}
}
@keyframes zp-sheen{
  0%{transform:translateX(-120%) skewX(-18deg);opacity:0}
  20%{opacity:1}
  100%{transform:translateX(160%) skewX(-18deg);opacity:0}
}
@keyframes zp-float{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,-10px,0)}
}

.zp-ambient{
  position:relative;
}
.zp-ambient::before{
  content:"";
  position:absolute;
  inset:-40px;
  background:var(--grad-ambient);
  filter:saturate(1.15);
  opacity:.92;
  z-index:-2;
  animation:zp-grad-drift 14s ease-in-out infinite;
}
.zp-ambient::after{
  content:"";
  position:absolute;
  inset:-10px;
  background-image:var(--noise);
  background-size:3px 3px;
  mix-blend-mode:overlay;
  opacity:.35;
  z-index:-1;
  pointer-events:none;
}
@media (prefers-reduced-motion:reduce){
  .zp-ambient::before{animation:none}
}

