/* These placeholders occupy the finished layout, including before app.js runs. */
.fresh-heading p, .catalog-heading p { line-height: 16px; }
.catalog-heading > span { min-height: 19px; }
.catalog-card-copy small { line-height: 16px; min-height: 16px; }
.catalog-card-copy strong { line-height: 20px; min-height: 20px; }
.is-placeholder { pointer-events: none; }
.catalog-card.is-placeholder { cursor: default; }
.media-skeleton { position: absolute; inset: 0; z-index: 4; display: block; overflow: hidden; border-radius: inherit; background: #242429; pointer-events: none; }
.media-skeleton::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg,transparent 25%,#ffffff09 44%,#ffffff16 50%,transparent 75%); transform: translateX(-100%); animation: home-skeleton-sweep 1.65s ease-in-out infinite; }
.media-skeleton-copy { position: absolute; right: clamp(19px,2.5vw,34px); bottom: 26px; left: 30px; display: grid; justify-items: start; gap: 13px; }
.media-skeleton-copy > * { display: block; margin: 0; padding: 0; border-radius: 5px; background: #39393f; }
.media-skeleton-copy i { width: 27%; height: 8px; }
.media-skeleton-copy b { width: 55%; height: 19px; }
.media-skeleton-copy em { width: 82%; height: 8px; }
.is-image-loading { background: #242429; }
.is-image-loading::after { content: none; }
.is-image-loading > .fresh-card-shade,
.is-image-loading > .fresh-card-copy,
.is-image-loading > em { visibility: hidden; }
.catalog-card:is(.is-placeholder,.is-media-pending) .catalog-card-copy > * { color: transparent; text-shadow: none; background: #2c2c32; border-radius: 5px; }
.catalog-card:is(.is-placeholder,.is-media-pending) .catalog-card-copy small { width: 42%; }
.catalog-card:is(.is-placeholder,.is-media-pending) .catalog-card-copy strong { width: 72%; }
.is-image-error .image-fallback { z-index: 5; }

/* No fallback lettering is painted while the local variable font is loading. */
.fonts-pending :is(.brand span,.desktop-app-nav button,.search-button span,.profile-button,.fresh-heading p,.fresh-heading h1,.catalog-heading p,.catalog-heading h1,.catalog-heading>span,.catalog-filter,.catalog-count,.catalog-status,.mobile-nav span) { color: transparent !important; text-shadow: none !important; }
.fonts-pending :is(.fresh-heading h1,.catalog-heading h1,.brand span) { border-radius: 5px; background: #29292f; }
.fonts-pending :is(.fresh-heading p,.catalog-heading p,.catalog-heading>span,.mobile-nav span) { border-radius: 4px; background: #202025; }
@keyframes home-skeleton-sweep { to { transform: translateX(100%); } }
@media (max-width:800px) {
  .media-skeleton-copy { right: 17px; bottom: 22px; left: 20px; gap: 11px; }
  .media-skeleton-copy b { height: 17px; }
}
@media (prefers-reduced-motion:reduce) {
  .media-skeleton::after { animation: none; transform: none; }
}
