Files
2026-10-28 17:27:22 +07:00

1049 lines
24 KiB
CSS

.detail-page {
background: transparent;
gap: 44px;
width: 964px;
max-width: calc(100% - 32px);
}
.detail-h5-bg,
.detail-h5-top,
.detail-h5-bar,
.detail-related-title-h5,
.detail-related-refresh {
display: none;
}
.detail-breadcrumb {
display: inline-flex;
align-items: center;
gap: 8px;
overflow: hidden;
}
.detail-breadcrumb-link {
color: #A3A3A3;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
text-decoration: none;
}
.detail-breadcrumb-sep {
color: #D4D4D4;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
}
.detail-breadcrumb-current {
color: #ec237f;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
}
.detail-action-group {
justify-content: flex-start;
align-items: center;
gap: 16px;
display: flex;
}
.detail-action {
justify-content: flex-start;
align-items: center;
gap: 10px;
display: flex;
background: none;
border: none;
cursor: pointer;
color: white;
text-decoration: none;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 21px;
padding: 0;
}
.detail-action--active {
color: white;
}
.detail-action--active .detail-action-icon {
background: #ec237f;
opacity: 1;
}
.detail-action--active .detail-action-icon img {
filter: brightness(0);
}
.detail-action-icon {
width: 30px;
height: 30px;
background: rgba(236, 35, 127, 0.10);
border-radius: 15px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.detail-action-icon img {
width: 16px;
height: 16px;
object-fit: contain;
filter: none;
}
.detail-action-sep {
width: 2px;
height: 19px;
background: rgba(255, 255, 255, 0.05);
}
.detail-comments {
align-self: stretch;
width: 100%;
padding: 24px;
background: rgba(255, 255, 255, 0.05);
overflow: hidden;
border-radius: 21px;
border: 1px solid rgba(255, 255, 255, 0.05);
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 12px;
display: flex;
box-sizing: border-box;
}
.detail-comments-head {
align-self: stretch;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
margin-bottom: 0;
}
.detail-comments-title {
color: #F5F5F5;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
}
.detail-comments-sort {
height: 32px;
padding: 0 8px;
background: rgba(255, 255, 255, 0.05);
overflow: hidden;
border-radius: 7px;
justify-content: flex-start;
align-items: center;
gap: 12px;
display: flex;
}
.detail-sort-btn {
background: none;
border: none;
cursor: pointer;
padding: 0;
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
text-decoration: none;
}
.detail-sort-btn--active {
color: #F5F5F5;
}
.detail-comment-list {
align-self: stretch;
width: 100%;
box-sizing: border-box;
}
.detail-comment {
align-self: stretch;
width: 100%;
padding: 14px 0;
overflow: hidden;
border-bottom: 1px rgba(255, 255, 255, 0.05) solid;
justify-content: flex-start;
align-items: flex-start;
gap: 12px;
display: flex;
box-sizing: border-box;
}
.detail-comment:last-of-type {
border-bottom: none;
}
.detail-comment-avatar {
width: 32px;
height: 32px;
border-radius: 16px;
object-fit: cover;
flex-shrink: 0;
}
.detail-comment-body {
flex: 1;
min-width: 0;
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 6px;
display: flex;
}
.detail-comment-name {
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
}
.detail-comment-text {
color: #F5F5F5;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.detail-comment-meta {
height: 16px;
overflow: hidden;
justify-content: flex-start;
align-items: center;
gap: 8px;
display: flex;
}
.detail-comment-time {
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
}
.detail-comment-reply-to {
color: #A3A3A3;
}
.detail-comment-replies {
width: 100%;
margin-top: 4px;
padding: 10px 12px;
background: rgba(255, 255, 255, 0.05);
border-radius: 8px;
display: flex;
flex-direction: column;
gap: 6px;
box-sizing: border-box;
}
.detail-comment-reply-item {
color: #F5F5F5;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 4px 6px;
}
.detail-comment-reply-name {
color: #A3A3A3;
}
.detail-comment-reply-text {
color: #F5F5F5;
word-break: break-word;
}
.detail-comment-reply-item[hidden] {
display: none !important;
}
.detail-comment-replies-toggle {
align-self: flex-start;
text-align: left;
padding: 0;
background: none;
border: none;
color: #ec237f;
font-size: 12px;
font-family: "Noto Sans SC", "PingFang SC", sans-serif;
font-weight: 400;
line-height: 18px;
cursor: pointer;
}
.detail-comment-replies-toggle:hover {
opacity: 0.92;
}
.detail-comments-more {
align-self: stretch;
height: 43px;
background: rgba(255, 255, 255, 0.05);
overflow: hidden;
border-radius: 7px;
justify-content: center;
align-items: center;
display: flex;
border: none;
cursor: pointer;
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
margin-top: 0;
}
.detail-comments-more[hidden] {
display: none !important;
}
.detail-related {
align-self: stretch;
width: 100%;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 9px;
display: inline-flex;
}
.detail-related-head {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.detail-related-title {
color: white;
font-size: 28px;
font-family: PingFang SC;
font-weight: 400;
line-height: 34px;
word-wrap: break-word;
}
.detail-related-desc {
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.detail-related .card-grid {
width: 100%;
margin-top: 0;
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
justify-content: stretch;
align-items: stretch;
gap: 14px 16px;
}
.detail-related .poster-card {
text-decoration: none;
color: inherit;
cursor: pointer;
}
@media (max-width: 767px) {
body.site-shell.is-detail-page {
--site-footer-margin-top: 18px;
background: #0A0A0A;
position: relative;
/* 详情页移动端使用自身的沉浸式顶部栏,不继承公共导航的占位。 */
padding-top: 0;
/* 固定操作栏的避让放在公共页脚之后,避免遮住页脚操作区。 */
padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px));
}
body.is-detail-page .site-header,
body.is-detail-page .footer-box,
body.is-detail-page .floating-action,
body.is-detail-page .download-fab,
.site-header:has(+ .detail-h5-bg) {
display: none !important;
height: 0 !important;
min-height: 0 !important;
overflow: hidden !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
}
.detail-h5-bg {
display: block;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 544px;
overflow: hidden;
z-index: 0;
pointer-events: none;
}
.detail-h5-bg-img {
width: 100%;
height: 100%;
object-fit: cover;
}
.detail-h5-bg-mask {
position: absolute;
inset: 0;
background: linear-gradient(
180deg,
rgba(0, 0, 0, 0.7) 0%,
rgba(0, 0, 0, 0.8) 55%,
#0A0A0A 100%
);
}
.detail-h5-top {
display: flex;
position: sticky;
top: 0;
left: 0;
right: 0;
z-index: 20;
min-height: 48px;
padding: env(safe-area-inset-top, 0px) 16px 0;
align-items: center;
justify-content: space-between;
gap: 12px;
box-sizing: border-box;
pointer-events: none;
}
.detail-h5-back {
pointer-events: auto;
display: flex;
width: 24px;
height: 24px;
margin: 12px 0;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.detail-h5-back img {
width: 24px;
height: 24px;
display: block;
filter: brightness(0) invert(1);
}
.detail-h5-top-actions {
pointer-events: auto;
display: flex;
align-items: center;
justify-content: flex-end;
gap: 12px;
margin: 12px 0;
flex-shrink: 0;
}
.detail-h5-top-btn {
width: 20px;
height: 20px;
padding: 0;
border: none;
background: transparent;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
text-decoration: none;
box-sizing: border-box;
}
.detail-h5-top-btn img {
width: 18px;
height: 18px;
display: block;
object-fit: contain;
filter: brightness(0) invert(1);
opacity: 0.92;
}
.detail-page.page-shell {
position: relative;
z-index: 1;
width: 100%;
max-width: 100%;
padding: 12px 16px 0;
gap: 18px;
background: transparent;
box-sizing: border-box;
}
.detail-comments,
.detail-related-desc,
.detail-related-title-pc,
.detail-breadcrumb {
display: none !important;
}
.detail-related-title-h5,
.detail-related-refresh,
.detail-h5-bar {
display: flex;
}
.detail-related {
width: 100%;
gap: 12px;
}
.detail-related-head {
width: 100%;
}
.detail-related-title {
color: white;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.detail-related-refresh {
align-items: center;
gap: 2px;
background: none;
border: none;
padding: 0;
cursor: pointer;
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
}
.detail-related-refresh img {
width: 18px;
height: 18px;
}
.detail-related .card-grid {
margin-top: 0;
width: 100%;
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
justify-content: flex-start;
align-items: flex-start;
gap: 9px;
overflow-x: auto;
overflow-y: hidden;
grid-template-columns: none !important;
scrollbar-width: none;
-webkit-overflow-scrolling: touch;
}
.detail-related .card-grid::-webkit-scrollbar {
display: none;
}
.detail-related .poster-card {
width: 98px !important;
max-width: 98px;
flex: 0 0 98px;
gap: 4px;
border-radius: 0;
background: transparent;
}
.detail-related .poster-cover {
width: 98px !important;
height: 131px !important;
padding-bottom: 0 !important;
border-radius: 6px;
overflow: hidden;
position: relative;
flex-shrink: 0;
}
.detail-related .poster-cover-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.detail-related .episode-badge,
.detail-related .episode-badge-shifted,
.detail-related .community-badge,
.detail-related .free-badge-large,
.detail-related .hot-badge-large,
.detail-related .poster-flag-badge,
.detail-related .poster-corner-badges,
.detail-related .poster-card-subtitle,
.detail-related .poster-card-heat,
.detail-related .flex-spacer {
display: none !important;
}
.detail-related .poster-card-body {
width: 100%;
gap: 4px;
padding: 0;
background: transparent;
}
.detail-related .poster-card-title {
width: 100%;
color: white;
font-size: 12px;
font-family: PingFang SC, sans-serif;
font-weight: 500;
line-height: 18px;
white-space: normal;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.detail-related .poster-card-meta {
width: 100%;
gap: 4px;
justify-content: flex-start;
align-items: flex-start;
flex-wrap: nowrap;
}
.detail-related .poster-card-tag {
color: white;
font-size: 12px;
font-weight: 400;
line-height: 18px;
background: none;
padding: 0;
height: auto;
border-radius: 0;
}
.detail-h5-bar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 30;
padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.88) 58%, #000 100%);
box-sizing: border-box;
justify-content: flex-start;
align-items: stretch;
gap: 12px;
}
.detail-h5-play {
flex: 1;
padding: 11px 24px;
background: #ec237f;
border-radius: 999px;
display: flex;
align-items: center;
justify-content: center;
color: #181818;
font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
line-height: 22px;
text-decoration: none;
text-align: center;
box-sizing: border-box;
}
}
/* Shared content blocks exported and measured from the Figma frames. */
.content-official-info,
.content-ad-stack,
.content-column-divider,
.detail-sidebar { box-sizing: border-box; }
/* Shared content blocks measured from Figma 1920 detail. */
.content-official-info {
width: 100%;
padding: 24px 30px;
background: rgba(255, 255, 255, 0.05);
border-radius: 18px;
outline: 1px solid rgba(255, 255, 255, 0.10);
outline-offset: -1px;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 18px;
color: #fff;
font-size: 14px;
font-family: PingFang SC, sans-serif;
font-weight: 400;
line-height: 20px;
overflow: hidden;
box-sizing: border-box;
}
.content-official-info p {
margin: 0;
}
.content-official-info a,
.content-official-accent {
color: #EA1E61;
text-decoration: none;
}
.content-ad-stack {
display: flex;
flex-direction: column;
align-self: stretch;
gap: 12px;
width: 100%;
}
/* 详情横幅:按素材 720×150 等比展示,避免裁切 */
.content-ad-stack a {
display: block;
position: relative;
align-self: stretch;
width: 100%;
aspect-ratio: 720 / 150;
overflow: hidden;
border-radius: 12px;
}
.content-ad-stack img {
position: absolute;
left: 0;
top: 0;
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
/* PC detail — Figma 1920 design; scales with viewport via --detail-s. */
@media (min-width: 768px) {
body.is-detail-page {
--detail-s: min(1, 100vw / 1920px);
background: #0f0f0f;
}
.detail-page.page-shell {
width: 100%;
max-width: none;
padding: calc(30px * var(--detail-s)) calc(60px * var(--detail-s));
gap: calc(30px * var(--detail-s));
align-items: stretch;
box-sizing: border-box;
}
.detail-breadcrumb {
width: 100%;
max-width: calc(1800px * var(--detail-s));
margin: 0 auto;
gap: calc(6px * var(--detail-s));
}
.detail-breadcrumb-link,
.detail-breadcrumb-sep {
color: rgba(255, 255, 255, 0.55);
font-size: calc(18px * var(--detail-s));
line-height: calc(24px * var(--detail-s));
}
.detail-breadcrumb-current {
color: #ec237f;
font-size: calc(18px * var(--detail-s));
line-height: calc(24px * var(--detail-s));
}
.detail-layout {
display: grid;
grid-template-columns: minmax(0, 1fr) calc(1px * var(--detail-s)) calc(296px * var(--detail-s));
gap: calc(36px * var(--detail-s));
justify-content: stretch;
align-items: start;
width: 100%;
max-width: calc(1800px * var(--detail-s));
margin: 0 auto;
}
.detail-main {
display: flex;
min-width: 0;
flex-direction: column;
gap: calc(30px * var(--detail-s));
}
.content-column-divider {
width: calc(1px * var(--detail-s));
min-height: 100%;
align-self: stretch;
background: rgba(255, 255, 255, 0.1);
}
.detail-sidebar {
width: calc(296px * var(--detail-s));
flex-shrink: 0;
}
.detail-action-group { gap: calc(16px * var(--detail-s)); }
.detail-action {
gap: calc(10px * var(--detail-s));
color: #fff;
font-size: calc(14px * var(--detail-s));
line-height: calc(21px * var(--detail-s));
}
.detail-action-icon {
width: calc(30px * var(--detail-s));
height: calc(30px * var(--detail-s));
background: #ec237f;
border-radius: 50%;
}
.detail-action-icon img {
width: calc(16px * var(--detail-s));
height: calc(16px * var(--detail-s));
filter: brightness(0) invert(1);
}
.detail-action--active .detail-action-icon { background: #ec237f; }
.detail-action-sep {
width: calc(2px * var(--detail-s));
height: calc(19px * var(--detail-s));
background: rgba(255, 255, 255, 0.05);
}
.content-official-info {
padding: calc(24px * var(--detail-s)) calc(30px * var(--detail-s));
border-radius: calc(18px * var(--detail-s));
gap: calc(18px * var(--detail-s));
font-size: calc(14px * var(--detail-s));
line-height: calc(20px * var(--detail-s));
}
.content-ad-stack { gap: calc(12px * var(--detail-s)); }
.content-ad-stack a {
border-radius: calc(12px * var(--detail-s));
}
.detail-comments {
padding: calc(24px * var(--detail-s));
background: rgba(255, 255, 255, 0.05);
border-radius: calc(21px * var(--detail-s));
outline: 1px solid rgba(255, 255, 255, 0.10);
outline-offset: -1px;
gap: calc(12px * var(--detail-s));
}
.detail-comments-title {
font-size: calc(14px * var(--detail-s));
line-height: calc(20px * var(--detail-s));
}
.detail-comments-sort {
height: calc(32px * var(--detail-s));
padding: 0 calc(8px * var(--detail-s));
border-radius: calc(7px * var(--detail-s));
gap: calc(12px * var(--detail-s));
}
.detail-sort-btn {
font-size: calc(12px * var(--detail-s));
line-height: calc(18px * var(--detail-s));
}
.detail-related {
display: flex;
width: calc(296px * var(--detail-s));
flex-direction: column;
gap: calc(12px * var(--detail-s));
}
.detail-related-title {
height: calc(36px * var(--detail-s));
color: #fff;
font-size: calc(24px * var(--detail-s));
font-weight: 600;
line-height: calc(36px * var(--detail-s));
}
.detail-related .card-grid {
display: flex;
width: 100%;
flex-direction: column;
gap: calc(12px * var(--detail-s));
}
.detail-related .poster-card {
display: flex;
width: calc(296px * var(--detail-s));
min-height: 0;
flex-direction: column;
gap: 0;
overflow: hidden;
border-radius: calc(18px * var(--detail-s));
background: transparent;
}
.detail-related .poster-card:nth-child(n + 6) { display: none; }
.detail-related .poster-cover {
position: relative;
width: 100%;
height: auto;
aspect-ratio: 296 / 415;
padding: 0;
overflow: hidden;
border-radius: 0;
}
.detail-related .poster-cover-img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.detail-related .poster-card-body {
min-height: calc(104px * var(--detail-s));
padding: calc(12px * var(--detail-s)) calc(10px * var(--detail-s));
gap: calc(6px * var(--detail-s));
background: rgba(255, 255, 255, 0.05);
box-sizing: border-box;
}
.detail-related .poster-card-title {
font-size: calc(16px * var(--detail-s));
font-weight: 600;
line-height: calc(22px * var(--detail-s));
}
.detail-related .poster-card-subtitle {
display: -webkit-box !important;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
color: rgba(255, 255, 255, 0.55);
font-size: calc(14px * var(--detail-s));
line-height: calc(20px * var(--detail-s));
}
.detail-related .poster-card-tag {
padding: calc(2px * var(--detail-s)) calc(8px * var(--detail-s));
border-radius: calc(9px * var(--detail-s));
font-size: calc(14px * var(--detail-s));
line-height: calc(20px * var(--detail-s));
}
.detail-related .episode-badge {
right: calc(8px * var(--detail-s));
bottom: calc(12px * var(--detail-s));
padding: calc(3px * var(--detail-s)) calc(8px * var(--detail-s));
border-radius: calc(6px * var(--detail-s));
}
.detail-related .episode-badge .text-white-xs {
font-size: calc(16px * var(--detail-s));
line-height: calc(22px * var(--detail-s));
}
}
@media (max-width: 767px) {
body.is-detail-page { background: #0f0f0f; }
.detail-h5-bg-mask {
background: linear-gradient(180deg, rgba(8, 8, 8, .64) 0%, rgba(8, 8, 8, .9) 56%, #0f0f0f 100%);
}
.detail-h5-top-actions,
.square-promo--pc-only,
.content-official-info,
.content-column-divider { display: none !important; }
.content-ad-stack { gap: 10px; }
.content-ad-stack a { border-radius: 8px; }
.detail-layout,
.detail-main,
.detail-sidebar { display: contents; }
.detail-related {
padding-top: 18px;
border-top: 1px solid rgba(255, 255, 255, .1);
}
.detail-related .card-grid { gap: 5px; }
.detail-related .poster-card {
width: 111px !important;
max-width: 111px;
flex: 0 0 111px;
gap: 2px;
}
.detail-related .poster-cover {
width: 111px !important;
height: 148px !important;
}
.detail-related .poster-card-body { gap: 2px; }
.detail-related .episode-badge {
display: flex !important;
right: 4px;
bottom: 4px;
padding: 2px 4px;
border-radius: 3px;
background: rgba(0, 0, 0, .6);
}
.detail-related .episode-badge .text-white-xs {
font-size: 10px;
line-height: 14px;
}
.detail-h5-play { background: #ec237f; color: #fff; }
}