/* Background-only loading treatment: dimensions and image aspect ratios stay
   owned by each view; no wrapper or geometry mutation interrupts transitions. */
img[data-media-state="loading"] {
 background-color:#272431;
 background-image:linear-gradient(100deg,transparent 25%,#e6d7ff24 48%,transparent 72%);
 background-size:220% 100%;
 animation:yoru-loading-v67 1.5s ease-in-out infinite;
 color:transparent;
}
img[data-media-state="error"] { background-color:#272431; background-image:none; }
/* Trailer and joined-page loader flags are driven by their request lifecycle,
   not iframe presence, generic playback state or an arbitrary fake delay. */
#trailer-dock[data-loading="true"] #trailer-viewport::before,
#preview-dock[data-loading="true"] #preview-ink::before {
 content:''; position:absolute; inset:0; z-index:3; pointer-events:none;
 background:#272431 linear-gradient(100deg,transparent 25%,#e6d7ff24 48%,transparent 72%) 0 0/220% 100%;
 animation:yoru-loading-v67 1.5s ease-in-out infinite;
}
#preview-dock[data-loading="true"] #preview-track { visibility:hidden; }
@keyframes yoru-loading-v67 { from { background-position:140% 0; } to { background-position:-100% 0; } }
@media(prefers-reduced-motion:reduce) {
 img[data-media-state="loading"],
 #trailer-dock[data-loading="true"] #trailer-viewport::before,
 #preview-dock[data-loading="true"] #preview-ink::before { animation:none; background-position:50% 0; }
}
