:root{--shake-distance:6px;--shake-overshoot:4px;--shake-dur-a:80ms;--shake-dur-b:60ms;--shake-ease:cubic-bezier(.22, 1, .36, 1);--revert-hold:3s;--revert-dur:.28s}.t-input{will-change:transform;transition:border-color .15s ease-out}.t-input.is-error{transition:border-color var(--revert-dur,.28s) ease-out}.t-error-msg{opacity:0;visibility:hidden;transition:opacity var(--revert-dur,.28s) ease-out, visibility 0s linear var(--revert-dur,.28s)}.t-input-wrap.is-error .t-error-msg{opacity:1;visibility:visible;transition:opacity var(--revert-dur,.28s) ease-out, visibility 0s linear 0s}.t-input.is-shaking{animation:t-input-shake calc(var(--shake-dur-a) * 2 + var(--shake-dur-b) * 2) linear}@keyframes t-input-shake{0%{animation-timing-function:var(--shake-ease);transform:translate(0)}28.57%{transform:translateX(var(--shake-distance));animation-timing-function:var(--shake-ease)}57.14%{transform:translateX(calc(var(--shake-distance) * -1));animation-timing-function:var(--shake-ease)}78.57%{transform:translateX(var(--shake-overshoot));animation-timing-function:var(--shake-ease)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.t-input{animation:none!important;transform:none!important}}.t-input input{transition:border-color .15s ease-out}.t-input.is-error input{border-color:var(--destructive);transition:border-color var(--revert-dur,.28s) ease-out}
