* { 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); }