:root{
--motion-instant:100ms;/* @kind other */
--motion-fast:180ms;/* @kind other */
--motion-standard:280ms;/* @kind other */
--motion-reveal:520ms;/* @kind other */
--motion-route:760ms;/* @kind other */
--motion-ambient:16s;/* @kind other */
--ease-brand:cubic-bezier(0.22,1,0.36,1);/* @kind other */
--ease-exit:cubic-bezier(0.4,0,1,1);/* @kind other */
--drift-distance:12px;--reveal-shift:14px;--press-shift:2px;--stagger:60ms;/* @kind other */
}
@keyframes jcbt-wave-drift{from{transform:translateX(calc(-1 * var(--drift-distance)))}to{transform:translateX(var(--drift-distance))}}
@keyframes jcbt-route-draw{to{stroke-dashoffset:0}}
@keyframes jcbt-point-arrive{to{opacity:1;transform:translateY(0)}}
.jcbt-drift{animation:jcbt-wave-drift var(--motion-ambient) linear infinite alternate}
[data-reveal]{opacity:0;transform:translateY(var(--reveal-shift));transition:opacity var(--motion-reveal) var(--ease-brand),transform var(--motion-reveal) var(--ease-brand)}
[data-reveal].is-visible{opacity:1;transform:translateY(0)}
body.motion-off *,body.motion-off *::before,body.motion-off *::after{animation-play-state:paused!important;scroll-behavior:auto!important}
body.motion-off [data-reveal]{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
[data-reveal]{opacity:1;transform:none}
}
