Files
sechskies/variety/NJTW/njtw5.css
T
2026-05-14 13:20:59 +08:00

492 lines
14 KiB
CSS
Raw 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.
/**
* NJTW5 專用(與 NJTW5.html 同資料夾)
* 長條圖、各卡裁切位置請只改此檔。
* 整頁調性:參考《新西遊記》logo 金/橘/酒紅,刻意做淡(與羊皮紙卡一致)。
*/
body.njtw5-page {
/* 頁面色票:亮而不濃 */
--njtw-cream: #fdf6ea;
--njtw-parchment: #faf0e0;
--njtw-peach: #fde8d4;
--njtw-gold: #d9a050;
--njtw-gold-soft: rgba(217, 160, 80, 0.35);
--njtw-ember: #e8884a;
--njtw-ember-soft: rgba(232, 136, 74, 0.22);
--njtw-wine: #9c4548;
--njtw-wine-soft: rgba(156, 69, 72, 0.28);
--njtw-ink: #5c3a32;
--njtw-shadow: rgba(72, 38, 28, 0.08);
background:
radial-gradient(ellipse 85% 55% at 50% -8%, rgba(255, 220, 170, 0.35) 0%, transparent 52%),
radial-gradient(ellipse 70% 45% at 100% 20%, rgba(255, 200, 160, 0.12) 0%, transparent 45%),
linear-gradient(180deg, var(--njtw-cream) 0%, var(--njtw-peach) 48%, #f3e0cc 100%);
color: var(--njtw-ink);
font-family: 'Noto Sans TC', system-ui, sans-serif;
margin: 0;
/* 頂部不留空,標題背景貼齊視窗上緣;左右與底部維持內距 */
padding: 0 clamp(16px, 4vw, 40px) clamp(16px, 4vw, 40px);
display: flex;
flex-direction: column;
align-items: center;
gap: clamp(20px, 3.5vw, 32px);
overflow-x: hidden;
box-sizing: border-box;
}
body.njtw5-page header.main-header {
/* 此頁專用:抵消 assets/css/style.css 裡裸選取器 header { … }(僅當 body 為 .njtw5-page 時套用,不修改 style.css */
height: auto;
min-height: unset;
max-height: none;
overflow: visible;
flex-shrink: 0;
/* 視窗全寬(不受 body 置中與下方網格 max-width 限制) */
width: 100vw;
max-width: none;
margin-left: calc(50% - 50vw);
margin-right: calc(50% - 50vw);
margin-top: 0;
box-sizing: border-box;
text-align: center;
/* 與 1538075001_cu.jpg 實際比例一致(1280×706),全寬時高度與圖等比例 */
aspect-ratio: 1280 / 706;
padding: 0 clamp(16px, 3vw, 28px);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
/* 圖檔與此 CSS 同資料夾(variety/NJTW/ */
background-color: #1a1812;
background-image: url("1538075001_cu.jpg");
background-size: cover;
background-position: center;
background-repeat: no-repeat;
border: none;
border-radius: 0;
box-shadow: none;
}
body.njtw5-page .main-header h1 {
margin: 0 0 0.65rem;
font-size: clamp(1.35rem, 4vw, 1.85rem);
font-weight: 800;
color: #fffaf4;
line-height: 1.25;
letter-spacing: 0.04em;
text-shadow:
0 0 20px rgba(255, 200, 120, 0.35),
0 1px 3px rgba(60, 24, 18, 0.45),
0 0 1px rgba(120, 40, 30, 0.4);
}
body.njtw5-page .main-header .intro {
margin: 0;
margin-inline: auto;
max-width: min(42em, 100%);
width: fit-content;
box-sizing: border-box;
padding: clamp(14px, 2.4vw, 20px) clamp(18px, 3.2vw, 30px);
font-size: clamp(0.95rem, 2.5vw, 1.12rem);
font-weight: 600;
color: rgba(255, 252, 248, 0.97);
line-height: 1.65;
letter-spacing: 0.02em;
text-align: center;
border-radius: 14px;
background:
linear-gradient(180deg, rgba(255, 230, 200, 0.12) 0%, transparent 42%),
linear-gradient(180deg, rgba(90, 36, 42, 0.38) 0%, rgba(48, 22, 28, 0.5) 100%);
border: 1px solid rgba(255, 200, 140, 0.35);
box-shadow:
inset 0 1px 0 rgba(255, 240, 210, 0.2),
0 8px 28px rgba(40, 16, 20, 0.22),
0 0 0 1px rgba(232, 136, 74, 0.12);
backdrop-filter: blur(10px) saturate(1.12);
-webkit-backdrop-filter: blur(10px) saturate(1.12);
text-shadow: 0 1px 2px rgba(30, 10, 12, 0.35);
}
body.njtw5-page .container {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(12px, 2.5vw, 20px);
width: 100%;
max-width: min(1200px, 100%);
box-sizing: border-box;
}
/* 成員 2×4 表格:必須為 table > tbody > tr > td,不可把 tr 直接放在 div 裡 */
body.njtw5-page .njtw-member-table-wrap {
grid-column: 1 / -1;
width: 100%;
min-width: 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
body.njtw5-page .njtw-member-table {
width: max-content;
min-width: 100%;
border-collapse: separate;
border-spacing: clamp(10px, 2vw, 18px);
table-layout: auto;
}
body.njtw5-page .njtw-member-table td {
padding: 0;
vertical-align: top;
}
body.njtw5-page .njtw-member-table td:not(.njtw-layout-slot) {
min-width: clamp(220px, 24vw, 300px);
}
body.njtw5-page .njtw-member-table .njtw-layout-slot {
width: 1%;
white-space: nowrap;
vertical-align: middle;
text-align: center;
font-weight: 800;
font-size: clamp(1.35rem, 3.5vw, 1.85rem);
letter-spacing: 0.12em;
color: var(--njtw-ink);
opacity: 0.75;
}
body.njtw5-page .container .section-title,
body.njtw5-page .video-container .video-title {
font-weight: 800;
letter-spacing: 0.08em;
text-align: center;
color: var(--njtw-ink);
border-bottom: none;
box-shadow: none;
position: relative;
}
body.njtw5-page .container .section-title {
grid-column: 1 / -1;
margin: 0 0 clamp(4px, 1vw, 10px);
padding-bottom: clamp(12px, 2.2vw, 18px);
font-size: clamp(1.2rem, 3.2vw, 1.55rem);
}
body.njtw5-page .video-container .video-title {
margin: 0 0 clamp(14px, 2.5vw, 20px);
padding-bottom: clamp(12px, 2.2vw, 18px);
font-size: clamp(1.15rem, 3vw, 1.45rem);
}
/* 與原第二條線同調:淺紅棕短線,不要整寬漸層與外層長陰影 */
body.njtw5-page .container .section-title::after,
body.njtw5-page .video-container .video-title::after {
content: "";
display: block;
width: min(3.5rem, 26%);
max-width: 5.5rem;
height: 4px;
margin: clamp(10px, 1.8vw, 14px) auto 0;
border-radius: 2px;
background: rgba(168, 120, 108, 0.55);
}
body.njtw5-page .member-card {
min-width: 0;
width: 100%;
max-width: 100%;
box-sizing: border-box;
background-color: var(--njtw-parchment);
border: 1px solid var(--njtw-gold-soft);
border-radius: 15px;
/* 勿對整卡 hidden,否則底部 .nickname 可能被裁掉、像「看不到」 */
overflow: visible;
text-align: center;
box-shadow:
0 6px 0 var(--njtw-ember-soft),
0 12px 24px var(--njtw-shadow);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body.njtw5-page .member-card:hover {
transform: translateY(-5px);
}
body.njtw5-page .member-image {
width: 100%;
height: clamp(200px, 32vw, 280px);
box-sizing: border-box;
background-color: #2a2018;
/* 長條圖檔與此 CSS 同資料夾;檔名不同請改 url */
background-image: url("1538074991_Fm.jpg");
/* background-size 改由各 .m1.m6 單獨設定 */
background-repeat: no-repeat;
border-bottom: 1px solid var(--njtw-gold-soft);
border-radius: 14px 14px 0 0;
overflow: hidden;
}
/* 各卡:background-size、background-position 可逐張微調(圖檔見 .member-image */
body.njtw5-page .m1 .member-image {
background-size: 250% auto;
background-position: 52% 58%;
}
body.njtw5-page .m2 .member-image {
background-size: 359% auto;
background-position: 10% 85%;
}
body.njtw5-page .m3 .member-image {
background-size: 381% auto;
background-position: 96% 18%;
}
body.njtw5-page .m4 .member-image {
background-size: 600% auto;
background-position: 64% 8%;
}
body.njtw5-page .m5 .member-image {
background-size: 500% auto;
background-position: 0% 16%;
}
body.njtw5-page .m6 .member-image {
background-size: 600% auto;
background-position: 25% 0%;
}
body.njtw5-page .info {
padding: clamp(10px, 2vw, 15px);
min-width: 0;
}
body.njtw5-page .name {
font-size: clamp(1.1rem, 3.2vw, 1.5rem);
font-weight: 800;
color: var(--njtw-ink);
margin: 0 0 0.35rem;
line-height: 1.2;
word-break: keep-all;
overflow-wrap: anywhere;
}
body.njtw5-page .role {
font-size: clamp(0.85rem, 2.2vw, 1rem);
color: #5a4540;
background: var(--njtw-ember-soft);
display: inline-block;
max-width: 100%;
padding: 0.2rem 0.55rem;
border-radius: 20px;
border: 1px solid var(--njtw-gold-soft);
line-height: 1.35;
word-break: keep-all;
overflow-wrap: anywhere;
box-sizing: border-box;
}
/* 羊皮紙角色卡:卡片上加 class="parchment-card" 即可;長條裁切仍用 .m1 / .m2… 的 .member-image 規則 */
body.njtw5-page .member-card.parchment-card {
background:
radial-gradient(ellipse 120% 80% at 50% -20%, rgba(255, 255, 255, 0.4) 0%, transparent 55%),
linear-gradient(165deg, #faf0e0 0%, #f0dcc0 38%, #e8d2b4 72%, #dfc8a8 100%);
border: 2px solid var(--njtw-wine-soft);
border-radius: 10px;
box-shadow:
inset 0 0 0 1px rgba(255, 250, 240, 0.65),
inset 0 -14px 28px rgba(120, 50, 40, 0.04),
0 3px 0 rgba(180, 90, 70, 0.22),
0 10px 22px var(--njtw-shadow);
text-align: center;
padding: 0;
}
body.njtw5-page .member-card.parchment-card:hover {
transform: translateY(-4px);
box-shadow:
inset 0 0 0 1px rgba(255, 250, 240, 0.65),
inset 0 -14px 28px rgba(120, 50, 40, 0.04),
0 4px 0 rgba(200, 110, 80, 0.28),
0 14px 26px rgba(72, 38, 28, 0.1);
}
body.njtw5-page .parchment-card .parchment-inner {
padding: clamp(12px, 2.4vw, 18px) clamp(10px, 2vw, 14px) clamp(14px, 2.8vw, 20px);
box-sizing: border-box;
}
body.njtw5-page .parchment-card .parchment-logo {
font-size: clamp(0.95rem, 2.4vw, 1.15rem);
font-weight: 900;
letter-spacing: 0.12em;
margin: 0 0 0.35rem;
background: linear-gradient(180deg, #f0a060 0%, #d97840 42%, #c4583a 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.55));
}
body.njtw5-page .parchment-card .parchment-logo-num {
display: inline-block;
margin-left: 0.08em;
font-size: 1.15em;
vertical-align: super;
letter-spacing: 0;
}
body.njtw5-page .parchment-card .parchment-headline {
margin-bottom: clamp(10px, 2vw, 14px);
}
body.njtw5-page .parchment-card .parchment-name {
margin: 0 0 0.2rem;
font-size: clamp(1.25rem, 3.6vw, 1.65rem);
font-weight: 900;
color: #7a3838;
line-height: 1.2;
letter-spacing: 0.04em;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
}
body.njtw5-page .parchment-card .parchment-role {
margin: 0 0 0.35rem;
font-size: 1.2rem;
font-weight: 700;
color: #7a3838;
line-height: 1.35;
}
body.njtw5-page .parchment-card .parchment-byline {
margin: 0;
font-size: 1rem;
font-weight: 700;
color: #6b4040;
line-height: 1.4;
opacity: 0.95;
}
body.njtw5-page .parchment-card .parchment-figure {
margin: 0 0 clamp(12px, 2.2vw, 16px);
border-radius: 8px;
overflow: hidden;
border: 1px solid var(--njtw-wine-soft);
box-shadow:
inset 0 0 0 1px rgba(255, 248, 235, 0.35),
0 3px 10px rgba(72, 38, 28, 0.1);
background: #2a2018;
}
body.njtw5-page .parchment-card .member-image {
width: 100%;
height: clamp(200px, 34vw, 280px);
border-radius: 0;
border: none;
border-bottom: none;
}
body.njtw5-page .parchment-card .parchment-stats {
text-align: left;
margin: 0;
padding: 0 clamp(4px, 1vw, 8px);
}
body.njtw5-page .parchment-card .parchment-stat-row {
display: grid;
grid-template-columns: auto minmax(min-content, 1fr);
align-items: center;
gap: 8px 10px;
margin-bottom: clamp(8px, 1.6vw, 12px);
}
body.njtw5-page .parchment-card .parchment-stat-row:last-of-type {
margin-bottom: 0;
}
body.njtw5-page .parchment-card .parchment-stat-label {
font-size: clamp(0.88rem, 2.1vw, 1rem);
font-weight: 800;
color: #7a4040;
letter-spacing: 0.06em;
white-space: nowrap;
flex-shrink: 0;
}
body.njtw5-page .parchment-card .parchment-stat-balls {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
gap: 4px;
min-width: min-content;
overflow-x: visible;
overflow-y: visible;
padding-bottom: 2px;
}
body.njtw5-page .parchment-card .parchment-stat-balls img {
display: block;
width: clamp(20px, 4.2vw, 26px);
height: auto;
aspect-ratio: 1;
object-fit: contain;
flex-shrink: 0;
filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.25));
}
body.njtw5-page .parchment-card .parchment-tags {
margin: clamp(12px, 2vw, 16px) 0 0;
padding-top: clamp(10px, 1.8vw, 14px);
border-top: 1px dashed var(--njtw-wine-soft);
font-size: max(13px, 0.88rem);
font-weight: 700;
color: #6a4538;
line-height: 1.45;
text-align: center;
word-break: break-word;
overflow-wrap: anywhere;
}/* 影片區:與羊皮紙、logo 調性一致(淡金邊、柔陰影) */
body.njtw5-page .video-container {
width: 100%;
max-width: min(1200px, 100%);
box-sizing: border-box;
margin-inline: auto;
padding: clamp(18px, 3.2vw, 28px);
background:
radial-gradient(ellipse 100% 80% at 50% 0%, rgba(255, 235, 200, 0.45) 0%, transparent 55%),
linear-gradient(175deg, var(--njtw-parchment) 0%, #f2e4d2 100%);
border: 2px solid var(--njtw-wine-soft);
border-radius: 14px;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.55),
0 4px 0 var(--njtw-ember-soft),
0 14px 28px var(--njtw-shadow);
}
body.njtw5-page .video-container .video-wrapper {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
border-radius: 12px;
overflow: hidden;
background: linear-gradient(145deg, #322a22 0%, #1c1814 55%, #241c18 100%);
box-shadow:
inset 0 0 0 1px var(--njtw-gold-soft),
inset 0 12px 36px rgba(0, 0, 0, 0.35);
}
body.njtw5-page .video-container .video-embed {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: 0;
display: block;
}
@media (max-width: 768px) {
body.njtw5-page .container {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (prefers-reduced-motion: reduce) {
body.njtw5-page .member-card {
transition: none;
}
body.njtw5-page .member-card:hover {
transform: none;
}
}