:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #f4f4f5;
  background: #09090b;
  font-synthesis: none;
  --accent: #8b5cf6;
}

* { box-sizing: border-box; }
html { background: #09090b; color-scheme: dark; }
body { margin: 0; background: #09090b; color: #f4f4f5; }
button, input, textarea, select { font: inherit; }
button { border: 0; color: inherit; background: none; cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
.hidden { display: none !important; }

.primary, .secondary, .danger {
  min-height: 42px;
  padding: .68rem 1rem;
  border-radius: .55rem;
  font-weight: 600;
}
.primary { background: #fff; color: #111; }
.primary:hover { background: #e4e4e7; }
.secondary { background: #3f3f46cc; color: #fff; }
.secondary:hover { background: #52525b; }
.danger { background: #3b151a; color: #fecaca; }
.danger:hover { background: #551c24; }
.danger-link { color: #fca5a5; padding: .3rem; }
.danger-link:hover { color: #fee2e2; }

.brand { display: flex; align-items: center; gap: .55rem; font-size: 1.15rem; letter-spacing: -.03em; }
.brand-mark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .55rem; background: linear-gradient(135deg, #a855f7, #ef4444); font-size: .82rem; }
.text-button { padding: 0; }

.login-view {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: 1.4rem clamp(1.2rem, 4vw, 4.5rem) 1rem;
  background:
    radial-gradient(circle at 76% 15%, #4c1d954d 0, transparent 29%),
    radial-gradient(circle at 17% 85%, #7f1d1d47 0, transparent 31%),
    linear-gradient(125deg, #09090b 0%, #0d0b12 55%, #120a17 100%);
}
.login-view::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .5;
  background-image: linear-gradient(#ffffff05 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(90deg, #000, transparent 72%);
}
.login-header, .login-layout, .login-footer { position: relative; z-index: 1; }
.login-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.login-brand { font-size: 1.2rem; font-weight: 620; }
.login-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: .55rem 1rem;
  border: 1px solid #3f3f46;
  border-radius: 999px;
  color: #f4f4f5;
  text-decoration: none;
  font-size: .85rem;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.login-nav-link:hover { border-color: #71717a; background: #ffffff0b; transform: translateY(-1px); }
.login-layout {
  width: min(1240px, 100%);
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .7fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 7rem);
  padding: 3.5rem 0;
}
.login-promo { position: relative; min-height: 520px; display: flex; flex-direction: column; justify-content: center; }
.login-promo h1 {
  max-width: 780px;
  margin: .9rem 0 1.3rem;
  font-size: clamp(4rem, 8.5vw, 8rem);
  line-height: .84;
  letter-spacing: -.075em;
  text-wrap: balance;
}
.login-promo h1 span { color: #d8b4fe; }
.login-promo > p { max-width: 590px; margin: 0; color: #a1a1aa; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.7; }
.login-benefits { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.7rem; }
.login-benefits span {
  padding: .48rem .75rem;
  border: 1px solid #3f3f46;
  border-radius: 999px;
  background: #111113b8;
  color: #d4d4d8;
  font-size: .76rem;
}
.login-promo-link {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  width: fit-content;
  margin-top: 2rem;
  color: #fff;
  text-decoration: none;
  font-weight: 620;
}
.login-promo-link span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 999px; background: #fff; color: #111; transition: transform .2s ease; }
.login-promo-link:hover span { transform: translateX(4px); }
.login-poster-stack { position: absolute; right: -2.5rem; bottom: 1rem; width: 255px; height: 185px; opacity: .48; pointer-events: none; }
.login-poster { position: absolute; display: block; width: 105px; height: 154px; border: 1px solid #ffffff24; border-radius: .85rem; box-shadow: 0 24px 70px #000b; }
.poster-one { left: 8px; top: 21px; transform: rotate(-10deg); background: radial-gradient(circle at 55% 25%, #f59e0b 0, transparent 19%), linear-gradient(155deg, #451a03, #09090b 72%); }
.poster-two { left: 78px; top: 0; z-index: 2; background: radial-gradient(circle at 45% 31%, #a855f7 0, transparent 23%), linear-gradient(155deg, #2e1065, #09090b 72%); }
.poster-three { right: 0; top: 24px; transform: rotate(10deg); background: radial-gradient(circle at 48% 26%, #ef4444 0, transparent 22%), linear-gradient(155deg, #450a0a, #09090b 72%); }
.login-card {
  width: 100%;
  padding: clamp(1.7rem, 4vw, 2.6rem);
  border: 1px solid #3f3f468f;
  border-radius: 1.35rem;
  background: linear-gradient(155deg, #18181be8, #111113ee);
  box-shadow: 0 32px 100px #000b, inset 0 1px #ffffff0d;
  backdrop-filter: blur(18px);
}
.login-card-kicker { display: block; color: #c4b5fd; font-size: .67rem; letter-spacing: .18em; font-weight: 700; }
.login-card h2 { margin: .65rem 0 .65rem; font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: -.055em; }
.login-card > p { margin: 0; color: #a1a1aa; line-height: 1.6; }
.login-card form, .panel, .edit-card { display: grid; gap: 1rem; }
.login-card form { margin: 1.7rem 0 1.15rem; }
.login-card label, .panel label, .edit-card label { display: grid; gap: .45rem; color: #d4d4d8; font-size: .88rem; }
.login-card input, .panel input, .panel textarea, .panel select, .edit-card input, .edit-card textarea, .edit-card select, .catalog-search {
  width: 100%;
  background: #18181b;
  border: 1px solid #3f3f46;
  color: #fff;
  border-radius: .55rem;
  padding: .75rem .82rem;
  outline: none;
}
.login-card input { min-height: 48px; padding: .8rem .9rem; border-radius: .7rem; background: #09090b8a; }
.login-card input:focus, .panel input:focus, .panel textarea:focus, .panel select:focus, .edit-card input:focus, .edit-card textarea:focus, .catalog-search:focus { border-color: #a855f7; box-shadow: 0 0 0 3px #a855f71c; }
.password-field { position: relative; display: block; }
.password-field input { padding-right: 4.6rem; }
.password-toggle { position: absolute; right: .55rem; top: 50%; transform: translateY(-50%); padding: .4rem .5rem; color: #a1a1aa; font-size: .75rem; }
.password-toggle:hover { color: #fff; }
.login-submit { min-height: 48px; margin-top: .25rem; border-radius: .7rem; }
.login-help { padding-top: 1rem; border-top: 1px solid #27272a; font-size: .8rem; }
.login-card small, .fine { color: #71717a; }
.login-footer { padding-top: .7rem; color: #52525b; font-size: .72rem; text-align: center; }

@media (max-width: 980px) {
  .login-layout { grid-template-columns: 1fr; gap: 2.3rem; padding: 3rem 0 2rem; }
  .login-promo { min-height: auto; padding-right: 0; text-align: center; align-items: center; }
  .login-promo h1 { font-size: clamp(3.8rem, 13vw, 6rem); }
  .login-promo > p { max-width: 680px; }
  .login-poster-stack { display: none; }
  .login-card { width: min(500px, 100%); margin: 0 auto; }
}

@media (max-width: 560px) {
  .login-view { padding: 1rem; }
  .login-header { padding-bottom: .5rem; }
  .login-layout { padding: 2rem 0 1.3rem; }
  .login-promo h1 { font-size: clamp(3.2rem, 17vw, 4.8rem); }
  .login-promo > p { font-size: .95rem; }
  .login-benefits { justify-content: center; }
  .login-card { padding: 1.45rem; border-radius: 1rem; }
  .login-footer { line-height: 1.5; }
}

.topbar {
  height: 68px;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 0 4vw;
  background: linear-gradient(#09090bf5, #09090bbd 65%, transparent);
}
.topbar nav { display: flex; gap: 1.15rem; }
.topbar nav button, .top-actions button { color: #a1a1aa; }
.topbar nav button:hover, .top-actions button:hover, .topbar .nav-active { color: #fff; }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 1rem; font-size: .88rem; }
.catalog-search { width: min(260px, 24vw); padding: .5rem .7rem; background: #18181bd9; }
.catalog-search-mode-wrap { display: block; }
.catalog-search-mode { min-width: 78px; height: 35px; padding: .45rem .55rem; border: 1px solid #3f3f46; border-radius: .55rem; background: #18181bd9; color: #d4d4d8; outline: none; }
.catalog-search-mode:focus { border-color: #a855f7; box-shadow: 0 0 0 3px #a855f71c; }
.catalog-search-notice { margin: -.15rem 0 1rem; padding: .7rem .85rem; border: 1px solid #3f3f46; border-radius: .6rem; background: #18181b; color: #a1a1aa; font-size: .78rem; line-height: 1.45; }

.hero {
  height: min(78vh, 760px);
  min-height: 560px;
  position: relative;
  display: flex;
  align-items: center;
  padding: 7rem 6vw 4rem;
  overflow: hidden;
  background-color: #18181b;
  background-size: cover;
  background-position: center 28%;
}
.hero:not(.has-image)::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 72% 38%, var(--hero-accent, #8b5cf6) 0, transparent 23%), linear-gradient(115deg, #09090b 8%, transparent 63%), linear-gradient(0deg, #09090b 0, transparent 45%);
  opacity: .8;
}
.hero::after { content: "720"; position: absolute; right: 4vw; top: 13%; font-size: min(30vw, 420px); font-weight: 800; letter-spacing: -.12em; color: #ffffff08; }
.hero.has-image::after { display: none; }
.hero-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(9,9,11,.98) 4%,rgba(9,9,11,.48) 58%,rgba(9,9,11,.2)), linear-gradient(0deg, #09090b 0, transparent 48%); pointer-events: none; }
.hero-content { position: relative; z-index: 2; max-width: 650px; }
.eyebrow { font-size: .7rem; letter-spacing: .18em; font-weight: 650; color: #d8b4fe; }
.hero h1 { font-size: clamp(3.2rem, 8vw, 7rem); letter-spacing: -.075em; line-height: .88; margin: 1rem 0; text-shadow: 0 4px 30px #000; }
.hero p { max-width: 590px; color: #d4d4d8; line-height: 1.6; text-shadow: 0 2px 10px #000; }
.meta { color: #a1a1aa !important; }
.hero-buttons, .button-row { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.hero-buttons { margin-top: 1.6rem; }

.content { padding: 1rem 4vw 3rem; }
.section-title, .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-title h2, .section-heading h2 { font-size: 1.35rem; letter-spacing: -.03em; margin-bottom: .6rem; }
.section-title span, .section-heading p { color: #71717a; }
.movie-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
.movie-card { position: relative; min-height: 315px; border-radius: .75rem; overflow: hidden; background: #18181b; border: 1px solid #27272a; transition: .22s transform, .22s border-color; isolation: isolate; text-align: left; }
.movie-card:hover { transform: translateY(-5px) scale(1.012); border-color: #52525b; }
.movie-art { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(circle at 75% 18%, #8b5cf6 0, transparent 25%), linear-gradient(145deg, #27272a, #09090b 75%); }
.movie-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.movie-art.has-image::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg,rgba(9,9,11,.95),rgba(9,9,11,.03) 68%); }
.movie-art:not(.has-image)::after { content: attr(data-year); position: absolute; right: -.18em; bottom: -.2em; font-size: 8rem; font-weight: 800; color: #ffffff0a; }
.movie-copy { position: absolute; inset: auto 0 0; padding: 1.2rem; background: linear-gradient(transparent, #09090bf8 38%); }
.movie-copy h3 { margin: 3rem 0 .45rem; font-size: 1.16rem; }
.movie-copy p { margin: 0; color: #a1a1aa; font-size: .8rem; }
.badge { display: inline-flex; margin-top: .75rem; padding: .25rem .45rem; border: 1px solid #52525b; border-radius: .3rem; color: #d4d4d8; font-size: .68rem; }
.progress-mini { width: 100%; height: 4px; margin-top: .8rem; border: 0; appearance: none; }
.progress-mini::-webkit-progress-bar { background: #3f3f46; }
.progress-mini::-webkit-progress-value { background: #e11d48; }
.progress-mini::-moz-progress-bar { background: #e11d48; }
.compact .movie-card { min-height: 230px; }
.empty-state { grid-column: 1 / -1; padding: 2rem; border: 1px dashed #3f3f46; border-radius: .7rem; color: #71717a; text-align: center; }
.credits { padding: 1.5rem 4vw 3rem; color: #52525b; font-size: .75rem; }

.modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 1rem; }
.modal-backdrop { position: absolute; inset: 0; background: #000c; backdrop-filter: blur(8px); }
.details-card, .prepare-card, .edit-card { position: relative; width: min(780px, 100%); border-radius: 1rem; overflow: hidden; background: #18181b; border: 1px solid #3f3f46; box-shadow: 0 35px 100px #000; }
.details-art { position: relative; height: 300px; overflow: hidden; background: radial-gradient(circle at 72% 20%, #8b5cf6, transparent 28%), linear-gradient(145deg, #3f3f46, #09090b); }
.details-backdrop { width: 100%; height: 100%; object-fit: cover; display: block; }
.details-art.has-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(24,24,27,.85),rgba(24,24,27,.05)); }
.details-content { padding: 1.7rem 2rem 2rem; }
.details-content h2 { font-size: 2.6rem; letter-spacing: -.055em; margin: .6rem 0; }
.details-content p { color: #a1a1aa; line-height: 1.6; }
.close { position: absolute; z-index: 3; right: 1rem; top: 1rem; width: 2.4rem; height: 2.4rem; border-radius: 999px; background: #09090bcc; font-size: 1.5rem; }
.status-line { margin: 1rem 0; padding: .75rem; border-radius: .5rem; background: #27272a; color: #d4d4d8; }
.prepare-card { width: min(480px, 100%); min-height: 430px; padding: 2.4rem 2.2rem 2rem; display: flex; flex-direction: column; justify-content: center; overflow: visible; text-align: center; transition: width .25s ease, min-height .25s ease; }
.prepare-compact-view { display: grid; justify-items: center; gap: .45rem; padding: 1.1rem 0 1.4rem; }
.prepare-compact-view h2 { max-width: 100%; margin: 1.2rem 0 .15rem; overflow: hidden; color: #fafafa; font-size: clamp(1.65rem, 5vw, 2.2rem); letter-spacing: -.04em; line-height: 1.12; text-overflow: ellipsis; }
#prepareLead { margin: 0; color: #a1a1aa; font-size: 1rem; }
.prepare-cinema-loader { position: relative; width: 132px; height: 132px; display: grid; place-items: center; filter: drop-shadow(0 18px 32px rgba(0,0,0,.35)); }
.prepare-loader-orbit { position: absolute; inset: 0; border-radius: 50%; }
.prepare-loader-orbit::before { content: ''; position: absolute; inset: 0; border-radius: inherit; background: conic-gradient(from 0deg, transparent 0 8%, #a855f7 8% 25%, transparent 25% 45%, #ef4444 45% 58%, transparent 58% 78%, #22d3ee 78% 88%, transparent 88% 100%); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px)); mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #000 calc(100% - 4px)); animation: prepare-orbit 2.2s linear infinite; }
.prepare-loader-orbit-two { inset: 13px; opacity: .5; transform: rotate(180deg); }
.prepare-loader-orbit-two::before { background: conic-gradient(from 0deg, transparent 0 15%, #f8fafc 15% 25%, transparent 25% 60%, #8b5cf6 60% 72%, transparent 72% 100%); -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); animation-duration: 1.55s; animation-direction: reverse; }
.prepare-loader-core { position: relative; width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.16), transparent 34%), linear-gradient(145deg, rgba(168,85,247,.35), rgba(9,9,11,.92)); box-shadow: inset 0 0 24px rgba(255,255,255,.05), 0 0 34px rgba(168,85,247,.28); animation: prepare-core-pulse 1.8s ease-in-out infinite; }
.prepare-loader-core svg { width: 29px; height: 29px; margin-left: 3px; fill: #fff; filter: drop-shadow(0 2px 5px rgba(0,0,0,.45)); }
.prepare-loader-dot { position: absolute; width: 9px; height: 9px; border: 2px solid #18181b; border-radius: 50%; background: #f8fafc; box-shadow: 0 0 14px currentColor; }
.prepare-loader-dot-one { top: 6px; left: 50%; color: #a855f7; background: currentColor; animation: prepare-dot-one 2.2s linear infinite; }
.prepare-loader-dot-two { right: 9px; bottom: 22px; color: #22d3ee; background: currentColor; animation: prepare-dot-two 2.2s linear infinite; }
.prepare-loader-dot-three { left: 12px; bottom: 28px; color: #ef4444; background: currentColor; animation: prepare-dot-three 2.2s linear infinite; }
.prepare-cinema-loader.is-error .prepare-loader-orbit, .prepare-cinema-loader.is-error .prepare-loader-dot { animation-play-state: paused; }
.prepare-cinema-loader.is-error .prepare-loader-orbit::before { background: conic-gradient(#ef4444 0 32%, transparent 32% 50%, #ef4444 50% 82%, transparent 82%); }
.prepare-cinema-loader.is-error .prepare-loader-core { background: linear-gradient(145deg, rgba(239,68,68,.42), rgba(9,9,11,.94)); box-shadow: 0 0 34px rgba(239,68,68,.24); animation: none; }
.prepare-cinema-loader.is-error .prepare-loader-core svg { display: none; }
.prepare-cinema-loader.is-error .prepare-loader-core::after { content: '!'; color: #fff; font-size: 2rem; font-weight: 800; }
@keyframes prepare-orbit { to { transform: rotate(360deg); } }
@keyframes prepare-core-pulse { 0%,100% { transform: scale(.96); } 50% { transform: scale(1.04); } }
@keyframes prepare-dot-one { to { transform: rotate(360deg) translateY(-2px); } }
@keyframes prepare-dot-two { 50% { transform: translate(3px,-2px) scale(.72); } }
@keyframes prepare-dot-three { 50% { transform: translate(-2px,3px) scale(1.28); } }
.prepare-info-button { position: absolute; right: 1.05rem; bottom: 1.05rem; z-index: 3; width: 2.55rem; height: 2.55rem; padding: 0; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: rgba(9,9,11,.82); color: #e4e4e7; box-shadow: 0 10px 28px rgba(0,0,0,.28); transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.prepare-info-button span { font-family: Georgia, serif; font-size: 1.25rem; font-weight: 700; line-height: 1; transform: translateY(-1px); }
.prepare-info-button:hover, .prepare-info-button:focus-visible, .prepare-info-button.active { border-color: rgba(168,85,247,.72); background: #7c3aed; color: #fff; outline: none; transform: scale(1.07); }
.prepare-details { margin: .25rem 0 2.65rem; padding: 1.15rem; border: 1px solid rgba(255,255,255,.11); border-radius: .85rem; background: rgba(9,9,11,.48); text-align: left; animation: prepare-details-in .2s ease both; }
.prepare-details.hidden { display: none; }
.prepare-details-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.prepare-details-heading strong { color: #fafafa; font-size: .95rem; }
.prepare-details-heading span { color: #71717a; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.prepare-details-message { margin: .65rem 0 0; color: #d4d4d8; font-size: .82rem; line-height: 1.45; overflow-wrap: anywhere; }
@keyframes prepare-details-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
.edit-card { width: min(640px, 100%); max-height: 92vh; overflow-y: auto; padding: 2rem; }
.edit-card h2 { margin: 0 0 .4rem; }
.prepare-meter { margin-top: 1rem; }
.prepare-meter + .prepare-meter { margin-top: .8rem; }
.prepare-meter-label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .42rem; color: #d4d4d8; font-size: .78rem; }
.prepare-progress { width: 100%; height: 7px; margin: 0; border: 0; appearance: none; }
.prepare-progress::-webkit-progress-bar { background: #27272a; border-radius: 99px; }
.prepare-progress::-webkit-progress-value { background: linear-gradient(90deg, #8b5cf6, #ef4444); border-radius: 99px; }
.prepare-progress::-moz-progress-bar { background: #8b5cf6; border-radius: 99px; }
.prepare-buffer-progress::-webkit-progress-value { background: linear-gradient(90deg, #22c55e, #14b8a6); }
.prepare-buffer-progress::-moz-progress-bar { background: #22c55e; }
#prepareBufferGroup.hidden { display: none; }
.prepare-stats { display: flex; justify-content: space-between; gap: .75rem; margin-top: .75rem; color: #a1a1aa; font-size: .78rem; }
.fine { font-size: .72rem; line-height: 1.45; }

.player-modal { position: fixed; inset: 0; z-index: 80; background: #000; display: grid; grid-template-rows: auto 1fr; }
.player-top { height: 65px; display: flex; align-items: center; gap: 1rem; padding: 0 1.2rem; background: #09090b; }
.player-heading { display: grid; min-width: 0; }
.player-top span { color: #71717a; font-size: .78rem; }
.player-subtitle-controls { margin-left: auto; display: grid; justify-items: end; gap: .2rem; }
.player-subtitle-row { display: flex; align-items: center; gap: .45rem; }
.player-subtitle-controls select { min-width: 170px; height: 34px; padding: 0 .65rem; border-color: #3f3f46; background: #18181b; color: #f4f4f5; }
.subtitle-search { height: 34px; padding: 0 .75rem; border: 1px solid #3f3f46; border-radius: 8px; background: #18181b; color: #f4f4f5; white-space: nowrap; }
.subtitle-search:hover:not(:disabled) { border-color: #a855f7; }
.subtitle-search:disabled { opacity: .45; cursor: default; }
.player-subtitle-controls span { max-width: 360px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.player-modal video { width: 100%; height: calc(100vh - 65px); background: #000; }
.player-error { position: absolute; inset: 65px 0 0; display: grid; place-items: center; padding: 2rem; background: #09090b; color: #fca5a5; }

.admin-view { padding: 7.5rem 4vw 4rem; }
.admin-header h1 { font-size: clamp(2.4rem, 5vw, 4rem); letter-spacing: -.06em; margin: .5rem 0; }
.admin-header p, .section-heading p { color: #a1a1aa; }
.admin-section { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #27272a; }
.admin-section:first-of-type { margin-top: 2rem; }
.admin-grid { display: grid; gap: 1rem; margin-top: 1.2rem; }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel { padding: 1.35rem; border: 1px solid #27272a; border-radius: .8rem; background: #111113; align-content: start; }
.panel h3 { margin: 0 0 .2rem; font-size: 1.1rem; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.check-row { display: flex; gap: 1rem; flex-wrap: wrap; }
.check-row label { display: flex; align-items: center; gap: .45rem; }
.check-row input { width: auto; }
.integration-status { padding: .65rem .75rem; border-radius: .5rem; background: #27272a; color: #a1a1aa; }
.integration-status.connected { background: #123323; color: #86efac; }

.loading-row, .error-row { padding: 1rem; border-radius: .6rem; background: #18181b; color: #a1a1aa; }
.error-row { color: #fca5a5; }

.management-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, .8fr); gap: 1.2rem; margin-top: 2rem; }
.subheading { margin: 0 0 .8rem; color: #d4d4d8; }
.management-list { display: grid; gap: .75rem; }
.management-card { display: grid; grid-template-columns: 86px 1fr; gap: 1rem; padding: .8rem; border: 1px solid #27272a; border-radius: .8rem; background: #111113; }
.management-poster { width: 86px; min-height: 128px; border-radius: .5rem; }
.management-main { min-width: 0; }
.management-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.compact-buttons .secondary, .compact-buttons .danger { min-height: 34px; padding: .45rem .7rem; font-size: .78rem; }
.release-list { display: grid; gap: .4rem; margin-top: .75rem; }
.release-row, .muted-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem .65rem; border-radius: .5rem; background: #18181b; }
.release-row div { min-width: 0; }
.release-row strong { display: block; font-size: .78rem; font-weight: 600; }
.release-row span, .muted-row { color: #71717a; font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.library-card { display: grid; gap: .8rem; padding: 1rem; border: 1px solid #27272a; border-radius: .8rem; background: #111113; }
.library-card p { word-break: break-all; }
.library-card span { display: block; margin-top: .45rem; color: #71717a; font-size: .76rem; }
.library-card em { display: block; margin-top: .45rem; color: #fca5a5; font-size: .76rem; font-style: normal; }

.toast { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 100; max-width: min(430px, calc(100vw - 2.4rem)); padding: .85rem 1rem; border-radius: .6rem; background: #fff; color: #111; box-shadow: 0 15px 50px #0008; transform: translateY(130px); transition: .25s; }
.toast.show { transform: none; }

@media (max-width: 1050px) {
  .three-columns { grid-template-columns: 1fr 1fr; }
  .management-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .player-top { height: auto; min-height: 65px; flex-wrap: wrap; padding-top: .55rem; padding-bottom: .55rem; }
  .player-subtitle-controls { width: 100%; margin-left: 0; align-items: center; justify-items: stretch; }
  .player-subtitle-row { width: 100%; }
  .player-subtitle-controls select { min-width: 0; flex: 1; }
  .player-modal video { height: calc(100vh - 112px); }
  .topbar { padding: 0 1rem; gap: 1rem; }
  .topbar nav { display: none; }
  .top-actions span { display: none; }
  .catalog-search-mode { min-width: 70px; width: 70px; }
  .catalog-search { width: 150px; }
  .hero { min-height: 600px; padding: 7rem 1.2rem 3rem; background-position: 65% center; }
  .hero h1 { font-size: 3.8rem; }
  .content, .admin-view { padding-left: 1rem; padding-right: 1rem; }
  .movie-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
  .movie-card { min-height: 270px; }
  .two-columns, .three-columns { grid-template-columns: 1fr; }
  .details-art { height: 210px; }
  .details-content { padding: 1.3rem; }
  .details-content h2 { font-size: 2rem; }
  .management-title { display: grid; }
}

@media (max-width: 520px) {
  .movie-grid { grid-template-columns: 1fr 1fr; }
  .movie-card { min-height: 235px; }
  .movie-copy { padding: .85rem; }
  .movie-copy h3 { font-size: 1rem; }
  .top-actions { gap: .55rem; }
  .brand span:last-child { display: none; }
  .catalog-search-mode { min-width: 66px; width: 66px; padding-left: .42rem; padding-right: .42rem; }
  .catalog-search { width: 125px; }
  .management-card { grid-template-columns: 68px 1fr; }
  .management-poster { width: 68px; min-height: 102px; }
  .two { grid-template-columns: 1fr; }
}

/* v0.3.0 configurable provider adapters */
.provider-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, .7fr); gap: 1rem; margin-top: 1.2rem; align-items: start; }
.provider-form { gap: .9rem; }
.provider-form-title, .provider-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.provider-form-title h3, .provider-heading h4 { margin: 0; }
.provider-form-title p, .provider-heading p { margin: .35rem 0 0; color: #71717a; font-size: .78rem; }
.no-margin { margin-top: 0; }
.form-subtitle { margin: .35rem 0 -.2rem; color: #d4d4d8; font-size: .92rem; }
.mapping-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.provider-checks { padding: .8rem; border-radius: .55rem; background: #18181b; }
.provider-help ol { margin: .5rem 0 1rem; padding-left: 1.2rem; color: #a1a1aa; font-size: .82rem; line-height: 1.55; }
.code-sample { overflow-x: auto; padding: .9rem; border: 1px solid #27272a; border-radius: .55rem; background: #09090b; color: #d8b4fe; font-size: .75rem; line-height: 1.5; }
.provider-list-title { margin-top: 1.5rem; align-items: center; }
.provider-list-title h3 { margin: 0; }
.provider-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #27272a; border-radius: .8rem; background: #111113; }
.provider-card-main { min-width: 0; flex: 1; }
.provider-method { padding: .28rem .48rem; border-radius: .35rem; background: #3b0764; color: #e9d5ff; font-size: .68rem; font-weight: 700; }
.provider-endpoint { display: block; margin-top: .65rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #c4b5fd; font-size: .76rem; }
.provider-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: .65rem; color: #71717a; font-size: .73rem; }
.provider-error, .provider-ok { margin-top: .65rem; padding: .55rem .65rem; border-radius: .45rem; font-size: .74rem; }
.provider-error { background: #3f1518; color: #fca5a5; }
.provider-ok { background: #123323; color: #86efac; }
.provider-actions { flex: 0 0 auto; }
.provider-results-card { width: min(860px, 100%); }
.provider-results-card h2 { margin: .55rem 0 .25rem; }
.provider-results-list { display: grid; gap: .65rem; margin-top: 1.2rem; }
.provider-result { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem; border: 1px solid #27272a; border-radius: .65rem; background: #111113; }
.provider-result h4 { margin: 0 0 .3rem; }
.provider-result p { margin: 0; color: #a1a1aa; font-size: .8rem; }
.provider-result span { display: block; margin-top: .35rem; color: #71717a; font-size: .75rem; }
.provider-error-list { margin-top: .8rem; padding: .65rem; border-radius: .5rem; background: #3f1518; color: #fca5a5; text-align: left; }
.provider-error-list p { margin: .25rem 0; font-size: .75rem; }

@media (max-width: 1050px) {
  .provider-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .mapping-grid { grid-template-columns: 1fr 1fr; }
  .provider-card, .provider-result { align-items: stretch; flex-direction: column; }
  .provider-actions { width: 100%; }
}

@media (max-width: 520px) {
  .mapping-grid { grid-template-columns: 1fr; }
}

.account-list-heading { margin-top: 1.5rem; }
.account-list-heading h3 { margin: 0 0 .25rem; }
.account-list { margin-top: .8rem; }
.account-card { padding: 1rem; border: 1px solid #27272a; border-radius: .8rem; background: #111113; }
.account-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.account-heading h4 { margin: 0 0 .3rem; }
.account-heading p { margin: 0; color: #a1a1aa; font-size: .8rem; text-transform: capitalize; }
.viewer-count { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 .55rem; border-radius: 999px; background: #27272a; color: #a1a1aa; font-size: .78rem; }
.viewer-count.active { background: #123323; color: #86efac; }
.account-settings { display: grid; grid-template-columns: minmax(140px, .55fr) minmax(180px, .7fr) auto; gap: .75rem; align-items: end; margin-top: .9rem; }
.account-settings label { margin: 0; }
.account-settings button { min-height: 42px; }
.account-hint { margin: .65rem 0 0; color: #71717a; }
.viewer-list { display: grid; gap: .4rem; margin-top: .8rem; }
.viewer-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .6rem .7rem; border-radius: .5rem; background: #18181b; }
.viewer-row div { min-width: 0; }
.viewer-row strong { display: block; font-size: .8rem; }
.viewer-row span { display: block; margin-top: .2rem; color: #71717a; font-size: .73rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 800px) {
  .account-settings { grid-template-columns: 1fr 1fr; }
  .account-settings button { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .account-settings { grid-template-columns: 1fr; }
  .account-settings button { grid-column: auto; }
  .viewer-row { align-items: stretch; flex-direction: column; }
}

/* v0.8.0 personalized home, cache administration, and custom player */
.personalized-section { padding-top: 1.4rem; }
.personalized-section + .personalized-section { padding-top: .2rem; }
.movie-grid.compact { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.movie-grid.compact .movie-card { min-width: 0; }
.movie-grid.compact .movie-art { aspect-ratio: 16 / 9; }
.movie-grid.compact .movie-copy h3 { font-size: .95rem; }
.cache-summary { color: #a1a1aa; font-size: .92rem; white-space: nowrap; }
.cache-panel { display: grid; gap: 1rem; }
.cache-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.cache-items { display: grid; gap: .55rem; }
.cache-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .6rem; align-items: center; padding: .72rem .85rem; border: 1px solid #27272a; border-radius: 10px; background: #111114; }
.cache-item strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cache-item span { color: #a1a1aa; font-size: .82rem; }

.player-modal { position: fixed; inset: 0; z-index: 80; background: #000; display: block; }
.player-shell { position: relative; width: 100%; height: 100%; overflow: hidden; background: #000; cursor: default; }
.player-shell video { width: 100%; height: 100%; object-fit: contain; background: #000; }
.player-close-button { position: absolute; top: 1.3rem; right: 1.4rem; z-index: 8; width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(9,9,11,.78); color: transparent; font-size: 0; line-height: 1; display: grid; place-items: center; backdrop-filter: blur(10px); transition: opacity .22s ease, transform .18s ease, background .18s ease; }
.player-close-button::before, .player-close-button::after { content: ""; position: absolute; width: 27px; height: 3.2px; border-radius: 999px; background: #fff; }
.player-close-button::before { transform: rotate(45deg); }
.player-close-button::after { transform: rotate(-45deg); }
.player-close-button:hover { background: rgba(39,39,42,.92); transform: scale(1.05); }

.player-loading { position: absolute; inset: 0; z-index: 5; display: grid; place-content: center; justify-items: center; gap: .72rem; padding: 2rem; color: #fff; text-align: center; pointer-events: none; background: radial-gradient(circle at center, rgba(20,20,24,.38), rgba(0,0,0,.08) 42%, transparent 68%); }
.player-loading-spinner { width: 58px; height: 58px; border: 4px solid rgba(255,255,255,.2); border-top-color: #fff; border-radius: 50%; animation: player-loading-spin .8s linear infinite; }
.player-loading strong { max-width: min(680px, 84vw); margin-top: .15rem; overflow: hidden; color: #fff; font-size: 1.18rem; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.player-loading > span { color: #d4d4d8; font-size: .9rem; line-height: 1.4; }
.player-loading-track { position: relative; width: min(260px, 60vw); height: 4px; margin-top: .15rem; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.2); }
.player-volume-hud { position: absolute; left: 50%; top: 50%; z-index: 12; min-width: 190px; display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: rgba(12,12,15,.84); color: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.55); opacity: 0; pointer-events: none; transform: translate(-50%, -42%) scale(.96); backdrop-filter: blur(14px); transition: opacity .18s ease, transform .18s ease; }
.player-volume-hud.is-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.player-volume-hud svg { width: 28px; height: 28px; flex: 0 0 auto; fill: currentColor; }
.player-volume-hud-copy { min-width: 120px; display: grid; gap: .42rem; }
.player-volume-hud-copy strong { font-size: 1rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.player-volume-hud-track { display: block; width: 120px; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.22); }
.player-volume-hud-track span { display: block; width: 100%; height: 100%; border-radius: inherit; background: #fff; transition: width .12s ease; }
.player-loading-track span { position: absolute; inset: 0 auto 0 0; width: 38%; border-radius: inherit; background: #fff; animation: player-loading-sweep 1.25s ease-in-out infinite; }
.player-shell.is-loading { cursor: wait; }
@keyframes player-loading-spin { to { transform: rotate(360deg); } }
@keyframes player-loading-sweep { 0% { transform: translateX(-110%); } 55% { transform: translateX(95%); } 100% { transform: translateX(270%); } }

.player-controls { position: absolute; inset: auto 0 0; z-index: 7; padding: 4.6rem 1.7rem 1.25rem; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.42) 24%, rgba(0,0,0,.93) 100%); transition: opacity .25s ease, transform .25s ease; }
.player-shell.controls-hidden .player-controls, .player-shell.controls-hidden .player-close-button { opacity: 0; pointer-events: none; }
.player-shell.controls-hidden { cursor: none; }
.player-progress-row { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .9rem; align-items: center; }
.player-timeline-preview { position: absolute; left: 0; bottom: calc(100% + .72rem); z-index: 10; width: 204px; overflow: hidden; border: 2px solid rgba(255,255,255,.92); border-radius: 8px; background: #111114; color: #fff; box-shadow: 0 12px 34px rgba(0,0,0,.72); pointer-events: none; transform: translateX(-50%); }
.player-timeline-preview::after { content: ''; position: absolute; left: 50%; bottom: -7px; width: 12px; height: 12px; border-right: 2px solid rgba(255,255,255,.92); border-bottom: 2px solid rgba(255,255,255,.92); background: #111114; transform: translateX(-50%) rotate(45deg); }
.player-timeline-canvas { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #050507; }
.player-timeline-copy { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 30px; padding: .35rem .55rem; background: rgba(17,17,20,.98); text-align: center; }
.player-timeline-copy strong { color: #fff; font-size: .82rem; font-variant-numeric: tabular-nums; }
.player-timeline-copy small { overflow: hidden; color: #d4d4d8; font-size: .67rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.player-timeline-preview.is-ready .player-timeline-copy small { display: none; }
.player-timeline-preview.is-status-only { width: min(270px, calc(100vw - 2rem)); }
.player-timeline-preview.is-status-only .player-timeline-copy { min-height: 42px; }
.player-seek { --seek-value: 0%; width: 100%; height: 18px; margin: 0; appearance: none; background: transparent; cursor: pointer; }
.player-seek::-webkit-slider-runnable-track { height: 5px; border-radius: 999px; background: linear-gradient(90deg,#ef4444 var(--seek-value),rgba(255,255,255,.45) var(--seek-value)); }
.player-seek::-moz-range-track { height: 5px; border-radius: 999px; background: rgba(255,255,255,.45); }
.player-seek::-moz-range-progress { height: 5px; border-radius: 999px; background: #ef4444; }
.player-seek::-webkit-slider-thumb { appearance: none; width: 17px; height: 17px; margin-top: -6px; border-radius: 50%; border: 0; background: #ef4444; box-shadow: 0 0 0 2px rgba(0,0,0,.2); }
.player-seek::-moz-range-thumb { width: 17px; height: 17px; border: 0; border-radius: 50%; background: #ef4444; }
.player-time { min-width: 112px; color: #f4f4f5; font-variant-numeric: tabular-nums; text-align: right; font-size: .92rem; }
.player-actions-row { position: relative; min-height: 66px; display: grid; grid-template-columns: 1fr minmax(180px,1.2fr) 1fr; align-items: center; gap: 1rem; }
.player-actions { display: flex; align-items: center; gap: .42rem; }
.player-actions-right { justify-content: flex-end; }
.player-center-title { display: grid; justify-items: center; min-width: 0; pointer-events: none; }
.player-center-title strong { max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 1.05rem; }
.player-center-title span { max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #a1a1aa; font-size: .72rem; }
.player-icon-button { position: relative; width: 48px; height: 48px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: #fff; transition: background .16s ease, transform .16s ease; }
.player-icon-button:hover, .player-icon-button:focus-visible { background: rgba(255,255,255,.14); transform: scale(1.07); outline: none; }
.player-icon-button svg { width: 31px; height: 31px; fill: currentColor; }
.player-skip-button { isolation: isolate; }
.player-skip-button .player-skip-svg { width: 42px; height: 42px; fill: none; overflow: visible; }
.player-skip-ring, .player-skip-corner { fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }
.player-skip-number { position: absolute; left: 50%; top: 55%; transform: translate(-50%, -50%); z-index: 1; font-size: .82rem; font-weight: 650; line-height: 1; letter-spacing: -.025em; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.player-primary-control { width: 56px; height: 56px; }
.player-primary-control svg { width: 42px; height: 42px; }
.player-primary-control .icon-pause { display: none; }
.player-shell.is-playing .player-primary-control .icon-play { display: none; }
.player-shell.is-playing .player-primary-control .icon-pause { display: block; }
.player-volume { width: 85px; height: 4px; accent-color: #fff; }
.speed-button { border: 2px solid currentColor; width: 43px; height: 43px; font-size: .8rem; font-weight: 700; }
.player-popover { position: absolute; right: 1.5rem; bottom: 6.6rem; width: min(460px, calc(100vw - 3rem)); max-height: min(68vh, 560px); overflow: auto; padding: 1.1rem; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(17,17,20,.995); color: #fafafa; box-shadow: 0 24px 72px rgba(0,0,0,.68); backdrop-filter: blur(20px); }
.speed-popover { width: 240px; }
.popover-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.popover-header > div { display: grid; min-width: 0; gap: .28rem; }
.popover-header strong, .popover-section-title { color: #fff; font-size: 1.02rem; font-weight: 700; line-height: 1.25; }
.popover-header span { color: #d4d4d8; font-size: .82rem; line-height: 1.4; }
.popover-action { min-height: 38px; border: 1px solid #63636d; border-radius: 9px; padding: .5rem .75rem; background: #2b2b30; color: #fff; font-size: .84rem; font-weight: 600; white-space: nowrap; }
.popover-action:hover:not(:disabled) { border-color: #a1a1aa; background: #36363d; }
.popover-action:disabled { opacity: 1; border-color: #4b4b54; background: #222227; color: #d4d4d8; cursor: wait; }
.popover-options { display: grid; gap: .45rem; }
.popover-section-title + .popover-options { margin-top: .7rem; }
.popover-option, .speed-options button { position: relative; width: 100%; min-height: 48px; padding: .76rem 3rem .76rem .9rem; border: 1px solid transparent; border-radius: 10px; background: #242428; color: #f4f4f5; font-size: .92rem; line-height: 1.3; text-align: left; }
.popover-option:hover, .speed-options button:hover { border-color: #52525b; background: #2d2d32; }
.popover-option.active, .speed-options button.active { border-color: #666671; background: #414149; color: #fff; }
.popover-option.active::after, .speed-options button.active::after { content: '✓'; position: absolute; top: 50%; right: .95rem; color: #fff; font-size: 1.05rem; font-weight: 700; transform: translateY(-50%); }
.subtitle-option { display: flex; align-items: center; }
.subtitle-option-copy { display: grid; min-width: 0; gap: .18rem; }
.subtitle-option-title { overflow: hidden; color: #fff; font-size: .96rem; font-weight: 620; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.subtitle-option-meta { overflow: hidden; color: #d4d4d8; font-size: .76rem; font-weight: 430; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.player-shell video { color-scheme: dark; }
.player-error { position: absolute; inset: 0; z-index: 9; display: grid; place-items: center; padding: 2rem; background: #09090b; color: #fca5a5; }

@media (max-width: 560px) {
  .prepare-card { min-height: 390px; padding: 2rem 1.25rem 1.5rem; }
  .prepare-cinema-loader { width: 112px; height: 112px; }
  .prepare-loader-core { width: 54px; height: 54px; }
  .prepare-details { margin-bottom: 2.9rem; padding: .95rem; }
  .prepare-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .prepare-loader-orbit::before, .prepare-loader-core, .prepare-loader-dot { animation-duration: 5s; }
}

@media (max-width: 760px) {
  .player-controls { padding: 3.5rem .7rem .65rem; }
  .player-actions-row { grid-template-columns: 1fr auto; gap: .35rem; }
  .player-center-title { position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%); width: 70%; }
  .player-volume { display: none; }
  .player-icon-button { width: 42px; height: 42px; }
  .player-skip-button .player-skip-svg { width: 37px; height: 37px; }
  .player-skip-number { font-size: .74rem; top: 55%; }
  .player-loading-spinner { width: 48px; height: 48px; border-width: 3px; }
  .player-loading strong { font-size: 1rem; }
  .player-primary-control { width: 48px; height: 48px; }
  .player-actions { gap: .1rem; }
  .player-time { min-width: 82px; font-size: .75rem; }
  .player-popover { right: .6rem; bottom: 5.6rem; width: calc(100vw - 1.2rem); padding: .9rem; }
  .popover-header { gap: .65rem; }
  .popover-header span { font-size: .76rem; }
  .popover-action { padding-inline: .62rem; font-size: .78rem; }
  .subtitle-option-title, .subtitle-option-meta { white-space: normal; }
  .player-close-button { top: .65rem; right: .65rem; width: 44px; height: 44px; }
  .player-close-button::before, .player-close-button::after { width: 22px; height: 3px; }
  .movie-grid.compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* v0.9.0 TMDB-native personalized home */
.catalog-row-section { position: relative; padding: .8rem 4vw 2.4rem; overflow: hidden; }
.catalog-row-section:first-of-type { padding-top: 1.4rem; }
.genre-sections { display: block; }
.catalog-row-shell { position: relative; }
.movie-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(180px, 15vw, 230px);
  gap: .85rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: .4rem .15rem 1rem;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}
.movie-row::-webkit-scrollbar { display: none; }
.movie-row .movie-card { min-height: 325px; scroll-snap-align: start; }
.movie-row .movie-copy h3 { margin-top: 3.6rem; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.movie-row .movie-copy p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.row-arrow {
  position: absolute;
  z-index: 6;
  top: .4rem;
  bottom: 1rem;
  width: 3rem;
  display: grid;
  place-items: center;
  border-radius: .7rem;
  background: linear-gradient(90deg, #09090bf2, #09090b99);
  color: #fff;
  font-size: 2.8rem;
  opacity: 0;
  transition: opacity .18s ease, background .18s ease;
}
.catalog-row-shell:hover .row-arrow { opacity: 1; }
.row-arrow:hover { background: #18181bf2; }
.row-arrow-left { left: -.6rem; }
.row-arrow-right { right: -.6rem; background: linear-gradient(270deg, #09090bf2, #09090b99); }
.row-arrow.disabled { opacity: 0 !important; pointer-events: none; }
.resume-label { display: block; margin-top: .55rem; color: #e4e4e7; font-size: .72rem; }
.search-results-section { min-height: calc(100vh - 68px); padding-top: 7rem; }
#homeCatalogStatus { color: #fbbf24; font-size: .76rem; }

@media (max-width: 760px) {
  .catalog-row-section { padding-left: 1rem; padding-right: 1rem; }
  .movie-row { grid-auto-columns: minmax(155px, 44vw); gap: .65rem; }
  .movie-row .movie-card { min-height: 260px; }
  .row-arrow { display: none; }
  .search-results-section { padding-top: 6rem; }
}

.management-poster img { width:100%; height:100%; object-fit:cover; display:block; }
.management-card h4, .library-card h4 { margin:0 0 .35rem; }
.management-card p, .library-card p { margin:0; color:#a1a1aa; font-size:.82rem; }


/* v0.9.1 recent-English home, account menu, and stronger card typography */
.account-menu { position: relative; }
.account-trigger {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  gap: .62rem;
  padding: .28rem .35rem .28rem .28rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #f4f4f5 !important;
  font-weight: 650;
  letter-spacing: -.01em;
}
.account-trigger:hover, .account-trigger[aria-expanded="true"] { background: rgba(255,255,255,.09); }
.account-avatar {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.88);
  border-radius: 50%;
  background: radial-gradient(circle at 45% 34%, #f4f4f5 0 13%, #a1a1aa 38%, #3f3f46 69%, #18181b 100%);
  color: rgba(9,9,11,.7);
  overflow: hidden;
}
.account-avatar svg { width: 24px; height: 24px; fill: currentColor; opacity: .72; }
.account-name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-chevron {
  width: 18px;
  height: 18px;
  margin-right: .18rem;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: #f4f4f5;
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform .18s ease;
}
.account-chevron svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.account-trigger[aria-expanded="true"] .account-chevron { transform: rotate(180deg); }
.account-popover {
  position: absolute;
  top: calc(100% + .65rem);
  right: 0;
  z-index: 40;
  width: min(300px, calc(100vw - 2rem));
  padding: 1.05rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: rgba(24,27,33,.98);
  box-shadow: 0 28px 75px rgba(0,0,0,.58);
  backdrop-filter: blur(20px);
}
.account-popover::before { content: ''; position: absolute; top: -.42rem; right: 1.35rem; width: .8rem; height: .8rem; border-left: 1px solid rgba(255,255,255,.1); border-top: 1px solid rgba(255,255,255,.1); background: #181b21; transform: rotate(45deg); }
.account-popover-kicker { display: block; padding: .2rem .45rem .85rem; color: #8b8d94; font-size: .73rem; font-weight: 700; letter-spacing: .12em; }
.account-summary { display: flex; align-items: center; gap: .8rem; padding: .45rem .45rem 1rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.account-avatar-large { width: 48px; height: 48px; flex: 0 0 auto; }
.account-summary strong, .account-summary span { display: block; }
.account-summary strong { color: #fff; font-size: 1rem; }
.account-summary span { margin-top: .15rem; color: #a1a1aa; font-size: .78rem; }
.account-menu-item { width: 100%; min-height: 46px; margin-top: .35rem; padding: .72rem .75rem; border: 0; border-radius: 10px; background: transparent; color: #f4f4f5 !important; text-align: left; font-weight: 650; }
.account-menu-item:hover { background: rgba(255,255,255,.08); }
.account-menu-logout { color: #fca5a5 !important; }

.catalog-row-section .section-title h2 { margin-bottom: .35rem; color: #fafafa; font-size: clamp(1.55rem, 2.15vw, 2.15rem); font-weight: 760; letter-spacing: -.045em; }
.movie-art.has-image::before { background: linear-gradient(0deg, rgba(5,5,7,.99) 0%, rgba(5,5,7,.86) 27%, rgba(5,5,7,.22) 58%, transparent 76%); }
.movie-copy { padding: 1.15rem; background: linear-gradient(transparent, rgba(5,5,7,.97) 45%, #050507 100%); text-shadow: 0 2px 12px rgba(0,0,0,.9); }
.movie-copy h3 { margin: 3.1rem 0 .5rem; color: #fff; font-size: 1.08rem; font-weight: 760; line-height: 1.22; letter-spacing: -.025em; opacity: 1; }
.movie-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .42rem; color: #e4e4e7; font-size: .79rem; font-weight: 620; line-height: 1.3; opacity: 1; }
.movie-meta span:not(:first-child)::before { content: '·'; margin-right: .42rem; color: #a1a1aa; }
.movie-meta .movie-rating { color: #fde68a; }
.movie-row .movie-copy h3 { margin-top: 3.6rem; color: #fff; font-size: 1.04rem; font-weight: 760; }
.movie-row .movie-meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 800px) {
  .top-actions .account-avatar { display: grid; }
  .top-actions .account-popover-kicker, .top-actions .account-summary span { display: block; }
  .account-name { display: none; }
  .account-chevron { display: none; }
  .account-trigger { padding-right: .28rem; }
  .account-popover { right: -.25rem; }
}

@media (max-width: 520px) {
  .account-avatar { width: 34px; height: 34px; }
  .catalog-row-section .section-title h2 { font-size: 1.5rem; }
  .movie-copy h3 { font-size: .98rem; }
  .movie-meta { font-size: .72rem; }
}


/* v0.9.2 card text stacking and contrast fix */
.movie-card .movie-art { z-index: 0; }
.movie-card .movie-art.has-image::before { z-index: 1; pointer-events: none; }
.movie-card .movie-copy {
  z-index: 2;
  background: linear-gradient(180deg, transparent 0%, rgba(3,3,5,.68) 28%, rgba(3,3,5,.96) 64%, #030305 100%);
  text-shadow: 0 2px 4px rgba(0,0,0,1), 0 0 16px rgba(0,0,0,.95);
}
.movie-card .movie-copy h3 {
  color: #fff !important;
  opacity: 1 !important;
  text-shadow: 0 2px 4px #000, 0 0 18px #000;
}
.movie-card .movie-meta {
  color: #f4f4f5 !important;
  opacity: 1 !important;
  text-shadow: 0 2px 4px #000, 0 0 14px #000;
}
.movie-card .movie-meta .movie-rating { color: #fef08a !important; }

/* v0.9.3 professional home hero */
.topbar {
  height: 64px;
  padding-inline: clamp(1.2rem, 3.2vw, 4rem);
  background: linear-gradient(180deg, rgba(5,5,7,.96) 0%, rgba(5,5,7,.72) 66%, transparent 100%);
  transition: background .22s ease, border-color .22s ease, box-shadow .22s ease, backdrop-filter .22s ease;
}
.topbar.is-scrolled {
  background: rgba(8,8,10,.94);
  border-bottom: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
}

.hero {
  height: clamp(520px, 65vh, 660px);
  min-height: 520px;
  align-items: flex-end;
  padding: 6.5rem clamp(1.4rem, 4vw, 5rem) 6.25rem;
  background-color: #09090b;
}
.hero-backdrop {
  object-position: center 30%;
  transform: scale(1.01);
  filter: saturate(.9) contrast(1.04) brightness(.92);
}
.hero-shade {
  background:
    linear-gradient(90deg, rgba(6,6,8,.99) 0%, rgba(6,6,8,.94) 12%, rgba(6,6,8,.72) 38%, rgba(6,6,8,.24) 69%, rgba(6,6,8,.06) 100%),
    linear-gradient(0deg, #09090b 0%, rgba(9,9,11,.82) 9%, rgba(9,9,11,.2) 38%, transparent 58%),
    linear-gradient(180deg, rgba(9,9,11,.3) 0%, transparent 24%);
}
.hero-content {
  width: min(620px, 52vw);
  max-width: 620px;
  padding-bottom: .25rem;
}
.hero .eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: .35rem .62rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(9,9,11,.42);
  color: #f5f3ff;
  font-size: .66rem;
  letter-spacing: .14em;
  backdrop-filter: blur(8px);
}
.hero h1 {
  display: -webkit-box;
  max-width: 14ch;
  margin: .8rem 0 .72rem;
  overflow: hidden;
  color: #fff;
  font-size: clamp(2.9rem, 5.1vw, 5.1rem);
  font-weight: 790;
  letter-spacing: -.065em;
  line-height: .95;
  text-wrap: balance;
  text-shadow: 0 5px 28px rgba(0,0,0,.82);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.hero .meta {
  margin: 0 0 .85rem;
  color: #e4e4e7 !important;
  font-size: .92rem;
  font-weight: 520;
  letter-spacing: .01em;
}
.hero #heroOverview {
  display: -webkit-box;
  max-width: 560px;
  margin: 0;
  overflow: hidden;
  color: #e4e4e7;
  font-size: clamp(.94rem, 1.05vw, 1.04rem);
  line-height: 1.55;
  text-shadow: 0 2px 12px rgba(0,0,0,.82);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.hero-buttons { margin-top: 1.25rem; gap: .65rem; }
.hero-buttons .primary,
.hero-buttons .secondary {
  min-height: 46px;
  padding: .72rem 1.22rem;
  border-radius: .48rem;
  font-size: .94rem;
  box-shadow: 0 9px 25px rgba(0,0,0,.24);
}
.hero-buttons .secondary {
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(63,63,70,.78);
  backdrop-filter: blur(10px);
}

#continueSection:not(.hidden),
#continueSection.hidden + #whatsNewSection:not(.hidden) {
  z-index: 5;
  margin-top: -4.6rem;
  padding-top: 0;
}
.catalog-row-section {
  background: linear-gradient(180deg, rgba(9,9,11,0) 0%, #09090b 2.8rem);
}
.catalog-row-section .section-title h2 {
  text-shadow: 0 2px 16px rgba(0,0,0,.8);
}

@media (max-width: 980px) {
  .hero {
    height: clamp(520px, 68svh, 620px);
    padding-inline: clamp(1.2rem, 4vw, 2.2rem);
    padding-bottom: 5rem;
  }
  .hero-content { width: min(670px, 78vw); }
  .hero h1 { max-width: 15ch; font-size: clamp(2.8rem, 7.5vw, 4.6rem); }
  #continueSection:not(.hidden),
  #continueSection.hidden + #whatsNewSection:not(.hidden) { margin-top: -3.5rem; }
}

@media (max-width: 800px) {
  .topbar { height: 60px; }
  .hero {
    min-height: 540px;
    height: 70svh;
    padding: 6rem 1.2rem 4.5rem;
  }
  .hero-backdrop { object-position: 62% center; }
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(6,6,8,.97) 0%, rgba(6,6,8,.78) 55%, rgba(6,6,8,.28) 100%),
      linear-gradient(0deg, #09090b 0%, rgba(9,9,11,.72) 17%, transparent 55%);
  }
  .hero-content { width: min(620px, 94vw); }
  .hero h1 { max-width: 14ch; font-size: clamp(2.55rem, 11vw, 3.8rem); line-height: .98; }
  .hero #heroOverview { max-width: 92vw; -webkit-line-clamp: 3; }
}

@media (max-width: 520px) {
  .hero { min-height: 520px; height: 74svh; padding-bottom: 4rem; }
  .hero .eyebrow { font-size: .59rem; }
  .hero h1 { font-size: clamp(2.35rem, 12vw, 3.2rem); }
  .hero .meta { font-size: .8rem; }
  .hero #heroOverview { font-size: .9rem; line-height: 1.48; }
  .hero-buttons .primary, .hero-buttons .secondary { min-height: 43px; padding: .62rem .95rem; }
  #continueSection:not(.hidden),
  #continueSection.hidden + #whatsNewSection:not(.hidden) { margin-top: -2.75rem; }
}


/* v0.9.5 full-resolution landscape details artwork and close control */
.details-card { width: min(900px, 100%); }
.details-art {
  height: 360px;
  overflow: visible;
  background:
    radial-gradient(circle at 72% 24%, rgba(168,85,247,.25), transparent 34%),
    linear-gradient(145deg, #27272a, #09090b 78%);
}
.details-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  filter: saturate(.98) contrast(1.04) brightness(.88);
  transform: scale(1.002);
}
.details-art.has-image::after {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(9,9,11,.78) 0%, rgba(9,9,11,.26) 44%, rgba(9,9,11,.08) 100%),
    linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.74) 18%, rgba(24,24,27,.06) 64%);
}
.details-poster {
  position: absolute;
  z-index: 2;
  left: 2rem;
  bottom: -4.75rem;
  width: 154px;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  border: 2px solid rgba(255,255,255,.88);
  border-radius: .72rem;
  background: #111113;
  box-shadow: 0 20px 48px rgba(0,0,0,.64), 0 0 0 1px rgba(0,0,0,.42);
}
.details-content { padding: 1.8rem 2rem 2rem; }
.details-art.has-poster + .details-content { padding-left: 13.25rem; min-height: 13.2rem; }
.close {
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.09);
  line-height: 1;
  color: #fff;
}
.close-glyph {
  position: relative;
  display: block;
  width: 16px;
  height: 16px;
}
.close-glyph::before,
.close-glyph::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 19px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
}
.close-glyph::before { transform: translate(-50%, -50%) rotate(45deg); }
.close-glyph::after { transform: translate(-50%, -50%) rotate(-45deg); }

@media (max-width: 680px) {
  .details-art { height: 270px; }
  .details-poster { left: 1.15rem; bottom: -3.3rem; width: 108px; border-radius: .58rem; }
  .details-art.has-poster + .details-content { padding-left: 1.25rem; padding-top: 4.5rem; min-height: 0; }
  .details-content { padding-inline: 1.25rem; }
  .details-content h2 { font-size: clamp(2rem, 10vw, 2.6rem); }
}

/* v0.9.5 prefer genuine landscape artwork and never enlarge a portrait into a blurry banner */
.details-art {
  height: 390px;
  background:
    radial-gradient(circle at 78% 22%, rgba(168,85,247,.2), transparent 36%),
    linear-gradient(132deg, #252329 0%, #111114 48%, #08080a 100%);
}
.details-backdrop {
  object-position: center 36%;
  filter: saturate(1.06) contrast(1.07) brightness(.92);
  transform: none;
  image-rendering: auto;
}
.details-art.has-landscape::after {
  background:
    linear-gradient(90deg, rgba(9,9,11,.7) 0%, rgba(9,9,11,.2) 42%, rgba(9,9,11,.04) 100%),
    linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.62) 15%, rgba(24,24,27,.02) 68%);
}
.details-art.poster-fallback::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 72% 28%, rgba(192,132,252,.18), transparent 28%),
    radial-gradient(circle at 24% 72%, rgba(59,130,246,.11), transparent 36%),
    linear-gradient(130deg, #27242d 0%, #131317 47%, #09090b 100%);
}
.details-art.poster-fallback::after {
  background: linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.46) 38%, rgba(24,24,27,.08) 100%);
}
@media (max-width: 680px) {
  .details-art { height: 285px; }
  .details-backdrop { object-position: center 30%; }
}

/* v0.9.8 sharp provider key art — never show the soft provider landscape source */
.details-keyart {
  position: absolute;
  z-index: 0;
  top: -13%;
  right: -1%;
  width: min(63%, 570px);
  height: 126%;
  display: block;
  object-fit: cover;
  object-position: center 31%;
  filter: saturate(1.06) contrast(1.08) brightness(.93);
  transform: translateZ(0);
  image-rendering: auto;
  border-radius: 1rem 0 0 0;
  box-shadow: -44px 0 90px rgba(0,0,0,.46);
}
.details-art.poster-composition {
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 76% 30%, rgba(192,132,252,.19), transparent 31%),
    linear-gradient(112deg, #242129 0%, #151419 43%, #09090b 100%);
}
.details-art.poster-composition .details-backdrop {
  display: none !important;
}
.details-art.poster-composition::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, #111114 0%, rgba(17,17,20,.98) 22%, rgba(17,17,20,.70) 39%, rgba(17,17,20,.20) 70%, rgba(17,17,20,.04) 100%),
    linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.58) 19%, rgba(24,24,27,.08) 58%, transparent 100%);
}
.details-art.poster-composition::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 44%;
  pointer-events: none;
  background: linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.72) 43%, transparent 100%);
}
.details-art.poster-composition .details-poster {
  z-index: 3;
}
@media (max-width: 680px) {
  .details-keyart {
    top: -8%;
    right: -12%;
    width: 82%;
    height: 116%;
    object-position: center 27%;
    opacity: .96;
  }
  .details-art.poster-composition::before {
    background:
      linear-gradient(90deg, rgba(17,17,20,.98) 0%, rgba(17,17,20,.77) 42%, rgba(17,17,20,.18) 100%),
      linear-gradient(0deg, #18181b 0%, rgba(24,24,27,.62) 24%, transparent 66%);
  }
}

@media (hover: none) {
  .player-timeline-preview { display: none !important; }
}

/* v0.9.16 per-user movie card menus and saved lists */
.movie-card {
  width: 100%;
  padding: 0;
  color: inherit;
  cursor: pointer;
}
.movie-card:focus-visible {
  outline: 3px solid rgba(255,255,255,.9);
  outline-offset: 3px;
}
.movie-card.menu-open {
  transform: translateY(-3px) scale(1.006);
  border-color: #71717a;
}
.movie-card-menu-button {
  position: absolute;
  top: .62rem;
  right: .62rem;
  z-index: 9;
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(5,5,7,.78);
  color: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.34);
  backdrop-filter: blur(10px);
  opacity: .88;
  transition: background .16s ease, border-color .16s ease, opacity .16s ease, transform .16s ease;
}
.movie-card-menu-button:hover,
.movie-card-menu-button:focus-visible,
.movie-card-menu-button[aria-expanded="true"] {
  border-color: rgba(255,255,255,.4);
  background: rgba(25,25,29,.96);
  opacity: 1;
  transform: scale(1.06);
  outline: none;
}
.movie-card-menu-button svg {
  width: 1.28rem;
  height: 1.28rem;
  display: block;
  fill: currentColor;
}
.movie-card-menu {
  position: absolute;
  top: 3.25rem;
  right: .58rem;
  z-index: 10;
  width: min(215px, calc(100% - 1.16rem));
  overflow: hidden;
  padding: .42rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: .72rem;
  background: rgba(20,20,24,.985);
  box-shadow: 0 20px 48px rgba(0,0,0,.72);
  backdrop-filter: blur(18px);
}
.movie-card-menu button {
  width: 100%;
  min-height: 2.45rem;
  padding: .62rem .7rem;
  border: 0;
  border-radius: .48rem;
  background: transparent;
  color: #f4f4f5;
  font-size: .78rem;
  font-weight: 570;
  line-height: 1.25;
  text-align: left;
  white-space: normal;
}
.movie-card-menu button:hover,
.movie-card-menu button:focus-visible {
  background: rgba(255,255,255,.1);
  color: #fff;
  outline: none;
}
.movie-card-menu button:disabled { opacity: .55; cursor: wait; }
.movie-card-menu-separator {
  height: 1px;
  margin: .34rem .42rem;
  background: rgba(255,255,255,.12);
}

@media (max-width: 520px) {
  .movie-card-menu-button { top: .48rem; right: .48rem; width: 2.15rem; height: 2.15rem; }
  .movie-card-menu { top: 2.95rem; right: .45rem; width: calc(100% - .9rem); }
  .movie-card-menu button { font-size: .74rem; }
}


/* v0.9.20 category View All pages and catalog filters */
.section-title-actions { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; }
.section-view-all {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .48rem .78rem;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(24,24,27,.78);
  color: #f4f4f5;
  font-size: .79rem;
  font-weight: 650;
  white-space: nowrap;
  backdrop-filter: blur(10px);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.section-view-all span { color: inherit; font-size: 1.2rem; line-height: .8; }
.section-view-all:hover, .section-view-all:focus-visible { border-color: rgba(255,255,255,.35); background: rgba(63,63,70,.9); transform: translateX(2px); outline: none; }

.category-view { min-height: 100vh; background: radial-gradient(circle at 82% 5%, rgba(139,92,246,.11), transparent 28%), #09090b; }
.category-browser { min-height: 100vh; padding: 6.9rem clamp(1.2rem,4vw,5rem) 4rem; }
.category-heading-row { display: flex; align-items: flex-start; gap: 1.2rem; margin-bottom: 1.8rem; }
.category-heading-copy { min-width: 0; }
.category-heading-copy h1 { margin: .45rem 0 .35rem; color: #fff; font-size: clamp(2.35rem,5vw,4.8rem); line-height: .95; letter-spacing: -.06em; }
.category-heading-copy p { margin: 0; color: #a1a1aa; font-size: .92rem; }
.category-back-button {
  min-width: 78px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: 0 .8rem;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  background: rgba(24,24,27,.78);
  color: #fff;
  font-weight: 650;
  backdrop-filter: blur(12px);
}
.category-back-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.category-back-button:hover, .category-back-button:focus-visible { background: #27272a; border-color: rgba(255,255,255,.3); outline: none; }

.category-filter-bar {
  position: sticky;
  top: 74px;
  z-index: 12;
  display: grid;
  grid-template-columns: minmax(210px,1.35fr) repeat(3,minmax(135px,.72fr)) auto;
  gap: .8rem;
  align-items: end;
  margin-bottom: 1.4rem;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: rgba(17,17,20,.9);
  box-shadow: 0 18px 50px rgba(0,0,0,.3);
  backdrop-filter: blur(18px);
}
.category-filter-bar label { min-width: 0; margin: 0; color: #a1a1aa; font-size: .72rem; font-weight: 650; letter-spacing: .015em; }
.category-filter-bar input, .category-filter-bar select { width: 100%; min-height: 43px; margin-top: .38rem; border-color: #3f3f46; background: #18181b; color: #f4f4f5; }
.category-filter-search { min-width: 220px; }
.category-filter-actions { display: flex; align-items: center; gap: .55rem; }
.category-filter-actions button { min-height: 43px; white-space: nowrap; }
.category-status { margin: 0 0 1rem; padding: .8rem 1rem; border: 1px solid rgba(251,191,36,.24); border-radius: 12px; background: rgba(120,53,15,.16); color: #fde68a; font-size: .83rem; }
.category-grid { grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); gap: 1rem; }
.category-grid .movie-card { min-height: 340px; }
.category-load-more-row { display: flex; justify-content: center; padding: 2rem 0 0; }
.category-load-more-row button { min-width: 150px; min-height: 46px; }
.category-skeleton-grid { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); gap: 1rem; }
.category-skeleton-card { min-height: 340px; border: 1px solid rgba(255,255,255,.06); border-radius: .75rem; background: linear-gradient(100deg,#161619 28%,#25252a 42%,#161619 58%); background-size: 220% 100%; animation: category-skeleton-sweep 1.25s ease-in-out infinite; }
@keyframes category-skeleton-sweep { from { background-position: 100% 0; } to { background-position: -120% 0; } }

@media (max-width: 1100px) {
  .category-filter-bar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .category-filter-search { grid-column: 1 / -1; }
  .category-filter-actions { justify-content: flex-end; }
}

@media (max-width: 700px) {
  .section-title { align-items: center; }
  .section-view-all { min-height: 34px; padding: .4rem .65rem; }
  .category-browser { padding: 5.6rem 1rem 3rem; }
  .category-heading-row { gap: .75rem; }
  .category-back-button { min-width: 44px; width: 44px; padding: 0; }
  .category-back-button span { display: none; }
  .category-heading-copy h1 { font-size: clamp(2rem,11vw,3.2rem); }
  .category-filter-bar { position: relative; top: auto; grid-template-columns: 1fr; padding: .85rem; }
  .category-filter-search { grid-column: auto; min-width: 0; }
  .category-filter-actions { justify-content: stretch; }
  .category-filter-actions button { flex: 1; }
  .category-grid, .category-skeleton-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
  .category-grid .movie-card, .category-skeleton-card { min-height: 270px; }
}


/* v0.9.21 Android TV / keyboard navigation */
.details-card {
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

html.tv-navigation { scroll-behavior: smooth; }
html.tv-navigation .movie-row { scroll-behavior: smooth; scroll-padding-inline: 5vw; }
html.tv-navigation .movie-card,
html.tv-navigation button,
html.tv-navigation a,
html.tv-navigation input,
html.tv-navigation select { outline: none; }
html.tv-navigation .movie-card:focus,
html.tv-navigation button:focus-visible,
html.tv-navigation a:focus-visible,
html.tv-navigation input:focus-visible,
html.tv-navigation select:focus-visible {
  outline: 4px solid #fff !important;
  outline-offset: 4px;
  box-shadow: 0 0 0 3px rgba(225,29,72,.88), 0 18px 42px rgba(0,0,0,.72) !important;
  position: relative;
  z-index: 35;
}
html.tv-navigation .movie-card:focus {
  transform: scale(1.045);
  border-color: rgba(255,255,255,.92);
}
html.tv-navigation .modal { padding: 1rem 3vw; }
html.tv-navigation .details-card {
  width: min(960px, calc(100vw - 6vw));
  max-height: calc(100dvh - 2rem);
}
html.tv-navigation .details-art { height: min(43dvh, 350px); }
html.tv-navigation .details-content { padding-top: 1.35rem; padding-bottom: 1.5rem; }
html.tv-navigation .details-content h2 { margin-top: .35rem; font-size: clamp(2rem, 4vw, 2.65rem); }
html.tv-navigation #detailsOverview { margin-block: .55rem; line-height: 1.42; }
html.tv-navigation #detailsPlay { min-width: 150px; min-height: 52px; font-size: 1.05rem; }

@media (max-height: 760px) and (min-width: 900px) {
  html.tv-navigation .details-card { width: min(1000px, calc(100vw - 5rem)); }
  html.tv-navigation .details-art { height: 285px; }
  html.tv-navigation .details-poster { width: 126px; bottom: -3.8rem; }
  html.tv-navigation .details-art.has-poster + .details-content { padding-left: 11rem; min-height: 10.5rem; }
  html.tv-navigation .details-content { padding-top: 1rem; padding-bottom: 1.15rem; }
  html.tv-navigation .details-content h2 { font-size: 2.15rem; margin-block: .2rem; }
  html.tv-navigation .details-content p { margin-block: .35rem; }
  html.tv-navigation .status-line { margin-block: .55rem; padding: .6rem .75rem; }
}

/* v0.10.0 official streaming discovery */
.streaming-sections { display: grid; gap: 1.1rem; }
.streaming-sections.hidden { display: none; }
.streaming-home-warning { margin: 0 3.6vw .2rem; padding: .65rem .85rem; border: 1px solid rgba(251,191,36,.28); border-radius: .65rem; background: rgba(120,53,15,.18); color: #fde68a; font-size: .82rem; line-height: 1.4; }
.streaming-service-badge { position: absolute; top: .7rem; left: .7rem; z-index: 3; max-width: calc(100% - 3.6rem); overflow: hidden; padding: .32rem .55rem; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(5,5,7,.82); color: #fff; font-size: .68rem; font-weight: 600; line-height: 1; letter-spacing: .015em; text-overflow: ellipsis; white-space: nowrap; box-shadow: 0 5px 16px rgba(0,0,0,.38); backdrop-filter: blur(9px); }
.details-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.details-actions .primary, .details-actions .secondary { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.details-official.hidden { display: none; }
html.tv-navigation .details-actions .primary,
html.tv-navigation .details-actions .secondary { min-width: 170px; min-height: 52px; font-size: 1.02rem; }

@media (max-width: 700px) {
  .streaming-home-warning { margin-inline: 1rem; }
  .streaming-service-badge { top: .5rem; left: .5rem; font-size: .62rem; }
  .details-actions { align-items: stretch; }
  .details-actions .primary, .details-actions .secondary { flex: 1 1 100%; }
}


/* v0.10.2 home Genre and Language browsing */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.browse-selectors {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-width: 0;
}
.browse-selector {
  position: relative;
  display: block;
  min-width: 0;
}
.browse-selector::after {
  content: '';
  position: absolute;
  top: 50%;
  right: .72rem;
  width: .42rem;
  height: .42rem;
  border-right: 1.7px solid #d4d4d8;
  border-bottom: 1.7px solid #d4d4d8;
  pointer-events: none;
  transform: translateY(-68%) rotate(45deg);
}
.browse-selector select {
  width: 132px;
  height: 38px;
  appearance: none;
  padding: 0 2rem 0 .78rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  background: rgba(24,24,27,.8);
  color: #e4e4e7;
  font-size: .82rem;
  font-weight: 560;
  outline: none;
  cursor: pointer;
  backdrop-filter: blur(12px);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.browse-selector select:hover { border-color: rgba(255,255,255,.3); background: rgba(39,39,42,.9); }
.browse-selector select:focus-visible {
  border-color: #c4b5fd;
  box-shadow: 0 0 0 3px rgba(139,92,246,.24);
}
.browse-selector select option { background: #18181b; color: #f4f4f5; }
.category-filter-bar {
  grid-template-columns: minmax(210px,1.25fr) repeat(5,minmax(120px,.65fr)) auto;
}

@media (max-width: 1380px) {
  .topbar { gap: 1rem; }
  .browse-selector select { width: 116px; }
  .catalog-search { width: min(220px, 19vw); }
  .category-filter-bar { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .category-filter-search { grid-column: span 2; }
  .category-filter-actions { justify-content: flex-end; }
}

@media (max-width: 1100px) {
  .category-filter-bar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .category-filter-search { grid-column: 1 / -1; }
}

@media (max-width: 940px) {
  .browse-selectors { gap: .35rem; }
  .browse-selector select { width: 108px; padding-left: .62rem; font-size: .76rem; }
}

@media (max-width: 800px) {
  .browse-selectors { display: none; }
  .category-filter-bar { position: relative; top: auto; grid-template-columns: 1fr; }
  .category-filter-search { grid-column: auto; }
}


/* v0.10.3 starting-year selector and compact Android TV presentation */
.browse-year-selector select { width: 138px; }
.category-filter-bar { grid-template-columns: minmax(210px,1.25fr) repeat(6,minmax(112px,.62fr)) auto; }

html.tv-navigation .movie-row {
  grid-auto-columns: clamp(148px, 10.4vw, 182px);
  gap: .68rem;
}
html.tv-navigation .movie-row .movie-card { min-height: 272px; border-radius: .65rem; }
html.tv-navigation .movie-row .movie-copy { padding: .82rem; }
html.tv-navigation .movie-row .movie-copy h3 { margin-top: 2.7rem; font-size: .88rem; }
html.tv-navigation .movie-row .movie-copy p { font-size: .68rem; }
html.tv-navigation .movie-row .resume-label { margin-top: .4rem; font-size: .64rem; }
html.tv-navigation .movie-row .progress-mini { margin-top: .52rem; }
html.tv-navigation .catalog-row-section { padding-top: .55rem; padding-bottom: 1.65rem; }
html.tv-navigation .section-title h2,
html.tv-navigation .section-heading h2 { font-size: 1.18rem; }
html.tv-navigation .section-title span,
html.tv-navigation .section-heading p { font-size: .75rem; }

html.tv-navigation .prepare-card {
  width: min(390px, calc(100vw - 4rem));
  min-height: 300px;
  max-height: calc(100dvh - 3rem);
  padding: 1.35rem 1.3rem 1.15rem;
}
html.tv-navigation .prepare-compact-view { gap: .28rem; padding: .35rem 0 .7rem; }
html.tv-navigation .prepare-cinema-loader { width: 88px; height: 88px; }
html.tv-navigation .prepare-loader-orbit-two { inset: 9px; }
html.tv-navigation .prepare-loader-core { width: 43px; height: 43px; }
html.tv-navigation .prepare-loader-core svg { width: 21px; height: 21px; }
html.tv-navigation .prepare-loader-dot { width: 7px; height: 7px; }
html.tv-navigation .prepare-compact-view h2 { margin-top: .65rem; font-size: 1.42rem; }
html.tv-navigation #prepareLead { font-size: .82rem; }
html.tv-navigation .prepare-info-button { right: .72rem; bottom: .72rem; width: 2.2rem; height: 2.2rem; }
html.tv-navigation .prepare-details { max-height: 45dvh; overflow-y: auto; margin-bottom: 2.35rem; padding: .8rem; }

html.tv-navigation #playerControls:focus-within { opacity: 1; transform: none; pointer-events: auto; }
html.tv-navigation #playerSubtitleButton:focus-visible,
html.tv-navigation #playerSeek:focus-visible { outline-offset: 2px; }

@media (max-height: 760px) and (min-width: 900px) {
  html.tv-navigation .movie-row { grid-auto-columns: clamp(132px, 10vw, 158px); }
  html.tv-navigation .movie-row .movie-card { min-height: 232px; }
  html.tv-navigation .movie-row .movie-copy h3 { margin-top: 2.2rem; font-size: .8rem; }
  html.tv-navigation .prepare-card { width: 350px; min-height: 245px; padding: 1rem; }
  html.tv-navigation .prepare-cinema-loader { width: 72px; height: 72px; }
  html.tv-navigation .prepare-loader-core { width: 36px; height: 36px; }
  html.tv-navigation .prepare-compact-view h2 { margin-top: .4rem; font-size: 1.2rem; }
}

@media (max-width: 1500px) {
  .browse-year-selector select { width: 118px; }
  .category-filter-bar { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .category-filter-search { grid-column: span 2; }
}


/* v0.10.4 Android TV two-row header */
html.tv-navigation .topbar {
  height: 116px;
  align-items: flex-start;
  padding-top: 13px;
  padding-bottom: 49px;
  background: linear-gradient(#09090bfa, #09090be8 78%, transparent);
}
html.tv-navigation .topbar .brand,
html.tv-navigation .topbar nav,
html.tv-navigation .browse-selectors,
html.tv-navigation .account-menu { flex: 0 0 auto; }
html.tv-navigation .top-actions { margin-left: auto; align-items: flex-start; }
html.tv-navigation .catalog-search {
  position: absolute;
  left: 4vw;
  right: 4vw;
  top: 66px;
  width: auto;
  height: 38px;
  padding-inline: 1rem;
  border-radius: 10px;
  background: rgba(24,24,27,.94);
}
html.tv-navigation .hero { padding-top: 10rem; }
html.tv-navigation .search-results-section,
html.tv-navigation .category-view { padding-top: 9.2rem; }

@media (max-width: 1280px) {
  html.tv-navigation .topbar { gap: .72rem; padding-inline: 2.6vw; }
  html.tv-navigation .topbar nav { gap: .72rem; }
  html.tv-navigation .browse-selectors { gap: .34rem; }
  html.tv-navigation .browse-selector select { width: 116px; }
  html.tv-navigation .browse-year-selector select { width: 132px; }
  html.tv-navigation .catalog-search { left: 2.6vw; right: 2.6vw; }
}

/* v0.10.5 Android TV focus, compact details, and player-back polish */
html.tv-navigation body .movie-card:focus,
html.streamgate-tv-app.tv-navigation body .movie-card:focus {
  outline: none !important;
  outline-offset: 0 !important;
  border-color: rgba(255,255,255,.72) !important;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.94), 0 12px 28px rgba(0,0,0,.62) !important;
  filter: brightness(1.055);
  transform: translateY(-2px) scale(1.015) !important;
  z-index: 40;
}
html.tv-navigation body .movie-card:focus::after,
html.streamgate-tv-app.tv-navigation body .movie-card:focus::after {
  content: '';
  position: absolute;
  inset: 2px;
  z-index: 12;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: inherit;
  pointer-events: none;
}

/* A compact landscape information panel sized for a TV rather than a full-screen sheet. */
html.tv-navigation #detailsModal { padding: 3dvh 5vw; }
html.tv-navigation #detailsModal .details-card,
html.streamgate-tv-app.tv-navigation #detailsModal .details-card {
  width: min(760px, 78vw) !important;
  max-height: min(76dvh, 660px) !important;
  display: grid !important;
  grid-template-columns: minmax(235px, 36%) minmax(0, 1fr);
  overflow: hidden !important;
  border-radius: 1rem;
}
html.tv-navigation #detailsModal .details-art,
html.streamgate-tv-app.tv-navigation #detailsModal .details-art {
  width: 100%;
  height: 100% !important;
  min-height: 410px;
  border-radius: 0;
}
html.tv-navigation #detailsModal .details-keyart,
html.tv-navigation #detailsModal .details-backdrop { object-position: center; }
html.tv-navigation #detailsModal .details-poster {
  left: .85rem;
  bottom: .85rem;
  width: 78px;
  border-width: 2px;
  border-radius: .48rem;
}
html.tv-navigation #detailsModal .details-content,
html.streamgate-tv-app.tv-navigation #detailsModal .details-content {
  min-width: 0;
  min-height: 0 !important;
  overflow-y: auto;
  padding: 1.3rem 1.45rem 1.25rem !important;
}
html.tv-navigation #detailsModal .details-art.has-poster + .details-content,
html.streamgate-tv-app.tv-navigation #detailsModal .details-art.has-poster + .details-content {
  min-height: 0 !important;
  padding-left: 1.45rem !important;
}
html.tv-navigation #detailsModal .eyebrow { font-size: .68rem; letter-spacing: .14em; }
html.tv-navigation #detailsModal .details-content h2 {
  margin: .35rem 0 .45rem;
  font-size: clamp(1.55rem, 2.1vw, 2rem);
  line-height: 1.06;
  letter-spacing: -.035em;
}
html.tv-navigation #detailsModal .details-content p { margin-block: .4rem; font-size: .82rem; line-height: 1.4; }
html.tv-navigation #detailsModal #detailsOverview {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
}
html.tv-navigation #detailsModal .status-line { margin-block: .55rem; padding: .58rem .7rem; font-size: .78rem; }
html.tv-navigation #detailsModal .details-actions { gap: .55rem; margin-top: .65rem; }
html.tv-navigation #detailsModal .details-actions .primary,
html.tv-navigation #detailsModal .details-actions .secondary,
html.tv-navigation #detailsModal #detailsPlay {
  min-width: 118px;
  min-height: 42px;
  padding: .62rem .9rem;
  font-size: .86rem;
}
html.tv-navigation #detailsModal .close { top: .7rem; right: .7rem; width: 2.45rem; height: 2.45rem; }

@media (max-height: 760px) and (min-width: 900px) {
  html.tv-navigation #detailsModal .details-card,
  html.streamgate-tv-app.tv-navigation #detailsModal .details-card {
    width: min(690px, 76vw) !important;
    max-height: 72dvh !important;
    grid-template-columns: minmax(205px, 34%) minmax(0, 1fr);
  }
  html.tv-navigation #detailsModal .details-art,
  html.streamgate-tv-app.tv-navigation #detailsModal .details-art { min-height: 330px; }
  html.tv-navigation #detailsModal .details-content,
  html.streamgate-tv-app.tv-navigation #detailsModal .details-content { padding: 1rem 1.15rem !important; }
  html.tv-navigation #detailsModal .details-art.has-poster + .details-content,
  html.streamgate-tv-app.tv-navigation #detailsModal .details-art.has-poster + .details-content { padding-left: 1.15rem !important; }
  html.tv-navigation #detailsModal .details-content h2 { font-size: 1.55rem; }
  html.tv-navigation #detailsModal #detailsOverview { -webkit-line-clamp: 3; line-clamp: 3; }
}


/* v0.10.6 — TMDB cast and actor filmography */
.details-cast { margin-top: .9rem; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.1); }
.details-cast-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .55rem; }
.details-cast-heading h3 { margin: 0; color: #fff; font-size: .94rem; font-weight: 650; }
.details-cast-heading .text-button { padding: .25rem .35rem; color: #d4d4d8; font-size: .72rem; }
.details-cast-list { display: flex; gap: .65rem; overflow-x: auto; overflow-y: hidden; padding: .15rem .1rem .45rem; scrollbar-width: thin; scroll-snap-type: x proximity; }
.cast-person { flex: 0 0 72px; min-width: 0; padding: .28rem; display: grid; justify-items: center; gap: .25rem; border: 1px solid transparent; border-radius: .7rem; background: transparent; color: #fff; text-align: center; scroll-snap-align: start; }
.cast-person:hover, .cast-person:focus-visible { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.08); outline: none; transform: translateY(-1px); }
.cast-person-photo { width: 54px; height: 54px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: linear-gradient(145deg,#3f3f46,#18181b); color: #e4e4e7; font-size: .78rem; font-weight: 700; }
.cast-person-photo img { width: 100%; height: 100%; object-fit: cover; }
.cast-person strong { width: 100%; overflow: hidden; color: #f4f4f5; font-size: .68rem; font-weight: 600; line-height: 1.18; text-overflow: ellipsis; white-space: nowrap; }
.cast-person small { width: 100%; overflow: hidden; color: #a1a1aa; font-size: .58rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.cast-loading { padding: .75rem 0; color: #a1a1aa; font-size: .78rem; }
.details-cast-attribution { display: block; margin-top: .2rem; color: #71717a; font-size: .58rem; }

.actor-profile { margin: 1rem 0 1.2rem; padding: 1rem; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 1rem; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: linear-gradient(120deg,rgba(255,255,255,.07),rgba(255,255,255,.025)); }
.actor-profile-image { width: 92px; height: 116px; object-fit: cover; border-radius: .75rem; box-shadow: 0 12px 28px rgba(0,0,0,.4); }
.actor-profile-copy { min-width: 0; }
.actor-profile-meta { margin: .3rem 0; color: #d4d4d8; font-size: .84rem; }
.actor-profile-biography { max-width: 900px; margin: .35rem 0; display: -webkit-box; overflow: hidden; color: #a1a1aa; font-size: .82rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.actor-profile-copy > small { color: #71717a; font-size: .66rem; }

html.tv-navigation #detailsModal .details-cast { margin-top: .65rem; padding-top: .55rem; }
html.tv-navigation #detailsModal .details-cast-list { gap: .45rem; padding-bottom: .25rem; }
html.tv-navigation #detailsModal .cast-person { flex-basis: 62px; padding: .2rem; border-radius: .55rem; }
html.tv-navigation #detailsModal .cast-person-photo { width: 46px; height: 46px; }
html.tv-navigation #detailsModal .cast-person strong { font-size: .59rem; }
html.tv-navigation #detailsModal .cast-person small { font-size: .5rem; }
html.tv-navigation #detailsModal .details-cast-attribution { font-size: .5rem; }
html.tv-navigation .actor-profile { margin: .65rem 0 1rem; padding: .75rem; }
html.tv-navigation .actor-profile-image { width: 72px; height: 92px; }
html.tv-navigation .actor-profile-biography { -webkit-line-clamp: 2; line-clamp: 2; }

@media (max-width: 720px) {
  .actor-profile { grid-template-columns: 68px minmax(0,1fr); padding: .8rem; }
  .actor-profile-image { width: 68px; height: 88px; }
  .actor-profile-biography { -webkit-line-clamp: 2; line-clamp: 2; }
}

/* v0.11.0 · TMDB television catalog */
.tv-catalog-mode .browse-selectors,
.tv-catalog-mode #catalogSearch { display: none !important; }
.tv-view { min-height: 100vh; padding: 7.4rem 3rem 4rem; background: radial-gradient(circle at 78% 8%, rgba(139,92,246,.12), transparent 32%), #09090b; }
.tv-browser, .tv-series-panel { width: min(1500px, 100%); margin: 0 auto; }
.tv-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.4rem; }
.tv-heading-row h1 { margin: .2rem 0 .3rem; font-size: clamp(2.2rem, 4vw, 4.5rem); line-height: .95; }
.tv-heading-row p, .tv-status { color: #a1a1aa; }
.tv-search-form { display: grid; grid-template-columns: 155px 155px minmax(190px,1fr) auto; align-items: center; gap: .65rem; width: min(780px, 100%); }
.tv-search-form input, .tv-search-form select { min-width: 0; height: 46px; }
.tv-genre-chips { display: flex; gap: .48rem; margin: 0 0 1rem; padding: .15rem 0 .45rem; overflow-x: auto; scrollbar-width: thin; }
.tv-genre-chip { flex: 0 0 auto; min-height: 36px; padding: .45rem .75rem; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(39,39,42,.7); color: #d4d4d8; font-size: .76rem; white-space: nowrap; }
.tv-genre-chip:hover, .tv-genre-chip:focus-visible, .tv-genre-chip.active { border-color: rgba(255,255,255,.75); background: #f4f4f5; color: #111114; outline: none; }
.tv-status { min-height: 1.4rem; margin-bottom: 1.1rem; }
.tv-series-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.25rem; }
.tv-series-card { min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: #151518; color: #fff; cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, filter .16s ease; }
.tv-series-card:hover, .tv-series-card:focus-visible { outline: none; border-color: rgba(255,255,255,.76); box-shadow: 0 0 0 2px rgba(255,255,255,.16), 0 18px 44px rgba(0,0,0,.45); transform: translateY(-3px); filter: brightness(1.07); }
.tv-series-art { position: relative; aspect-ratio: 16/9; overflow: hidden; display: grid; place-items: center; background: linear-gradient(135deg,#202027,#101014); color: #71717a; font-size: 2rem; font-weight: 800; }
.tv-series-art img { width: 100%; height: 100%; object-fit: cover; }
.tv-series-art::after { content: ''; position: absolute; inset: auto 0 0; height: 48%; background: linear-gradient(transparent, rgba(0,0,0,.78)); pointer-events: none; }
.tv-provider-badge { position: absolute; left: .7rem; top: .7rem; z-index: 2; padding: .27rem .55rem; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; background: rgba(8,8,10,.72); color: #fff; font-size: .7rem; font-weight: 750; letter-spacing: .08em; }
.tv-episode-count-badge { position: absolute; right: .7rem; bottom: .65rem; z-index: 2; padding: .28rem .5rem; border-radius: 7px; background: rgba(8,8,10,.78); color: #fff; font-size: .68rem; font-weight: 700; }
.tv-series-copy { display: grid; gap: .36rem; padding: 1rem 1.05rem 1.1rem; }
.tv-series-copy h3 { margin: 0; overflow: hidden; font-size: 1.08rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.tv-series-copy p, .tv-series-copy small { margin: 0; color: #d4d4d8; }
.tv-series-copy small { min-height: 1em; overflow: hidden; color: #8f8f99; text-overflow: ellipsis; white-space: nowrap; }
.tv-load-more-wrap { display: flex; justify-content: center; padding: 1.6rem 0 .5rem; }
.tv-series-hero { position: relative; min-height: 330px; overflow: hidden; border-radius: 20px; background: #151518; }
.tv-series-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tv-series-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,7,9,.96) 0%, rgba(7,7,9,.72) 43%, rgba(7,7,9,.18) 76%), linear-gradient(0deg, rgba(9,9,11,.88), transparent 60%); }
.tv-series-hero-content { position: relative; z-index: 1; width: min(680px, 78%); min-height: 330px; display: flex; flex-direction: column; justify-content: end; align-items: flex-start; padding: 1.7rem 2rem 2rem; }
.tv-series-hero-content .category-back-button { margin-bottom: auto; }
.tv-series-hero-content h1 { margin: .3rem 0 .45rem; font-size: clamp(2rem, 4vw, 4rem); line-height: 1; }
.tv-series-hero-content p { margin: 0; color: #d4d4d8; }
.tv-series-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.3rem 0 1rem; }
.tv-series-toolbar label { display: grid; gap: .35rem; color: #d4d4d8; font-size: .78rem; }
.tv-series-toolbar select { min-width: 160px; }
.tv-series-toolbar > span { color: #a1a1aa; }
.tv-episode-grid { display: grid; gap: .85rem; }
.tv-episode-card { display: grid; grid-template-columns: minmax(220px, 330px) minmax(0, 1fr); min-height: 170px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: #151518; color: #fff; cursor: pointer; transition: border-color .16s ease, transform .16s ease, background .16s ease; }
.tv-episode-card:hover, .tv-episode-card:focus-visible { outline: none; border-color: rgba(255,255,255,.76); background: #1d1d21; transform: translateY(-1px); }
.tv-episode-art { position: relative; min-height: 170px; overflow: hidden; display: grid; place-items: center; background: #202027; color: #fff; font-size: 1.3rem; font-weight: 800; }
.tv-episode-art img { width: 100%; height: 100%; object-fit: cover; }
.tv-episode-art span { position: absolute; left: .8rem; bottom: .7rem; padding: .32rem .58rem; border-radius: 7px; background: rgba(0,0,0,.74); }
.tv-episode-copy { min-width: 0; display: grid; align-content: center; justify-items: start; gap: .42rem; padding: 1rem 1.25rem; }
.tv-episode-copy h3 { max-width: 100%; margin: 0; overflow: hidden; font-size: 1.12rem; text-overflow: ellipsis; white-space: nowrap; }
.tv-episode-copy p { margin: 0; color: #b4b4bd; }
.tv-episode-play { margin-top: .35rem; padding: .55rem .9rem; }
.tv-episode-variant-field { width: min(100%, 430px); display: grid; gap: .28rem; margin-top: .18rem; color: #d4d4d8; font-size: .72rem; font-weight: 600; }
.tv-episode-variant-select { width: 100%; min-height: 38px; padding: .48rem 2.2rem .48rem .7rem; border: 1px solid rgba(255,255,255,.24); border-radius: 8px; background: #25252b; color: #fff; font: inherit; cursor: pointer; }
.tv-episode-variant-select:hover, .tv-episode-variant-select:focus-visible { outline: 2px solid rgba(255,255,255,.78); outline-offset: 1px; border-color: transparent; }
.tv-episode-variant-summary { min-height: 1.2em; }

@media (max-width: 800px) {
  .tv-view { padding: 6.5rem 1rem 2rem; }
  .tv-heading-row { align-items: stretch; flex-direction: column; }
  .tv-search-form { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tv-search-form input { grid-column: 1 / -1; }
  .tv-search-form button { grid-column: 1 / -1; }
  .tv-series-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
  .tv-series-copy { padding: .75rem; }
  .tv-episode-card { grid-template-columns: 1fr; }
  .tv-episode-art { aspect-ratio: 16/9; min-height: 0; }
  .tv-series-hero-content { width: 100%; padding: 1rem; }
}

.tv-navigation .tv-view { padding: 7rem 2.3rem 3rem; }
.tv-navigation .tv-search-form { grid-template-columns: 145px 145px minmax(180px,1fr) auto; width: min(760px,100%); }
.tv-navigation .tv-genre-chip { min-height: 32px; padding: .36rem .62rem; font-size: .68rem; }
.tv-navigation .tv-series-grid { grid-template-columns: repeat(5, minmax(0,1fr)); gap: 1rem; }
.tv-navigation .tv-series-card { border-radius: 12px; }
.tv-navigation .tv-series-copy { padding: .75rem .85rem .85rem; }
.tv-navigation .tv-series-copy h3 { font-size: .92rem; }
.tv-navigation .tv-series-copy p { font-size: .72rem; }
.tv-navigation .tv-series-copy small { font-size: .65rem; }
.tv-navigation .tv-episode-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.tv-navigation .tv-episode-card { grid-template-columns: 180px minmax(0,1fr); min-height: 120px; }
.tv-navigation .tv-episode-art { min-height: 120px; }
.tv-navigation .tv-episode-copy { padding: .7rem .85rem; }
.tv-navigation .tv-episode-copy h3 { font-size: .86rem; }
.tv-navigation .tv-episode-copy p { font-size: .66rem; }
.tv-navigation .tv-episode-play { font-size: .68rem; padding: .38rem .65rem; }
.tv-navigation .tv-episode-variant-field { width: 100%; gap: .18rem; font-size: .58rem; }
.tv-navigation .tv-episode-variant-select { min-height: 31px; padding: .3rem 1.7rem .3rem .48rem; font-size: .62rem; border-radius: 6px; }


/* v0.11.1 playback timing choice */
.playback-choice-card { position: relative; width: min(690px, 100%); padding: 2rem; border: 1px solid rgba(255,255,255,.15); border-radius: 1rem; background: linear-gradient(155deg, rgba(39,39,42,.98), rgba(9,9,11,.99)); box-shadow: 0 35px 100px #000; }
.playback-choice-card h2 { margin: .55rem 3rem .45rem 0; color: #fff; font-size: clamp(1.55rem, 3vw, 2.2rem); letter-spacing: -.04em; line-height: 1.12; }
.playback-choice-card > p { margin: 0; color: #b4b4bc; line-height: 1.55; }
.playback-choice-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; margin-top: 1.35rem; }
.playback-choice-option { min-height: 170px; padding: 1.15rem; display: grid; grid-template-columns: 48px 1fr; align-content: start; gap: .9rem; border: 1px solid rgba(255,255,255,.13); border-radius: .85rem; background: rgba(9,9,11,.58); color: #fff; text-align: left; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.playback-choice-option:hover, .playback-choice-option:focus-visible { border-color: rgba(255,255,255,.72); background: rgba(63,63,70,.72); outline: none; transform: translateY(-2px); }
.playback-choice-option:first-child:focus-visible { border-color: #f43f5e; box-shadow: 0 0 0 2px rgba(244,63,94,.26); }
.playback-choice-icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.06); }
.playback-choice-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.playback-choice-icon svg path:first-child:not(:only-child) { fill: none; }
#playWhenAvailable .playback-choice-icon svg path:first-child { fill: currentColor; stroke: none; }
.playback-choice-copy { display: grid; gap: .42rem; min-width: 0; }
.playback-choice-copy strong { color: #fff; font-size: 1.02rem; line-height: 1.25; }
.playback-choice-copy small { color: #c4c4cc; font-size: .82rem; line-height: 1.48; }
.playback-choice-note { margin-top: 1rem !important; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.1); color: #8f8f99 !important; font-size: .75rem; }

@media (max-width: 660px) {
  .playback-choice-card { padding: 1.45rem 1rem 1rem; }
  .playback-choice-options { grid-template-columns: 1fr; }
  .playback-choice-option { min-height: 0; }
}

html.tv-navigation .playback-choice-card { width: min(650px, calc(100vw - 5rem)); padding: 1.4rem; }
html.tv-navigation .playback-choice-card h2 { font-size: 1.65rem; }
html.tv-navigation .playback-choice-card > p { font-size: .82rem; }
html.tv-navigation .playback-choice-option { min-height: 140px; padding: .95rem; }
html.tv-navigation .playback-choice-copy strong { font-size: .94rem; }
html.tv-navigation .playback-choice-copy small { font-size: .72rem; }

/* v0.11.6 — Netflix-style certification and estimated content guidance. */
.details-content-guidance { margin: .48rem 0 .62rem; }
.details-guidance-line { display: flex; align-items: center; flex-wrap: wrap; gap: .42rem .55rem; }
.details-age-rating { min-width: 2.35rem; min-height: 1.65rem; padding: .14rem .42rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.72); border-radius: .18rem; color: #fff; background: rgba(0,0,0,.3); font-size: .78rem; font-weight: 650; line-height: 1; }
.details-advisories { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem .46rem; min-width: 0; }
.details-advisory { color: #e4e4e7; font-size: .76rem; font-weight: 450; line-height: 1.25; }
.details-advisory + .details-advisory::before { content: '•'; margin-right: .46rem; color: #71717a; }
.details-guidance-info { position: relative; width: 1.42rem; height: 1.42rem; flex: 0 0 auto; padding: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: transparent; color: #fff; }
.details-guidance-info::before { content: 'i'; position: absolute; inset: 0; display: grid; place-items: center; font-size: .72rem; font-weight: 650; font-family: Arial, sans-serif; line-height: 1; }
.details-guidance-info:hover, .details-guidance-info:focus-visible { border-color: #fff; background: rgba(255,255,255,.1); outline: none; }
.details-guidance-note { display: block; margin-top: .22rem; color: #71717a; font-size: .58rem; line-height: 1.3; }

html.tv-navigation #detailsModal .details-content-guidance { margin-block: .3rem .42rem; }
html.tv-navigation #detailsModal .details-guidance-line { gap: .3rem .42rem; }
html.tv-navigation #detailsModal .details-age-rating { min-width: 2rem; min-height: 1.4rem; padding: .1rem .32rem; font-size: .66rem; }
html.tv-navigation #detailsModal .details-advisory { font-size: .64rem; }
html.tv-navigation #detailsModal .details-guidance-info { width: 1.25rem; height: 1.25rem; }
html.tv-navigation #detailsModal .details-guidance-note { font-size: .5rem; }

@media (max-width: 620px) {
  .details-guidance-line { align-items: flex-start; }
  .details-advisories { flex: 1 1 12rem; }
  .details-guidance-note { font-size: .56rem; }
}


/* v0.11.7 — selectable Prowlarr quality/source cards */
.details-sources { margin-top: .72rem; padding-top: .68rem; border-top: 1px solid rgba(255,255,255,.1); }
.details-sources-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .48rem; }
.details-sources-heading h3 { margin: 0; color: #fff; font-size: .94rem; font-weight: 650; }
.details-sources-heading span { display: block; margin-top: .12rem; color: #a1a1aa; font-size: .68rem; line-height: 1.35; }
.details-sources-list { display: flex; gap: .55rem; overflow-x: auto; overflow-y: hidden; padding: .12rem .08rem .42rem; scroll-snap-type: x proximity; scrollbar-width: thin; }
.details-source-option { position: relative; min-width: 156px; max-width: 190px; min-height: 86px; flex: 0 0 auto; display: grid; align-content: start; gap: .22rem; padding: .62rem .7rem; border: 1px solid rgba(255,255,255,.18); border-radius: .62rem; background: rgba(9,9,11,.72); color: #f4f4f5; text-align: left; scroll-snap-align: start; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.details-source-option:hover, .details-source-option:focus-visible { border-color: rgba(255,255,255,.72); background: rgba(39,39,42,.9); outline: none; transform: translateY(-1px); }
.details-source-option.selected { border-color: #fff; background: rgba(255,255,255,.12); box-shadow: inset 0 0 0 1px rgba(255,255,255,.28); }
.details-source-option.unavailable { opacity: .48; cursor: not-allowed; }
.details-source-top { display: flex; align-items: center; justify-content: space-between; gap: .42rem; }
.details-source-top strong { color: #fff; font-size: 1rem; font-weight: 720; letter-spacing: .01em; }
.details-source-badge { padding: .12rem .28rem; border-radius: .22rem; background: rgba(255,255,255,.13); color: #e4e4e7; font-size: .46rem; font-weight: 650; letter-spacing: .055em; white-space: nowrap; }
.details-source-seeds { color: #d4d4d8; font-size: .74rem; }
.details-source-seeds b { color: #fff; font-size: .88rem; font-weight: 650; }
.details-source-extra { overflow: hidden; color: #71717a; font-size: .6rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.details-source-check { position: absolute; right: .48rem; bottom: .4rem; width: 1.1rem; height: 1.1rem; display: none; place-items: center; border-radius: 50%; background: #fff; color: #09090b; font-size: .68rem; font-weight: 800; }
.details-source-option.selected .details-source-check { display: grid; }
.details-sources-status { margin: .35rem 0 0 !important; color: #a1a1aa !important; font-size: .68rem; line-height: 1.35; }
.details-source-loading { min-width: 150px; min-height: 76px; display: flex; align-items: center; justify-content: center; gap: .28rem; border: 1px solid rgba(255,255,255,.12); border-radius: .62rem; background: rgba(9,9,11,.55); }
.details-source-loading span { width: .42rem; height: .42rem; border-radius: 50%; background: #fff; animation: details-source-pulse .9s ease-in-out infinite alternate; }
.details-source-loading span:nth-child(2) { animation-delay: .18s; }
.details-source-loading span:nth-child(3) { animation-delay: .36s; }
@keyframes details-source-pulse { from { opacity: .25; transform: translateY(2px); } to { opacity: 1; transform: translateY(-2px); } }
html.tv-navigation #detailsModal .details-sources { margin-top: .48rem; padding-top: .45rem; }
html.tv-navigation #detailsModal .details-sources-heading { margin-bottom: .35rem; }
html.tv-navigation #detailsModal .details-sources-heading h3 { font-size: .78rem; }
html.tv-navigation #detailsModal .details-sources-heading span { font-size: .56rem; }
html.tv-navigation #detailsModal .details-source-option { min-width: 142px; min-height: 72px; padding: .48rem .58rem; border-radius: .5rem; }
html.tv-navigation #detailsModal .details-source-top strong { font-size: .86rem; }
html.tv-navigation #detailsModal .details-source-seeds { font-size: .64rem; }
html.tv-navigation #detailsModal .details-source-seeds b { font-size: .75rem; }
html.tv-navigation #detailsModal .details-source-extra { font-size: .52rem; }
@media (max-width: 760px) {
  .details-source-option { min-width: 145px; min-height: 80px; }
  .details-sources-heading span { font-size: .64rem; }
}


/* v0.11.11 — recoverable player errors and in-app browser Back */
.player-error { position: absolute; inset: 0; z-index: 12; display: grid; place-items: center; padding: 1.5rem; background: rgba(3,3,5,.88); color: #f4f4f5; backdrop-filter: blur(10px); }
.player-error-card { width: min(560px, calc(100vw - 2rem)); display: grid; justify-items: center; gap: .8rem; padding: 1.55rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; background: rgba(17,17,20,.98); box-shadow: 0 24px 70px rgba(0,0,0,.65); text-align: center; }
.player-error-icon { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; border: 2px solid rgba(248,113,113,.75); border-radius: 50%; color: #fca5a5; font-size: 1.45rem; font-weight: 700; }
.player-error-card > strong { color: #fff; font-size: 1.35rem; font-weight: 680; line-height: 1.2; }
.player-error-card > p { max-width: 46ch; margin: 0; color: #d4d4d8; font-size: .95rem; line-height: 1.55; }
.player-error-card > small { color: #71717a; font-size: .72rem; line-height: 1.4; }
.player-error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: .25rem; }
.player-error-actions button { min-height: 42px; padding: .65rem 1rem; }
html.tv-navigation .player-error-card { width: min(500px, 70vw); gap: .62rem; padding: 1.15rem 1.25rem; border-radius: .78rem; }
html.tv-navigation .player-error-card > strong { font-size: 1.08rem; }
html.tv-navigation .player-error-card > p { font-size: .78rem; }
html.tv-navigation .player-error-card > small { font-size: .58rem; }
html.tv-navigation .player-error-actions button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; transform: scale(1.04); }
@media (max-width: 620px) {
  .player-error { padding: .8rem; }
  .player-error-card { padding: 1.1rem .9rem; }
  .player-error-actions { width: 100%; }
  .player-error-actions button { width: 100%; }
}

/* v0.11.13 sharp home hero artwork */
.hero-backdrop,
.hero-keyart {
  position: absolute;
  z-index: 0;
  image-rendering: auto;
}
.hero-keyart {
  top: -20%;
  right: -1%;
  width: min(58vw, 1040px);
  height: 142%;
  object-fit: cover;
  object-position: center 28%;
  filter: saturate(1.04) contrast(1.07) brightness(.91);
  transform: translateZ(0);
  box-shadow: -70px 0 130px rgba(0,0,0,.48);
}
.hero-shade { z-index: 1; }
.hero.poster-composition {
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 27%, rgba(192,132,252,.17), transparent 31%),
    linear-gradient(112deg, #17171c 0%, #101014 46%, #08080a 100%);
}
.hero.poster-composition .hero-backdrop { display: none !important; }
.hero.poster-composition .hero-shade {
  background:
    linear-gradient(90deg, #070709 0%, rgba(7,7,9,.99) 20%, rgba(7,7,9,.79) 39%, rgba(7,7,9,.30) 67%, rgba(7,7,9,.08) 100%),
    linear-gradient(0deg, #09090b 0%, rgba(9,9,11,.84) 11%, rgba(9,9,11,.24) 42%, transparent 66%),
    linear-gradient(180deg, rgba(9,9,11,.28) 0%, transparent 25%);
}

@media (max-width: 900px) {
  .hero-keyart {
    top: -9%;
    right: -18%;
    width: 88%;
    height: 120%;
    object-position: center 24%;
  }
  .hero.poster-composition .hero-shade {
    background:
      linear-gradient(90deg, rgba(7,7,9,.99) 0%, rgba(7,7,9,.90) 35%, rgba(7,7,9,.48) 69%, rgba(7,7,9,.15) 100%),
      linear-gradient(0deg, #09090b 0%, rgba(9,9,11,.86) 14%, rgba(9,9,11,.29) 48%, transparent 70%);
  }
}


/* v0.13.3 age-restriction movie browse filter */
.browse-age-selector select { width: 128px; }
.category-filter-bar { grid-template-columns: minmax(210px,1.25fr) repeat(7,minmax(108px,.60fr)) auto; }
@media (max-width: 1500px) {
  .browse-age-selector select { width: 112px; }
  .category-filter-bar { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1280px) {
  html.tv-navigation .browse-age-selector select { width: 108px; }
}
