*, *::before, *::after {box-sizing:border-box;margin:0;padding:0}
:root {
--ink:#1c2430;
--ink-soft:#3d4a5c;
--muted:#6b7887;
--faint:#9aa5b1;
--paper:#eef1f4;
--paper-2:#e4e8ee;
--surface:#f6f8fa;
--line:#c7cfd9;
--line-soft:#d8dee6;
--chalk:#f3ede2;
--wood:#c69a6a;
--wood-deep:#a87c4d;
--blue-grey:#5b7186;
--shadow:0 1px 0 rgba(28,36,48,.06);
--fs-xs:11px;
--fs-sm:12.5px;
--fs-base:13.5px;
--fs-md:15px;
--fs-lg:18px;
--fs-xl:23px;
--fs-2xl:30px;
}
html {-webkit-text-size-adjust:100%}
body {
background:var(--paper);
background-image:
linear-gradient(rgba(91,113,134,.045) 1px,transparent 1px),
linear-gradient(90deg,rgba(91,113,134,.035) 1px,transparent 1px);
background-size:100% 26px,26px 100%;
color:var(--ink);
font-family:"Helvetica Neue","Hiragino Sans GB","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
font-size:var(--fs-base);
line-height:1.62;
letter-spacing:.01em;
-webkit-font-smoothing:antialiased;
}
img {display:block;max-width:100%;height:auto}
a {color:inherit;text-decoration:none}
button {font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ol {list-style:none}
h2, h3 {font-weight:500;line-height:1.3}
::-moz-selection {background:rgba(198,154,106,.32)}
::selection {background:rgba(198,154,106,.32)}
.site-header {
position:sticky;top:0;z-index:40;
background:rgba(28,36,48,.94);
border-bottom:1px solid rgba(199,207,217,.18);
-webkit-backdrop-filter:blur(6px);
backdrop-filter:blur(6px);
}
.header-shell {
display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px;
max-width:1220px;margin:0 auto;
padding:9px 18px 10px;
}
.brand-row {display:flex;align-items:baseline;gap:12px;flex:0 0 auto}
a[data-contract="site-name"].site-name {
color:var(--chalk);
font-size:var(--fs-lg);
font-weight:400;
letter-spacing:.24em;
text-decoration:none;
line-height:1.1;
}
a[data-contract="site-name"].site-name:hover {color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.category-strip {
display:flex;flex-wrap:wrap;align-items:center;gap:0 2px;
flex:1 1 260px;min-width:0;
}
a.runtime-category {
display:inline-block;
padding:2px 9px;
color:#b9c4d0;
font-size:var(--fs-sm);
letter-spacing:.08em;
white-space:nowrap;
text-decoration:none;
border-left:1px solid rgba(199,207,217,.22);
}
a.runtime-category:first-child {border-left:0}
a.runtime-category:hover {color:var(--wood);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.page-main {
max-width:1220px;
margin:0 auto;
padding:18px 18px 34px;
display:flex;flex-direction:column;gap:20px;
}
.section-heading, .block-heading, .recommend-title {
font-size:var(--fs-base);
font-weight:500;
letter-spacing:.34em;
color:var(--ink-soft);
text-transform:none;
}
.section-heading {
display:flex;align-items:center;gap:12px;
margin:0 0 12px;
padding-bottom:6px;
border-bottom:1px solid var(--line);
}
.section-heading::before {content:"";width:10px;height:10px;border:1px solid var(--wood-deep);flex:0 0 auto}
.block-heading {
margin:0 0 8px;
font-size:var(--fs-xs);
letter-spacing:.3em;
color:var(--muted);
}
.block-heading::after {content:"";display:block;width:26px;height:1px;background:var(--wood-deep);margin-top:5px}
.overview-section {position:relative}
.overview-section::before {
content:"花 名 册 · 2 0 0 9 — 2 0 1 9 · 高 三 一 班 · 苏 晚 棠 · 顾 锦 程 · 林 砚 舟 · 陈 素 云 · 苏 念";
position:absolute;top:6px;right:0;left:auto;
width:min(46%,420px);
font-size:var(--fs-sm);
line-height:2.1;
letter-spacing:.42em;
color:rgba(91,113,134,.13);
writing-mode:vertical-rl;
text-orientation:upright;
white-space:nowrap;
pointer-events:none;
overflow:hidden;
max-height:520px;
z-index:0;
}
.overview-shell {
position:relative;z-index:1;
display:grid;
grid-template-columns:minmax(0,238px) minmax(0,1fr);
gap:22px;
align-items:start;
}
.overview-poster-col {min-width:0}
.poster-frame {
border:1px solid var(--line);
background:var(--paper-2);
padding:6px;
box-shadow:var(--shadow);
}
.poster-frame img {
width:100%;height:auto;
aspect-ratio:9 / 16;
object-fit:cover;
display:block;
filter:saturate(.82) contrast(1.04);
}
.overview-info-col {min-width:0;display:flex;flex-direction:column;gap:14px}
.overview-title {
font-size:var(--fs-2xl);
font-weight:300;
letter-spacing:.14em;
line-height:1.24;
color:var(--ink);
padding-bottom:8px;
border-bottom:2px solid var(--ink);
}
.overview-tagline {
font-size:var(--fs-md);
letter-spacing:.1em;
color:var(--wood-deep);
border-left:2px solid var(--wood);
padding-left:10px;
line-height:1.6;
}
.overview-seo {
font-size:var(--fs-sm);
line-height:1.85;
color:var(--ink-soft);
max-width:74ch;
padding-bottom:10px;
border-bottom:1px solid var(--line-soft);
}
.player-panel {
position:relative;
width:100%;
background:#10161e;
border:1px solid #2a3441;
}
.player-panel video {
display:block;
width:100%;
height:auto;
aspect-ratio:16 / 9;
background:#0a0e13;
}
.player-controls {
display:flex;flex-wrap:wrap;gap:1px;
padding:1px;
background:#0c1219;
border-top:1px solid #2a3441;
}
.player-controls button {
flex:1 1 auto;
min-width:64px;
padding:7px 6px;
font-size:var(--fs-xs);
letter-spacing:.14em;
color:#aeb9c6;
background:#151d27;
border:1px solid transparent;
transition:background .15s ease,color .15s ease;
}
.player-controls button:hover {background:#202b39;color:var(--chalk)}
.player-controls button:focus-visible {outline:1px solid var(--wood);outline-offset:-1px}
.ctrl-play {color:var(--chalk)}
.player-controls button.is-active, .player-controls button.play, .player-controls button.progress, .player-controls button.volume, .player-controls button.mute, .player-controls button.speed, .player-controls button.pip, .player-controls button.fullscreen, .player-controls button.theater, .player-controls button.light, .player-controls button.click {
background:#26313f;color:var(--wood);border-color:rgba(198,154,106,.45)
}
.player-panel.is-theater {
border-color:var(--wood-deep);
box-shadow:0 0 0 1px rgba(198,154,106,.28);
}
body.lights-off {background:#0d1219;background-image:none}
body.lights-off .page-main {background:transparent}
body.lights-off .overview-info-col, body.lights-off .overview-poster-col {background:transparent}
body.lights-off .overview-section::before {color:rgba(198,154,106,.1)}
body.lights-off .overview-title {color:var(--chalk);border-bottom-color:var(--wood)}
body.lights-off .overview-seo, body.lights-off .synopsis-paragraph, body.lights-off .timeline-label, body.lights-off .episode-summary, body.lights-off .comment-text, body.lights-off .status-line, body.lights-off .detail-key, body.lights-off .detail-value {color:#c3ccd6}
body.lights-off .overview-tagline {color:var(--wood)}
body.lights-off .episode-card, body.lights-off .comment-card, body.lights-off .cast-card, body.lights-off .details-list, body.lights-off .recommend-region, body.lights-off .timeline-section, body.lights-off .episodes-section, body.lights-off .comments-section {background:#141b24;border-color:#2a3441}
body.lights-off .recommend-item img {filter:saturate(.8) contrast(1.05)}
body.lights-off .site-header {background:#0a0e13}
.cast-block {margin-top:2px}
.cast-strip {
display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;
}
.cast-card {
display:grid;
grid-template-columns:auto minmax(0,1fr);
grid-template-areas:"av name" "av role";
align-items:center;
column-gap:9px;
row-gap:1px;
padding:7px 12px 7px 8px;
background:var(--surface);
border:1px solid var(--line-soft);
border-left:2px solid var(--blue-grey);
align-self:start;
}
.cast-card-wide {flex:1 1 178px;min-width:0}
.cast-card-narrow {flex:0 1 132px;min-width:0}
.cast-avatar {
grid-area:av;
width:32px;height:32px;
border-radius:50%;
background:
radial-gradient(circle at 50% 34%,#d9c4a6 0 38%,transparent 39%),
linear-gradient(160deg,#7b8c9d,#4e5f70);
border:1px solid rgba(28,36,48,.28);
box-shadow:inset 0 0 0 2px rgba(246,248,250,.6);
}
.cast-card:nth-child(3n) .cast-avatar {background:radial-gradient(circle at 50% 34%,#e0cdb2 0 38%,transparent 39%),linear-gradient(160deg,#8a9aab,#5b6c7e)}
.cast-card:nth-child(3n/**/+2) .cast-avatar {background:radial-gradient(circle at 50% 34%,#d2bb9a 0 38%,transparent 39%),linear-gradient(160deg,#6d7f92,#435465)}
.cast-name {
grid-area:name;
font-size:var(--fs-base);
letter-spacing:.12em;
color:var(--ink);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cast-role {
grid-area:role;
font-size:var(--fs-xs);
letter-spacing:.06em;
color:var(--muted);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.synopsis-block {
padding-top:2px;
border-top:1px solid var(--line-soft);
}
.synopsis-paragraph {
font-size:var(--fs-sm);
line-height:1.9;
color:var(--ink-soft);
text-indent:2em;
margin-bottom:5px;
max-width:78ch;
}
.synopsis-paragraph:last-child {margin-bottom:0}
.episode-status-block {
padding-top:2px;border-top:1px solid var(--line-soft);
}
.status-line {
font-size:var(--fs-sm);
letter-spacing:.08em;
color:var(--ink-soft);
display:inline-block;
margin:0 14px 3px 0;
padding-bottom:2px;
border-bottom:1px solid var(--line-soft);
}
.status-line:first-of-type {color:var(--wood-deep)}
.details-block {padding-top:2px;border-top:1px solid var(--line-soft)}
.details-list {
display:grid;
grid-template-columns:repeat(auto-fill,minmax(188px,1fr));
gap:0 18px;
border-top:1px solid var(--line-soft);
}
.detail-row {
display:flex;align-items:baseline;gap:8px;
padding:5px 0;
border-bottom:1px solid var(--line-soft);
min-width:0;
}
.detail-key {
flex:0 0 auto;
font-size:var(--fs-xs);
letter-spacing:.16em;
color:var(--faint);
}
.detail-value {
flex:1 1 auto;min-width:0;
font-size:var(--fs-sm);
color:var(--ink-soft);
letter-spacing:.02em;
}
.timeline-section {
background:var(--surface);
border:1px solid var(--line-soft);
border-top:2px solid var(--blue-grey);
padding:14px 16px 16px;
}
.timeline-list {
position:relative;
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:0 26px;
padding-left:22px;
}
.timeline-list::before {
content:"";position:absolute;top:4px;bottom:6px;left:7px;width:1px;
background:linear-gradient(180deg,var(--blue-grey),var(--line));
}
.timeline-item {
position:relative;
padding:0 0 12px 4px;
min-width:0;
}
.timeline-item:nth-child(odd) {padding-right:8px}
.timeline-dot {
position:absolute;left:-20px;top:6px;
width:8px;height:8px;
border-radius:50%;
background:var(--paper);
border:1px solid var(--blue-grey);
}
.timeline-item:nth-child(3n) .timeline-dot {border-color:var(--wood-deep);background:var(--wood)}
.timeline-time {
display:block;
font-size:var(--fs-sm);
letter-spacing:.2em;
color:var(--wood-deep);
font-variant-numeric:tabular-nums;
}
.timeline-label {
font-size:var(--fs-sm);
line-height:1.8;
color:var(--ink-soft);
padding-top:1px;
}
.timeline-item:nth-child(even) .timeline-time {transform:translateX(10px)}
.timeline-item:nth-child(even) .timeline-label {transform:translateX(10px)}
.episodes-section {
background:var(--surface);
border:1px solid var(--line-soft);
border-top:2px solid var(--blue-grey);
padding:14px 16px 6px;
}
.episode-grid {
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:0 24px;
}
.episode-card {
display:grid;
grid-template-columns:auto minmax(0,1fr);
grid-template-areas:"num title" ". summary" ". dur";
column-gap:10px;
padding:9px 0 10px;
border-bottom:1px solid var(--line-soft);
min-width:0;
}
.episode-card:nth-child(even) {transform:translateY(14px)}
.episode-number {
grid-area:num;
font-size:var(--fs-xs);
letter-spacing:.14em;
color:var(--paper);
background:var(--blue-grey);
padding:1px 6px;
align-self:start;
font-variant-numeric:tabular-nums;
}
.episode-title {
grid-area:title;
font-size:var(--fs-md);
font-weight:400;
letter-spacing:.1em;
color:var(--ink);
line-height:1.4;
}
.episode-summary {
grid-area:summary;
margin-top:3px;
padding-left:12px;
border-left:1px solid var(--line);
font-size:var(--fs-xs);
line-height:1.75;
color:var(--muted);
}
.episode-duration {
grid-area:dur;
margin-top:4px;
font-size:var(--fs-xs);
letter-spacing:.1em;
color:var(--faint);
font-variant-numeric:tabular-nums;
}
.comments-section {
background:var(--surface);
border:1px solid var(--line-soft);
border-top:2px solid var(--blue-grey);
padding:14px 16px 16px;
}
.comments-masonry {column-count:2;column-gap:20px}
.comment-card {
break-inside:avoid;-webkit-column-break-inside:avoid;
page-break-inside:avoid;
display:inline-block;width:100%;
margin:0 0 12px;
padding:9px 11px;
background:var(--paper);
border:1px solid var(--line-soft);
border-left:2px solid var(--line);
}
.comment-card-short {
border-left-color:var(--wood-deep);
padding:12px 13px;
}
.comment-card-long {
font-size:var(--fs-xs);
background:var(--paper-2);
border-left-color:var(--blue-grey);
}
.comment-text {
font-size:var(--fs-sm);
line-height:1.82;
color:var(--ink-soft);
}
.comment-card-short .comment-text {
font-size:var(--fs-md);
line-height:1.7;
letter-spacing:.01em;
color:var(--ink);
}
.comment-card-long .comment-text {
font-size:var(--fs-xs);
line-height:1.78;
color:var(--muted);
}
.comment-nickname {
display:block;
margin-top:6px;
padding-top:5px;
border-top:1px solid var(--line-soft);
font-size:var(--fs-xs);
letter-spacing:.14em;
color:var(--faint);
text-align:right;
}
.recommend-region {
background:var(--surface);
border:1px solid var(--line-soft);
border-top:2px solid var(--blue-grey);
padding:12px 16px 14px;
}
.recommend-title {
font-size:var(--fs-sm);
letter-spacing:.3em;
color:var(--ink-soft);
margin-bottom:9px;
padding-bottom:6px;
border-bottom:1px solid var(--line);
}
.recommend-strip {
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:10px;
align-items:start;
}
.recommend-item {
display:grid;
grid-template-columns:minmax(0,1fr);
gap:5px;
align-content:start;
padding:6px 7px;
background:var(--paper);
border:1px solid var(--line-soft);
border-bottom:2px solid var(--blue-grey);
transition:border-color .15s ease,background .15s ease;
}
.recommend-item:hover {border-bottom-color:var(--wood);background:#fbfcfd}
.recommend-item img {
width:100%;
height:auto;
aspect-ratio:16 / 10;
object-fit:cover;
background:var(--paper-2);
filter:saturate(.85) contrast(1.03);
}
.recommend-item [data-runtime="name"] {
font-size:var(--fs-sm);
letter-spacing:.06em;
color:var(--ink);
line-height:1.45;
display:block;
}
.recommend-item [data-runtime="blurb"] {
font-size:var(--fs-xs);
line-height:1.65;
color:var(--muted);
display:block;
}
.recommend-item:hover [data-runtime="name"] {color:var(--wood-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.site-footer {
max-width:1220px;
margin:0 auto;
padding:14px 18px 30px;
border-top:1px solid var(--line);
}
.footer-disclaimer {
font-size:var(--fs-xs);
line-height:1.8;
color:var(--faint);
max-width:88ch;
margin-bottom:10px;
}
.footer-nav {
display:flex;flex-wrap:wrap;gap:6px 16px;
margin-bottom:10px;
}
a[data-contract="footer-home"], a[data-contract="footer-sitemap"] {
font-size:var(--fs-sm);
letter-spacing:.14em;
color:var(--ink-soft);
text-decoration:none;
border-bottom:1px solid transparent;
}
a[data-contract="footer-home"]:hover, a[data-contract="footer-sitemap"]:hover {color:var(--wood-deep);text-decoration:underline;text-underline-offset:3px}
.friend-links {
display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;
padding-top:9px;
border-top:1px solid var(--line-soft);
}
.friend-links-label {
font-size:var(--fs-xs);
letter-spacing:.2em;
color:var(--faint);
flex:0 0 auto;
}
a.runtime-friend-link {
font-size:var(--fs-xs);
letter-spacing:.06em;
color:var(--muted);
text-decoration:none;
border-bottom:1px solid var(--line);
padding-bottom:1px;
}
a.runtime-friend-link:hover {color:var(--wood-deep);text-decoration:underline;text-underline-offset:3px}
a:focus-visible, button:focus-visible {outline:1px solid var(--wood-deep);outline-offset:2px}
@media (max-width:1080px){.overview-section::before {width:min(38%,320px);font-size:11px;max-height:440px}
.recommend-strip {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.overview-shell {grid-template-columns:minmax(0,196px) minmax(0,1fr);gap:18px}
.overview-title {font-size:26px}
.timeline-list {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.comments-masonry {column-count:2;column-gap:16px}}
@media (max-width:760px){.overview-shell {grid-template-columns:minmax(0,1fr);gap:16px}
.overview-poster-col {max-width:230px}
.overview-section::before {display:none}
.timeline-list {grid-template-columns:minmax(0,1fr)}
.timeline-item:nth-child(even) .timeline-time, .timeline-item:nth-child(even) .timeline-label {transform:none}
.timeline-item:nth-child(odd) {padding-right:0}
.episode-grid {grid-template-columns:minmax(0,1fr)}
.episode-card:nth-child(even) {transform:none}
.comments-masonry {column-count:1}
.recommend-strip {grid-template-columns:repeat(2,minmax(0,1fr))}
.player-controls button {min-width:56px;flex:1 1 30%}}
@media (max-width:480px){.page-main {padding:14px 12px 26px;gap:16px}
.header-shell {padding:8px 12px 9px;gap:4px 12px}
.overview-title {font-size:22px;letter-spacing:.1em}
.overview-tagline {font-size:14px}
.details-list {grid-template-columns:minmax(0,1fr)}
.recommend-strip {grid-template-columns:minmax(0,1fr)}
.cast-card-wide, .cast-card-narrow {flex:1 1 100%}
.site-footer {padding:12px 12px 26px}
.player-controls button {flex:1 1 44%;min-width:0}}

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}
