Files
web_huangguo2_h5/app/static/css/play.css
T
2026-09-29 15:30:33 +07:00

1860 lines
32 KiB
CSS

/* 播放页 PC */
body.page-play .site-header {
background: var(--bg);
border-bottom-color: var(--line-soft);
}
.play-page {
padding-top: 72px;
}
.play-main {
display: flex;
flex-direction: column;
gap: 24px;
padding: 20px 0 40px;
}
.play-breadcrumb {
margin: 0;
}
/* Player */
.play-stage {
display: flex;
flex-direction: column;
gap: 20px;
}
.play-player {
position: relative;
width: 100%;
height: 0;
padding-top: 56.25%; /* 16:9 兜底,旧版夸克/QQ 无 aspect-ratio */
aspect-ratio: 1200 / 675;
overflow: hidden;
border-radius: var(--radius-lg);
background: #1a1a1f;
}
@supports (aspect-ratio: 1 / 1) {
.play-player {
height: auto;
padding-top: 0;
}
}
.play-player .dplayer-video,
.play-player .dplayer {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.play-player .dplayer-video-wrap {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
}
.play-player .dplayer-video-wrap video {
width: 100%;
height: 100%;
object-fit: contain;
background: #000;
/* X5 / 夸克:尽量同层渲染,减少被系统播放器劫持 */
-webkit-transform: translateZ(0);
transform: translateZ(0);
}
/* 隐藏浏览器原生控件,强制使用 DPlayer 自绘控制条 */
.play-player .dplayer-video-wrap video::-webkit-media-controls,
.play-player .dplayer-video-wrap video::-webkit-media-controls-enclosure,
.play-player .dplayer-video-wrap video::-webkit-media-controls-panel,
.play-player .dplayer-video-wrap video::-webkit-media-controls-start-playback-button,
.play-player .dplayer-video-wrap video::-webkit-media-controls-overlay-play-button {
display: none !important;
-webkit-appearance: none !important;
opacity: 0 !important;
pointer-events: none !important;
width: 0 !important;
height: 0 !important;
}
.play-player .dplayer-controller,
.play-player .dplayer-controller-mask {
z-index: 6;
}
.play-player .dplayer-controller {
background: transparent !important;
}
.play-player .dplayer-controller-mask {
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 100%) !important;
}
.play-player__cover {
position: absolute;
inset: 0;
z-index: 2;
width: 100%;
height: 100%;
object-fit: cover;
display: block;
pointer-events: none;
transition: opacity 0.2s ease, visibility 0.2s ease;
}
.play-player__cover--hidden {
opacity: 0;
visibility: hidden;
}
.play-player.is-playing .play-player__cover,
.play-player.is-playing .play-player__scrim,
.play-player.is-playing .play-player__center,
.play-player.is-playing .play-player__badge {
opacity: 0;
visibility: hidden;
pointer-events: none;
}
.play-player__scrim {
position: absolute;
inset: 0;
z-index: 3;
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.7) 100%);
pointer-events: none;
transition: opacity 0.2s ease, visibility 0.2s ease;
}
.play-player__center {
position: absolute;
left: 50%;
top: 50%;
z-index: 4;
transform: translate(-50%, -50%);
width: 72px;
height: 72px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(11, 11, 13, 0.72);
border: 1px solid rgba(255, 255, 255, 0.24);
border-radius: 999px;
cursor: pointer;
transition: opacity 0.2s ease, visibility 0.2s ease;
}
.play-player__center .icon {
width: 30px;
height: 30px;
}
.play-player__badge {
position: absolute;
top: 12px;
left: 12px;
z-index: 4;
height: 28px;
padding: 0 8px;
display: inline-flex;
align-items: center;
color: var(--text);
font-size: 12px;
font-weight: 500;
line-height: 16px;
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
border-radius: 999px;
z-index: 2;
}
.play-player__dim {
display: none;
position: absolute;
inset: 0;
z-index: 5;
background: rgba(0, 0, 0, 0.7);
pointer-events: none;
}
.play-player__unlock {
display: none;
position: absolute;
left: 0;
right: 0;
top: 50%;
transform: translateY(-50%);
padding: 0 24px;
flex-direction: column;
align-items: center;
gap: 10px;
text-align: center;
z-index: 6;
pointer-events: auto;
}
.play-player--locked .play-player__dim,
.play-player--locked .play-player__unlock {
display: flex;
}
.play-player--locked .play-player__cover,
.play-player--locked .play-player__scrim {
z-index: 1;
}
.play-player--locked .play-player__center,
.play-player--locked .play-player__bar {
display: none;
}
.play-player__unlock-icon {
width: 56px;
height: 56px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(11, 11, 13, 0.72);
border: 1px solid rgba(255, 255, 255, 0.24);
border-radius: 999px;
}
.play-player__unlock-icon .icon {
width: 24px;
height: 24px;
}
.play-player__unlock-ep {
margin: 0;
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 18px;
letter-spacing: 0.78px;
}
.play-player__unlock-title {
margin: 0;
align-self: stretch;
color: #f2f2f4;
font-size: 18px;
font-weight: 600;
line-height: 26px;
text-align: center;
}
.play-player__unlock-desc {
margin: 0;
align-self: stretch;
color: #a1a1aa;
font-size: 13px;
font-weight: 400;
line-height: 20px;
text-align: center;
}
.play-player__unlock-actions {
padding-top: 6px;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
.play-player__unlock-btn {
height: 40px;
padding: 0 16px;
gap: 8px;
border: 0;
border-radius: 999px;
background: linear-gradient(135deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
color: #fff;
font-size: 14px;
font-weight: 500;
line-height: 20px;
}
.play-player__unlock-btn .icon {
width: 18px;
height: 18px;
filter: brightness(0) invert(1);
}
.play-player__unlock-app {
display: inline-flex;
align-items: center;
gap: 5px;
color: #a1a1aa;
font-size: 12px;
font-weight: 400;
line-height: 18px;
}
.play-player__unlock-app .icon {
width: 12px;
height: 12px;
opacity: 0.85;
}
/* PC 金币解锁弹窗 */
.play-coin {
position: fixed;
inset: 0;
z-index: 280;
display: none;
align-items: center;
justify-content: center;
padding: 24px;
}
.play-coin.is-open {
display: flex;
}
.play-coin__mask {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.7);
}
.play-coin__panel {
position: relative;
z-index: 1;
width: 440px;
padding: 32px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
background: #141417;
border: 1px solid var(--line);
border-radius: var(--radius-xl);
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
overflow: hidden;
}
.play-coin__handle {
display: none;
}
.play-coin__head,
.play-coin__copy {
display: contents;
}
.play-coin__close {
position: absolute;
top: 16px;
right: 16px;
width: 32px;
height: 32px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.04);
border-radius: 999px;
}
.play-coin__close .icon {
width: 18px;
height: 18px;
}
.play-coin__title {
margin: 0;
padding-right: 40px;
color: var(--text);
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.play-coin__desc {
margin: 0;
align-self: stretch;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.play-coin__sheet {
align-self: stretch;
padding: 4px 20px;
display: flex;
flex-direction: column;
background: #1b1b1f;
border: 1px solid var(--line-soft);
border-radius: var(--radius-md);
}
.play-coin__row {
display: flex;
align-items: center;
gap: 16px;
padding: 14px 0;
}
.play-coin__label {
width: 100px;
flex-shrink: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.play-coin__value {
flex: 1 1 0;
text-align: right;
color: var(--text);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.play-coin__value.is-low {
color: #ff5a5f;
}
.play-coin__cost {
flex: 1 1 0;
text-align: right;
color: var(--gold);
font-family: Inter, var(--font);
font-size: 20px;
font-weight: 600;
line-height: 26px;
}
.play-coin__divider {
align-self: stretch;
height: 1px;
background: var(--line-soft);
}
.play-coin__note {
margin: 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.play-coin__pay {
align-self: stretch;
height: 52px;
padding: 0 28px;
font-size: 16px;
line-height: 24px;
}
.play-coin__pay .icon {
width: 22px;
height: 22px;
}
.play-coin__foot {
align-self: stretch;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.play-coin__app {
display: inline-flex;
align-items: center;
gap: 5px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
}
.play-coin__app .icon {
width: 14px;
height: 14px;
opacity: 0.85;
}
.play-coin__recharge {
color: #ff4a7b;
font-size: 13px;
line-height: 20px;
}
.play-coin__skip {
color: var(--text-dim);
font-size: 13px;
line-height: 20px;
}
.play-player__bar {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 0 16px 14px;
display: flex;
flex-direction: column;
gap: 10px;
}
.play-player__progress {
position: relative;
height: 3px;
background: rgba(255, 255, 255, 0.12);
border-radius: 999px;
}
.play-player__progress-fill {
position: absolute;
left: 0;
top: 0;
bottom: 0;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
border-radius: 999px;
}
.play-player__progress-thumb {
position: absolute;
top: 50%;
width: 12px;
height: 12px;
margin-left: -6px;
transform: translateY(-50%);
background: #fff;
border-radius: 999px;
}
.play-player__controls {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.play-player__left,
.play-player__right {
display: inline-flex;
align-items: center;
gap: 14px;
}
.play-player__right {
gap: 16px;
}
.play-player__icon {
width: 18px;
height: 18px;
display: inline-flex;
align-items: center;
justify-content: center;
opacity: 0.95;
}
.play-player__icon .icon {
width: 18px;
height: 18px;
}
.play-player__time,
.play-player__text {
color: var(--text-muted);
font-family: Inter, var(--font);
font-size: 12px;
font-weight: 500;
line-height: 16px;
letter-spacing: 0.72px;
}
/* Tabs */
.play-tabs {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px;
}
.play-tabs__item {
height: 36px;
padding: 0 16px;
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--text-muted);
font-size: 14px;
font-weight: 500;
line-height: 20px;
border: 1px solid var(--line);
border-radius: 999px;
background: transparent;
cursor: pointer;
-webkit-appearance: none;
appearance: none;
font-family: inherit;
}
.play-tabs__item .icon {
width: 14px;
height: 14px;
opacity: 0.8;
}
.play-tabs__item.is-active {
color: var(--accent-hot);
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
}
.play-player--preview.play-player--locked .play-player__unlock,
.play-player--preview .play-player__unlock,
.play-player--preview.play-player--locked .play-player__dim,
.play-player--preview [data-play-locked-bar] {
display: none !important;
pointer-events: none !important;
}
.play-player--preview.play-player--locked .play-player__center {
display: inline-flex !important;
pointer-events: auto !important;
}
.play-player--preview.play-player--locked .play-player__cover,
.play-player--preview.play-player--locked .play-player__scrim {
opacity: 1;
visibility: visible;
}
.play-player--preview.play-player--locked.is-playing .play-player__cover,
.play-player--preview.play-player--locked.is-playing .play-player__scrim,
.play-player--preview.play-player--locked.is-playing .play-player__center {
display: none !important;
}
.play-tabs__hint {
margin: 0;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
/* Meta / actions / synopsis */
.play-info {
display: flex;
flex-direction: column;
gap: 18px;
}
.play-meta {
display: flex;
flex-direction: column;
gap: 12px;
}
.play-meta__title-row {
display: flex;
align-items: center;
gap: 14px;
}
.play-meta__title {
margin: 0;
font-size: 28px;
font-weight: 600;
line-height: 36px;
}
.play-meta__title-row .badge {
position: static;
top: auto;
right: auto;
flex-shrink: 0;
align-self: center;
}
.play-meta__chips {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.play-chip {
height: 26px;
padding: 0 8px;
display: inline-flex;
align-items: center;
color: var(--text);
font-size: 12px;
font-weight: 500;
line-height: 16px;
background: rgba(11, 11, 13, 0.72);
border: 1px solid var(--line);
border-radius: 999px;
}
.play-meta__stats {
margin: 0;
display: flex;
flex-wrap: nowrap;
align-items: baseline;
gap: 0 14px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
letter-spacing: 0.78px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.play-meta__stat {
display: inline;
flex: 0 0 auto;
min-width: 0;
}
.play-meta__tag {
color: inherit;
text-decoration: none;
}
a.play-meta__tag:hover,
a.play-meta__tag:focus-visible {
color: var(--accent-hot, #ff4a7b);
}
.play-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.play-actions__btn {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.play-actions__btn .icon {
width: 20px;
height: 20px;
}
.play-actions__btn.is-active {
color: var(--accent-hot, #ff4a7b);
border-color: rgba(236, 35, 127, 0.5);
}
.play-actions__btn.is-active .icon {
filter: invert(39%) sepia(82%) saturate(2476%) hue-rotate(314deg) brightness(101%) contrast(101%);
}
.play-actions__btn.is-active .play-actions__count {
color: var(--accent-hot, #ff4a7b);
}
.play-actions__count {
margin-left: 2px;
font-variant-numeric: tabular-nums;
}
.play-actions__btn--icon.is-share-copied {
width: auto;
padding: 0 12px;
}
.play-actions__btn--icon.is-share-copied [data-share-page-label] {
display: inline !important;
}
.play-synopsis {
display: flex;
flex-direction: column;
gap: 8px;
}
.play-synopsis__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.play-synopsis__title {
margin: 0;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.play-synopsis__more {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
}
.play-synopsis__more[hidden] {
display: none !important;
}
.play-synopsis__more .icon {
width: 14px;
height: 14px;
transform: rotate(90deg);
transition: transform 0.2s ease;
}
.play-synopsis.is-expanded .play-synopsis__more .icon {
transform: rotate(-90deg);
}
.play-synopsis__text {
margin: 0;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
}
.play-synopsis.is-expanded .play-synopsis__text {
display: block;
-webkit-line-clamp: unset;
overflow: visible;
}
/* Episodes */
.play-episodes {
display: flex;
flex-direction: column;
gap: 14px;
}
.play-episodes__head {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 14px;
}
.play-episodes__head-left {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 14px;
}
.play-episodes__title {
margin: 0;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.play-episodes__count {
color: var(--text-dim);
font-size: 14px;
line-height: 22px;
}
.play-episodes__sort {
display: inline-flex;
align-items: flex-end;
gap: 20px;
flex-shrink: 0;
margin-left: 0;
}
.play-episodes__sort-item {
display: inline-flex;
flex-direction: column;
align-items: center;
gap: 6px;
margin: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--text-muted);
font: inherit;
font-size: 14px;
font-weight: 500;
line-height: 20px;
cursor: pointer;
appearance: none;
}
.play-episodes__sort-item::after {
content: "";
width: 24px;
height: 2px;
border-radius: 1px;
background: linear-gradient(90deg, #ff4a7b 0%, #ec237f 52%, #93226f 100%);
opacity: 0;
}
.play-episodes__sort-item.is-active {
color: var(--text);
}
.play-episodes__sort-item.is-active::after {
opacity: 1;
}
.play-episodes__order {
display: none;
align-items: center;
gap: 2px;
margin: 0;
padding: 0;
border: 0;
background: transparent;
color: var(--text-muted);
font: inherit;
font-size: 13px;
line-height: 20px;
cursor: pointer;
appearance: none;
}
.play-episodes__order .icon,
.play-episodes__order.is-desc .icon {
width: 14px;
height: 14px;
transform: none;
}
.play-episodes__grid {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.play-ep {
position: relative;
width: 60px;
height: 44px;
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--text);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
background: var(--bg-elevated);
border: 1px solid var(--line-soft);
border-radius: var(--radius-sm);
}
.play-ep.is-active {
color: var(--accent-hot);
background: rgba(236, 35, 127, 0.1);
border-color: rgba(236, 35, 127, 0.3);
}
.play-ep--coin::after {
content: "";
position: absolute;
top: 2px;
right: 2px;
width: 12px;
height: 12px;
border-radius: 999px;
background: url("/static/images/lock.svg") center / 8px 8px no-repeat, var(--accent-deep);
border: 1px solid var(--accent);
box-sizing: border-box;
}
.play-ep--coin {
color: var(--text-muted);
}
.play-episodes__legend {
display: flex;
flex-wrap: wrap;
gap: 18px;
}
.play-legend {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
}
.play-legend__swatch {
width: 12px;
height: 12px;
flex-shrink: 0;
border-radius: 3px;
}
.play-legend__swatch--free {
background: rgba(236, 35, 127, 0.1);
border: 1px solid rgba(236, 35, 127, 0.3);
}
.play-legend__swatch--coin {
width: 12px;
height: 12px;
border-radius: 999px;
object-fit: contain;
display: block;
}
/* Official links → playLinks.css */
/* Comments + hot */
.play-dual {
display: flex;
align-items: flex-start;
gap: 40px;
padding: 24px 0;
}
/* Comments → playComments.css */
.play-hot {
width: 376px;
flex-shrink: 0;
display: flex;
flex-direction: column;
gap: 12px;
}
.play-hot__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.play-hot__title {
margin: 0;
font-size: 18px;
font-weight: 600;
line-height: 26px;
}
.play-hot__more {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.play-hot__more .icon {
width: 16px;
height: 16px;
}
.play-hot__list {
margin: 0;
padding: 0;
list-style: none;
}
.play-hot__item {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 0;
border-bottom: 1px solid var(--line-soft);
}
.play-hot__item a {
color: inherit;
text-decoration: none;
}
.play-hot__cover-link {
flex-shrink: 0;
line-height: 0;
}
.play-hot__no {
width: 26px;
flex-shrink: 0;
color: var(--text-dim);
font-family: Inter, var(--font);
font-size: 16px;
font-weight: 600;
line-height: 20px;
}
.play-hot__no.is-top {
color: var(--accent-hot);
}
.play-hot__cover {
width: 48px;
height: 64px;
flex-shrink: 0;
border-radius: 6px;
object-fit: cover;
display: block;
}
.play-hot__info {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.play-hot__name {
font-size: 15px;
font-weight: 600;
line-height: 21px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.play-hot__meta {
color: var(--text-dim);
font-size: 12px;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.play-hot__meta a {
color: inherit;
}
.play-hot__meta a:hover {
color: var(--accent);
}
.play-hot__heat {
flex-shrink: 0;
color: var(--text-dim);
font-family: Inter, var(--font);
font-size: 12px;
font-weight: 500;
line-height: 16px;
letter-spacing: 0.72px;
}
/* Guess you like */
.play-like {
display: flex;
flex-direction: column;
gap: 20px;
padding: 8px 0 16px;
}
.play-like__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.play-like__titles {
display: flex;
align-items: center;
gap: 14px;
}
.play-like__title {
margin: 0;
font-size: 22px;
font-weight: 600;
line-height: 30px;
}
.play-like__desc {
color: var(--text-dim);
font-size: 14px;
line-height: 22px;
}
.play-like__refresh {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
padding: 0;
border: 0;
background: transparent;
cursor: pointer;
font: inherit;
}
.play-like__refresh:disabled {
opacity: 0.6;
cursor: wait;
}
.play-like__refresh .icon {
width: 16px;
height: 16px;
}
.play-like__grid {
display: flex;
flex-wrap: wrap;
gap: 24px;
}
.card--play {
width: 180px;
display: flex;
flex-direction: column;
gap: 10px;
}
.card--play .card__cover {
aspect-ratio: 180 / 240;
border-radius: var(--radius-md);
}
.card--play .card__title {
margin: 0;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.card--play .card__meta {
margin: 0;
color: var(--text-muted);
font-size: 13px;
line-height: 20px;
}
@media (max-width: 768px) {
body.page-play .site-header {
display: none !important;
}
.play-page {
padding-top: 56px;
}
.play-main {
gap: 0;
padding: 0 0 24px;
}
.play-stage {
gap: 12px;
}
.play-player {
height: 211px;
padding-top: 0;
aspect-ratio: auto;
border-radius: 0;
}
/* 国产浏览器:避免封面层挡住同层 video 点击;播放中强制隐藏装饰层 */
html.is-quark .play-player.is-playing .play-player__cover,
html.is-qq .play-player.is-playing .play-player__cover,
html.is-uc .play-player.is-playing .play-player__cover,
html.is-cn-browser .play-player.is-playing .play-player__cover,
html.is-quark .play-player.is-playing .play-player__scrim,
html.is-qq .play-player.is-playing .play-player__scrim,
html.is-uc .play-player.is-playing .play-player__scrim,
html.is-cn-browser .play-player.is-playing .play-player__scrim,
html.is-quark .play-player.is-playing .play-player__dim,
html.is-qq .play-player.is-playing .play-player__dim,
html.is-uc .play-player.is-playing .play-player__dim,
html.is-cn-browser .play-player.is-playing .play-player__dim,
html.is-quark .play-player.is-playing .play-player__center,
html.is-qq .play-player.is-playing .play-player__center,
html.is-uc .play-player.is-playing .play-player__center,
html.is-cn-browser .play-player.is-playing .play-player__center {
display: none !important;
}
html.is-quark .play-player .dplayer-video-wrap video,
html.is-qq .play-player .dplayer-video-wrap video,
html.is-uc .play-player .dplayer-video-wrap video,
html.is-cn-browser .play-player .dplayer-video-wrap video {
object-fit: contain;
-webkit-transform: translateZ(0);
transform: translateZ(0);
/* 同层渲染,减少夸克把 video 提成系统浮层 */
position: relative;
z-index: 1;
}
html.is-quark .play-player .dplayer-video-wrap,
html.is-qq .play-player .dplayer-video-wrap,
html.is-uc .play-player .dplayer-video-wrap,
html.is-cn-browser .play-player .dplayer-video-wrap {
-webkit-overflow-scrolling: touch;
transform: translateZ(0);
}
.play-player__center {
width: 56px;
height: 56px;
}
.play-player__center .icon {
width: 24px;
height: 24px;
}
.play-player__unlock {
top: 27px;
transform: none;
padding: 0 24px;
gap: 6px;
}
.play-player__unlock-icon {
width: 40px;
height: 40px;
}
.play-player__unlock-icon .icon {
width: 18px;
height: 18px;
}
.play-player__unlock-ep {
font-size: 11px;
line-height: 16px;
letter-spacing: 0;
}
.play-player__unlock-title {
font-size: 15px;
line-height: 21px;
}
.play-player__unlock-desc {
display: none;
}
.play-player__unlock--short .play-player__unlock-desc {
display: block;
font-size: 12px;
line-height: 18px;
}
.play-player__unlock-actions {
padding-top: 4px;
gap: 6px;
}
.play-player__unlock-btn {
height: 36px;
padding: 0 12px;
font-size: 14px;
line-height: 20px;
}
.play-player__unlock-btn .icon {
width: 16px;
height: 16px;
}
.play-player__unlock-app {
font-size: 11px;
line-height: 16px;
}
.play-player__unlock-app .icon {
width: 11px;
height: 11px;
}
.play-player__badge {
display: inline-flex;
}
.play-tabs {
padding: 0 var(--h5-gutter);
gap: 8px;
flex-wrap: nowrap;
overflow-x: auto;
}
.play-tabs__item {
flex-shrink: 0;
height: 32px;
padding: 0 14px;
font-size: 13px;
font-weight: 400;
}
.play-tabs__item .icon {
width: 13px;
height: 13px;
}
.play-info {
padding: 14px var(--h5-gutter) 8px;
gap: 16px;
}
.play-meta {
gap: 12px;
}
.play-meta__title-row {
gap: 10px;
}
.play-meta__title {
font-size: 22px;
line-height: 30px;
}
.play-meta__chips {
gap: 6px;
}
.play-chip {
height: 24px;
font-size: 11px;
line-height: 14px;
}
.play-meta__stats {
font-size: 12px;
line-height: 18px;
letter-spacing: 0;
gap: 0 10px;
}
.play-actions {
gap: 8px;
}
.play-actions__btn--play {
flex: 1 1 0;
height: 40px;
padding: 0 16px;
font-size: 14px;
line-height: 20px;
}
.play-actions__btn--play .icon {
width: 18px;
height: 18px;
}
.play-actions__btn--icon {
width: 40px;
height: 40px;
padding: 0;
flex-shrink: 0;
}
.play-actions__btn--icon .icon {
width: 18px;
height: 18px;
}
.play-synopsis {
gap: 6px;
}
.play-synopsis__title {
font-size: 15px;
line-height: 21px;
}
.play-synopsis__more {
gap: 2px;
font-size: 12px;
line-height: 18px;
}
.play-synopsis__more .icon {
width: 12px;
height: 12px;
}
.play-synopsis__text {
font-size: 13px;
line-height: 20px;
-webkit-line-clamp: 2;
}
.play-synopsis.is-expanded .play-synopsis__text {
-webkit-line-clamp: unset;
}
.play-episodes {
padding: 0 var(--h5-gutter);
gap: 10px;
}
.play-episodes__head {
gap: 10px;
}
.play-episodes__head-left {
gap: 10px;
align-items: flex-end;
}
.play-episodes__title {
font-size: 15px;
line-height: 21px;
}
.play-episodes__count {
font-size: 12px;
line-height: 18px;
}
.play-episodes__order {
display: inline-flex;
}
.play-episodes__grid {
gap: 6px;
}
.play-ep {
width: calc((100% - 24px) / 5);
min-width: 52px;
height: 40px;
}
.play-ep--coin::after {
right: auto;
left: calc(100% - 14px);
}
.play-episodes__legend {
gap: 14px;
align-content: center;
}
.play-legend {
gap: 5px;
font-size: 11px;
line-height: 16px;
}
.play-legend__swatch,
.play-legend__swatch--coin {
width: 10px;
height: 10px;
}
.play-related {
padding: 8px var(--h5-gutter);
flex-direction: column;
gap: 12px;
}
.play-related__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
}
.play-related__title {
margin: 0;
font-size: 16px;
font-weight: 600;
line-height: 22px;
}
.play-related__more {
display: inline-flex;
align-items: center;
gap: 4px;
color: var(--text-muted);
font-size: 14px;
line-height: 22px;
}
.play-related__more .icon {
width: 16px;
height: 16px;
}
.play-related__grid {
display: flex;
gap: 12px;
}
.card--play-sm {
width: calc((100% - 24px) / 3);
display: flex;
flex-direction: column;
gap: 6px;
}
.card--play-sm .card__cover {
aspect-ratio: 106 / 141;
border-radius: var(--radius-sm);
}
.card--play-sm .card__title {
margin: 0;
font-size: 14px;
font-weight: 600;
line-height: 20px;
}
.card--play-sm .card__meta {
margin: 0;
font-size: 11px;
line-height: 16px;
}
.card--play-sm .card__ep {
font-size: 11px;
line-height: 14px;
bottom: 10px;
}
.play-dual {
flex-direction: column;
align-items: stretch;
gap: 14px;
padding: 8px var(--h5-gutter);
}
.play-hot {
width: 100%;
padding: 0;
gap: 12px;
}
.play-hot__title {
font-size: 18px;
line-height: 26px;
}
.play-like {
padding: 8px var(--h5-gutter);
gap: 14px;
}
.play-like__title {
font-size: 18px;
line-height: 26px;
}
.play-like__refresh {
gap: 2px;
font-size: 13px;
line-height: 20px;
}
.play-like__refresh .icon {
width: 14px;
height: 14px;
}
.play-like__grid {
gap: 14px 8px;
}
.card--play {
width: calc((100% - 16px) / 3);
gap: 6px;
}
.card--play .card__cover {
aspect-ratio: 109 / 145;
border-radius: var(--radius-sm);
}
.card--play .card__title {
font-size: 14px;
line-height: 20px;
}
.card--play .card__meta {
font-size: 11px;
line-height: 16px;
}
.play-coin {
align-items: flex-end;
justify-content: stretch;
padding: 0;
}
.play-coin__panel {
width: 100%;
max-width: none;
padding: 12px 20px 24px;
gap: 12px;
border: 0;
border-radius: 20px 20px 0 0;
box-shadow: none;
}
.play-coin__handle {
display: flex;
align-self: stretch;
justify-content: center;
}
.play-coin__handle::before {
content: "";
width: 36px;
height: 4px;
background: rgba(255, 255, 255, 0.24);
border-radius: 2px;
}
.play-coin__head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
align-self: stretch;
}
.play-coin__copy {
flex: 1 1 0;
min-width: 0;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 2px;
}
.play-coin__close {
position: static;
flex-shrink: 0;
}
.play-coin__title {
padding-right: 0;
font-size: 18px;
line-height: 26px;
}
.play-coin__desc {
font-size: 12px;
line-height: 18px;
}
.play-coin__sheet {
padding: 2px 16px;
}
.play-coin__row {
padding: 12px 0;
}
.play-coin__label {
width: 80px;
font-size: 13px;
line-height: 20px;
}
.play-coin__note {
font-size: 11px;
line-height: 16px;
}
.play-coin__pay {
height: 48px;
padding: 0 22px;
font-size: 15px;
line-height: 22px;
}
.play-coin__pay .icon {
width: 20px;
height: 20px;
}
.play-coin__app {
font-size: 12px;
line-height: 18px;
}
.play-coin__app .icon {
width: 12px;
height: 12px;
}
.play-coin__recharge,
.play-coin__skip {
font-size: 12px;
line-height: 18px;
}
}
/* 简介下方标签行 */
.play-synopsis__tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.play-synopsis__tag {
padding: 3px 10px;
border-radius: var(--radius-sm);
color: var(--text-muted);
font-size: 12px;
line-height: 18px;
text-decoration: none;
background: rgba(255, 255, 255, 0.06);
}
.play-synopsis__tag::before {
content: "#";
margin-right: 2px;
color: var(--accent);
}
a.play-synopsis__tag:hover {
color: var(--text);
background: rgba(236, 35, 127, 0.12);
}
@media (max-width: 768px) {
.play-synopsis__tags {
gap: 6px;
margin-top: 10px;
}
.play-synopsis__tag {
padding: 2px 8px;
font-size: 11px;
line-height: 16px;
}
}