/* Reserve the final image area before requesting bytes, including SVG crops. */
.lazy-media{position:relative;display:block;width:100%;height:100%;aspect-ratio:var(--media-ratio,3/4);overflow:hidden;background:var(--paper-deep);isolation:isolate}
.lazy-media>.lazy-visual,.lazy-media .lazy-fallback{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;overflow:hidden}
.lazy-media>.lazy-visual{opacity:0;transition:opacity .18s ease}
.lazy-media[data-image-state=loaded]>.lazy-visual{opacity:1}
.media-loading,.media-failure{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);background:var(--paper-deep);text-align:center;line-height:1.4}
.media-spinner{width:24px;height:24px;max-width:40%;aspect-ratio:1;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:media-spin .9s linear infinite;animation-play-state:paused}
.lazy-media[data-image-state=loading] .media-spinner{animation-play-state:running}
.media-failure{display:none;padding:6px;cursor:pointer}
.media-failure>img{display:block;width:36px;height:36px;max-width:50%;max-height:40%;object-fit:contain}
.media-failure-text{font-size:12px;white-space:nowrap}
.media-failure-text small{display:block;font-size:10px;margin-top:3px;color:var(--muted)}
.lazy-media[data-image-state=error]>.lazy-visual{visibility:hidden}
.lazy-media[data-image-state=error]>.media-failure{display:flex}
.lazy-media[data-image-state=loaded]>.media-loading,.lazy-media[data-image-state=error]>.media-loading{display:none}
.lazy-media[role=button]:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
.home-ranking .home-rank-cover .media-failure-text{display:none}
.reader-panels .reader-panel .lazy-media{height:auto;aspect-ratio:var(--media-ratio)}
.focus-slide .lazy-media>.lazy-visual{object-position:center 38%}
@keyframes media-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.media-spinner{animation:none;border-top-color:var(--green);border-right-color:var(--green)}.lazy-media>.lazy-visual{transition:none}}
@media print{.media-loading,.media-failure{display:none}}
