@keyframes fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.image {
    width: 100%;
    height: 100%;
    object-fit: var(--theme-image-fit);
    border-radius: var(--theme-radius-md);
}

.image.animated {
    opacity: 1;
    animation: fade-in 0.2s ease-in;
}

.loader {
    width: 100%;
    height: 100%;
    border-radius: var(--theme-radius-md);
}

.image-container {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.censored .image {
    filter: blur(10px);
}

.censored::after {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-weight: bold;
    color: var(--theme-colors-background);
    background-color: alpha(var(--theme-colors-background), 0.5);
    border-radius: var(--theme-radius-md);
}

.unloader {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-color: darken(var(--theme-colors-foreground), 40%);
    border-radius: var(--theme-radius-md);
    opacity: 0.3;
}

.skeleton {
    width: 100%;
    height: 100%;
    border-radius: var(--theme-radius-md);
}

.view-wrapper {
    width: 100%;
    height: 100%;
}
