.rank-page-body { background: #0f0f0f; padding-top: 90px; } .rank-page.page-shell { width: 100%; max-width: none; margin: 0; padding: 36px 60px; box-sizing: border-box; } .rank-hero { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 24px; } .rank-breadcrumb, .rank-channel, .rank-tabs, .rank-hero .card-grid, .rank-ad-list { width: 100%; } .rank-breadcrumb { display: flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, 0.55); font: 400 18px/24px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-breadcrumb a { color: inherit; text-decoration: none; transition: color 180ms ease; } .rank-breadcrumb a:hover, .rank-breadcrumb a:focus-visible, .rank-breadcrumb [aria-current="page"] { color: #ec237f; } .rank-channel { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; } .rank-channel-title { margin: 0; color: #fff; font: 600 24px/32px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-channel-desc { color: rgba(255, 255, 255, 0.55); font: 400 16px/22px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-tabs { display: flex; align-items: center; gap: 18px; } .rank-tab { width: 120px; height: 48px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 9px; background: rgba(255, 255, 255, 0.05); text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease; } .rank-tab:hover, .rank-tab:focus-visible { border-color: rgba(236, 35, 127, 0.5); background: rgba(236, 35, 127, 0.16); } .rank-tab--active, .rank-tab--active:hover, .rank-tab--active:focus-visible { border-color: #ec237f; background: #ec237f; } .rank-tab-text { color: rgba(255, 255, 255, 0.55); font: 400 18px/24px "PingFang SC", "Noto Sans SC", sans-serif; white-space: nowrap; } .rank-tab-text--active { color: #fff; } .rank-hero .card-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; gap: 24px 18px; } .rank-hero .rank-card { width: 100%; min-width: 0; height: auto; aspect-ratio: auto; overflow: hidden; border-radius: 18px; background: transparent; } .rank-hero .rank-card .poster-cover { width: 100%; height: auto; aspect-ratio: 296 / 415; flex: 0 0 auto; padding: 0; } .rank-hero .rank-card .poster-cover-img { position: absolute; inset: 0; } .rank-hero .rank-card .poster-card-body { height: auto; min-height: 104px; flex: 0 0 auto; padding: 12px 10px; gap: 6px; background: rgba(255, 255, 255, 0.05); } .rank-hero .rank-card .poster-card-title { flex: 0 0 auto; min-height: 22px; color: #fff; font: 600 16px/22px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-hero .rank-card .poster-card-subtitle { flex: 0 0 auto; min-height: 20px; color: rgba(255, 255, 255, 0.55); font: 400 14px/20px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-hero .rank-card .poster-card-meta { min-height: 24px; margin-top: auto; flex: 0 0 auto; } .rank-hero .rank-card .ranking-card-tags { display: flex; max-width: 100%; min-width: 0; align-items: center; gap: 6px; overflow: hidden; } .rank-hero .rank-card .ranking-card-tag { flex: 0 1 auto; min-width: 0; max-width: 100%; padding: 2px 8px; overflow: hidden; border: 1px solid rgba(255, 74, 74, 0.08); border-radius: 9px; background: rgba(255, 74, 74, 0.08); color: #ec237f; font: 400 14px/20px "PingFang SC", "Noto Sans SC", sans-serif; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box; } .rank-hero .episode-badge { right: 8px; bottom: 8px; height: auto; min-height: 24px; padding: 3px 8px; border-radius: 6px; box-sizing: border-box; } .poster-rank-badge, .poster-rank-bg-gold, .poster-rank-bg-silver, .poster-rank-bg-bronze, .poster-rank-bg-dark { width: 43px; height: 34px; } .poster-rank-badge { position: absolute; left: 0; bottom: 0; z-index: 2; } .poster-rank-bg-gold, .poster-rank-bg-silver, .poster-rank-bg-bronze, .poster-rank-bg-dark { position: absolute; inset: 0; background-position: center; background-repeat: no-repeat; background-size: 100% 100%; } .poster-rank-bg-gold { background-image: url("../images/r_1.png"); } .poster-rank-bg-silver { background-image: url("../images/r_2.png"); } .poster-rank-bg-bronze { background-image: url("../images/r_3.png"); } .poster-rank-bg-dark { background-image: url("../images/r_4.png"); } .poster-rank-text { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font: 600 18px/24px "PingFang SC", "Noto Sans SC", sans-serif; } .rank-hero .pagination { width: auto; align-self: center; padding: 4px 0; gap: 12px; } .rank-hero .pagination-btn { width: 48px; min-width: 48px; height: 48px; border-radius: 999px; background: #3d3d3d; color: rgba(255, 255, 255, 0.55); font-size: 16px; line-height: 22px; } .rank-hero .pagination-btn--wide { width: 48px; min-width: 48px; } .rank-hero .pagination-btn--active { background: #ec237f; color: #fff; } .rank-hero .pagination-arrow { width: 24px; height: 24px; } .rank-hero .pagination-ellipsis, .rank-hero .pagination-jump-label { color: rgba(255, 255, 255, 0.55); font-size: 16px; line-height: 22px; } .rank-hero .pagination-ellipsis { width: 32px; text-align: center; } .rank-hero .pagination-jump-input { width: 72px; height: 48px; border-radius: 999px; background: #3d3d3d; color: #fff; font-size: 16px; line-height: 22px; } .rank-hero .pagination-jump-submit { width: 96px; height: 48px; border-radius: 999px; background: #ec237f; color: #fff; font-size: 16px; line-height: 22px; } .rank-hero .pagination-jump-submit:hover, .rank-hero .pagination-jump-submit:focus-visible { background: #f04491; } .rank-ad-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; } .rank-ad { width: 100%; aspect-ratio: 758 / 94; display: block; overflow: hidden; border-radius: 12px; } .rank-ad picture, .rank-ad img { width: 100%; height: 100%; display: block; } .rank-ad img { object-fit: cover; } @media (max-width: 767px) { .rank-page-body { --rank-h5-gutter: clamp(14px, 4.266667vw, 18px); --site-footer-margin-top: 24px; padding-top: calc(48px + env(safe-area-inset-top, 0px)); } .rank-page.page-shell { padding: 12px var(--rank-h5-gutter) 24px; } .rank-hero { gap: 18px; } .rank-breadcrumb { gap: 4px; font-size: 12px; line-height: 18px; } .rank-channel { gap: 12px; } .rank-channel-title { font-size: 16px; line-height: 22px; } .rank-channel-desc { font-size: 12px; line-height: 18px; } .rank-tabs { gap: 6px; } .rank-tab { width: auto; height: 30px; flex: 1 1 0; padding: 0 24px; } .rank-tab-text { font-size: 12px; line-height: 18px; } .rank-hero .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 7px; } .rank-hero .rank-card { height: auto; min-height: 304px; aspect-ratio: auto; border-radius: 0; } .rank-hero .rank-card .poster-cover { aspect-ratio: 3 / 4; border-radius: 12px; } .rank-hero .rank-card .poster-card-body { height: auto; min-height: 92px; flex: 0 0 auto; padding: 8px 0; gap: 4px; background: transparent; } .rank-hero .rank-card .poster-card-title { min-height: 20px; font-size: 14px; line-height: 20px; font-weight: 400; } .rank-hero .rank-card .poster-card-subtitle { flex: 0 0 18px; min-height: 18px; font-size: 12px; line-height: 18px; } .rank-hero .rank-card .poster-card-meta { flex: 0 0 22px; min-height: 22px; } .rank-hero .rank-card .ranking-card-tags { height: 22px; gap: 4px; } .rank-hero .rank-card .ranking-card-tag { padding: 2px 6px; font-size: 12px; line-height: 18px; } .poster-rank-badge, .poster-rank-bg-gold, .poster-rank-bg-silver, .poster-rank-bg-bronze, .poster-rank-bg-dark { width: 34px; height: 28px; } .poster-rank-text { font-size: 14px; line-height: 20px; font-weight: 400; } .rank-hero .pagination-jump { display: none; } .rank-ad-list { display: flex; flex-direction: column; gap: 12px; } .rank-ad { aspect-ratio: 343 / 47; border-radius: 6px; } } /* Desktop scales from the 1920px Figma frame, matching the homepage strategy. */ @media (min-width: 1024px) { body.rank-page-body { padding-top: min(90px, 4.6875vw); } body.rank-page-body .rank-page.page-shell { padding: min(36px, 1.875vw) 60px; } body.rank-page-body .rank-hero { gap: min(24px, 1.25vw); } body.rank-page-body .rank-breadcrumb { gap: min(6px, 0.3125vw); font-size: clamp(12px, 0.9375vw, 18px); line-height: clamp(18px, 1.25vw, 24px); } body.rank-page-body .rank-channel { gap: min(24px, 1.25vw); } body.rank-page-body .rank-channel-title { font-size: clamp(18px, 1.25vw, 24px); line-height: clamp(24px, 1.666667vw, 32px); } body.rank-page-body .rank-channel-desc { font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-tabs { gap: min(18px, 0.9375vw); } body.rank-page-body .rank-tab { width: min(120px, 6.25vw); height: min(48px, 2.5vw); padding: 0 min(24px, 1.25vw); border-radius: min(9px, 0.46875vw); } body.rank-page-body .rank-tab-text { font-size: clamp(12px, 0.9375vw, 18px); line-height: clamp(18px, 1.25vw, 24px); } body.rank-page-body .rank-hero .card-grid { column-gap: min(18px, 0.9375vw); row-gap: min(24px, 1.25vw); } body.rank-page-body .rank-hero .rank-card { min-height: 0; border-radius: min(18px, 0.9375vw); } body.rank-page-body .rank-hero .rank-card .poster-card-body { min-height: clamp(84px, 5.416667vw, 104px); flex: 0 0 auto; padding: min(12px, 0.625vw) min(10px, 0.520833vw); gap: min(6px, 0.3125vw); } body.rank-page-body .rank-hero .rank-card .poster-card-title { min-height: min(22px, 1.145833vw); font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-hero .rank-card .poster-card-subtitle { min-height: min(20px, 1.041667vw); font-size: clamp(11px, 0.729167vw, 14px); line-height: clamp(16px, 1.041667vw, 20px); } body.rank-page-body .rank-hero .rank-card .poster-card-meta { min-height: min(24px, 1.25vw); } body.rank-page-body .rank-hero .rank-card .ranking-card-tag { padding: min(2px, 0.104167vw) min(8px, 0.416667vw); border-radius: min(9px, 0.46875vw); font-size: clamp(11px, 0.729167vw, 14px); line-height: clamp(16px, 1.041667vw, 20px); } body.rank-page-body .rank-hero .episode-badge { right: min(8px, 0.416667vw); bottom: min(16px, 0.833333vw); min-height: min(24px, 1.25vw); padding: min(3px, 0.15625vw) min(8px, 0.416667vw); border-radius: min(6px, 0.3125vw); } body.rank-page-body .rank-hero .episode-badge .text-white-xs { font-size: clamp(11px, 0.729167vw, 14px); line-height: clamp(16px, 1.041667vw, 20px); } body.rank-page-body .poster-rank-badge, body.rank-page-body .poster-rank-bg-gold, body.rank-page-body .poster-rank-bg-silver, body.rank-page-body .poster-rank-bg-bronze, body.rank-page-body .poster-rank-bg-dark { width: min(43px, 2.239583vw); height: min(34px, 1.770833vw); } body.rank-page-body .poster-rank-text { font-size: clamp(12px, 0.9375vw, 18px); line-height: clamp(18px, 1.25vw, 24px); } body.rank-page-body .rank-hero .pagination { padding: min(4px, 0.208333vw) 0; gap: min(12px, 0.625vw); } body.rank-page-body .rank-hero .pagination-btn, body.rank-page-body .rank-hero .pagination-btn--wide { width: min(48px, 2.5vw); min-width: min(48px, 2.5vw); height: min(48px, 2.5vw); font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-hero .pagination-arrow { width: min(24px, 1.25vw); height: min(24px, 1.25vw); } body.rank-page-body .rank-hero .pagination-ellipsis { width: min(32px, 1.666667vw); } body.rank-page-body .rank-hero .pagination-ellipsis, body.rank-page-body .rank-hero .pagination-jump-label { font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-hero .pagination-jump { gap: min(8px, 0.416667vw); } body.rank-page-body .rank-hero .pagination-jump-input { width: min(72px, 3.75vw); height: min(48px, 2.5vw); font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-hero .pagination-jump-submit { width: min(96px, 5vw); height: min(48px, 2.5vw); font-size: clamp(12px, 0.833333vw, 16px); line-height: clamp(18px, 1.145833vw, 22px); } body.rank-page-body .rank-ad-list { gap: min(36px, 1.875vw); } body.rank-page-body .rank-ad { border-radius: min(12px, 0.625vw); } body.rank-page-body .floating-action { right: max(24px, calc((100vw - 1800px) / 2)); bottom: min(60px, 3.125vw); width: min(60px, 3.125vw); height: min(60px, 3.125vw); background: #ec237f; } body.rank-page-body .floating-action-icon { width: min(20px, 1.041667vw); height: min(20px, 1.041667vw); } } .rank-page-body .download-fab { display: none; }