/* EntroVerse native behaviour styles. Everything is VISIBLE by default: the hidden start
   state applies only once boot.js has marked the page with .js, so a visitor or crawler without JavaScript
   reads every word. site.js adds .is-in as each element enters view (or at its data-at time). */

html.js [data-reveal] { opacity: 0; transition: opacity .6s ease, transform .6s ease; }
html.js [data-reveal="up"] { transform: translateY(20px); }
html.js [data-reveal="up-sm"] { transform: translateY(10px); }
html.js [data-reveal="left"] { transform: translateX(-20px); }
html.js [data-reveal="zoom"] { transform: scale(.95); }
html.js [data-reveal="scale-x"] { opacity: 1; transform: scaleX(0); transform-origin: left center; }
/* "move": each element keeps its OWN starting offset from the old site (translateY(24px), scale(0.92), ...) */
html.js [data-reveal="move"] { transform: var(--from); }
html.js [data-reveal].is-in { opacity: 1; transform: none; }

[data-rotate] { transition: opacity .4s ease, transform .4s ease; }
[data-rotate].is-out { opacity: 0 !important; transform: translateY(-10px) !important; }

@media (prefers-reduced-motion: reduce) {
  html.js [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  [data-rotate] { transition: none; }
}

[hidden] { display: none !important; }
body.menu-open { overflow: hidden; }
