:root {
  --earth:#3a2c1c;
  --earth-deep:#221a10;
  --earth-mid:#4a3826;
  --field:#1c2a1e;
  --field-deep:#111a13;
  --field-mid:#2a3a2c;
  --lamp:#c06a1e;
  --lamp-bright:#e08a2e;
  --lamp-deep:#8a4a12;
  --paper:#d8d0c0;
  --paper-dim:#b8ae9c;
  --paper-mute:#8a8070;
  --ink:#1e1810;
  --line:rgba(200,180,150,0.18);
  --line-soft:rgba(200,180,150,0.10);
  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",serif;
  --font-mono:"SF Mono","Cascadia Mono","Consolas","Menlo",monospace;
}
*, *::before, *::after {
  box-sizing:border-box;
  margin:0;
  padding:0;
}
html {
  font-size:16px;
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}
body {
  background:var(--earth-deep);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:0.875rem;
  line-height:1.6;
  min-height:100vh;
  overflow-x:hidden;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
a {
  color:inherit;
  text-decoration:none;
}
ul, ol {
  list-style:none;
}
button {
  font-family:inherit;
  font-size:inherit;
  cursor:pointer;
  border:none;
  background:none;
  color:inherit;
}
input[type="range"] {
  -webkit-appearance:none;
  appearance:none;
  background:transparent;
  cursor:pointer;
}
h1, h2 {
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.25;
}
.site-header {
  position:sticky;
  top:0;
  z-index:100;
  background:var(--earth-deep);
  border-bottom:1px solid var(--line);
}
.header-inner {
  max-width:1200px;
  margin:0 auto;
  padding:0.5rem 1rem;
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
a[data-contract="site-name"] {
  font-family:var(--font-display);
  font-size:1.125rem;
  font-weight:700;
  letter-spacing:0.08em;
  color:var(--lamp-bright);
  text-decoration:none;
  white-space:nowrap;
  flex-shrink:0;
}
a[data-contract="site-name"]:hover {
  color:var(--paper);
}
.category-bar {
  display:flex;
  flex-wrap:wrap;
  gap:0.25rem 0.5rem;
  align-items:center;
  min-width:0;
}
a.runtime-category {
  font-family:var(--font-body);
  font-size:0.8125rem;
  color:var(--paper-dim);
  text-decoration:none;
  white-space:nowrap;
  padding:0.125rem 0.375rem;
  border:1px solid var(--line);
  border-radius:2px;
  transition:color 0.15s, border-color 0.15s;
}
a.runtime-category:hover {
  color:var(--lamp-bright);
  border-color:var(--lamp);
}
.page-main {
  max-width:1200px;
  margin:0 auto;
  padding:0 1rem 1.5rem;
}
.hero-banner {
  position:relative;
  margin:0 -1rem;
  padding:0 1rem 1.25rem;
  background:
    linear-gradient(180deg, var(--earth-deep) 0%, var(--earth) 60%, var(--earth-mid) 100%);
  overflow:hidden;
}
.hero-portrait {
  position:relative;
  display:flex;
  justify-content:center;
  max-width:1200px;
  margin:0 auto;
}
.hero-figure {
  position:relative;
  z-index:2;
  width:min(100%, 420px);
  margin:0;
}
.hero-image {
  width:100%;
  height:auto;
  display:block;
  filter:sepia(0.25) contrast(1.05) brightness(0.92);
}
.hero-silhouette {
  position:absolute;
  top:0;
  right:0;
  width:60%;
  height:100%;
  z-index:1;
  background:
    linear-gradient(180deg, transparent 0%, rgba(28,42,30,0.55) 40%, rgba(28,42,30,0.85) 100%);
  clip-path:polygon(30% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 85%, 15% 70%, 20% 50%, 35% 30%, 40% 15%);
  pointer-events:none;
  filter:blur(2px);
}
.hero-silhouette::before {
  content:"";
  position:absolute;
  bottom:0;
  right:10%;
  width:35%;
  height:70%;
  background:var(--field-deep);
  opacity:0.6;
  clip-path:polygon(20% 100%, 20% 30%, 30% 30%, 30% 20%, 40% 20%, 40% 10%, 50% 0%, 60% 10%, 60% 20%, 70% 20%, 70% 30%, 80% 30%, 80% 100%);
  filter:blur(3px);
}
.hero-slogan {
  position:relative;
  z-index:3;
  max-width:1200px;
  margin:-3.5rem auto 0;
  padding:0.5rem 1rem;
  background:linear-gradient(90deg, transparent 0%, rgba(34,26,16,0.85) 15%, rgba(34,26,16,0.9) 85%, transparent 100%);
}
.hero-slogan-text {
  font-family:var(--font-display);
  font-size:clamp(0.875rem, 2.2vw, 1.25rem);
  font-weight:700;
  letter-spacing:0.15em;
  text-align:center;
  color:var(--lamp-bright);
  text-shadow:0 1px 4px rgba(0,0,0,0.6);
}
.info-strip {
  margin:0.75rem 0;
  padding:0.5rem 0.75rem;
  background:var(--field-deep);
  border:1px solid var(--line);
  border-radius:2px;
}
.info-strip-list {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:0.25rem 1rem;
}
.info-strip-item {
  display:flex;
  align-items:baseline;
  gap:0.375rem;
  font-size:0.75rem;
  line-height:1.5;
  min-width:0;
}
.info-key {
  font-family:var(--font-body);
  color:var(--paper-mute);
  flex-shrink:0;
}
.info-key::after {
  content:"：";
}
.info-val {
  font-family:var(--font-mono);
  color:var(--paper-dim);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.movie-overview {
  display:grid;
  grid-template-columns:minmax(0, 220px) minmax(0, 1fr);
  gap:1rem;
  margin:0.75rem 0;
  padding:0.75rem;
  background:var(--earth);
  border:1px solid var(--line);
  border-radius:2px;
  align-items:start;
}
.overview-poster-col {
  min-width:0;
}
.poster-wrap {
  margin:0;
  display:block;
  line-height:0;
}
.poster-img {
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
  border:1px solid var(--line);
}
.overview-body {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  min-width:0;
}
.overview-heading-group {
  display:flex;
  flex-direction:column;
  gap:0.125rem;
}
.movie-title {
  font-family:var(--font-display);
  font-size:1.375rem;
  font-weight:700;
  letter-spacing:0.06em;
  color:var(--paper);
  line-height:1.25;
}
.movie-tagline {
  font-family:var(--font-body);
  font-size:0.8125rem;
  color:var(--lamp);
  letter-spacing:0.05em;
}
.episode-status {
  display:flex;
  align-items:baseline;
  gap:0.25rem;
  font-size:0.8125rem;
  color:var(--paper-dim);
  padding:0.25rem 0;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
}
.status-label {
  color:var(--paper-mute);
  font-family:var(--font-body);
}
.status-current {
  font-family:var(--font-mono);
  color:var(--lamp-bright);
  font-weight:700;
}
.status-sep {
  color:var(--paper-mute);
}
.status-total {
  font-family:var(--font-mono);
  color:var(--paper-mute);
}
.player-shell {
  display:flex;
  flex-direction:column;
  gap:0.375rem;
  width:100%;
  position:relative;
}
.player-shell.is-theater {
  background:#000;
  padding:0.5rem;
  border-radius:2px;
}
.player-video {
  display:block;
  background:#000;
  border:1px solid var(--line);
}
.player-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.25rem 0.375rem;
  padding:0.375rem 0.5rem;
  background:var(--earth-deep);
  border:1px solid var(--line);
  border-radius:2px;
}
.ctrl-btn {
  font-family:var(--font-body);
  font-size:0.75rem;
  color:var(--paper-dim);
  padding:0.1875rem 0.5rem;
  border:1px solid var(--line);
  border-radius:2px;
  background:var(--earth-mid);
  white-space:nowrap;
  transition:color 0.15s, background 0.15s, border-color 0.15s;
  line-height:1.4;
}
.ctrl-btn:hover {
  color:var(--lamp-bright);
  border-color:var(--lamp);
}
.ctrl-btn.is-playing {
  background:var(--lamp-deep);
  color:var(--paper);
  border-color:var(--lamp);
}
.ctrl-btn.is-active {
  background:var(--lamp);
  color:var(--ink);
  border-color:var(--lamp-bright);
}
.ctrl-btn.is-muted {
  color:var(--lamp);
  border-color:var(--lamp-deep);
}
.ctrl-btn.play, .ctrl-btn.pause, .ctrl-btn.mute, .ctrl-btn.volume, .ctrl-btn.speed, .ctrl-btn.pip, .ctrl-btn.fullscreen, .ctrl-btn.theater, .ctrl-btn.light {
  
}
.ctrl-range {
  height:4px;
  border-radius:2px;
  background:var(--earth-mid);
  flex:1 1 80px;
  min-width:60px;
  max-width:100%;
}
.ctrl-range::-webkit-slider-thumb {
  -webkit-appearance:none;
  appearance:none;
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--lamp);
  border:1px solid var(--lamp-bright);
  cursor:pointer;
}
.ctrl-range::-moz-range-thumb {
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--lamp);
  border:1px solid var(--lamp-bright);
  cursor:pointer;
}
.ctrl-progress {
  flex:2 1 120px;
}
.ctrl-volume {
  flex:1 1 60px;
  max-width:120px;
}
.block-title {
  font-family:var(--font-display);
  font-size:0.9375rem;
  font-weight:700;
  letter-spacing:0.12em;
  color:var(--lamp-bright);
  padding-bottom:0.25rem;
  margin-bottom:0.5rem;
  border-bottom:1px solid var(--line);
  position:relative;
}
.block-title::before {
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:2.5rem;
  height:2px;
  background:var(--lamp);
}
.cast-block {
  padding-top:0.25rem;
}
.cast-list {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
  gap:0.375rem;
}
.cast-card {
  display:flex;
  flex-direction:column;
  gap:0.0625rem;
  padding:0.375rem 0.5rem;
  background:var(--earth-mid);
  border-left:2px solid var(--lamp-deep);
  min-width:0;
}
.cast-name {
  font-family:var(--font-display);
  font-size:0.8125rem;
  font-weight:700;
  color:var(--paper);
  line-height:1.3;
}
.cast-role {
  font-family:var(--font-body);
  font-size:0.6875rem;
  color:var(--paper-mute);
  line-height:1.4;
}
.synopsis-block {
  padding-top:0.25rem;
}
.synopsis-para {
  font-family:var(--font-body);
  font-size:0.8125rem;
  line-height:1.75;
  color:var(--paper-dim);
  text-indent:2em;
  margin-bottom:0.25rem;
}
.synopsis-para:last-child {
  margin-bottom:0;
}
.details-block {
  padding-top:0.25rem;
}
.details-list {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:0.125rem 0.75rem;
}
.detail-row {
  display:flex;
  align-items:baseline;
  gap:0.375rem;
  font-size:0.75rem;
  line-height:1.6;
  padding:0.125rem 0;
  border-bottom:1px solid var(--line-soft);
  min-width:0;
}
.detail-key {
  font-family:var(--font-body);
  color:var(--paper-mute);
  flex-shrink:0;
}
.detail-key::after {
  content:"：";
}
.detail-val {
  font-family:var(--font-mono);
  color:var(--paper-dim);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.timeline-section {
  margin:0.75rem 0;
  padding:0.75rem;
  background:var(--field-deep);
  border:1px solid var(--line);
  border-radius:2px;
}
.timeline-list {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  padding-left:0;
}
.timeline-node {
  display:grid;
  grid-template-columns:3.5rem 1.25rem minmax(0, 1fr);
  align-items:baseline;
  gap:0 0.5rem;
  padding:0.25rem 0;
  position:relative;
}
.timeline-timecode {
  font-family:var(--font-mono);
  font-size:0.75rem;
  font-weight:700;
  color:var(--lamp-bright);
  text-align:right;
  line-height:1.5;
  letter-spacing:0.02em;
}
.timeline-tick {
  position:relative;
  display:block;
  height:100%;
  min-height:1.5em;
}
.timeline-tick::before {
  content:"";
  position:absolute;
  top:0.55em;
  left:50%;
  transform:translateX(-50%);
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--lamp);
  border:1px solid var(--lamp-bright);
  z-index:2;
}
.timeline-tick::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:1px;
  background:var(--line);
  z-index:1;
}
.timeline-node:first-child .timeline-tick::after {
  top:0.55em;
}
.timeline-node:last-child .timeline-tick::after {
  bottom:auto;
  height:0.55em;
}
.timeline-label {
  font-family:var(--font-body);
  font-size:0.8125rem;
  color:var(--paper-dim);
  line-height:1.5;
  padding-bottom:0.25rem;
}
.timeline-node:first-child {
  padding-top:0.5rem;
}
.timeline-node:last-child {
  padding-bottom:0.5rem;
}
.episodes-section {
  margin:0.75rem 0;
}
.episode-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:0.375rem;
}
.episode-card {
  min-width:0;
  display:flex;
}
.episode-link {
  display:flex;
  flex-direction:column;
  gap:0.125rem;
  width:100%;
  padding:0.5rem 0.625rem;
  background:var(--earth-mid);
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--paper-dim);
  text-decoration:none;
  transition:background 0.15s, border-color 0.15s, color 0.15s;
  min-height:44px;
}
a.episode-link:hover {
  background:var(--earth);
  border-color:var(--lamp-deep);
  color:var(--paper);
}
.episode-number {
  font-family:var(--font-mono);
  font-size:0.75rem;
  font-weight:700;
  color:var(--lamp);
  letter-spacing:0.02em;
}
.episode-title {
  font-family:var(--font-display);
  font-size:0.8125rem;
  font-weight:700;
  color:var(--paper);
  line-height:1.3;
}
.episode-summary {
  font-family:var(--font-body);
  font-size:0.6875rem;
  line-height:1.5;
  color:var(--paper-mute);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.episode-duration {
  font-family:var(--font-mono);
  font-size:0.625rem;
  color:var(--paper-mute);
  margin-top:0.125rem;
}
.episode-card.episode-active .episode-link {
  background:var(--lamp-deep);
  border-color:var(--lamp);
  color:var(--paper);
}
.episode-card.episode-active .episode-number {
  color:var(--lamp-bright);
}
.episode-card.episode-active .episode-summary {
  color:var(--paper-dim);
}
.comments-section {
  margin:0.75rem 0;
}
.comment-wall {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:0.5rem;
}
.comment-note {
  display:flex;
  flex-direction:column;
  gap:0.125rem;
  padding:0.4375rem 0.5rem;
  background:var(--paper-dim);
  color:var(--ink);
  border-left:3px solid var(--lamp-deep);
  border-radius:1px;
  box-shadow:1px 1px 0 rgba(0,0,0,0.3);
  font-size:0.75rem;
  line-height:1.45;
  min-width:0;
}
.comment-note:nth-child(odd) {
  transform:translateY(0);
}
.comment-note:nth-child(even) {
  transform:translateY(0.375rem);
}
.comment-nick {
  font-family:var(--font-display);
  font-size:0.6875rem;
  font-weight:700;
  color:var(--lamp-deep);
  letter-spacing:0.03em;
}
.comment-text {
  font-family:var(--font-body);
  font-size:0.75rem;
  line-height:1.45;
  color:var(--ink);
}
.recommend-region {
  margin:0.75rem 0;
}
.recommend-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
  gap:0.375rem;
}
a.recommend-card {
  display:flex;
  flex-direction:column;
  gap:0.125rem;
  padding:0.375rem;
  background:var(--earth-mid);
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--paper-dim);
  text-decoration:none;
  transition:background 0.15s, border-color 0.15s;
  min-width:0;
}
a.recommend-card:hover {
  background:var(--earth);
  border-color:var(--lamp-deep);
}
.recommend-pic {
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  background:var(--earth-deep);
  border:1px solid var(--line-soft);
}
[data-runtime="recommendation"] img {
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  display:block;
  background:var(--earth-deep);
}
.recommend-name {
  font-family:var(--font-display);
  font-size:0.75rem;
  font-weight:700;
  color:var(--paper);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.recommend-blurb {
  font-family:var(--font-body);
  font-size:0.6875rem;
  line-height:1.45;
  color:var(--paper-mute);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.site-footer {
  background:var(--earth-deep);
  border-top:1px solid var(--line);
  margin-top:1rem;
}
.footer-inner {
  max-width:1200px;
  margin:0 auto;
  padding:0.75rem 1rem;
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.footer-nav-row {
  display:flex;
  flex-wrap:wrap;
  gap:0.25rem 0.75rem;
}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {
  font-family:var(--font-body);
  font-size:0.75rem;
  color:var(--paper-dim);
  text-decoration:none;
  white-space:nowrap;
}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {
  color:var(--lamp-bright);
  text-decoration:underline;
}
.friend-links {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.25rem 0.5rem;
}
.friend-links-label {
  font-family:var(--font-body);
  font-size:0.6875rem;
  color:var(--paper-mute);
  white-space:nowrap;
}
a.runtime-friend-link {
  font-family:var(--font-body);
  font-size:0.6875rem;
  color:var(--paper-mute);
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px dotted var(--line);
}
a.runtime-friend-link:hover {
  color:var(--lamp);
  border-bottom-color:var(--lamp);
}
.footer-disclaimer {
  font-family:var(--font-body);
  font-size:0.625rem;
  line-height:1.5;
  color:var(--paper-mute);
  opacity:0.7;
  border-top:1px solid var(--line-soft);
  padding-top:0.5rem;
}
body.is-lights-off {
  background:#000;
}
body.is-lights-off .site-header, body.is-lights-off .site-footer {
  background:#000;
}
body.is-lights-off .hero-banner {
  background:#000;
}
body.is-lights-off .info-strip, body.is-lights-off .movie-overview, body.is-lights-off .timeline-section, body.is-lights-off .episode-card, body.is-lights-off .episode-link, body.is-lights-off .recommend-card, body.is-lights-off .player-controls, body.is-lights-off .ctrl-btn {
  background:#0a0a0a;
  border-color:rgba(200,180,150,0.08);
}
body.is-lights-off .hero-silhouette {
  opacity:0.3;
}
@media (max-width:900px){.movie-overview {
    grid-template-columns:minmax(0, 180px) minmax(0, 1fr);
  }
.episode-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
.hero-silhouette {
    width:50%;
  }}
@media (max-width:640px){html {
    font-size:15px;
  }
.header-inner {
    padding:0.5rem 0.75rem;
    gap:0.5rem;
  }
a[data-contract="site-name"] {
    font-size:1rem;
  }
.hero-banner {
    margin:0 -0.75rem;
    padding:0 0.75rem 1rem;
  }
.hero-figure {
    width:min(100%, 320px);
  }
.hero-silhouette {
    width:45%;
    opacity:0.7;
  }
.hero-slogan {
    margin-top:-2rem;
    padding:0.375rem 0.75rem;
  }
.hero-slogan-text {
    letter-spacing:0.08em;
  }
.movie-overview {
    grid-template-columns:minmax(0, 1fr);
    gap:0.75rem;
    padding:0.5rem;
  }
.overview-poster-col {
    max-width:200px;
    margin:0 auto;
  }
.movie-title {
    font-size:1.125rem;
  }
.info-strip-list {
    grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));
    gap:0.125rem 0.5rem;
  }
.info-strip {
    padding:0.375rem 0.5rem;
  }
.timeline-node {
    grid-template-columns:3rem 1rem minmax(0, 1fr);
    gap:0 0.375rem;
  }
.timeline-timecode {
    font-size:0.6875rem;
  }
.timeline-label {
    font-size:0.75rem;
  }
.episode-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:0.25rem;
  }
.episode-link {
    padding:0.375rem 0.5rem;
  }
.comment-wall {
    grid-template-columns:minmax(0, 1fr);
    gap:0.375rem;
  }
.comment-note:nth-child(even) {
    transform:translateY(0);
  }
.recommend-grid {
    grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
    gap:0.25rem;
  }
.player-controls {
    gap:0.1875rem 0.25rem;
    padding:0.25rem 0.375rem;
  }
.ctrl-btn {
    font-size:0.6875rem;
    padding:0.125rem 0.375rem;
  }
.ctrl-range {
    flex:1 1 60px;
  }
.ctrl-progress {
    flex:2 1 100px;
  }
.ctrl-volume {
    flex:1 1 50px;
    max-width:80px;
  }
.details-list {
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
  }}
@media (max-width:400px){.episode-grid {
    grid-template-columns:minmax(0, 1fr);
  }
.info-strip-list {
    grid-template-columns:minmax(0, 1fr);
  }
.cast-list {
    grid-template-columns:repeat(auto-fill, minmax(100px, 1fr));
  }
.ctrl-btn {
    font-size:0.625rem;
    padding:0.125rem 0.25rem;
  }}

footer{text-align:center!important}
footer *{justify-content:center!important}
footer :is(div,nav,ul,ol,p,section,address){margin-left:auto!important;margin-right:auto!important}
