/* Motion layer pre-hides — NOTHING but .has-anim-gated initial states (skills/gsap-motion.md).
 * Every selector here has a matching reveal in assets/js/animations.js; run `node scripts/check-anim-parity.js`
 * after every edit to either file. ?reveal=off and prefers-reduced-motion never set .has-anim, so the static page
 * is untouched. Only opacity/transform are used — no layout property, no CLS. */

/* --- carolina-smb-coming-soon (13:3) — Figma intro, plays once on load (above the fold) ---
   The symbol is pre-hidden whole; animations.js parks it at 4.2x in the middle of the screen, sets its 6 parts to their
   FROM states, and only then shows it. The backdrop (13:4) fades in over the page's own surface; the vignette never moves. */
.has-anim .coming-soon-hero .brand-lockup .symbol,
.has-anim .coming-soon-backdrop,
.has-anim .coming-soon-hero .brand-group .cnm-icon,
.has-anim .coming-soon-hero .brand-text,
.has-anim .coming-soon-hero h1,
.has-anim .coming-soon-hero .description,
.has-anim .coming-soon-hero .email-capture,
.has-anim .coming-soon-hero .brand-logo,
.has-anim .coming-soon-hero .social-links {
  opacity: 0;
}

/* --- Global content cascade -----------------------------------------------
 * MIRRORED IN animations.js AS TEXT_REVEAL + MEDIA_REVEAL — keep in lockstep.
 * Scroll-driven entrances shared by future pages go right below this comment; it stays the LAST block of the file.
 * Empty on this theme so far: the only page is a single above-the-fold hero.
 * ------------------------------------------------------------------------- */
