*, *::before, *::after {margin:0;padding:0;box-sizing:border-box}
html {scroll-behavior:smooth}
body {background:#0b0e13;color:#cfd3d8;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;line-height:1.5;font-size:14px;overflow-x:hidden}
img, video {display:block;max-width:100%;height:auto}
a {color:inherit;text-decoration:none}
button {background:none;border:none;color:inherit;font:inherit;cursor:pointer}
ol {list-style:none}
strong {color:#e63946;font-weight:700}
header {position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:1.5rem;padding:0.6rem 1.2rem;background:rgba(10,12,16,0.92);backdrop-filter:blur(8px);border-bottom:1px solid #1e2a33;flex-wrap:wrap}
a[data-contract="site-name"] {font-size:1.35rem;font-weight:900;letter-spacing:0.08em;color:#f2e9d8;clip-path:polygon(0 0,100% 0,96% 100%,0 92%);padding:0.2rem 1rem 0.2rem 0.4rem;text-shadow:0 0 12px rgba(230,57,70,0.4);position:relative;white-space:nowrap}
a[data-contract="site-name"]::after {content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:linear-gradient(90deg,#e63946,transparent)}
.categories-nav {display:flex;gap:0.4rem;flex-wrap:wrap;margin-left:auto;align-items:center}
a.runtime-category {color:#a8b3bd;font-size:0.9rem;padding:0.2rem 0.7rem;border:1px solid #2a3640;clip-path:polygon(8px 0,100% 0,100% 100%,0 100%,0 8px);background:#141a20;transition:all 0.2s;white-space:nowrap;letter-spacing:0.05em}
a.runtime-category:hover {color:#f2e9d8;border-color:#e63946;background:#1d242c}
main {max-width:1400px;margin:0 auto;padding:0 1rem 2rem}
section {margin-bottom:0.5rem}
.prologue-player {padding:1.5rem 0 0.5rem;position:relative}
.player-shell {max-width:1100px;margin:0 auto;background:#0d1117;border:1px solid #2a3640;position:relative;box-shadow:0 0 40px rgba(0,0,0,0.6);clip-path:polygon(0 0,98% 0,100% 100%,2% 100%)}
.player-shell video {width:100%;aspect-ratio:16/9;background:#000;object-fit:cover}
.player-controls {display:flex;gap:0.2rem;padding:0.4rem 0.6rem;background:#141a20;border-top:1px solid #2a3640;flex-wrap:wrap}
.player-controls button {font-size:0.8rem;padding:0.2rem 0.5rem;color:#a8b3bd;border:1px solid #2a3640;background:#0d1117;transition:background 0.2s}
.player-controls button:hover {background:#1d242c;color:#f2e9d8}
.lights-off .prologue-player {background:#000;padding-top:0;padding-bottom:0}
.lights-off .player-shell {max-width:100%;border:none}
.lights-off main>section:not(.prologue-player), .lights-off header {opacity:0.15;transition:opacity 0.4s}
.lights-off .player-controls {background:#000;border-color:#111}
.theater-mode .player-shell {max-width:100%}
.movie-info-panel {display:grid;grid-template-columns:240px minmax(0,1fr);gap:0;background:linear-gradient(145deg,#11161d,#0d1218);border:1px solid #2a3640;position:relative;clip-path:polygon(0 0,100% 0,100% 97%,0 100%);box-shadow:0 8px 24px rgba(0,0,0,0.5)}
.movie-info-panel::before {content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#e63946,transparent,#e63946)}
.poster-column {padding:1.2rem;display:flex;align-items:flex-start;justify-content:center;background:rgba(0,0,0,0.25)}
.poster-wrapper {width:100%;position:relative}
.detail-poster {width:100%;aspect-ratio:2/3;object-fit:cover;border:1px solid #2a3640;clip-path:polygon(0 0,100% 0,100% 94%,0 100%);filter:grayscale(20%) contrast(1.1)}
.info-column {padding:1.2rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:0.8rem}
.movie-title-shard {font-size:1.8rem;font-weight:900;color:#f2e9d8;line-height:1.2;letter-spacing:0.02em;transform:skewX(-2deg);text-shadow:3px 3px 0 rgba(230,57,70,0.25);border-left:4px solid #e63946;padding-left:0.8rem}
.tagline-shard {font-size:0.95rem;color:#8a97a3;font-style:italic;letter-spacing:0.04em;border-bottom:1px solid #1e2a33;padding-bottom:0.6rem}
.block-title {font-size:1.1rem;color:#f2e9d8;display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;letter-spacing:0.1em}
.block-title::before {content:"";width:1.2rem;height:1.2rem;background:linear-gradient(135deg,#e63946,transparent);clip-path:polygon(0 0,100% 0,0 100%)}
.sharp {transform:skewX(-8deg)}
.synopsis-block {padding:0.4rem 0}
.synopsis-line {font-size:0.9rem;color:#b0b8c0;line-height:1.7;margin-bottom:0.4rem;text-align:justify}
.synopsis-line::first-letter {color:#e63946;font-weight:700}
.cast-block {padding:0.4rem 0}
.cast-grid {display:flex;gap:0.6rem;flex-wrap:wrap}
.cast-card {display:flex;flex-direction:column;align-items:center;gap:0.2rem;padding:0.5rem 0.4rem;background:rgba(20,26,32,0.5);border:1px solid #1e2a33;width:90px;transition:border-color 0.2s}
.cast-card:hover {border-color:#e63946}
.actor-portrait {width:70px;height:70px;background:#1d242c;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);position:relative;overflow:hidden;border:1px solid #2a3640}
.actor-portrait::before {content:"";position:absolute;inset:0;background:linear-gradient(135deg,#2a3640,#141a20);}
.actor-portrait[data-actor="陆雅雯"]::before {background:radial-gradient(circle at 30% 30%,#5a4a3a,#141a20)}
.actor-portrait[data-actor="沈翊辰"]::before {background:radial-gradient(circle at 70% 40%,#3a4a5a,#141a20)}
.actor-portrait[data-actor="陈默然"]::before {background:radial-gradient(circle at 50% 60%,#4a3a4a,#141a20)}
.actor-name {font-size:0.85rem;font-weight:700;color:#f2e9d8}
.actor-role {font-size:0.75rem;color:#8a97a3}
.episode-status-block {padding:0.4rem 0}
.status-meta {display:flex;gap:1rem;flex-wrap:wrap;align-items:center;font-size:0.9rem;color:#a8b3bd}
.total-episodes, .current-episode, .episode-progress {background:#141a20;padding:0.2rem 0.6rem;border-left:2px solid #e63946;font-size:0.85rem}
.episode-progress {color:#f2e9d8}
.details-block {padding:0.4rem 0}
.detail-list {display:grid;grid-template-columns:repeat(2,1fr);gap:0.25rem 1rem}
.detail-item {display:flex;gap:0.4rem;padding:0.25rem 0;border-bottom:1px dashed #1e2a33;font-size:0.85rem}
.detail-item dt {color:#8a97a3;min-width:4.5em;white-space:nowrap}
.detail-item dd {color:#cfd3d8}
.rating-high {color:#e63946;font-weight:900;font-size:1.2rem;text-shadow:0 0 8px rgba(230,57,70,0.5)}
.timeline-section {padding:1.2rem;background:#0d1117;border:1px solid #2a3640;margin-top:0.5rem;position:relative;clip-path:polygon(0 0,100% 0,100% 96%,0 100%)}
.timeline-section .block-title {margin-bottom:1rem}
.timeline-list {position:relative;padding-left:1.5rem;display:grid;grid-template-columns:repeat(2,1fr);gap:0.8rem 2rem}
.timeline-list::before {content:"";position:absolute;left:0.6rem;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#e63946,#2a3640,transparent)}
.timeline-item {position:relative;padding-left:1rem;display:flex;flex-direction:column;gap:0.2rem}
.timeline-item::before {content:"";position:absolute;left:-1.5rem;top:0.3rem;width:10px;height:10px;background:#e63946;clip-path:polygon(50% 0,100% 100%,0 100%);transform:rotate(45deg);border:1px solid #f2e9d8}
.timecode {font-family:"Courier New",monospace;font-size:0.8rem;color:#e63946;letter-spacing:0.05em;font-weight:700}
.timeline-label {font-size:0.9rem;color:#b0b8c0;line-height:1.5}
.episodes-section {padding:1.2rem;background:#0d1117;border:1px solid #2a3640;margin-top:0.5rem}
.episodes-section .block-title {margin-bottom:0.8rem}
.episode-scroll {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.8rem}
.episode-card {background:#141a20;border:1px solid #1e2a33;padding:0.8rem;display:flex;flex-direction:column;gap:0.3rem;position:relative;transition:border-color 0.2s;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}
.episode-card:hover {border-color:#e63946}
.episode-number {font-size:2rem;font-weight:900;color:#e63946;line-height:1;opacity:0.6;font-family:"Courier New",monospace;position:absolute;top:0.4rem;right:0.6rem}
.episode-title {font-size:1.1rem;color:#f2e9d8;font-weight:700;letter-spacing:0.05em}
.episode-summary {font-size:0.85rem;color:#8a97a3;line-height:1.5;flex:1}
.duration {font-size:0.8rem;color:#e63946;font-weight:600;letter-spacing:0.1em;border-top:1px dashed #2a3640;padding-top:0.3rem;margin-top:0.2rem}
.comments-section {padding:1.2rem;background:#0d1117;border:1px solid #2a3640;margin-top:0.5rem}
.comments-section .block-title {margin-bottom:0.8rem}
.comments-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.8rem}
.comment-card {background:#141a20;border:1px solid #1e2a33;padding:0.8rem;display:flex;flex-direction:column;gap:0.4rem;border-top:2px solid #e63946}
.comment-author {font-size:0.9rem;font-weight:700;color:#f2e9d8;letter-spacing:0.05em}
.comment-author::before {content:"▸";color:#e63946;margin-right:0.3rem}
.comment-text {font-size:0.85rem;color:#a8b3bd;line-height:1.6}
.recommendation-region {padding:1.2rem 0;margin-top:0.5rem}
.recommendation-region .block-title {margin-bottom:0.8rem}
.recommendation-row {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.8rem}
a[data-runtime="recommendation"] {background:#141a20;border:1px solid #1e2a33;padding:0.5rem;display:flex;flex-direction:column;gap:0.4rem;transition:all 0.2s;position:relative;clip-path:polygon(0 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%)}
a[data-runtime="recommendation"]:hover {border-color:#e63946;transform:translateY(-2px);background:#1a2129}
a[data-runtime="recommendation"] img {width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid #1e2a33;filter:brightness(0.85) contrast(1.1)}
a[data-runtime="recommendation"] span[data-runtime="name"] {font-size:0.95rem;font-weight:700;color:#f2e9d8;line-height:1.3}
a[data-runtime="recommendation"] span[data-runtime="blurb"] {font-size:0.8rem;color:#8a97a3;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
footer {background:#0d1117;border-top:1px solid #2a3640;padding:1.2rem;display:flex;flex-direction:column;gap:0.8rem;max-width:1400px;margin:0 auto}
.disclaimer {font-size:0.8rem;color:#6a7680;line-height:1.6;padding:0.6rem;background:#141a20;border-left:2px solid #e63946}
.friend-links {display:flex;flex-wrap:wrap;gap:0.4rem 0.8rem;align-items:center}
.friend-link-label {color:#8a97a3;font-size:0.85rem;white-space:nowrap}
a.runtime-friend-link {font-size:0.85rem;color:#8a97a3;text-decoration:underline dotted;text-decoration-color:#2a3640;transition:color 0.2s}
a.runtime-friend-link:hover {color:#e63946;text-decoration-color:#e63946}
.footer-links {display:flex;gap:1.2rem;padding-top:0.6rem;border-top:1px solid #1e2a33}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {color:#a8b3bd;font-size:0.9rem;text-decoration:none;transition:color 0.2s}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {color:#e63946}
@media (max-width:1024px){.movie-info-panel {grid-template-columns:200px minmax(0,1fr)}
.detail-list {grid-template-columns:1fr}
.timeline-list {grid-template-columns:1fr}
.episode-scroll {grid-template-columns:repeat(2,minmax(0,1fr))}
.comments-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
.recommendation-row {grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:768px){header {padding:0.5rem 0.8rem;gap:0.8rem}
a[data-contract="site-name"] {font-size:1.1rem}
.categories-nav {margin-left:0;width:100%;justify-content:flex-start}
.movie-info-panel {grid-template-columns:1fr}
.poster-column {padding:0.8rem;justify-content:flex-start}
.poster-wrapper {width:180px}
.info-column {padding:0.8rem}
.movie-title-shard {font-size:1.4rem}
.cast-grid {gap:0.4rem}
.cast-card {width:80px}
.episode-scroll {grid-template-columns:1fr}
.comments-grid {grid-template-columns:1fr}
.recommendation-row {grid-template-columns:1fr 1fr}
.timeline-list {padding-left:1.2rem}
.detail-list {grid-template-columns:1fr 1fr}}
@media (max-width:480px){main {padding:0 0.6rem}
.prologue-player {padding-top:0.8rem}
.player-shell {max-width:100%}
.player-controls {gap:0.1rem}
.player-controls button {font-size:0.7rem;padding:0.2rem 0.3rem}
.recommendation-row {grid-template-columns:1fr}
.detail-list {grid-template-columns:1fr}
.timeline-list {grid-template-columns:1fr}
.footer-links {flex-direction:column;gap:0.4rem}
.status-meta {gap:0.4rem;flex-direction:column;align-items:flex-start}}
.play, .progress, .volume, .mute, .speed, .pip, .fullscreen, .theater, .light {pointer-events:auto}
.player .data-player-action:focus {outline:1px solid #e63946}
.fullscreen video {width:100vw;height:100vh;object-fit:contain}
.pip video {object-fit:fill}
.theater-mode .player-shell {max-width:100%}
.lights-off {background:#000}
.lights-off .movie-info-panel {box-shadow:none}
.lights-off .episode-card, .lights-off .comment-card, .lights-off a[data-runtime="recommendation"] {opacity:0.2}
.lights-off .prologue-player .player-controls {position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:200;background:rgba(0,0,0,0.8)}
.lights-off .player-controls button {opacity:1}
img, video {max-width:100%}
.poster-wrapper img {height:auto}
.episode-scroll, .comments-grid, .recommendation-row {min-width:0}
.movie-info-panel {overflow:hidden}
.prologue-player, .movie-info-panel, .timeline-section, .episodes-section, .comments-section, .recommendation-region {min-width:0}
body {min-width:320px}

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}
