2026-06-09 11:06:10 +08:00

449 lines
7.0 KiB
CSS

* {
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
:root {
--design-scale: 0.3472222222;
}
html,
body {
margin: 0;
width: 100%;
min-height: 100%;
overflow-x: hidden;
background: #050a36;
color: #f8e8ff;
font-family:
"Source Han Sans SC",
"Noto Sans CJK SC",
Arial,
"Helvetica Neue",
Helvetica,
sans-serif;
}
button {
border: 0;
padding: 0;
background: transparent;
color: inherit;
font: inherit;
cursor: pointer;
outline: none;
}
.app-viewport {
position: relative;
width: 100vw;
min-height: 800px;
margin: 0;
overflow: hidden;
}
.page {
position: relative;
width: 100vw;
min-height: 800px;
overflow: hidden;
background: #050a36;
}
.stage-wrap {
position: relative;
width: 100vw;
height: 802px;
overflow: hidden;
}
.stage {
position: absolute;
left: 0;
top: 0;
width: 1080px;
height: 3138px;
overflow: hidden;
transform: scale(var(--design-scale));
transform-origin: top left;
background: #050a36;
}
.bg-stars,
.hero-bg {
position: absolute;
pointer-events: none;
object-fit: cover;
}
.bg-stars {
left: -110px;
top: 0;
width: 1300px;
height: 2309px;
opacity: 0.06;
}
.hero-bg {
left: 0;
top: -24px;
width: 1080px;
height: 1919px;
}
.date-plate {
position: absolute;
left: 204px;
top: 726px;
width: 672px;
height: 95px;
}
.date-plate-img {
position: absolute;
inset: 0;
width: 672px;
height: 95px;
object-fit: fill;
}
.date-text {
position: absolute;
left: -6px;
top: 20px;
width: 684px;
color: #fff;
font-size: 30px;
font-weight: 600;
line-height: 42px;
text-align: center;
text-shadow:
0 2px 2px rgba(31, 0, 72, 0.8),
0 0 10px rgba(255, 120, 255, 0.55);
white-space: nowrap;
}
.note {
position: absolute;
left: 64px;
top: 861px;
width: 1016px;
margin: 0;
color: #f8e8ff;
font-size: 34px;
font-weight: 500;
line-height: 42px;
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.36);
}
.gift-card {
position: absolute;
left: var(--x);
top: 1027px;
width: 257px;
height: 270px;
}
.gift-frame {
position: absolute;
inset: 0;
width: 257px;
height: 270px;
object-fit: fill;
}
.gift-glow {
position: absolute;
left: 19px;
top: 30px;
width: 219px;
height: 219px;
object-fit: contain;
opacity: 0.34;
}
.gift-img {
position: absolute;
left: 35px;
top: 41px;
width: 188px;
height: 188px;
object-fit: contain;
}
.gift-name {
position: absolute;
left: 18px;
top: 226px;
width: 221px;
overflow: hidden;
color: #fff;
font-size: 28px;
font-weight: 600;
line-height: 32px;
text-align: center;
white-space: nowrap;
text-overflow: ellipsis;
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.55);
}
.tabs {
position: absolute;
left: 21px;
top: 1317px;
display: grid;
grid-template-columns: repeat(3, 335px);
column-gap: 18px;
width: 1041px;
height: 155px;
}
.tab {
position: relative;
width: 335px;
height: 155px;
color: rgba(255, 255, 255, 0.6);
font-size: 32px;
font-weight: 600;
line-height: 34px;
text-align: center;
}
.tab-img {
position: absolute;
inset: 0;
width: 335px;
height: 155px;
object-fit: fill;
pointer-events: none;
}
.tab .active-img {
display: none;
}
.tab.is-active {
color: #f8e8ff;
}
.tab.is-active .active-img {
display: block;
}
.tab.is-active .inactive-img {
display: none;
}
.tab span {
position: absolute;
left: 32px;
top: 56px;
display: flex;
align-items: center;
justify-content: center;
width: 270px;
height: 77px;
text-shadow: 0 2px 5px rgba(0, 0, 0, 0.42);
}
.tab-panel {
position: absolute;
left: 0;
top: 0;
width: 1080px;
}
.history-date {
position: absolute;
left: 0;
top: 1514px;
width: 1080px;
margin: 0;
color: #ff77ef;
font-size: 46px;
font-weight: 500;
line-height: 46px;
text-align: center;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}
.rank-row {
position: absolute;
left: 0;
width: 1080px;
height: 140px;
color: #fff;
}
.rank-row.is-odd {
background: rgba(103, 0, 203, 0.2);
}
.rank-row.is-even {
background: #0a0d41;
}
.rank-medal {
position: absolute;
left: 45px;
top: 39px;
width: 69px;
height: 61px;
object-fit: contain;
}
.rank-number {
position: absolute;
left: 69px;
top: 49px;
width: 40px;
color: #fff;
font-size: 36px;
font-weight: 500;
line-height: 42px;
text-align: left;
}
.rank-avatar {
position: absolute;
left: 160px;
top: 13px;
width: 113px;
height: 113px;
border-radius: 57px;
object-fit: cover;
}
.rank-name,
.rank-score {
position: absolute;
top: 49px;
overflow: hidden;
color: #fff;
font-size: 36px;
font-weight: 500;
line-height: 42px;
white-space: nowrap;
text-overflow: ellipsis;
}
.rank-name {
left: 313px;
width: 420px;
}
.rank-score {
left: 846px;
width: 190px;
text-align: left;
}
.rank-empty {
position: absolute;
left: 70px;
width: 940px;
color: rgba(255, 255, 255, 0.78);
font-size: 34px;
font-weight: 500;
line-height: 48px;
text-align: center;
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}
.reward-frame-bg {
position: absolute;
left: 0;
top: 1489px;
width: 1080px;
height: 1601px;
object-fit: fill;
pointer-events: none;
}
.reward-group {
position: absolute;
left: 0;
width: 1080px;
height: 470px;
}
.reward-title {
position: absolute;
left: 189px;
top: 0;
width: 702px;
height: 98px;
}
.reward-title img {
position: absolute;
inset: 0;
width: 702px;
height: 98px;
object-fit: fill;
}
.reward-title span {
position: absolute;
left: 0;
top: 40px;
width: 702px;
color: #fff;
font-size: 40px;
font-weight: 500;
line-height: 40px;
text-align: center;
text-shadow:
0 2px 4px rgba(0, 0, 0, 0.45),
0 0 9px rgba(255, 93, 255, 0.55);
}
.reward-item {
position: absolute;
top: 128px;
width: 257px;
height: 316px;
}
.reward-item:nth-child(2) {
left: 90px;
}
.reward-item:nth-child(3) {
left: 412px;
}
.reward-item:nth-child(4) {
left: 733px;
}
.reward-item.is-single {
left: 412px;
}
.reward-item .gift-card {
left: 0;
top: 0;
}
.reward-item.is-coin .gift-img {
left: 66px;
top: 70px;
width: 126px;
height: 126px;
}
.reward-label {
position: absolute;
left: -18px;
top: 290px;
width: 293px;
color: #fff;
font-size: 28px;
font-weight: 500;
line-height: 36px;
text-align: center;
white-space: nowrap;
text-shadow: 0 2px 6px rgba(0, 0, 0, 0.45);
}