*, *::before, *::after {box-sizing:border-box;margin:0;padding:0}
:root {color-scheme:light;--cream:#FFF9F0;--cream-dark:#F5E9D7;--butter:#FFF3D6;--milk:#FFFBF5;--caramel:#C89F7B;--caramel-dark:#8A6B4F;--cocoa:#5C4633;--ink:#3E2E23;--warm-line:#EAD9C3;--shadow:rgba(94,66,41,.08)}
html {scroll-behavior:smooth}
body {font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;background:var(--cream);color:var(--ink);line-height:1.6;font-size:14px}
img, video {display:block;max-width:100%}
ul {list-style:none}
a {color:inherit;text-decoration:none}
header {position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:rgba(255,249,240,.92);backdrop-filter:blur(8px);border-bottom:2px solid var(--warm-line)}
.site-brand {font-family:"STKaiti","KaiTi","楷体",cursive;font-size:1.6rem;font-weight:700;color:var(--caramel-dark);letter-spacing:2px;text-shadow:0 1px 0 var(--milk)}
.site-brand:hover {color:var(--cocoa)}
header nav[data-contract="categories"] {display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.runtime-category {display:inline-block;padding:6px 14px;border-radius:999px;background:var(--butter);color:var(--caramel-dark);font-size:.85rem;font-weight:500;white-space:nowrap;border:1px solid var(--warm-line);transition:background .2s,color .2s}
.runtime-category:hover {background:var(--caramel);color:var(--milk)}
main {max-width:1280px;margin:0 auto;padding:16px 20px 32px;display:flex;flex-direction:column;gap:28px}
.movie-overview-shell {display:flex;gap:24px;align-items:flex-start;background:var(--milk);border:1px solid var(--warm-line);border-radius:24px;padding:20px;box-shadow:0 4px 20px var(--shadow)}
.poster-wrapper {flex:0 0 240px;border-radius:16px;overflow:hidden;box-shadow:0 6px 18px var(--shadow)}
.main-poster-img {width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--cream-dark)}
.overview-content {flex:1 1 60%;display:flex;flex-direction:column;gap:14px;min-width:0}
.movie-title {font-family:"STKaiti","KaiTi","楷体",cursive;font-size:2rem;font-weight:700;color:var(--cocoa);line-height:1.3}
.tagline {font-size:.9rem;color:var(--caramel);letter-spacing:3px;font-style:italic;border-left:3px solid var(--caramel);padding-left:10px}
.cast-details-row {display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.cast-gallery {flex:1 1 60%;min-width:200px}
.cast-gallery .section-subtitle {margin-bottom:8px}
.cast-scroll {display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;scrollbar-color:var(--caramel) var(--cream-dark)}
.cast-scroll::-webkit-scrollbar {height:4px}
.cast-scroll::-webkit-scrollbar-thumb {background:var(--caramel);border-radius:4px}
.cast-card {flex:0 0 auto;padding:8px 16px;border-radius:999px;background:var(--cream);border:1px solid var(--warm-line);font-size:.9rem;color:var(--cocoa)}
.actor-name {white-space:nowrap}
.detail-meta {flex:0 0 auto;min-width:180px}
.meta-list {display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:.85rem}
.meta-label {color:var(--caramel-dark);font-weight:500}
.synopsis-block h2 {margin-bottom:6px}
.synopsis-block p {font-size:.92rem;color:var(--ink);opacity:.85;margin-bottom:8px}
.player-block {background:var(--cream-dark);border-radius:16px;padding:10px;border:1px solid var(--warm-line)}
.player-block video {border-radius:8px;background:#000}
.player-controls {display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.player-controls button {background:var(--milk);border:1px solid var(--warm-line);color:var(--cocoa);padding:4px 10px;border-radius:999px;font-size:.75rem;cursor:pointer;transition:background .2s}
.player-controls button:hover {background:var(--caramel);color:var(--milk)}
.player-block.theater-mode {position:fixed;inset:0;z-index:200;background:#000;border-radius:0;padding:0;display:flex;align-items:center;justify-content:center;flex-direction:column}
.player-block.theater-mode video {max-height:100vh;width:auto}
.player-block.theater-mode .player-controls {position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);border-radius:999px;padding:8px 16px}
body.light-off main {filter:brightness(.5) contrast(1.1)}
.episode-status-row {display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--caramel-dark);background:var(--butter);border-radius:12px;padding:8px 14px;margin-top:4px}
.ep-total, .ep-current, .ep-duration {white-space:nowrap}
.ep-current {font-weight:700;color:var(--cocoa)}
.timeline-section {background:var(--milk);border-radius:24px;padding:20px;border:1px solid var(--warm-line)}
.section-title {font-family:"STKaiti","KaiTi","楷体",cursive;font-size:1.4rem;color:var(--caramel-dark);margin-bottom:16px;position:relative;display:inline-block}
.section-title::after {content:"";position:absolute;left:0;bottom:-4px;width:100%;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--caramel),var(--butter))}
.timeline-chart {overflow-x:auto;padding-bottom:8px}
.timeline-list {display:flex;gap:0;min-width:640px;position:relative;padding-top:20px}
.timeline-list::before {content:"";position:absolute;top:16px;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--caramel),var(--butter),var(--caramel));border-radius:3px}
.timeline-item {flex:1;text-align:center;position:relative;padding-top:20px}
.timeline-item::before {content:"";position:absolute;top:12px;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:50%;background:var(--cream);border:3px solid var(--caramel);z-index:2}
.timeline-item:nth-child(odd)::after {content:"";position:absolute;top:16px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--butter);z-index:3}
.timecode {display:block;font-family:monospace;font-size:.75rem;color:var(--caramel);font-weight:700;letter-spacing:1px}
.label {display:block;font-size:.85rem;color:var(--ink);margin-top:2px;line-height:1.4}
.episode-list-section {background:var(--milk);border-radius:24px;padding:20px;border:1px solid var(--warm-line)}
.episode-card-list {display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:14px}
.episode-card {background:var(--cream);border-radius:16px;padding:14px 16px;border:1px solid var(--warm-line);display:flex;flex-direction:column;gap:6px;transition:transform .2s,box-shadow .2s}
.episode-card:hover {transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}
.ep-number {font-size:.75rem;color:var(--caramel);font-weight:700;letter-spacing:1px}
.ep-title {font-size:1.1rem;color:var(--cocoa);font-weight:600}
.ep-summary {font-size:.85rem;color:var(--ink);opacity:.75;flex:1}
.ep-duration {font-size:.75rem;color:var(--caramel-dark);border-top:1px solid var(--warm-line);padding-top:6px;margin-top:2px}
.episode-total-hint {background:var(--butter);border-radius:999px;padding:6px 16px;display:inline-block;font-size:.85rem;color:var(--caramel-dark);font-weight:500}
.comments-section {background:var(--milk);border-radius:24px;padding:20px;border:1px solid var(--warm-line)}
.comments-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.comment-card {background:var(--cream);border-radius:16px;padding:12px 16px;border:1px solid var(--warm-line)}
.comment-nickname {display:block;font-weight:600;color:var(--caramel-dark);margin-bottom:6px;font-size:.9rem}
.comment-text {font-size:.88rem;color:var(--ink);opacity:.85}
.recommendation-region {background:var(--milk);border-radius:24px;padding:20px;border:1px solid var(--warm-line)}
.rec-heading {font-family:"STKaiti","KaiTi","楷体",cursive;font-size:1.3rem;color:var(--caramel-dark);margin-bottom:14px;position:relative;display:inline-block}
.rec-heading::after {content:"";position:absolute;left:0;bottom:-4px;width:100%;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--caramel),var(--butter))}
.rec-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.rec-card {display:flex;flex-direction:column;gap:6px;background:var(--cream);border-radius:16px;overflow:hidden;border:1px solid var(--warm-line);transition:transform .2s,box-shadow .2s;color:var(--ink)}
.rec-card:hover {transform:translateY(-3px);box-shadow:0 6px 16px var(--shadow);color:var(--cocoa)}
.rec-card img {width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--cream-dark)}
.rec-card span[data-runtime="name"] {font-size:.95rem;font-weight:600;padding:0 12px;color:var(--cocoa)}
.rec-card span[data-runtime="blurb"] {font-size:.78rem;color:var(--caramel-dark);padding:0 12px 12px;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
footer {background:var(--cream-dark);border-top:2px solid var(--warm-line);padding:20px 24px;display:flex;flex-direction:column;gap:12px;align-items:center}
.disclaimer {font-size:.75rem;color:var(--caramel-dark);text-align:center;max-width:800px;line-height:1.5}
footer>a {font-size:.9rem;color:var(--caramel-dark);padding:4px 12px;border-radius:999px;background:var(--butter);border:1px solid var(--warm-line)}
footer>a:hover {background:var(--caramel);color:var(--milk)}
footer>a[data-contract="footer-home"], footer>a[data-contract="footer-sitemap"] {display:inline-block}
.friend-links {display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;max-width:1100px}
.friend-label {font-size:.8rem;color:var(--caramel-dark)}
.runtime-friend-link {font-size:.8rem;color:var(--caramel);padding:2px 10px;border-radius:999px;background:var(--milk);border:1px solid var(--warm-line);white-space:nowrap}
.runtime-friend-link:hover {color:var(--cocoa);background:var(--butter)}
@media (max-width:900px){.movie-overview-shell {flex-direction:column;align-items:center}
.poster-wrapper {flex:0 0 auto;width:200px}
.overview-content {width:100%}
.cast-details-row {flex-direction:column;width:100%}
.cast-gallery {width:100%}
.detail-meta {width:100%}
.meta-list {grid-template-columns:80px 1fr}}
@media (max-width:640px){header {flex-direction:column;gap:8px;padding:10px 12px}
header nav[data-contract="categories"] {justify-content:center}
.runtime-category {padding:4px 10px;font-size:.78rem}
main {padding:12px 12px 24px;gap:20px}
.movie-overview-shell {padding:14px;border-radius:18px;gap:16px}
.poster-wrapper {width:160px;flex:0 0 auto}
.movie-title {font-size:1.4rem}
.player-controls button {font-size:.7rem;padding:3px 8px}
.episode-status-row {gap:10px;font-size:.78rem}
.timeline-list {min-width:520px}
.rec-grid {grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.episode-card-list {grid-template-columns:1fr}
.comments-grid {grid-template-columns:1fr}
.friend-links {gap:6px}
.runtime-friend-link {font-size:.72rem}}
@media (max-width:480px){body {font-size:13px}
.movie-overview-shell {flex-direction:column}
.poster-wrapper {width:140px}
.cast-scroll {gap:6px}
.player-controls {gap:4px}
.player-controls button {flex:1;min-width:60px;text-align:center}
.episode-status-row {flex-direction:column;gap:4px}
.timeline-item .label {font-size:.75rem}
.rec-grid {grid-template-columns:1fr 1fr}
.rec-card span[data-runtime="blurb"] {font-size:.7rem}
footer {padding:16px 12px}
.disclaimer {font-size:.68rem}}
.light-off {background:#1a1a1a}
.light-off header, .light-off footer {background:rgba(26,26,26,.9);border-color:#333}
.light-off .movie-overview-shell, .light-off .timeline-section, .light-off .episode-list-section, .light-off .comments-section, .light-off .recommendation-region {background:#2a2a2a;border-color:#444;color:#ddd}
.light-off .movie-title, .light-off .section-title, .light-off .rec-heading, .light-off .ep-title {color:#f0e6d8}
.light-off .tagline, .light-off .meta-label, .light-off .ep-number, .light-off .timecode {color:#c89f7b}
.light-off .cast-card, .light-off .episode-card, .light-off .comment-card, .light-off .rec-card {background:#333;border-color:#555}
.light-off .rec-card span[data-runtime="name"] {color:#f0e6d8}
.light-off .rec-card span[data-runtime="blurb"] {color:#c89f7b}
.light-off .player-controls button {background:#444;border-color:#555;color:#ddd}
.player-block {width:100%}
.player-block video {width:100%;height:auto}
.movie-overview-shell {min-width:0}
.overview-content {min-width:0}
.player-block {min-width:480px}
@media (max-width:520px){.player-block {min-width:calc(100vw - 48px)}
.movie-overview-shell {padding:10px}}

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}
