:root {
  --moss:#3f5540;
  --moss-deep:#26382a;
  --moss-stain:#2c4433;
  --rock:#585d59;
  --rock-light:#8a908a;
  --paper:#d9cfa6;
  --paper-dim:#b3a878;
  --ink:#141713;
  --ink-soft:#20241f;
  --mud:#3a3427;
  --line:rgba(217,207,166,.22);
  --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
}
*, *::before, *::after {
  box-sizing:border-box;
}
html {
  -webkit-text-size-adjust:100%;
  background:var(--ink);
}
body {
  margin:0;
  font-family:var(--font);
  font-weight:300;
  font-stretch:condensed;
  letter-spacing:.02em;
  color:var(--paper);
  background:
    radial-gradient(120% 90% at 80% -10%,rgba(63,85,64,.38),transparent 60%),
    radial-gradient(100% 80% at 0% 110%,rgba(44,68,51,.42),transparent 65%),
    var(--ink);
  line-height:1.55;
  overflow-x:hidden;
}
img, video {
  display:block;
  max-width:100%;
}
a {
  color:inherit;
  text-decoration:none;
}
h1, h2, h3, p, ul, ol, dl, dd {
  margin:0;
}
ul, ol {
  padding:0;
  list-style:none;
}
button, input, select {
  font:inherit;
  color:inherit;
}
body.lights-off {
  background:#070907;
}
body.lights-off .movie-overview {
  filter:brightness(.82);
}
.site-header {
  position:sticky;
  top:0;
  z-index:30;
  background:linear-gradient(180deg,rgba(14,17,13,.96),rgba(14,17,13,.82));
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(3px);
}
.header-inner {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem 1.1rem;
  padding:.45rem clamp(.7rem,3vw,1.6rem);
}
.site-brand {
  font-size:1.02rem;
  font-weight:600;
  letter-spacing:.14em;
  color:var(--paper);
  text-transform:uppercase;
  padding:.15rem .55rem .15rem 0;
  border-right:1px solid var(--line);
}
.site-brand:hover {
  color:#f0e6be;
}
.categories-bar {
  display:flex;
  flex-wrap:wrap;
  gap:.3rem .35rem;
  flex:1 1 60%;
  min-width:0;
}
.runtime-category {
  white-space:nowrap;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--rock-light);
  padding:.22rem .58rem;
  border:1px solid rgba(138,144,138,.3);
  background:rgba(88,93,89,.12);
  clip-path:polygon(0 0,100% 0,100% 70%,94% 100%,0 100%);
}
.runtime-category:hover {
  color:var(--ink);
  background:var(--paper-dim);
  border-color:var(--paper-dim);
}
.page-main {
  display:block;
  width:100%;
  padding:0 0 1.4rem;
}
.section-heading {
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.34em;
  color:var(--paper);
  margin:0 0 .5rem;
  padding-left:.55rem;
  border-left:3px solid var(--moss);
  text-transform:uppercase;
}
.folded-map-hero {
  position:relative;
  margin:.7rem clamp(.7rem,3vw,1.6rem) 1.1rem;
  overflow:hidden;
  border:1px solid rgba(217,207,166,.16);
  background:#0d100c;
  clip-path:polygon(0 1.2%,2.4% 0,18% .8%,38% 0,60% 1%,80% .3%,100% 1.4%,99.2% 32%,100% 62%,99% 88%,100% 99%,72% 100%,44% 99.2%,20% 100%,0 98.6%,.6% 66%,0 34%);
}
.hero-media {
  position:relative;
  width:100%;
  overflow:hidden;
}
.hero-map {
  width:100%;
  height:auto;
  min-height:14rem;
  max-height:58vh;
  object-fit:cover;
  filter:saturate(.72) contrast(1.04) brightness(.82) hue-rotate(-6deg);
}
.hero-stain-edge {
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(90% 70% at 8% 50%,rgba(44,68,51,.85),rgba(44,68,51,.28) 46%,transparent 72%),
    radial-gradient(70% 60% at 96% 8%,rgba(58,52,39,.7),transparent 70%),
    radial-gradient(120% 90% at 50% 118%,rgba(38,56,42,.9),transparent 62%),
    linear-gradient(180deg,rgba(20,23,19,.55),transparent 35%,rgba(20,23,19,.72));
  mix-blend-mode:multiply;
}
.hero-tagline {
  position:absolute;
  right:0;
  bottom:0;
  margin:0;
  max-width:min(30rem,68%);
  padding:.75rem 1rem .8rem 1.2rem;
  font-size:clamp(.92rem,2.4vw,1.28rem);
  font-weight:600;
  letter-spacing:.05em;
  line-height:1.4;
  text-align:right;
  color:var(--ink);
  background:linear-gradient(100deg,rgba(217,207,166,.94),rgba(179,168,120,.9));
  clip-path:polygon(7% 0,100% 4%,100% 100%,0 100%,2% 42%);
  box-shadow:-6px -6px 0 rgba(20,23,19,.4);
}
.movie-overview {
  margin:0 clamp(.7rem,3vw,1.6rem);
  padding:.9rem clamp(.7rem,2.4vw,1.3rem) 1.1rem;
  background:
    linear-gradient(180deg,rgba(63,85,64,.16),rgba(20,24,19,.6) 60%),
    var(--ink-soft);
  border:1px solid rgba(217,207,166,.14);
  clip-path:polygon(0 0,100% .6%,99.4% 100%,0 99.2%);
}
.overview-grid {
  display:grid;
  grid-template-columns:minmax(0,15rem) minmax(0,1fr);
  gap:1.1rem 1.4rem;
  align-items:start;
}
.poster-column {
  display:flex;
  flex-direction:column;
  gap:.7rem;
  min-width:0;
}
.poster-wrap {
  width:100%;
  border:1px solid rgba(217,207,166,.2);
  background:#0b0d0a;
  line-height:0;
  clip-path:polygon(0 0,100% 1.5%,99% 100%,1% 98.5%);
}
.poster-wrap img {
  width:100%;
  height:auto;
  object-fit:cover;
  filter:saturate(.78) contrast(1.05) brightness(.9);
}
.player-wrap {
  position:relative;
  width:100%;
  min-width:0;
  border:1px solid rgba(217,207,166,.18);
  background:#050605;
}
.player-wrap video {
  display:block;
  width:100%;
  height:auto;
  background:#050605;
}
.player-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.3rem .4rem;
  padding:.4rem .45rem;
  background:linear-gradient(180deg,rgba(38,56,42,.55),rgba(14,17,13,.9));
  border-top:1px solid var(--line);
}
.pc-btn {
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.06em;
  padding:.22rem .5rem;
  border:1px solid rgba(138,144,138,.36);
  background:rgba(88,93,89,.16);
  color:var(--rock-light);
  cursor:pointer;
  clip-path:polygon(0 0,100% 0,100% 68%,92% 100%,0 100%);
}
.pc-btn:hover {
  color:var(--ink);
  background:var(--paper-dim);
  border-color:var(--paper-dim);
}
.pc-btn.is-playing, .pc-btn.is-muted, .pc-btn.is-pip, .pc-btn.is-fullscreen, .pc-btn.is-active {
  color:var(--ink);
  background:var(--paper);
  border-color:var(--paper);
}
.pc-progress {
  flex:1 1 6rem;
  min-width:4rem;
  height:.9rem;
  accent-color:var(--moss);
  cursor:pointer;
}
.pc-volume {
  flex:0 1 4.6rem;
  min-width:3rem;
  height:.9rem;
  accent-color:var(--moss);
  cursor:pointer;
}
.pc-speed {
  font-size:.7rem;
  padding:.2rem .3rem;
  background:rgba(20,24,19,.9);
  border:1px solid rgba(138,144,138,.36);
  color:var(--rock-light);
  cursor:pointer;
}
.overview-info {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.movie-title {
  font-size:clamp(1.3rem,3.4vw,1.9rem);
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.2;
  color:#efe4bb;
}
.movie-tagline {
  font-size:.84rem;
  font-weight:400;
  letter-spacing:.08em;
  color:var(--paper-dim);
  padding-bottom:.4rem;
  border-bottom:1px dashed var(--line);
}
.movie-seo {
  font-size:.82rem;
  color:var(--rock-light);
  line-height:1.62;
}
.episode-status {
  display:flex;
  flex-wrap:wrap;
  gap:.3rem .5rem;
  padding:.45rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.status-item {
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.05em;
  color:var(--paper);
  padding:.16rem .5rem;
  background:rgba(63,85,64,.4);
  border-left:2px solid var(--moss-stain);
  white-space:nowrap;
}
.synopsis-block {
  margin-top:.2rem;
}
.synopsis-para {
  font-size:.82rem;
  line-height:1.68;
  color:var(--rock-light);
  text-indent:1.6em;
}
.synopsis-para + .synopsis-para {
  margin-top:.34rem;
}
.details-block {
  margin-top:.3rem;
}
.details-list {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));
  gap:.18rem .9rem;
  border-top:1px solid var(--line);
  padding-top:.4rem;
}
.detail-row {
  display:flex;
  align-items:baseline;
  gap:.45rem;
  font-size:.76rem;
  padding:.14rem 0;
  border-bottom:1px dotted rgba(217,207,166,.14);
}
.detail-row dt {
  flex:0 0 4.2rem;
  color:var(--moss-stain);
  font-weight:500;
  letter-spacing:.05em;
  filter:brightness(2.1);
}
.detail-row dd {
  flex:1 1 auto;
  min-width:0;
  color:var(--rock-light);
  font-weight:300;
}
.cast-block {
  margin-top:.3rem;
}
.cast-strip {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem .6rem;
  padding-top:.15rem;
}
.cast-card {
  flex:0 0 auto;
  width:5.2rem;
  display:flex;
  flex-direction:column;
  gap:.16rem;
  align-items:flex-start;
}
.cast-avatar {
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  filter:grayscale(.35) saturate(.7) contrast(1.05) brightness(.88);
  border:1px solid rgba(217,207,166,.2);
  clip-path:polygon(0 4%,96% 0,100% 96%,4% 100%);
}
.cast-name {
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--paper);
}
.cast-role {
  font-size:.68rem;
  color:var(--rock-light);
  line-height:1.3;
}
.timeline-section {
  margin:1.6rem clamp(.7rem,3vw,1.6rem) .9rem;
}
.timeline-scroll {
  overflow-x:auto;
  overflow-y:hidden;
  padding:.5rem .1rem .8rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(63,85,64,.14),transparent 80%);
  scrollbar-color:var(--moss-stain) transparent;
}
.timeline-scroll::-webkit-scrollbar {
  height:6px;
}
.timeline-scroll::-webkit-scrollbar-thumb {
  background:var(--moss-stain);
}
.timeline-list {
  display:flex;
  align-items:flex-start;
  gap:0;
  min-width:max-content;
  padding:0 .3rem;
}
.timeline-node {
  position:relative;
  flex:0 0 auto;
  width:9.5rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  padding:0 1.1rem .1rem 0;
}
.timeline-node::after {
  content:"";
  position:absolute;
  top:.72rem;
  left:1.15rem;
  right:0;
  height:1px;
  background:repeating-linear-gradient(90deg,rgba(138,144,138,.55) 0 6px,transparent 6px 11px);
}
.timeline-node:last-child::after {
  display:none;
}
.tl-whistle {
  font-size:.92rem;
  line-height:1;
  color:var(--paper-dim);
  filter:drop-shadow(0 0 3px rgba(217,207,166,.35));
}
.tl-timecode {
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--moss-stain);
  filter:brightness(2.2);
}
.tl-label {
  font-size:.78rem;
  font-weight:300;
  color:var(--rock-light);
  line-height:1.4;
}
.episodes-section {
  margin:2.2rem clamp(.7rem,3vw,1.6rem) 1.2rem;
}
.episode-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));
  gap:.5rem .7rem;
  align-items:start;
}
.episode-card {
  display:flex;
  flex-direction:column;
  gap:.16rem;
  padding:.5rem .6rem .55rem;
  background:rgba(32,36,31,.82);
  border:1px solid rgba(217,207,166,.13);
  border-left:3px solid var(--moss-stain);
  clip-path:polygon(0 0,98.5% 0,100% 92%,1.5% 100%);
}
.ep-number {
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.16em;
  color:var(--paper-dim);
}
.ep-title {
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.04em;
  color:#efe4bb;
  line-height:1.3;
}
.ep-summary {
  font-size:.74rem;
  font-weight:300;
  line-height:1.55;
  color:var(--rock-light);
}
.ep-duration {
  align-self:flex-start;
  margin-top:.24rem;
  font-size:.66rem;
  letter-spacing:.08em;
  color:var(--ink);
  background:var(--paper-dim);
  padding:.05rem .38rem;
  clip-path:polygon(6% 0,100% 8%,96% 100%,0 92%);
}
.comments-section {
  margin:1.2rem clamp(.7rem,3vw,1.6rem) 1.2rem;
}
.comment-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));
  gap:.5rem .7rem;
  align-items:start;
}
.comment-card {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:.4rem;
  padding:.5rem .6rem .5rem .3rem;
  border-left:2px solid rgba(63,85,64,.85);
  background:rgba(20,24,19,.6);
}
.comment-quote {
  grid-row:1 / span 2;
  font-size:1.8rem;
  line-height:.9;
  color:var(--moss-stain);
  filter:brightness(2.3);
  font-family:Georgia,serif;
}
.comment-text {
  grid-column:2;
  font-size:.78rem;
  font-weight:300;
  line-height:1.6;
  color:var(--rock-light);
}
.comment-author {
  grid-column:2;
  margin-top:.24rem;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.08em;
  color:var(--paper-dim);
}
.comment-author::before {
  content:"— ";
}
.recommend-region {
  display:grid;
  grid-template-columns:2.1rem minmax(0,1fr);
  gap:.6rem;
  align-items:start;
  margin:.9rem clamp(.7rem,3vw,1.6rem) 0;
  padding:.55rem 0 .7rem;
  border-top:1px solid var(--line);
}
.region-title {
  grid-column:1;
  grid-row:1;
  writing-mode:vertical-rl;
  text-orientation:upright;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.24em;
  color:var(--paper);
  padding-top:.1rem;
  border-right:2px solid var(--moss-stain);
}
.region-items {
  grid-column:2;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));
  gap:.5rem .7rem;
  align-items:start;
}
.rec-item {
  display:flex;
  flex-direction:column;
  gap:.2rem;
  align-items:flex-end;
  text-align:right;
  padding:.35rem .4rem .45rem;
  background:rgba(32,36,31,.72);
  border:1px solid rgba(217,207,166,.12);
  clip-path:polygon(0 0,100% 0,100% 100%,3% 100%,0 88%);
  transition:background .18s ease,border-color .18s ease;
}
.rec-item:hover {
  background:rgba(63,85,64,.5);
  border-color:rgba(217,207,166,.34);
}
[data-runtime="recommendation"] img {
  width:100%;
  aspect-ratio:16 / 9;
  height:auto;
  object-fit:cover;
  filter:saturate(.7) contrast(1.05) brightness(.84);
}
[data-runtime="recommendation"]:hover img {
  filter:saturate(.9) contrast(1.06) brightness(.96);
}
.rec-name {
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;
  color:#efe4bb;
  line-height:1.3;
}
.rec-blurb {
  font-size:.7rem;
  font-weight:300;
  line-height:1.5;
  color:var(--rock-light);
}
.site-footer {
  margin-top:1.4rem;
  padding:1rem clamp(.7rem,3vw,1.6rem) 1.6rem;
  background:linear-gradient(180deg,rgba(38,56,42,.34),rgba(10,12,10,.9));
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.footer-disclaimer {
  font-size:.72rem;
  font-weight:300;
  line-height:1.6;
  color:var(--rock-light);
  max-width:60rem;
}
.footer-nav {
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .9rem;
}
.footer-nav a {
  font-size:.76rem;
  font-weight:500;
  letter-spacing:.08em;
  padding-bottom:.05rem;
  border-bottom:1px solid transparent;
}
a[data-contract="footer-home"] {
  color:var(--paper);
  text-decoration:none;
}
a[data-contract="footer-home"]:hover {
  color:var(--paper-dim);
  border-bottom-color:var(--paper-dim);
}
a[data-contract="footer-sitemap"] {
  color:var(--rock-light);
  text-decoration:underline;
  text-decoration-color:rgba(138,144,138,.5);
  text-underline-offset:3px;
}
a[data-contract="footer-sitemap"]:hover {
  color:var(--paper);
  text-decoration-color:var(--paper);
}
.friend-links {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.3rem .8rem;
  padding-top:.5rem;
  border-top:1px dotted rgba(217,207,166,.16);
}
.friend-links-label {
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.2em;
  color:var(--moss-stain);
  filter:brightness(2.2);
}
a.runtime-friend-link {
  font-size:.72rem;
  font-weight:300;
  color:var(--rock-light);
  text-decoration:none;
  border-bottom:1px dotted rgba(138,144,138,.45);
}
a.runtime-friend-link:hover {
  color:var(--paper-dim);
  border-bottom-color:var(--paper-dim);
}
.movie-overview.theater-mode {
  background:linear-gradient(180deg,rgba(63,85,64,.28),rgba(8,10,8,.85));
}
.movie-overview.theater-mode .player-wrap {
  border-color:var(--paper-dim);
}
@media (max-width:900px){.overview-grid {
    grid-template-columns:minmax(0,1fr);
  }
.poster-column {
    flex-direction:row;
    align-items:flex-start;
    gap:.7rem;
  }
.poster-wrap {
    flex:0 0 10rem;
  }
.player-wrap {
    flex:1 1 auto;
  }}
@media (max-width:640px){.header-inner {
    padding:.4rem .6rem;
  }
.site-brand {
    font-size:.92rem;
  }
.runtime-category {
    font-size:.72rem;
    padding:.18rem .45rem;
  }
.folded-map-hero, .movie-overview, .timeline-section, .episodes-section, .comments-section, .recommend-region {
    margin-left:.55rem;
    margin-right:.55rem;
  }
.hero-map {
    min-height:11rem;
  }
.hero-tagline {
    position:static;
    max-width:none;
    text-align:left;
    clip-path:none;
    box-shadow:none;
    padding:.6rem .7rem;
    font-size:.92rem;
  }
.poster-column {
    flex-direction:column;
  }
.poster-wrap {
    flex:0 0 auto;
    max-width:12rem;
  }
.overview-grid {
    gap:.8rem;
  }
.episode-grid, .comment-list, .region-items {
    grid-template-columns:minmax(0,1fr);
  }
.recommend-region {
    grid-template-columns:1.6rem minmax(0,1fr);
    gap:.45rem;
  }
.region-title {
    font-size:.74rem;
    letter-spacing:.18em;
  }
.timeline-node {
    width:8rem;
  }}
@media (max-width:400px){.cast-card {
    width:4.6rem;
  }
.details-list {
    grid-template-columns:minmax(0,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}
