@property --rotate {
    syntax: "<angle>";
    initial-value: 132deg;
    inherits: false;
}

* {
    margin: 0px;
    padding: 0px;
}

:root {
    --card-height: 60vh;
    --card-width: calc(var(--card-height) / 1.6);
}

body {
    min-height: 100vh;
    background: #212534;
    display: flex;
    align-items: center;
    flex-direction: column;
    padding-top: 4rem;
    padding-bottom: 2rem;
    box-sizing: border-box;
}

/* 卡片布局，网格布局，默认4个 */
.main {
    display: inline-grid;
    grid-template-columns: auto auto auto auto;
    grid-column-gap: 20px;
    grid-row-gap: 20px;
}

[class^="crypto_"] input,
[class^="crypto_"] textarea {
    background: #191c29;
    color: #ffffff;
}

[class^="crypto_button"] input {
    /* background-image: linear-gradient(var(--rotate), #4e00c2 10%, #3c67e3 25%, #5ddcff, #6184e4);
    animation: slide 2.5s linear infinite; */

    display: inline-block;
    padding: 10px 20px;
    font-size: 16px;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    background-size: 200% 200%;
    background-image: linear-gradient(270deg,
            #4e00c2,
            #3c67e3,
            #7873f5,
            #6078ea,
            #4c92e2,
            #4e00c2);
    animation: rainbow-animation 10s linear infinite;
    text-align: center;
    transition: background 0.3s;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}


@keyframes rainbow-animation {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 200% 50%;
    }
}


.card {
    margin: 0px 2px;
    background: #191c29;
    width: var(--card-width);
    height: var(--card-height);
    padding: 3px;
    position: relative;
    border-radius: 6px;
    justify-content: center;
    align-items: center;
    text-align: center;
    display: flex;
    font-size: 1.5em;
    color: rgb(88 199 250 / 100%);
    cursor: pointer;
    font-family: cursive;
    transition: all 0.5s;
}

.card:hover {
    color: rgb(88 199 250 / 100%);
    transition: color 1s;
}

.card:hover:before,
.card:hover:after {
    animation: none;
    opacity: 0;
    transition: all 0.3s;
}


.card::before {
    content: "";
    width: 102%;
    height: 102%;
    border-radius: 8px;
    background-image: linear-gradient(var(--rotate), #5ddcff, #3c67e3 43%, #4e00c2);
    position: absolute;
    z-index: -1;
    top: -1%;
    left: -1%;
    animation: spin 2.5s linear infinite;
    transition: all 0.3s;
}

.card::after {
    position: absolute;
    content: "";
    top: calc(var(--card-height) / 6);
    left: 0;
    right: 0;
    z-index: -1;
    height: 100%;
    width: 100%;
    margin: 0 auto;
    transform: scale(0.8);
    filter: blur(calc(var(--card-height) / 6));
    background-image: linear-gradient(var(--rotate), #5ddcff, #3c67e3 43%, #4e00c2);
    opacity: 1;
    transition: opacity .5s;
    animation: spin 2.5s linear infinite;
}

@keyframes spin {
    0% {
        --rotate: 0deg;
    }

    100% {
        --rotate: 360deg;
    }
}

@keyframes slide {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

a {
    color: #212534;
    text-decoration: none;
    font-family: sans-serif;
    font-weight: bold;
    margin-top: 2rem;
}


/* 响应式布局 - 媒体查询 */
@media screen and (max-width: 1700px) {
    .main {
        grid-template-columns: auto auto auto;
        grid-column-gap: 50px;
        grid-row-gap: 50px;
    }
}

@media screen and (max-width: 1200px) {
    .main {
        grid-template-columns: auto auto;
        grid-column-gap: 50px;
        grid-row-gap: 50px;
    }
}

@media screen and (max-width: 720px) {
    .main {
        grid-template-columns: auto;
        grid-column-gap: 50px;
        grid-row-gap: 50px;
    }

    .card {
        min-width: 300px;
        min-height: 480px;
    }
}