/* Visible by default: entrances never require a persistent hidden state. */
body.hatwell-site:not(.hatwell-homepage) .hw-scroll-enter {
  animation: var(--hw-scroll-animation, hw-subpage-enter) 720ms cubic-bezier(.22, .61, .36, 1) var(--hw-scroll-delay, 0ms) 1 backwards;
}

.hw-scroll-interactive { --hw-scroll-animation: hw-subpage-fade; }

@keyframes hw-subpage-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes hw-subpage-enter {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Focused controls must remain immediately readable and operable. */
body.hatwell-site:not(.hatwell-homepage) .hw-scroll-enter:focus-within {
  animation: none;
}

@media (max-width: 849px) {
  body.hatwell-site:not(.hatwell-homepage) .hw-scroll-enter { animation-duration: 600ms; }
}

@media (prefers-reduced-motion: reduce), print {
  body.hatwell-site:not(.hatwell-homepage) .hw-scroll-enter { animation: none; }
}
