.mono-season-details { display: flex; align-items: flex-start; gap: 24px; }
.mono-season-details .ep-specs { flex: 1; min-width: 0; }
.mono-season-poster { width: 160px; height: auto; flex: 0 0 160px; border-radius: var(--radius-md); }
.mono-season-details dd { overflow-wrap: anywhere; }
.ep-head__poster.mono-landscape { aspect-ratio: 16 / 9; height: auto; }
.ep-head__poster.mono-landscape img { width: 100%; height: 100%; object-fit: contain; }
.mono-tmdb-gallery > .tmdb-gallery { margin: 0; }
.mono-tmdb-gallery > .tmdb-gallery > h2 { display: none; }
.mono-episode-cast > .tmdb-extra { grid-column: 1 / -1; }
.mono-episode-cast > .tmdb-extra > h2 { display: none; }
.mono-person-placeholder { aspect-ratio: 3 / 4; background: var(--bg-soft); }
.mono-person-placeholder, .mono-tmdb-crew .tmdb-cast-ph { position: relative; }
.mono-person-placeholder::before, .mono-tmdb-crew .tmdb-cast-ph::before,
.mono-person-placeholder::after, .mono-tmdb-crew .tmdb-cast-ph::after {
  content: ""; position: absolute; background: var(--text-3); opacity: .3;
}
.mono-person-placeholder::before, .mono-tmdb-crew .tmdb-cast-ph::before {
  width: 28%; aspect-ratio: 1; top: 22%; left: 36%; border-radius: 50%;
}
.mono-person-placeholder::after, .mono-tmdb-crew .tmdb-cast-ph::after {
  width: 56%; height: 32%; bottom: 20%; left: 22%; border-radius: 50% 50% 16% 16%;
}
.mono-tmdb-crew > .tmdb-extra, .mono-tmdb-trailers > .tmdb-extra { margin: 0; }
.mono-tmdb-crew .tmdb-cast-item img, .mono-tmdb-crew .tmdb-cast-ph {
  display: block; background: var(--bg-soft);
}
.mono-tmdb-crew .tmdb-cast-name { display: block; margin-top: 8px; font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.mono-tmdb-crew .tmdb-cast-role { display: block; color: var(--text-2); font-size: 13px; overflow-wrap: anywhere; }
.mono-tmdb-trailers .tmdb-trailer-frame { position: relative; aspect-ratio: 16 / 9; padding: 0; background: var(--bg-soft); border-radius: var(--radius-md); overflow: hidden; margin: 12px 0 24px; }
.mono-tmdb-trailers iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mono-tmdb-trailers .tmdb-trailer-name { color: var(--navy); }
[data-tmdb-posters] > .posters-block__item { flex-basis: min(200px, calc((100% - var(--posters-gap)) / 2)); }
[data-tmdb-posters] .posters-block__cover { max-height: 300px; }
[data-tmdb-posters] img { object-fit: contain; }
.show-head__subtitle:empty { display: none; }
@media (max-width: 768px) {
  .mono-season-details { flex-direction: column; gap: 16px; }
  .mono-season-poster { width: 130px; flex: none; }
  .mono-season-details .ep-specs { width: 100%; }
  .posters-block__list { --posters-visible: 2; }
  .posters-block__cover { max-height: none; }
  .posters-block__cover img { object-fit: contain; }
}

.mono-tmdb-gallery .stills.tmdb-stills {
 display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px;
}
.mono-tmdb-gallery .stills.tmdb-stills > .still {
 width: 100%; max-width: none; aspect-ratio: 16 / 9; height: auto;
}
.mono-tmdb-gallery .stills.tmdb-stills > .still img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mono-tmdb-crew .tmdb-cast-grid {
 display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 170px;
 gap: 16px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x proximity;
}
.mono-tmdb-crew .tmdb-cast-item {
 min-width: 0; align-self: start; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-md);
 background: var(--surface); text-align: left; scroll-snap-align: start;
}
.mono-tmdb-crew .tmdb-cast-item img, .mono-tmdb-crew .tmdb-cast-ph {
 width: 100%; height: auto; aspect-ratio: 3 / 4; border-radius: 0; object-fit: cover;
}
.mono-tmdb-crew .tmdb-cast-name { margin: 10px 12px 4px; font-size: 14px; line-height: 1.4; }
.mono-tmdb-crew .tmdb-cast-role { margin: 0 12px 12px; font-size: 12px; line-height: 1.4; }
@media (max-width: 768px) {
 .mono-tmdb-gallery .stills.tmdb-stills { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
 .mono-tmdb-gallery .stills.tmdb-stills > .still { aspect-ratio: 16 / 10; }
 .mono-tmdb-crew .tmdb-cast-grid { grid-auto-columns: 145px; gap: 12px; }
}

@media (max-width: 640px) {
 .mono-tmdb-gallery .stills.tmdb-stills { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
}
#ep-main #stills .stills:has(> .still:only-child),
#season-stills .stills:has(> .still:only-child) {
 grid-template-columns: minmax(0, 1fr);
}

/* Episode sections already receive spacing from the content column gap. */
#ep-main > .ep__content > .ep-intro { margin-top: 0; }
#ep-main > .ep__content > .section { padding-block: 0; }
#ep-main #stills { padding-top: 0; }
#ep-main #stills .stills:has(> .still:only-child) { max-width: 300px; }

/* Keep season poster spacing and controls together on narrow screens. */
@media (max-width: 768px) {
  #seasons-main > #posters { margin-top: 34px; padding-top: 0; }
  #seasons-main > #posters > .section__head { grid-template-rows: auto; align-items: center; }
  #seasons-main > #posters .posters-block__nav { grid-row: 1; align-self: center; }
}
