/* Subtle living-poster motion for NQC's approved still artwork. */
.hero-art {
  transform-origin: 72% 45%;
  animation: nqc-hero-breathe 18s ease-in-out infinite alternate;
}

.world-card::before {
  transform-origin: 70% 35%;
  animation: nqc-card-drift 16s ease-in-out infinite alternate;
}

.world-card:nth-child(2n)::before { animation-delay: -5s; }
.world-card:nth-child(3n)::before { animation-delay: -9s; }

.launch-gallery img {
  transform: scale(1.035);
  animation: nqc-gallery-drift 14s ease-in-out infinite alternate;
}

.launch-gallery a:nth-child(2) img { animation-delay: -4s; }
.launch-gallery a:nth-child(3) img { animation-delay: -8s; }

.veil-world .world-gateway {
  background-position: 50% 50%, 50% 50%;
  animation: nqc-veil-signal 18s ease-in-out infinite alternate;
}

.disrupt-gateway {
  background-position: 0 0, 0 0, 50% 50%;
  animation: nqc-disrupt-push 16s ease-in-out infinite alternate;
}

.disrupt-world #saint-vale,
.disrupt-world #harrow {
  background-position: 0 0, 0 0, 50% 50%;
  animation: nqc-city-drift 18s ease-in-out infinite alternate;
}

.disrupt-world #harrow { animation-duration: 22s; animation-direction: alternate-reverse; }

.redwood-gateway {
  background-position: 0 0, 0 0, 50% 50%;
  animation: nqc-redwood-glide 20s ease-in-out infinite alternate;
}

.everworld-gateway {
  background-position: 0 0, 0 0, 50% 50%;
  animation: nqc-everworld-rise 22s ease-in-out infinite alternate;
}

.everworld-gateway::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: .3;
  background: linear-gradient(105deg, transparent 22%, rgba(224,196,127,.16) 48%, transparent 72%);
  transform: translateX(-35%);
  animation: nqc-atmosphere-sweep 13s ease-in-out infinite;
}

.disturbed-gateway {
  background-position: 0 0, 0 0, 50% 50%;
  animation: nqc-disturbed-creep 24s ease-in-out infinite alternate;
}

.disturbed-gateway::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(circle at 70% 38%, rgba(245,226,174,.11), transparent 15%);
  opacity: .35;
  animation: nqc-house-flicker 9s steps(1,end) infinite;
}

.understand-gateway {
  background-position: 0 0, 72% 50%;
  animation: nqc-understand-warmth 18s ease-in-out infinite alternate;
}

@keyframes nqc-hero-breathe {
  from { transform: scale(1); filter: brightness(.96); }
  to { transform: scale(1.035) translate3d(-.35%, -.25%, 0); filter: brightness(1.04); }
}

@keyframes nqc-card-drift {
  from { transform: scale(1.01) translate3d(0, 0, 0); }
  to { transform: scale(1.055) translate3d(-.6%, -.35%, 0); }
}

@keyframes nqc-gallery-drift {
  from { transform: scale(1.035) translate3d(0, 0, 0); }
  to { transform: scale(1.095) translate3d(-.75%, -.45%, 0); }
}

@keyframes nqc-veil-signal {
  from { background-position: 48% 48%, 50% 50%; }
  to { background-position: 53% 52%, 50% 50%; }
}

@keyframes nqc-disrupt-push {
  from { background-position: 0 0, 0 0, 48% 50%; }
  to { background-position: 0 0, 0 0, 54% 48%; }
}

@keyframes nqc-city-drift {
  from { background-position: 0 0, 0 0, 47% 50%; }
  to { background-position: 0 0, 0 0, 54% 47%; }
}

@keyframes nqc-redwood-glide {
  from { background-position: 0 0, 0 0, 47% 50%; filter: saturate(.96); }
  to { background-position: 0 0, 0 0, 54% 47%; filter: saturate(1.05); }
}

@keyframes nqc-everworld-rise {
  from { background-position: 0 0, 0 0, 50% 53%; }
  to { background-position: 0 0, 0 0, 52% 46%; }
}

@keyframes nqc-atmosphere-sweep {
  0%, 18% { transform: translateX(-45%); opacity: 0; }
  48% { opacity: .32; }
  82%, 100% { transform: translateX(45%); opacity: 0; }
}

@keyframes nqc-disturbed-creep {
  from { background-position: 0 0, 0 0, 48% 51%; filter: brightness(.9); }
  to { background-position: 0 0, 0 0, 53% 48%; filter: brightness(1); }
}

@keyframes nqc-house-flicker {
  0%, 11%, 14%, 62%, 66%, 100% { opacity: .3; }
  12%, 64% { opacity: .08; }
  13%, 65% { opacity: .52; }
}

@keyframes nqc-understand-warmth {
  from { background-position: 0 0, 70% 50%; filter: brightness(.98) saturate(.98); }
  to { background-position: 0 0, 75% 48%; filter: brightness(1.04) saturate(1.04); }
}

@media (hover: hover) {
  .world-card:hover::before { animation-play-state: paused; transform: scale(1.065); }
  .launch-gallery a:hover img { animation-play-state: paused; transform: scale(1.105); }
}

@media (max-width: 760px) {
  .launch-gallery img { animation-duration: 18s; }
  .disrupt-gateway { animation-name: nqc-disrupt-push-mobile; }
  .understand-gateway { animation-name: nqc-understand-warmth-mobile; }
}

@keyframes nqc-disrupt-push-mobile {
  from { background-position: 0 0, 0 0, 57% 50%; }
  to { background-position: 0 0, 0 0, 63% 48%; }
}

@keyframes nqc-understand-warmth-mobile {
  from { background-position: 0 0, 58% 50%; }
  to { background-position: 0 0, 63% 48%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-art,
  .world-card::before,
  .launch-gallery img,
  .veil-world .world-gateway,
  .disrupt-gateway,
  .disrupt-world #saint-vale,
  .disrupt-world #harrow,
  .redwood-gateway,
  .everworld-gateway,
  .everworld-gateway::after,
  .disturbed-gateway,
  .disturbed-gateway::after,
  .understand-gateway {
    animation: none !important;
    transform: none;
    filter: none;
  }
}
