@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg, var(--surface-sunken,hsl(var(--muted))) 25%, var(--surface,hsl(var(--background))) 37%, var(--surface-sunken,hsl(var(--muted))) 63%);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@media (prefers-reduced-motion:reduce){.skeleton-shimmer{background:var(--surface-sunken,hsl(var(--muted)));animation:none}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--glow-color,rgba(var(--primary-rgb), .2))}50%{box-shadow:0 0 12px 4px var(--glow-color,rgba(var(--primary-rgb), .15))}}.pulse-glow{animation:2s ease-in-out infinite pulse-glow}@media (prefers-reduced-motion:reduce){.pulse-glow{animation:none}}@keyframes breathe{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.animate-breathe{animation:2.5s ease-in-out infinite breathe}@media (prefers-reduced-motion:reduce){.animate-breathe{opacity:1;animation:none}}@keyframes ripple{to{opacity:0;transform:scale(4)}}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";opacity:.3;pointer-events:none;background:radial-gradient(circle,currentColor 10%,#0000 10.01%);position:absolute;inset:0;transform:scale(0)}.btn-ripple:active:after{animation:.4s ease-out ripple}@media (prefers-reduced-motion:reduce){.btn-ripple:after{display:none}}.focus-ring{outline:none}.focus-ring:focus-visible{box-shadow:0 0 0 2px var(--background,hsl(var(--background))), 0 0 0 4px var(--primary,hsl(var(--primary)))}.hover-elevate{transition:transform .2s,box-shadow .2s}.hover-elevate:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014}@media (hover:none){.hover-elevate:hover{box-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){.hover-elevate{transition:none}.hover-elevate:hover{transform:none}}.tabular-counter{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
