/* ============================================================================
   sove-motion.css — resting states for sove-motion.js.
   Deliberately contains ZERO base-element selectors (no body / a / h1 / p),
   so it is safe to load on top of ANY existing site CSS without touching its
   theme. Load this (not sove-design.css) on sites that already have their own
   look and only want the motion presets — e.g. signals.

   Load order:  <link rel="stylesheet" href="/sove-motion.css">  in <head>,
                <script src="/sove-motion.js" defer></script>     before </body>.

   (Sites adopting the full visual system load sove-design.css, which already
   carries these same resting states — they do not also need this file.)
   ========================================================================== */

/* Reveal targets start hidden ONLY once JS has confirmed it's running
   (html.js-motion is added by sove-motion.js). If JS never runs, nothing is
   hidden — the page stays fully visible. */
html.js-motion [data-sove-reveal] { opacity: 0; transform: translateY(12px); }
html.js-motion [data-sove-reveal].sove-in { opacity: 1; transform: none; }

/* Press targets shouldn't fire the 300ms tap delay / double-tap zoom. */
[data-sove-press] { touch-action: manipulation; }

/* Sheet/overlay targets are hidden via [hidden]; sove-motion.js toggles it. */
[data-sove-sheet][hidden] { display: none !important; }

/* Honour reduced-motion: show reveal targets instantly, no transform. */
@media (prefers-reduced-motion: reduce) {
  html.js-motion [data-sove-reveal] { opacity: 1; transform: none; }
}
