:root {
    color-scheme: dark;
    --top: #d8fff2;
    --bottom: #ff4fa3;
    --glow: rgba(255, 79, 163, 0.44);
    --shadow: rgba(0, 0, 0, 0.72);
}

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
}

body {
    overflow: hidden;
    background: #080706;
    font-family: Arial, Helvetica, sans-serif;
}

.stage {
    position: relative;
    display: grid;
    place-items: center;
    width: 100vw;
    height: 100svh;
    min-height: 100vh;
    overflow: hidden;
    isolation: isolate;
}

.cover-wall {
    position: absolute;
    inset: 0;
    z-index: -2;
    display: grid;
    width: 100%;
    height: 100%;
    background: #080706;
}

.cover-tile {
    position: relative;
    overflow: hidden;
    background: #14110f;
}

.cover-tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(1.16) contrast(1.04) brightness(1);
}

.money-rain {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
    perspective: 1200px;
}

.cash-bill {
    position: absolute;
    width: var(--bill-width);
    aspect-ratio: 2.35 / 1;
    opacity: var(--bill-opacity);
    filter:
        drop-shadow(0 13px 13px rgba(0, 0, 0, 0.4))
        drop-shadow(0 2px 1px rgba(255, 255, 255, 0.14));
    transform-origin: 50% 50%;
    will-change: transform;
}

.cash-bill svg {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 4px;
}

.mark {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    margin: 0;
    max-width: 94vw;
    font-family: Verdana, Geneva, sans-serif;
    font-size: clamp(4.7rem, 17vw, 15rem);
    font-weight: 900;
    line-height: 0.74;
    letter-spacing: 0;
    text-align: center;
    text-transform: uppercase;
    color: var(--top);
    background: linear-gradient(180deg, var(--top), var(--bottom));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow:
        0 0 1px rgba(255, 255, 255, 0.9),
        0 0 34px var(--glow),
        0 14px 44px var(--shadow);
    animation: mark-hover 7.5s ease-in-out infinite;
    transform-style: preserve-3d;
    will-change: transform;
}

.mark::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -0.18em;
    z-index: -1;
    width: 72%;
    height: 0.16em;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.52), transparent 70%);
    filter: blur(12px);
    transform: translate3d(-50%, 18px, -1px) scaleX(0.86);
    animation: mark-shadow 7.5s ease-in-out infinite;
    pointer-events: none;
}

.mark span {
    display: block;
}

@keyframes mark-hover {
    0%,
    100% {
        transform: translate3d(0, 0, 0) rotateX(0deg);
    }

    50% {
        transform: translate3d(0, -11px, 0) rotateX(1.2deg);
    }
}

@keyframes mark-shadow {
    0%,
    100% {
        opacity: 0.72;
        transform: translate3d(-50%, 18px, -1px) scaleX(0.86);
    }

    50% {
        opacity: 0.42;
        transform: translate3d(-50%, 32px, -1px) scaleX(1.06);
    }
}

@media (max-width: 520px) {
    .mark {
        font-size: clamp(4.2rem, 25vw, 7.4rem);
    }
}
