/* Pre-animation states exist only when JS runs and motion is allowed (.fx). Content is never hidden otherwise. */
.fx .memo:not(.is-in) { transform: translateY(24px); }
.fx .sheet[data-feed]:not(.is-in) { opacity: 0; transform: translateY(24px); }
.fx [data-blk]:not(.is-in) { opacity: 0; transform: translateY(8px); }
.fx .stamp[data-slam] { opacity: 0; }
.fx [data-hero]:not(.is-typed), .fx [data-type]:not(.is-typed) { color: rgb(29 28 26 / .6); }
.caret.is-idle { animation: caret-blink 1s steps(1) 3 both; }
@keyframes caret-blink { 0%, 100% { opacity: .85; } 50% { opacity: 0; } }
.js .panels.is-instant .panel { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  .caret { display: none; }
  .js .panel:not([data-active]) { transform: none; transition: opacity 150ms ease, visibility 0s 150ms; }
  .js .panel[data-active] { transform: none; transition: opacity 150ms ease, visibility 0s; }
  .sticky-slip { transition: opacity 150ms ease !important; transform: none !important; }
  .js .sticky-slip { opacity: 0; }
  .js.buy-on .sticky-slip { opacity: 1; }
  .route li.passed .init { animation: none; }
  .route a { transition: opacity 150ms ease, background-color 150ms ease !important; }
  .top-copy.is-settling, .top-copy.is-snap { transition: opacity 200ms ease; }
  .page, .page.is-leaving { transition: none; }
}
