/* The page's motion system, part 1: scroll reveal (js/components/reveal.js).
   <h2 data-db-reveal>..</h2>  <p data-db-reveal data-db-reveal-delay="120">..</p>
   <ul data-db-reveal-stagger="80"><li data-db-reveal>..</li>..</ul>   (children get 0, 80, 160 ms)
   data-db-reveal="fade" drops the rise. Hidden only when scripting is on and motion is allowed;
   reduced motion or no JS = always visible. */
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){
  [data-db-reveal]{opacity:0;translate:0 16px;
    transition:opacity var(--m-dur-slow) var(--m-ease),translate var(--m-dur-slow) var(--m-ease);
    transition-delay:var(--db-reveal-delay,0ms)}
  [data-db-reveal="fade"]{translate:none}
  [data-db-reveal].is-revealed{opacity:1;translate:0 0}
  /* failsafe: if the script never runs, show everything after a moment */
  html:not(.db-reveal-on) [data-db-reveal]{animation:db-reveal-failsafe var(--m-dur-slow) var(--m-ease) calc(var(--m-dur-slow) * 5) forwards}
}
@keyframes db-reveal-failsafe{to{opacity:1;translate:0 0}}

/* Part 2: press feel (js/components/press.js), the app's build-21 feel.
   Applies to .db-btn, .db-store, .db-chip[role=button], [data-db-press]. */
.is-pressing{scale:.93;filter:brightness(.92);
  transition:scale calc(var(--m-dur-fast) * .45) ease-out,filter calc(var(--m-dur-fast) * .45) ease-out!important}
.is-springing{animation:db-press-spring calc(var(--m-dur) * 1.2) cubic-bezier(.3,1.4,.5,1)}
@keyframes db-press-spring{0%{scale:.93}45%{scale:1.05}75%{scale:.985}100%{scale:1}}
@media (prefers-reduced-motion:reduce){.is-pressing{scale:none}.is-springing{animation:none}}
