/* Only enhanced B2 list covers. No layout dimensions or lazy-load sources change. */
.post-module-thumb .av-cover { overflow: hidden; isolation: isolate; }
.av-cover > .av-cover-placeholder,
.post-module-thumb .thumb-link > .av-cover-seeded {
    position: absolute; inset: 0; pointer-events: none; z-index: 0;
    background: #e7d8d7 var(--av-cover-image, url('cover-placeholder.webp')) center / cover no-repeat;
    opacity: 1; transition: opacity .3s ease, visibility .3s;
}
/* Server-rendered layers stay behind the real image, including without JS. */
.post-module-thumb .thumb-link { isolation: isolate; }
.post-module-thumb .thumb-link > .av-cover-seeded { z-index: -1; }
.av-cover-placeholder::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(155deg, rgba(255,255,255,.08), rgba(18,19,32,.12));
}
.av-cover .av-curve-loader {
    position: absolute; left: 50%; top: 50%; width: 60px; height: 60px;
    margin: -30px 0 0 -30px; padding: 4px; box-sizing: border-box;
    border-radius: 50%; background: rgba(22,24,34,.14);
    fill: none; stroke-linecap: round; animation: none;
}
.av-curve-track { stroke: rgba(255,255,255,.22); stroke-width: 1.25; }
.av-curve-tail { stroke: rgba(255,227,203,.7); stroke-width: 2.5; stroke-dasharray: 30 70; }
.av-curve-tip { stroke: #fffaf3; stroke-width: 3; stroke-dasharray: 7 93; }
.av-cover.av-cover-visible.av-cover-waiting .av-curve-loader { animation: av-curve-orbit 18s linear infinite; }
.av-cover.av-cover-visible.av-cover-waiting .av-curve-tail,
.av-cover.av-cover-visible.av-cover-waiting .av-curve-tip { animation: av-curve-trace 2.8s linear infinite; }
.av-cover.av-cover-stalled .av-curve-loader,
.av-cover.av-cover-error .av-curve-loader { display: none; }
.av-cover img.post-thumb { transition: opacity .3s ease, transform .45s cubic-bezier(.2,.65,.3,1); }
.av-cover.av-cover-waiting img.post-thumb,
.av-cover.av-cover-loading.av-cover-error img.post-thumb { opacity: 0 !important; }
.av-cover.av-cover-ready img.post-thumb { opacity: 1; }
.av-cover.av-cover-ready > .av-cover-placeholder { opacity: 0; visibility: hidden; }
@keyframes av-curve-orbit { to { transform: rotate(360deg); } }
@keyframes av-curve-trace { to { stroke-dashoffset: -100; } }
/* Temporary article-image wrapper: removed after load, never clips B2 zoom. */
.entry-content .av-content-image {
    position: relative; display: inline-block; max-width: 100%; vertical-align: top;
    line-height: 0;
}
.entry-content .av-content-image.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.entry-content .av-content-image > .av-cover-placeholder { border-radius: 6px; overflow: hidden; }
.entry-content .av-content-image > img,
.entry-content .av-content-image > picture > img {
    display: block; max-width: 100%; height: auto;
    transition: opacity .3s ease;
}
.entry-content .av-content-image.av-cover-waiting,
.entry-content .av-content-image.av-cover-error { aspect-ratio: var(--av-content-ratio, 4 / 3); }
.entry-content .av-content-image.av-content-unknown-size.av-cover-waiting,
.entry-content .av-content-image.av-content-unknown-size.av-cover-error { max-height: 420px; }
.entry-content .av-content-image.av-cover-waiting img,
.entry-content .av-content-image.av-cover-error img {
    position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0 !important;
    margin: 0; float: none;
}
.entry-content .av-content-image.av-cover-ready > img,
.entry-content .av-content-image.av-cover-ready > picture > img { opacity: 1; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .post-module-thumb .av-cover.av-cover-hover.av-cover-ready:hover img.post-thumb { transform: scale(1.07) rotate(1.2deg); }
}
@media (prefers-reduced-motion: reduce) {
    .av-cover img.post-thumb, .av-cover > .av-cover-placeholder { transition: none; }
    .entry-content .av-content-image > img,
    .entry-content .av-content-image > picture > img { transition: none; }
    .av-cover.av-cover-visible.av-cover-waiting .av-curve-loader,
    .av-cover.av-cover-visible.av-cover-waiting .av-curve-tail,
    .av-cover.av-cover-visible.av-cover-waiting .av-curve-tip { animation: none; }
}
