/**
 * KSMA motion — underline fills + reveal helpers (no Lenis)
 */
body:not(.admin-page) .ksma-fill-line {
    position: relative;
    display: inline-block;
}
body:not(.admin-page) .ksma-fill-line::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -0.25em;
    width: 100%;
    height: 2px;
    background: #0055ff;
    transform: scaleX(0);
    transform-origin: left center;
}
body:not(.admin-page) .ksma-fill-line.is-filled::after {
    animation: ksmaFillWipe 0.7s cubic-bezier(0.76, 0, 0.24, 1) forwards;
}
@keyframes ksmaFillWipe {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.admin-page) .ksma-fill-line::after {
        transform: scaleX(1);
        animation: none;
    }
}
