/* Audio and subtitle indicators occupy separate cover corners. */
:is(.home-no-banner, .catalog-no-banner) .cover-audio-rail {
  top: 8px;
  left: 8px !important;
  right: auto !important;
  justify-content: flex-start !important;
  transform: none !important;
}
:is(.home-no-banner, .catalog-no-banner) .cover-subtitle-rail {
  top: 8px;
  right: 8px !important;
  left: auto !important;
  justify-content: flex-end !important;
  transform: none !important;
}
:is(.home-no-banner, .catalog-no-banner) :is(.cover-audio-rail, .cover-subtitle-rail) {
  max-width: calc(100% - 16px);
  flex-wrap: wrap;
}
:is(.thumb, .catalog-art):has(.cover-audio-rail):has(.cover-subtitle-rail) :is(.cover-audio-rail, .cover-subtitle-rail) {
  max-width: calc(50% - 12px);
}
:is(.cover-audio-rail, .cover-subtitle-rail) :is(.audio-status, .subtitle-status) {
  max-width: 100%;
  flex-wrap: wrap;
}
.cover-subtitle-rail .subtitle-status { justify-content: flex-end; }
.home-no-banner .continue-card .continue-status-top {
  top: 8px;
  left: 8px;
  right: 8px;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: nowrap;
  overflow: visible;
}
.home-no-banner .continue-status-top :is(.continue-status-audio, .continue-status-subtitles) {
  max-width: calc(50% - 4px);
  flex-wrap: wrap;
  flex-shrink: 1;
}
.home-no-banner .continue-status-top .continue-status-audio { justify-content: flex-start; }
.home-no-banner .continue-status-top .continue-status-subtitles { margin-left: auto; justify-content: flex-end; }
.home-no-banner .continue-card:has(.continue-status-subtitles) .continue-remove { top: 38px; }

.home-no-banner .cards,
.home-no-banner .continue-cards,
.catalog-no-banner.catalog-compact .catalog-grid {
  column-gap: 18px;
  justify-content: start;
}
/* Shared web poster dimensions. Small screens retain natural scrolling. */
.home-no-banner .cards .card h4,
.catalog-compact .catalog-card h4 {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  line-height: 16px;
  font-size: 13px;
}
@media (min-width: 1600px) and (min-height: 850px) {
  .home-no-banner, .catalog-no-banner {
    --poster-width: clamp(180px, calc((100svh - 384px) / 3), 232px);
    --poster-height: calc(var(--poster-width) * 1.5);
  }
  .catalog-no-banner.catalog-compact .catalog-content {
    padding: 16px 3% 12px;
    grid-template-rows: auto 1fr auto;
    row-gap: 12px;
  }
  .catalog-no-banner.catalog-compact .catalog-rows {
    margin: 0;
    align-self: start;
  }
  .catalog-no-banner.catalog-compact .catalog-grid {
    grid-template-columns: repeat(7, var(--poster-width));
    justify-content: start;
    gap: 16px 18px;
  }
  .catalog-no-banner.catalog-compact .catalog-art {
    width: var(--poster-width);
    height: var(--poster-height);
    aspect-ratio: 2 / 3;
  }
  .catalog-no-banner.catalog-compact .catalog-card-body { padding: 6px 0 0; }
  .catalog-no-banner.catalog-compact .catalog-card h4 { margin: 0; }
  .catalog-no-banner.catalog-compact .catalog-card > h4 { margin-top: 6px; }
  .catalog-no-banner.catalog-compact .catalog-pagination { margin: 0; padding: 12px 16px; }
  .home-no-banner main { padding: 16px 0; }
  .home-no-banner .continue-section,
  .home-no-banner .new-section { padding-left: 3%; padding-right: 3%; padding-bottom: 0; }
  .home-no-banner .new-section { padding-top: 16px; }
  .home-no-banner .continue-title,
  .home-no-banner .section-head { margin-bottom: 12px; }
  .home-no-banner .cards,
  .home-no-banner .continue-cards {
    grid-auto-columns: var(--poster-width);
    gap: 18px;
    /* Show seven whole posters; further entries remain in the carousel. */
    max-width: calc(7 * var(--poster-width) + 6 * 18px);
    scroll-snap-type: x proximity;
  }
  .home-no-banner .cards .card,
  .home-no-banner .continue-card { scroll-snap-align: start; }
  .home-no-banner .cards .card .thumb {
    width: var(--poster-width);
    height: var(--poster-height);
    aspect-ratio: 2 / 3;
  }
  .home-no-banner .cards .card .thumb.has-poster {
    padding-bottom: 0;
    background-origin: border-box;
    background-clip: border-box;
  }
  .home-no-banner .cards .card h4 { margin: 6px 0 0; }
  .home-no-banner .continue-card {
    height: calc(var(--poster-height) + 70px);
    border: 0;
    background: transparent;
    overflow: visible;
  }
  .home-no-banner .continue-link {
    height: var(--poster-height);
    bottom: auto;
    border: 1px solid #34536d;
    border-radius: 11px;
  }
  .home-no-banner .continue-snapshot { object-fit: contain; border-radius: 10px; }
  .home-no-banner .continue-link::before { border-radius: 10px; background: linear-gradient(0deg,rgba(4,18,29,.65),transparent 30%); }
  .home-no-banner .continue-copy { top: calc(100% + 7px); bottom: auto; left: 0; right: 0; }
  .home-no-banner .continue-copy h3 { margin: 0; white-space: normal; overflow: visible; overflow-wrap: anywhere; font-size: 13px; line-height: 16px; }
  .home-no-banner .continue-status-top { left: 8px; right: 32px; top: 8px; flex-wrap: wrap; gap: 4px; overflow: visible; }
  .home-no-banner .continue-status-top span { flex-shrink: 0; }
}

/* Shadows apply to cover status symbols and labels only. */
:is(.home-no-banner, .catalog-no-banner) :is(.cover-rail-entry, .cover-episode-badge, .cover-duration-badge, .catalog-rail-entry, .catalog-episode-badge, .catalog-duration-badge),
.home-no-banner .continue-status-rail span {
  text-shadow: -0.65px 0 0.65px rgba(0,0,0,.85), 0.65px 0 0.65px rgba(0,0,0,.85), 0 -0.65px 0.65px rgba(0,0,0,.85), 0 1px 1.5px rgba(0,0,0,.9);
}
:is(.home-no-banner, .catalog-no-banner) :is(.cover-media-rail, .catalog-cover-rail, .continue-status-rail) .language-flag,
.home-no-banner .cover-media-rail b:not(.status-icon) {
  filter: drop-shadow(0 0 0.7px rgba(0,0,0,.95)) drop-shadow(0 1px 1px rgba(0,0,0,.8));
}
/* Mask the inner paint so the outer drop-shadow is not clipped by a mask. */
:is(.home-no-banner, .catalog-no-banner) :is(.cover-media-rail, .catalog-cover-rail, .continue-status-rail) .status-icon {
  --cover-status-ink: #f07b68;
  position: relative;
  background: transparent;
  -webkit-mask: none;
  mask: none;
  filter: drop-shadow(0 0 0.7px rgba(0,0,0,.95)) drop-shadow(0 1px 1px rgba(0,0,0,.8));
}
:is(.home-no-banner, .catalog-no-banner) :is(.cover-media-rail, .catalog-cover-rail, .continue-status-rail) .status-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--cover-status-ink);
  -webkit-mask: var(--cover-status-shape) center / contain no-repeat;
  mask: var(--cover-status-shape) center / contain no-repeat;
}
.catalog-no-banner .game-release .status-icon { --cover-status-ink: #f27c69; }
:is(.home-no-banner, .catalog-no-banner) .status-icon-video { --cover-status-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath d='m10 9 5 3-5 3z' fill='white'/%3E%3C/svg%3E"); }
:is(.home-no-banner, .catalog-no-banner) .status-icon-audio { --cover-status-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9.5h4L13 5v14l-5-4.5H4z' fill='white'/%3E%3Cpath d='M16 8.5c1.9 2 1.9 5 0 7M18.5 6c3.3 3.4 3.3 8.6 0 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
:is(.home-no-banner, .catalog-no-banner) .status-icon-subtitles { --cover-status-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='2' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath d='M6.5 10h4M13.5 10h4M6.5 14h6M15 14h2.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
:is(.home-no-banner, .catalog-no-banner) .status-icon-game { --cover-status-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 8h10c2.5 0 4.5 2.1 4.5 4.7 0 3.5-1.4 6.3-3.4 6.3-1.4 0-2.3-1.1-3.2-2.4H9.1C8.2 17.9 7.3 19 5.9 19c-2 0-3.4-2.8-3.4-6.3C2.5 10.1 4.5 8 7 8Z' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath d='M7 11v4M5 13h4M16.5 12h.01M18.5 14h.01' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
:is(.home-no-banner, .catalog-no-banner) .status-icon-update { --cover-status-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a9 9 0 1 1-8.2 5.3M3 3v6h6' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* Game release status follows the same top-left rail as video quality. */
.catalog-no-banner.catalog-compact .game-release-rail {
  top: 8px !important;
  left: 8px !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  backdrop-filter: none;
}
.catalog-no-banner .catalog-cover-rail .game-release {
  color: #fff;
  font-size: clamp(9px, .7vw, 11px) !important;
}
.catalog-no-banner .game-release .status-icon { --cover-status-ink: #f07b68; }

/* Home game posters use the same artwork and corner indicators as /spiele/. */
.home-no-banner #neu .card.is-game-card .thumb.has-poster {
  padding-bottom: 0;
  background-size: cover;
  background-position: center;
  background-origin: padding-box;
  background-clip: border-box;
  box-shadow: 0 7px 18px rgba(0,0,0,.28);
}
.home-no-banner #neu .card.is-game-card .thumb::before {
  background: radial-gradient(circle at 70% 24%,rgba(255,255,255,.23),transparent 24%),linear-gradient(145deg,transparent 25%,rgba(0,0,0,.36));
}
.home-no-banner #neu .card.is-game-card .cover-rail-entry {
  padding: 0 4px;
  gap: 3px;
  color: #fff;
  font-size: clamp(9px, .7vw, 11px);
  font-weight: 800;
  line-height: 1;
}
.home-no-banner #neu .card.is-game-card .status-icon {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
}
.home-no-banner #neu .card.is-game-card .game-platform-rail {
  top: auto !important;
  right: 8px !important;
  bottom: 7px !important;
  left: auto !important;
  justify-content: flex-end !important;
  transform: none !important;
}
.home-no-banner #neu .card.is-game-card .game-year-badge {
  font-size: clamp(10px, .75vw, 12px);
  font-weight: 800;
  color: #fff;
}

/* Larger game indicators; smaller posters keep enough room for both corners. */
.home-no-banner #neu .card.is-game-card .thumb,
.catalog-no-banner .catalog-card.is-game-card .catalog-art { container-type: inline-size; }
.home-no-banner #neu .card.is-game-card .cover-rail-entry,
.catalog-no-banner .catalog-card.is-game-card .catalog-rail-entry {
  font-size: clamp(11px, .8vw, 13px) !important;
}
.home-no-banner #neu .card.is-game-card .game-year-badge,
.catalog-no-banner .catalog-card.is-game-card .game-year-badge {
  font-size: clamp(12px, .85vw, 14px);
}
.home-no-banner #neu .card.is-game-card .status-icon,
.catalog-no-banner .catalog-card.is-game-card .status-icon {
  width: clamp(18px, 1.05vw, 20px);
  height: clamp(18px, 1.05vw, 20px);
  flex-basis: clamp(18px, 1.05vw, 20px);
}
@container (max-width: 110px) {
  .home-no-banner #neu .card.is-game-card .cover-rail-entry,
  .catalog-no-banner .catalog-card.is-game-card .catalog-rail-entry { font-size: 10px !important; padding: 0; }
  .home-no-banner #neu .card.is-game-card .game-release,
  .catalog-no-banner .catalog-card.is-game-card .game-release { max-width: calc(100cqw - 18px); white-space: normal; }
  .home-no-banner #neu .card.is-game-card .game-year-badge,
  .catalog-no-banner .catalog-card.is-game-card .game-year-badge { font-size: 11px; min-width: 0; }
  .home-no-banner #neu .card.is-game-card .status-icon,
  .catalog-no-banner .catalog-card.is-game-card .status-icon { width: 17px; height: 17px; flex-basis: 17px; }
}

