.pagination {
    background: linear-gradient(115deg, #5b4492, #31a698);
    overflow: hidden;

    align-self: center;
    display: flex;
    column-gap: 0.4rem;

    list-style-type: none;
    margin: 0;
    padding: 0;

    transition: 0s !important;
}

.pagination .page-item {
    position: relative;
    display: inline-block;
    width: 2rem;
    height: 2rem;
    border: solid 3px black;
    mix-blend-mode: lighten;
    box-shadow: 0px 0px 0px 4px white, 2px -3px 0px 3px white, 2px 3px 0px 3px white ;
}

.pagination .page-item:not(.active) {
    background-color: white;
}

.pagination .page-item .page-link {
    position: absolute;
    top: -3px;
    left: -3px;
    bottom: -3px;
    right: -3px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: black;
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
}

.pagination .page-item.active .page-link {
    color: white;
}

.pagination .page-item:not(.active) .page-link:hover {
    background-color: rgba(0, 0, 0, 0.08);
}

@-webkit-keyframes page-item-rotation /* Safari and Chrome */ {
    from {
        -webkit-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes page-item-rotation {
    from {
        -ms-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
        -o-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    to {
        -ms-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        -o-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

.pagination .page-item.load .page-link::before {
    -webkit-animation: page-item-rotation 2s linear infinite;
    -moz-animation: page-item-rotation 2s linear infinite;
    -ms-animation: page-item-rotation 2s linear infinite;
    -o-animation: page-item-rotation 2s linear infinite;
    animation: page-item-rotation 2s linear infinite;
}

.page-item-load {
    margin: 9px;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 3.5px solid black;
    transition: 0s;
    animation:
        page-item-load-1 0.8s infinite linear alternate,
        page-item-load-2 1.6s infinite linear;
}

@keyframes page-item-load-1 {
    0%    {clip-path: polygon(50% 50%,0       0,  50%   0%,  50%    0%, 50%    0%, 50%    0%, 50%    0% )}
    12.5% {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100%   0%, 100%   0%, 100%   0% )}
    25%   {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100% 100%, 100% 100%, 100% 100% )}
    50%   {clip-path: polygon(50% 50%,0       0,  50%   0%,  100%   0%, 100% 100%, 50%  100%, 0%   100% )}
    62.5% {clip-path: polygon(50% 50%,100%    0, 100%   0%,  100%   0%, 100% 100%, 50%  100%, 0%   100% )}
    75%   {clip-path: polygon(50% 50%,100% 100%, 100% 100%,  100% 100%, 100% 100%, 50%  100%, 0%   100% )}
    100%  {clip-path: polygon(50% 50%,50%  100%,  50% 100%,   50% 100%,  50% 100%, 50%  100%, 0%   100% )}
}

@keyframes page-item-load-2 { 
    0%    {transform:scaleY(1)  rotate(0deg)}
    49.99%{transform:scaleY(1)  rotate(135deg)}
    50%   {transform:scaleY(-1) rotate(0deg)}
    100%  {transform:scaleY(-1) rotate(-135deg)}
}