/* Stacking all words reserves the largest word's width and height at every size. */
[data-hero-word] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  isolation: isolate;
}
[data-hero-word] > span {
  grid-area: 1 / 1;
  min-width: 0;
  max-width: 100%;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition: opacity 350ms ease, transform 500ms cubic-bezier(.16, 1, .3, 1), visibility 500ms;
}
[data-hero-word]:not([data-hero-ready]) > span:first-child,
[data-hero-word][data-hero-ready] > span[data-hero-active="true"] {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
[data-hero-word] > span[data-hero-active="false"][data-hero-passed="true"] {
  transform: translateY(-16px);
}
[data-hero-word][data-motion-static] > span {
  transition: none;
}
[data-hero-photo] {
  grid-area: 1 / 1;
  min-width: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 500ms cubic-bezier(.16, 1, .3, 1), visibility 500ms;
}
[data-hero-photo].is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
[data-hero-photo][data-motion-static] { transition: none; }

/* No attribute is present until the observer is ready; default content is visible. */
[data-reveal][data-reveal-pending] {
  opacity: 0;
  transform: translateY(16px);
}
[data-reveal][data-reveal-running] {
  animation: energy-section-reveal 500ms cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes energy-section-reveal {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  [data-hero-word] > span { transition: none; }
  [data-hero-photo] { transition: none; }
  [data-reveal][data-reveal-pending],
  [data-reveal][data-reveal-running] {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
