:root{--dur-fast:150ms;--dur-base:220ms;--dur-enter:700ms;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-soft:cubic-bezier(0.25,0.46,0.45,0.94);
--shadow-card:0 0 0 1px rgba(0,0,0,.06),0 1px 2px -1px rgba(0,0,0,.06),0 2px 4px 0 rgba(0,0,0,.04);
--shadow-card-hover:0 0 0 1px rgba(0,0,0,.08),0 1px 2px -1px rgba(0,0,0,.08),0 4px 8px 0 rgba(0,0,0,.06);--outline-img:rgba(0,0,0,.1);}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}
.df-num,.df-count{font-variant-numeric:tabular-nums}
.df-reveal,.df-stagger>*{opacity:0;transform:translateY(8px);filter:blur(8px);transition:opacity var(--dur-enter) var(--ease-soft),transform var(--dur-enter) var(--ease-soft),filter var(--dur-enter) var(--ease-soft);transition-delay:calc(var(--i,0) * 100ms)}
.df-reveal.is-in,.df-stagger.is-in>*{opacity:1;transform:none;filter:none}
.df-split{visibility:hidden}
@media (prefers-reduced-motion:reduce){.df-reveal,.df-stagger>*{transform:none;filter:none;transition:opacity 1ms}.df-split{visibility:visible}*{scroll-behavior:auto!important}}
