:root {
  --paper:#f4f0e6;
  --paper-warm:#efe9db;
  --ink:#221f1c;
  --ink-soft:#4a453e;
  --ink-faint:#8b8377;
  --wash:#c9d2d8;
  --wash-deep:#aeb9c2;
  --accent:#8c1f1f;
  --accent-soft:#a83a3a;
  --rule:#c8c0b0;
  --serif:"Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;
  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Heiti SC",Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,monospace;
}
*, *::before, *::after {
  box-sizing:border-box;
  margin:0;
  padding:0;
}
html {
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body {
  font-family:var(--sans);
  font-size:14px;
  line-height:1.45;
  letter-spacing:.01em;
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    radial-gradient(circle at 18% 12%, rgba(174,185,194,.20), transparent 42%),
    radial-gradient(circle at 82% 78%, rgba(174,185,194,.16), transparent 46%),
    repeating-linear-gradient(0deg, rgba(120,130,140,.045) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(120,130,140,.035) 0 1px, transparent 1px 4px);
  background-attachment:fixed;
  overflow-x:hidden;
}
img, video {
  display:block;
  max-width:100%;
}
ul, ol, dl {
  list-style:none;
}
a {
  color:var(--ink-soft);
  text-decoration:none;
}
button, input, select {
  font:inherit;
  color:inherit;
}
h1, h2, h3 {
  font-weight:600;
  line-height:1.2;
}
h2 {
  font-size:15px;
  letter-spacing:.06em;
}
.site-header {
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 14px;
  padding:8px 16px;
  background:rgba(244,240,230,.94);
  backdrop-filter:blur(3px);
  border-bottom:1px solid var(--rule);
}
a[data-contract="site-name"] {
  font-family:var(--serif);
  font-size:19px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
}
a[data-contract="site-name"]:hover {
  color:var(--accent);
}
.category-bar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 10px;
  min-width:0;
  flex:1 1 auto;
}
a.runtime-category {
  display:inline-block;
  font-size:12px;
  letter-spacing:.08em;
  color:var(--ink-soft);
  text-decoration:none;
  white-space:nowrap;
  padding:1px 7px 2px;
  border:1px solid var(--rule);
  border-radius:2px;
  background:linear-gradient(180deg, rgba(255,255,255,.5), rgba(233,226,212,.5));
  transition:color .15s, border-color .15s, background .15s;
}
a.runtime-category:hover {
  color:var(--accent);
  border-color:var(--accent-soft);
  background:rgba(140,31,31,.06);
}
.page-main {
  display:block;
  max-width:1180px;
  margin:0 auto;
  padding:10px 16px 4px;
}
.movie-overview.manuscript-sheet {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,230px) minmax(0,1fr);
  gap:18px 22px;
  align-items:start;
  padding:20px 22px 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(246,241,230,.75)),
    repeating-linear-gradient(180deg, transparent 0 27px, rgba(140,150,160,.16) 27px 28px);
  border:1px solid var(--rule);
  border-radius:2px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.7) inset,
    0 10px 24px -18px rgba(40,45,55,.55);
}
.movie-overview.manuscript-sheet::before {
  content:"";
  position:absolute;
  left:9px;
  top:0;
  bottom:0;
  width:1px;
  background:var(--accent-soft);
  opacity:.32;
}
.poster-column {
  min-width:0;
  align-self:start;
}
.poster-frame {
  position:relative;
  width:100%;
  border:1px solid var(--rule);
  background:var(--paper-warm);
  padding:5px;
  box-shadow:0 6px 16px -12px rgba(40,45,55,.7);
}
.poster-frame::after {
  content:"";
  position:absolute;
  inset:5px;
  pointer-events:none;
  box-shadow:0 0 0 1px rgba(255,255,255,.35) inset;
}
.poster-frame img {
  width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  object-fit:cover;
  display:block;
  filter:saturate(.94) contrast(1.03);
}
.overview-body {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.manuscript-title {
  position:relative;
  font-family:var(--serif);
  font-size:31px;
  font-weight:700;
  letter-spacing:.05em;
  line-height:1.12;
  color:var(--ink);
  transform:rotate(-1.1deg);
  transform-origin:left center;
  text-shadow:0 1px 0 rgba(255,255,255,.7);
}
.manuscript-title::after {
  content:"";
  position:absolute;
  left:2px;
  right:auto;
  bottom:-6px;
  width:min(66%,260px);
  height:2px;
  background:linear-gradient(90deg, var(--accent-soft), rgba(168,58,58,0));
  opacity:.55;
}
.manuscript-tagline {
  font-family:var(--serif);
  font-size:15px;
  font-style:italic;
  letter-spacing:.04em;
  color:var(--accent);
  transform:rotate(-.5deg);
  padding-left:2px;
}
.seo-note {
  font-size:12.5px;
  line-height:1.55;
  color:var(--ink-soft);
  text-align:justify;
  padding:7px 9px;
  border-left:2px solid var(--wash-deep);
  background:rgba(201,210,216,.22);
}
.player-shell {
  position:relative;
  width:100%;
  margin-top:4px;
  background:#141311;
  border:1px solid #2c2a26;
  border-radius:2px;
  overflow:hidden;
}
.player-shell video {
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  background:#000;
}
.player-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 10px;
  padding:7px 9px;
  background:linear-gradient(180deg, #1d1b18, #141311);
  border-top:1px solid #302d29;
  font-size:11.5px;
  color:#d9d3c7;
}
.player-controls button {
  font-size:11.5px;
  letter-spacing:.04em;
  padding:3px 9px;
  color:#e6e0d4;
  background:#26241f;
  border:1px solid #3b3730;
  border-radius:2px;
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s;
}
.player-controls button:hover {
  background:#332f28;
  border-color:#5a5348;
}
.player-controls button.is-active, .player-controls button.play {
  color:#fff;
  background:var(--accent);
  border-color:var(--accent-soft);
}
.player-controls label {
  display:flex;
  align-items:center;
  gap:5px;
  color:#b8b1a4;
  white-space:nowrap;
}
.player-controls label span {
  letter-spacing:.05em;
}
.player-controls input[type="range"] {
  -webkit-appearance:none;
  appearance:none;
  height:3px;
  background:#4a453d;
  border-radius:2px;
  cursor:pointer;
}
.control-progress {
  flex:1 1 140px;
  min-width:120px;
}
.control-progress input[type="range"] {
  width:100%;
}
.control-volume {
  flex:0 1 96px;
}
.control-volume input[type="range"] {
  width:100%;
}
.player-controls input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none;
  appearance:none;
  width:11px;
  height:11px;
  border-radius:50%;
  background:var(--accent-soft);
  border:1px solid #efe9db;
}
.player-controls input[type="range"]::-moz-range-thumb {
  width:11px;
  height:11px;
  border-radius:50%;
  background:var(--accent-soft);
  border:1px solid #efe9db;
}
.control-speed select {
  font-size:11.5px;
  padding:2px 4px;
  color:#e6e0d4;
  background:#26241f;
  border:1px solid #3b3730;
  border-radius:2px;
  cursor:pointer;
}
.player-shell.theater-mode {
  width:100%;
  max-width:none;
}
.player-shell.lights-off {
  background:#000;
}
.player-shell.lights-off .player-controls {
  background:#0b0a09;
}
.episode-status {
  margin-top:2px;
}
.status-line {
  font-size:12px;
  letter-spacing:.04em;
  color:var(--ink-soft);
  padding:4px 0 5px;
  border-bottom:1px solid var(--rule);
}
.status-total, .status-current {
  font-family:var(--serif);
  font-size:14px;
  font-weight:700;
  color:var(--accent);
  padding:0 1px;
}
.timeline-block, .episodes-block, .comments-block, .recommend-grid, .cast-strip, .synopsis-block, .details-grid {
  margin-top:12px;
  padding-top:9px;
  border-top:1px solid var(--rule);
}
.timeline-heading, .episodes-heading, .comments-heading, .recommend-heading, .cast-heading, .synopsis-heading, .details-heading {
  font-family:var(--serif);
  font-size:15px;
  letter-spacing:.14em;
  color:var(--ink);
  margin-bottom:8px;
  padding-left:8px;
  position:relative;
}
.timeline-heading::before, .episodes-heading::before, .comments-heading::before, .recommend-heading::before, .cast-heading::before, .synopsis-heading::before, .details-heading::before {
  content:"";
  position:absolute;
  left:0;
  top:1px;
  bottom:1px;
  width:2px;
  background:var(--accent-soft);
  opacity:.7;
}
.cast-row {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(96px,1fr));
  gap:8px;
  align-items:start;
}
.cast-member {
  display:flex;
  align-items:center;
  gap:8px;
  padding:5px 7px;
  background:rgba(255,255,255,.42);
  border:1px solid var(--rule);
  border-radius:2px;
  min-width:0;
}
.cast-member::before {
  content:"";
  flex:0 0 auto;
  width:22px;
  height:22px;
  border-radius:50%;
  background:
    radial-gradient(circle at 36% 32%, rgba(255,255,255,.65), transparent 60%),
    linear-gradient(150deg, var(--wash), var(--wash-deep));
  border:1px solid rgba(110,120,130,.45);
}
.cast-name {
  font-family:var(--serif);
  font-size:14px;
  letter-spacing:.06em;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.synopsis-block {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
}
.synopsis-para {
  font-size:12.5px;
  line-height:1.52;
  color:var(--ink-soft);
  text-align:justify;
  padding-left:10px;
  border-left:1px solid var(--wash);
}
.synopsis-para:first-of-type {
  color:var(--ink);
}
.details-grid {
  display:block;
}
.detail-list {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px,1fr));
  gap:0 22px;
  align-items:start;
}
.detail-key {
  font-size:11px;
  letter-spacing:.16em;
  color:var(--ink-faint);
  padding-top:5px;
  border-top:1px solid var(--rule);
}
.detail-value {
  font-size:12.5px;
  line-height:1.4;
  color:var(--ink);
  padding-bottom:6px;
  margin-bottom:2px;
}
.timeline-list {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px,1fr));
  gap:0;
  align-items:start;
  position:relative;
}
.timeline-item {
  position:relative;
  padding:6px 12px 9px 18px;
  border-left:1px solid var(--wash-deep);
}
.timeline-item::after {
  content:"";
  position:absolute;
  left:-1px;
  bottom:0;
  width:calc(100% - 6px);
  height:1px;
  background:var(--rule);
  opacity:.55;
}
.timeline-item:nth-child(even) {
  padding-left:30px;
}
.timeline-item:nth-child(odd) {
  padding-left:18px;
}
.timeline-node {
  display:inline-block;
  font-family:var(--serif);
  font-size:11px;
  letter-spacing:.1em;
  color:var(--accent);
  background:rgba(140,31,31,.07);
  border:1px solid rgba(168,58,58,.35);
  border-radius:2px;
  padding:1px 6px 2px;
  margin-bottom:4px;
}
.timeline-label {
  font-size:12.5px;
  line-height:1.46;
  color:var(--ink-soft);
  text-align:justify;
}
.episode-track {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0, 66%);
  gap:10px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding-bottom:8px;
  scrollbar-width:thin;
}
.episode-card {
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
  padding:11px 13px 12px;
  background:linear-gradient(180deg, rgba(255,255,255,.6), rgba(243,238,227,.7));
  border:1px solid var(--rule);
  border-radius:2px;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
}
.episode-number {
  font-family:var(--serif);
  font-size:11.5px;
  letter-spacing:.14em;
  color:var(--accent);
}
.episode-title {
  font-family:var(--serif);
  font-size:17px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--ink);
}
.episode-summary {
  font-size:12.5px;
  line-height:1.5;
  color:var(--ink-soft);
  text-align:justify;
}
.episode-duration {
  align-self:flex-start;
  margin-top:auto;
  font-size:11px;
  letter-spacing:.08em;
  color:var(--ink-faint);
  padding-top:4px;
  border-top:1px solid var(--rule);
}
.comment-stack {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(235px,1fr));
  gap:10px;
  align-items:start;
}
.comment-card {
  position:relative;
  padding:11px 13px 12px;
  background:linear-gradient(180deg, rgba(255,255,255,.68), rgba(242,236,224,.72));
  border:1px solid var(--rule);
  border-radius:2px;
  box-shadow:0 8px 18px -16px rgba(40,45,55,.85);
}
.comment-card:nth-child(3n/**/+2) {
  transform:translateY(9px) rotate(-.45deg);
}
.comment-card:nth-child(3n) {
  transform:translateY(-5px) rotate(.4deg);
}
.comment-nickname {
  display:block;
  font-family:var(--serif);
  font-size:12.5px;
  letter-spacing:.08em;
  color:var(--ink);
  margin-bottom:5px;
}
.comment-nickname::before {
  content:"「";
  color:var(--ink-faint);
}
.comment-nickname::after {
  content:"」";
  color:var(--ink-faint);
}
.comment-quote {
  font-size:12.5px;
  line-height:1.5;
  color:var(--ink-soft);
  text-align:justify;
  padding-left:9px;
  border-left:2px solid var(--accent-soft);
}
.recommend-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  gap:10px;
  align-items:start;
}
.recommend-heading {
  grid-column:1 / -1;
  margin-bottom:0;
}
a.recommend-card {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
  padding:6px 6px 8px;
  color:var(--ink);
  text-decoration:none;
  background:rgba(255,255,255,.5);
  border:1px solid var(--rule);
  border-radius:2px;
  transition:border-color .16s, background .16s, transform .16s;
}
a.recommend-card:hover {
  border-color:var(--accent-soft);
  background:rgba(140,31,31,.05);
  transform:translateY(-2px);
}
[data-runtime="recommendation"] img {
  display:block;
  width:100%;
  max-width:100%;
  aspect-ratio:16 / 10;
  height:auto;
  object-fit:cover;
  background:var(--wash-deep);
  border:1px solid var(--rule);
  filter:saturate(.94) contrast(1.02);
}
[data-runtime="recommendation"] [data-runtime="name"] {
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.05em;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
[data-runtime="recommendation"] [data-runtime="blurb"] {
  font-size:11.5px;
  line-height:1.45;
  color:var(--ink-faint);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.site-footer {
  max-width:1180px;
  margin:16px auto 0;
  padding:12px 16px 26px;
  border-top:1px solid var(--rule);
}
.footer-nav {
  display:flex;
  flex-wrap:wrap;
  gap:4px 14px;
  margin-bottom:8px;
}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {
  font-size:12px;
  letter-spacing:.08em;
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .15s, border-color .15s;
}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {
  color:var(--accent);
  border-bottom-color:var(--accent-soft);
}
.friend-links {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 12px;
  padding:7px 0 9px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.friend-links-label {
  font-family:var(--serif);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--ink);
  white-space:nowrap;
}
a.runtime-friend-link {
  font-size:11.5px;
  letter-spacing:.03em;
  color:var(--ink-faint);
  text-decoration:none;
  white-space:nowrap;
  transition:color .15s;
}
a.runtime-friend-link:hover {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:2px;
}
.site-disclaimer {
  margin-top:9px;
  font-size:11px;
  line-height:1.5;
  letter-spacing:.02em;
  color:var(--ink-faint);
  text-align:justify;
}
@media (max-width:900px){.movie-overview.manuscript-sheet {
    grid-template-columns:minmax(0,190px) minmax(0,1fr);
    gap:14px 16px;
    padding:16px 16px 18px;
  }
.manuscript-title {
    font-size:26px;
  }}
@media (max-width:720px){.movie-overview.manuscript-sheet {
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    padding:14px 13px 16px;
  }
.poster-column {
    max-width:210px;
  }
.manuscript-title {
    font-size:23px;
    transform:rotate(-.7deg);
  }
.episode-track {
    grid-auto-columns:minmax(0, 82%);
  }
.cast-row {
    grid-template-columns:repeat(auto-fit, minmax(84px,1fr));
  }}
@media (max-width:520px){body {
    font-size:13.5px;
  }
.site-header {
    padding:7px 12px;
  }
a[data-contract="site-name"] {
    font-size:17px;
  }
.page-main {
    padding:8px 12px 2px;
  }
.poster-column {
    max-width:180px;
  }
.manuscript-title {
    font-size:20px;
  }
.manuscript-tagline {
    font-size:13.5px;
  }
.episode-track {
    grid-auto-columns:minmax(0, 88%);
  }
.comment-card:nth-child(3n/**/+2), .comment-card:nth-child(3n) {
    transform:none;
  }
.timeline-item, .timeline-item:nth-child(even), .timeline-item:nth-child(odd) {
    padding-left:16px;
  }}
@media (max-width:380px){.detail-list {
    grid-template-columns:minmax(0,1fr);
  }
.cast-row {
    grid-template-columns:repeat(auto-fit, minmax(76px,1fr));
  }}

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}
