:root {
  --ink:#0a1420;
  --void:#050a12;
  --steel:#0f2233;
  --steel-2:#15304a;
  --blue:#2b6d9c;
  --blue-lit:#6fb4e0;
  --blue-dim:#3d5f7a;
  --red:#8e1f2c;
  --red-lit:#c84553;
  --red-deep:#5c1119;
  --bone:#dfe8ef;
  --bone-dim:#9fb2c1;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,"Courier New",monospace;
  --sans:"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
}
*, *::before, *::after {box-sizing:border-box;}
html, body {margin:0;padding:0;}
html {
  background:var(--void);
  -webkit-text-size-adjust:100%;
}
body {
  font-family:var(--mono);
  font-size:13px;
  line-height:1.5;
  color:var(--bone);
  background:
    linear-gradient(180deg,#05101b 0%,#050a12 40%,#050a12 100%);
  background-attachment:fixed;
  min-height:100vh;
  overflow-x:hidden;
}
img {display:block;max-width:100%;}
ul, ol, dl, dd {margin:0;padding:0;list-style:none;}
h1, h2, h3, p {margin:0;}
a {color:var(--blue-lit);text-decoration:none;}
button, input {font:inherit;color:inherit;}
.site-header {
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(5,12,20,.92);
  border-bottom:1px solid var(--steel-2);
  backdrop-filter:blur(6px);
}
.header-inner {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 18px;
  padding:8px 14px;
  max-width:1440px;
  margin:0 auto;
}
a[data-contract="site-name"] {
  font-family:var(--sans);
  font-weight:800;
  font-size:15px;
  letter-spacing:.06em;
  color:var(--bone);
  white-space:nowrap;
  text-decoration:none;
  border-left:3px solid var(--red);
  padding-left:8px;
}
a[data-contract="site-name"]:hover {color:var(--red-lit);}
.category-nav {
  display:flex;
  flex-wrap:wrap;
  gap:4px 6px;
  align-items:center;
}
a.runtime-category {
  display:inline-block;
  white-space:nowrap;
  font-size:11px;
  letter-spacing:.04em;
  color:var(--blue-lit);
  text-decoration:none;
  border:1px solid var(--steel-2);
  background:rgba(21,48,74,.5);
  padding:2px 8px;
  border-radius:2px;
}
a.runtime-category:hover {
  color:var(--bone);
  border-color:var(--red);
  background:rgba(142,31,44,.35);
}
.page-main {
  max-width:1440px;
  margin:0 auto;
  padding:0 14px 28px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.block-heading {
  font-family:var(--sans);
  font-weight:800;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bone);
  margin:0 0 8px;
  padding-left:9px;
  border-left:3px solid var(--red);
  line-height:1.3;
}
.movie-overview {
  display:grid;
  grid-template-columns:minmax(0,220px) minmax(0,1fr);
  gap:18px;
  align-items:start;
  padding:18px 16px;
  background:
    linear-gradient(180deg,rgba(15,34,51,.85),rgba(5,12,20,.9)),
    repeating-linear-gradient(90deg,rgba(43,109,156,.10) 0 1px,transparent 1px 44px),
    repeating-linear-gradient(0deg,rgba(43,109,156,.10) 0 1px,transparent 1px 44px);
  border:1px solid var(--steel-2);
  border-top:3px solid var(--blue);
}
.poster-column {
  align-self:start;
  display:block;
}
.main-poster {
  width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  object-fit:cover;
  border:1px solid var(--blue-dim);
  box-shadow:0 0 0 1px rgba(5,10,18,.9),0 8px 26px rgba(0,0,0,.6);
  filter:saturate(.85) contrast(1.05);
}
.overview-info {
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
}
.overview-heading {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-bottom:10px;
  border-bottom:1px solid var(--steel-2);
}
.movie-title {
  font-family:var(--sans);
  font-weight:800;
  font-size:clamp(20px,3.4vw,30px);
  line-height:1.1;
  letter-spacing:.02em;
  color:var(--bone);
}
.movie-tagline {
  font-size:12px;
  color:var(--red-lit);
  letter-spacing:.03em;
}
.movie-seo {
  font-size:12px;
  line-height:1.62;
  color:var(--bone-dim);
  max-width:70ch;
}
.hero-meta-chips {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:2px;
}
.meta-chip {
  font-size:11px;
  letter-spacing:.03em;
  padding:2px 8px;
  color:var(--blue-lit);
  background:rgba(21,48,74,.6);
  border:1px solid var(--steel-2);
  border-radius:2px;
  white-space:nowrap;
}
.player-wrapper {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:6px;
  border:1px solid var(--blue-dim);
  background:#02060b;
  padding:6px;
}
.player-wrapper video {
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  background:#000;
  object-fit:contain;
}
.player-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px;
  padding:6px;
  background:rgba(15,34,51,.75);
  border-top:1px solid var(--steel-2);
}
.ctrl-btn {
  flex:0 0 auto;
  cursor:pointer;
  font-size:11px;
  letter-spacing:.04em;
  padding:3px 9px;
  color:var(--bone);
  background:rgba(43,109,156,.22);
  border:1px solid var(--blue-dim);
  border-radius:2px;
}
.ctrl-btn:hover {
  color:#fff;
  background:rgba(142,31,44,.55);
  border-color:var(--red-lit);
}
.ctrl-btn:active {transform:translateY(1px);}
.ctrl-range {
  flex:1 1 90px;
  min-width:80px;
  height:4px;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background:linear-gradient(90deg,var(--blue) 0%,var(--steel-2) 100%);
  border:1px solid var(--steel-2);
  border-radius:2px;
}
.ctrl-range::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:10px;height:14px;
  background:var(--red-lit);
  border:1px solid var(--red-deep);
  border-radius:1px;
  cursor:pointer;
}
.ctrl-range::-moz-range-thumb {
  width:10px;height:14px;
  background:var(--red-lit);
  border:1px solid var(--red-deep);
  border-radius:1px;
  cursor:pointer;
}
.player-wrapper.is-playing video {outline:1px solid rgba(43,109,156,.5);}
.player-wrapper.is-theater {
  position:fixed;
  inset:0;
  z-index:200;
  margin:0;
  padding:10px;
  background:#000;
  border-color:var(--red);
  border-radius:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.player-wrapper.is-theater video {max-height:82vh;object-fit:contain;}
.player-wrapper.is-dimmed video {filter:brightness(.42) saturate(.7);}
.player-wrapper.is-dimmed::after {
  content:"LIGHT OFF";
  position:absolute;
  top:14px;left:14px;
  font-size:10px;
  letter-spacing:.2em;
  color:var(--red-lit);
  pointer-events:none;
}
.ctrl-btn.play {}
.ctrl-btn.pause {}
.ctrl-btn.mute {}
.ctrl-btn.speed {}
.ctrl-btn.pip {}
.ctrl-btn.fullscreen {}
.ctrl-btn.theater {}
.ctrl-btn.light {}
.ctrl-btn.click {background:rgba(142,31,44,.6);border-color:var(--red-lit);}
.ctrl-btn.input {}
.ctrl-range.progress {}
.ctrl-range.volume {}
.player-wrapper .player {}
.player-wrapper .timeupdate {}
.synopsis-block {
  padding-top:10px;
  border-top:1px solid var(--steel-2);
}
.synopsis-text {
  font-size:12px;
  line-height:1.72;
  color:var(--bone-dim);
  max-width:78ch;
}
.synopsis-text + .synopsis-text {margin-top:7px;}
.cast-block {
  padding-top:10px;
  border-top:1px solid var(--steel-2);
}
.cast-row {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:8px;
}
.cast-card {
  position:relative;
  display:flex;
  flex-direction:column;
  align-self:start;
  background:linear-gradient(180deg,rgba(21,48,74,.6),rgba(5,10,18,.9));
  border:1px solid var(--steel-2);
  overflow:hidden;
}
.cast-avatar {
  position:relative;
  width:100%;
  aspect-ratio:3 / 4;
  background:
    repeating-linear-gradient(135deg,rgba(43,109,156,.22) 0 3px,transparent 3px 7px),
    radial-gradient(circle at 50% 34%,rgba(111,180,224,.35),transparent 62%),
    linear-gradient(180deg,#15304a,#0a1420);
}
.cast-avatar::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(5,10,18,0) 34%,rgba(5,10,18,.95) 100%);
}
.cast-name {
  position:relative;
  z-index:2;
  font-family:var(--sans);
  font-weight:700;
  font-size:12px;
  letter-spacing:.04em;
  color:var(--bone);
  padding:0 7px;
  margin-top:-20px;
  line-height:1.3;
}
.cast-keyword {
  position:relative;
  z-index:2;
  font-size:10px;
  letter-spacing:.02em;
  color:var(--red-lit);
  padding:2px 7px 7px;
  line-height:1.35;
}
.cast-card:hover {
  border-color:var(--red);
  box-shadow:0 0 0 1px rgba(142,31,44,.5);
}
.episode-status {
  padding-top:10px;
  border-top:1px solid var(--steel-2);
}
.status-line {
  font-size:12px;
  color:var(--bone-dim);
  margin-bottom:6px;
}
.status-track {
  position:relative;
  width:100%;
  height:8px;
  background:rgba(21,48,74,.7);
  border:1px solid var(--steel-2);
  overflow:hidden;
}
.status-fill {
  display:block;
  height:100%;
  width:66.6%;
  background:repeating-linear-gradient(90deg,var(--red) 0 6px,var(--red-deep) 6px 10px);
}
.details-block {
  padding-top:10px;
  border-top:1px solid var(--steel-2);
}
.details-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:1px;
  background:var(--steel-2);
  border:1px solid var(--steel-2);
}
.detail-item {
  display:flex;
  flex-wrap:wrap;
  gap:2px 8px;
  align-items:baseline;
  background:rgba(10,20,32,.92);
  padding:5px 8px;
}
.detail-key {
  font-size:10px;
  letter-spacing:.08em;
  color:var(--blue-dim);
  flex:0 0 auto;
}
.detail-value {
  font-size:11.5px;
  color:var(--bone);
  margin:0;
  flex:1 1 auto;
  min-width:0;
}
.timeline-section {
  padding:14px 16px;
  background:rgba(8,18,29,.7);
  border:1px solid var(--steel-2);
}
.timeline-list {
  display:flex;
  flex-direction:column;
  gap:0;
  border-left:2px solid var(--red-deep);
  margin-left:2px;
}
.timeline-item {
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:6px 0 6px 12px;
  position:relative;
  border-bottom:1px dashed rgba(61,95,122,.35);
}
.timeline-item:last-child {border-bottom:none;}
.timeline-item::before {
  content:"";
  position:absolute;
  left:-7px;
  top:12px;
  width:6px;height:6px;
  background:var(--red-lit);
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(92,17,25,.85);
}
.timeline-code {
  font-size:11px;
  letter-spacing:.03em;
  color:var(--blue-lit);
  white-space:nowrap;
  padding-top:1px;
}
.timeline-label {
  font-size:12px;
  line-height:1.55;
  color:var(--bone-dim);
  min-width:0;
}
.episodes-section {
  padding:14px 16px;
  background:rgba(8,18,29,.7);
  border:1px solid var(--steel-2);
}
.episode-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
}
.episode-card {
  display:block;
  padding:8px 10px;
  background:rgba(15,34,51,.55);
  border:1px solid var(--steel-2);
  border-left:3px solid var(--blue);
  align-self:start;
  transition:background .15s ease,border-color .15s ease;
}
.episode-card:hover {
  background:rgba(92,17,25,.55);
  border-color:var(--red);
  border-left-color:var(--red-lit);
}
.episode-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  margin-bottom:3px;
}
.episode-number {
  font-family:var(--sans);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--blue-lit);
}
.episode-duration {
  font-size:10px;
  letter-spacing:.04em;
  color:var(--red-lit);
  white-space:nowrap;
}
.episode-title {
  font-family:var(--sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--bone);
  margin-bottom:3px;
}
.episode-summary {
  font-size:11px;
  line-height:1.6;
  color:var(--bone-dim);
  padding-left:12px;
  border-left:1px solid rgba(61,95,122,.5);
}
.comments-section {
  padding:14px 16px;
  background:rgba(8,18,29,.7);
  border:1px solid var(--steel-2);
}
.comment-stack {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:10px;
  align-items:start;
}
.comment-note {
  align-self:start;
  padding:9px 11px;
  border:1px solid var(--steel-2);
  box-shadow:3px 4px 0 rgba(0,0,0,.45);
  transform:rotate(-1deg);
}
.comment-note:nth-child(even) {
  transform:rotate(1.1deg);
  background:linear-gradient(180deg,rgba(21,48,74,.92),rgba(10,20,32,.95));
  border-color:var(--blue-dim);
}
.comment-note:nth-child(odd) {
  transform:rotate(-.8deg);
  background:linear-gradient(180deg,rgba(5,12,20,.96),rgba(15,34,51,.75));
}
.comment-note:nth-child(3n) {
  transform:rotate(.6deg);
  background:linear-gradient(180deg,rgba(92,17,25,.42),rgba(10,20,32,.95));
  border-color:rgba(142,31,44,.7);
}
.comment-nickname {
  font-family:var(--sans);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--red-lit);
  margin-bottom:4px;
}
.comment-text {
  font-size:11.5px;
  line-height:1.62;
  color:var(--bone-dim);
}
.recommend-region {
  padding:14px 16px;
  border:1px solid var(--steel-2);
}
.region-heartbeat {
  background:
    repeating-linear-gradient(90deg,rgba(43,109,156,.09) 0 1px,transparent 1px 40px),
    linear-gradient(180deg,#0d2a45,#08131f);
  border-color:var(--blue-dim);
}
.region-ethics {
  background:linear-gradient(180deg,#dbe3ea,#c4cfd8);
  border-color:#9fb2c1;
}
.region-posthumous {
  background:
    repeating-linear-gradient(0deg,rgba(0,0,0,.10) 0 1px,transparent 1px 30px),
    linear-gradient(180deg,#5c1119,#2c0810);
  border-color:var(--red-lit);
}
.region-ethics .block-heading {color:#0a1420;border-left-color:var(--red);}
.region-ethics .recommend-name {color:#0a1420;}
.region-ethics .recommend-blurb {color:#3d4d5c;}
.region-posthumous .block-heading {color:#f3dde0;}
.recommend-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:8px;
  align-items:start;
}
a.recommend-card {
  display:flex;
  flex-direction:column;
  gap:4px;
  align-self:start;
  padding:6px;
  text-decoration:none;
  border:1px solid transparent;
  background:rgba(5,10,18,.28);
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
a.recommend-card:hover {
  border-color:var(--red-lit);
  background:rgba(142,31,44,.28);
  transform:translateY(-2px);
}
[data-runtime="recommendation"] img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16 / 10;
  object-fit:cover;
  border:1px solid rgba(0,0,0,.35);
}
a.recommend-card .recommend-pic {filter:saturate(.9);}
.recommend-name {
  font-family:var(--sans);
  font-size:12px;
  font-weight:700;
  letter-spacing:.03em;
  line-height:1.35;
  color:var(--bone);
}
.recommend-blurb {
  font-size:10.5px;
  line-height:1.55;
  color:var(--bone-dim);
}
.site-footer {
  margin-top:26px;
  border-top:2px solid var(--red-deep);
  background:linear-gradient(180deg,#050c15,#02060b);
}
.footer-inner {
  max-width:1440px;
  margin:0 auto;
  padding:16px 14px 24px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-nav {
  display:flex;
  flex-wrap:wrap;
  gap:6px 16px;
  align-items:center;
}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--blue-lit);
  text-decoration:none;
  border-bottom:1px solid transparent;
}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {
  color:var(--red-lit);
  border-bottom-color:var(--red-lit);
}
.footer-disclaimer {
  font-size:10.5px;
  line-height:1.65;
  color:var(--blue-dim);
  max-width:92ch;
}
.friend-links {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 10px;
  padding-top:8px;
  border-top:1px dashed rgba(61,95,122,.4);
}
.friend-links-label {
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.14em;
  color:var(--red-lit);
  white-space:nowrap;
}
a.runtime-friend-link {
  font-size:11px;
  color:var(--bone-dim);
  text-decoration:none;
  white-space:nowrap;
  border-bottom:1px dotted rgba(61,95,122,.7);
}
a.runtime-friend-link:hover {
  color:var(--blue-lit);
  border-bottom-color:var(--blue-lit);
}
@media (max-width:1080px){.movie-overview {
    grid-template-columns:minmax(0,190px) minmax(0,1fr);
  }}
@media (max-width:860px){.movie-overview {
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }
.poster-column {
    max-width:190px;
  }
.episode-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
@media (max-width:680px){body {font-size:12.5px;}
.page-main {padding:0 10px 22px;gap:16px;}
.movie-overview {padding:14px 11px;}
.timeline-item {
    grid-template-columns:minmax(0,1fr);
    gap:3px;
  }
.timeline-code {padding-top:0;}
.episode-grid {
    grid-template-columns:minmax(0,1fr);
  }
.comment-stack {
    grid-template-columns:minmax(0,1fr);
  }
.comment-note {transform:none;}
.comment-note:nth-child(even), .comment-note:nth-child(odd), .comment-note:nth-child(3n) {transform:none;}
.recommend-list {
    grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  }}
@media (max-width:460px){.header-inner {gap:6px 12px;padding:7px 10px;}
.poster-column {max-width:150px;}
.cast-row {
    grid-template-columns:repeat(auto-fill,minmax(84px,1fr));
  }
.details-list {
    grid-template-columns:minmax(0,1fr);
  }
.recommend-list {
    grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  }
.player-controls {gap:4px;padding:5px;}
.ctrl-btn {font-size:10px;padding:3px 7px;}
.ctrl-range {flex:1 1 100%;min-width:0;}}
@media (min-width:1280px){.episode-grid {
    grid-template-columns:repeat(3,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}
