:root {
    --anim-dur: 280ms;
    --anim-fn: cubic-bezier(.22,.61,.36,1);
}

@media (prefers-reduced-motion: reduce) {
    * { animation: none !important; transition: none !important; }
}

.fade-in      { animation: fadeIn var(--dur, var(--anim-dur)) var(--anim-fn) var(--delay,0ms) both; }
.slide-up     { animation: slideUp var(--dur, var(--anim-dur)) var(--anim-fn) var(--delay,0ms) both; }
.scale-in     { animation: scaleIn var(--dur, var(--anim-dur)) var(--anim-fn) var(--delay,0ms) both; }

@keyframes fadeIn   { from {opacity:0; transform: translateY(6px);} to {opacity:1; transform: translateY(0);} }
@keyframes slideUp  { from {opacity:0; transform: translateY(10px);} to {opacity:1; transform: translateY(0);} }
@keyframes scaleIn  { from {opacity:0; transform: scale(.98);}     to {opacity:1; transform: scale(1);} }

.page-in { animation: pageIn 320ms var(--anim-fn) both; }
@keyframes pageIn { from { opacity:0; transform: translateY(8px);} to { opacity:1; transform:none;} }

.rz-overlay {
    animation: overlayIn 180ms ease-out both;
}
@keyframes overlayIn { from {opacity:0;} to {opacity:1;} }

.rz-dialog {
    transform-origin: 50% 20%;
    animation: dialogIn 220ms var(--anim-fn) both;
}
@keyframes dialogIn { from {opacity:0; transform: translateY(6px) scale(.97);} to {opacity:1; transform: translateY(0) scale(1);} }

.rz-button {
    transition: transform 120ms var(--anim-fn), box-shadow 120ms var(--anim-fn), background-color 120ms var(--anim-fn);
}
.rz-button:active { transform: translateY(1px) scale(.98); }

.rz-card, .rz-panel {
    transition: transform 160ms var(--anim-fn), box-shadow 160ms var(--anim-fn);
}

.stagger > * { will-change: transform, opacity; }

@keyframes lcFieldFlash {
    0%   { background-color: rgba(255,210,95,.6); box-shadow: 0 0 0 2px rgba(255,170,0,.45) inset; }
    60%  { background-color: rgba(255,210,95,.2); box-shadow: 0 0 0 1px rgba(255,170,0,.25) inset; }
    100% { background-color: transparent; box-shadow: none; }
}
.lc-flash { animation: lcFieldFlash 900ms ease-out 1; }
.lc-flash-strong { animation: lcFieldFlash 1200ms ease-out 1; }
