/* Hide images until JS marks them loaded — avoids progressive/ugly paint */
img:not(.is-loaded) {
    opacity: 0;
}

img.is-loaded {
    opacity: 1;
    transition: opacity 0.65s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    img.is-loaded {
        transition: none;
    }
}
