/* Kit Vivo 1.0 — estilos de apoyo de kit.js. Sin colores propios: todo hereda de los tokens de la página. */
.kv-w{display:inline-block;overflow:hidden;vertical-align:top;padding-block:.14em;margin-block:-.14em}
.kv-i{display:inline-block;will-change:transform}

[data-kv~="tilt"]{position:relative;transform:perspective(900px) rotateX(var(--kv-rx,0deg)) rotateY(var(--kv-ry,0deg));transition:transform .2s ease-out}
[data-kv~="tilt"]::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--kv-gx,50%) var(--kv-gy,0%),rgba(255,255,255,.5),transparent 55%);opacity:var(--kv-go,0);transition:opacity .3s;mix-blend-mode:soft-light}

[data-kv~="spot"]{position:relative;isolation:isolate}
[data-kv~="spot"]::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(260px circle at var(--kv-x,50%) var(--kv-y,50%),var(--kv-spot,rgba(255,255,255,.14)),transparent 70%);opacity:var(--kv-so,0);transition:opacity .35s}

.kv-mq{display:flex;overflow:hidden;max-width:100%}
.kv-mq-t{display:flex;flex:none;align-items:center;gap:var(--kv-gap,2rem);padding-right:var(--kv-gap,2rem);white-space:nowrap;animation:kv-mq var(--kv-speed,22s) linear infinite}
.kv-mq[data-kv-dir="-1"] .kv-mq-t{animation-direction:reverse}
@keyframes kv-mq{to{transform:translateX(-100%)}}

.kv-cur{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.5px solid #fff;mix-blend-mode:difference;pointer-events:none;z-index:9999;opacity:0;transition:width .25s,height .25s,margin .25s,background-color .25s,opacity .3s}
.kv-cur.on{opacity:1}
.kv-cur.big{width:62px;height:62px;margin:-31px 0 0 -31px;background:#fff}

.kv-grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:9998;opacity:var(--kv-grain,.14);mix-blend-mode:overlay;background-size:128px 128px;animation:kv-gr .9s steps(6) infinite}
@keyframes kv-gr{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

.kv-wipe{position:absolute;inset:0;z-index:50;transform:scaleX(0);pointer-events:none;background:currentColor;display:none}

@media (prefers-reduced-motion:reduce){
  .kv-mq-t,.kv-grain{animation:none}
  [data-kv~="tilt"]{transform:none}
}
