*, * {margin:0;padding:0;box-sizing:border-box}
html {scroll-behavior:smooth}
body {
  font-family:"Songti SC","SimSun","NSimSun",serif;
  background:#1a1010;
  color:#d4c4a8;
  line-height:1.6;
  font-size:15px;
  background-image:
    radial-gradient(ellipse at 20% 20%, rgba(120,20,20,0.15) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 0%, rgba(60,60,80,0.2) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 100%, rgba(100,30,30,0.1) 0%, transparent 50%),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.008) 0px, rgba(255,255,255,0.008) 1px, transparent 1px, transparent 3px);
  min-height:100vh;
}
a {color:#b8a888;text-decoration:none;transition:color .3s}
a:hover {color:#c83232}
img {max-width:100%;display:block}
.page-main {
  max-width:1400px;
  margin:0 auto;
  padding:0 20px 60px;
}
.site-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 20px;
  background:rgba(20,12,12,0.95);
  border-bottom:2px solid #5a1a1a;
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(4px);
}
.site-brand {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:1.5rem;
  font-weight:bold;
  color:#d4c4a8;
  letter-spacing:4px;
  border-left:3px solid #8a1a1a;
  padding-left:12px;
}
.site-brand:hover {color:#e8d8b8;text-shadow:0 0 8px rgba(200,50,50,0.4)}
.category-nav {
  display:flex;
  gap:4px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.runtime-category {
  display:inline-block;
  padding:6px 14px;
  border:1px solid #4a3020;
  border-radius:2px;
  font-size:14px;
  color:#b8a888;
  background:rgba(40,25,25,0.6);
  white-space:nowrap;
  transition:all .3s;
  letter-spacing:1px;
}
.runtime-category:hover {
  border-color:#c83232;
  color:#e8d8b8;
  background:rgba(80,20,20,0.4);
  box-shadow:0 0 10px rgba(200,50,50,0.15);
}
.hero-poster-shell {
  position:relative;
  display:grid;
  grid-template-columns:320px 1fr;
  gap:30px;
  padding:30px;
  margin-top:20px;
  background:rgba(28,20,18,0.9);
  border:1px solid #3a2020;
  box-shadow:0 4px 30px rgba(0,0,0,0.5), inset 0 0 60px rgba(0,0,0,0.3);
}
.poster-media-wrapper {
  position:relative;
  grid-row:1 / 4;
  align-self:start;
  height:fit-content;
}
.hero-poster-img {
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  border:3px solid #3a2020;
  filter:sepia(0.4) contrast(1.1) brightness(0.85);
  box-shadow:0 8px 25px rgba(0,0,0,0.6);
}
.hero-lantern-decor {
  position:absolute;
  top:-18px;
  right:-14px;
  width:60px;
  height:80px;
  background:radial-gradient(ellipse, rgba(200,50,50,0.6), rgba(120,20,20,0.3) 60%, transparent);
  border-radius:50% 50% 45% 45%;
  border:1px solid rgba(200,80,80,0.3);
  box-shadow:0 0 30px rgba(200,50,50,0.3), inset 0 0 15px rgba(255,100,100,0.2);
  z-index:2;
  animation:lantern-glow 4s ease-in-out infinite;
}
.hero-lantern-decor::after {
  content:"";
  position:absolute;
  bottom:-20px;
  left:50%;
  transform:translateX(-50%);
  width:2px;
  height:20px;
  background:rgba(200,100,100,0.5);
}
.hero-mountain-decor {
  position:absolute;
  bottom:-10px;
  left:-10px;
  right:-10px;
  height:80px;
  background:
    linear-gradient(135deg, transparent 0%, transparent 45%, rgba(30,40,50,0.6) 46%, rgba(30,40,50,0.8) 55%, transparent 56%),
    linear-gradient(45deg, transparent 0%, transparent 30%, rgba(20,30,40,0.7) 31%, rgba(20,30,40,0.9) 50%, transparent 51%),
    linear-gradient(135deg, transparent 0%, transparent 25%, rgba(25,35,45,0.8) 26%, rgba(25,35,45,0.95) 60%, transparent 61%);
  filter:blur(0.5px);
  z-index:1;
}
.hero-title-block {
  grid-column:2;
  align-self:end;
  padding:10px 0 5px;
  border-bottom:1px solid #5a1a1a;
}
.movie-hero-title {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:2.2rem;
  font-weight:bold;
  color:#e8d8b8;
  letter-spacing:6px;
  text-shadow:2px 2px 4px rgba(0,0,0,0.5), 0 0 20px rgba(200,50,50,0.2);
  line-height:1.3;
}
.movie-hero-tagline {
  margin-top:8px;
  font-size:1rem;
  color:#a88878;
  letter-spacing:2px;
  font-style:italic;
}
.movie-info-content {
  grid-column:2;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px 30px;
  align-items:start;
}
.synopsis-section {
  grid-column:1;
  padding-right:15px;
  border-right:1px solid rgba(90,26,26,0.3);
}
.section-heading {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:1.3rem;
  color:#c8a888;
  letter-spacing:3px;
  padding-bottom:8px;
  margin-bottom:14px;
  border-bottom:2px solid #5a1a1a;
  position:relative;
}
.section-heading::after {
  content:"◆";
  position:absolute;
  right:0;
  bottom:-15px;
  color:#8a1a1a;
  font-size:0.8rem;
}
.synopsis-copy-group {
  display:grid;
  gap:12px;
}
.synopsis-paragraph {
  font-size:0.95rem;
  color:#c4b4a0;
  text-indent:2em;
  text-align:justify;
  line-height:1.9;
}
.cast-section {
  grid-column:2;
}
.cast-grid-list {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:8px;
}
.cast-member-card {
  padding:10px 8px;
  border:1px solid rgba(90,26,26,0.3);
  background:rgba(40,20,20,0.3);
  display:flex;
  flex-direction:column;
  gap:4px;
  cursor:default;
  transition:all .3s;
  text-align:center;
}
.cast-member-card:hover {
  background:rgba(120,30,30,0.3);
  border-color:#8a1a1a;
  transform:translateY(-2px);
  box-shadow:0 4px 15px rgba(0,0,0,0.3);
}
.cast-name {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:1.1rem;
  font-weight:bold;
  color:#e8d8b8;
  letter-spacing:1px;
}
.cast-name:hover {color:#ff5050}
.cast-role-tag {
  font-size:0.75rem;
  color:#a87868;
  padding:2px 8px;
  border-radius:10px;
  background:rgba(138,26,26,0.2);
  border:1px solid rgba(138,26,26,0.3);
  align-self:center;
}
.player-wrapper {
  grid-column:1 / -1;
  margin-top:10px;
  background:rgba(0,0,0,0.4);
  border:1px solid #3a2020;
  padding:10px;
}
.player-wrapper video {
  display:block;
  background:#000;
}
.player-controls-bar {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  padding:10px 5px 5px;
  justify-content:center;
}
.player-btn {
  background:rgba(60,30,30,0.7);
  border:1px solid #5a1a1a;
  color:#c4b4a0;
  font-family:inherit;
  font-size:13px;
  padding:5px 12px;
  cursor:pointer;
  border-radius:2px;
  transition:all .3s;
  letter-spacing:1px;
}
.player-btn:hover {
  background:rgba(138,26,26,0.5);
  color:#e8d8b8;
  border-color:#c83232;
}
.player-btn.is-active {
  background:rgba(200,50,50,0.4);
  color:#ffd8d8;
  border-color:#ff5050;
  box-shadow:0 0 10px rgba(200,50,50,0.3);
}
.player-wrapper.theater-mode {
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(0,0,0,0.95);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:40px;
  border:none;
}
.player-wrapper.theater-mode video {
  max-height:80vh;
  object-fit:contain;
}
.player-wrapper.theater-mode .player-controls-bar {
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  background:rgba(0,0,0,0.7);
  padding:10px 20px;
  border-radius:30px;
}
.episode-status-block {
  display:flex;
  gap:20px;
  padding:12px 0;
  border-top:1px solid rgba(90,26,26,0.3);
  border-bottom:1px solid rgba(90,26,26,0.3);
  font-size:0.85rem;
  color:#a88878;
  flex-wrap:wrap;
}
.episode-status-total, .episode-status-current, .episode-status-duration {
  padding:2px 12px;
  background:rgba(60,20,20,0.3);
  border-left:2px solid #8a1a1a;
}
.episode-status-current {
  color:#e8d8b8;
  font-weight:bold;
}
.movie-details-block {
  grid-column:1 / -1;
  background:rgba(30,20,18,0.6);
  border:1px solid rgba(90,26,26,0.2);
  padding:15px;
}
.detail-definition-list {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:8px 20px;
}
.detail-row {
  display:flex;
  gap:8px;
  font-size:0.9rem;
  padding:4px 0;
  border-bottom:1px dotted rgba(90,26,26,0.3);
}
.detail-row dt {
  color:#a87868;
  font-weight:bold;
  white-space:nowrap;
}
.detail-row dd {
  color:#d4c4a8;
}
.timeline-section {
  margin-top:40px;
  padding:30px;
  background:rgba(25,18,16,0.85);
  border:1px solid #3a2020;
  position:relative;
}
.timeline-section::before {
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(90,26,26,0.15);
  pointer-events:none;
}
.timeline-ribbon {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:20px 40px;
  padding:20px 10px;
  position:relative;
}
.timeline-ribbon::before {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:2px;
  background:linear-gradient(to bottom, transparent, #8a1a1a 10%, #8a1a1a 90%, transparent);
  opacity:0.5;
}
.timeline-node {
  position:relative;
  padding:12px 18px;
  background:rgba(40,25,25,0.5);
  border:1px solid rgba(90,26,26,0.3);
  border-radius:4px;
  transition:all .3s;
}
.timeline-node:nth-child(odd) {
  grid-column:1;
  margin-right:20px;
  text-align:right;
}
.timeline-node:nth-child(even) {
  grid-column:2;
  margin-left:20px;
}
.timeline-node::before {
  content:"印";
  position:absolute;
  width:28px;
  height:28px;
  background:rgba(200,50,50,0.15);
  border:2px solid #c83232;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.7rem;
  color:#c83232;
  font-weight:bold;
  top:50%;
  transform:translateY(-50%);
  box-shadow:0 0 8px rgba(200,50,50,0.3), inset 0 0 4px rgba(200,50,50,0.2);
}
.timeline-node:nth-child(odd)::before {
  right:-14px;
}
.timeline-node:nth-child(even)::before {
  left:-14px;
}
.timeline-node:hover {
  background:rgba(80,25,25,0.5);
  transform:scale(1.02);
  box-shadow:0 4px 20px rgba(0,0,0,0.4);
}
.timeline-timecode {
  display:block;
  font-weight:bold;
  color:#e8d8b8;
  font-size:1rem;
  letter-spacing:1px;
  margin-bottom:4px;
}
.timeline-label {
  font-size:0.9rem;
  color:#b8a888;
  line-height:1.5;
}
.episodes-section {
  margin-top:40px;
  padding:30px;
  background:rgba(25,18,16,0.85);
  border:1px solid #3a2020;
}
.episode-card-stack {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:15px;
}
.episode-card {
  background:rgba(35,25,22,0.7);
  border:1px solid #4a3020;
  padding:15px 18px;
  position:relative;
  transition:all .3s;
  border-radius:2px;
}
.episode-card::before {
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid rgba(90,26,26,0.15);
  pointer-events:none;
  border-radius:1px;
}
.episode-card::after {
  content:"";
  position:absolute;
  top:0;
  right:15px;
  width:40px;
  height:3px;
  background:linear-gradient(90deg, transparent, #8a1a1a, transparent);
}
.episode-card:hover {
  border-color:#c83232;
  background:rgba(60,25,25,0.6);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(0,0,0,0.4);
}
.episode-number {
  position:absolute;
  top:10px;
  right:15px;
  font-family:"Kaiti SC","STKaiti",serif;
  font-size:2.2rem;
  font-weight:bold;
  color:rgba(200,50,50,0.2);
  line-height:1;
}
.episode-title {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:1.1rem;
  color:#e8d8b8;
  margin-bottom:8px;
  letter-spacing:1px;
  padding-right:30px;
}
.episode-summary {
  font-size:0.85rem;
  color:#b8a888;
  line-height:1.6;
  margin-bottom:8px;
}
.episode-duration {
  display:inline-block;
  font-size:0.75rem;
  color:#a87868;
  border:1px solid rgba(90,26,26,0.3);
  padding:2px 8px;
  border-radius:2px;
  background:rgba(60,20,20,0.3);
}
.comments-section {
  margin-top:40px;
  padding:30px;
  background:rgba(25,18,16,0.85);
  border:1px solid #3a2020;
}
.comments-column-layout {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:15px;
}
.comment-bubble {
  background:rgba(60,45,40,0.6);
  border-radius:8px;
  padding:15px;
  position:relative;
  border:1px solid rgba(90,26,26,0.2);
}
.comment-bubble::before {
  content:"";
  position:absolute;
  bottom:12px;
  left:-8px;
  width:16px;
  height:16px;
  background:rgba(60,45,40,0.6);
  transform:rotate(45deg);
  border-left:1px solid rgba(90,26,26,0.2);
  border-bottom:1px solid rgba(90,26,26,0.2);
}
.comment-nickname {
  display:block;
  font-weight:bold;
  color:#c83232;
  font-size:0.9rem;
  margin-bottom:8px;
  letter-spacing:1px;
}
.comment-text {
  font-size:0.85rem;
  color:#c4b4a0;
  line-height:1.7;
}
.recommendation-region {
  margin-top:40px;
  padding:30px;
  background:rgba(25,18,16,0.85);
  border:1px solid #3a2020;
  position:relative;
}
.recommendation-region::before {
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(200,50,50,0.15);
  pointer-events:none;
}
.recommendation-grid-4col, .recommendation-grid-5col, .recommendation-grid-6col {
  display:grid;
  gap:15px;
}
.recommendation-grid-4col {
  grid-template-columns:repeat(4, 1fr);
}
.recommendation-grid-5col {
  grid-template-columns:repeat(5, 1fr);
}
.recommendation-grid-6col {
  grid-template-columns:repeat(6, 1fr);
}
.recommendation-card {
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:center;
  padding:10px;
  border:1px solid rgba(90,26,26,0.2);
  background:rgba(35,25,22,0.5);
  transition:all .3s;
  align-self:start;
}
.recommendation-card:hover {
  border-color:#c83232;
  background:rgba(80,20,20,0.4);
  transform:translateY(-4px);
  box-shadow:0 8px 25px rgba(0,0,0,0.5), 0 0 15px rgba(200,50,50,0.1);
  color:#e8d8b8;
}
.recommendation-card img {
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  border:1px solid #3a2020;
  filter:sepia(0.5) contrast(1.05) brightness(0.9);
  transition:filter .3s;
}
.recommendation-card:hover img {
  filter:sepia(0.2) contrast(1.1) brightness(1);
}
.recommendation-name {
  font-family:"Kaiti SC","STKaiti","KaiTi",serif;
  font-size:0.95rem;
  font-weight:bold;
  color:#d4c4a8;
  letter-spacing:1px;
  line-height:1.3;
}
.recommendation-blurb {
  font-size:0.75rem;
  color:#a88878;
  line-height:1.5;
}
.site-footer {
  background:rgba(15,10,10,0.95);
  border-top:2px solid #5a1a1a;
  padding:30px 20px 40px;
  margin-top:20px;
}
.footer-disclaimer {
  font-size:0.8rem;
  color:#887868;
  text-align:center;
  max-width:800px;
  margin:0 auto 20px;
  line-height:1.7;
  border-bottom:1px solid rgba(90,26,26,0.2);
  padding-bottom:15px;
}
.footer-nav-links {
  display:flex;
  justify-content:center;
  gap:30px;
  margin-bottom:20px;
}
.footer-nav-links a {
  color:#a88878;
  font-size:0.9rem;
  padding:4px 12px;
  border:1px solid transparent;
  transition:all .3s;
}
.footer-nav-links a:hover {
  color:#e8d8b8;
  border-color:#8a1a1a;
  background:rgba(80,20,20,0.3);
}
.footer-friend-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 15px;
  align-items:center;
  max-width:1000px;
  margin:0 auto;
}
.friend-links-label {
  font-size:0.8rem;
  color:#887868;
  white-space:nowrap;
}
.runtime-friend-link {
  font-size:0.8rem;
  color:#887868;
  padding:2px 6px;
  transition:all .3s;
}
.runtime-friend-link:hover {
  color:#c83232;
  text-decoration:underline;
  text-underline-offset:3px;
}
body.lights-dimmed {
  background:#0a0808;
}
body.lights-dimmed .hero-poster-shell, body.lights-dimmed .timeline-section, body.lights-dimmed .episodes-section, body.lights-dimmed .comments-section, body.lights-dimmed .recommendation-region {
  background:rgba(10,8,8,0.95);
}
@media (max-width: 1200px){.recommendation-grid-6col {
    grid-template-columns:repeat(3, 1fr);
  }
.recommendation-grid-5col {
    grid-template-columns:repeat(3, 1fr);
  }}
@media (max-width: 992px){.hero-poster-shell {
    grid-template-columns:260px 1fr;
    gap:20px;
    padding:20px;
  }
.movie-info-content {
    grid-template-columns:1fr;
    gap:15px;
  }
.synopsis-section {
    grid-column:1;
    border-right:none;
    border-bottom:1px solid rgba(90,26,26,0.3);
    padding-right:0;
    padding-bottom:15px;
  }
.cast-section {
    grid-column:1;
  }
.recommendation-grid-4col {
    grid-template-columns:repeat(2, 1fr);
  }
.recommendation-grid-5col {
    grid-template-columns:repeat(2, 1fr);
  }
.recommendation-grid-6col {
    grid-template-columns:repeat(2, 1fr);
  }
.comments-column-layout {
    grid-template-columns:repeat(2, 1fr);
  }}
@media (max-width: 768px){.page-main {
    padding:0 12px 40px;
  }
.site-header {
    flex-direction:column;
    gap:10px;
    padding:10px;
  }
.category-nav {
    justify-content:center;
  }
.hero-poster-shell {
    grid-template-columns:1fr;
    padding:15px;
  }
.poster-media-wrapper {
    grid-row:auto;
    max-width:280px;
    margin:0 auto;
  }
.hero-title-block {
    grid-column:1;
    text-align:center;
  }
.movie-info-content {
    grid-column:1;
  }
.movie-hero-title {
    font-size:1.8rem;
    letter-spacing:3px;
  }
.cast-grid-list {
    grid-template-columns:repeat(2, 1fr);
  }
.detail-definition-list {
    grid-template-columns:repeat(2, 1fr);
  }
.timeline-ribbon {
    grid-template-columns:1fr;
    padding:10px 0;
  }
.timeline-ribbon::before {
    left:14px;
  }
.timeline-node:nth-child(odd), .timeline-node:nth-child(even) {
    grid-column:1;
    margin-left:30px;
    text-align:left;
    margin-right:0;
  }
.timeline-node:nth-child(odd)::before, .timeline-node:nth-child(even)::before {
    left:-14px;
    right:auto;
  }
.episode-card-stack {
    grid-template-columns:1fr;
    gap:10px;
  }
.comments-column-layout {
    grid-template-columns:1fr;
  }
.recommendation-grid-4col, .recommendation-grid-5col, .recommendation-grid-6col {
    grid-template-columns:repeat(2, 1fr);
  }
.episode-status-block {
    gap:8px;
  }}
@media (max-width: 480px){body {
    font-size:14px;
  }
.movie-hero-title {
    font-size:1.4rem;
  }
.cast-grid-list {
    grid-template-columns:1fr 1fr;
  }
.detail-definition-list {
    grid-template-columns:1fr;
  }
.recommendation-grid-4col, .recommendation-grid-5col, .recommendation-grid-6col {
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
.recommendation-region, .timeline-section, .episodes-section, .comments-section {
    padding:15px;
    margin-top:25px;
  }
.player-controls-bar {
    gap:4px;
  }
.player-btn {
    padding:4px 8px;
    font-size:12px;
  }
.site-footer {
    padding:20px 10px 30px;
  }
.footer-friend-links {
    gap:6px 10px;
  }}

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}
