/* Scroll-paced typography. Each topic has its own entrance and reading rhythm. */
html { scroll-behavior: auto; }
.reading-progress { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; pointer-events: none; }
.reading-progress > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--wine), var(--rose), var(--gold));
  transform: scaleX(var(--page-progress, 0));
  transform-origin: left;
}
.site-nav > a:not(.button) { transition: color 350ms ease; }
.site-nav > a:not(.button)::after { transition-duration: 500ms; }
.text-visual { display: inline; }
.text-reveal .reveal-word { position: relative; perspective: 700px; }
.text-reveal .reveal-letter {
  display: inline-block;
  opacity: 1;
  transform-origin: 50% 85%;
  animation: none !important;
  transition: none !important;
  backface-visibility: hidden;
}
.text-reveal[data-text-effect="rise"] .reveal-word,
.text-reveal[data-text-effect="curtain"] .reveal-word {
  overflow: clip;
  padding-block: .12em;
  margin-block: -.12em;
}
.text-reveal[data-animation-state="running"] .reveal-letter { will-change: transform, opacity; }
.reveal-enabled { transition-duration: 1100ms; }
.reveal-enabled.is-visible { transition-delay: 150ms; }
.motion-toggle { padding: 8px 0; border: 0; color: inherit; background: none; font: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.motion-toggle[hidden] { display: none; }
html[data-motion="full"] .reveal-enabled { transition-duration: 1100ms !important; }
@media (max-width: 540px) { .footer-bottom { flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) {
  html:not([data-motion="full"]) .text-reveal .reveal-letter {
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
  }
}
html[data-motion="reduced"] .text-reveal .reveal-letter { transform: none !important; filter: none !important; clip-path: none !important; }
