/* Form motion: resume scan, success check, error shake. transform/opacity only. Loaded by build.py on form pages. */
@keyframes rr-motion-shake{20%{transform:translateX(-5px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@keyframes rr-motion-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes rr-motion-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes rr-motion-x{from{transform:scaleX(0)}}
@keyframes rr-motion-y{from{transform:scaleY(0)}}
@keyframes rr-motion-sweep{0%{opacity:0;transform:translateY(-100%)}15%,85%{opacity:1}100%{opacity:0;transform:translateY(250%)}}
.rr-motion-shake{animation:rr-motion-shake .4s ease-out}
.rr-motion-rise{animation:rr-motion-rise .45s ease-out both}
.rr-motion-ok{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:16px 0 -4px;border-radius:50%;background:var(--acc,#14B8A6);animation:rr-motion-pop .45s cubic-bezier(.2,1.4,.4,1) both}
.rr-motion-ok i{position:relative;width:12px;height:22px;transform:translate(-1px,-3px) rotate(45deg)}
.rr-motion-ok i:before,.rr-motion-ok i:after{content:"";position:absolute;bottom:0;background:#fff;border-radius:2px}
.rr-motion-ok i:before{left:0;width:12px;height:4px;transform-origin:left;animation:rr-motion-x .18s .3s ease-out both}
.rr-motion-ok i:after{right:0;width:4px;height:22px;transform-origin:bottom;animation:rr-motion-y .22s .46s ease-out both}
.rr-motion-file{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--s200,#E2E8F0);border-radius:12px;background:var(--s50,#F8FAFC);font-size:14px;color:var(--navy,#0B1B34);animation:rr-motion-rise .3s ease-out both}
.rr-motion-file b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr-motion-doc{position:relative;flex:none;width:30px;height:38px;border:1.5px solid var(--navy3,#1E3A64);border-radius:4px;background:#fff repeating-linear-gradient(transparent 0 7px,#CBD5E1 7px 9px) 5px 6px/18px 26px no-repeat;overflow:hidden}
.rr-motion-doc:after{content:"";position:absolute;left:0;right:0;top:0;height:40%;background:linear-gradient(rgba(20,184,166,0),rgba(20,184,166,.7));border-bottom:2px solid var(--acc,#14B8A6);opacity:0;transform:translateY(-100%)}
.rr-motion-scan .rr-motion-doc:after{animation:rr-motion-sweep 1.1s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.rr-motion-shake,.rr-motion-rise,.rr-motion-ok,.rr-motion-ok i:before,.rr-motion-ok i:after,.rr-motion-file,.rr-motion-scan .rr-motion-doc:after{animation:none!important}}
