:root { --rainbowstart: #fac; --rainbowend: #ddccaa; --cardbackground: url('content/2bcc85cdd4bc728bc745ffb29efe04c389ea522a8ef0d8d6a8e62cf431c804c8i0'); } .card { width: 50vw; height: 50vw; position: relative; overflow: hidden; margin: 20px; overflow: hidden; z-index: 10; touch-action: none; border-radius: 5%/3.5%; box-shadow: -5px -5px 5px -5px var(--color1), 5px 5px 5px -5px var(--color2), -7px -7px 10px -5px transparent, 7px 7px 10px -5px transparent, 0 0 5px 0px rgba(255, 255, 255, 0), 0 55px 35px -20px rgba(0, 0, 0, 0.5); transition: transform 0.5s ease, box-shadow 0.2s ease; will-change: transform, filter; background-color: #000000; background-image: var(--front); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%; transform-origin: center; } @media screen and (min-width: 600px) { .card { width: clamp(12.9vw, 85vh, 50vw); height: clamp(18vw, 85vh, 50vw); } } .card:hover { box-shadow: -20px -20px 30px -25px var(--color1), 20px 20px 30px -25px var(--color2), -7px -7px 10px -5px var(--color1), 7px 7px 10px -5px var(--color2), 0 0 13px 4px rgba(255, 255, 255, 0.3), 0 55px 35px -20px rgba(0, 0, 0, 0.5); } .card.charizard { --color1: var(--rainbowstart); --color2: var(--rainbowend); --front: var(--cardbackground); } .card:before, .card:after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; top: 0; background-repeat: no-repeat; opacity: 0.5; mix-blend-mode: color-dodge; transition: all 0.33s ease; } .card:before { background-position: 50% 50%; background-size: 300% 300%; background-image: linear-gradient(115deg, transparent 0%, var(--color1) 25%, transparent 47%, transparent 53%, var(--color2) 75%, transparent 100%); opacity: 0.5; filter: brightness(0.5) contrast(1); z-index: 1; } .card:after { opacity: 1; background-position: 50% 50%; background-size: 160%; background-blend-mode: overlay; z-index: 2; filter: brightness(1) contrast(1); transition: all 0.33s ease; mix-blend-mode: color-dodge; opacity: 0.75; } .card.active:after, .card:hover:after { filter: brightness(1) contrast(1); opacity: 1; } .card.active, .card:hover { -webkit-animation: none; animation: none; transition: box-shadow 0.1s ease-out; } .card.active:before, .card:hover:before { -webkit-animation: none; animation: none; background-image: linear-gradient(110deg, transparent 25%, var(--color1) 48%, var(--color2) 52%, transparent 75%); background-position: 50% 50%; background-size: 250% 250%; opacity: 0.88; filter: brightness(0.66) contrast(1.33); transition: none; } .card.active:before, .card:hover:before, .card.active:after, .card:hover:after { -webkit-animation: none; animation: none; transition: none; } .card.animated { transition: none; -webkit-animation: holoCard 12s ease 0s infinite; animation: holoCard 12s ease 0s infinite; } .card.animated:before { transition: none; -webkit-animation: holoGradient 12s ease 0s infinite; animation: holoGradient 12s ease 0s infinite; } .card.animated:after { transition: none; -webkit-animation: holoSparkle 12s ease 0s infinite; animation: holoSparkle 12s ease 0s infinite; } @-webkit-keyframes holoSparkle { 0%, 100% { opacity: 0.75; background-position: 50% 50%; filter: brightness(1.2) contrast(1.25); } 5%, 8% { opacity: 1; background-position: 40% 40%; filter: brightness(0.8) contrast(1.2); } 13%, 16% { opacity: 0.5; background-position: 50% 50%; filter: brightness(1.2) contrast(0.8); } 35%, 38% { opacity: 1; background-position: 60% 60%; filter: brightness(1) contrast(1); } 55% { opacity: 0.33; background-position: 45% 45%; filter: brightness(1.2) contrast(1.25); } } @keyframes holoSparkle { 0%, 100% { opacity: 0.75; background-position: 50% 50%; filter: brightness(1.2) contrast(1.25); } 5%, 8% { opacity: 1; background-position: 40% 40%; filter: brightness(0.8) contrast(1.2); } 13%, 16% { opacity: 0.5; background-position: 50% 50%; filter: brightness(1.2) contrast(0.8); } 35%, 38% { opacity: 1; background-position: 60% 60%; filter: brightness(1) contrast(1); } 55% { opacity: 0.33; background-position: 45% 45%; filter: brightness(1.2) contrast(1.25); } } @-webkit-keyframes holoGradient { 0%, 100% { opacity: 0.5; background-position: 50% 50%; filter: brightness(0.5) contrast(1); } 5%, 9% { background-position: 100% 100%; opacity: 1; filter: brightness(0.75) contrast(1.25); } 13%, 17% { background-position: 0% 0%; opacity: 0.88; } 35%, 39% { background-position: 100% 100%; opacity: 1; filter: brightness(0.5) contrast(1); } 55% { background-position: 0% 0%; opacity: 1; filter: brightness(0.75) contrast(1.25); } } @keyframes holoGradient { 0%, 100% { opacity: 0.5; background-position: 50% 50%; filter: brightness(0.5) contrast(1); } 5%, 9% { background-position: 100% 100%; opacity: 1; filter: brightness(0.75) contrast(1.25); } 13%, 17% { background-position: 0% 0%; opacity: 0.88; } 35%, 39% { background-position: 100% 100%; opacity: 1; filter: brightness(0.5) contrast(1); } 55% { background-position: 0% 0%; opacity: 1; filter: brightness(0.75) contrast(1.25); } } @-webkit-keyframes holoCard { 0%, 100% { transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg); } 5%, 8% { transform: rotateZ(0deg) rotateX(6deg) rotateY(-20deg); } 13%, 16% { transform: rotateZ(0deg) rotateX(-9deg) rotateY(20deg); } 35%, 38% { transform: rotateZ(3deg) rotateX(12deg) rotateY(20deg); } 55% { transform: rotateZ(-3deg) rotateX(-12deg) rotateY(-27deg); } } @keyframes holoCard { 0%, 100% { transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg); } 5%, 8% { transform: rotateZ(0deg) rotateX(6deg) rotateY(-20deg); } 13%, 16% { transform: rotateZ(0deg) rotateX(-9deg) rotateY(32deg); } 35%, 38% { transform: rotateZ(3deg) rotateX(12deg) rotateY(20deg); } 55% { transform: rotateZ(-3deg) rotateX(-12deg) rotateY(-27deg); } } .card.eevee:hover { box-shadow: 0 0 30px -5px white, 0 0 10px -2px white, 0 55px 35px -20px rgba(0, 0, 0, 0.5); } .card.eevee:hover:before, .card.eevee.active:before { background-image: linear-gradient(115deg, transparent 20%, var(--color1) 36%, var(--color2) 43%, var(--color3) 50%, var(--color4) 57%, var(--color5) 64%, transparent 80%); } .operator { display: inline-block; vertical-align: middle; font-size: 6vh; } html, body { background-color: #000000; padding: 0; z-index: 1; transform: translate3d(0, 0, 0.1px); } body { color: white; background-color: #000000; font-family: "Heebo", sans-serif; text-align: center; } h1 { display: block; margin: 30px 0; } p { margin-top: 5px; font-weight: 200; } #app { position: relative; } .cards { display: flex; flex-direction: column; align-items: center; justify-content: space-evenly; perspective: 2000px; position: relative; z-index: 1; transform: translate3d(0.1px, 0.1px, 0.1px); } @media screen and (min-width: 600px) { .cards { flex-direction: row; } } .cards .card:nth-child(2), .cards .card:nth-child(2):before, .cards .card:nth-child(2):after { -webkit-animation-delay: 0.25s; animation-delay: 0.25s; } .cards .card:nth-child(3), .cards .card:nth-child(3):before, .cards .card:nth-child(3):after { -webkit-animation-delay: 0.5s; animation-delay: 0.5s; } .cards .card:nth-child(4), .cards .card:nth-child(4):before, .cards .card:nth-child(4):after { -webkit-animation-delay: 0.75s; animation-delay: 0.75s; } p { font-weight: 400; font-size: 18px; padding: 1em; background: rgba(0, 0, 0, 0.3); margin-top: 0; -webkit-animation: rubberBand 1.5s linear 3s 1; animation: rubberBand 1.5s linear 3s 1; } .promo { margin-top: 50px; } .promo img { margin-top: 10px; max-width: 80%; } p a { color: cyan; } html, body, main { min-height: 100%; } @-webkit-keyframes rubberBand { from { transform: scale3d(1, 1, 1); } 30% { transform: scale3d(1.25, 0.75, 1); } 40% { transform: scale3d(0.75, 1.25, 1); } 50% { transform: scale3d(1.15, 0.85, 1); } 65% { transform: scale3d(0.95, 1.05, 1); } 75% { transform: scale3d(1.05, 0.95, 1); } to { transform: scale3d(1, 1, 1); } } @keyframes rubberBand { from { transform: scale3d(1, 1, 1); } 30% { transform: scale3d(1.25, 0.75, 1); } 40% { transform: scale3d(0.75, 1.25, 1); } 50% { transform: scale3d(1.15, 0.85, 1); } 65% { transform: scale3d(0.95, 1.05, 1); } 75% { transform: scale3d(1.05, 0.95, 1); } to { transform: scale3d(1, 1, 1); } } #content { position: absolute; top: 32%; left: 29%; background-color: rgba(0, 0, 0, 0.219); padding: 10px; color: rgb(244, 248, 245); border-radius: 50px; z-index: 1; font-size: 3.5vw; font-weight: bold; text-align: center; } @keyframes glow { 0% { text-shadow: 0 0 10px rgba(230, 227, 62, 0.836); } 50% { text-shadow: 0 0 40px rgba(238, 145, 5, 0.938); } 100% { text-shadow: 0 0 60px rgb(248, 85, 10); } } #content.show { display: block; animation: glow 1s ease-in-out infinite alternate; }