/* Layered entrances: surfaces first, copy follows with a visible beat. */
html.entrance-prep :is(
  .site-header,
  .hero,
  .service-card,
  .selfcheck-card,
  .privacy-panel,
  .audience-intro,
  .audience-card,
  .workflow-paper,
  .testimonials-section,
  .testimonials-card,
  .proof-track,
  .closing,
  .featured-post,
  .post-card
),
html.entrance-prep :is(
  .section-heading,
  .privacy-eyebrow,
  .privacy-heading,
  .privacy-note,
  .workflow-heading,
  .workflow-footer,
  .testimonials-heading,
  .testimonials-instruction,
  .proof-heading,
  .proof-preview-label,
  .proof-bar-label,
  .proof-caption,
  .closing-copy,
  .site-footer
) {
  opacity: 0;
}

html.entrance-ready .entrance-surface,
html.entrance-ready .entrance-copy,
html.entrance-ready .entrance-copy-block {
  opacity: 0;
}

html.entrance-ready .entrance-surface.is-entered {
  opacity: 1;
  animation: dialogguru-surface-in 300ms cubic-bezier(.2, .7, .3, 1) both;
}

html.entrance-ready :is(.entrance-copy, .entrance-copy-block).is-entered {
  opacity: 1;
  animation: dialogguru-copy-in 350ms cubic-bezier(.2, .7, .3, 1) var(--entrance-copy-delay, 200ms) both;
}

@keyframes dialogguru-surface-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes dialogguru-copy-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html.entrance-prep :is(
    .site-header,
    .hero,
    .service-card,
    .selfcheck-card,
    .privacy-panel,
    .audience-intro,
    .audience-card,
    .workflow-paper,
    .testimonials-section,
    .testimonials-card,
    .proof-track,
    .closing,
    .featured-post,
    .post-card,
    .section-heading,
    .privacy-eyebrow,
    .privacy-heading,
    .privacy-note,
    .workflow-heading,
    .workflow-footer,
    .testimonials-heading,
    .testimonials-instruction,
    .proof-heading,
    .proof-preview-label,
    .proof-bar-label,
    .proof-caption,
    .closing-copy,
    .site-footer
  ),
  html.entrance-ready :is(.entrance-surface, .entrance-copy, .entrance-copy-block) {
    opacity: 1 !important;
    animation: none !important;
  }
}
