/* Native scroll with brief enhanced staging; content is visible without JS.
   Release the initial otter-arrive opacity so scroll-driven fading can take over. */
body.research-ui.research-discovery-ready .research-hero-copy { animation-fill-mode:backwards; translate:0 var(--discovery-copy-y,0px); scale:var(--discovery-copy-scale,1); opacity:var(--discovery-copy-opacity,1); transform-origin:50% 35%; }
body.research-ui.research-discovery-ready .research-hero > [data-inference-lab] { translate:0 var(--discovery-studio-y,0px); scale:var(--discovery-studio-scale,1); opacity:var(--discovery-studio-opacity,1); transform-origin:50% 35%; }
/* This class exists only during a continuous WAAPI entrance. The full library
   shell never becomes a transformed containing block for its mobile drawer. */
/* Added only after IO + animation support is confirmed; every exit path
   removes this staging class. Focus restores content before it can be used. */
body.research-ui.research-discovery-ready .is-discovery-pending { opacity:0; pointer-events:none; }
.is-discovery-entering { will-change:translate,opacity; }
/* Keep the same resting position when an entrance finishes under the pointer.
   The existing border and shadow still provide hover feedback. */
body.research-ui.research-discovery-ready .feed-grid .feed-card:hover { translate:0 0; }
/* Search and studio controls stay steady while someone uses the keyboard. */
body.research-ui.research-discovery-ready .research-hero-copy:focus-within,
body.research-ui.research-discovery-ready .research-hero > [data-inference-lab]:focus-within { translate:0 0; scale:1; opacity:1; }
@supports selector(:has(:focus-visible)) {
  body.research-ui.research-discovery-ready .research-hero-copy:focus-within { translate:0 var(--discovery-copy-y,0px); scale:var(--discovery-copy-scale,1); opacity:var(--discovery-copy-opacity,1); }
  body.research-ui.research-discovery-ready .research-hero > [data-inference-lab]:focus-within { translate:0 var(--discovery-studio-y,0px); scale:var(--discovery-studio-scale,1); opacity:var(--discovery-studio-opacity,1); }
  body.research-ui.research-discovery-ready .research-hero-copy:has(:focus-visible),
  body.research-ui.research-discovery-ready .research-hero > [data-inference-lab]:has(:focus-visible) { translate:0 0; scale:1; opacity:1; }
}
@media(prefers-reduced-motion:reduce) {
  body.research-ui.research-discovery-ready .research-hero-copy,
  body.research-ui.research-discovery-ready .research-hero > [data-inference-lab] { translate:none; scale:1; opacity:1; }
  .is-discovery-entering { will-change:auto; }
  body.research-ui.research-discovery-ready .is-discovery-pending { opacity:1; pointer-events:auto; }
}
