/* Estate kit core, CSS. Behaviour only, no look. Sites override tokens in their own CSS. */
:root{--kit-ease-out:cubic-bezier(.16,1,.3,1);--kit-dur-fast:160ms;--kit-dur:320ms;--kit-dur-slow:600ms;--kit-stagger:40ms;--kit-reveal-shift:8px;--kit-safety:2600ms}

/* Reveal. Hidden only under html.kit-ready with reveal opted in. The animation is the CSS safety. */
/* Timing is declared on every reveal element, but no property transitions until .kit-in, so hiding and kit-now never animate. */
html.kit-ready[data-kit~=reveal] [data-kit-reveal]{transition:none var(--kit-dur) var(--kit-ease-out) var(--kit-d,0ms)}
html.kit-ready[data-kit~=reveal] [data-kit-reveal].kit-in{transition-property:opacity,transform}
html.kit-ready[data-kit~=reveal] [data-kit-reveal]:not(.kit-in):not(.kit-now){opacity:0;transform:translateY(var(--kit-reveal-shift));animation:kit-safe 1ms linear var(--kit-safety) forwards}
html.kit-ready[data-kit~=reveal] .kit-now{transition:none}
@keyframes kit-safe{to{opacity:1;transform:none}}

/* Count-up: steady digit width so the figure does not change the layout. */
html.kit-ready[data-kit~=count] [data-kit-count]{font-variant-numeric:tabular-nums}

/* Hover tooltip. Fixed position, so it never changes layout. */
.kit-tip{position:fixed;left:0;top:0;z-index:2147483000;max-width:20rem;padding:.35em .6em;border-radius:4px;background:#111;color:#fff;font:14px/1.3 system-ui,sans-serif;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--kit-dur-fast) var(--kit-ease-out),visibility 0s linear var(--kit-dur-fast)}
.kit-tip.kit-tip-on{opacity:1;visibility:visible;transition-delay:0s}

/* Reduced motion: nothing moves; reveal is a short opacity fade. */
@media (prefers-reduced-motion:reduce){
html.kit-ready[data-kit~=reveal] [data-kit-reveal]{transition:none var(--kit-dur-fast) linear}
html.kit-ready[data-kit~=reveal] [data-kit-reveal].kit-in{transition-property:opacity}
html.kit-ready[data-kit~=reveal] [data-kit-reveal]:not(.kit-in):not(.kit-now){transform:none}
html.kit-ready[data-kit~=reveal] .kit-now{transition:none}
}
html.kit-reduce.kit-ready[data-kit~=reveal] [data-kit-reveal]{transition:none var(--kit-dur-fast) linear}
html.kit-reduce.kit-ready[data-kit~=reveal] [data-kit-reveal].kit-in{transition-property:opacity}
html.kit-reduce.kit-ready[data-kit~=reveal] [data-kit-reveal]:not(.kit-in):not(.kit-now){transform:none}
html.kit-reduce.kit-ready[data-kit~=reveal] .kit-now{transition:none}
