314 lines
5.7 KiB
CSS
314 lines
5.7 KiB
CSS
@font-face {
|
|
font-family: 'genshin';
|
|
src: url('../fonts/zh-cn.ttf') format('truetype');
|
|
}
|
|
html,
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-family: 'genshin';
|
|
color: #fff;
|
|
text-shadow: 0 0 25px rgba(0, 0, 0, 1);
|
|
overflow: hidden;
|
|
}
|
|
h1 {
|
|
margin: 0;
|
|
padding: 0;
|
|
text-align: center;
|
|
font-size: 4rem;
|
|
position: relative;
|
|
}
|
|
.container {
|
|
width: 100%;
|
|
height: 100%;
|
|
/* background: rgba(0, 0, 0, 0.7); */
|
|
position: absolute;
|
|
overflow: hidden;
|
|
}
|
|
.container img#character {
|
|
/* animation: wishAppear 5s steps(100, end) forwards;
|
|
transform-origin: center;
|
|
display: block;
|
|
margin: 0 auto;
|
|
height: 100%;
|
|
max-width: 100%; */
|
|
}
|
|
.container h1#name {
|
|
animation: nameAppear 0.8s steps(100, end) forwards;
|
|
animation-delay: 1s;
|
|
animation-timing-function: ease;
|
|
position: absolute;
|
|
top: calc(50% - 250px);
|
|
left: calc(50% - 200px);
|
|
opacity: 0;
|
|
z-index: 10;
|
|
}
|
|
.container h2#redeemer {
|
|
animation: nameAppear 1.5s steps(100, end) forwards;
|
|
animation-delay: 3.5s;
|
|
animation-timing-function: ease;
|
|
position: absolute;
|
|
top: calc(50% - 185px);
|
|
left: calc(50% - 200px);
|
|
opacity: 0;
|
|
z-index: 20;
|
|
}
|
|
.container h2#redeemer::before {
|
|
content: 'redeemed by\A';
|
|
white-space: pre;
|
|
}
|
|
.container h2#redeemer span#actual_name {
|
|
font-size: 2.5rem;
|
|
}
|
|
.container img#element {
|
|
animation: nameAppear 0.6s steps(100, end) forwards;
|
|
animation-delay: 1.2s;
|
|
animation-timing-function: ease;
|
|
width: 158px;
|
|
height: 158px;
|
|
position: absolute;
|
|
top: calc(50% - 250px);
|
|
left: calc(50% - 350px);
|
|
opacity: 0;
|
|
filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.8));
|
|
}
|
|
.container div#stars {
|
|
z-index: 20;
|
|
position: absolute;
|
|
top: calc(50% - 190px);
|
|
left: calc(50% - 200px);
|
|
filter: drop-shadow(0px 0px 5px rgb(0 0 0 / 0.8));
|
|
}
|
|
.container div#stars img {
|
|
animation: starAppear 0.3s steps(100, end) forwards;
|
|
animation-delay: 1s;
|
|
width: 30px;
|
|
height: 30px;
|
|
display: inline-block;
|
|
opacity: 0;
|
|
transform: scale(10);
|
|
}
|
|
.container.exit {
|
|
animation: genshinExit 0.3s steps(100, end) forwards;
|
|
}
|
|
|
|
@keyframes wishAppear {
|
|
0% {
|
|
filter: brightness(0) blur(20px);
|
|
transform: scale(10) translate(0, 0);
|
|
}
|
|
10% {
|
|
filter: brightness(0) blur(0);
|
|
transform: scale(1) translate(0, 0);
|
|
}
|
|
20% {
|
|
filter: brightness(0) blur(0);
|
|
transform: scale(1) translate(0, 0);
|
|
}
|
|
28% {
|
|
filter: brightness(0) blur(0);
|
|
transform: scale(1) translate(50px, 0);
|
|
}
|
|
30% {
|
|
filter: brightness(0) blur(0);
|
|
transform: scale(1) translate(50px, 0);
|
|
}
|
|
40% {
|
|
filter: brightness(1) blur(0);
|
|
transform: scale(1) translate(50px, 0);
|
|
}
|
|
100% {
|
|
filter: brightness(1) blur(0);
|
|
transform: scale(1) translate(50px, 0);
|
|
}
|
|
}
|
|
@keyframes nameAppear {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translate(50px, 0);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translate(0, 0);
|
|
}
|
|
}
|
|
@keyframes starAppear {
|
|
0% {
|
|
opacity: 0;
|
|
transform: scale(10);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
@keyframes genshinExit {
|
|
0% {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
transform: scale(10);
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
#link_to_token {
|
|
text-align: center;
|
|
display: block;
|
|
padding: 1em;
|
|
background: #59f;
|
|
color: #fff;
|
|
text-decoration: none;
|
|
width: 50%;
|
|
text-shadow: 2px 2px 2px rgb(0 0 0 / 30%);
|
|
min-width: 400px;
|
|
margin: 2em auto;
|
|
border-radius: 15px;
|
|
}
|
|
|
|
.card-stack {
|
|
animation: fade-in-up 0.5s ease forwards;
|
|
position: absolute;
|
|
bottom: -128px;
|
|
left: 50%;
|
|
width: 256px;
|
|
height: 384px;
|
|
left: calc(50% - 128px);
|
|
}
|
|
|
|
.single-card {
|
|
width: 256px;
|
|
height: 384px;
|
|
position: absolute;
|
|
display: flex;
|
|
justify-content: center;
|
|
perspective: 900px;
|
|
transition: all 0.2s cubic-bezier(0.7, -0.5, 0.3, 1.8);
|
|
transform-style: preserve-3d;
|
|
}
|
|
|
|
@keyframes fade-in-up {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translate(0, 256px);
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.front,
|
|
.back {
|
|
position: relative;
|
|
width: 256px;
|
|
height: 384px;
|
|
top: 0;
|
|
|
|
border-radius: 5px;
|
|
-webkit-backface-visibility: hidden;
|
|
backface-visibility: hidden;
|
|
background-size: cover;
|
|
background-position: center center;
|
|
}
|
|
|
|
.front {
|
|
background-image: url(../img/characters/back.png);
|
|
}
|
|
|
|
.back {
|
|
position: absolute;
|
|
transform: rotateY(180deg);
|
|
/* background-image: url(../img/characters/tmm.png); */
|
|
/* img/characters/imout.png */
|
|
}
|
|
|
|
.single-card:nth-child(1) {
|
|
animation: card1 0.5s forwards;
|
|
}
|
|
@keyframes card1 {
|
|
100% {
|
|
transform: translate(200px, 100px) rotate(26deg);
|
|
}
|
|
}
|
|
|
|
.single-card:nth-child(2) {
|
|
animation: card2 0.5s forwards;
|
|
}
|
|
@keyframes card2 {
|
|
100% {
|
|
transform: translate(100px, 25px) rotate(16deg);
|
|
}
|
|
}
|
|
|
|
.single-card:nth-child(3) {
|
|
animation: card3 0.5s forwards;
|
|
}
|
|
@keyframes card3 {
|
|
100% {
|
|
transform: translate(0px, 0px) rotate(0deg);
|
|
}
|
|
}
|
|
|
|
.single-card:nth-child(4) {
|
|
animation: card4 0.5s forwards;
|
|
}
|
|
@keyframes card4 {
|
|
100% {
|
|
transform: translate(-100px, 25px) rotate(-16deg);
|
|
}
|
|
}
|
|
|
|
.single-card:nth-child(5) {
|
|
animation: card5 0.5s forwards;
|
|
}
|
|
@keyframes card5 {
|
|
100% {
|
|
transform: translate(-200px, 100px) rotate(-26deg);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateCard1 {
|
|
0% {
|
|
transform: translateX(200px);
|
|
}
|
|
100% {
|
|
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateCard2 {
|
|
0% {
|
|
transform: translateX(100px);
|
|
}
|
|
100% {
|
|
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateCard3 {
|
|
0% {
|
|
transform: translateX(0px);
|
|
}
|
|
100% {
|
|
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateCard4 {
|
|
0% {
|
|
transform: translateX(-100px);
|
|
}
|
|
100% {
|
|
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateCard5 {
|
|
0% {
|
|
transform: translateX(-200px);
|
|
}
|
|
100% {
|
|
transform: translate(0px, -250px) rotateY(180deg) scale(1.5);
|
|
}
|
|
}
|