/* ===========================================================================
   Motion. Everything here fails OPEN: content is hidden for a reveal only
   under `html.js`, which assets/js/main.js sets on its first line — the same
   file that reveals it again. No script, no class, nothing hidden. The
   Elementor editor runs no site script and shows everything regardless.
   =========================================================================== */

.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
html.js .reveal.in{opacity:1;transform:none}
/* phones: a gentler rise, so scrolling never reads as content jumping */
@media (max-width:767px){ html.js .reveal{transform:translateY(12px);transition-duration:.6s} }
body.elementor-editor-active .reveal,
body.elementor-editor-active .reveal.in{opacity:1 !important;transform:none !important}

/* columns side by side arrive one after the other */
html.js .elementor-column.reveal + .elementor-column.reveal{transition-delay:.12s}
html.js .elementor-column.reveal + .elementor-column.reveal + .elementor-column.reveal{transition-delay:.24s}
html.js .elementor-column.reveal + .elementor-column.reveal + .elementor-column.reveal + .elementor-column.reveal{transition-delay:.36s}

@media (prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none}
  html.js body .hero-panel .elementor-widget,html.js body .hero-panel .panel-card :is(.pcard,.gauge-panel),html.js body .elementor .hero-stack .hero-panel > .elementor-widget-wrap::after{animation:none}
}
