/* One motion language. Menus and buttons remain responsive; reading stays calm. */
:root{--iroha-arrival-ease:cubic-bezier(.22,1,.36,1);--iroha-arrival-time:900ms;--iroha-reveal-time:760ms}
@keyframes irohaSoftArrival{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
[data-iroha-public] [data-embedded-page]:not([hidden]),[data-iroha-public] [data-embedded-page]:target{animation:irohaSoftArrival var(--iroha-arrival-time) var(--iroha-arrival-ease) both}
[data-iroha-public] [data-embedded-page] .pagehead{animation:none!important}
[data-iroha-public]:not(.gateway-page) main:not(:has([data-embedded-page])){animation:irohaSoftArrival var(--iroha-arrival-time) var(--iroha-arrival-ease) both}
[data-iroha-public] .js-scroll-reveal .reveal-on-scroll,.js-scroll-reveal [data-iroha-public] .reveal-on-scroll,.studio-motion [data-iroha-motion]{transform:translateY(8px);transition:opacity var(--iroha-reveal-time) var(--iroha-arrival-ease),transform var(--iroha-reveal-time) var(--iroha-arrival-ease)}
.js-scroll-reveal [data-iroha-public] .reveal-on-scroll.is-visible,.studio-motion [data-iroha-motion].is-visible{opacity:1;transform:none}
/* Section-level reveal owns the movement; nested cards and headings stay readable. */
.js-scroll-reveal [data-iroha-public] .reveal-on-scroll .reveal-on-scroll{opacity:1;transform:none;transition:none}
[data-iroha-public] :is(#primary-nav.nav,.studio-header #primary-nav.nav){transition:transform .42s var(--iroha-arrival-ease),opacity .32s ease,visibility .42s ease}
[data-iroha-public] :is(.drawer-backdrop,.studio-drawer-backdrop){transition:opacity .32s ease,visibility .32s ease}
@media(prefers-reduced-motion:reduce){[data-iroha-public] :is(main,[data-embedded-page],.pagehead,.reveal-on-scroll,[data-iroha-motion]){animation:none!important;transition:none!important;opacity:1!important;transform:none!important;translate:none!important}}
