:root{
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */
--ease-spring:cubic-bezier(.34,1.56,.64,1); /* @kind other */
--duration-fast:150ms; /* @kind other */
--duration-base:280ms; /* @kind other */
--duration-slow:480ms; /* @kind other */
--duration-reveal:700ms; /* @kind other */
}
@keyframes ds-fade-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes ds-fade-in{from{opacity:0}to{opacity:1}}
@keyframes ds-scale-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes ds-count{from{opacity:0}to{opacity:1}}
@keyframes ds-pulse-ring{0%{box-shadow:0 0 0 0 oklch(60% 0.18 38 / 0.35)}100%{box-shadow:0 0 0 10px oklch(60% 0.18 38 / 0)}}
.ds-reveal{animation:ds-fade-up var(--duration-reveal) var(--ease-out) both}
.ds-reveal-in{opacity:0;transform:translateY(18px);transition:opacity var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}
.ds-reveal-in.is-visible{opacity:1;transform:translateY(0)}
