/* Keep the photographic field quiet and architectural. */
.way-threshold-image::after { background: rgba(13, 41, 36, 0.24); }
.way-focus-image::after { background: rgba(13, 41, 36, 0.20); }
.way-route-image::after { background: rgba(13, 41, 36, 0.22); }

/* Use the supplied church logo without a competing custom wordmark. */
.way-brand { gap: 0; }
.way-brand > span { display: none; }
.way-brand img { width: 168px; max-height: 52px; object-fit: contain; object-position: left center; }
.way-footer { grid-template-columns: minmax(176px, 0.4fr) minmax(250px, 1fr) auto; }
.way-footer-logo { display: block; width: 176px; }
.way-footer-logo img { display: block; width: 100%; height: auto; filter: brightness(0) invert(1); }

@media (max-width: 600px) {
  .way-brand img { width: 154px; max-height: 45px; }
  .way-footer { grid-template-columns: 1fr; }
  .way-footer-logo { width: 174px; }
}

/* Link motion: a small path trace and waypoint marker for mouse users. */
.way-link-motion {
  position: relative;
  transition: color 180ms ease, transform 180ms ease, opacity 180ms ease;
}

.way-link-motion::after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 2px;
  background: currentColor;
  content: "";
  opacity: 0.6;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.way-link-motion:hover,
.way-link-motion:focus-visible {
  transform: translateX(3px);
}

.way-link-motion:hover::after,
.way-link-motion:focus-visible::after {
  transform: scaleX(1);
}

.way-link-motion > span[aria-hidden="true"],
.way-link-motion > i[aria-hidden="true"] {
  display: inline-block;
  transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
}

.way-link-motion:hover > span[aria-hidden="true"],
.way-link-motion:hover > i[aria-hidden="true"],
.way-link-motion:focus-visible > span[aria-hidden="true"],
.way-link-motion:focus-visible > i[aria-hidden="true"] {
  transform: translateX(4px);
}

.way-link-motion:active,
.way-link-motion.is-link-pressed {
  transform: translate3d(3px, 1px, 0) scale(0.985);
  transition-duration: 70ms;
}

.way-link-cursor,
.way-link-pulse {
  position: fixed;
  z-index: 9999;
  width: 26px;
  height: 26px;
  border: 1px solid #fffdf8;
  border-radius: 50%;
  mix-blend-mode: difference;
  pointer-events: none;
}

.way-link-cursor {
  top: 0;
  left: 0;
  opacity: 0;
  transform: translate3d(calc(var(--way-cursor-x, -40px) - 50%), calc(var(--way-cursor-y, -40px) - 50%), 0) scale(0.62);
  transition: opacity 140ms ease, transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
}

.way-link-cursor::before {
  position: absolute;
  inset: 7px;
  border-radius: inherit;
  background: #fffdf8;
  content: "";
}

.way-link-cursor.is-visible {
  opacity: 1;
  transform: translate3d(calc(var(--way-cursor-x, -40px) - 50%), calc(var(--way-cursor-y, -40px) - 50%), 0) scale(1);
}

.way-link-cursor.is-pressed {
  animation: way-link-marker-press 360ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.way-link-pulse {
  top: calc(var(--way-pulse-y, -40px) - 13px);
  left: calc(var(--way-pulse-x, -40px) - 13px);
  animation: way-link-pulse 430ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes way-link-marker-press {
  0% { transform: translate3d(calc(var(--way-cursor-x, -40px) - 50%), calc(var(--way-cursor-y, -40px) - 50%), 0) scale(1); }
  45% { transform: translate3d(calc(var(--way-cursor-x, -40px) - 50%), calc(var(--way-cursor-y, -40px) - 50%), 0) scale(0.55); }
  100% { transform: translate3d(calc(var(--way-cursor-x, -40px) - 50%), calc(var(--way-cursor-y, -40px) - 50%), 0) scale(1); }
}

@keyframes way-link-pulse {
  0% { opacity: 0.9; transform: scale(0.55); }
  100% { opacity: 0; transform: scale(2.9); }
}

@media (hover: none), (pointer: coarse) {
  .way-link-motion:hover,
  .way-link-motion:active,
  .way-link-motion.is-link-pressed {
    transform: none;
  }

  .way-link-motion:hover::after { transform: scaleX(0); }

  .way-link-motion:hover > span[aria-hidden="true"],
  .way-link-motion:hover > i[aria-hidden="true"] {
    transform: none;
  }

  .way-link-cursor,
  .way-link-pulse { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .way-link-motion,
  .way-link-motion > span[aria-hidden="true"],
  .way-link-motion > i[aria-hidden="true"] {
    transition: none;
  }

  .way-link-motion:hover,
  .way-link-motion:focus-visible,
  .way-link-motion:active,
  .way-link-motion.is-link-pressed {
    transform: none;
  }

  .way-link-motion::after { display: none; }
  .way-link-cursor,
  .way-link-pulse { display: none; }
}
