.blueprint-motion.words::before {
  transform: translate3d(calc(-50% + var(--blueprint-grid-x, 0px)), var(--blueprint-grid-y, 0px), 0);
  transition: transform .35s ease-out;
}

.blueprint-motion .blueprint-glow {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  width: 480px;
  height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(219, 229, 181, .16), rgba(219, 229, 181, .07) 36%, transparent 70%);
  opacity: 0;
  transform: translate3d(var(--blueprint-glow-x, -500px), var(--blueprint-glow-y, -500px), 0) translate(-50%, -50%);
  transition: opacity .3s ease;
  pointer-events: none;
  will-change: transform;
}

.blueprint-motion .blueprint-trail {
  stroke: #dbe5b5;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 80 920;
  stroke-dashoffset: 0;
  opacity: .7;
  filter: drop-shadow(0 0 5px rgba(219, 229, 181, .72));
  animation: blueprint-trail-flow 11s linear infinite paused;
  animation-delay: -3s;
  transition: opacity .3s ease;
}

.blueprint-motion .blueprint-trail--two {
  stroke: #abd8cb;
  opacity: .58;
  animation-duration: 13s;
  animation-delay: -8s;
}

.blueprint-motion.is-in-view .blueprint-trail { animation-play-state: running; }
.blueprint-motion.has-moving-glow .blueprint-glow { opacity: 1; }
.blueprint-motion.is-interacting .blueprint-trail { opacity: 1; }
.blueprint-motion.has-blueprint-motion:not(.is-in-view) .overview-node,
.blueprint-motion.has-blueprint-motion:not(.is-in-view) .renders-node {
  opacity: 0;
  transform: translateY(10px);
}

@keyframes blueprint-trail-flow { to { stroke-dashoffset: -1000; } }

@media (max-width: 800px) {
  .floor-plans-page,
  .renders-page { overflow-x: hidden; }
}

@media (prefers-reduced-motion: reduce) {
  .blueprint-motion.words::before { transform: translateX(-50%); transition: none; }
  .blueprint-motion .blueprint-glow,
  .blueprint-motion .blueprint-trail { display: none; }
  .blueprint-motion.has-blueprint-motion:not(.is-in-view) .overview-node,
  .blueprint-motion.has-blueprint-motion:not(.is-in-view) .renders-node {
    opacity: 1;
    transform: none;
  }
}
