/* Shared motion from the live Lynx and SlopStream sites. */
:root{--ease-settle:cubic-bezier(.16,1,.3,1);--motion-snap:160ms;--motion-fast:200ms;--motion-enter:260ms}
@keyframes yaptap-enter-down{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes yaptap-enter-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes yaptap-mark-in{from{opacity:0;transform:scale(.76) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes yaptap-result-in{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes yaptap-confirm{50%{transform:scale(1.02)}}
a,button{transition:color var(--motion-snap) var(--ease-settle),background-color var(--motion-snap) var(--ease-settle),border-color var(--motion-snap) var(--ease-settle),transform var(--motion-snap) var(--ease-settle)}
@media(prefers-reduced-motion:no-preference){
 .shortcut-download:active,.mic-button:active{transform:translateY(1px) scale(.985)}
 .download-panel a:active{transform:scale(.98)}
 .text-button:active{transform:scale(.96)}
 .brand-lockup,.about-header,.site-header{animation:yaptap-enter-down var(--motion-fast) var(--ease-settle) both}
 .logo,.brand-mark{animation:yaptap-mark-in var(--motion-enter) var(--ease-settle) 20ms both}
 h1{animation:yaptap-enter-up var(--motion-enter) var(--ease-settle) 45ms both}
 .hero-lead,.not-found p{animation:yaptap-enter-up var(--motion-enter) var(--ease-settle) 60ms both}
 .dictation-box,.not-found .button{animation:yaptap-enter-up var(--motion-enter) var(--ease-settle) 75ms both}
 .download-panel,.home-footer,.site-footer,.about-footer{animation:yaptap-enter-up var(--motion-fast) var(--ease-settle) 90ms both}
 .record-message:not([hidden]){animation:yaptap-result-in var(--motion-fast) var(--ease-settle) both}
 [data-copy].copied{animation:yaptap-confirm var(--motion-fast) var(--ease-settle)}
 .iphone-popup[open]{animation:yaptap-enter-up var(--motion-enter) var(--ease-settle) both}
 .iphone-popup[open][data-closing]{animation:yaptap-result-in var(--motion-fast) var(--ease-settle) reverse both}
 /* Match Lynx: every informational content group enters once on page load. */
 .about-section>h2,.about-section>.about-copy,.facts>div,.about-footer{animation:yaptap-enter-up 440ms var(--ease-settle) 55ms both}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
