@media (prefers-reduced-motion: no-preference) {
  body::before {
    position: fixed;
    z-index: 0;
    inset: -18vh -12vw;
    background:
      radial-gradient(circle at 18% 18%, rgba(238, 213, 155, 0.09), transparent 24%),
      radial-gradient(circle at 82% 48%, rgba(179, 126, 66, 0.07), transparent 30%),
      radial-gradient(circle at 50% 94%, rgba(238, 213, 155, 0.05), transparent 24%);
    content: "";
    pointer-events: none;
    transform: translate3d(0, var(--ambient-shift, 0), 0);
    transition: transform 180ms linear;
  }

  main {
    position: relative;
    z-index: 1;
  }

  [data-reveal] {
    opacity: 0.18;
    filter: blur(0.65rem);
    transform: translate3d(0, 3.5rem, 0);
    transition:
      opacity 1300ms cubic-bezier(0.2, 0.7, 0.2, 1),
      filter 1500ms ease,
      transform 1500ms cubic-bezier(0.2, 0.7, 0.2, 1);
  }

  [data-reveal].is-present {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }

  .presence::before,
  .presence::after {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    content: "";
    pointer-events: none;
  }

  .presence::before {
    top: 5%;
    left: -8%;
    width: min(68vw, 61rem);
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(238, 213, 155, 0.18), rgba(179, 126, 66, 0.055) 36%, transparent 68%);
    filter: blur(2.5rem);
    opacity: 0.28;
    animation: sacred-breath 8s ease-in-out infinite;
  }

  .presence::after {
    top: 12%;
    left: 7%;
    width: min(45vw, 38rem);
    aspect-ratio: 1;
    border: 1px solid rgba(238, 213, 155, 0.11);
    box-shadow:
      0 0 8rem rgba(238, 213, 155, 0.07),
      inset 0 0 6rem rgba(238, 213, 155, 0.04);
    opacity: 0.42;
    animation: halo-breathe 10s ease-in-out infinite;
  }

  .presence__image {
    transform: translate3d(0, var(--scene-shift, 0), 0) scale(var(--scene-scale, 1));
    transform-origin: 50% 55%;
    will-change: transform;
  }

  .presence__image img {
    filter: drop-shadow(0 1.5rem 4.5rem rgba(201, 168, 106, 0.12));
    animation: image-breathe 9s ease-in-out infinite;
  }

  .motion-ready .presence__copy > * {
    opacity: 0;
    transform: translate3d(0, 1.4rem, 0);
    transition:
      opacity 1000ms ease,
      transform 1200ms cubic-bezier(0.2, 0.7, 0.2, 1);
  }

  .presence.is-present .presence__copy > * {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .presence.is-present .seal-word { transition-delay: 180ms; }
  .presence.is-present h1 { transition-delay: 330ms; }
  .presence.is-present .presence__continuity { transition-delay: 510ms; }
  .presence.is-present .descent { transition-delay: 680ms; }

  .descent {
    transition: color 400ms ease, border-color 400ms ease, text-shadow 400ms ease;
  }

  .descent:hover,
  .descent:focus-visible {
    border-color: var(--gold-bright);
    color: var(--ivory);
    text-shadow: 0 0 1.8rem rgba(238, 213, 155, 0.44);
  }

  .motion-ready .architecture__fields,
  .motion-ready .difference blockquote {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 1300ms cubic-bezier(0.2, 0.7, 0.2, 1) 260ms;
  }

  .architecture.is-present .architecture__fields,
  .difference.is-present blockquote {
    clip-path: inset(0 0 0 0);
  }

  .loop__presence,
  .alignment__presence,
  .encounter__portrait {
    transform: translate3d(0, var(--scene-shift, 0), 0) scale(var(--scene-scale, 1));
    transform-origin: center;
    will-change: transform;
  }

  .loop__presence::before,
  .loop__presence::after {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(238, 213, 155, 0.26);
    border-radius: 50%;
    content: "";
    inset: 8%;
    opacity: var(--scene-depth, 0);
    pointer-events: none;
    transition: opacity 300ms linear;
  }

  .loop__presence::before {
    box-shadow:
      0 0 8rem rgba(201, 168, 106, 0.18),
      inset 0 0 5rem rgba(201, 168, 106, 0.08);
    animation: halo-breathe 9s ease-in-out infinite;
  }

  .loop__presence::after {
    inset: 20%;
    border-color: rgba(238, 213, 155, 0.13);
    animation: halo-breathe 9s ease-in-out 1.8s infinite reverse;
  }

  .loop__presence img {
    transition: opacity 1700ms ease, filter 1700ms ease;
  }

  .loop.is-present .loop__presence img {
    opacity: 1;
    filter: none;
  }

  .motion-ready .loop-movement,
  .motion-ready .capability {
    opacity: 0;
    transform: translate3d(2.4rem, 0, 0);
    transition:
      opacity 850ms ease,
      transform 1100ms cubic-bezier(0.2, 0.7, 0.2, 1),
      border-color 1000ms ease;
  }

  .loop.is-present .loop-movement,
  .capabilities.is-present .capability {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .loop.is-present .loop-movement:nth-child(1),
  .capabilities.is-present .capability:nth-child(1) { transition-delay: 140ms; }
  .loop.is-present .loop-movement:nth-child(2),
  .capabilities.is-present .capability:nth-child(2) { transition-delay: 230ms; }
  .loop.is-present .loop-movement:nth-child(3),
  .capabilities.is-present .capability:nth-child(3) { transition-delay: 320ms; }
  .loop.is-present .loop-movement:nth-child(4),
  .capabilities.is-present .capability:nth-child(4) { transition-delay: 410ms; }
  .loop.is-present .loop-movement:nth-child(5),
  .capabilities.is-present .capability:nth-child(5) { transition-delay: 500ms; }
  .loop.is-present .loop-movement:nth-child(6),
  .capabilities.is-present .capability:nth-child(6) { transition-delay: 590ms; }
  .loop.is-present .loop-movement:nth-child(7),
  .capabilities.is-present .capability:nth-child(7) { transition-delay: 680ms; }
  .loop.is-present .loop-movement:nth-child(8) { transition-delay: 770ms; }

  .encounter__portrait img {
    filter: none;
    transition: filter 1800ms ease, opacity 1800ms ease;
  }

  .encounter.is-present .encounter__portrait img {
    filter: none;
  }

  .telephone {
    transition: color 400ms ease, border-color 400ms ease, text-shadow 400ms ease;
  }

  .telephone:hover,
  .telephone:focus-visible {
    border-color: var(--gold-bright);
    color: var(--ivory);
    text-shadow: 0 0 2.5rem rgba(238, 213, 155, 0.42);
  }

  .prayer::before {
    position: absolute;
    z-index: -1;
    width: min(70vw, 54rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(238, 213, 155, 0.12), rgba(179, 126, 66, 0.035) 40%, transparent 70%);
    content: "";
    filter: blur(2rem);
    opacity: var(--scene-depth, 0);
    pointer-events: none;
  }

  .prayer__presence {
    opacity: 1;
    transition: opacity 1800ms ease, filter 1800ms ease;
  }

  .prayer.is-present .prayer__presence {
    opacity: 1;
    filter: none;
  }

  .motion-ready .prayer__text span {
    opacity: 0;
    transform: translate3d(0, 0.8rem, 0);
    transition: opacity 900ms ease, transform 1000ms ease;
  }

  .prayer.is-present .prayer__text span {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .prayer.is-present .prayer__text span:nth-child(1) { transition-delay: 180ms; }
  .prayer.is-present .prayer__text span:nth-child(2) { transition-delay: 260ms; }
  .prayer.is-present .prayer__text span:nth-child(3) { transition-delay: 340ms; }
  .prayer.is-present .prayer__text span:nth-child(4) { transition-delay: 420ms; }
  .prayer.is-present .prayer__text span:nth-child(5) { transition-delay: 500ms; }
  .prayer.is-present .prayer__text span:nth-child(6) { transition-delay: 580ms; }
  .prayer.is-present .prayer__text span:nth-child(7) { transition-delay: 660ms; }
  .prayer.is-present .prayer__text span:nth-child(8) { transition-delay: 740ms; }
  .prayer.is-present .prayer__text span:nth-child(9) { transition-delay: 820ms; }
  .prayer.is-present .prayer__text span:nth-child(10) { transition-delay: 900ms; }
  .prayer.is-present .prayer__text span:nth-child(11) { transition-delay: 980ms; }
  .prayer.is-present .prayer__text span:nth-child(12) { transition-delay: 1060ms; }

  .sojourner-seal {
    animation: seal-pulse 7s ease-in-out infinite;
  }

  @keyframes sacred-breath {
    0%, 100% { opacity: 0.22; transform: scale(0.96); }
    50% { opacity: 0.43; transform: scale(1.06); }
  }

  @keyframes halo-breathe {
    0%, 100% { opacity: 0.24; transform: scale(0.95); }
    50% { opacity: 0.62; transform: scale(1.05); }
  }

  @keyframes image-breathe {
    0%, 100% { filter: drop-shadow(0 1.5rem 4.5rem rgba(201, 168, 106, 0.1)); }
    50% { filter: drop-shadow(0 1.5rem 6.5rem rgba(238, 213, 155, 0.2)); }
  }

  @keyframes seal-pulse {
    0%, 100% { box-shadow: 0 0 0 rgba(238, 213, 155, 0); }
    50% { box-shadow: 0 0 2.8rem rgba(238, 213, 155, 0.2); }
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-reveal],
  .presence__copy > *,
  .loop-movement,
  .capability,
  .prayer__text span {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }

  .architecture__fields,
  .difference blockquote {
    clip-path: none !important;
  }
}
