/* A one-time marketing entrance. Unobserved content is always visible. */
@keyframes copy-reveal-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
  :root:not([data-input="keyboard"]) .copy-reveal-active {
    animation: copy-reveal-in 300ms var(--ease-out) var(--copy-reveal-delay, 0ms) both;
  }
}

/* Focus never waits for a reveal, including before JS handles the event. */
.copy-reveal-active:focus-within,
:root[data-input="keyboard"] .copy-reveal-active {
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .copy-reveal-active { animation: none !important; }
}
