Files
谢宇宁andClaude Opus 5.5 3639d2184a Initial commit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 14:47:17 +07:00

3497 lines
72 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Auto-extracted from index.html */
.page-shell {
width: min(1800px, calc(100% - 120px));
max-width: none;
position: relative;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
display: flex;
margin: 0 auto;
padding: 36px 0;
gap: 36px;
box-sizing: border-box;
}
.home-page-title {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
clip-path: inset(50%);
white-space: nowrap;
border: 0;
}
/* Figma mobile homepage (40094:457099). */
@media (max-width: 767px) {
:root {
--home-h5-gutter: clamp(14px, 4.266667vw, 18px);
--home-h5-section-gap: clamp(16px, 4.8vw, 20px);
}
body.home-page {
padding-top: calc(48px + env(safe-area-inset-top, 0px));
background: #0F0F0F;
}
.home-page .page-shell {
padding: 12px var(--home-h5-gutter) var(--home-h5-section-gap);
gap: var(--home-h5-section-gap);
background: #0F0F0F;
}
.home-page .hero-image {
object-fit: cover;
object-position: center;
}
.home-page .hero-swiper .swiper-pagination.hero-dots {
right: 32px;
bottom: 16px;
align-items: center;
}
.home-page .hero-dots .hero-dot,
.home-page .hero-dot {
margin: 0;
border-radius: 99px;
opacity: 0.6;
transition: width 240ms ease, opacity 240ms ease, background-color 240ms ease;
}
.home-page .hero-dots .hero-dot--active,
.home-page .hero-dot--active {
opacity: 1;
}
.home-page .section-title,
.home-page .ranking-title {
gap: 6px;
}
.home-page .poster-cover-img,
.home-page .ranking-cover-img {
object-fit: cover;
object-position: center;
}
.home-page .poster-card,
.home-page .ranking-card {
height: auto;
min-height: 0;
}
.home-page .poster-card-body,
.home-page .ranking-card-body {
height: 80px;
min-height: 80px;
box-sizing: border-box;
}
.home-page .topic-section .section-heading {
gap: 0;
}
.home-page .floating-action {
display: none;
}
}
/* PC layout — Figma 1920 design: side padding 60, content 1800, 5 cards/row. */
@media (min-width: 1024px) {
body.home-page {
padding-top: 90px;
}
body.home-page .page-shell {
min-height: 0;
padding: 0 60px 36px;
gap: 36px;
align-items: stretch;
box-sizing: border-box;
}
body.home-page .page-shell.page-shell--no-hero {
padding-top: 40px;
}
/* Figma 1920×710 full-bleed hero, scaled by viewport width. */
body.home-page .hero-section {
--hero-s: calc(100vw / 1920px);
width: 100vw;
max-width: none;
margin-left: calc(50% - 50vw);
margin-right: calc(50% - 50vw);
align-self: stretch;
height: calc(710px * var(--hero-s));
}
body.home-page .hero-banner,
body.home-page .hero-swiper {
width: 100%;
height: 100%;
border-radius: 0;
border: 0;
outline: none;
overflow: hidden;
}
body.home-page .hero-banner,
body.home-page .hero-card,
body.home-page .hero-image {
height: 100%;
max-height: none;
aspect-ratio: auto;
}
body.home-page .hero-image {
width: calc(1923 / 1920 * 100%);
left: calc(-2 / 1920 * 100%);
object-fit: cover;
object-position: center;
}
body.home-page .hero-overlay {
top: auto;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
background:
linear-gradient(
90deg,
rgba(0, 0, 0, 0.66) 0%,
rgba(0, 0, 0, 0.52) 38%,
rgba(0, 0, 0, 0.2) 66%,
rgba(0, 0, 0, 0.04) 100%
),
linear-gradient(
180deg,
rgba(0, 0, 0, 0) 0%,
rgba(0, 0, 0, 0.16) 28%,
rgba(0, 0, 0, 0.58) 62%,
rgba(0, 0, 0, 0.9) 86%,
#0f0f0f 100%
);
}
body.home-page .hero-info {
left: calc(184px * var(--hero-s));
top: calc(343px * var(--hero-s));
bottom: auto;
width: calc(787px * var(--hero-s));
max-width: calc(100% - 520px * var(--hero-s));
gap: calc(16px * var(--hero-s));
}
body.home-page .hero-kicker {
padding: calc(4px * var(--hero-s)) calc(12px * var(--hero-s));
color: #ec237f;
background: rgba(255, 74, 74, 0.08);
border-radius: 999px;
font-size: calc(18px * var(--hero-s));
line-height: calc(24px * var(--hero-s));
font-weight: 400;
}
body.home-page .hero-title {
color: #fff;
font-size: calc(36px * var(--hero-s));
line-height: 1.28;
font-weight: 400;
}
body.home-page .hero-tags {
gap: calc(7px * var(--hero-s));
}
body.home-page .hero-tag {
padding: calc(5px * var(--hero-s)) calc(10px * var(--hero-s));
border-radius: calc(5px * var(--hero-s));
background: rgba(24, 24, 24, 0.6);
}
body.home-page .hero-tag-text {
color: #fff;
font-size: calc(16px * var(--hero-s));
line-height: 1.375;
font-weight: 400;
}
body.home-page .hero-summary {
width: 100%;
max-width: none;
color: #fff;
font-size: calc(18px * var(--hero-s));
line-height: 1.55;
opacity: 1;
font-weight: 400;
}
body.home-page .hero-play-button {
width: calc(142px * var(--hero-s));
height: calc(43px * var(--hero-s));
gap: calc(8px * var(--hero-s));
background: #ec237f;
box-shadow: 0 calc(6.925px * var(--hero-s)) calc(17.313px * var(--hero-s)) rgba(241, 43, 158, 0.22);
border-radius: calc(9px * var(--hero-s));
}
body.home-page .hero-play-icon {
display: none;
}
body.home-page .hero-play-text,
body.home-page .hero-play-button .text-white-xs {
color: #fff;
font-size: calc(18px * var(--hero-s));
line-height: calc(18px * var(--hero-s));
font-weight: 400;
}
body.home-page .hero-thumbs {
left: auto;
right: calc(184px * var(--hero-s));
top: calc(488px * var(--hero-s));
bottom: auto;
gap: calc(14px * var(--hero-s));
transform: none;
justify-content: center;
align-items: center;
}
body.home-page .hero-thumb {
width: calc(100px * var(--hero-s));
height: calc(140px * var(--hero-s));
border-radius: calc(12px * var(--hero-s));
border: 0;
transform: none;
transition: width 0.28s ease, height 0.28s ease, border-radius 0.28s ease;
will-change: width, height;
}
body.home-page .hero-thumb.is-active {
width: calc(116px * var(--hero-s));
height: calc(162px * var(--hero-s));
transform: none;
z-index: 1;
}
body.home-page .hero-thumb-img,
body.home-page .hero-thumb-overlay {
border-radius: inherit;
}
body.home-page .hero-thumb-overlay {
background: #000;
opacity: 0.5;
}
body.home-page .hero-thumb.is-active .hero-thumb-overlay {
opacity: 0;
}
body.home-page .hero-thumb-nav,
body.home-page .hero-thumb-nav img {
width: calc(26px * var(--hero-s));
height: calc(26px * var(--hero-s));
}
body.home-page .hero-thumb-prev img {
transform: none;
}
body.home-page .home-announcement,
body.home-page .square-promo,
body.home-page .home-ad-row,
body.home-page .content-section {
width: 100%;
max-width: 1800px;
margin-left: auto;
margin-right: auto;
}
body.home-page .home-announcement {
height: 48px;
gap: 7px;
margin-top: 0;
margin-bottom: 0;
}
body.home-page .home-announcement-label {
width: 69px;
min-width: 69px;
height: 48px;
}
body.home-page .home-announcement-label picture {
display: block;
width: 100%;
height: 100%;
}
body.home-page .home-announcement-content {
padding: 10px 18px;
border-radius: 9px;
font-size: 18px;
line-height: 24px;
}
body.home-page .content-section,
body.home-page .ranking-section {
gap: 24px;
}
body.home-page .section-heading {
gap: 12px;
}
body.home-page .section-title {
gap: 8px;
font-size: 24px;
line-height: 32px;
}
body.home-page .section-title::before {
width: 6px;
height: 24px;
border-radius: 3px;
}
body.home-page .section-subtitle {
font-size: 16px;
line-height: 22px;
}
body.home-page .ghost-action-button {
padding: 8px 14px;
gap: 4px;
border-radius: 16px;
}
body.home-page .ghost-action-text {
font-size: 12px;
line-height: 18px;
}
body.home-page .chevron-icon-img {
width: 14px;
height: 14px;
}
body.home-page .card-grid,
body.home-page .ranking-list {
grid-template-columns: repeat(5, minmax(0, 1fr));
column-gap: 18px;
row-gap: 20px;
}
body.home-page .poster-card,
body.home-page .ranking-card {
min-height: 0;
border-radius: 21px;
}
body.home-page .poster-card-body,
body.home-page .ranking-card-body {
min-height: 123px;
padding: 14px 12px;
gap: 7px;
}
body.home-page .poster-card-title,
body.home-page .ranking-card-title {
min-height: 26px;
font-size: 19px;
line-height: 26px;
}
body.home-page .poster-card-subtitle,
body.home-page .ranking-card-subtitle {
min-height: 23px;
font-size: 16px;
line-height: 23px;
}
body.home-page .card-grid .poster-card-tags {
height: 29px;
}
body.home-page .poster-card-episode {
font-size: 16px;
line-height: 23px;
}
body.home-page .poster-card-tag,
body.home-page .ranking-card-tag {
padding: 2px 9px;
border-radius: 10px;
font-size: 16px;
line-height: 23px;
}
body.home-page .episode-badge,
body.home-page .ranking-episode-badge {
right: 9px;
bottom: 12px;
min-height: 26px;
height: auto;
padding: 4px 9px;
border-radius: 7px;
}
body.home-page .episode-badge .text-white-xs,
body.home-page .ranking-episode-badge .text-white-xs {
font-size: 19px;
line-height: 26px;
}
body.home-page .topic-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
body.home-page .topic-card {
border-radius: 21px;
aspect-ratio: 435 / 245;
}
body.home-page .topic-card-copy {
left: 28px;
right: 28px;
bottom: 14px;
gap: 9px;
}
body.home-page .topic-card-label {
padding: 5px 9px;
border-radius: 7px;
color: #FADC44;
background: rgba(0, 0, 0, 0.6);
font-size: 16px;
line-height: 23px;
font-weight: 500;
}
body.home-page .topic-card-title {
font-size: 21px;
line-height: 28px;
}
body.home-page .topic-section .section-title {
gap: 12px;
}
body.home-page .topic-section .section-title::before {
width: 8px;
height: 22px;
border-radius: 6px;
}
body.home-page .topic-section .ghost-action-button {
padding: 4px 4px 4px 10px;
background: rgba(255, 255, 255, 0.05);
border-color: rgba(255, 255, 255, 0.05);
border-radius: 999px;
}
body.home-page .topic-section .ghost-action-text {
font-size: 12px;
line-height: 18px;
color: rgba(255, 255, 255, 0.55);
}
body.home-page .topic-section .chevron-icon-img {
width: 16px;
height: 16px;
}
body.home-page .download-fab,
body.home-page .floating-action {
right: max(60px, calc((100vw - 1800px) / 2));
}
}
/* Homepage redesign — Figma frames 40001:93695 (desktop) and 40094:457099 (mobile). */
.home-page {
background: #0F0F0F;
color: #FFFFFF;
padding-top: 90px;
}
.home-page .page-shell {
width: 100%;
max-width: none;
margin: 0;
padding: 0 0 36px;
gap: 36px;
align-items: center;
box-sizing: border-box;
}
@media (min-width: 768px) and (max-width: 1023px) {
.home-page .page-shell {
padding: 24px 40px 36px;
gap: 28px;
align-items: stretch;
}
.home-page .page-shell.page-shell--no-hero {
padding-top: 24px;
}
.home-page .hero-section,
.home-page .home-announcement,
.home-page .square-promo,
.home-page .home-ad-row,
.home-page .content-section {
width: 100%;
max-width: none;
}
.home-page .hero-banner {
border-radius: 24px;
overflow: hidden;
outline: 1px solid #494949;
outline-offset: -1px;
}
.home-page .hero-swiper {
border-radius: 24px;
border: 0;
}
.home-page .hero-info {
left: 40px;
top: auto;
bottom: 36px;
width: min(520px, 55%);
}
.home-page .hero-thumbs {
right: 40px;
bottom: 28px;
}
}
@media (min-width: 768px) {
.home-page .page-shell.page-shell--no-hero {
padding-top: 36px;
}
}
.home-page .hero-section {
width: 100%;
align-self: stretch;
background: transparent;
}
.home-page .hero-banner,
.home-page .hero-card,
.home-page .hero-image,
.home-page .hero-overlay {
width: 100%;
height: clamp(320px, 36.98vw, 710px);
}
.home-page .hero-swiper {
border: 0;
border-radius: 0;
}
.home-page .hero-overlay {
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.08) 62%, #0F0F0F 100%);
}
.home-page .hero-info {
left: 70px;
top: 48.3%;
bottom: auto;
width: min(628px, 46vw);
gap: 16px;
}
.home-page .hero-kicker {
padding: 4px 12px;
color: #EC237F;
background: rgba(255, 74, 74, 0.08);
border-radius: 999px;
font-size: 18px;
line-height: 24px;
}
.home-page .hero-title {
font-size: 36px;
line-height: 46px;
font-weight: 600;
}
.home-page .hero-tag {
padding: 5px 10px;
}
.home-page .hero-tag-text {
font-size: 16px;
line-height: 22px;
}
.home-page .hero-summary {
font-size: 18px;
line-height: 28px;
opacity: 1;
-webkit-line-clamp: 2;
}
.home-page .hero-play-button {
width: 142px;
height: 43px;
background: #EC237F;
box-shadow: 0 7px 17px rgba(241, 43, 158, 0.22);
border-radius: 9px;
}
.home-page .hero-play-icon {
width: 20px;
height: 20px;
filter: invert(1);
}
.home-page .hero-play-button .hero-play-text,
.home-page .hero-play-button .text-white-xs {
color: #FFFFFF;
font-size: 18px;
line-height: 18px;
}
.home-page .hero-swiper .swiper-pagination.hero-dots {
display: none !important;
}
.home-page .hero-thumbs {
position: absolute;
right: 70px;
bottom: 40px;
z-index: 4;
display: flex;
align-items: center;
gap: 11px;
}
.home-page .hero-thumb {
width: 100px;
height: 140px;
border-radius: 12px;
border: 0;
transform: scale(1);
transform-origin: center;
transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.25s ease;
will-change: transform;
}
.home-page .hero-thumb.is-active {
width: 100px;
height: 140px;
transform: scaleX(1.16) scaleY(1.157143);
z-index: 1;
}
.home-page .hero-thumb-img,
.home-page .hero-thumb-overlay {
border-radius: 12px;
}
.home-page .hero-thumb-nav {
width: 26px;
height: 26px;
padding: 0;
border: 0;
background: transparent;
display: grid;
place-items: center;
cursor: pointer;
}
.home-page .hero-thumb-nav img {
width: 26px;
height: 26px;
}
.home-page .hero-thumb-prev img {
transform: rotate(180deg);
}
.home-page .home-announcement,
.home-page .square-promo,
.home-page .home-ad-row,
.home-page .content-section {
width: 100%;
max-width: 1800px;
flex-shrink: 0;
margin: 0 auto;
}
.home-page .home-announcement {
height: 48px;
display: flex;
align-items: stretch;
gap: 7px;
overflow: hidden;
}
.home-page .home-announcement-label {
width: 69px;
min-width: 69px;
height: 48px;
}
.home-page .home-announcement-label img {
display: block;
width: 100%;
height: 100%;
}
.home-page .home-announcement-content {
min-width: 0;
flex: 1 1 auto;
display: flex;
align-items: center;
padding: 10px 18px;
color: #FFFFFF;
background: rgba(255, 74, 74, 0.08);
border: 1px solid rgba(255, 74, 74, 0.08);
border-radius: 9px;
font-size: 18px;
line-height: 24px;
white-space: nowrap;
overflow: hidden;
}
.home-page .home-announcement-marquee {
display: flex;
width: max-content;
will-change: transform;
animation: home-announcement-marquee 30s linear infinite;
}
.home-page .home-announcement-copy {
display: block;
flex: 0 0 auto;
padding-right: 80px;
}
.home-page .home-announcement-separator {
margin: 0 16px;
color: rgba(255, 255, 255, 0.45);
}
.home-page .home-announcement:hover .home-announcement-marquee {
animation-play-state: paused;
}
@keyframes home-announcement-marquee {
from {
transform: translate3d(0, 0, 0);
}
to {
transform: translate3d(-50%, 0, 0);
}
}
.home-page .content-section,
.home-page .ranking-section {
padding: 0;
gap: 24px;
align-items: stretch;
background: transparent;
}
.home-page .topic-section {
background: transparent;
}
.home-page .topic-section .section-title::before {
width: 8px;
height: 22px;
border-radius: 6px;
}
.home-page .section-header {
overflow: visible;
}
.home-page .section-heading {
gap: 12px;
}
.home-page .section-title {
display: flex;
align-items: center;
gap: 12px;
color: #FFFFFF;
font-size: 24px;
line-height: 32px;
font-weight: 600;
}
.home-page .section-title::before {
content: "";
width: 6px;
height: 24px;
flex: 0 0 auto;
background: #EC237F;
border-radius: 3px;
}
.home-page .section-subtitle {
color: rgba(255, 255, 255, 0.55);
font-size: 16px;
line-height: 22px;
}
.home-page .ghost-action-button {
padding: 8px 14px;
background: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.1);
border-radius: 16px;
}
.home-page .ghost-action-text {
color: rgba(255, 255, 255, 0.6);
font-size: 12px;
line-height: 18px;
}
.home-page .card-grid,
.home-page .ranking-list {
grid-template-columns: repeat(5, minmax(0, 1fr));
column-gap: 18px;
row-gap: 20px;
}
.home-page .card-grid > .poster-card:nth-child(n + 11) {
display: none;
}
.home-page .poster-card,
.home-page .ranking-card {
min-height: 0;
border-radius: 21px;
}
.home-page .poster-cover,
.home-page .ranking-cover {
height: auto;
padding: 0;
aspect-ratio: 5 / 7;
}
.home-page .poster-card-body,
.home-page .ranking-card-body {
min-height: 105px;
padding: 12px 10px;
gap: 6px;
background: rgba(255, 255, 255, 0.05);
}
.home-page .poster-card-title,
.home-page .ranking-card-title {
min-height: 22px;
color: #FFFFFF;
font-size: 16px;
line-height: 22px;
font-weight: 600;
}
.home-page .poster-card-subtitle,
.home-page .ranking-card-subtitle {
min-height: 20px;
color: rgba(255, 255, 255, 0.55);
font-size: 14px;
line-height: 20px;
}
/* 集数占了标签行右侧:放不下的标签整颗换行并被隐藏,而不是每颗都截成省略号 */
.home-page .card-grid .poster-card-tags {
flex-wrap: wrap;
height: 26px;
}
.home-page .poster-card-episode {
flex-shrink: 0;
margin-left: 8px;
color: rgba(255, 255, 255, 0.55);
font-size: 14px;
line-height: 20px;
white-space: nowrap;
}
.home-page .poster-card-tag,
.home-page .ranking-card-tag {
width: max-content;
max-width: 100%;
padding: 2px 8px;
color: #EC237F;
background: rgba(255, 74, 74, 0.08);
border: 1px solid rgba(255, 74, 74, 0.08);
border-radius: 9px;
font-size: 14px;
line-height: 20px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-page .poster-like-badge,
.home-page .poster-card-heat,
.home-page .ranking-card-heat {
display: none;
}
.home-page .episode-badge,
.home-page .ranking-episode-badge {
right: 8px;
bottom: 12px;
min-height: 28px;
height: 28px;
padding: 3px 8px;
border-radius: 6px;
}
.home-page .episode-badge .text-white-xs,
.home-page .ranking-episode-badge .text-white-xs {
color: #FFFFFF;
font-size: 16px;
line-height: 22px;
}
.home-page .topic-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
.home-page .topic-card {
position: relative;
aspect-ratio: 373 / 210;
overflow: hidden;
border-radius: 18px;
color: #FFFFFF;
text-decoration: none;
}
.home-page .topic-card:nth-child(n + 5) {
display: none;
}
.home-page .topic-card-image,
.home-page .topic-card-overlay {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.home-page .topic-card-image {
object-fit: cover;
}
.home-page .topic-card-overlay {
background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, 0.72) 100%);
}
.home-page .topic-card-copy {
position: absolute;
left: 24px;
right: 24px;
bottom: 12px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.home-page .topic-card-label {
padding: 4px 8px;
color: #EC237F;
background: rgba(0, 0, 0, 0.6);
border-radius: 6px;
font-size: 14px;
line-height: 20px;
}
.home-page .topic-card-title {
max-width: 100%;
font-size: 18px;
line-height: 24px;
font-weight: 600;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-page .download-fab {
right: max(60px, calc((100vw - 1800px) / 2));
bottom: 138px;
background: #EC237F;
}
.home-page .download-fab-text {
color: #FFFFFF;
}
.home-page .floating-action {
right: max(60px, calc((100vw - 1800px) / 2));
bottom: 60px;
background: #EC237F;
}
@media (min-width: 1024px) and (max-width: 1279px) {
.home-page .hero-thumbs {
transform: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.home-page .hero-thumbs {
transform: scale(0.85);
transform-origin: right bottom;
}
}
/* Keep 5 columns on wide PC; only drop below tablet landscape. */
@media (min-width: 768px) and (max-width: 1023px) {
.home-page .card-grid,
.home-page .ranking-list {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.home-page .hero-thumbs {
display: none;
}
.home-page .topic-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 767px) {
body.home-page {
padding-top: 48px;
padding-bottom: 0 !important;
}
.home-page .page-shell {
width: 100%;
max-width: none;
padding: 12px 16px 24px;
gap: 18px;
align-items: stretch;
}
.home-page .hero-section {
width: 100%;
}
.home-page .hero-banner,
.home-page .hero-card,
.home-page .hero-image,
.home-page .hero-overlay {
width: 100%;
height: auto;
aspect-ratio: 343 / 154;
}
.home-page .hero-swiper {
border: 0;
border-radius: 12px;
}
.home-page .hero-info,
.home-page .hero-thumbs {
display: none !important;
}
.home-page .hero-overlay {
display: none;
}
.home-page .hero-swiper .swiper-pagination.hero-dots {
left: auto;
right: 32px;
bottom: 16px;
width: auto;
padding: 0;
display: flex !important;
gap: 6px;
}
.home-page .hero-dots .hero-dot,
.home-page .hero-dot {
width: 6px;
height: 6px;
background: #FFFFFF;
opacity: 0.3;
}
.home-page .hero-dots .hero-dot--active,
.home-page .hero-dot--active {
width: 24px;
height: 6px;
background: #EC237F;
opacity: 1;
}
.home-page .home-announcement,
.home-page .square-promo,
.home-page .home-ad-row,
.home-page .content-section {
width: 100%;
max-width: none;
margin: 0;
}
.home-page .home-announcement {
height: 28px;
gap: 7px;
}
.home-page .home-announcement-label {
width: 40px;
min-width: 40px;
height: 28px;
}
.home-page .home-announcement-content {
padding: 4px 10px;
border-radius: 6px;
font-size: 12px;
line-height: 18px;
}
.home-page .home-announcement-marquee {
animation-duration: 22s;
}
.home-page .home-announcement-copy {
padding-right: 40px;
}
.home-page .content-section,
.home-page .ranking-section {
padding: 0;
gap: 12px;
border: 0;
background: transparent;
}
.home-page .section-header {
align-items: flex-start;
}
.home-page .section-heading {
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.home-page .section-title,
.home-page .ranking-title {
gap: 4px;
font-size: 16px;
line-height: 22px;
font-weight: 600;
}
.home-page .section-title::before,
.home-page .ranking-title::before {
width: 4px;
height: 14px;
background: #EC237F;
border-radius: 3px;
}
.home-page .section-subtitle {
display: block;
color: rgba(255, 255, 255, 0.55);
font-size: 12px;
line-height: 18px;
}
.home-page .ghost-action-button {
padding: 4px 4px 4px 10px;
gap: 0;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.05);
border-radius: 999px;
}
.home-page .ghost-action-text {
font-size: 0;
line-height: 16px;
}
.home-page .ghost-action-text::after {
content: "更多";
color: rgba(255, 255, 255, 0.55);
font-size: 10px;
line-height: 16px;
}
.home-page .chevron-icon-img {
width: 16px;
height: 16px;
opacity: 0.55;
filter: none;
}
.home-page .card-grid,
.home-page .ranking-list {
grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: 7px;
row-gap: 12px;
}
.home-page .poster-card,
.home-page .ranking-card {
min-height: 0;
border-radius: 0;
}
.home-page .poster-cover,
.home-page .ranking-cover {
height: auto;
padding: 0;
aspect-ratio: 3 / 4;
border-radius: 12px;
}
.home-page .poster-card-body,
.home-page .ranking-card-body {
min-height: 80px;
padding: 8px 0;
gap: 4px;
background: transparent;
}
.home-page .poster-card-title,
.home-page .ranking-card-title {
min-height: 20px;
font-family: PingFang SC, sans-serif;
font-size: 14px;
line-height: 20px;
font-weight: 400;
white-space: nowrap;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
.home-page .poster-card-subtitle,
.home-page .ranking-card-subtitle {
min-height: 18px;
font-size: 12px;
line-height: 18px;
white-space: nowrap;
display: block;
}
.home-page .poster-card-tag,
.home-page .ranking-card-tag {
padding: 2px 8px;
font-size: 12px;
line-height: 18px;
}
.home-page .card-grid .poster-card-tags {
height: 24px;
}
.home-page .poster-card-episode {
font-size: 12px;
line-height: 18px;
}
.home-page .episode-badge,
.home-page .ranking-episode-badge {
right: 8px;
bottom: 4px;
min-height: 26px;
height: 26px;
padding: 3px 8px;
}
.home-page .episode-badge .text-white-xs,
.home-page .ranking-episode-badge .text-white-xs {
font-size: 12px;
line-height: 18px;
}
.home-page .poster-corner-badges {
top: 8px;
right: 8px;
}
.home-page .poster-corner-badges .hot-badge-large,
.home-page .poster-corner-badges .community-badge,
.home-page .poster-corner-badges .free-badge-large {
padding: 4px 8px;
border-radius: 6px;
}
.home-page .ranking-badge,
.home-page .rank-bg-gold,
.home-page .rank-bg-silver,
.home-page .rank-bg-bronze,
.home-page .rank-bg-dark {
width: 34px;
height: 28px;
}
.home-page .rank-text {
width: 34px;
height: 28px;
font-size: 14px;
line-height: 20px;
}
.home-page .topic-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.home-page .topic-card {
aspect-ratio: 343 / 194;
border-radius: 18px;
}
.home-page .topic-card-copy {
left: 12px;
right: 12px;
bottom: 10px;
gap: 6px;
}
.home-page .topic-card-label {
font-size: 12px;
line-height: 18px;
}
.home-page .topic-card-title {
font-size: 16px;
line-height: 22px;
}
.home-page .h5-tabbar,
.home-page .download-fab {
display: none !important;
}
.home-page .floating-action {
width: 36px;
height: 36px;
right: 32px;
bottom: 32px;
background: rgba(255, 255, 255, 0.1);
}
}
@media (prefers-reduced-motion: reduce) {
.home-page .home-announcement-marquee {
animation: none;
}
.home-page .home-announcement-copy[aria-hidden="true"] {
display: none;
}
}
/* Mobile homepage hero — Figma 40726:77145 / title overlay 40726:77159. */
@media (max-width: 767px) {
body.home-page .page-shell {
padding-top: 0;
}
body.home-page .hero-section {
width: calc(100% + 32px);
margin-top: 0;
margin-left: -16px;
overflow: hidden;
}
body.home-page .hero-banner,
body.home-page .hero-swiper {
width: 100%;
height: auto;
aspect-ratio: 375 / 138.67;
border: 0;
border-radius: 0;
}
body.home-page .hero-swiper .swiper-slide,
body.home-page .hero-card,
body.home-page .hero-image {
width: 100%;
height: 100%;
aspect-ratio: auto;
}
body.home-page .hero-image {
inset: 0;
object-fit: cover;
object-position: center;
}
body.home-page .hero-overlay {
display: block;
top: auto;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 36.057%;
aspect-ratio: auto;
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000 100%);
}
body.home-page .hero-info {
display: flex !important;
top: auto;
right: auto;
bottom: 7%;
left: 14px;
width: calc(100% - 116px);
max-width: none;
gap: 0;
z-index: 3;
}
body.home-page .hero-kicker,
body.home-page .hero-play-button {
display: none;
}
body.home-page .hero-title {
display: block;
width: 100%;
color: #fff;
font-family: "PingFang SC", sans-serif;
font-size: 16px;
font-weight: 600;
line-height: 22px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.home-page .hero-swiper .swiper-pagination.hero-dots {
top: auto;
right: 14px;
bottom: 8.41%;
left: auto;
width: auto;
padding: 0;
gap: 4px;
z-index: 4;
}
body.home-page .hero-dots .hero-dot,
body.home-page .hero-dot {
width: 4px;
height: 4px;
margin: 0 !important;
background: rgba(255, 255, 255, 0.6);
border-radius: 3px;
opacity: 0.3;
}
body.home-page .hero-dots .hero-dot--active,
body.home-page .hero-dot--active {
width: 12px;
height: 4px;
background: #ec237f;
border-radius: 3px;
opacity: 1;
}
}
/* PC homepage hero — Figma 40635:135284 / banner 40726:15774. */
@media (min-width: 1024px) {
body.home-page .hero-section {
--hero-s: calc(100vw / 1920px);
width: 100vw;
height: calc(710px * var(--hero-s));
max-width: none;
margin-left: calc(50% - 50vw);
margin-right: calc(50% - 50vw);
overflow: hidden;
background: #0f0f0f;
}
body.home-page .hero-banner,
body.home-page .hero-swiper,
body.home-page .hero-swiper .swiper-slide,
body.home-page .hero-card,
body.home-page .hero-image,
body.home-page .hero-overlay {
width: 100%;
height: 100%;
max-height: none;
border: 0;
border-radius: 0;
}
body.home-page .hero-image {
left: calc(-2px * var(--hero-s));
width: calc(1923 / 1920 * 100%);
object-fit: cover;
object-position: center;
}
body.home-page .hero-overlay {
inset: 0;
background:
linear-gradient(180deg, rgba(0, 0, 0, 0) 60%, #000 100%) left bottom / 100% calc(206px * var(--hero-s)) no-repeat,
radial-gradient(ellipse 76% 72% at 0% 100%, rgba(0, 0, 0, 0.56) 0%, rgba(0, 0, 0, 0.26) 56%, rgba(0, 0, 0, 0) 100%);
}
body.home-page .hero-info {
top: auto;
right: auto;
bottom: calc(65px * var(--hero-s));
left: calc(184px * var(--hero-s));
width: calc(787px * var(--hero-s));
max-width: calc(100% - 1100px * var(--hero-s));
gap: calc(16px * var(--hero-s));
}
body.home-page .hero-kicker {
padding: calc(4px * var(--hero-s)) calc(12px * var(--hero-s));
color: #fff;
background: #ec237f;
border-radius: 999px;
font-size: calc(18px * var(--hero-s));
line-height: calc(24px * var(--hero-s));
font-weight: 400;
white-space: nowrap;
}
body.home-page .hero-title {
display: block;
width: 100%;
color: #fff;
font-size: calc(36px * var(--hero-s));
line-height: calc(46px * var(--hero-s));
font-weight: 400;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
word-break: keep-all;
}
body.home-page .hero-play-button {
width: auto;
height: auto;
min-width: 0;
min-height: 0;
padding: calc(14px * var(--hero-s)) calc(24px * var(--hero-s));
gap: calc(8px * var(--hero-s));
color: #fff;
background: rgba(255, 255, 255, 0.2);
border-radius: calc(49px * var(--hero-s));
box-shadow: none;
-webkit-backdrop-filter: blur(2px);
backdrop-filter: blur(2px);
}
body.home-page .hero-play-icon {
display: block;
width: calc(29px * var(--hero-s));
height: calc(32px * var(--hero-s));
margin: calc(7px * var(--hero-s)) calc(8.5px * var(--hero-s));
flex: 0 0 auto;
object-fit: contain;
filter: none;
}
body.home-page .hero-play-text,
body.home-page .hero-play-button .text-white-xs {
color: #fff;
font-size: calc(28px * var(--hero-s));
line-height: calc(40px * var(--hero-s));
font-weight: 400;
white-space: nowrap;
}
body.home-page .hero-thumbs {
top: auto;
right: calc(218px * var(--hero-s));
bottom: calc(60px * var(--hero-s));
left: auto;
gap: calc(14px * var(--hero-s));
transform: none;
align-items: center;
}
body.home-page .hero-thumb {
width: calc(100px * var(--hero-s));
height: calc(140px * var(--hero-s));
flex: 0 0 auto;
border: 0;
border-radius: calc(12px * var(--hero-s));
transform: scale(1);
transform-origin: center;
transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
will-change: transform;
}
body.home-page .hero-thumb.is-active {
width: calc(100px * var(--hero-s));
height: calc(140px * var(--hero-s));
transform: scaleX(1.16) scaleY(1.157143);
z-index: 1;
}
body.home-page .hero-thumb-img,
body.home-page .hero-thumb-overlay {
border-radius: inherit;
}
body.home-page .hero-thumb-overlay {
background: #000;
opacity: 0.5;
}
body.home-page .hero-thumb.is-active .hero-thumb-overlay {
opacity: 0;
}
body.home-page .hero-thumb-nav,
body.home-page .hero-thumb-nav img {
width: calc(26px * var(--hero-s));
height: calc(26px * var(--hero-s));
flex: 0 0 auto;
}
body.home-page .hero-thumb-prev img {
transform: none;
}
body.home-page .hero-swiper .swiper-pagination.hero-dots {
display: none !important;
}
}
.hero-section {
align-self: stretch;
height: auto;
padding: 0;
background: #0A0A0A;
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 32px;
display: flex;
}
.hero-banner {
width: 100%;
height: 343px;
position: relative;
}
.hero-swiper {
width: 100%;
height: 100%;
border-radius: 26px;
overflow: hidden;
border: 1px solid #3A3A3A;
}
.hero-swiper .swiper-slide {
height: 100%;
}
.hero-card {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
display: block;
text-decoration: none;
color: inherit;
cursor: pointer;
}
.hero-image {
width: 100%;
height: 100%;
left: 0;
top: 0;
position: absolute;
object-fit: cover;
}
.hero-overlay {
width: 100%;
height: 100%;
left: 0;
top: 0;
position: absolute;
background: linear-gradient(180deg, rgba(5.10, 6.38, 15.30, 0.18) 0%, rgba(5.10, 5.10, 12.75, 0.35) 55%, rgba(3.82, 5.10, 12.75, 0.95) 100%);
pointer-events: none;
}
.hero-info {
width: 414px;
left: 102px;
bottom: 42px;
position: absolute;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 16px;
display: flex;
z-index: 2;
}
.hero-title {
align-self: stretch;
color: white;
font-size: 22px;
font-family: PingFang SC;
font-weight: 400;
line-height: 28px;
word-wrap: break-word;
}
.hero-summary {
align-self: stretch;
opacity: 0.6;
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.hero-play-button {
width: 142px;
height: 43px;
background: #EC237F;
box-shadow: 0 7px 17px rgba(250, 220, 68, 0.28);
overflow: hidden;
border-radius: 9px;
justify-content: center;
align-items: center;
gap: 8px;
display: flex;
text-decoration: none;
position: relative;
left: auto;
top: auto;
z-index: 2;
}
.hero-play-icon {
width: 20px;
height: 20px;
}
.hero-play-text {
color: #fff;
font-size: 12px;
font-family: PingFang SC, sans-serif;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.text-white-xs {
color: #181818;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.hero-thumbs {
display: none;
}
.hero-thumb {
width: 87px;
height: 126px;
padding: 0;
position: relative;
overflow: hidden;
border-radius: 9px;
border: 1px solid rgba(255, 255, 255, 0.12);
cursor: pointer;
background: transparent;
flex-shrink: 0;
transition: width 0.25s ease, height 0.25s ease, border-color 0.25s ease;
}
.hero-thumb.is-active {
width: 95px;
height: 137px;
border: none;
}
.hero-thumb-img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 9px;
}
.hero-thumb-overlay {
inset: 0;
position: absolute;
background: rgba(0, 0, 0, 0.52);
border-radius: 9px;
pointer-events: none;
transition: opacity 0.25s ease;
}
.hero-thumb.is-active .hero-thumb-overlay {
opacity: 0;
}
.hero-thumb:hover:not(.is-active) .hero-thumb-overlay {
background: rgba(0, 0, 0, 0.35);
}
.hero-tags {
position: relative;
left: auto;
top: auto;
overflow: hidden;
justify-content: flex-start;
align-items: flex-start;
gap: 7px;
display: flex;
flex-wrap: wrap;
z-index: 2;
}
.hero-tag {
padding: 5px 10px;
background: rgba(24, 24, 24, 0.60);
overflow: hidden;
border-radius: 5px;
justify-content: flex-start;
align-items: flex-start;
display: flex;
}
.hero-tag-text {
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.content-section {
align-self: stretch;
padding: 0;
background: #0A0A0A;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 24px;
display: flex;
}
.section-header {
width: 100%;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
}
.section-heading {
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 4px;
display: flex;
}
.section-title {
color: white;
font-size: 22px;
font-family: PingFang SC;
font-weight: 400;
line-height: 28px;
word-wrap: break-word;
}
.section-subtitle {
color: #8A8A8A;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.flex-spacer {
flex: 1 1 0;
height: 9px;
position: relative;
}
.ghost-action-button {
padding: 8px 14px;
background: #181818;
overflow: hidden;
border-radius: 16px;
border: 1px solid #2A2A2A;
justify-content: flex-start;
align-items: center;
gap: 4px;
display: flex;
text-decoration: none;
color: inherit;
cursor: pointer;
}
.ghost-action-text {
color: #F5F5F5;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
display: inline-flex;
align-items: center;
}
.chevron-icon {
width: 14px;
height: 14px;
position: relative;
overflow: hidden;
}
.chevron-icon-stroke {
width: 3px;
height: 6px;
left: 6px;
top: 4px;
position: absolute;
border: 2px solid #8F8F9F;
}
.chevron-icon-img {
width: 14px;
height: 14px;
display: block;
}
.card-grid {
width: 100%;
display: grid;
grid-template-columns: repeat(8, minmax(0, 1fr));
justify-content: stretch;
align-items: stretch;
gap: 14px 16px;
}
.card-row {
display: contents;
}
.poster-card {
width: 100%;
min-width: 0;
background: transparent;
overflow: hidden;
border-radius: 14px;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
display: flex;
text-decoration: none;
color: inherit;
cursor: pointer;
}
.poster-cover {
align-self: stretch;
height: auto;
aspect-ratio: 3 / 4;
position: relative;
overflow: hidden;
}
.poster-cover-img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.poster-like-badge {
height: 24px;
padding: 5px 7px;
left: 8px;
right: auto;
top: auto;
bottom: 8px;
position: absolute;
overflow: hidden;
justify-content: center;
align-items: center;
gap: 4px;
display: inline-flex;
box-sizing: border-box;
z-index: 2;
}
.poster-like-badge-icon {
width: 14px;
height: 14px;
display: block;
object-fit: contain;
flex-shrink: 0;
filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.55));
}
.poster-like-badge-count {
color: rgba(255, 255, 255, 0.92);
font-size: 11px;
font-family: "Noto Sans SC", "PingFang SC", sans-serif;
font-weight: 400;
line-height: 14px;
white-space: nowrap;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.55);
}
.episode-badge {
height: 28px;
padding: 4px 8px;
left: auto;
right: 8px;
top: auto;
bottom: 8px;
position: absolute;
background: rgba(0, 0, 0, 0.60);
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
font-size: 12px;
color: #fff;
}
.episode-badge .text-white-xs,
.episode-badge-shifted .text-white-xs,
.ranking-episode-badge .text-white-xs {
color: #fff;
}
.poster-card-body {
align-self: stretch;
flex: 1 1 auto;
padding: 8px 10px;
background: rgba(255, 255, 255, 0.05);
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
gap: 4px;
display: flex;
box-sizing: border-box;
}
.poster-card-title {
align-self: stretch;
min-height: 20px;
color: #F5F5F5;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.poster-card-subtitle {
align-self: stretch;
min-height: 18px;
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.poster-card-meta {
align-self: stretch;
margin-top: auto;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
}
.poster-card-tags {
display: flex;
min-width: 0;
align-items: center;
gap: 6px;
overflow: hidden;
}
.poster-card-tags .poster-card-tag {
flex: 0 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.poster-card-tag {
color: #8A8A8A;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.poster-card-heat {
color: #808080;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.free-badge-large {
padding: 4px 8px;
left: 132px;
top: 8px;
position: absolute;
background: #10B981;
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
}
.poster-corner-badges {
position: absolute;
top: 12px;
right: 12px;
z-index: 2;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 4px;
}
.poster-flag-badge {
display: block;
width: 56px;
height: 34px;
object-fit: contain;
flex-shrink: 0;
}
.poster-corner-badges .free-badge-large,
.poster-corner-badges .hot-badge-large,
.poster-corner-badges .community-badge,
.poster-corner-badges .ranking-hot-badge,
.poster-corner-badges .ranking-free-badge,
.poster-corner-badges .poster-flag-badge {
position: static;
left: auto;
top: auto;
}
.episode-badge-shifted {
height: 28px;
padding: 4px 8px;
left: 131px;
top: 204px;
position: absolute;
background: rgba(0, 0, 0, 0.60);
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
}
.hot-badge-large {
padding: 4px 8px;
left: 132px;
top: 8px;
position: absolute;
background: linear-gradient(90deg, #FF5A5F 0%, #D9152F 100%);
border-radius: 8px;
justify-content: center;
align-items: center;
display: inline-flex;
box-sizing: border-box;
}
.hot-badge-large .text-white-xs {
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.ranking-section {
align-self: stretch;
padding: 0;
background: #0A0A0A;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 24px;
display: flex;
}
.ranking-main {
width: 100%;
max-width: 100%;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 14px;
display: flex;
}
.ranking-header {
align-self: stretch;
height: 30px;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
}
.ranking-title {
width: 160px;
height: 30px;
color: white;
font-size: 22px;
font-family: PingFang SC;
font-weight: 400;
line-height: 28px;
word-wrap: break-word;
}
.ranking-more {
justify-content: flex-start;
align-items: center;
gap: 4px;
display: flex;
text-decoration: none;
color: inherit;
}
.ranking-more-text {
color: #808080;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.ranking-list {
align-self: stretch;
width: 100%;
display: grid;
grid-template-columns: repeat(8, minmax(0, 1fr));
justify-content: stretch;
align-items: stretch;
gap: 14px 16px;
}
.ranking-card {
width: 100%;
min-width: 0;
background: transparent;
overflow: hidden;
border-radius: 14px;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
display: flex;
text-decoration: none;
color: inherit;
flex-shrink: 0;
}
.section-empty {
width: 100%;
grid-column: 1 / -1;
padding: 32px 16px;
color: rgba(255, 255, 255, 0.45);
font-size: 14px;
text-align: center;
}
.ranking-cover {
align-self: stretch;
height: auto;
aspect-ratio: 3 / 4;
position: relative;
overflow: hidden;
}
.ranking-cover-img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
display: block;
z-index: 0;
}
.ranking-hot-badge {
padding: 4px 8px;
left: auto;
right: 8px;
top: 8px;
position: absolute;
z-index: 2;
background: linear-gradient(90deg, #FF5A5F 0%, #D9152F 100%);
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
}
.ranking-episode-badge {
height: 28px;
padding: 4px 8px;
left: auto;
right: 8px;
top: auto;
bottom: 8px;
position: absolute;
z-index: 2;
background: rgba(0, 0, 0, 0.60);
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
box-sizing: border-box;
}
.ranking-badge {
width: 43px;
height: 34px;
left: 0;
bottom: 0;
top: auto;
position: absolute;
z-index: 2;
}
.rank-bg-gold,
.rank-bg-silver,
.rank-bg-bronze,
.rank-bg-dark {
width: 43px;
height: 34px;
left: 0;
top: 0;
position: absolute;
background-repeat: no-repeat;
background-position: center;
background-size: 100% 100%;
}
.rank-bg-gold {
background-image: url("/static/images/r_1.png");
}
.rank-bg-silver {
background-image: url("/static/images/r_2.png");
}
.rank-bg-bronze {
background-image: url("/static/images/r_3.png");
}
.rank-bg-dark {
background-image: url("/static/images/r_4.png");
}
.rank-text {
width: 43px;
height: 35px;
left: 0;
top: 0;
position: absolute;
text-align: center;
justify-content: center;
display: flex;
flex-direction: column;
color: white;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
line-height: 24px;
word-wrap: break-word;
}
.ranking-card-body {
align-self: stretch;
flex: 1 1 auto;
padding: 8px 10px;
background: rgba(255, 255, 255, 0.05);
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
gap: 4px;
display: flex;
box-sizing: border-box;
}
.ranking-card-title {
align-self: stretch;
min-height: 20px;
color: #F5F5F5;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
line-height: 20px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.ranking-card-subtitle {
align-self: stretch;
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.ranking-card-meta {
align-self: stretch;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
}
.ranking-card-tag {
color: #8A8A8A;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
flex-shrink: 0;
}
.ranking-card-heat {
color: #808080;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
flex-shrink: 0;
}
.rank-spacer {
flex: 1 1 0;
height: 8px;
position: relative;
min-width: 4px;
}
.ranking-free-badge {
padding: 4px 8px;
left: auto;
right: 8px;
top: 8px;
position: absolute;
z-index: 2;
background: #10B981;
border-radius: 8px;
justify-content: center;
align-items: center;
display: flex;
}
.sidebar-column {
display: none;
}
.sidebar-pc {
display: none;
}
.sidebar-h5 {
display: none;
}
.sidebar-item {
align-self: stretch;
overflow: hidden;
justify-content: flex-start;
align-items: center;
gap: 11px;
display: flex;
text-decoration: none;
color: inherit;
}
.sidebar-cover {
width: 114px;
height: 151px;
border-radius: 7px;
object-fit: cover;
flex-shrink: 0;
display: block;
}
.sidebar-content {
flex: 1 1 0;
min-width: 0;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 6px;
display: flex;
}
.sidebar-title {
align-self: stretch;
color: white;
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
line-height: 22px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.sidebar-summary {
align-self: stretch;
color: #8A8A8A;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.sidebar-meta {
align-self: stretch;
color: #8A8A8A;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.sidebar-list {
align-self: stretch;
max-height: 391px;
min-height: 0;
overflow-x: hidden;
overflow-y: auto;
flex-direction: column;
justify-content: flex-start;
align-items: center;
display: flex;
-webkit-overflow-scrolling: touch;
}
.sidebar-list-item {
align-self: stretch;
height: 24px;
flex-shrink: 0;
overflow: hidden;
justify-content: space-between;
align-items: center;
display: flex;
text-decoration: none;
color: inherit;
}
.sidebar-list-title {
width: 196px;
height: 18px;
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
flex-shrink: 0;
}
.sidebar-list-meta {
color: #A3A3A3;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
flex-shrink: 0;
white-space: nowrap;
}
.latest-section {
align-self: stretch;
padding: 0;
background: #0A0A0A;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 24px;
display: flex;
}
.community-badge {
padding: 4px 8px;
left: 132px;
top: 8px;
position: absolute;
background: linear-gradient(90deg, #6AA9FF 0%, #3568FF 100%);
border-radius: 8px;
justify-content: center;
align-items: center;
display: inline-flex;
box-sizing: border-box;
}
.community-badge .text-white-xs {
color: white;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
.legacy-footer-layout {
align-self: stretch;
height: 160px;
background: #0A0A0A;
overflow: hidden;
justify-content: flex-start;
align-items: center;
gap: 20px;
display: flex;
}
.legacy-footer-spacer {
width: 520px;
height: 9px;
position: relative;
}
.footer-meta-text {
color: #615970;
font-size: 12px;
font-family: PingFang SC;
font-weight: 400;
line-height: 18px;
word-wrap: break-word;
}
/* —— H5 —— */
.hero-swiper .swiper-pagination.hero-dots {
width: auto;
left: auto;
right: 60px;
top: auto;
bottom: 30px;
position: absolute;
overflow: visible;
justify-content: flex-end;
align-items: center;
gap: 6px;
display: flex !important;
z-index: 3;
padding: 0;
transform: none;
}
.hero-dots .hero-dot,
.hero-dot {
width: 12px;
height: 12px;
background: white;
opacity: 0.3;
border-radius: 9999px;
flex-shrink: 0;
margin: 0 !important;
}
.hero-dots .hero-dot--active,
.hero-dot--active {
width: 36px;
height: 12px;
opacity: 1;
border-radius: 6px;
background: white;
}
@media (max-width: 767px) {
.page-shell {
width: 100%;
max-width: 100%;
padding: 12px 16px;
box-sizing: border-box;
gap: 18px;
align-items: stretch;
}
/* Hero banner */
.hero-section {
height: auto;
padding: 0;
background: transparent;
gap: 0;
}
.hero-banner {
width: 100%;
height: 146px;
}
.hero-swiper {
border-radius: 7.69px;
border: 0.3px solid #3A3A3A;
overflow: hidden;
}
/* H5:Swiper 未初始化前只展示首帧,避免多 slide 占位与布局抖动 */
.hero-swiper.hero-swiper--h5-pending .swiper-wrapper {
display: block;
}
.hero-swiper.hero-swiper--h5-pending .swiper-slide:not(:first-child) {
display: none;
}
.hero-swiper.hero-swiper--h5-pending .hero-dots {
display: none;
}
.hero-card {
width: 100%;
height: 146px;
}
.hero-image {
width: 100%;
height: 146px;
left: 0;
top: 0;
object-fit: cover;
}
.hero-overlay {
width: 100%;
height: 146px;
left: 0;
top: 0;
}
/* H5 轮播也要显示标题/标签/介绍/播放按钮(此前这里把它们隐藏了) */
.hero-thumbs {
display: none !important;
}
.hero-info {
display: flex !important;
left: 18px;
top: 27px;
right: auto;
bottom: auto;
width: 207px;
gap: 6px;
z-index: 2;
}
.hero-title {
font-size: 12px;
line-height: 18px;
}
.hero-tags {
gap: 3.5px;
}
.hero-tag {
padding-left: 5px;
padding-right: 5px;
padding-top: 2.5px;
padding-bottom: 2.5px;
border-radius: 2.5px;
background: rgba(24, 24, 24, 0.6);
}
.hero-tag-text {
font-size: 8px;
line-height: 9px;
}
.hero-summary {
opacity: 0.6;
font-size: 10px;
line-height: 16px;
}
.hero-play-button {
width: 71px;
height: 22px;
border-radius: 4.5px;
box-shadow: none;
gap: 4px;
}
.hero-play-icon {
display: block;
width: 12px;
height: 12px;
object-fit: contain;
}
.hero-play-button .hero-play-text,
.hero-play-button .text-white-xs {
color: #fff;
font-size: 10px;
line-height: 16px;
}
.hero-swiper .swiper-pagination.hero-dots {
width: 100%;
padding: 0 16px;
left: 0;
right: auto;
top: auto;
bottom: 12px;
position: absolute;
overflow: visible;
justify-content: flex-end;
align-items: center;
gap: 6px;
display: inline-flex !important;
box-sizing: border-box;
z-index: 2;
transform: none;
}
.hero-dots .hero-dot,
.hero-dot {
width: 6px;
height: 6px;
background: white;
border-radius: 9999px;
flex-shrink: 0;
opacity: 1;
margin: 0 !important;
}
.hero-dots .hero-dot--active,
.hero-dot--active {
width: 18px;
height: 6px;
background: white;
border-radius: 4px;
opacity: 1;
}
/* Sections */
.content-section,
.latest-section {
padding: 0;
background: transparent;
gap: 18px;
width: 100%;
}
.content-section {
padding-bottom: 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
.content-section::after,
.latest-section::before {
content: none;
}
.section-header,
.ranking-header {
width: 100%;
height: auto;
align-items: center;
overflow: visible;
}
.section-heading {
flex-direction: row;
align-items: center;
gap: 4px;
}
.section-subtitle {
display: none;
}
.section-title,
.ranking-title {
width: auto;
height: auto;
font-size: 18px;
line-height: 24px;
display: inline-flex;
align-items: center;
gap: 4px;
}
.section-title::before,
.ranking-title::before {
content: "";
width: 6px;
height: 16px;
background: #EC237F;
border-radius: 3px;
flex-shrink: 0;
}
.flex-spacer {
display: none;
}
.ghost-action-button {
padding: 0;
background: transparent;
border: none;
border: none;
border-radius: 0;
gap: 2px;
}
.ghost-action-text {
font-size: 0;
color: white;
line-height: 18px;
}
.ghost-action-text::after {
content: "更多";
font-size: 12px;
font-family: PingFang SC, sans-serif;
font-weight: 400;
line-height: 18px;
color: white;
}
.ranking-more-text {
color: white;
}
.chevron-icon-img {
width: 18px;
height: 18px;
opacity: 1;
filter: brightness(0) invert(1);
}
/* Poster grids → 2 columns */
.card-grid {
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
justify-content: stretch;
gap: 7px;
}
.card-row {
display: contents;
}
.poster-card {
width: 100%;
border-radius: 6px;
flex-shrink: 1;
}
.poster-cover {
height: 0;
padding-bottom: 133.33%;
}
.poster-cover-img {
position: absolute;
inset: 0;
}
.episode-badge,
.episode-badge-shifted {
left: auto;
right: 8px;
top: auto;
bottom: 8px;
height: auto;
min-height: 28px;
}
.free-badge-large,
.hot-badge-large {
left: auto;
right: 8px;
top: 8px;
}
.poster-corner-badges {
top: 8px;
right: 8px;
}
.poster-flag-badge {
width: 40px;
height: 26px;
}
.community-badge {
left: auto;
right: 8px;
top: 8px;
padding: 4px 8px;
border-radius: 8px;
}
.poster-card-title {
font-family: "Noto Sans SC", "PingFang SC", sans-serif;
font-weight: 700;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
-webkit-line-clamp: unset;
-webkit-box-orient: unset;
}
.poster-card-tag,
.poster-card-subtitle {
color: #A3A3A3;
}
.poster-card-heat {
color: #D4D4D4;
}
/* Ranking + updates stack */
.ranking-section {
flex-direction: column;
padding: 0;
background: transparent;
gap: 18px;
width: 100%;
border: none;
flex-wrap: nowrap;
}
.ranking-main {
width: 100%;
display: flex;
flex-direction: column;
gap: 18px;
padding-bottom: 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.10);
max-width: none;
}
.ranking-main > .ranking-header {
grid-column: auto;
}
.ranking-list {
display: grid;
grid-template-columns: 1fr 1fr;
justify-content: stretch;
gap: 7px;
width: 100%;
}
.ranking-card {
width: 100%;
border-radius: 6px;
}
.ranking-cover {
height: 0;
padding-bottom: 133.33%;
}
.ranking-episode-badge {
left: auto;
right: 8px;
top: auto;
bottom: 8px;
}
.ranking-hot-badge,
.ranking-free-badge {
left: auto;
right: 8px;
top: 8px;
}
.ranking-corner-badges {
top: 8px;
right: 8px;
}
.ranking-badge {
top: auto;
bottom: 0;
left: 0;
}
.ranking-card-title {
font-size: 14px;
line-height: 20px;
font-family: "Noto Sans SC", "PingFang SC", sans-serif;
font-weight: 700;
white-space: normal;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.ranking-card-body {
padding: 8px 10px;
gap: 4px;
}
.ranking-card-tag,
.ranking-card-subtitle {
color: #A3A3A3;
}
.ranking-card-heat {
color: #D4D4D4;
}
.ranking-more {
text-decoration: none;
gap: 2px;
}
/* 今日更新 list */
.sidebar-column {
width: 100%;
gap: 16px;
border-top: none;
border-bottom: 1px solid rgba(255, 255, 255, 0.10);
padding-top: 0;
padding-bottom: 18px;
overflow: visible;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
.update-grid-pc,
.sidebar-pc {
display: none;
}
.sidebar-h5 {
align-self: stretch;
overflow: hidden;
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
gap: 16px;
display: inline-flex;
width: 100%;
}
.sidebar-item {
align-self: stretch;
align-items: center;
gap: 11px;
width: 100%;
}
.sidebar-cover {
width: 114px;
height: 151px;
border-radius: 7px;
flex-shrink: 0;
object-fit: cover;
}
.sidebar-content {
width: auto;
flex: 1 1 0;
min-width: 0;
max-width: none;
gap: 11px;
}
.sidebar-title {
font-size: 16px;
font-family: "Noto Sans SC", "PingFang SC", sans-serif;
font-weight: 700;
line-height: 22px;
color: white;
white-space: normal;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: unset;
}
.sidebar-summary {
color: #A3A3A3;
font-size: 12px;
line-height: 18px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.sidebar-meta {
color: #A3A3A3;
}
.latest-section {
gap: 18px;
padding-top: 0;
}
.latest-section .card-grid {
width: 100%;
grid-template-columns: 1fr 1fr;
justify-content: stretch;
gap: 7px;
}
.latest-section .poster-card {
width: 100%;
flex: 1 1 auto;
border-radius: 6px;
}
}
/* Keep the Figma homepage overrides last; index.css also contains legacy H5 rules. */
@media (max-width: 767px) {
body.home-page {
padding-top: calc(48px + env(safe-area-inset-top, 0px));
padding-bottom: 0 !important;
}
.home-page .page-shell {
padding: 12px var(--home-h5-gutter) var(--home-h5-section-gap);
gap: var(--home-h5-section-gap);
}
.home-page .section-title,
.home-page .ranking-title {
gap: 6px;
}
.home-page .poster-card-body,
.home-page .ranking-card-body {
height: 80px;
min-height: 80px;
}
}
/* Shared list-card hover treatment, adapted from the reference card interaction. */
@keyframes site-card-shine {
0% {
left: -60%;
opacity: 0;
}
12% {
opacity: 1;
}
100% {
left: 120%;
opacity: 0;
}
}
body.site-shell .poster-card,
body.site-shell .topic-card,
body.site-shell .theme-index-card {
transition: transform 320ms cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 320ms ease;
}
body.site-shell .poster-cover-img,
body.site-shell .topic-card-image,
body.site-shell .theme-index-card > img {
transition: transform 400ms ease;
}
body.site-shell .poster-cover::before,
body.site-shell .topic-card::before,
body.site-shell .theme-index-card::before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: -60%;
width: 45%;
z-index: 4;
pointer-events: none;
opacity: 0;
background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
transform: skewX(-18deg);
}
@media (hover: hover) and (pointer: fine) {
body.site-shell .poster-card:hover,
body.site-shell .topic-card:hover,
body.site-shell .theme-index-card:hover {
transform: translateY(-6px);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5), 0 0 24px rgba(236, 35, 127, 0.3);
}
body.site-shell .poster-card:hover .poster-cover-img,
body.site-shell .topic-card:hover .topic-card-image,
body.site-shell .theme-index-card:hover > img {
transform: scale(1.08);
}
body.site-shell .poster-card:hover .poster-cover::before,
body.site-shell .topic-card:hover::before,
body.site-shell .theme-index-card:hover::before {
animation: site-card-shine 850ms ease forwards;
}
}
body.site-shell .poster-card:focus-visible,
body.site-shell .topic-card:focus-visible,
body.site-shell .theme-index-card:focus-visible {
transform: translateY(-6px);
outline: none;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5), 0 0 24px rgba(236, 35, 127, 0.3);
}
body.site-shell .poster-card:focus-visible .poster-cover-img,
body.site-shell .topic-card:focus-visible .topic-card-image,
body.site-shell .theme-index-card:focus-visible > img {
transform: scale(1.08);
}
@media (prefers-reduced-motion: reduce) {
body.site-shell .poster-card,
body.site-shell .topic-card,
body.site-shell .theme-index-card,
body.site-shell .poster-cover-img,
body.site-shell .topic-card-image,
body.site-shell .theme-index-card > img {
transition-duration: 0.01ms;
}
body.site-shell .poster-card:hover,
body.site-shell .topic-card:hover,
body.site-shell .theme-index-card:hover,
body.site-shell .poster-card:focus-visible,
body.site-shell .topic-card:focus-visible,
body.site-shell .theme-index-card:focus-visible,
body.site-shell .poster-card:hover .poster-cover-img,
body.site-shell .topic-card:hover .topic-card-image,
body.site-shell .theme-index-card:hover > img,
body.site-shell .poster-card:focus-visible .poster-cover-img,
body.site-shell .topic-card:focus-visible .topic-card-image,
body.site-shell .theme-index-card:focus-visible > img {
transform: none;
}
body.site-shell .poster-card:hover .poster-cover::before,
body.site-shell .topic-card:hover::before,
body.site-shell .theme-index-card:hover::before {
animation: none;
}
}
/* 跑马灯里的官方地址链接 */
.home-page .home-announcement-link {
color: #EC237F;
text-decoration: none;
}
.home-page .home-announcement-link:hover {
text-decoration: underline;
}