/* Full-screen photographic story. The unenhanced page stays in ordinary flow. */
.grt-home-motion { scroll-padding-top: var(--grt-header-height, 68px); }
.grt-motion-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: var(--tint);
  color: var(--muted);
}
.grt-motion-toggle[hidden] { display: none; }
.grt-motion-toggle svg { width: 18px; height: 18px; stroke-width: 1.7; }
.grt-motion-toggle:hover { color: var(--blue); }
.grt-home-motion .home-header nav > a[aria-current="location"] { color: var(--blue); }

.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-runway { position: relative; }
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage {
  position: sticky;
  top: var(--grt-header-height, 68px);
  height: var(--grt-stage-height, calc(100svh - 68px));
  width: 100%;
  z-index: 1;
}
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-runway.is-pinned::after {
  content: "";
  display: block;
  height: var(--grt-story-distance, 0px);
}
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage .welcome-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  overflow: hidden;
  animation: none;
}
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage picture { display: block; width: 100%; height: 100%; }
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage .welcome-photo img {
  position: absolute;
  inset: 0 auto auto 0;
  width: var(--grt-image-width, 1536px);
  height: var(--grt-image-height, 1024px);
  max-width: none;
  min-height: 0;
  border-radius: 0;
  object-fit: fill;
  transform-origin: 0 0;
  transition: none;
}
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage .welcome-photo figcaption {
  position: absolute;
  inset: auto var(--grt-caption-right, 14px) var(--grt-caption-bottom, 14px) auto;
  z-index: 2;
  max-width: var(--grt-caption-width, calc(100% - 28px));
  padding: 6px 9px;
  border-radius: 5px;
  background: #fff;
  color: #49494c;
  font-size: 11px;
  line-height: 1.4;
  text-align: left;
  pointer-events: none;
}
@media (min-width: 621px) {
  .grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural):not(.grt-intro-flow) .welcome-intro {
    position: absolute;
    left: 8%;
    top: calc(var(--grt-stage-height, 800px) * .15);
    z-index: 2;
    width: 40%;
    max-width: 520px;
    padding: 0;
    margin: 0;
  }
}
.grt-home-motion .welcome-copy { transform-origin: left center; transition: none; }
.grt-home-motion .grt-scrub-active { will-change: transform; }
.grt-home-motion .welcome-photo.grt-scrub-active { will-change: clip-path; }
.grt-home-motion [data-photo-scene] .photo-window { overflow: hidden; }
.grt-home-motion [data-photo-scene] img { transform-origin: center; transition: none; }
.grt-home-motion.grt-motion-paused { scroll-behavior: auto; }
.grt-home-motion.grt-motion-paused .button,
.grt-home-motion.grt-motion-paused .text-link,
.grt-home-motion.grt-motion-paused .text-link svg,
.grt-home-motion.grt-motion-paused .service-links h3,
.grt-home-motion.grt-motion-paused .service-links > a > svg,
.grt-home-motion.grt-motion-paused .home-header nav > a { transition: none; }
.grt-home-motion.grt-motion-paused .text-link:hover svg,
.grt-home-motion.grt-motion-paused .service-links > a:hover > svg { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .grt-home-motion { scroll-behavior: auto; }
  .grt-home-motion .grt-scrub-active { will-change: auto; }
}


/* A second authored chapter: full sanctuary photograph resolves into a weekly rhythm. */
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage .welcome-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgb(0 0 0 / var(--grt-welcome-scrim, 0));
  pointer-events: none;
}
.grt-home-motion:not(.grt-motion-reduced):not(.grt-story-natural) .welcome-stage .welcome-message {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  padding: 40px 7%;
  color: #fff;
  text-align: center;
  pointer-events: none;
}
.grt-home-motion .welcome-message p {
  max-width: 14ch;
  font-size: clamp(48px, 7.2vw, 96px);
  font-weight: 750;
  line-height: 1.02;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.grt-home-motion .gather-section.grt-worship-story { padding: 0; background: #fff; }
.grt-home-motion .worship-runway.is-pinned { position: relative; }
.grt-home-motion .worship-runway.is-pinned::after {
  content: "";
  display: block;
  height: var(--grt-worship-distance, 0px);
}
.grt-home-motion .worship-runway.is-pinned .worship-stage {
  position: sticky;
  top: var(--grt-header-height, 68px);
  width: 100%;
  height: var(--grt-stage-height, calc(100svh - 68px));
  overflow: hidden;
  isolation: isolate;
  background: #fff;
}
.grt-home-motion .worship-runway.is-pinned .sanctuary-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
}
.grt-home-motion .worship-runway.is-pinned .sanctuary-photo .photo-window {
  position: absolute;
  inset: 0;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border-radius: 0;
}
.grt-home-motion .worship-runway.is-pinned .sanctuary-photo .photo-window::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgb(0 0 0 / var(--grt-worship-scrim, .6));
  pointer-events: none;
}
.grt-home-motion .worship-runway.is-pinned .sanctuary-photo img {
  position: absolute;
  inset: 0 auto auto 0;
  width: var(--grt-worship-image-width, 1536px);
  height: var(--grt-worship-image-height, 1024px);
  max-width: none;
  object-fit: fill;
  transform-origin: 0 0;
  transition: none;
}
.grt-home-motion .worship-runway.is-pinned .sanctuary-photo figcaption {
  position: absolute;
  right: var(--grt-worship-caption-right, 14px);
  bottom: var(--grt-worship-caption-bottom, 14px);
  z-index: 2;
  max-width: min(45%, 400px);
  padding: 6px 9px;
  border-radius: 5px;
  background: #fff;
  color: #49494c;
  font-size: 11px;
  line-height: 1.4;
  text-align: left;
  pointer-events: none;
}
.grt-home-motion .worship-runway.is-pinned .gather-copy {
  position: absolute;
  top: 0;
  left: max(6%, calc((100% - 1200px) / 2));
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: min(86%, 1000px);
  height: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: #fff;
  text-align: left;
  pointer-events: none;
}
.grt-home-motion .worship-runway.is-pinned .gather-copy h2 {
  max-width: 16ch;
  font-size: clamp(48px, 6.6vw, 94px);
  line-height: 1.02;
}
.grt-home-motion .worship-runway.is-pinned .gather-copy h2 span { color: #fff; }
.grt-home-motion .worship-runway.is-pinned .gather-copy > p {
  max-width: 36ch;
  margin: 26px 0 22px;
  color: #fff;
  font-size: clamp(18px, 1.7vw, 23px);
  line-height: 1.45;
}
.grt-home-motion .worship-runway.is-pinned .gather-copy > .text-link {
  flex: none;
  min-height: 44px;
  padding: 10px 17px;
  border-radius: 24px;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.4;
  pointer-events: auto;
}
.grt-home-motion .worship-runway.is-pinned .gather-copy > .text-link:hover { color: var(--blue); }
.grt-home-motion .worship-runway.is-pinned .service-schedule {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: var(--grt-worship-panel-width, 45%);
  height: var(--grt-worship-panel-height, 100%);
  max-width: none;
  margin: 0;
  padding: clamp(28px, 4vw, 64px);
  background: #fff;
  color: var(--ink);
  text-align: left;
}
.grt-home-motion .worship-runway.is-pinned .schedule-title {
  margin: 0 0 26px;
  font-size: clamp(32px, 3.4vw, 50px);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.03em;
}
.grt-home-motion .worship-runway.is-pinned .service-schedule dl { display: block; margin: 0; }
.grt-home-motion .worship-runway.is-pinned .service-schedule dl > div {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.grt-home-motion .worship-runway.is-pinned .service-schedule dl > div:first-child { padding-top: 0; }
.grt-home-motion .worship-runway.is-pinned .service-schedule dt { max-width: 12ch; font-size: 19px; line-height: 1.25; }
.grt-home-motion .worship-runway.is-pinned .service-schedule dd { margin: 0; text-align: right; font-size: 13px; white-space: nowrap; }
.grt-home-motion .worship-runway.is-pinned .service-schedule dd strong { margin-top: 2px; font-size: 27px; line-height: 1.2; }
.grt-home-motion .worship-runway.is-pinned .schedule-note { margin-top: 22px; font-size: 12px; line-height: 1.5; }
.grt-home-motion .worship-runway.is-pinned .service-schedule > *,
.grt-home-motion .worship-runway.is-pinned .gather-copy > * { flex-shrink: 0; }
@media (max-width: 960px), (orientation: portrait) {
  .grt-home-motion .worship-runway.is-pinned .gather-copy { left: 7%; width: 86%; }
  .grt-home-motion .worship-runway.is-pinned .gather-copy h2 { font-size: clamp(44px, 7.5vw, 76px); }
  .grt-home-motion .worship-runway.is-pinned .service-schedule { padding: 24px 7%; }
  .grt-home-motion .worship-runway.is-pinned .schedule-title { margin-bottom: 22px; font-size: clamp(32px, 4.6vw, 46px); }
  .grt-home-motion .worship-runway.is-pinned .service-schedule dl > div { padding: 16px 0; }
}
@media (max-width: 620px) {
  .grt-home-motion .welcome-message p { font-size: clamp(42px, 11.5vw, 66px); }
  .grt-home-motion .worship-runway.is-pinned .gather-copy { left: 24px; width: calc(100% - 48px); }
  .grt-home-motion .worship-runway.is-pinned .gather-copy h2 { font-size: clamp(40px, 11vw, 62px); }
  .grt-home-motion .worship-runway.is-pinned .gather-copy > p { max-width: 31ch; margin: 22px 0; font-size: 18px; }
  .grt-home-motion .worship-runway.is-pinned .sanctuary-photo figcaption { max-width: calc(100% - 28px); font-size: 11px; }
  .grt-home-motion .worship-runway.is-pinned .service-schedule { padding: 22px 24px; }
  .grt-home-motion .worship-runway.is-pinned .schedule-title { margin-bottom: 21px; font-size: 34px; }
  .grt-home-motion .worship-runway.is-pinned .service-schedule dl > div { gap: 14px; padding: 14px 0; }
  .grt-home-motion .worship-runway.is-pinned .service-schedule dt { font-size: 17px; }
  .grt-home-motion .worship-runway.is-pinned .service-schedule dd { font-size: 12px; }
  .grt-home-motion .worship-runway.is-pinned .service-schedule dd strong { font-size: 24px; }
  .grt-home-motion .worship-runway.is-pinned .schedule-note { margin-top: 18px; font-size: 12px; }
}

/* Native-flow chapters continue the photographic story without adding scroll runways. */
.home-gallery-heading h2 > .home-motion-word { display: inline-block; transform-origin: left bottom; }
.home-gallery-heading h2 > .home-motion-word:not(:last-child) { color: var(--ink); }
.grt-home-motion .home-gallery,
.grt-home-motion .updates-section,
.grt-home-motion .visit-section,
.grt-home-motion .church-services { overflow: clip; }
.grt-home-motion .home-gallery-moment { transform-origin: center top; }
.grt-home-motion .updates-columns > section { transform-origin: center top; }
.grt-home-motion .exterior-photo { transform-origin: left center; }
.grt-home-motion .service-links > a { position: relative; border-bottom-color: transparent; }
.grt-home-motion .service-links > a::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 1px;
  background: #d4d4da;
  transform: scaleX(var(--grt-connection-progress, 1));
  transform-origin: left center;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .grt-home-motion .service-links > a::after { transform: none; }
}

/* Keep whole words together while each letter follows the scroll position. */
#updates-title .home-letter-word { white-space: nowrap; }
#updates-title [data-motion-letter] { display: inline-block; transform-origin: center bottom; }


/* A quiet final invitation that appears as it enters the viewport. */
.home-farewell { padding: clamp(80px, 9vw, 136px) 0; background: #fff; text-align: center; overflow: clip; }
.home-farewell h2 { margin: 0 auto; max-width: 14ch; color: var(--ink); font-size: clamp(44px, 6.3vw, 88px); font-weight: 750; line-height: 1.08; letter-spacing: -.03em; }
.home-farewell .home-farewell-line { display: block; transform-origin: center bottom; }
.home-farewell .home-farewell-line:last-child { color: var(--blue); }

.home-farewell-line:first-child { --farewell-x: -12px; }
.home-farewell-line:last-child { --farewell-x: 12px; }
.grt-home-motion .home-farewell[data-closing-state="waiting"] .home-farewell-line { opacity: 0; transform: translate3d(var(--farewell-x), 24px, 0) scale(.985); clip-path: inset(0 0 8% 0); transition: none; }
.grt-home-motion .home-farewell[data-closing-state="shown"] .home-farewell-line { opacity: 1; transform: none; clip-path: inset(0); transition: opacity 700ms cubic-bezier(.16, 1, .3, 1), transform 900ms cubic-bezier(.16, 1, .3, 1), clip-path 900ms cubic-bezier(.16, 1, .3, 1); }
.grt-home-motion .home-farewell[data-closing-state="shown"] .home-farewell-line:last-child { transition-delay: 120ms; }
.grt-home-motion .home-farewell[data-closing-state="leaving"] .home-farewell-line { opacity: 0; transform: translate3d(var(--farewell-x), 14px, 0) scale(.99); clip-path: inset(0 0 4% 0); transition: opacity 320ms ease-out, transform 320ms ease-out, clip-path 320ms ease-out; }
.grt-home-motion .home-farewell[data-closing-state="still"] .home-farewell-line { opacity: 1; transform: none; clip-path: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
 .grt-home-motion .home-farewell .home-farewell-line { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
