:root{
/* durations */
--dur-instant:90ms; /* @kind other */
--dur-fast:160ms; /* @kind other */
--dur-base:240ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
--dur-slower:680ms; /* @kind other */
--dur-scene:1100ms; /* @kind other */

/* easings — tecis motion is calm: long out-curves, no bounce on UI */
--ease-standard:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-out-soft:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in-soft:cubic-bezier(.55,0,.68,.53); /* @kind other */
--ease-in-out:cubic-bezier(.65,0,.35,1); /* @kind other */
--ease-entrance:cubic-bezier(.2,.8,.2,1); /* @kind other */

/* stagger rhythm for sequenced reveals */
--stagger-1:0ms; /* @kind other */
--stagger-2:70ms; /* @kind other */
--stagger-3:140ms; /* @kind other */
--stagger-4:210ms; /* @kind other */
--stagger-5:280ms; /* @kind other */
--stagger-step:70ms; /* @kind other */

/* travel distances */
--shift-sm:8px; /* @kind spacing */
--shift-md:18px; /* @kind spacing */
--shift-lg:36px; /* @kind spacing */
}

@keyframes tecis-fade-in{from{opacity:0}to{opacity:1}}
@keyframes tecis-rise{from{opacity:0;transform:translateY(var(--shift-md))}to{opacity:1;transform:translateY(0)}}
@keyframes tecis-rise-lg{from{opacity:0;transform:translateY(var(--shift-lg))}to{opacity:1;transform:translateY(0)}}
@keyframes tecis-slide-in{from{opacity:0;transform:translateX(calc(var(--shift-lg) * -1))}to{opacity:1;transform:translateX(0)}}
@keyframes tecis-mask-up{from{clip-path:inset(100% 0 0 0);transform:translateY(.24em)}to{clip-path:inset(-20% 0 -10% 0);transform:translateY(0)}}
@keyframes tecis-wipe-right{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes tecis-scale-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes tecis-rule-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes tecis-draw{to{stroke-dashoffset:0}}
@keyframes tecis-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes tecis-pulse-ring{0%{box-shadow:0 0 0 0 rgba(47,131,124,.38)}70%{box-shadow:0 0 0 18px rgba(47,131,124,0)}100%{box-shadow:0 0 0 0 rgba(47,131,124,0)}}
@keyframes tecis-shimmer{from{background-position:-160% 0}to{background-position:260% 0}}

@media (prefers-reduced-motion:reduce){
:root{
--dur-fast:1ms; /* @kind other */
--dur-base:1ms; /* @kind other */
--dur-slow:1ms; /* @kind other */
--dur-slower:1ms; /* @kind other */
--dur-scene:1ms; /* @kind other */
--stagger-step:0ms; /* @kind other */
}
}
