:root {
  color-scheme: light;
  --paper: #faf9f6;
  --ink: #272a2d;
  --muted: #77736b;
  --line: #ddd9d0;
  --red: #a7352c;
  --link: #384e72;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--ink);
  background: var(--paper);
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-size: 15px;
}
button,
input,
select {
  font: inherit;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
  color: inherit;
}
a {
  color: var(--link);
}
button {
  border: 0;
  background: none;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 2px solid var(--link);
  outline-offset: 4px;
}
header {
  padding: 25px 5%;
  min-height: 68px;
}
nav {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 13px;
  font-size: 14px;
}
nav > span {
  color: var(--theme-line, #c3bdb1);
}
nav button {
  padding: 3px 0;
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nav-link.active {
  color: var(--ink);
  text-decoration: none;
}
main {
  width: min(1100px, 90%);
  margin: 0 auto;
  flex: 1;
}
.masthead {
  text-align: center;
  padding: 76px 0 0;
  transition: padding 0.2s;
}
.identity {
  color: var(--ink);
  text-decoration: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.identity img {
  display: block;
}
.identity h1 {
  font-family: "Times New Roman", Times, serif;
  font-size: 76px;
  line-height: 0.95;
  font-weight: 700;
  letter-spacing: -4px;
  margin: 10px 0 0;
}
.identity h1 span {
  color: var(--red);
}
.descriptor {
  font-size: 14px;
  letter-spacing: 3px;
  color: var(--theme-muted, #787169);
  margin: 13px 0 30px;
}
.search-form {
  max-width: 620px;
  margin: auto;
  display: flex;
  gap: 9px;
  align-items: stretch;
  height: 47px;
}
.search-form input {
  flex: 1;
  min-width: 0;
  background: var(--theme-surface, white);
  color: var(--ink);
  border: 1px solid var(--theme-line, #b8b2a7);
  border-radius: 3px;
  box-shadow: inset 0 1px 3px #00000007;
  padding: 10px 14px;
  font-size: 18px;
  font-family: "Times New Roman", Times, serif;
}
.search-form input:focus {
  border-color: var(--theme-muted, #736f66);
  outline: 1px solid var(--theme-muted, #736f66);
  outline-offset: 0;
}
.search-button {
  border: 1px solid var(--theme-muted, #a39b8e);
  background: linear-gradient(var(--theme-surface, #fff), var(--theme-line, #ece8df));
  border-radius: 3px;
  box-shadow: 0 1px 1px #0000000a;
  padding: 0 24px;
  font-weight: 600;
  font-size: 15px;
}
.search-button:hover {
  background: var(--theme-line, #e9e4db);
}
.search-button:active {
  box-shadow: inset 0 1px 3px #0002;
}
.category-bar {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 19px;
  margin: 22px auto 0;
}
.category {
  font-size: 14px;
  color: var(--link);
  padding: 5px 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.category.active {
  color: var(--red);
  font-weight: 700;
  text-decoration: none;
}
.category:hover {
  color: var(--red);
}
footer {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 13px;
  padding: 35px 20px 30px;
  margin-top: 95px;
  color: var(--theme-muted, #989083);
  font-size: 12px;
}
footer a {
  color: var(--theme-muted, #817a6e);
  text-underline-offset: 3px;
}
kbd {
  font: inherit;
}
.has-results .masthead {
  padding: 7px 0 0;
}
.has-results .identity {
  flex-direction: row;
  gap: 12px;
}
.has-results .identity img {
  width: 53px;
  height: 53px;
}
.has-results .identity h1 {
  font-size: 43px;
  margin: 0;
  letter-spacing: -2px;
}
.has-results .descriptor {
  display: none;
}
.has-results .search-form {
  margin-top: 21px;
}
.has-results .category-bar {
  margin-top: 15px;
}
.results {
  margin: 38px 0 0;
}
.results-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 0 0 16px;
}
.results-heading > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 14px;
}
h2 {
  font-weight: 400;
  font-size: 22px;
  margin: 0;
  overflow-wrap: anywhere;
}
#results-count {
  font-size: 12px;
  color: var(--muted);
}
.filters {
  display: flex;
  gap: 20px;
  align-items: center;
  font-size: 12px;
  white-space: nowrap;
}
.filters label {
  display: flex;
  align-items: center;
  gap: 5px;
}
input[type="checkbox"] {
  accent-color: var(--red);
}
select {
  padding: 7px 9px;
  border: 1px solid var(--theme-line, #c9c2b6);
  border-radius: 3px;
  color: var(--theme-ink, #484238);
  background: var(--theme-surface, #fff);
  font-size: 12px;
}
.result-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  text-align: left;
  border-top: 1px solid var(--theme-line, #bbb4a8);
  table-layout: fixed;
}
.result-table th {
  background: var(--theme-surface, #efede7);
  border-bottom: 1px solid var(--theme-line, #d3ccbf);
  font-size: 12px;
  font-weight: 400;
  color: var(--theme-muted, #716958);
  padding: 12px 10px;
}
.result-table td {
  padding: 17px 10px;
  border-bottom: 1px solid var(--theme-line, #e4e0d7);
  font-size: 12px;
  vertical-align: middle;
}
.result-table tbody tr:hover {
  background: var(--theme-surface, #f0ede5);
}
.col-name {
  width: auto;
}
.col-size {
  width: 86px;
}
.col-seeds,
.col-leech {
  width: 65px;
}
.col-source {
  width: 110px;
}
.col-age {
  width: 80px;
}
.col-actions {
  width: 116px;
}
.result-name {
  text-align: left;
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 15px;
  padding: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.result-name:hover {
  color: var(--red);
}
.result-meta {
  font-size: 11px;
  color: var(--muted);
  margin-top: 6px;
  line-height: 1.5;
}
.trusted-badge {
  color: var(--theme-success, #55684a);
  margin-left: 8px;
}
.seeders {
  color: var(--theme-success, #4e6442);
  font-variant-numeric: tabular-nums;
}
.leechers {
  color: var(--theme-muted, #8d8373);
  font-variant-numeric: tabular-nums;
}
.row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}
.save-button {
  font-size: 21px;
  padding: 0;
  color: var(--theme-muted, #9b9384);
  line-height: 1;
  width: 24px;
}
.save-button:hover,
.save-button.is-saved {
  color: var(--red);
}
.magnet {
  display: inline-block;
  color: var(--red);
  text-decoration: none;
  font-size: 12px;
  border: 1px solid var(--theme-line, #d9c8be);
  background: var(--theme-surface, #fffaf6);
  padding: 6px 8px;
  border-radius: 3px;
}
.magnet:hover {
  border-color: var(--red);
}
.text-button {
  color: var(--link);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-size: 12px;
}
.empty-state {
  padding: 40px 20px;
  text-align: center;
  border-top: 1px solid var(--line);
  color: var(--muted);
}
.empty-state h3 {
  font-size: 18px;
  color: var(--ink);
  font-weight: 400;
  margin: 0 0 12px;
}
.empty-state p {
  font-size: 12px;
  line-height: 1.7;
  margin: 0;
}
.empty-state button {
  margin-top: 20px;
  text-decoration: underline;
  color: var(--link);
}
.loading {
  border-top: 1px solid var(--line);
  padding: 40px 0;
  color: var(--muted);
  text-align: center;
  font-size: 14px;
}
dialog {
  background: var(--paper);
  color: var(--ink);
  width: min(560px, calc(100% - 32px));
  padding: 35px;
  border: 1px solid var(--theme-line, #bcb4a5);
  border-radius: 5px;
  box-shadow: 0 16px 70px #27231b22;
}
dialog::backdrop {
  background: #2f2c2744;
  backdrop-filter: blur(3px);
}
.dialog-close {
  position: absolute;
  right: 13px;
  top: 10px;
  font-size: 25px;
  color: var(--muted);
  line-height: 1;
}
.dialog-title {
  font-size: 24px;
  line-height: 1.4;
  margin: 8px 0 23px;
}
.dialog-category {
  font-size: 12px;
  color: var(--muted);
}
.detail-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 12px;
  margin: 25px 0;
  padding: 20px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.detail-grid small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-bottom: 8px;
}
.detail-grid > div {
  font-size: 14px;
  overflow-wrap: anywhere;
}
.dialog-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.dialog-actions a,
.dialog-actions button {
  font-size: 12px;
  color: var(--link);
  padding: 8px 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.dialog-actions .primary {
  color: var(--red);
}
.dialog-description {
  font-size: 14px;
  line-height: 1.8;
  color: var(--theme-muted, #696254);
}
.about-brand {
  font-family: "Times New Roman", Times, serif;
  font-weight: 700;
  font-size: 34px;
  margin-bottom: 18px;
}
.mobile-meta {
  display: none;
}
#toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 10px);
  background: var(--theme-surface, #fff);
  border: 1px solid var(--theme-line, #c8c0b1);
  border-radius: 4px;
  box-shadow: 0 3px 15px #0000000a;
  color: var(--ink);
  padding: 12px 19px;
  font-size: 12px;
  opacity: 0;
  pointer-events: none;
  transition: 0.15s;
  white-space: nowrap;
}
#toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
#toast button {
  color: var(--link);
  text-decoration: underline;
  margin-left: 12px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
[hidden] {
  display: none !important;
}
@media (max-width: 760px) {
  header {
    padding: 20px 5%;
    min-height: 60px;
  }
  nav {
    font-size: 12px;
  }
  .masthead {
    padding-top: 60px;
  }
  .identity img {
    width: 124px;
    height: 124px;
  }
  .identity h1 {
    font-size: 66px;
  }
  .search-form {
    height: 44px;
  }
  .search-button {
    padding: 0 17px;
    font-size: 14px;
  }
  .category-bar {
    gap: 5px 17px;
    font-size: 12px;
  }
  .category {
    font-size: 12px;
  }
  .descriptor {
    margin-bottom: 26px;
  }
  .has-results .masthead {
    padding: 10px 0 0;
  }
  .results {
    margin-top: 28px;
  }
  .results-heading {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 16px;
  }
  h2 {
    font-size: 20px;
  }
  .filters {
    justify-content: space-between;
    width: 100%;
  }
  .col-source,
  .col-age,
  .col-leech {
    display: none;
  }
  .col-size {
    width: 65px;
  }
  .col-seeds {
    width: 47px;
  }
  .col-actions {
    width: 95px;
  }
  .result-table th {
    font-size: 11px;
    padding: 10px 6px;
  }
  .result-table td {
    padding: 15px 6px;
    font-size: 11px;
  }
  .result-name {
    font-size: 12px;
  }
  .result-meta {
    font-size: 10px;
  }
  .row-actions {
    gap: 5px;
  }
  .magnet {
    font-size: 11px;
    padding: 5px;
  }
  .save-button {
    font-size: 19px;
    width: 20px;
  }
  .detail-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .mobile-meta {
    display: inline;
  }
  .result-table .col-name {
    padding-left: 0;
  }
  footer {
    margin-top: 65px;
  }
  dialog {
    padding: 30px 22px;
  }
  .dialog-title {
    font-size: 21px;
  }
}
@media (max-width: 420px) {
  .col-size {
    display: none;
  }
  .mobile-size {
    display: inline;
  }
  .col-actions {
    width: 91px;
  }
  .category-bar {
    gap: 5px 15px;
  }
  .result-meta {
    line-height: 1.8;
  }
  .masthead {
    padding-top: 40px;
  }
}
@media (min-width: 421px) {
  .mobile-size {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
/* Compact type and quieter controls. */
body {
  font-size: 12px;
}
nav {
  font-size: 12px;
}
.identity h1 {
  font-size: 66px;
  letter-spacing: -3px;
}
.identity img {
  width: 132px;
  height: 132px;
}
.descriptor {
  font-size: 11px;
  letter-spacing: 2.3px;
  margin: 10px 0 27px;
}
.search-form {
  height: 41px;
  max-width: 575px;
  position: relative;
}
.search-form input {
  font-size: 16px;
  padding: 8px 12px;
  border-color: var(--theme-line, #c5bfb4);
  box-shadow: none;
  border-radius: 4px;
}
.search-form input:focus {
  outline: 0;
  border-color: var(--theme-muted, #91877a);
  box-shadow: 0 0 0 2px #91877a12;
}
.search-button {
  font-size: 12px;
  font-weight: 400;
  background: var(--theme-surface, #f0ede6);
  border-color: var(--theme-line, #c5bfb4);
  box-shadow: none;
  padding: 0 21px;
  border-radius: 4px;
}
.category {
  font-size: 12px;
}
.category-bar {
  margin-top: 17px;
  gap: 4px 17px;
}
.result-name {
  font-size: 12px;
}
.result-table td {
  font-size: 12px;
  padding: 14px 10px;
}
.result-table th {
  font-size: 11px;
  padding: 10px;
}
.result-meta {
  font-size: 10px;
}
.result-table {
  border-top-color: var(--theme-line, #d0c9bd);
}
.result-table th {
  background: var(--theme-surface, #f2efe8);
}
.result-table tbody tr:hover {
  background: var(--theme-surface, #f4f1eb);
}
.results-heading h2 {
  font-size: 20px;
}
.filters {
  gap: 12px;
  font-size: 11px;
}
.filters select {
  font-size: 11px;
  padding: 6px 8px;
}
.filters label {
  font-size: 11px;
}
.masthead {
  position: relative;
}
.suggestions {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(575px, 100%);
  text-align: left;
  background: var(--theme-surface, #fffefa);
  border: 1px solid var(--theme-line, #d1c9bc);
  border-radius: 4px;
  box-shadow: 0 8px 24px #30291b0d;
  z-index: 5;
  margin-top: 5px;
  padding: 4px;
}
.suggestion {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px;
  text-decoration: none;
  color: var(--ink);
  border-radius: 2px;
}
.suggestion:hover,
.suggestion:focus-visible {
  background: var(--theme-surface, #f1ede5);
}
.suggestion-poster {
  width: 31px;
  height: 45px;
  object-fit: cover;
  border-radius: 2px;
}
.suggestion strong {
  font-size: 12px;
  font-weight: 400;
}
.suggestion small {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-top: 5px;
}
.no-poster,
.no-photo {
  display: grid;
  place-items: center;
  color: var(--theme-muted, #b2a899);
  background: var(--theme-line, #ede8df);
  font-family: "Times New Roman", serif;
}
.title-match {
  display: flex;
  align-items: center;
  gap: 18px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 20px 0;
  margin-bottom: 26px;
}
.match-poster {
  width: 66px;
  height: 96px;
  object-fit: cover;
  border-radius: 3px;
}
.match-label {
  font-size: 10px;
  color: var(--muted);
}
.title-match h3 {
  font-size: 20px;
  font-weight: 400;
  margin: 5px 0;
}
.title-match h3 a {
  color: var(--ink);
  text-decoration: none;
}
.title-match h3 a:hover {
  color: var(--red);
}
.title-match h3 span {
  color: var(--muted);
  font-size: 17px;
}
.title-match p {
  font-size: 11px;
  color: var(--muted);
  margin: 7px 0 12px;
}
.view-title {
  font-size: 11px;
  text-underline-offset: 3px;
}
.match-options {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.match-options .text-button {
  font-size: 11px;
}
.alternate-title {
  padding: 0;
  color: var(--muted);
  font-size: 10px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.title-page {
  max-width: 970px;
  margin: 32px auto 0;
}
.title-breadcrumb {
  display: flex;
  gap: 12px;
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 25px;
}
.title-breadcrumb a {
  text-underline-offset: 3px;
}
.film-overview {
  display: grid;
  grid-template-columns: 173px 1fr;
  gap: 32px;
}
.film-poster {
  width: 173px;
  height: 258px;
  object-fit: cover;
  box-shadow: 0 2px 10px #00000010;
  border-radius: 3px;
}
.film-kicker {
  font-size: 10px;
  color: var(--muted);
  margin: 3px 0 9px;
}
.film-info h2 {
  font-family: "Times New Roman", Times, serif;
  font-size: 34px;
  line-height: 1.15;
}
.film-info h2 > span {
  font-size: 26px;
  color: var(--theme-muted, #8b8171);
}
.film-facts {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.8;
  margin-top: 12px;
}
.film-director {
  font-size: 11px;
  margin: 14px 0 0;
  color: var(--muted);
}
.film-director strong {
  font-weight: 400;
  color: var(--ink);
  margin-left: 8px;
}
.film-summary {
  font-size: 12px;
  line-height: 1.9;
  max-width: 670px;
  margin: 18px 0;
  color: var(--theme-ink, #615b50);
}
.film-links {
  display: flex;
  gap: 18px;
  margin-top: 18px;
  font-size: 11px;
}
.film-links a {
  text-underline-offset: 3px;
}
.cast-section {
  margin-top: 32px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.cast-section h3,
.title-releases h3 {
  font-size: 16px;
  font-weight: 400;
  margin: 0 0 18px;
}
.cast-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 16px;
}
.cast-member img,
.no-photo {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: center 22%;
  border-radius: 3px;
}
.cast-member a {
  font-size: 11px;
  text-decoration: none;
}
.cast-member a > span:not(.no-photo) {
  display: block;
  margin-top: 10px;
  line-height: 1.4;
}
.cast-member a:hover {
  color: var(--red);
}
.cast-member small {
  font-size: 9px;
  color: var(--muted);
  display: block;
  line-height: 1.5;
  margin-top: 4px;
}
.no-photo {
  font-size: 25px;
}
.title-credits {
  font-size: 9px;
  color: var(--theme-muted, #938a7b);
  margin-top: 20px;
}
.title-credits a {
  color: inherit;
  text-underline-offset: 2px;
}
.title-releases {
  margin-top: 35px;
}
.title-releases .results-heading {
  border-bottom: 0;
  padding-bottom: 0;
}
.title-releases h3 {
  margin: 0;
}
.title-releases .results-heading span {
  font-size: 10px;
  color: var(--muted);
}
.image-missing {
  background: var(--theme-line, #ede8df);
  object-fit: contain;
  font-size: 10px;
  color: var(--theme-muted, #817465);
}
.has-results .identity h1 {
  font-size: 37px;
}
.has-results .identity img {
  width: 45px;
  height: 45px;
}
@media (max-width: 760px) {
  nav {
    font-size: 12px;
  }
  .identity h1 {
    font-size: 59px;
  }
  .identity img {
    width: 119px;
    height: 119px;
  }
  .search-form {
    height: 40px;
  }
  .search-button {
    font-size: 12px;
    padding: 0 15px;
  }
  .category {
    font-size: 11px;
  }
  .category-bar {
    gap: 4px 15px;
  }
  .results-heading {
    gap: 13px;
  }
  .filters {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 13px;
  }
  .filters #sort {
    margin-left: auto;
  }
  .result-table td {
    font-size: 10px;
    padding: 12px 5px;
  }
  .result-name {
    font-size: 12px;
  }
  .result-meta {
    font-size: 9px;
  }
  .title-match {
    gap: 13px;
    padding: 17px 0;
    flex-wrap: wrap;
  }
  .match-options {
    width: 100%;
    margin-left: 79px;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }
  .title-page {
    margin-top: 25px;
  }
  .film-overview {
    grid-template-columns: 115px 1fr;
    gap: 18px;
  }
  .film-poster {
    width: 115px;
    height: 172px;
  }
  .film-info h2 {
    font-size: 26px;
  }
  .film-info h2 > span {
    font-size: 20px;
  }
  .film-summary {
    font-size: 11px;
    line-height: 1.8;
  }
  .film-facts {
    font-size: 10px;
  }
  .film-kicker {
    font-size: 9px;
  }
  .film-links {
    font-size: 10px;
    gap: 13px;
  }
  .film-director {
    font-size: 10px;
  }
  .cast-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 17px 11px;
  }
  .cast-member a {
    font-size: 10px;
  }
  .cast-member small {
    font-size: 9px;
  }
  .cast-section h3,
  .title-releases h3 {
    font-size: 15px;
  }
  .title-breadcrumb {
    font-size: 10px;
  }
  .release-preference {
    font-size: 9px !important;
  }
}
@media (max-width: 420px) {
  .film-overview {
    grid-template-columns: 93px 1fr;
    gap: 15px;
  }
  .film-poster {
    width: 93px;
    height: 140px;
  }
  .film-info h2 {
    font-size: 24px;
  }
  .film-info h2 > span {
    font-size: 19px;
  }
  .film-summary {
    grid-column: 1/-1;
  }
  .filters {
    gap: 10px;
  }
  .filters #language {
    max-width: 128px;
  }
  .filters #sort {
    max-width: 110px;
  }
  .filters label {
    font-size: 10px;
  }
  .title-match h3 {
    font-size: 18px;
  }
}
.image-credits {
  display: inline;
  position: relative;
}
.image-credits summary {
  display: inline;
  text-decoration: underline;
  cursor: pointer;
  text-underline-offset: 2px;
}
.image-credits ul {
  position: absolute;
  z-index: 3;
  left: 0;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 14px 22px;
  min-width: 175px;
  line-height: 2;
  font-size: 10px;
  box-shadow: 0 3px 12px #0000000a;
}
.title-filters {
  width: auto;
}
.title-filters select {
  font-size: 10px;
}
@media (max-width: 760px) {
  .title-filters {
    width: auto;
    flex-wrap: wrap;
  }
  .title-filters select {
    max-width: 130px;
  }
  .title-releases .results-heading {
    gap: 12px;
  }
}
.match-reasons,
.metadata-warning {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.7;
}
.dialog-title {
  font-size: 21px;
}
.detail-grid > div {
  font-size: 12px;
}
.dialog-description {
  font-size: 12px;
}
.dialog-actions a,
.dialog-actions button {
  font-size: 12px;
}

.source-settings {
  max-width: 970px;
  margin: 0 auto 16px;
  font-size: 11px;
  color: var(--muted);
}
.source-settings summary {
  cursor: pointer;
  width: fit-content;
  margin: auto;
}
#source-settings {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-top: 12px;
}
#source-settings input {
  accent-color: var(--red);
}
.search-status {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 10px 0 16px;
  color: var(--muted);
  font-size: 11px;
}
.provider-state.ready {
  color: var(--theme-success, #537047);
}
.provider-state.unavailable {
  color: var(--red);
}
@media (max-width: 600px) {
  .source-settings {
    margin-inline: 20px;
  }
  .filters {
    flex-wrap: wrap;
  }
}
.discovery {
  margin-top: 20px;
}
.discovery-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px;
}
.discovery-heading h2 {
  font-size: 21px;
  font-weight: normal;
  margin: 0;
}
.discovery-controls {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.discovery-controls select {
  padding: 5px 7px;
  background: transparent;
  border: 1px solid var(--line);
  font-size: 11px;
  border-radius: 3px;
}
.discovery-controls button {
  background: none;
  border: 0;
  padding: 5px 6px;
  color: var(--muted);
  font-size: 11px;
}
.time-filters {
  display: flex;
}
.time-filters .active {
  color: var(--red);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.browse-status {
  min-height: 32px;
  font-size: 10px;
  color: var(--muted);
  padding: 10px 0;
}
.poster-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 24px 15px;
}
.poster-card {
  min-width: 0;
  position: relative;
}
.poster-link {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-decoration: none;
  position: relative;
  color: var(--ink);
  text-align: left;
}
.poster-link img,
.poster-placeholder {
  width: 100%;
  aspect-ratio: 2/3;
  display: flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  background: var(--theme-surface, #efede6);
  border: 1px solid var(--theme-line, #e3e0d8);
  border-radius: 3px;
  transition:
    transform 0.18s,
    box-shadow 0.18s;
}
.poster-placeholder {
  padding: 12px;
  text-align: center;
  font-size: 14px;
  color: var(--theme-muted, #827d73);
}
.poster-link:hover img,
.poster-link:hover .poster-placeholder {
  transform: translateY(-3px);
  box-shadow: 0 5px 12px #29241818;
}
.poster-rank {
  position: absolute;
  left: 5px;
  top: 5px;
  background: #faf9f6e8;
  color: var(--theme-ink, #49443d);
  border-radius: 2px;
  font-size: 10px;
  padding: 2px 5px;
}
.poster-card h3 {
  font-size: 12px;
  font-weight: normal;
  margin: 8px 0 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.poster-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 3px;
  font-size: 10px;
  color: var(--muted);
}
.poster-source {
  display: block;
  font-size: 9px;
  color: var(--theme-muted, #9b958a);
  margin-top: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.discovery-note {
  font-size: 10px;
  color: var(--muted);
  margin: 24px 0;
}
.skeleton {
  animation: subtle-pulse 1.5s ease-in-out infinite alternate;
}
@keyframes subtle-pulse {
  to {
    opacity: 0.45;
  }
}
@media (max-width: 900px) {
  .poster-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .poster-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 14px;
  }
  .discovery-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
  .discovery-controls {
    gap: 6px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .skeleton {
    animation: none;
  }
  .poster-link img,
  .poster-link .poster-placeholder {
    transition: none;
  }
}

.episode-guide {
  margin: 26px 0 30px;
}
.season-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  border-bottom: 1px solid var(--line, var(--theme-line, #ddd8cf));
  padding-bottom: 6px;
}
.season-tabs button {
  flex-shrink: 0;
  padding: 7px 12px;
  font-size: 12px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 3px;
}
.season-tabs button[aria-selected="true"] {
  background: var(--theme-surface, #efede7);
  border-color: var(--theme-line, #dcd7cc);
}
.episode-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 16px 0 8px;
}
.episode-heading h3 {
  font-size: 15px;
  margin: 0;
}
.episode-heading h3 span {
  color: var(--theme-muted, #8b8579);
  font-size: 11px;
  font-weight: normal;
  margin-left: 5px;
}
.episode-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 8px;
  border-bottom: 1px solid var(--theme-line, #e8e4dc);
}
.episode-row.selected {
  background: var(--theme-surface, #f0ede5);
}
.episode-row img,
.episode-placeholder {
  width: 84px;
  height: 48px;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 2px;
  background: var(--theme-surface, #efede7);
}
.episode-placeholder {
  display: grid;
  place-items: center;
  color: #aaa;
}
.episode-info {
  flex: 1;
  min-width: 0;
}
.episode-title {
  background: none;
  border: 0;
  padding: 0;
  text-align: left;
  font-size: 12px;
}
.episode-title span {
  color: var(--theme-muted, #898274);
  font-size: 11px;
  margin-right: 8px;
}
.episode-info small {
  display: block;
  color: var(--theme-muted, #898274);
  font-size: 10px;
  margin-top: 4px;
}
.episode-info details {
  margin-top: 6px;
  font-size: 11px;
  color: var(--theme-muted, #716b60);
}
.episode-info details p {
  max-width: 700px;
  line-height: 1.6;
  margin: 8px 0 0;
}
.episode-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.episode-actions button {
  font-size: 11px;
}
.episode-note {
  color: var(--theme-muted, #898274);
  font-size: 12px;
}
#player-dialog {
  width: min(800px, calc(100vw - 30px));
  max-width: 800px;
  padding: 22px;
  background: var(--theme-surface, #faf9f6);
  border: 1px solid var(--theme-line, #d8d2c7);
  border-radius: 5px;
}
.player-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.player-heading h2 {
  font-size: 19px;
  margin: 0;
}
.player-heading button {
  background: none;
  border: 0;
  font-size: 24px;
}
.player-source {
  display: flex;
  gap: 8px;
  align-items: center;
}
.player-source select {
  flex: 1;
  min-width: 0;
}
.file-button {
  cursor: pointer;
  border: 1px solid var(--theme-line, #d8d2c7);
  border-radius: 3px;
  padding: 7px 12px;
  font-size: 12px;
}
#player-message {
  font-size: 11px;
  color: var(--theme-muted, #7e776c);
  margin: 12px 0;
}
#player-video {
  width: 100%;
  aspect-ratio: 16/9;
  display: block;
  background: #000;
  border-radius: 2px;
}
.player-timeline {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  font-size: 11px;
}
.player-timeline input {
  flex: 1;
  min-width: 20px;
  accent-color: #9b352d;
}
.player-timeline span {
  white-space: nowrap;
}
@media (max-width: 600px) {
  .episode-row {
    gap: 9px;
    flex-wrap: wrap;
  }
  .episode-row img,
  .episode-placeholder {
    width: 64px;
    height: 38px;
  }
  .episode-actions {
    width: 100%;
    padding-left: 73px;
  }
  #player-dialog {
    padding: 14px;
  }
  .player-source {
    flex-wrap: wrap;
  }
  .player-source select {
    width: 100%;
    order: 3;
    flex-basis: 100%;
  }
}

.watch-player {
  margin: 22px 0 30px;
  scroll-margin-top: 18px;
}
.watch-player[hidden],
#up-next[hidden] {
  display: none;
}
.watch-kicker {
  color: var(--theme-muted, #898274);
  font-size: 10px;
}
.watch-player .player-heading {
  margin-bottom: 12px;
}
.watch-player .player-heading h2 {
  font-size: 18px;
  margin-top: 4px;
}
.video-stage {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  background: #000;
}
.watch-player video {
  width: 100%;
  max-height: 72vh;
  object-fit: contain;
}
.watch-status {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
}
.watch-status label {
  font-size: 11px;
  color: var(--theme-muted, #777064);
  white-space: nowrap;
}
.watch-status input {
  accent-color: #9b352d;
  vertical-align: middle;
}
.next-status {
  font-size: 11px;
  color: var(--theme-muted, #777064);
  margin: 12px 0;
}
#up-next {
  position: absolute;
  right: 22px;
  bottom: 55px;
  background: var(--theme-surface, #faf9f6);
  color: var(--theme-ink, #29251e);
  padding: 18px 22px;
  max-width: 360px;
  border: 1px solid var(--theme-line, #d8d2c7);
  border-radius: 4px;
  box-shadow: 0 4px 22px #0002;
}
#up-next h3 {
  font-size: 15px;
  margin: 8px 0 16px;
}
#up-next small {
  font-size: 11px;
  color: var(--theme-muted, #777064);
}
#play-next,
.episode-play,
.title-play {
  background: #8d332b;
  color: #fff;
  border: 1px solid #8d332b;
  border-radius: 3px;
  padding: 7px 15px;
  font-family: inherit;
  font-size: 12px;
  cursor: pointer;
}
.episode-play {
  flex-shrink: 0;
}
.episode-play:disabled {
  background: var(--theme-line, #eeeae2);
  border-color: var(--theme-line, #e1dbd1);
  color: var(--theme-muted, #8b8579);
  cursor: default;
}
#cancel-next {
  margin-left: 14px;
}
.playback-advanced {
  border-top: 1px solid var(--theme-line, #e5e0d7);
  margin-top: 18px;
  padding-top: 12px;
  font-size: 11px;
}
.playback-advanced summary,
.title-releases > summary {
  cursor: pointer;
  color: var(--theme-muted, #7a7266);
}
.playback-advanced p {
  overflow-wrap: anywhere;
  line-height: 1.5;
}
.playback-advanced .player-source {
  margin: 14px 0;
}
#magnet-play-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  max-width: 640px;
  margin: 20px 0;
}
#magnet-play-form input {
  width: 100%;
  border: 1px solid var(--theme-line, #d8d2c7);
  padding: 8px;
  border-radius: 3px;
  background: var(--theme-surface, #fff);
  font:
    12px Georgia,
    serif;
}
#magnet-play-form button {
  justify-self: start;
  padding: 7px 12px;
  border: 1px solid var(--theme-line, #d8d2c7);
}
.title-releases > summary {
  font-size: 12px;
  margin-bottom: 16px;
}
@media (max-width: 600px) {
  .watch-status {
    align-items: flex-start;
    flex-direction: column;
    gap: 0;
  }
  .watch-player .player-heading h2 {
    font-size: 15px;
  }
  #up-next {
    right: 10px;
    bottom: 42px;
    max-width: calc(100% - 20px);
    padding: 12px;
  }
  #up-next h3 {
    font-size: 12px;
    margin: 5px 0 10px;
  }
  .episode-play {
    margin-left: auto;
    padding: 6px 10px;
  }
  .player-timeline {
    gap: 7px;
  }
}
/* Episode-first viewing, using the same quiet serif palette. */
.show-details {
  margin: 18px 0;
  color: var(--theme-muted, #716a61);
  font-size: 12px;
}
.show-details > summary {
  cursor: pointer;
}
.show-details .cast-section {
  margin-top: 20px;
}
.film-overview .film-poster {
  width: 116px;
  max-height: 174px;
  object-fit: cover;
}
.film-overview {
  gap: 24px;
}
.film-info h2 {
  font-size: 27px;
}
.film-summary {
  max-width: 720px;
  font-size: 12px;
  line-height: 1.7;
}
.watching-title #title-view .film-overview,
.watching-title #title-view .title-breadcrumb,
.watching-title #title-view .show-details,
.watching-title #title-view .episode-focus {
  display: none;
}
.watch-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  border-top: 1px solid var(--theme-line, #e5e0d7);
  padding: 14px 0;
  font-size: 12px;
}
.watch-tools button,
.episode-now-heading button {
  font: inherit;
  cursor: pointer;
  background: transparent;
  border: 0;
  color: var(--theme-ink, #554d42);
  padding: 5px;
}
.watch-tools select,
.track-grid input {
  font: inherit;
  background: var(--theme-surface, #fffdf9);
  color: inherit;
  border: 1px solid var(--theme-line, #d9d2c8);
  border-radius: 3px;
  padding: 5px;
  max-width: 240px;
}
.track-settings {
  margin-left: auto;
}
.track-settings summary {
  cursor: pointer;
}
.track-settings[open] {
  width: 100%;
  margin: 0;
}
.track-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  background: var(--theme-surface, #f2efe9);
  border: 1px solid var(--theme-line, #e2dbd1);
  border-radius: 4px;
  padding: 18px;
  margin-top: 12px;
}
.track-grid label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
}
.track-grid .file-button {
  display: inline-block;
  cursor: pointer;
  text-decoration: underline;
}
.track-grid p {
  grid-column: 1/-1;
  margin: 0;
  color: var(--theme-muted, #81786a);
  overflow-wrap: anywhere;
}
#player-video::cue {
  font-size: 120%;
  background-color: rgba(0, 0, 0, 0.75);
  color: white;
  text-shadow: 0 1px 3px #000;
}
.episode-now-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.episode-now-heading small {
  color: var(--theme-muted, #8b7661);
  font-size: 11px;
}
.episode-now-heading h3 {
  font-size: 23px;
  margin: 7px 0;
}
.episode-now-heading nav {
  display: flex;
  gap: 16px;
  flex-shrink: 0;
}
#watch-episode,
.episode-focus {
  border-top: 1px solid var(--theme-line, #ded8ce);
  padding: 22px 0 8px;
  margin-top: 12px;
}
#watch-episode p,
.episode-focus p {
  font-size: 12px;
  line-height: 1.7;
  max-width: 740px;
  color: var(--theme-ink, #62594c);
}
.episode-focus {
  background: var(--theme-surface, #f2efe9);
  padding: 22px;
  border-radius: 4px;
  margin: 24px 0;
}
.episode-row.selected {
  border-left: 3px solid #8b4039;
  padding-left: 12px;
  background: var(--theme-surface, #f3eee6);
}
@media (max-width: 600px) {
  .track-grid {
    grid-template-columns: 1fr;
  }
  .track-grid select {
    max-width: 100%;
  }
  .episode-now-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .track-settings {
    margin-left: 0;
  }
  .film-overview .film-poster {
    width: 85px;
    max-height: 128px;
  }
  .film-info h2 {
    font-size: 23px;
  }
  .watch-tools {
    gap: 10px;
  }
}
#title-view.has-episode .film-summary,
#title-view.has-episode .film-poster,
#title-view.has-episode .film-actions .title-play {
  display: none;
}
#title-view.has-episode .film-overview {
  display: block;
  margin-bottom: 12px;
}
/* Compact viewing shell and a browsable episode rail. */
#player-brand-slot:empty,
#player-search-slot:empty {
  display: none;
}
:is(.player-view, .title-page-view) #site-header {
  display: flex;
  align-items: center;
  gap: 26px;
  border-bottom: 1px solid var(--theme-line, #ded8ce);
  padding: 14px 0;
  margin: 0 auto 20px;
  max-width: 1400px;
}
:is(.player-view, .title-page-view) #site-header nav {
  margin-left: auto;
  white-space: nowrap;
}
:is(.player-view, .title-page-view) #site-header .identity {
  margin: 0;
  gap: 8px;
  display: flex;
  align-items: center;
}
:is(.player-view, .title-page-view) #site-header .identity img {
  width: 29px;
  height: 29px;
}
:is(.player-view, .title-page-view) #site-header .identity h1 {
  font-size: 27px;
  line-height: 1;
  margin: 0;
}
#player-search-slot {
  position: relative;
  flex: 1;
  max-width: 400px;
}
:is(.player-view, .title-page-view) #hero-search {
  width: 100%;
  margin: 0;
  gap: 7px;
}
:is(.player-view, .title-page-view) #query {
  padding: 8px 10px;
  font-size: 12px;
  min-height: 34px;
}
:is(.player-view, .title-page-view) .search-button {
  padding: 7px 12px;
  font-size: 12px;
}
#player-search-slot .suggestions {
  top: 100%;
  width: 100%;
}
:is(.player-view, .title-page-view) .masthead,
:is(.player-view, .title-page-view) main > .source-settings {
  display: none;
}
#title-view:not([hidden]) {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}
.title-intro .film-overview {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.title-intro .film-info h2 {
  font-size: 24px;
  line-height: 1.2;
}
.title-intro .film-summary {
  font-size: 12px;
}
.title-intro .film-facts {
  font-size: 11px;
  line-height: 1.7;
}
.title-intro .film-links {
  flex-wrap: wrap;
  gap: 12px;
}
.title-episodes {
  min-width: 0;
}
.title-episodes .episode-focus {
  margin-top: 0;
}
.title-episodes .episode-guide {
  margin-top: 0;
}
.title-intro .cast-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.title-intro .cast-member img {
  max-width: 100%;
}
.player-view main {
  max-width: 1400px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 26px;
  align-items: start;
}
.player-view #watch-player {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  margin: 0;
}
.player-view #title-view:not([hidden]) {
  grid-column: 2;
  grid-row: 1;
  display: block;
  border-left: 1px solid var(--theme-line, #e3ddd3);
  padding-left: 22px;
  max-height: calc(100vh - 120px);
  overflow: auto;
  scrollbar-width: thin;
}
.player-view .title-intro,
.player-view .title-episodes .episode-focus {
  display: none;
}
.player-view .episode-guide .season-tabs {
  overflow: auto;
  white-space: nowrap;
  display: flex;
  margin-bottom: 14px;
}
.player-view .season-tabs button {
  font-size: 11px;
  padding: 7px 9px;
}
.player-view .episode-row {
  gap: 9px;
  padding: 12px 0;
}
.player-view .episode-row img,
.player-view .episode-placeholder {
  width: 64px;
  height: 40px;
  object-fit: cover;
}
.player-view .episode-info {
  min-width: 0;
}
.player-view .episode-title {
  font-size: 12px;
  line-height: 1.4;
}
.player-view .episode-info small {
  font-size: 10px;
}
.player-view .episode-row .episode-play {
  font-size: 10px;
  padding: 5px 7px;
}
.player-view .episode-row.selected {
  padding-left: 7px;
}
.player-view .episode-heading h3 {
  font-size: 17px;
}
.player-view main:not(:has(#title-view:not([hidden]))) {
  display: block;
  max-width: 1100px;
}
.player-view .player-heading {
  margin-bottom: 12px;
}
.player-view .video-stage {
  background: #000;
}
#player-video {
  cursor: pointer;
}
.volume-control {
  display: flex;
  align-items: center;
  gap: 5px;
}
#player-volume {
  width: 65px;
  accent-color: #8b4039;
}
.download-status {
  font-size: 11px;
  color: var(--theme-muted, #81786a);
  margin: 8px 0;
}
.download-status:empty {
  display: none;
}
#download-wait {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: rgba(24, 23, 20, 0.88);
  color: var(--theme-surface, #f6f1e6);
  text-align: center;
}
#download-wait[hidden] {
  display: none;
}
#download-wait span {
  font-size: 17px;
}
#download-wait strong {
  font-size: 30px;
  font-weight: 400;
}
#download-wait small {
  font-size: 12px;
  color: var(--theme-line, #c9c0af);
}
#download-progress {
  width: 65%;
  height: 5px;
  accent-color: var(--theme-muted, #b77b64);
}
#watch-player:fullscreen {
  background: var(--theme-ink, #141410);
  color: #eee;
  padding: 16px;
  overflow: auto;
}
#watch-player:fullscreen .watch-tools button {
  color: #ddd;
}
#watch-player:fullscreen #player-video {
  max-height: 75vh;
}
@media (max-width: 1000px) {
  :is(.player-view, .title-page-view) #site-header {
    flex-wrap: wrap;
    gap: 14px;
  }
  :is(.player-view, .title-page-view) #site-header nav {
    font-size: 11px;
  }
  .player-view main {
    grid-template-columns: minmax(0, 1fr) 265px;
    gap: 18px;
  }
  .player-view #title-view:not([hidden]) {
    padding-left: 14px;
  }
  .player-view .episode-row img {
    display: none;
  }
}
@media (max-width: 760px) {
  #title-view:not([hidden]) {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .title-intro .film-overview {
    flex-direction: row;
  }
  .player-view main {
    display: block;
  }
  .player-view #title-view:not([hidden]) {
    border-left: 0;
    border-top: 1px solid var(--theme-line, #ded8ce);
    padding: 20px 0 0;
    margin-top: 22px;
    max-height: none;
  }
  :is(.player-view, .title-page-view) #site-header nav {
    width: 100%;
    justify-content: flex-start;
    margin: 0;
  }
  :is(.player-view, .title-page-view) #site-header {
    padding: 12px 0;
  }
  :is(.player-view, .title-page-view) #site-header .identity h1 {
    font-size: 23px;
  }
  .player-view .episode-row img {
    display: block;
  }
  .player-view #player-search-slot {
    min-width: 0;
  }
  :is(.player-view, .title-page-view) #query {
    width: 100%;
  }
  .player-view .episode-info {
    flex: 1;
  }
}
.player-view #title-view:not([hidden]) {
  min-width: 0;
  width: 100%;
}
:is(.player-view, .title-page-view) #site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--paper, var(--theme-surface, #faf8f3));
}
.player-view #watch-player {
  scroll-margin-top: 100px;
}
:is(.player-view, .title-page-view) #site-header {
  width: min(1400px, 90%);
}
:is(.player-view, .title-page-view) #site-header .identity {
  flex-direction: row;
}
.rail-title {
  display: none;
}
.player-view .rail-title {
  display: block;
  font-size: 18px;
  margin: 0 0 15px;
}
#title-view:not([hidden]):not(.has-episodes) {
  display: block;
}
#title-view:not(.has-episodes) .title-intro .film-overview {
  flex-direction: row;
}
.player-view main:not(:has(#title-view .episode-guide)) {
  display: block;
  max-width: 1100px;
}
.player-view #title-view:not(.has-episodes):not([hidden]) {
  border: 0;
  padding: 0;
  margin-top: 20px;
  max-height: none;
}
/* Give the video the page width, keeping navigation in a quiet rail. */
.player-view main {
  width: min(1760px, 96%);
  max-width: 1760px;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
}
:is(.player-view, .title-page-view) #site-header {
  width: min(1760px, 96%);
  max-width: 1760px;
}
.player-view .video-stage video {
  width: 100%;
  max-height: 76vh;
  object-fit: contain;
}
.player-view #watch-player .player-heading h2 {
  font-size: 18px;
  margin: 0;
}
.episode-row[data-row-episode] {
  cursor: pointer;
  transition: background 0.15s;
}
.episode-row[data-row-episode]:hover {
  background: var(--theme-line, #eee9df);
}
.episode-row[data-row-episode]:focus-visible {
  outline: 2px solid var(--link);
  outline-offset: 2px;
}
.playback-advanced {
  border: 1px solid var(--theme-line, #ddd6ca);
  border-radius: 5px;
  padding: 14px 18px;
  background: var(--theme-surface, #f4f1eb);
  margin-top: 20px;
}
.playback-advanced > summary {
  font-size: 12px;
  color: var(--theme-ink, #625646);
}
.advanced-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 14px;
}
.advanced-card {
  padding: 16px;
  background: var(--theme-surface, #fffdf9);
  border: 1px solid var(--theme-line, #e3ddd3);
  border-radius: 4px;
  min-width: 0;
}
.advanced-card h3 {
  font-size: 14px;
  margin: 0 0 14px;
  font-weight: 400;
}
.advanced-card:last-child {
  grid-column: 1/-1;
}
.advanced-card .player-source {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0;
}
.advanced-card select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 8px;
  border: 1px solid var(--theme-line, #d9d2c6);
  border-radius: 3px;
  font: inherit;
}
.advanced-card button,
.advanced-card .file-button {
  padding: 7px 10px;
  border: 1px solid var(--theme-line, #d8d0c2);
  border-radius: 3px;
  background: var(--theme-surface, #f3efe7);
  cursor: pointer;
}
.advanced-card #magnet-play-form {
  margin: 0;
  max-width: none;
}
.source-health:empty {
  display: none;
}
.source-health {
  font-size: 10px;
  color: var(--theme-muted, #8b7c69);
  margin: 12px 0;
}
.source-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 12px;
}
.source-card {
  border: 1px solid var(--theme-line, #e1dacf);
  border-radius: 4px;
  padding: 15px;
  background: var(--theme-surface, #fffdfa);
  min-width: 0;
}
.source-card-top {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  color: var(--theme-muted, #887a67);
}
.source-card-top strong {
  font-weight: 400;
  color: var(--theme-accent, #713c34);
  border: 1px solid var(--theme-line, #ded1bf);
  border-radius: 3px;
  padding: 3px 6px;
}
.source-name {
  font:
    12px/1.6 Georgia,
    serif;
  text-align: left;
  margin: 12px 0;
  overflow-wrap: anywhere;
  display: block;
  width: 100%;
  padding: 0;
}
.source-card-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  font-size: 10px;
}
.source-card-bottom small {
  font-size: 10px;
  color: var(--theme-muted, #827766);
}
.source-card-bottom button {
  font: inherit;
  text-decoration: underline;
  margin-left: 12px;
}
.player-view .source-cards {
  grid-template-columns: 1fr;
}
@media (max-width: 1100px) {
  .player-view main {
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 18px;
  }
  .advanced-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 850px) {
  .player-view main {
    display: block;
    width: 94%;
  }
  .player-view #title-view:not([hidden]) {
    border-left: 0;
    border-top: 1px solid var(--theme-line, #ded8ce);
    padding: 20px 0 0;
    margin-top: 20px;
    max-height: none;
  }
  :is(.player-view, .title-page-view) #site-header {
    width: 94%;
  }
  .player-view .episode-info {
    flex: 1;
  }
  .advanced-grid {
    grid-template-columns: 1fr;
  }
  .player-view .video-stage video {
    max-height: none;
  }
}
.player-view main:not(:has(#title-view .episode-guide)) {
  width: min(1600px, 96%);
  max-width: 1600px;
}
.source-name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.more-sources {
  font-size: 12px;
  border: 1px solid var(--theme-line, #d8d0c2);
  border-radius: 3px;
  padding: 8px 12px;
  margin-top: 14px;
}
/* A horizontal overview, followed by a single clear content section. */
body:not(.player-view) #title-view:not([hidden]) {
  display: block;
}
body:not(.player-view) .title-intro .film-overview {
  display: grid !important;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 26px;
  align-items: start;
}
body:not(.player-view) .title-intro .film-poster {
  display: block !important;
  width: 130px;
  max-height: 195px;
  height: auto;
}
body:not(.player-view) .title-intro .film-info h2 {
  font-size: 29px;
  margin: 5px 0 12px;
}
body:not(.player-view) .film-summary {
  max-width: 760px;
  line-height: 1.75;
  margin: 16px 0;
}
body:not(.player-view) #title-view.has-episode .film-overview {
  margin-bottom: 16px;
}
.title-section-nav {
  justify-content: flex-start;
  border-bottom: 1px solid var(--theme-line, #d9d3c8);
  margin: 24px 0 20px;
  gap: 25px;
}
.title-section-nav button {
  font:
    13px Georgia,
    serif;
  padding: 10px 0;
  text-decoration: none;
  color: var(--theme-muted, #827666);
  border-bottom: 2px solid transparent;
}
.title-section-nav button[aria-pressed="true"] {
  border-color: #8b4039;
  color: var(--theme-ink, #392f25);
}
#title-view[data-section="episodes"] #releases {
  display: none;
}
#title-view[data-section="sources"] .episode-guide,
#title-view[data-section="sources"] .episode-focus {
  display: none;
}
#title-view[data-section="sources"] #releases > summary {
  display: none;
}
#title-release-results {
  position: relative;
  overflow-x: auto;
}
#title-release-results .result-table {
  min-width: 680px;
}
.player-view .title-section-nav {
  margin-top: 0;
}
@media (max-width: 650px) {
  body:not(.player-view) .title-intro .film-overview {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 16px;
  }
  body:not(.player-view) .title-intro .film-poster {
    width: 90px;
    max-height: 135px;
  }
  body:not(.player-view) .title-intro .film-info h2 {
    font-size: 23px;
  }
  .film-summary {
    font-size: 12px;
  }
  .player-frame .watch-tools {
    gap: 8px;
    padding: 8px;
  }
  .player-frame .player-timeline {
    gap: 7px;
    padding: 10px 8px 6px;
  }
}

/* Playback HUD stays on the picture; the surrounding site remains light. */
.player-frame {
  position: relative;
  background: #000;
  color: #fff;
  border-radius: 5px;
  overflow: hidden;
  isolation: isolate;
}
.player-frame .video-stage {
  margin: 0;
  border-radius: 0;
  background: #000;
}
.player-frame .video-stage video {
  display: block;
  border-radius: 0;
  width: 100%;
}
.player-frame .player-heading {
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  margin: 0;
  padding: 18px 22px 36px;
  color: white;
  background: linear-gradient(#000b, transparent);
  pointer-events: none;
}
.player-frame .player-heading h2 {
  color: inherit;
  font-size: 16px;
  text-shadow: 0 1px 4px #000;
}
.player-frame .player-heading button {
  pointer-events: auto;
  color: white;
  background: #0005;
  border: 0;
  border-radius: 50%;
  width: 32px;
  height: 32px;
}
.player-hud {
  position: absolute;
  z-index: 5;
  inset: auto 0 0;
  padding: 45px 20px 12px;
  background: linear-gradient(transparent, #000b 45%, #000e);
  color: white;
}
.player-frame .player-timeline {
  margin: 0;
  padding: 0 0 8px;
  gap: 12px;
  border: 0;
  background: none;
}
.player-frame .watch-tools {
  padding: 0;
  margin: 0;
  gap: 12px;
  border: 0;
  background: none;
  font-size: 11px;
}
.player-frame .watch-status {
  margin: 8px 0 0;
  padding: 0;
  min-height: 0;
  border: 0;
  background: none;
  font-size: 10px;
  color: #ccc;
}
.player-frame .watch-status p {
  margin: 0;
  font-size: 10px;
  color: inherit;
}
.player-frame button,
.player-frame summary {
  color: white;
}
.player-frame .player-timeline button,
.player-frame .watch-tools button {
  background: transparent;
  border: 0;
  border-radius: 4px;
  padding: 6px 8px;
  box-shadow: none;
  color: white;
}
.player-frame button:hover,
.player-frame summary:hover {
  background: #ffffff24;
}
.player-frame :is(button, summary, input, select):focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.player-frame select,
.player-frame input[type="number"] {
  background: #292929;
  color: white;
  border: 1px solid #ffffff40;
  border-radius: 4px;
}
.player-frame input[type="range"] {
  accent-color: #d9d9d9;
}
.player-frame #player-toggle {
  min-width: 50px;
  font-weight: bold;
}
.player-frame .track-settings {
  position: relative;
  margin-left: auto;
}
.player-frame .track-grid {
  position: absolute;
  bottom: calc(100% + 16px);
  right: 0;
  width: min(420px, calc(100vw - 64px));
  max-height: 55vh;
  overflow: auto;
  padding: 18px;
  margin: 0;
  background: #171717f5;
  color: white;
  border: 1px solid #ffffff30;
  border-radius: 8px;
  box-shadow: 0 8px 30px #0008;
}
.player-frame .track-grid label,
.player-frame .track-grid p {
  color: #ddd;
}
.player-frame .file-button {
  color: white;
  border-color: #ffffff50;
}
.player-frame .player-hud,
.player-frame .player-heading {
  transition: opacity 0.12s;
}
.player-frame.hud-hidden:not(:has(:focus-visible)):not(:has(details[open]))
  .player-hud,
.player-frame.hud-hidden:not(:has(:focus-visible)):not(:has(details[open]))
  .player-heading {
  opacity: 0;
  pointer-events: none;
}
.player-frame.hud-hidden:not(:has(:focus-visible)):not(:has(details[open])) {
  cursor: none;
}
.player-frame:fullscreen {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
}
.player-frame:fullscreen .video-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}
.player-frame:fullscreen .video-stage video {
  height: 100%;
  max-height: 100%;
  object-fit: contain;
}
@media (max-width: 650px) {
  .player-hud {
    padding: 32px 10px 8px;
  }
  .player-frame .player-heading {
    padding: 10px 12px 25px;
  }
  .player-frame .player-heading h2 {
    font-size: 12px;
  }
  .player-frame .watch-tools {
    gap: 5px;
    padding: 0;
  }
  .player-frame .player-timeline {
    padding: 0 0 4px;
  }
  .player-frame .watch-tools button {
    padding: 5px;
  }
  .player-frame .volume-control {
    display: none;
  }
  .player-frame .watch-status {
    display: none;
  }
  .player-frame .track-grid {
    max-height: 40vh;
  }
}
@media (prefers-reduced-motion: reduce) {
  .player-frame .player-hud,
  .player-frame .player-heading {
    transition: none;
  }
}
.player-frame .track-settings[open] {
  width: auto;
  margin-left: auto;
}
.player-frame:fullscreen .video-stage video {
  max-height: 100%;
}
.player-frame.hud-hidden:not(:has(:focus-visible)):not(:has(details[open]))
  #player-video {
  cursor: none;
}
@media (max-width: 650px) {
  .player-frame .track-grid {
    max-height: 140px;
    gap: 10px;
    padding: 12px;
  }
}
@media (max-width: 650px) {
  .player-view #watch-player .player-heading h2 {
    font-size: 12px;
    max-width: calc(100% - 32px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
/* Integrated transport, with secondary controls in the settings popover. */
.player-frame .watch-tools {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 14px;
}
.player-frame .watch-tools > button,
.player-frame .track-settings > summary {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 6px;
  flex-shrink: 0;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}
.player-frame .watch-tools svg {
  display: block;
  width: 23px;
  height: 23px;
}
.player-frame #player-toggle {
  min-width: 36px;
}
.player-frame #player-time {
  color: #eee;
  font:
    11px Georgia,
    serif;
  white-space: nowrap;
}
.player-frame .track-settings > summary {
  list-style: none;
}
.player-frame .track-settings > summary::-webkit-details-marker {
  display: none;
}
.player-frame .player-timeline {
  display: block;
  padding: 0 4px 8px;
}
.player-frame #player-seek {
  width: 100%;
  margin: 0;
  height: 4px;
  cursor: pointer;
}
.player-frame .volume-control {
  width: 75px;
  margin: 0;
}
.player-frame #player-volume {
  width: 100%;
  accent-color: white;
}
.player-frame .watch-status {
  position: absolute;
  bottom: 100%;
  left: 24px;
  right: 24px;
  margin: 0;
  pointer-events: none;
}
.player-frame .watch-status > label {
  display: none;
}
.player-frame .watch-status p {
  text-shadow: 0 1px 4px black;
}
.player-frame .track-grid {
  bottom: calc(100% + 20px);
}
@media (max-width: 650px) {
  .player-frame .watch-tools {
    gap: 5px;
  }
  .player-frame .watch-tools > button,
  .player-frame .track-settings > summary {
    width: 30px;
    height: 32px;
    padding: 5px;
  }
  .player-frame .watch-tools svg {
    width: 21px;
    height: 21px;
  }
  .player-frame #player-toggle {
    min-width: 30px;
  }
  .player-frame #player-time {
    font-size: 9px;
  }
  .player-frame .volume-control,
  .player-frame #picture-in-picture {
    display: none;
  }
}
.player-frame .track-grid {
  width: 320px;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 8px 14px;
  max-height: min(360px, 45vh);
}
.player-frame .track-grid > label {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  min-height: 40px;
  gap: 16px;
  border-bottom: 1px solid #ffffff12;
  font-size: 12px;
}
.player-frame .track-grid > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
}
.player-frame .track-grid select {
  max-width: 165px;
}
.player-frame .track-grid input[type="number"] {
  width: 65px;
}
.player-frame .track-grid #subtitle-status {
  padding: 8px 0;
  font-size: 10px;
}
.player-frame .track-grid > button {
  text-align: left;
}
@media (max-width: 650px) {
  .player-frame .track-grid {
    width: 290px;
    max-height: 140px;
    right: 0;
  }
  .player-frame .track-grid > label {
    min-height: 36px;
    font-size: 11px;
  }
}
.player-frame .track-grid > .subtitle-finder {
  display: grid;
  gap: 8px;
  border-bottom: 1px solid #ffffff30;
  padding-bottom: 12px;
}
.player-frame .subtitle-finder label {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.player-frame .subtitle-finder #found-subtitles {
  width: 100%;
  max-width: 100%;
}
/* Quiet buffering: preserve the picture and show only a delayed spinner. */
.player-frame .video-stage {
  aspect-ratio: 16/9;
}
.player-frame .video-stage video {
  height: 100%;
}
.seek-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
  z-index: 1;
  pointer-events: none;
}
.player-frame .buffer-spinner {
  display: none;
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  width: 32px;
  height: 32px;
  margin: -16px;
  border: 3px solid #ffffff30;
  border-top-color: white;
  border-radius: 50%;
  pointer-events: none;
}
.player-frame.is-buffering .buffer-spinner,
.player-frame:has(#download-wait:not([hidden])) .buffer-spinner {
  display: block;
  animation:
    buffer-spin 0.8s linear infinite,
    buffer-appear 0.2s 0.3s both;
}
.player-frame #download-wait {
  visibility: hidden;
  pointer-events: none;
}
.player-frame .watch-status {
  display: none;
}
#download-status,
#next-status {
  display: none;
}
#playback-advanced #player-message {
  color: var(--theme-muted, #80766b);
  font-size: 11px;
}
@keyframes buffer-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes buffer-appear {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .player-frame.is-buffering .buffer-spinner {
    animation: none;
  }
}
.season-picker {
  display: none;
}
/* Desktop episode navigator: stable header, readable rows, one play target. */
@media (min-width: 851px) {
  body.player-view main {
    grid-template-columns: minmax(0, 1fr) clamp(300px, 24vw, 360px);
    gap: 24px;
  }
  body.player-view #title-view.has-episodes:not([hidden]) {
    padding-left: 18px;
    overscroll-behavior: contain;
  }
  .player-view .title-section-nav {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--theme-surface, #faf9f6);
    margin: 0;
    padding: 0;
    gap: 22px;
  }
  .player-view .title-section-nav button {
    padding: 10px 0;
    font-size: 12px;
  }
  .player-view .episode-guide-header {
    position: sticky;
    top: 39px;
    z-index: 2;
    background: var(--theme-surface, #faf9f6);
    padding: 16px 0 12px;
    border-bottom: 1px solid var(--theme-line, #e5dfd5);
  }
  .player-view .episode-guide-header .rail-title {
    font-size: 19px;
    margin: 0 0 12px;
    line-height: 1.25;
  }
  .player-view .season-picker {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .player-view .season-picker select {
    max-width: 160px;
    padding: 6px 24px 6px 8px;
    font:
      12px Georgia,
      serif;
    border: 1px solid var(--theme-line, #d9d3c8);
    border-radius: 3px;
    background: var(--theme-surface, #f2efe9);
    color: var(--theme-ink, #38352f);
  }
  .player-view .season-picker small {
    font-size: 10px;
    color: var(--theme-muted, #898274);
  }
  .player-view .episode-guide .season-tabs,
  .player-view .episode-guide .episode-heading {
    display: none;
  }
  .player-view .episode-row {
    position: relative;
    gap: 11px;
    padding: 12px 8px;
    align-items: flex-start;
    min-height: 80px;
  }
  .player-view .episode-row img,
  .player-view .episode-placeholder {
    width: 80px;
    height: 46px;
    margin-top: 2px;
  }
  .player-view .episode-row .episode-play {
    position: absolute;
    left: 8px;
    top: 14px;
    width: 80px;
    height: 46px;
    opacity: 0;
    border-radius: 2px;
    background: #0009;
    font-size: 11px;
    padding: 0;
  }
  .player-view .episode-row:hover .episode-play,
  .player-view .episode-row:focus-within .episode-play {
    opacity: 1;
  }
  .player-view .episode-row .episode-play:disabled {
    display: none;
  }
  .player-view .episode-title {
    font-size: 12px;
    line-height: 1.4;
  }
  .player-view .episode-title span {
    font-size: 10px;
    margin-right: 5px;
  }
  .player-view .episode-info small {
    display: block;
    font-size: 10px;
    margin: 4px 0;
  }
  .player-view .episode-info summary {
    font-size: 10px;
    color: var(--theme-muted, #898274);
  }
  .player-view .episode-info details p {
    font-size: 11px;
    line-height: 1.65;
  }
  .player-view .episode-row.selected {
    padding-left: 8px;
    box-shadow: inset 2px 0 #8b4039;
    border-left: 0;
  }
  .player-view .episode-row:focus-visible {
    outline: 2px solid #8b4039;
    outline-offset: -2px;
  }
}
@media (min-width: 851px) {
  body.player-view #title-view.has-episodes:not([hidden]) {
    margin-top: 0;
  }
}

@media (min-width: 851px) {
  .player-view #title-release-results .result-table {
    min-width: 0;
    table-layout: fixed;
  }
  .player-view
    #title-release-results
    :is(.col-size, .col-leech, .col-source, .col-age) {
    display: none;
  }
  .player-view #title-release-results .col-name {
    width: auto;
  }
  .player-view #title-release-results .col-seeds {
    width: 40px;
  }
  .player-view #title-release-results .col-actions {
    width: 56px;
  }
  .player-view #title-release-results .result-name {
    overflow-wrap: anywhere;
    font-size: 11px;
  }
  .player-view #title-release-results .result-meta {
    font-size: 9px;
  }
  .player-view #title-release-results .row-actions {
    flex-direction: column;
    gap: 5px;
  }
  .player-view .title-filters {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .player-view .title-filters select {
    min-width: 0;
    width: 100%;
  }
  .player-view .title-episodes #releases .results-heading {
    display: block;
  }
}

/* Title suggestions: a single poster rail, shared by exact and broad matches. */
.suggested-titles { margin:8px 0 24px; min-width:0; }
.suggested-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; }
.suggested-heading h3 { margin:0; font-size:18px; }
.suggested-heading h3 span { font-size:12px; font-weight:normal; color:var(--theme-muted, #898274); }
.carousel-actions { display:flex; align-items:center; gap:8px; }
.carousel-actions .text-button { margin-right:12px; font-size:11px; }
.carousel-actions [data-carousel-step] { width:30px; height:28px; border:1px solid var(--theme-line, #d9d3c8); border-radius:3px; background:var(--theme-surface, #f3f0e9); color:var(--theme-ink, #433d35); cursor:pointer; }
.carousel-actions [data-carousel-step]:disabled { opacity:.3; cursor:default; }
.suggested-grid { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:14px; padding:2px 0 12px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--theme-line, #c8c1b5) transparent; overscroll-behavior-x:contain; }
.suggested-grid .suggested-title { display:flex; flex-direction:column; flex:0 0 132px; gap:9px; padding:0; margin:0; border:0; background:none; box-shadow:none; text-decoration:none; color:inherit; scroll-snap-align:start; min-width:0; }
.suggested-title .match-poster { display:block; width:132px; height:198px; object-fit:cover; border-radius:3px; }
.suggested-name { font:12px/1.45 Georgia,serif; }
.suggested-title:hover .suggested-name { text-decoration:underline; }
.suggested-title:focus-visible,.suggested-grid:focus-visible { outline:2px solid #8b4039; outline-offset:3px; }
@media(max-width:750px) {
 .suggested-grid .suggested-title { flex-basis:112px; }
 .suggested-title .match-poster { width:112px; height:168px; }
 .carousel-actions .text-button { display:none; }
 .suggested-heading { gap:8px; }
}

.search-status:empty,
#search-status:empty {
  display: none;
}
.result-table th button {
  padding: 0;
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.result-table th button:hover {
  text-decoration: underline;
}
.result-table th button:focus-visible {
  outline: 2px solid #8b4039;
  outline-offset: 3px;
}
.result-table th button span {
  color: var(--theme-muted, #8a8175);
  font-size: 10px;
}
.source-label {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}
.source-icon {
  display: inline-block;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  object-fit: contain;
}
.release-progress { display:flex; align-items:center; gap:8px; padding:10px 0; color:var(--muted, var(--theme-muted, #817b70)); font-size:12px; }
.release-spinner { width:12px; height:12px; border:2px solid var(--theme-line, #dcd6cc); border-top-color:#93372e; border-radius:50%; animation:source-spin .8s linear infinite; }
.release-skeleton { height:150px; background:repeating-linear-gradient(to bottom, transparent 0 18px, #eae6df66 18px 36px, transparent 36px 50px); }
@keyframes source-spin { to {transform:rotate(360deg)} }
@media (prefers-reduced-motion:reduce) { .release-spinner { animation:none; } }


.player-failure { position:absolute; inset:0; z-index:12; display:flex; align-items:center; justify-content:center; gap:12px; color:#fff; background:#111b; font-size:14px; }
.player-failure[hidden] { display:none; }
.player-failure button { padding:6px 12px; border:1px solid #fff6; border-radius:4px; color:#fff; background:#fff2; }
/* Reserve the update strip so completion never shifts clickable rows. */
.result-updates { min-height:38px; display:flex; align-items:center; gap:12px; }
.result-updates .release-progress { padding:0; margin:0; }

/* Cast uses the same single-row browsing pattern as title suggestions. */
.cast-section .cast-grid, .title-intro .cast-grid { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x proximity; padding:0 0 12px; scrollbar-width:thin; }
.cast-grid .cast-member { flex:0 0 112px; min-width:0; scroll-snap-align:start; }
.cast-grid .cast-member img, .cast-grid .no-photo { display:block; width:112px; height:150px; object-fit:cover; }
#startup-percent { position:absolute; top:calc(50% + 26px); left:50%; transform:translateX(-50%); z-index:5; padding:3px 8px; border-radius:12px; background:#1119; color:#fff; font:12px Georgia,serif; pointer-events:none; }
#startup-percent[hidden], .play-click-feedback[hidden] { display:none; }
.play-click-feedback { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:15; display:grid; place-items:center; width:64px; height:64px; background:#111a; border-radius:50%; pointer-events:none; }
.play-click-feedback svg { width:30px; height:30px; fill:white; }
.player-timeline { position:relative; }
.seek-preview { position:absolute; bottom:100%; transform:translateX(-50%); z-index:20; border-radius:5px; padding:4px; background:#171717ed; box-shadow:0 3px 16px #0006; color:white; text-align:center; pointer-events:none; margin-bottom:10px; }
.seek-preview[hidden] { display:none; }
.seek-preview img { width:160px; height:90px; object-fit:contain; display:block; border-radius:2px; }
.seek-preview img[hidden] { display:none; }
.seek-preview time { display:block; padding:3px 8px; font:12px Georgia,serif; }

/* A single timeline: remaining, buffered, then played. */
.seek-track { position:relative; height:22px; width:100%; }
.seek-track-colors { position:absolute; left:0; right:0; top:9px; height:3px; background:#ffffff33; pointer-events:none; transition:transform .12s; transform-origin:center; }
.seek-buffered span { position:absolute; top:0; height:100%; background:#ffffff99; }
.seek-played { position:absolute; top:0; height:100%; background:#f03; }
.seek-track:hover .seek-track-colors, .seek-track:focus-within .seek-track-colors { transform:scaleY(1.67); }
.player-frame #player-seek { position:relative; display:block; z-index:1; height:22px; padding:0; margin:0; appearance:none; -webkit-appearance:none; background:transparent; border:0; border-radius:0; accent-color:#f03; cursor:pointer; }
.player-frame #player-seek::-webkit-slider-runnable-track { background:transparent; height:4px; border:0; }
.player-frame #player-seek::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; background:#f03; border:0; border-radius:50%; width:12px; height:12px; margin-top:-4px; transform:scale(0); transition:transform .12s; }
.player-frame #player-seek::-moz-range-track { background:transparent; height:4px; border:0; }
.player-frame #player-seek::-moz-range-progress { background:transparent; }
.player-frame #player-seek::-moz-range-thumb { background:#f03; border:0; border-radius:50%; width:12px; height:12px; transform:scale(0); transition:transform .12s; }
.seek-track:hover #player-seek::-webkit-slider-thumb, #player-seek:focus-visible::-webkit-slider-thumb { transform:scale(1); }
.seek-track:hover #player-seek::-moz-range-thumb, #player-seek:focus-visible::-moz-range-thumb { transform:scale(1); }
.seek-preview-picture { width:160px; height:90px; display:grid; place-items:center; background:#242424; border-radius:2px; }
.seek-preview-picture img, .seek-preview-picture span { grid-area:1/1; }
.seek-preview-picture span { font:11px Georgia,serif; color:#c4c4c4; }
.seek-preview-picture [hidden] { display:none; }

/* Focused settings pages live inside the video HUD. */
.player-frame .track-grid.player-settings-menu {
  width: 300px; max-width: calc(100vw - 72px);
  max-height: min(380px, var(--settings-height, 65vh));
  display: block; padding: 6px; background: #202020f5;
  border: 1px solid #ffffff18; border-radius: 10px;
  box-shadow: 0 8px 30px #0006; scrollbar-width: thin;
  font: 13px Georgia, serif; text-align: left;
}
.player-frame .player-settings-menu > .settings-header {
  display: flex; justify-content: flex-start; gap: 8px;
  padding: 4px 6px 8px; border-bottom: 1px solid #ffffff14;
  position: sticky; top: -6px; background: #202020; z-index: 1;
}
.settings-header strong { font-size: 12px; font-weight: normal; flex: 1; }
.player-frame .player-settings-menu button { color: #eee; font: inherit; border: 0; background: transparent; border-radius: 5px; cursor: pointer; }
.player-frame .player-settings-menu button:hover { background: #ffffff12; }
.player-frame .player-settings-menu button:focus-visible, .player-frame .player-settings-menu select:focus-visible, .player-frame .player-settings-menu input:focus-visible { outline: 2px solid #ddd; outline-offset: -2px; }
.player-frame .player-settings-menu .settings-back, .player-frame .player-settings-menu .settings-close { width: 28px; height: 28px; padding: 0; font: 24px Georgia, serif; }
.player-frame .player-settings-menu > .settings-page { display: block; padding: 4px 0; }
.player-frame .player-settings-menu [hidden] { display: none !important; }
.player-frame .player-settings-menu .settings-row {
  display: flex; align-items: center; gap: 12px; width: 100%;
  min-height: 42px; padding: 9px 12px; text-align: left;
}
.settings-row > span:first-child { flex-shrink: 0; }
.settings-value { margin-left: auto; max-width: 130px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #aaa; font-size: 12px; }
.settings-row > span:last-child:not(:first-child) { margin-left: auto; }
.settings-row .settings-value + span { margin-left: 0 !important; color: #aaa; font-size: 19px; }
.player-frame .player-settings-menu label { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 4px 12px; font: inherit; color: #eee; }
.player-frame .player-settings-menu select, .player-frame .player-settings-menu input[type="number"] { color: #eee; background: #ffffff0b; border: 1px solid #ffffff20; border-radius: 5px; padding: 6px; max-width: 155px; min-width: 0; font: inherit; margin: 0; }
.player-frame .player-settings-menu option { background: #252525; }
.player-frame .player-settings-menu input[type="checkbox"] { width: 16px; height: 16px; accent-color: #b74b40; margin: 0; }
.player-frame .player-settings-menu .settings-speeds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 0 12px 10px; }
.player-frame .player-settings-menu .settings-speeds button { padding: 8px; background: #ffffff09; }
.player-frame .player-settings-menu .settings-speeds button[aria-pressed="true"] { background: var(--theme-surface, #fff); color: #222; }
.player-frame .player-settings-menu #player-stop, .player-frame .player-settings-menu #remove-subtitle { width: 100%; padding: 10px 12px; text-align: left; border-top: 1px solid #ffffff14; border-radius: 0; }
.player-frame .player-settings-menu button:disabled { opacity: .35; cursor: default; }
.player-frame .player-settings-menu .subtitle-finder { display: grid; gap: 8px; padding: 4px 6px; }
.player-frame .player-settings-menu .subtitle-finder label { padding: 0 6px; }
.player-frame .player-settings-menu .subtitle-finder > button { padding: 9px; background: #ffffff12; }
.player-frame .player-settings-menu #found-subtitles { max-width: 100%; width: 100%; }
.player-frame .player-settings-menu #subtitle-status { margin: 0; padding: 8px 12px; font: 11px/1.5 Georgia, serif; color: #bbb; }
.player-frame .player-settings-menu #subtitle-status:empty { display: none; }

/* Sources remain a compact table, including in the episode sidebar. */
.title-releases .results-heading { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.title-releases .results-heading > div { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.title-releases h3 { font-size: 16px; }
.title-releases .source-filter-menu { position: relative; flex-shrink: 0; }
.source-filter-menu > summary { cursor: pointer; font-size: 12px; padding: 6px 9px; border: 1px solid var(--theme-line, #ded8ce); border-radius: 4px; }
.title-releases .source-filter-menu .title-filters { position: absolute; right: 0; top: calc(100% + 6px); z-index: 8; width: 270px; max-width: 70vw; display: grid; grid-template-columns: 1fr; gap: 8px; padding: 12px; background: var(--theme-surface, #faf8f4); border: 1px solid var(--theme-line, #ded8ce); border-radius: 5px; box-shadow: 0 6px 20px #0001; }
.title-releases .source-filter-menu select { width: 100%; max-width: none; min-width: 0; font-size: 12px; padding: 7px; }
#title-release-results .source-results { width: 100%; min-width: 0; table-layout: fixed; }
#title-release-results .source-results .col-name { width: auto; }
#title-release-results .source-results .col-seeds { width: 55px; text-align: right; }
#title-release-results .source-results .col-actions { width: 64px; }
#title-release-results .source-results th { padding: 9px 8px; font-size: 11px; background: transparent; }
#title-release-results .source-results td { padding: 12px 8px; vertical-align: middle; }
#title-release-results .source-results .result-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; font-size: 12px; line-height: 1.45; text-decoration: none; }
#title-release-results .result-name:hover { text-decoration: underline; }
#title-release-results .source-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 10px; margin-top: 6px; color: var(--theme-muted, #817b70); font-size: 10px; line-height: 1.5; }
.source-facts .source-icon { width: 13px; height: 13px; flex-basis: 13px; }
#title-release-results .source-results .row-actions { display: flex; flex-direction: row; gap: 2px; justify-content: flex-end; }
#title-release-results .row-actions > * { display: grid; place-items: center; width: 26px; height: 30px; min-width: 0; padding: 3px; border: 0; background: transparent; }
#title-release-results .row-actions > *:hover { background: var(--theme-line, #eee9e1); border-radius: 4px; }
#title-release-results .row-actions svg { width: 17px; height: 17px; }
#title-release-results .save-button { font-size: 21px; }
#title-release-results .seeders { font-size: 12px; font-variant-numeric: tabular-nums; }
#title-release-results .is-streaming { background: #edf2ea; box-shadow: inset 3px 0 #66835b; }
.streaming-badge { display: block; width: fit-content; color: var(--theme-success, #4c6942); font-size: 10px; font-weight: bold; margin-bottom: 5px; }
.streaming-badge[hidden], .current-source[hidden] { display: none; }
.current-source { padding: 10px 12px; margin: 6px 0 10px; background: #edf2ea; border-left: 3px solid #66835b; font-size: 12px; overflow-wrap: anywhere; }
.title-releases .result-updates { min-height: 28px; }

#title-release-results { container-type: inline-size; }
#title-release-results .source-results .col-leech { display: table-cell; width: 52px; text-align: right; font-size: 12px; }
@container (max-width: 500px) {
  #title-release-results .source-results .col-leech { display: none; }
}
@container (max-width: 380px) {
  #title-release-results .source-results .col-actions { width: 30px; }
  #title-release-results .source-results .col-seeds { width: 44px; }
  #title-release-results .source-results .save-button { display: none; }
  #title-release-results .source-results td { padding: 10px 6px; }
}

.player-frame .watch-tools .player-captions { font: bold 12px Georgia,serif; border: 1px solid #ffffff80; border-radius: 4px; width: 30px; height: 24px; padding: 0; margin-left: auto; }
.player-frame .watch-tools .player-captions.captions-on { border-bottom: 3px solid #d4463b; }
.player-frame .watch-tools .track-settings { margin-left: 0; }
.player-frame .player-settings-menu #caption-choice { max-width: 215px; }
.player-frame .player-settings-menu .subtitle-search-results { display: grid; gap: 4px; }
.player-frame .player-settings-menu .subtitle-result { width: 100%; padding: 10px; text-align: left; font: 12px/1.5 Georgia,serif; overflow-wrap: anywhere; border-bottom: 1px solid #ffffff14; }
.player-frame .player-settings-menu #found-subtitles, .player-frame .player-settings-menu #load-found-subtitle { display: none; }

/* Source-only reception, integrated with the existing title sections. */
#title-view:not([data-section="reception"]) > .title-reception { display:none; }
#title-view[data-section="reception"] > .title-episodes { display:none; }
.title-reception { min-width:0; grid-column:1/-1; padding:0 0 24px; color:var(--theme-ink, #302d28); font-size:12px; line-height:1.5; }
.title-section-nav { flex-wrap:wrap; }
.title-rating-link, .episode-rating-link { font:12px Georgia,serif; color:var(--theme-accent, #8b4039); text-decoration:none; padding:0; }
.title-rating-link { display:block; margin-top:10px; }
.episode-focus .episode-rating-link { margin-right:16px; }
.episode-row .episode-rating-link { font-size:11px; white-space:nowrap; }
.reception-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:0 0 16px; }
.reception-heading h3 { font-size:19px; margin:0; }
.reception-heading h4 { font-size:14px; margin:0; }
.reception-heading > span, .reception-heading small, .reception-heading > a { color:var(--theme-muted, #827969); font-size:11px; }
.reception-score-strip { display:flex; flex-wrap:wrap; padding:4px 0 24px; gap:0; }
.reception-score, .episode-standing { flex:0 1 210px; display:grid; gap:4px; padding:0 26px 0 0; margin-right:26px; text-decoration:none; color:inherit; border-right:1px solid var(--theme-line, #e4dfd5); box-sizing:border-box; }
.reception-score:last-child, .episode-standing:last-child { border:0; margin:0; }
.score-source, .episode-standing > span { font-size:12px; color:var(--theme-muted, #746c60); }
.reception-score strong, .episode-standing strong { font-size:30px; font-weight:normal; line-height:1.3; letter-spacing:-1px; }
.reception-score small, .episode-standing small { font-size:10px; color:var(--theme-muted, #887e70); }
.reception-score:hover .score-source { color:var(--theme-accent, #8b4039); text-decoration:underline; }
.reception-adjacent { display:flex; gap:30px; margin:4px 0 24px; }
.reception-adjacent > div { display:grid; grid-template-columns:1fr auto; column-gap:14px; }
.reception-adjacent small { grid-column:1/-1; color:var(--theme-muted, #8b8072); font-size:10px; }
.reception-adjacent a { font-size:12px; }
.reception-adjacent strong { color:var(--theme-accent, #8b4039); }
[data-reception-slot="graph"]:not(:empty), [data-reception-slot="rankings"]:not(:empty), [data-reception-slot="reviews"]:not(:empty), [data-reception-slot="facts"]:not(:empty), [data-reception-slot="related"]:not(:empty) { border-top:1px solid var(--theme-line, #e4dfd5); padding-top:22px; margin-top:2px; padding-bottom:22px; }
.graph-selectors { display:flex; align-items:center; gap:8px; }
.graph-selectors select { padding:5px 23px 5px 9px; border:1px solid var(--theme-line, #d9d1c5); border-radius:3px; background:var(--theme-surface, #faf9f6); color:var(--theme-ink, #554b40); font:11px Georgia,serif; }
.ratings-graph-wrap { position:relative; min-width:0; margin:0 0 16px; }
.ratings-graph { overflow-x:auto; scrollbar-width:thin; padding-bottom:6px; }
.ratings-graph svg { display:block; max-width:none; }
.ratings-gridline { stroke:var(--theme-line, #e9e4db); stroke-width:1; }
.ratings-axis { font:10px Georgia,serif; fill:var(--theme-muted, #9a8f7e); }
.ratings-season-label { font:10px Georgia,serif; fill:var(--theme-muted, #7b6d5c); }
.ratings-connector { stroke:var(--theme-line, #c7b5aa); stroke-width:1.5; }
.ratings-point { fill:#8b4039; stroke:var(--theme-surface, #faf9f6); stroke-width:1.5; }
.ratings-point.unrated { fill:var(--theme-surface, #faf9f6); stroke:var(--theme-line, #bfb7ac); }
.ratings-point.current { stroke:var(--theme-ink, #312e29); stroke-width:2.5; }
.ratings-graph a:focus-visible { outline:none; }
.ratings-graph a:hover circle, .ratings-graph a:focus-visible circle { stroke:var(--theme-ink, #302d28); stroke-width:3; }
.ratings-tooltip { position:absolute; pointer-events:none; width:240px; max-width:100%; padding:10px 12px; box-sizing:border-box; background:var(--theme-ink, #302d28); color:#fff; border-radius:4px; font-size:12px; z-index:5; box-shadow:0 3px 14px #0002; }
.ratings-tooltip strong, .ratings-tooltip span, .ratings-tooltip small { display:block; }
.ratings-tooltip span { margin-top:3px; }
.ratings-tooltip small { color:var(--theme-line, #c7c0b5); font-size:10px; }
.ratings-highlights { display:grid; grid-template-columns:1fr 1fr .65fr; gap:22px; }
.ratings-highlights > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; }
.ratings-highlights small { grid-column:1/-1; font-size:10px; color:var(--theme-muted, #8b8072); }
.ratings-highlights a { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ratings-highlights strong { font-size:12px; color:var(--theme-accent, #8b4039); }
.reception-rankings { display:grid; grid-template-columns:.8fr 1.2fr; gap:36px; }
.season-rating-list a { display:grid; grid-template-columns:65px 1fr 28px; gap:5px 12px; text-decoration:none; font-size:12px; padding:10px 0; align-items:center; }
.season-rating-list small { grid-column:1/-1; font-size:10px; color:var(--theme-muted, #988c7b); }
.season-meter { height:4px; background:var(--theme-line, #e8e1d5); border-radius:3px; }
.season-meter i { display:block; height:100%; background:#a87567; border-radius:3px; }
.season-rating-list strong { color:var(--theme-ink, #514435); }
.rank-switch { display:flex; gap:12px; }
.rank-switch button { color:var(--theme-muted, #938777); padding:3px 0; font:11px Georgia,serif; border-bottom:1px solid transparent; }
.rank-switch button[aria-pressed="true"] { color:var(--theme-accent, #8b4039); border-color:#8b4039; }
.top-episode-list { list-style:none; padding:0; margin:0; }
.top-episode-list li { display:grid; grid-template-columns:16px minmax(0,1fr) 28px; align-items:start; gap:10px; padding:9px 0; border-bottom:1px solid var(--theme-line, #eee9e1); font-size:12px; }
.rank-position { color:var(--theme-muted, #9b8f7d); font-size:10px; padding-top:2px; }
.top-episode-list small { display:block; margin-top:3px; color:var(--theme-muted, #958979); font-size:10px; }
.top-episode-list strong { font-weight:normal; color:var(--theme-accent, #8b4039); text-align:right; }
.more-episodes, .more-critic-reviews { margin-top:12px; font-size:11px; color:var(--theme-muted, #827564); }
.title-reception summary { cursor:pointer; }
.season-critics table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.season-critics th { font-weight:normal; color:var(--theme-muted, #877b6a); }
.season-critics td, .season-critics th { border-bottom:1px solid var(--theme-line, #eae4d9); padding:10px 8px; }
.season-critics small { display:block; font-size:10px; color:var(--theme-muted, #948877); margin-top:2px; }
.season-critics strong { font-weight:normal; color:var(--theme-ink, #4a3b2b); font-size:15px; }
.critic-coverage:not(:first-child) { border-top:1px solid var(--theme-line, #e4dfd5); margin-top:24px; padding-top:22px; }
.reception-excerpt { font-size:12px; line-height:1.7; max-width:760px; color:var(--theme-muted, #746a5d); margin:0 0 16px; }
.critic-review-list { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.critic-review-list article { padding:13px 0; border-bottom:1px solid var(--theme-line, #eee8de); min-width:0; }
.critic-review-list article small { display:block; font-size:10px; color:var(--theme-muted, #908271); margin-bottom:5px; }
.critic-review-list article a { font-size:12px; text-decoration:none; }
.critic-review-list article a:hover { text-decoration:underline; }
.critic-review-list article p { font-size:11px; line-height:1.65; color:var(--theme-muted, #83786a); margin:6px 0 0; }
.reception-attribution { display:block; color:var(--theme-muted, #a19584); font-size:9px; margin-top:14px; }
.reception-attribution a { color:inherit; }
.reception-facts { display:flex; flex-wrap:wrap; gap:20px 40px; margin:0; }
.reception-facts dt { font-size:10px; color:var(--theme-muted, #9a8d7b); }
.reception-facts dd { margin:4px 0 0; font-size:12px; }
.reception-awards { font-size:12px; margin-top:20px; }
.reception-awards summary small { font-size:10px; color:var(--theme-muted, #9a8e7d); margin-left:8px; }
.reception-awards ul { list-style:none; padding:6px 0 0; }
.reception-awards li { display:flex; gap:18px; padding:5px 0; }
.reception-awards li small { min-width:105px; font-size:10px; color:var(--theme-muted, #908372); }
.reception-related { display:flex; gap:16px; overflow-x:auto; scrollbar-width:thin; padding:0 0 10px; scroll-snap-type:x proximity; }
.reception-related > a { flex:0 0 108px; text-decoration:none; font-size:12px; scroll-snap-align:start; }
.reception-related img, .reception-no-poster { display:block; width:108px; height:162px; object-fit:cover; background:var(--theme-line, #eee8dd); border-radius:3px; margin-bottom:8px; }
.reception-muted, .reception-updating { font-size:11px; color:var(--theme-muted, #8a7e6b); }
.reception-retry { padding:8px 0; font-size:12px; color:var(--theme-accent, #8b4039); }
.reception-skeleton { width:min(580px,100%); height:96px; background:linear-gradient(90deg,var(--theme-line, #eee9e1),var(--theme-surface, #f6f2ec),var(--theme-line, #eee9e1)); border-radius:3px; opacity:.65; margin-bottom:20px; }
.reception-skeleton.short { height:54px; }
.player-view .reception-rankings, .player-view .critic-review-list, .player-view .ratings-highlights { grid-template-columns:1fr; gap:16px; }
.player-view .reception-score { flex-basis:130px; margin-right:12px; padding-right:12px; }
.player-view .reception-score strong { font-size:24px; }
.player-view .title-reception .reception-heading { flex-wrap:wrap; }
.player-view .reception-score-strip { row-gap:16px; }
@media(max-width:650px) {
  .reception-score-strip { flex-wrap:nowrap; gap:12px; }
  .reception-score, .episode-standing { flex:1 1 0; padding-right:8px; margin:0; min-width:0; }
  .reception-score strong, .episode-standing strong { font-size:25px; }
  .reception-score small { font-size:9px; }
  .reception-heading { flex-wrap:wrap; gap:10px; }
  .reception-rankings, .critic-review-list { grid-template-columns:1fr; gap:24px; }
  .ratings-highlights { grid-template-columns:1fr; gap:12px; }
  .ratings-highlights a { white-space:normal; }
  .reception-adjacent { gap:14px; }
  .title-section-nav { gap:18px; }
  .title-section-nav button { font-size:12px; }
}

/* Critic excerpts lead; attribution and outbound links stay secondary. */
.critic-comment-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
.critic-comment { padding:20px 0; border-bottom:1px solid var(--theme-line, #e5ded3); min-width:0; }
.critic-comment-meta { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--theme-muted, #817565); font-size:11px; }
.critic-verdict { font-size:12px; }
.critic-verdict.positive { color:var(--theme-success, #526d46); }
.critic-verdict.negative { color:var(--theme-accent, #983d33); }
.critic-comment blockquote, .critic-comment .critic-summary { font-size:15px; line-height:1.65; margin:12px 0 18px; color:var(--theme-ink, #34322f); }
.critic-comment footer { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:0; padding:0; border:0; text-align:left; }
.critic-comment footer strong { font-size:12px; font-weight:normal; }
.critic-comment footer small { display:block; color:var(--theme-muted, #817565); font-size:11px; margin-top:4px; }
.critic-comment footer a { font-size:11px; white-space:nowrap; color:var(--theme-muted, #817565); }
.critic-comment-source { display:flex; gap:12px; margin-top:13px; font-size:10px; color:var(--theme-muted, #928777); }
.critic-comment-source a { color:inherit; }
#critics-season { font:inherit; font-size:12px; padding:6px 9px; background:transparent; border:1px solid var(--theme-line, #d9d1c6); border-radius:3px; }
.player-view .critic-comment-list { grid-template-columns:1fr; }
@media(max-width:680px) { .critic-comment-list { grid-template-columns:1fr; } }

/* Season columns and episode rows make long-running shows readable at a glance. */
.ratings-heatmap-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:28px; align-items:start; }
.heatmap-insights section { margin:0 0 22px; }
.heatmap-insights h4 { font-size:12px; margin:0 0 10px; }
.heatmap-pick { display:flex; gap:9px; align-items:baseline; margin:0 0 10px; font-size:11px; }
.heatmap-pick > strong { background:none; color:var(--theme-ink, #514b40); width:22px; flex-shrink:0; font-variant-numeric:tabular-nums; }
.heatmap-pick a { color:inherit; text-decoration:none; }
.heatmap-pick a:hover { text-decoration:underline; }
.heatmap-pick small { display:block; color:var(--theme-muted, #948978); font-size:10px; margin-top:2px; }
.heatmap-best-score { float:right; font-size:12px; }
.heatmap-insights section > a { font-size:12px; }
.ratings-heatmap-scroll { max-height:680px; overflow:auto; overscroll-behavior:contain; padding:0 0 5px; }
.ratings-heatmap { border-collapse:separate; border-spacing:2px; table-layout:fixed; width:100%; min-width:calc(var(--season-count) * 36px + 32px); max-width:calc(var(--season-count) * 110px + 32px); margin:0; font-size:11px; }
.ratings-heatmap th, .ratings-heatmap td { padding:0; border:0; background:transparent; height:30px; text-align:center; font-weight:normal; }
.ratings-heatmap th:first-child { width:28px; }
.ratings-heatmap th { color:var(--theme-muted, #827868); font-size:10px; }
.ratings-heatmap thead th { position:sticky; top:0; z-index:2; background:var(--theme-surface, #faf9f6); height:28px; }
.ratings-heatmap tbody th { position:sticky; left:0; z-index:1; background:var(--theme-surface, #faf9f6); }
.ratings-heatmap thead th:first-child { left:0; z-index:3; }
.ratings-heatmap th a { color:inherit; text-decoration:none; display:block; padding:5px 0; }
.ratings-heatmap th a:hover { color:var(--theme-accent, #8b4039); }
.ratings-heatmap abbr { text-decoration:none; }
.heatmap-cell { display:flex; justify-content:center; align-items:center; height:30px; font-size:11px; font-variant-numeric:tabular-nums; text-decoration:none; color:#202b23; border-radius:2px; position:relative; }
.rating-excellent { background:#61b888; }
.rating-great { background:#9cd49c; }
.rating-good { background:#f0d278; }
.rating-mixed { background:#e99b83; }
.rating-poor { background:#bd505a; color:#fff; }
.rating-unrated { background:var(--theme-surface, #eeebe4); color:var(--theme-muted, #8d8273); }
.ratings-heatmap .heatmap-cell:hover, .ratings-heatmap .heatmap-cell:focus-visible { outline:2px solid var(--theme-ink, #302d28); outline-offset:-2px; filter:brightness(1.04); z-index:1; }
.heatmap-cell.current { box-shadow:inset 0 0 0 2px var(--theme-ink, #302d28); font-weight:bold; }
.heatmap-legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:12px; color:var(--theme-muted, #827868); font-size:10px; }
.heatmap-legend span { display:inline-flex; gap:5px; align-items:center; }
.heatmap-legend i { width:10px; height:10px; border-radius:2px; }
.player-view .ratings-heatmap-layout { grid-template-columns:1fr; }
.player-view .heatmap-insights { display:flex; gap:20px; }
.player-view .heatmap-insights section { flex:1; }
@media(max-width:680px) {
 .ratings-heatmap-layout { display:flex; flex-direction:column; gap:18px; }
 .ratings-heatmap-layout .ratings-graph-wrap { width:100%; order:0; }
 .heatmap-insights { order:1; display:grid; grid-template-columns:1fr 1fr; gap:18px; width:100%; }
 .heatmap-insights section { margin:0; }
 .ratings-heatmap-scroll { max-height:560px; }
 .ratings-heatmap { min-width:calc(var(--season-count) * 40px + 32px); }
 .ratings-heatmap th, .ratings-heatmap td, .heatmap-cell { height:34px; }
}
.ratings-heatmap.dense { min-width:calc(var(--season-count) * 20px + 28px); max-width:none; border-spacing:1px; }
.ratings-heatmap.dense th, .ratings-heatmap.dense td, .ratings-heatmap.dense .heatmap-cell { height:22px; font-size:9px; }
.ratings-heatmap.dense th:first-child { width:24px; }
@media(max-width:680px) {
 .ratings-heatmap.dense { min-width:calc(var(--season-count) * 32px + 28px); }
 .ratings-heatmap.dense td, .ratings-heatmap.dense .heatmap-cell { height:30px; font-size:11px; }
}
/* Downloaded file pieces and decoded playback buffers are separate layers. */
.seek-downloaded span { position:absolute; top:0; height:100%; background:#ffffff70; }
.seek-buffered span { background:#ffffffcc; }
.seek-download-label { position:absolute; right:0; bottom:100%; color:#ddd; font:10px Georgia,serif; padding:2px 0; cursor:help; }

/* Compact, consistent overlays within the video. */
.player-frame .watch-tools .player-captions {
  display:grid; place-items:center; position:relative; width:36px; height:36px;
  border:0; border-radius:7px; background:transparent; padding:6px;
}
.player-frame .watch-tools .player-captions svg { width:24px; height:24px; }
.player-frame .watch-tools .player-captions:hover,
.player-frame .watch-tools .player-captions[aria-expanded="true"] { background:#ffffff20; }
.player-frame .watch-tools .player-captions.captions-on { border:0; }
.player-captions.captions-on::after { content:""; position:absolute; bottom:2px; width:16px; height:2px; border-radius:2px; background:#ef554b; }
.player-frame .track-grid.player-settings-menu { width:320px; padding:8px; background:#181818f2; backdrop-filter:blur(18px); border-color:#ffffff20; border-radius:12px; font:13px/1.4 Arial,sans-serif; }
.player-frame .player-settings-menu > .settings-header { background:#181818; padding:2px 4px 8px; }
.settings-header strong { font:600 13px Arial,sans-serif; }
.player-frame .player-settings-menu .caption-track { display:flex; align-items:center; gap:12px; width:100%; min-height:40px; text-align:left; padding:10px 12px; }
.caption-track > span:first-child { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.player-frame .player-settings-menu .caption-track[aria-pressed="true"] { background:#ffffff12; color:#fff; }
.caption-track-list { padding:4px 0 8px; margin-bottom:4px; border-bottom:1px solid #ffffff14; }
.player-frame .player-settings-menu #subtitle-status { font:12px/1.45 Arial,sans-serif; color:#c4c4c4; }
.player-frame .player-settings-menu .subtitle-result { font:12px/1.4 Arial,sans-serif; padding:10px 12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.subtitle-provider-link { display:block; padding:8px 12px; font:11px Arial,sans-serif; color:#aaa; text-decoration:none; }
.subtitle-provider-link:hover { color:white; }
.seek-preview { padding:0; border:1px solid #ffffff30; border-radius:7px; overflow:hidden; background:#111; margin-bottom:12px; }
.seek-preview-picture, .seek-preview img { width:240px; height:135px; border-radius:0; }
.seek-preview time { position:absolute; bottom:5px; left:50%; transform:translateX(-50%); padding:2px 6px; border-radius:3px; background:#000b; font:11px/1.4 Arial,sans-serif; }
.movie-watch-identity { display:none; }
.player-view #title-view > .movie-watch-identity { display:flex; align-items:center; gap:12px; grid-column:1/-1; padding:12px 0; border-bottom:1px solid var(--line,var(--theme-line, #e4dfd5)); }
.movie-watch-identity .movie-watch-poster { width:38px; height:56px; object-fit:cover; border-radius:3px; flex-shrink:0; }
.movie-watch-identity strong { display:block; font-size:14px; line-height:1.35; }
.movie-watch-identity small { display:block; font-size:11px; color:var(--theme-muted, #817b70); line-height:1.5; }
@media(max-width:600px) {
  .seek-preview-picture, .seek-preview img { width:192px; height:108px; }
  .player-frame .watch-tools .player-captions { min-width:40px; min-height:44px; }
}



/* Subtitle controls stay together, one level inside the HUD. */
.player-frame .player-settings-menu .subtitle-track-control { flex-direction:column; align-items:stretch; gap:5px; padding:8px; }
.player-frame .player-settings-menu #caption-choice { width:100%; max-width:none; }
.player-frame .player-settings-menu .subtitle-actions { display:flex; gap:6px; padding:0 8px 8px; }
.player-frame .player-settings-menu .subtitle-actions .settings-row { justify-content:center; min-height:34px; padding:6px; font-size:12px; background:#ffffff0b; }
.subtitle-style-heading { display:flex; align-items:center; justify-content:space-between; padding:8px; border-top:1px solid #ffffff18; }
.player-frame .player-settings-menu #subtitle-reset { font-size:11px; padding:4px 6px; color:#bdbdbd; }
.subtitle-preview { display:grid; place-items:center; min-height:48px; margin:0 8px 8px; border-radius:5px; background:linear-gradient(120deg,#455763,#17262d); overflow:hidden; }
.subtitle-preview span { font:var(--subtitle-size,120%) Arial,sans-serif; padding:2px 4px; color:var(--subtitle-color,white); background:var(--subtitle-background,#000b); text-shadow:var(--subtitle-shadow); }
.player-frame .player-settings-menu .subtitle-style-controls { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 8px 8px; }
.player-frame .player-settings-menu .subtitle-style-controls label { display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:0; font-size:11px; color:#bdbdbd; }
.player-frame .player-settings-menu .subtitle-style-controls select { width:100%; max-width:none; font-size:12px; min-height:32px; }
.player-frame .player-settings-menu .subtitle-appearance > label { padding:4px 8px; font-size:12px; }
.player-frame .player-settings-menu #subtitle-delay { width:85px; }
.player-frame .track-grid.player-settings-menu { max-height:min(440px,var(--settings-height,65vh)); }
.player-frame .player-settings-menu .subtitle-track-control { flex-direction:row; align-items:center; min-height:38px; padding:4px 8px 8px; }
.player-frame .player-settings-menu #caption-choice { width:calc(100% - 48px); }
.subtitle-preview { min-height:36px; }
.player-frame .player-settings-menu .shortcut-row,.bookmark-row { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px; }
.shortcut-row kbd { font:11px monospace;color:#fff; }
.shortcut-row span { color:#bbb;font-size:12px; }
.bookmark-row button:first-child { text-align:left;flex:1; }
.bookmark-list p { padding:8px;color:#aaa;font-size:12px; }
.touch-seek-feedback { position:absolute;top:45%;padding:18px;border-radius:50%;background:#0009;color:white;font:600 20px Arial;pointer-events:none; }
.touch-seek-feedback[data-side=left] { left:15%; }
.touch-seek-feedback[data-side=right] { right:15%; }
#continue-watching { margin:0 0 28px; }
#continue-watching h2 { font-size:20px;margin:0 0 12px; }
.continue-strip { display:flex;gap:16px;overflow-x:auto;padding:0 0 8px;scroll-snap-type:x proximity; }
.continue-card { position:relative;flex:0 0 145px;scroll-snap-align:start; }
.continue-play { display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left; }
.continue-play img { width:145px;height:210px;object-fit:cover;border-radius:4px; }
.continue-play progress { height:3px;width:100%;accent-color:#a3342d; }
.continue-play strong { font-size:12px; }.continue-play small { font-size:11px;opacity:.7; }
.continue-remove { position:absolute;top:5px;right:5px;width:28px;height:28px;padding:0;background:#000b;color:white;border:0;border-radius:50%; }
.player-skip-section { position:absolute;right:20px;bottom:95px;z-index:12;padding:10px 16px;border:1px solid #ffffff80;border-radius:5px;background:#151515e8;color:#fff;font:600 13px Arial; }
.player-frame #up-next {
  z-index: 6;
  right: 20px;
  bottom: 100px;
  max-width: min(300px, calc(100% - 40px));
  padding: 12px 14px;
  background: #191919f2;
  color: #fff;
  border: 1px solid #ffffff26;
  border-radius: 8px;
  font: 13px Arial, sans-serif;
  box-shadow: 0 4px 18px #0005;
}
.player-frame #up-next h3 { margin: 5px 0 12px; font: 600 14px Arial, sans-serif; color: #fff; }
.player-frame #up-next small { color: #ccc; }
.player-frame #cancel-next { color: #ddd; padding: 8px; margin-left: 6px; }
.player-frame:has(#up-next:not([hidden])) .player-skip-section { display: none; }
.player-frame:has(.track-settings[open]) #up-next { visibility: hidden; }
.player-frame .player-settings-menu .chapter-row { display:flex;align-items:center;gap:10px;padding:8px;width:100%;text-align:left; }
.chapter-row img { width:86px;height:48px;object-fit:cover;border-radius:3px; }
.chapter-row span { font:12px/1.4 Arial; }
.player-frame #player-seek { touch-action:none; }
.fine-scrub-hint { position:absolute;left:50%;bottom:25px;transform:translateX(-50%);padding:4px 8px;border-radius:4px;background:#101010e8;color:#ddd;font:11px Arial;white-space:nowrap;pointer-events:none; }
.player-frame .player-settings-menu .subtitle-sync-actions { display:flex;gap:6px;padding:6px 8px; }
.player-frame .player-settings-menu .subtitle-sync-actions button { flex:1;padding:8px 4px;background:#ffffff0d;font:12px Arial;min-height:36px; }

.pip-return {
  position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:1005;
  display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);
  padding:10px 12px;background:#181818;color:#fff;border:1px solid #383838;
  border-radius:8px;box-shadow:0 4px 24px #0005;font:13px Arial,sans-serif;
}
.pip-return[hidden] {display:none;}
.pip-return span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.pip-return button {flex-shrink:0;color:#fff;background:transparent;border:0;padding:8px;cursor:pointer;font:inherit;}
.pip-return button:hover {background:#ffffff15;border-radius:4px;}
.pip-return button:focus-visible {outline:2px solid #fff;outline-offset:2px;}
@media(max-width:600px) {.pip-return {width:calc(100vw - 32px);gap:4px;bottom:max(12px,env(safe-area-inset-bottom));}.pip-return span {flex:1;}}

.offline-library {border-top:1px solid var(--line,#ddd);padding-top:12px;margin-top:12px;}
.offline-library > button {margin-right:8px;}
.offline-library > small {display:inline-block;margin:8px;color:var(--muted,#888);}
.offline-row {display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line,#ddd);}
.offline-row > button:first-child {flex:1;text-align:left;}
.offline-row small {white-space:nowrap;}

.offline-cleanup {display:flex;align-items:center;gap:7px;margin:12px 0;font-size:12px;}
.offline-library button:disabled {opacity:.45;cursor:default;}

.subtitle-overlay { position:absolute; left:5%; right:5%; bottom:82px; z-index:4; pointer-events:none; text-align:center; font-family:Arial,sans-serif; font-size:clamp(14px,2.2vw,30px); line-height:1.35; }
.subtitle-overlay:empty { display:none; }
.subtitle-overlay span { display:table; margin:2px auto; padding:1px 5px; border-radius:3px; white-space:pre-line; overflow-wrap:anywhere; font-size:var(--subtitle-size,120%); color:var(--subtitle-color,white); background:var(--subtitle-background,#000b); text-shadow:var(--subtitle-shadow,0 1px 3px #000); }
.player-frame.hud-hidden:not(:has(:focus-visible)):not(:has(details[open])) .subtitle-overlay { bottom:5%; }

.discovery-attribution { margin:18px 0; font-size:12px; color:var(--theme-muted,#81786a); }
.discovery-history { border-top:1px solid var(--theme-border,#ddd6cb); padding:14px 0; }
.discovery-history > summary { cursor:pointer; font-size:14px; }
.discovery-history select { margin:14px 0; max-width:100%; }
#discovery-history-chart { max-width:720px; font-size:12px; }
#discovery-history-chart svg { display:block; width:100%; color:var(--theme-accent,#93382f); }
#discovery-history-chart table { width:100%; border-collapse:collapse; text-align:left; }
#discovery-history-chart td,#discovery-history-chart th { padding:8px; border-bottom:1px solid var(--theme-border,#ddd6cb); }
.discovery-controls .time-filters[hidden] { display:none; }

/* Discovery keeps its controls and existing posters steady between filters. */
#browse-metric[hidden], .discovery-all-time[hidden] { display:none; }
.discovery-heading { gap:16px; padding-bottom:10px; }
.discovery-controls { flex-wrap:nowrap; gap:16px; }
.discovery-modes { display:flex; gap:2px; padding:3px; border:1px solid var(--line); border-radius:6px; }
.discovery-controls .discovery-modes button { padding:7px 12px; font-size:12px; border-radius:3px; white-space:nowrap; transition:background-color .15s,color .15s; }
.discovery-modes button[aria-pressed="true"] { background:var(--line); color:var(--ink); }
.discovery-controls button:hover { color:var(--ink); }
.discovery-period { width:205px; display:flex; align-items:center; justify-content:flex-end; min-height:36px; }
.discovery-controls .time-filters { gap:2px; }
.discovery-controls .time-filters button { font-size:12px; padding:8px; white-space:nowrap; }
.discovery-all-time { font-size:12px; color:var(--muted); }
.discovery-controls #browse-refresh { width:32px; height:32px; padding:0; font-size:20px; border-radius:50%; }
#browse-refresh.is-loading { animation:discovery-spin 1.2s linear infinite; }
#poster-grid { transition:opacity .16s ease; }
#poster-grid.is-updating { opacity:.55; }
@keyframes discovery-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) {
  #poster-grid,.discovery-controls .discovery-modes button { transition:none; }
  #browse-refresh.is-loading { animation:none; }
}
.player-frame .player-settings-menu .subtitle-result { -webkit-line-clamp:unset; display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:10px 12px; text-align:left; }
.subtitle-result strong { font-size:12px; font-weight:500; line-height:1.4; overflow-wrap:anywhere; }
.player-frame .subtitle-result small { color:#aaa; font-size:11px; line-height:1.5; }
.subtitle-line-sync { margin-top:10px; border-top:1px solid #ffffff18; padding-top:10px; }
.subtitle-line-sync summary { cursor:pointer; font-size:12px; }
.subtitle-line-sync p { color:#aaa; font-size:12px; line-height:1.5; }
.player-frame .subtitle-line-sync input,.player-frame .subtitle-line-sync select { width:100%; margin-bottom:8px; background:#252525; color:#eee; border:1px solid #444; border-radius:5px; padding:8px; font-size:12px; }
.player-frame .subtitle-line-sync select { height:95px; }
.subtitle-line-sync button { width:100%; }
.player-frame .subtitle-timing { margin:8px 0 12px; padding:12px 0; border-top:1px solid #ffffff18; border-bottom:1px solid #ffffff18; }
.player-frame .subtitle-timing .subtitle-style-heading { margin-bottom:8px; }
.player-frame .subtitle-appearance > summary { padding:12px 0; cursor:pointer; font:500 13px Arial,sans-serif; }
.player-frame .subtitle-appearance:not([open]) { padding-bottom:0; }
.player-frame .subtitle-timing > label { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12px; }
.player-frame .subtitle-timing input[type=number] { max-width:90px; }
.player-frame .subtitle-finder > input[type=search] { width:100%; margin:6px 0; padding:9px 10px; background:#252525; color:#eee; border:1px solid #ffffff24; border-radius:5px; font:12px Arial,sans-serif; }
.player-frame .player-settings-menu .subtitle-result[hidden],.player-frame .subtitle-finder > input[hidden] { display:none; }
/* A single quiet search surface, shared by the masthead and compact header. */
#hero-search { gap:0; max-width:640px; height:48px; border:1px solid var(--line); border-radius:28px; background:var(--paper); padding:0 5px 0 17px; transition:box-shadow .15s,border-color .15s; }
#hero-search:hover, #hero-search:focus-within { border-color:var(--muted); box-shadow:0 2px 9px #00000012; }
#hero-search #query { min-width:0; border:0; border-radius:0; background:transparent; box-shadow:none; padding:9px 0; outline:none; font-size:16px; color:var(--ink); }
#hero-search .search-button { display:grid; place-items:center; flex:0 0 38px; min-width:38px; margin:4px 0 4px 8px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); }
#hero-search .search-button:hover { color:var(--ink); background:var(--line); }
:is(.player-view,.title-page-view) #hero-search { height:38px; gap:0; padding-left:13px; }
:is(.player-view,.title-page-view) #hero-search #query { font-size:12px; padding:5px 0; }
:is(.player-view,.title-page-view) #hero-search .search-button { flex-basis:30px; min-width:30px; margin:3px 0 3px 6px; }
@media(min-width:901px) { .poster-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:24px 18px; } }
.discovery-modes button[hidden] { display:none; }
.library-grid .poster-link { aspect-ratio:1; }
.library-grid .poster-placeholder { aspect-ratio:1; background:linear-gradient(145deg,var(--paper),var(--line)); display:grid; place-items:center; }
.library-symbol { font:normal 58px Georgia,serif; color:var(--muted); }
.library-grid .poster-card h3 { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.4; }
.library-symbol svg { width:48px; height:48px; }
#hero-search:has(#suggestions:not([hidden])) { border-radius:24px 24px 0 0; border-color:var(--muted); border-bottom-color:transparent; background:var(--paper); z-index:15; }
#hero-search #suggestions { position:absolute; left:-1px; right:auto; top:100%; transform:none; width:calc(100% + 2px); max-width:none; margin:0; padding:4px 8px 10px; border:1px solid var(--muted); border-top:0; border-radius:0 0 24px 24px; background:var(--paper); box-shadow:0 10px 16px #00000018; max-height:min(420px,55dvh); overflow-y:auto; }
#hero-search .suggestion { padding:9px 10px; gap:12px; border-radius:12px; }
#hero-search .suggestion-poster { width:28px; height:40px; }
#hero-search .suggestion strong { font-size:14px; }
#hero-search .suggestion small { font-size:11px; }
#browse-more { display:block; margin:24px auto; padding:8px 18px; border:1px solid var(--line); background:transparent; border-radius:18px; color:var(--muted); font:inherit; }
#browse-more[hidden] { display:none; }
/* Keep the everyday subtitle controls together; longer tools get their own page. */
.player-frame .subtitle-timing { margin:4px 0; padding:8px 0; }
.player-frame .subtitle-timing .subtitle-style-heading { padding:0 8px; margin:0; min-height:30px; }
.player-frame .subtitle-timing > label { padding:4px 8px; }
.player-frame .subtitle-sync-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; padding:4px 8px; }
.player-frame .subtitle-actions { display:flex; flex-direction:column; gap:0; padding:4px 0; }
.player-frame .subtitle-actions .settings-row { width:100%; }
.player-frame .subtitle-track-control { min-width:0; }
.player-frame #caption-choice { min-width:0; max-width:230px; text-overflow:ellipsis; }
.player-frame .subtitle-line-sync { border:0; margin:0; padding:8px; }
.player-frame .subtitle-timing[hidden] { display:none; }
.player-frame .subtitle-timing { position:relative; padding-top:4px; }
.player-frame .subtitle-timing > label { height:36px; }
.player-frame .subtitle-actions { border:0; }
.player-frame .subtitle-actions .settings-row { background:transparent; padding:10px 8px; }
.player-frame .subtitle-timing .reset-timing { padding:4px 8px; min-height:28px; }
.player-settings-menu .quality-status { font:12px/1.5 Arial,sans-serif; color:#bbb; padding:8px 12px; margin:0; }

/* The video surface is not a bordered control; retain focus rings on HUD controls. */
#player-video:focus { outline: none; }

/* Dialogue matching needs room for complete lines, rather than a native select. */
.player-frame .track-grid.player-settings-menu[data-page="sync"] {
  width: 480px; max-width: calc(100vw - 40px);
  max-height: min(560px, var(--settings-height, 75vh));
}
.player-frame .subtitle-line-sync p { margin: 0 0 10px; color: #bbb; font: 12px/1.5 Arial,sans-serif; }
.player-frame .subtitle-line-sync input { box-sizing: border-box; max-width: none; min-height: 38px; }
.sync-position { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; color:#bbb; font-variant-numeric:tabular-nums; }
.player-frame .sync-position button { width:auto; padding:7px 10px; background:#ffffff12; }
.sync-dialogue-list { max-height: min(260px, 32vh); overflow-y:auto; scrollbar-width:thin; margin:0 0 12px; }
.player-frame .player-settings-menu .sync-dialogue-row { display:grid; grid-template-columns:58px minmax(0,1fr); gap:10px; width:100%; padding:11px 10px; text-align:left; line-height:1.45; border-bottom:1px solid #ffffff0d; border-radius:5px; white-space:normal; }
.sync-dialogue-row span:first-child { color:#999; font-size:11px; font-variant-numeric:tabular-nums; padding-top:2px; }
.sync-dialogue-row span:last-child { overflow-wrap:anywhere; }
.player-frame .player-settings-menu .sync-dialogue-row[aria-pressed="true"] { background:#ffffff20; box-shadow:inset 3px 0 #eee; }
.player-frame .player-settings-menu .sync-apply { width:100%; padding:11px; background:#eee; color:#181818; font-weight:600; }
.player-frame .player-settings-menu .sync-apply:disabled { background:#ffffff0b; color:#888; cursor:default; }
.player-frame .track-grid.player-settings-menu[data-page="sync"] { display:flex; flex-direction:column; overflow:hidden; }
.player-settings-menu[data-page="sync"] > .settings-header { flex-shrink:0; }
.player-frame .player-settings-menu[data-page="sync"] > .settings-page:not([hidden]) { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.player-settings-menu[data-page="sync"] .subtitle-line-sync { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.player-settings-menu[data-page="sync"] .subtitle-line-sync > :not(.sync-dialogue-list) { flex-shrink:0; }
.player-settings-menu[data-page="sync"] .sync-dialogue-list { flex:1 1 260px; min-height:60px; }

/* Pair the actual video with subtitle dialogue, without covering the scene. */
.player-frame.dialogue-workspace { --dialogue-width:360px; min-height:440px; background:#000; }
.player-frame.dialogue-workspace .video-stage { min-height:440px; }
.player-frame.dialogue-workspace .video-stage video { width:calc(100% - var(--dialogue-width)); object-fit:contain; }
.player-frame.dialogue-workspace .subtitle-overlay { right:var(--dialogue-width); }
.player-frame.dialogue-workspace .player-heading { right:var(--dialogue-width); }
.player-frame.dialogue-workspace .watch-tools { right:var(--dialogue-width); }
.player-frame.dialogue-workspace > .track-grid.player-settings-menu[data-page="sync"] {
  position:absolute; inset:0 0 0 auto; width:var(--dialogue-width); height:100%;
  max-width:none; max-height:none; margin:0; box-sizing:border-box; border:0;
  border-left:1px solid #ffffff20; border-radius:0; box-shadow:none; background:#181818;
  padding:12px; z-index:8;
}
.player-frame.dialogue-workspace .sync-position { gap:5px; flex-wrap:wrap; }
.player-frame.dialogue-workspace .sync-position button { width:auto; padding:7px; font-size:12px; }
.player-frame.dialogue-workspace .sync-position span { margin-left:auto; font-size:11px; }
.player-frame.dialogue-workspace .sync-dialogue-list { max-height:none; }
.player-frame.dialogue-workspace .sync-apply,
.player-frame.dialogue-workspace .sync-apply:hover { background:#ffffff16; color:#eee; border:1px solid #ffffff30; }
.player-frame.dialogue-workspace .sync-apply:disabled { background:#ffffff16; color:#888; border:1px solid #ffffff15; }
@media(max-width:700px) {
  .player-frame.dialogue-workspace { padding-bottom:360px; min-height:0; }
  .player-frame.dialogue-workspace .video-stage { min-height:0; }
  .player-frame.dialogue-workspace .video-stage video { width:100%; }
  .player-frame.dialogue-workspace .subtitle-overlay,
  .player-frame.dialogue-workspace .player-heading { right:0; }
  .player-frame.dialogue-workspace > .track-grid.player-settings-menu[data-page="sync"] { inset:auto 0 0; width:100%; height:360px; border-left:0; border-top:1px solid #ffffff20; }
  .player-frame.dialogue-workspace .watch-tools { right:0; bottom:360px; }
}

.player-frame.dialogue-workspace .player-hud { right:var(--dialogue-width); }
.player-frame.dialogue-workspace .video-stage { aspect-ratio:auto; height:clamp(440px,45vw,620px); }
@media(max-width:700px) {
 .player-frame.dialogue-workspace .player-hud { right:0; bottom:360px; }
 .player-frame.dialogue-workspace .video-stage { aspect-ratio:16/9; height:auto; }
}

.player-frame .player-settings-menu .subtitle-sync-actions { display:grid; grid-template-columns:1fr; gap:6px; }
.player-frame .player-settings-menu .subtitle-sync-actions button { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:9px 10px; text-align:left; }
.subtitle-sync-actions button small { font:11px/1.4 Arial,sans-serif; color:#aaa; }

/* Personal library and local storage follow the existing paper/ink palette. */
.poster-card .favorite-heart,.suggested-title .favorite-heart {
  position:absolute;top:8px;right:8px;z-index:2;display:grid;place-items:center;
  width:30px;height:30px;min-height:30px;padding:6px;border:0;
  border-radius:0;background:transparent;color:#fff;box-shadow:none;filter:drop-shadow(0 1px 2px #000a);
  opacity:0;transition:opacity .12s,background .12s;cursor:pointer;
}
.favorite-heart svg {width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;}
.favorite-heart[aria-pressed="true"] svg {fill:currentColor;}
.poster-card:hover .favorite-heart,.poster-card:focus-within .favorite-heart,
.suggested-title:hover .favorite-heart,.suggested-title:focus-within .favorite-heart,
.favorite-heart[aria-pressed="true"] {opacity:1;}
.poster-card .favorite-heart:hover,.suggested-title .favorite-heart:hover {background:transparent;color:#ffb9b5;}
.favorite-heart[aria-pressed="true"] {color:#ff9e9b;}
.favorite-heart:focus-visible {outline:2px solid var(--red);outline-offset:3px;}
.suggested-title {position:relative;}
.suggested-title>a {display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;}
#favorites-view .empty-state {grid-column:1/-1;}
.storage-view {max-width:960px;margin:24px auto 60px;}
#storage-summary {font-size:20px;margin:22px 0 10px;}
#storage-meter {display:block;width:100%;height:12px;accent-color:var(--red);}
.storage-muted,.storage-location {color:var(--muted);font-size:12px;}
#storage-controls {border:0;padding:14px 0;margin:0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
#storage-limit-form,.storage-actions {display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
#storage-limit {width:76px;min-width:0;padding:7px;}
#storage-path {display:block;overflow-wrap:anywhere;font-size:12px;margin:10px 0;}
#storage-status {min-height:20px;color:var(--muted);font-size:12px;}
.storage-table {width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;}
.storage-table th,.storage-table td {padding:14px 8px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere;}
.storage-table th:nth-child(2),.storage-table td:nth-child(2){width:90px;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;}
.storage-table th:last-child,.storage-table td:last-child{width:76px;text-align:right;}
.storage-table small {display:block;color:var(--muted);font-size:12px;margin-top:4px;}
@media(hover:none) {.poster-card .favorite-heart,.suggested-title .favorite-heart {opacity:1;}}
@media(max-width:600px) {.storage-view{margin:16px 0 40px;}.storage-table th,.storage-table td{padding:12px 4px;font-size:12px;}.storage-table th:nth-child(2),.storage-table td:nth-child(2){width:65px;}.storage-table th:last-child,.storage-table td:last-child{width:58px;}}
@media(prefers-reduced-motion:reduce) {.favorite-heart{transition:none;}}
.storage-table .text-button {padding:4px 0;white-space:nowrap;font-size:inherit;}

/* Primary playback stands apart from metadata links. */
.film-info .film-actions {display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin:20px 0 0;}
.film-actions .title-play {position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:28px;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);font-family:inherit;font-size:12px;font-weight:400;line-height:1;box-shadow:none;}
.film-actions .title-play svg {width:10px;height:10px;fill:currentColor;flex:none;}
.film-actions .title-play:hover {background:var(--control-hover);border-color:var(--muted);filter:none;}
.film-actions .title-play:focus-visible {outline:2px solid var(--link);outline-offset:3px;}
.film-sources-link {font-size:12px;color:var(--muted);text-underline-offset:3px;}
.film-info .film-actions .film-links {display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:0;font-size:12px;}
.film-info .film-actions .film-links a {color:var(--muted);min-height:32px;display:inline-flex;align-items:center;text-underline-offset:3px;white-space:nowrap;}
@media(min-width:761px) {
 body:not(.player-view) .title-intro .film-overview {grid-template-columns:170px minmax(0,1fr);gap:28px;}
 body:not(.player-view) .title-intro .film-poster {width:170px;max-height:255px;}
}
#settings-view button:not([disabled]) {cursor:pointer;}
#storage-controls button,.storage-table .text-button {border:1px solid var(--line);border-radius:5px;background:var(--theme-surface,#fff);color:var(--ink);text-decoration:none;padding:8px 12px;font-size:12px;line-height:1.2;min-height:34px;transition:background .12s,border-color .12s;}
#storage-controls button:hover,.storage-table .text-button:hover {background:var(--control-hover);border-color:var(--muted);}
#storage-unused,#storage-limit-form button {background:var(--ink);color:var(--paper);border-color:var(--ink);}
#storage-unused:hover,#storage-limit-form button:hover {background:var(--ink);filter:brightness(.85);}
#storage-all {color:var(--red);}
#storage-controls button:disabled,.storage-table button:disabled {opacity:.45;cursor:default;}
#storage-limit {border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);min-height:34px;}
#storage-meter::-webkit-meter-optimum-value {background:var(--muted);transition:width .3s ease;}
#storage-meter::-moz-meter-bar {background:var(--muted);}
.storage-table td:last-child,.storage-table th:last-child {width:90px;}
@media(max-width:600px) {.storage-table .text-button {padding:7px 8px;font-size:12px;}.storage-table td:last-child,.storage-table th:last-child{width:72px;}}
@media(prefers-reduced-motion:reduce) {#storage-controls button,.storage-table .text-button,#storage-meter::-webkit-meter-optimum-value {transition:none;}}
/* Browsing another title never replaces or obscures the current video. */
#watch-player.player-docked {position:fixed;inset:auto 18px 18px auto;width:340px;max-width:calc(100vw - 28px);margin:0;z-index:45;background:#000;border:1px solid #333;border-radius:5px;box-shadow:0 8px 30px #0005;}
#watch-player.player-docked .player-frame {margin:0;min-height:0;border-radius:4px;}
#watch-player.player-docked .video-stage {aspect-ratio:16/9;height:auto;min-height:0;}
#watch-player.player-docked #player-video {width:100%;height:100%;max-height:none;}
#watch-player.player-docked .player-heading {padding:9px 10px;gap:8px;}
#watch-player.player-docked .player-heading>div {flex:1;min-width:0;}
#watch-player.player-docked #player-title {font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
#watch-player.player-docked .player-heading button {padding:2px;width:25px;min-width:25px;height:25px;min-height:25px;font-size:20px;}
#watch-player.player-docked .player-hud {padding:8px 10px;}
#watch-player.player-docked .watch-tools {gap:7px;padding:3px 0;}
#watch-player.player-docked .watch-tools button {min-width:26px;width:26px;height:28px;min-height:28px;padding:4px;}
#watch-player.player-docked .watch-tools svg {width:18px;height:18px;}
#watch-player.player-docked #player-time {font-size:10px;}
#watch-player.player-docked .watch-tools .volume-control,
#watch-player.player-docked .watch-tools .track-settings,
#watch-player.player-docked .player-captions,
#watch-player.player-docked .playback-advanced,
#watch-player.player-docked .watch-bottom,
#watch-player.player-docked .player-settings-menu {display:none;}
.docked-return {color:#fff;background:transparent;border:0;cursor:pointer;}
@media(max-width:600px) {#watch-player.player-docked {width:260px;right:14px;bottom:14px;}}
