/* Klype AI homepage motion layer. Everything here is decoration: the page reads the same without it. */
/* hero: static (owner chose no hero animation) */
body.home-v3 .hero3{isolation:isolate;overflow:hidden}
body.home-v3 .hero3::before{content:"";position:absolute;inset:-10%;z-index:-3;pointer-events:none;background:radial-gradient(40% 35% at 22% 30%,rgba(40,64,196,.30),transparent 70%),radial-gradient(35% 30% at 80% 70%,rgba(120,140,255,.16),transparent 70%)}
body.home-v3 .hero3 .vline{display:none}
/* works-with grid: light sweep across the cells */
body.home-v3 .wcell{position:relative;overflow:hidden;transition:background .3s}
body.home-v3 .wcell::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(40,64,196,.08) 50%,transparent 70%);transform:translateX(-120%);animation:m3sweep 7s ease-in-out infinite;animation-delay:calc(var(--i,0) * .35s)}
body.home-v3 .wcell:hover{background:#fff}
@keyframes m3sweep{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
body.home-v3 .draft mark{transition:background .4s}
body.home-v3 .m3pulse{animation:m3flag 2.4s ease-in-out infinite}
@keyframes m3flag{0%,100%{box-shadow:0 0 0 0 rgba(222,80,80,0)}50%{box-shadow:0 0 0 4px rgba(222,80,80,.18)}}
/* reveal on scroll */
body.home-v3 .m3r{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 90ms)}
body.home-v3 .m3r.in{opacity:1;transform:none}
/* numbers: animate from the model-alone value to the Klype value */
body.home-v3 .nstat .big{display:inline-block;font-variant-numeric:tabular-nums;transition:color .6s}
body.home-v3 .nstat .big.counting{color:#9aa6d8}
@media (prefers-reduced-motion:reduce){
  body.home-v3 *,body.home-v3 *::before,body.home-v3 *::after{animation:none!important;transition:none!important}
  body.home-v3 .m3r{opacity:1!important;transform:none!important}
}
