ui/logo.razor.scss
@import "_theme.scss";

Logo {
    flex-direction: column;
    align-items: center;
    color: $ink;
    font-family: $font-display;

    .wordmark {
        flex-direction: column;
        align-items: center;
    }

    .tile-row {
        flex-direction: row;
        gap: 16px;
        margin-bottom: 16px;
        animation-name: logo-in;
        animation-duration: 0.5s;
        animation-timing-function: bounce-out;
        animation-delay: 0.10s;
        animation-fill-mode: backwards;
    }

        .tile-row.indent {
            margin-left: 60px;
            margin-bottom: 40px;
            animation-delay: 0.20s;
        }

    .tile {
        width: 130px;
        height: 138px;
        align-items: center;
        justify-content: center;
        transition: transform 0.32s bounce-out;
    }

    .tile-face {
        width: 100%;
        height: 100%;
        align-items: center;
        justify-content: center;
        border: 6px solid $ink;
        border-radius: 26px;
        box-shadow: 9px 9px 0 $ink;
        font-family: $font-display;
        font-weight: 800;
        font-size: 96px;
        color: $ink;
        pointer-events: all;
        cursor: pointer;
        transition: box-shadow 0.12s ease-out;
    }

        .tile-face:hover {
            box-shadow: 13px 13px 0 $ink;
        }

        .tile-face:active {
            sound-in: "ui.button.press";
        }

        .tile-face.hit-a {
            animation: tile-pop-a 0.42s bounce-out;
        }

        .tile-face.hit-b {
            animation: tile-pop-b 0.42s bounce-out;
        }
}

@keyframes logo-in {
    0% {
        transform: translateY( 24px ) scale( 0.9 );
        opacity: 0;
    }
    100% {
        transform: translateY( 0px ) scale( 1 );
        opacity: 1;
    }
}

@keyframes tile-pop-a {
    0% {
        transform: rotate( 0deg );
    }
    30% {
        transform: rotate( -10deg );
    }
    60% {
        transform: rotate( 6deg );
    }
    100% {
        transform: rotate( 0deg );
    }
}

@keyframes tile-pop-b {
    0% {
        transform: rotate( 0deg );
    }
    30% {
        transform: rotate( 10deg );
    }
    60% {
        transform: rotate( -6deg );
    }
    100% {
        transform: rotate( 0deg );
    }
}