* {box-sizing:border-box;margin:0;padding:0}
:root {
  --char:#141414;
  --char-2:#1d1b19;
  --rust:#8a2f1c;
  --rust-deep:#5e1f13;
  --copper:#a8703c;
  --copper-dim:#7d5228;
  --ash:#c9c5bf;
  --ash-dim:#8d8880;
  --cold:#eef0f1;
  --line:#2c2825;
  --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
html {-webkit-text-size-adjust:100%;}
body {
  font-family:var(--font);
  background:var(--char);
  color:var(--ash);
  font-size:14px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
}
img, video {display:block;max-width:100%;}
a {color:inherit;text-decoration:none;}
ul, ol {list-style:none;}
h1, h2 {font-weight:700;line-height:1.2;}
button, input {font:inherit;color:inherit;}
button {cursor:pointer;background:none;border:0;}
.site-header {
  position:sticky;
  top:0;
  z-index:60;
  background:linear-gradient(180deg,#161412 0%,#141414 100%);
  border-bottom:1px solid var(--line);
}
.header-inner {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  padding:8px 14px;
  max-width:1320px;
  margin:0 auto;
}
.brand {
  font-size:16px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--rust);
  text-transform:uppercase;
  white-space:nowrap;
}
.brand::before {
  content:"";
  display:inline-block;
  width:6px;
  height:14px;
  margin-right:8px;
  vertical-align:-2px;
  background:var(--rust);
}
a[data-contract="site-name"] {
  color:var(--rust);
  text-decoration:none;
}
a[data-contract="site-name"]:hover {color:var(--copper);}
.category-bar {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
a.runtime-category {
  display:inline-block;
  white-space:nowrap;
  font-size:12px;
  letter-spacing:.06em;
  padding:3px 9px;
  color:var(--ash-dim);
  border:1px solid var(--line);
  text-decoration:none;
  background:#191715;
}
a.runtime-category:hover {
  color:var(--cold);
  border-color:var(--copper-dim);
  background:#221d19;
}
.page-main {
  max-width:1320px;
  margin:0 auto;
  padding:0 14px 40px;
}
.section-heading {
  font-size:14px;
  letter-spacing:.16em;
  font-weight:700;
  color:var(--cold);
  padding-left:10px;
  border-left:3px solid var(--rust);
  margin:0 0 10px;
}
.hero {
  display:grid;
  grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);
  gap:20px;
  padding:18px 0 34px;
  border-bottom:1px solid var(--line);
}
.hero-figure {
  position:relative;
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(20,18,16,.15) 0%,rgba(20,18,16,.85) 100%),
    repeating-linear-gradient(90deg,#4a1c12 0 26px,#3d1710 26px 28px,#541f13 28px 54px,#401911 54px 57px);
  border:1px solid var(--line);
  padding:18px 16px 16px;
}
.hero-figure::after {
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:34%;
  background:linear-gradient(180deg,rgba(122,44,26,0) 0%,rgba(122,44,26,.30) 45%,rgba(180,120,80,.16) 100%);
  pointer-events:none;
}
.excomm-slip {
  position:absolute;
  top:0;left:0;
  width:46%;
  height:26px;
  background:
    repeating-linear-gradient(135deg,#7a2a19 0 8px,#5c1f12 8px 16px);
  border-bottom:1px solid #2a1410;
  opacity:.92;
}
.excomm-slip::after {
  content:"除名帖";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  letter-spacing:.5em;
  text-indent:.5em;
  color:#e8d9cc;
  font-weight:700;
}
.hero-silhouette {
  position:absolute;
  right:6%;
  bottom:0;
  width:58%;
  height:72%;
  background:
    radial-gradient(60% 42% at 50% 12%,#0b0a09 0 62%,rgba(11,10,9,0) 66%),
    radial-gradient(78% 60% at 50% 100%,#0b0a09 0 70%,rgba(11,10,9,0) 74%);
  filter:drop-shadow(0 0 18px rgba(0,0,0,.6));
  pointer-events:none;
  z-index:1;
}
.hero-poster-wrap {
  position:relative;
  z-index:2;
  width:62%;
  max-width:230px;
  align-self:flex-start;
}
.hero-poster-wrap img {
  width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  object-fit:cover;
  border:1px solid #0c0b0a;
  box-shadow:0 10px 26px rgba(0,0,0,.65);
  filter:contrast(1.06) saturate(.85);
}
.hero-tagline {
  position:relative;
  z-index:2;
  align-self:flex-end;
  writing-mode:vertical-rl;
  text-orientation:upright;
  font-size:15px;
  font-weight:700;
  letter-spacing:.34em;
  line-height:1.15;
  max-height:230px;
  color:var(--cold);
  text-shadow:0 2px 8px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.9);
  border-right:1px solid rgba(168,112,60,.6);
  padding-right:8px;
}
.hero-info {
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.movie-title {
  font-size:30px;
  letter-spacing:.06em;
  color:var(--cold);
  font-weight:700;
}
.movie-seo {
  font-size:11px;
  letter-spacing:.24em;
  color:var(--copper);
  text-transform:uppercase;
}
.movie-blurb {
  font-size:13px;
  line-height:1.65;
  color:var(--ash-dim);
  border-left:2px solid var(--rust-deep);
  padding-left:10px;
}
.hero-player {
  display:block;
  width:100%;
  background:#0d0c0b;
  border:1px solid var(--line);
  padding:8px;
}
.hero-player.theater-mode {
  width:100%;
  background:#070606;
  border-color:var(--copper-dim);
  padding:12px;
}
.hero-player video {
  background:#000;
  border:1px solid #000;
}
.player-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:8px;
}
.player-btn {
  font-size:11px;
  letter-spacing:.08em;
  padding:4px 9px;
  color:var(--ash);
  background:#1c1917;
  border:1px solid var(--line);
  white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s;
}
.player-btn:hover {
  color:var(--cold);
  background:#26211d;
  border-color:var(--copper-dim);
}
.player-btn.is-playing, .player-btn.is-active {
  color:#f4ece4;
  background:var(--rust-deep);
  border-color:var(--rust);
}
.player-btn.is-muted {
  color:#d9b48c;
  border-color:var(--copper-dim);
}
.player-range {
  -webkit-appearance:none;
  appearance:none;
  height:3px;
  min-width:80px;
  flex:1 1 120px;
  background:linear-gradient(90deg,var(--rust) 0%,var(--rust) 30%,#2a2624 30%,#2a2624 100%);
  border:0;
  outline:none;
}
.player-range:first-of-type {flex:2 1 180px;}
.player-range::-webkit-slider-thumb {
  -webkit-appearance:none;
  appearance:none;
  width:11px;height:11px;
  background:var(--copper);
  border:1px solid #14100d;
  cursor:pointer;
}
.player-range::-moz-range-thumb {
  width:11px;height:11px;
  background:var(--copper);
  border:1px solid #14100d;
  cursor:pointer;
}
.player-range:focus-visible {outline:1px solid var(--copper);}
.episode-status {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.status-chip {
  font-size:11px;
  letter-spacing:.08em;
  padding:3px 9px;
  color:#e6d8cb;
  background:#241a15;
  border:1px solid var(--rust-deep);
  white-space:nowrap;
}
.status-chip:first-child {
  color:#f6ece2;
  background:var(--rust-deep);
  border-color:var(--rust);
}
.cast-block {
  margin-top:2px;
}
.cast-heading {
  font-size:13px;
  letter-spacing:.16em;
  font-weight:700;
  color:var(--cold);
  margin-bottom:8px;
}
.cast-wall {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
}
.cast-member {
  display:flex;
  flex-direction:column;
  gap:4px;
  align-items:flex-start;
  min-width:0;
}
.cast-avatar {
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  background:
    radial-gradient(70% 70% at 50% 34%,#3a3530 0 40%,#211d1a 44% 100%),
    linear-gradient(180deg,#332d28 0%,#1a1714 100%);
  border:1px solid var(--line);
  filter:grayscale(.4) contrast(1.05);
}
.cast-name {
  font-size:12px;
  font-weight:700;
  color:var(--cold);
  letter-spacing:.04em;
  line-height:1.25;
}
.cast-role {
  font-size:10px;
  color:var(--ash-dim);
  letter-spacing:.02em;
  line-height:1.3;
}
.synopsis-section {
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.synopsis-body {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 18px;
}
.synopsis-para {
  font-size:12.5px;
  line-height:1.68;
  color:var(--ash-dim);
  text-align:justify;
}
.synopsis-para::first-letter {
  font-weight:700;
  color:var(--ash);
}
.details-section {
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.detail-list {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 18px;
}
.detail-row {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  padding:5px 0;
  border-bottom:1px dotted #2a2624;
  min-width:0;
}
.detail-key {
  font-size:11px;
  letter-spacing:.1em;
  color:var(--copper-dim);
  white-space:nowrap;
}
.detail-value {
  font-size:12px;
  color:var(--ash);
  text-align:right;
  min-width:0;
  word-break:break-word;
}
.timeline-section {
  margin-top:26px;
}
.timeline-scroll {
  position:relative;
  overflow-x:auto;
  overflow-y:hidden;
  padding:14px 0 12px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#171514 0%,#141312 100%);
  -webkit-overflow-scrolling:touch;
}
.timeline-rope {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:64px;
  background:repeating-linear-gradient(
    -45deg,
    #7c2c1a 0 6px,
    #4d1a0f 6px 12px,
    #8f3a24 12px 18px,
    #40150c 18px 24px
  );
  opacity:.5;
  pointer-events:none;
}
.timeline-track {
  display:flex;
  align-items:stretch;
  gap:10px;
  padding:0 14px 0 74px;
  min-width:max-content;
}
.timeline-card {
  flex:0 0 126px;
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 10px 12px;
  background:#1b1816;
  border:1px solid var(--line);
  border-top:3px solid var(--rust);
  min-height:92px;
}
.timeline-timecode {
  font-size:10px;
  letter-spacing:.16em;
  color:var(--copper);
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.timeline-label {
  font-size:12.5px;
  font-weight:700;
  color:var(--cold);
  line-height:1.4;
  letter-spacing:.02em;
}
.episodes-section {
  margin-top:26px;
}
.episode-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 22px;
}
.episode-item {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:baseline;
  gap:8px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
  min-width:0;
}
.episode-item:first-child, .episode-item:nth-child(2) {border-top:1px solid var(--line);}
.episode-number {
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--copper);
  font-weight:700;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.episode-title {
  font-size:13px;
  font-weight:700;
  color:var(--cold);
  letter-spacing:.03em;
}
.episode-duration {
  font-size:10.5px;
  color:var(--ash-dim);
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.episode-summary {
  grid-column:2 / -1;
  font-size:11.5px;
  line-height:1.6;
  color:var(--ash-dim);
  margin-top:1px;
}
.comments-section {
  margin-top:26px;
}
.comment-columns {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 22px;
  align-items:start;
}
.comment-list {
  display:flex;
  flex-direction:column;
  gap:0;
}
.comment-item {
  padding:9px 0;
  border-bottom:1px solid var(--line);
  min-width:0;
}
.comment-head {
  display:flex;
  align-items:center;
  gap:7px;
  margin-bottom:4px;
}
.comment-avatar {
  display:block;
  flex:0 0 auto;
  width:20px;height:20px;
  background:
    radial-gradient(70% 70% at 50% 36%,#4a443d 0 42%,#232019 46% 100%),
    linear-gradient(180deg,#332d28,#1a1714);
  border:1px solid var(--line);
  border-radius:50%;
  filter:grayscale(.5);
}
.comment-nickname {
  font-size:12px;
  font-weight:700;
  color:var(--copper);
  letter-spacing:.04em;
}
.comment-text {
  font-size:12px;
  line-height:1.55;
  color:var(--ash-dim);
  text-align:justify;
}
.rec-region {
  position:relative;
  display:flex;
  align-items:baseline;
  gap:12px;
  margin-top:20px;
  padding:9px 12px;
  background:#191614;
  border:1px solid var(--line);
  border-left:3px solid var(--rust-deep);
}
.rec-heading {
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--cold);
  flex:0 0 auto;
  white-space:nowrap;
}
.rec-strip {
  display:flex;
  align-items:flex-start;
  gap:10px;
  flex:1 1 auto;
  min-width:0;
  flex-wrap:wrap;
}
a.rec-item {
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1 1 150px;
  min-width:0;
  max-width:230px;
  padding:7px;
  background:#141211;
  border:1px solid var(--line);
  color:var(--ash);
  text-decoration:none;
  transition:border-color .15s,background .15s,transform .15s;
}
a.rec-item:hover {
  border-color:var(--rust);
  background:#1d1815;
  transform:translateY(-2px);
}
[data-runtime="recommendation"] img {
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border:1px solid #0c0b0a;
  filter:grayscale(.25) contrast(1.05);
}
.rec-name {
  font-size:12px;
  font-weight:700;
  color:var(--cold);
  letter-spacing:.02em;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
}
.rec-blurb {
  font-size:10.5px;
  line-height:1.5;
  color:var(--ash-dim);
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.rec-count {
  flex:0 0 auto;
  align-self:flex-start;
  font-size:10.5px;
  letter-spacing:.1em;
  color:var(--copper-dim);
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  border-left:1px solid var(--line);
  padding-left:10px;
}
.page-main.lights-off .hero-figure {filter:brightness(.82);}
.page-main.lights-off .hero-player {background:#050404;}
.site-footer {
  border-top:1px solid var(--line);
  background:#100f0e;
  padding:18px 14px 26px;
}
.footer-disclaimer {
  max-width:1320px;
  margin:0 auto 10px;
  font-size:11px;
  line-height:1.6;
  color:#6c6862;
  text-align:justify;
}
.footer-links {
  max-width:1320px;
  margin:0 auto 10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
a.footer-link {
  font-size:11.5px;
  letter-spacing:.08em;
  padding:3px 10px;
  color:var(--ash);
  border:1px solid var(--line);
  background:#171513;
  text-decoration:none;
}
a.footer-link:hover {
  color:var(--cold);
  border-color:var(--copper-dim);
}
a[data-contract="footer-home"] {color:var(--copper);}
a[data-contract="footer-sitemap"] {color:var(--ash);}
.friend-links {
  max-width:1320px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 10px;
}
.friend-label {
  font-size:10.5px;
  letter-spacing:.16em;
  color:var(--copper-dim);
  white-space:nowrap;
  border-right:1px solid var(--line);
  padding-right:10px;
}
a.runtime-friend-link {
  font-size:11px;
  color:#7f7a73;
  text-decoration:none;
  white-space:nowrap;
}
a.runtime-friend-link:hover {
  color:var(--copper);
  text-decoration:underline;
}
@media (max-width:1080px){.hero {grid-template-columns:minmax(0,1fr);}
.hero-figure {max-width:520px;}
.hero-tagline {max-height:180px;}
.cast-wall {grid-template-columns:repeat(6,minmax(0,1fr));}
.detail-list {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:860px){.movie-title {font-size:24px;}
.cast-wall {grid-template-columns:repeat(3,minmax(0,1fr));}
.synopsis-body {grid-template-columns:minmax(0,1fr);}
.episode-list {grid-template-columns:minmax(0,1fr);}
.episode-item:nth-child(2) {border-top:0;}
.comment-columns {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;}
.rec-region {flex-wrap:wrap;}
.rec-count {border-left:0;padding-left:0;}}
@media (max-width:560px){.header-inner {padding:7px 12px;gap:10px;}
.page-main {padding:0 12px 30px;}
.hero {padding:14px 0 24px;gap:16px;}
.hero-figure {max-width:none;padding:14px 12px 12px;}
.hero-poster-wrap {width:58%;max-width:170px;}
.hero-silhouette {width:62%;height:66%;}
.hero-tagline {font-size:13px;max-height:150px;letter-spacing:.26em;}
.movie-title {font-size:21px;}
.movie-blurb {font-size:12px;}
.cast-wall {grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.cast-role {font-size:9.5px;}
.detail-list {grid-template-columns:minmax(0,1fr);}
.detail-row {padding:4px 0;}
.comment-columns {grid-template-columns:minmax(0,1fr);}
.comment-list + .comment-list {border-top:1px solid var(--line);margin-top:6px;padding-top:2px;}
.rec-region {padding:8px 10px;}
a.rec-item {flex:1 1 132px;max-width:none;}
.rec-strip {gap:8px;}
.timeline-card {flex:0 0 112px;}
.timeline-track {padding-left:66px;}
.timeline-rope {width:56px;}
.player-btn {font-size:10.5px;padding:4px 7px;}}
@media (max-width:380px){.cast-wall {grid-template-columns:repeat(2,minmax(0,1fr));}
a.rec-item {flex:1 1 100%;max-width:none;}
.player-range {flex:1 1 100%;}}

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}
