@keyframes fadeUp   { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes slideIn  { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }
@keyframes slideUp  { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes toastIn     { from { opacity:0; transform:translateX(16px); } to { opacity:1; transform:translateX(0); } }
@keyframes rowIn       { from { opacity:0; transform:translateX(-6px); } to { opacity:1; transform:translateX(0); } }
@keyframes modalUp     { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes cardBounce  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes kdsPulse    { 0%,100%{opacity:1; transform:scale(1)} 50%{opacity:.4; transform:scale(.85)} }
@keyframes blink       { 0%,100%{opacity:1} 50%{opacity:.3} }
@keyframes shimmer     { from{background-position:-400px 0} to{background-position:400px 0} }
@keyframes spinSlow    { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes goldGlow    { 0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,0)} 50%{box-shadow:0 0 20px 2px rgba(201,168,76,.15)} }

.anim-fade-up   { animation: fadeUp   var(--t-slow) ease both; }
.anim-fade-in   { animation: fadeIn   var(--t)      ease both; }
.anim-slide-in  { animation: slideIn  var(--t)      ease both; }
.anim-toast-in  { animation: toastIn  var(--t)      ease both; }
.anim-modal-up  { animation: modalUp  var(--t-slow) ease both; }
.anim-row-in    { animation: rowIn    0.2s          ease both; }

.delay-1 { animation-delay: .05s; }
.delay-2 { animation-delay: .10s; }
.delay-3 { animation-delay: .15s; }
.delay-4 { animation-delay: .20s; }
.delay-5 { animation-delay: .25s; }

.skeleton { background: linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%); background-size: 400px 100%; animation: shimmer 1.5s ease-in-out infinite; border-radius: var(--radius); }
