2026-06-18 18:24:24 +08:00

657 lines
12 KiB
CSS

* {
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
:root {
--app-scale: 1;
--design-scale: 0.3472222222;
--stage-height: 4620px;
--gold: #fcefc2;
--gold-strong: #ffb56b;
--deep-purple: #1a0029;
}
html,
body {
margin: 0;
width: 100%;
min-height: 100%;
overflow-x: hidden;
background: #12001d;
color: var(--gold);
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
}
button {
border: 0;
padding: 0;
background: transparent;
color: inherit;
font: inherit;
cursor: pointer;
outline: none;
}
button:focus-visible {
outline: 3px solid rgba(255, 239, 194, 0.72);
outline-offset: 4px;
}
.app-viewport {
position: relative;
width: 375px;
min-height: 1605px;
margin: 0 auto;
transform: scale(var(--app-scale));
transform-origin: top center;
}
.page,
.stage-wrap {
position: relative;
width: 375px;
min-height: 1605px;
overflow: hidden;
background: var(--deep-purple);
}
.stage-wrap {
height: 1605px;
}
.stage {
position: absolute;
left: 0;
top: 0;
width: 1080px;
height: var(--stage-height);
overflow: hidden;
transform: scale(var(--design-scale));
transform-origin: top left;
background: var(--deep-purple);
}
.stage > * {
position: absolute;
z-index: 1;
}
.bg-hall {
left: 0;
width: 1080px;
height: 1919px;
object-fit: cover;
object-position: center center;
pointer-events: none;
z-index: 0;
}
.bg-hall-hero {
top: 94px;
-webkit-mask: url('./assets/mask-bg-hero.svg') 0 0 / 1080px 1919px no-repeat;
mask: url('./assets/mask-bg-hero.svg') 0 0 / 1080px 1919px no-repeat;
}
.bg-hall-top {
top: 1095px;
opacity: 0.4;
-webkit-mask: url('./assets/mask-bg-top.svg') 0 0 / 1080px 1919px no-repeat;
mask: url('./assets/mask-bg-top.svg') 0 0 / 1080px 1919px no-repeat;
}
.bg-hall-repeat-a {
top: 2233px;
opacity: 0.4;
-webkit-mask: url('./assets/mask-bg-repeat.svg') 0 0 / 1080px 1919px
no-repeat;
mask: url('./assets/mask-bg-repeat.svg') 0 0 / 1080px 1919px no-repeat;
}
.bg-hall-repeat-b {
top: 3163px;
opacity: 0.4;
-webkit-mask: url('./assets/mask-bg-repeat.svg') 0 0 / 1080px 1919px
no-repeat;
mask: url('./assets/mask-bg-repeat.svg') 0 0 / 1080px 1919px no-repeat;
}
.top-fade {
left: 0;
top: 0;
width: 1080px;
height: 235px;
pointer-events: none;
z-index: 1;
background: linear-gradient(180deg, #1a0029 41%, rgba(26, 0, 41, 0));
}
.language-tabs {
left: 18px;
top: 46px;
display: grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 6px;
align-items: center;
width: 1026px;
height: 70px;
direction: ltr;
z-index: 6;
}
.language-tab {
position: relative;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
width: 100%;
height: 57px;
padding: 0 10px;
border: 2px solid #fde5cc;
border-radius: 39px;
background: linear-gradient(180deg, #4d145a, #210a34);
color: #ffdfaf;
font-size: 22px;
font-weight: 800;
line-height: 27px;
text-align: center;
text-shadow: 0 1px 7px rgba(87, 16, 110, 0.82);
}
.language-tab span {
position: relative;
z-index: 1;
}
.language-tab.is-active {
background: linear-gradient(180deg, #6b2a72, #2b0c46);
color: #fff8e4;
box-shadow:
inset 0 0 18px rgba(255, 222, 151, 0.2),
0 0 14px rgba(255, 203, 116, 0.22);
}
.hero {
inset: 0 auto auto 0;
width: 1080px;
height: 1339px;
}
.hero-title {
position: absolute;
left: 56px;
top: 107px;
width: 968px;
height: 425px;
object-fit: fill;
pointer-events: none;
}
.hero-subtitle {
position: absolute;
left: 345px;
top: 479px;
margin: 0;
color: #741eb5;
font-size: 30px;
font-weight: 800;
line-height: 38px;
text-transform: capitalize;
white-space: nowrap;
}
.hero-shadow {
position: absolute;
left: 182px;
top: 1257px;
width: 698px;
height: 89px;
mix-blend-mode: multiply;
pointer-events: none;
}
.hero-cat {
position: absolute;
left: 210px;
top: 519px;
width: 642px;
height: 820px;
object-fit: cover;
pointer-events: none;
}
.countdown {
left: 0;
top: 1338px;
width: 1080px;
height: 160px;
z-index: 3;
}
.count-cell {
position: absolute;
top: 0;
width: 201px;
height: 160px;
}
.count-days {
left: 87px;
}
.count-hours {
left: 321px;
}
.count-minutes {
left: 555px;
}
.count-seconds {
left: 789px;
}
.count-cell img {
position: absolute;
inset: 0;
width: 201px;
height: 160px;
object-fit: fill;
pointer-events: none;
}
.count-cell strong,
.count-cell span,
.section-title h2,
.apply-button span,
.qualification-card strong,
.reward-head strong,
.record-row strong {
background: linear-gradient(180deg, var(--gold) 50%, var(--gold-strong));
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.count-cell strong {
position: absolute;
left: 0;
top: 32px;
width: 201px;
font-size: 52px;
font-weight: 900;
line-height: 52px;
text-align: center;
}
.count-cell span {
position: absolute;
left: 0;
top: 92px;
width: 201px;
font-size: 24px;
font-weight: 500;
line-height: 32px;
text-align: center;
white-space: nowrap;
}
.opening-section {
left: 0;
width: 1080px;
}
.qualification-section {
top: 1498px;
height: 735px;
}
.rewards-section {
top: 2245px;
height: 800px;
}
.rules-section {
top: 3057px;
height: 768px;
}
.record-section {
top: 3837px;
height: 672px;
}
.section-title {
position: absolute;
left: 93px;
top: 0;
width: 895px;
height: 189px;
z-index: 4;
}
.section-title img {
position: absolute;
inset: 0;
width: 895px;
height: 189px;
object-fit: fill;
pointer-events: none;
}
.section-title h2 {
position: absolute;
left: 0;
top: 101px;
width: 895px;
margin: 0;
font-size: 42px;
font-weight: 900;
line-height: 44px;
text-align: center;
text-transform: capitalize;
white-space: nowrap;
}
.ornate-panel {
position: absolute;
left: 19px;
width: 1042px;
height: var(--panel-height);
pointer-events: none;
z-index: 1;
}
.frame-qualification {
top: 72px;
--bottom-source-top: -561px;
--panel-height: 663px;
}
.frame-rewards {
top: 72px;
--bottom-source-top: -496px;
--panel-height: 728px;
}
.frame-rules {
top: 72px;
--bottom-source-top: -528px;
--panel-height: 696px;
}
.frame-record {
top: 72px;
--bottom-source-top: -624px;
--panel-height: 600px;
}
.frame-piece {
position: absolute;
left: 0;
width: 1042px;
height: 1224px;
background-size: 1042px 1224px;
background-repeat: no-repeat;
}
.frame-piece-top {
top: 0;
background-image: url('./assets/frame-top-source.png');
-webkit-mask: url('./assets/frame-top-mask.svg') 0 0 / 1042px 495px
no-repeat;
mask: url('./assets/frame-top-mask.svg') 0 0 / 1042px 495px no-repeat;
}
.frame-piece-bottom {
top: var(--bottom-source-top);
background-image: url('./assets/frame-bottom-source.png');
-webkit-mask: url('./assets/frame-bottom-mask.svg') 0 867px / 1042px 357px
no-repeat;
mask: url('./assets/frame-bottom-mask.svg') 0 867px / 1042px 357px no-repeat;
}
.qualification-grid {
position: absolute;
left: 109px;
top: 235px;
display: grid;
grid-template-columns: repeat(3, 270px);
gap: 20px;
z-index: 3;
}
.qualification-card {
position: relative;
width: 270px;
height: 154px;
border: 2px solid #fde5cc;
border-radius: 26px;
background: linear-gradient(180deg, #4d145a, #210a34);
}
.qualification-card p {
position: absolute;
left: 0;
top: 34px;
width: 270px;
margin: 0;
color: var(--gold);
font-size: 26px;
font-weight: 500;
line-height: 30px;
text-align: center;
}
.qualification-card strong {
position: absolute;
left: 0;
top: 88px;
width: 270px;
font-size: 38px;
font-weight: 900;
line-height: 40px;
text-align: center;
white-space: nowrap;
}
.qualification-card .status-icon {
position: absolute;
right: -14px;
bottom: -12px;
display: none;
width: 70px;
height: 70px;
object-fit: contain;
pointer-events: none;
}
.qualification-card.is-qualified .status-icon {
display: block;
}
.apply-button {
position: absolute;
left: 217px;
top: 420px;
width: 646px;
height: 137px;
z-index: 4;
}
.apply-button img {
position: absolute;
inset: 0;
width: 646px;
height: 137px;
object-fit: fill;
pointer-events: none;
}
.apply-button span {
position: absolute;
left: 0;
top: 50px;
width: 646px;
font-size: 36px;
font-weight: 900;
line-height: 38px;
text-align: center;
white-space: nowrap;
}
.apply-button.is-loading {
filter: saturate(0.7);
pointer-events: none;
}
.apply-button.is-joined span {
opacity: 0.78;
}
.eligibility-text {
position: absolute;
left: 0;
top: 563px;
width: 1080px;
margin: 0;
color: var(--gold);
font-size: 28px;
font-weight: 500;
line-height: 32px;
text-align: center;
white-space: nowrap;
z-index: 3;
}
.reward-table {
position: absolute;
left: 90px;
top: 206px;
width: 900px;
z-index: 3;
}
.reward-head {
position: relative;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
height: 71px;
}
.reward-head strong {
font-size: 34px;
font-weight: 900;
line-height: 38px;
text-align: center;
}
.table-line,
.reward-row::after,
.record-row::after {
position: absolute;
left: 26px;
right: 26px;
bottom: 0;
height: 2px;
content: '';
background: linear-gradient(
90deg,
rgba(255, 255, 192, 0),
#ffffc0 50%,
rgba(255, 255, 192, 0)
);
}
.table-line {
left: 26px;
right: 26px;
top: 71px;
bottom: auto;
}
.reward-rows {
position: relative;
width: 900px;
}
.reward-row {
position: relative;
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
width: 900px;
height: 80px;
background: url('./assets/table-row.svg') center center / 900px 76px
no-repeat;
color: var(--gold);
font-size: 28px;
font-weight: 800;
line-height: 38px;
text-align: center;
}
.rules-list {
position: absolute;
left: 119px;
top: 258px;
width: 842px;
margin: 0;
padding: 0 0 0 48px;
color: var(--gold);
font-size: 30px;
font-weight: 500;
line-height: 48px;
text-transform: capitalize;
z-index: 3;
}
.rules-list li {
padding-left: 0;
}
.record-table {
position: absolute;
left: 90px;
top: 220px;
width: 900px;
z-index: 3;
}
.record-row {
position: relative;
display: grid;
grid-template-columns: 398px 1fr;
align-items: center;
width: 900px;
height: 80px;
background: url('./assets/table-row.svg') center center / 900px 76px
no-repeat;
}
.record-row span {
color: var(--gold);
font-size: 28px;
font-weight: 800;
line-height: 38px;
text-align: right;
white-space: nowrap;
}
.record-row strong {
padding-left: 104px;
font-size: 34px;
font-weight: 900;
line-height: 38px;
white-space: nowrap;
}
@media (min-width: 431px) {
html,
body {
background: #100019;
}
}