/* Independent translate keeps photo crops, carousels, hover effects and map coordinates intact. */
.page-motion-ready [data-page-reveal] {
  --page-reveal-x: 0px;
  --page-reveal-y: 28px;
  --page-reveal-delay: 0ms;
  opacity: 1;
  translate: 0 0;
}
.page-motion-ready [data-page-state="waiting"] {
  opacity: 0;
  translate: var(--page-reveal-x) var(--page-reveal-y);
}
.page-motion-ready .page-reveal-arriving {
  will-change: opacity, translate;
  transition:
    opacity 0.7s ease var(--page-reveal-delay),
    translate 0.9s cubic-bezier(0.16, 1, 0.3, 1) var(--page-reveal-delay);
}
.page-motion-ready [data-page-reveal="hero-photo"] {
  --page-reveal-y: 10px;
}
.page-motion-ready [data-page-reveal="hero-copy"] {
  --page-reveal-y: 16px;
}
/* Inner-page titles retain their right-to-left heading trail. */
.page-motion-ready main {
  overflow-x: clip;
}
.page-motion-ready [data-page-reveal="heading"] {
  --page-reveal-x: clamp(40px, 6vw, 88px);
  --page-reveal-y: 0px;
  --heading-reveal-duration: 1.15s;
  --heading-trail-rgb: 16 16 16;
}
.page-motion-ready [data-page-reveal="heading"].page-reveal-arriving {
  transition:
    opacity 0.36s ease-out var(--page-reveal-delay),
    translate var(--heading-reveal-duration) cubic-bezier(0.22, 0.61, 0.36, 1) var(--page-reveal-delay);
  animation: heading-afterimage var(--heading-reveal-duration) linear var(--page-reveal-delay) both;
}
/* Home headings fade gently while their marker is drawn from left to right. */
.page-motion-ready [data-page-reveal="home-heading"] {
  --page-reveal-x: 0px;
  --page-reveal-y: 6px;
}
.page-motion-ready [data-page-reveal="home-heading"].page-reveal-arriving {
  transition:
    opacity .6s ease var(--page-reveal-delay),
    translate .8s ease-out var(--page-reveal-delay);
}
.page-motion-ready .page-title-row h1 {
  animation: none;
}
@keyframes heading-afterimage {
  0%, 20% { text-shadow: 18px 0 1px rgb(var(--heading-trail-rgb) / 0.27), 36px 0 2px rgb(var(--heading-trail-rgb) / 0.15); }
  55% { text-shadow: 12px 0 1px rgb(var(--heading-trail-rgb) / 0.20), 26px 0 2px rgb(var(--heading-trail-rgb) / 0.10); }
  90% { text-shadow: 4px 0 1px rgb(var(--heading-trail-rgb) / 0.04), 10px 0 2px rgb(var(--heading-trail-rgb) / 0.016); }
  100% { text-shadow: 0 0 0 transparent, 0 0 0 transparent; }
}
.page-motion-ready [data-page-reveal="card"] {
  --page-reveal-y: 32px;
}
@media screen and (prefers-reduced-motion: no-preference) {
  /* The card's hover transition must not override its ordered arrival. */
  body[data-page="home"].page-motion-ready:not(.motion-paused)
    .home-page-box.page-reveal-arriving:not(:focus-within) {
    transition:
      opacity .7s ease var(--page-reveal-delay),
      translate .9s cubic-bezier(.16, 1, .3, 1) var(--page-reveal-delay),
      transform .28s ease,
      box-shadow .28s ease;
  }
}
.page-motion-ready [data-page-reveal="media"] {
  --page-reveal-x: -16px;
  --page-reveal-y: 20px;
}
.page-motion-ready .greeting--portrait-right > [data-page-reveal="media"] {
  --page-reveal-x: 16px;
}
.page-motion-ready [data-page-reveal="copy"] {
  --page-reveal-x: 12px;
  --page-reveal-y: 24px;
}
/* Complete notices and interactive panels fade as a unit without moving their contents. */
.page-motion-ready [data-page-reveal="panel"] {
  --page-reveal-x: 0px;
  --page-reveal-y: 0px;
}
.page-motion-ready [data-page-reveal]:focus-within {
  opacity: 1;
  translate: none;
  transition: none;
  animation: none;
  text-shadow: none;
}
@media (max-width: 760px) {
  .page-motion-ready [data-page-reveal="media"],
  .page-motion-ready [data-page-reveal="copy"],
  .page-motion-ready .greeting--portrait-right > [data-page-reveal="media"] {
    --page-reveal-x: 0px;
    --page-reveal-y: 20px;
  }
}
.motion-paused.page-motion-ready [data-page-reveal] {
  opacity: 1;
  translate: none;
  transition: none;
  animation: none;
  text-shadow: none;
  will-change: auto;
}
@media (prefers-reduced-motion: reduce), print {
  .page-motion-ready [data-page-reveal],
  .page-motion-ready [data-page-reveal].page-reveal-arriving {
    opacity: 1;
    translate: none;
    transition: none;
    animation: none;
    text-shadow: none;
    will-change: auto;
  }
}
