
/* KP+ v20 motion: restrained reveals, depth and product-colour highlights. */
[data-kp-reveal] { opacity: 0; transform: translate3d(0, 28px, 0) scale(.985); transition: opacity .7s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
[data-kp-reveal].is-visible { opacity: 1; transform: none; }
.kp-logo-v20 { position: relative; overflow: hidden; isolation: isolate; }
.kp-logo-v20::after { position: absolute; inset: auto 7% 0; height: 2px; content: ''; background: linear-gradient(90deg, transparent, var(--kp-motion-accent), #fff, var(--kp-motion-accent), transparent); background-size: 220% 100%; animation: kp-logo-line 4.8s ease-in-out infinite; pointer-events: none; }
@keyframes kp-logo-line { 0%, 18% { background-position: 130% 0; opacity: .35; } 52% { opacity: 1; } 82%, 100% { background-position: -30% 0; opacity: .38; } }
@media (prefers-reduced-motion: reduce) { [data-kp-reveal] { opacity: 1; transform: none; transition: none; } .kp-logo-v20::after { animation: none; } }
