:root {
    --skin: url("../../assets/images/default-skin-resized-min.png");
}

.container3d {
    width: fit-content;
    height: 4000px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scene {
    position: relative;
    transform-style: preserve-3d;
    height: fit-content;
    scale: calc(12 / 10);
    animation: spin 12s infinite cubic-bezier(0.64, -1.16, 0.33, 2);
    image-rendering: pixelated;

    > * {
        transform-style: preserve-3d;
    }
}

@keyframes spin {
    0% {
        transform: rotateY(0deg) translateY(0);
    }
    50% {
        transform: rotateY(180deg) translateY(calc(10px / 12 * 3));
    }
    100% {
        transform: rotateY(360deg) translateY(0);
    }
}

.container1 {
    max-width: 90vw;
    width: fit-content;
    height: fit-content;
    display: flex;
    flex-wrap: wrap;
    margin: 0 auto;
    align-content: center;
    justify-content: center;
    padding: 2rem;

    > .container3d {
        scale: 1.25;
    }
}

.scene div div {
    image-rendering: pixelated;
    position: absolute;
    height: 100%;
    width: 100%;
    transform-style: preserve-3d;
    transform: translate(-50%, -50%);
}

.scene div div::after {
    content: " ";
    position: absolute;
    align-self: center;
    height: 100%;
    width: 100%;
    scale: 1.125;
    background: #ffffff01;
    image-rendering: pixelated;
}

.scene[data="url"] div div,
.scene[data="url"] div div:after {
    background-image: var(--skin);
}

.head {
    height: 80px;
    width: 80px;
}

#head-front {
    background-position: 560px 560px;
    transform: translateZ(40px);
}

#head-front::after {
    background-position: 240px 560px;
    transform: translateZ(5px);
}

#head-back {
    background-position: 400px 560px;
    transform: rotateY(180deg) translateZ(40px);
}

#head-back::after {
    background-position: 80px 560px;
    transform: translateZ(5px);
}

#head-left {
    background-position: 480px 560px;
    transform: rotateY(90deg) translateZ(40px);
}

#head-left::after {
    background-position: 160px 560px;
    transform: translateZ(5px);
}

#head-right {
    background-position: 640px 560px;
    transform: rotateY(-90deg) translateZ(40px);
}

#head-right::after {
    background-position: 320px 560px;
    transform: translateZ(5px);
}

#head-top {
    background-position: 560px 640px;
    transform: translateY(-40px) rotateX(90deg);
}

#head-top::after {
    background-position: 240px 640px;
    transform: translateZ(5px);
}

#head-bottom {
    background-position: 480px 640px;
    transform: translateY(40px) rotateX(270deg) rotate(180deg);
}

#head-bottom::after {
    background-position: 160px 640px;
    transform: translateZ(5px);
}

.body {
    width: 80px;
    height: 120px;
}

#body-front {
    background-position: 440px 440px;
    transform: translateZ(20px);
}

#body-front::after {
    background-position: 440px 280px;
    transform: translateZ(5px);
}

#body-back {
    background-position: 320px 440px;
    transform: rotateY(180deg) translateZ(20px);
}

#body-back::after {
    background-position: 320px 280px;
    transform: translateZ(5px);
}

#body-left {
    width: 40px;
    background-position: 360px 440px;
    transform: rotateY(90deg) translateZ(60px);
}

#body-left::after {
    content: none;
}

#body-right {
    width: 40px;
    background-position: 480px 440px;
    transform: rotateY(-90deg) translateZ(20px);
}

#body-right::after {
    content: none;
}

#body-bottom {
    width: 80px;
    height: 40px;
    background-position: 360px 480px;
    transform: translateY(100px) rotateX(270deg);
}

#body-bottom::after {
    display: none;
}

.left-slim-arm {
    position: absolute;
    width: 30px;
    height: 120px;
    transform: translateX(80px) translateY(-120px);
}

#left-slim-arm-front {
    background-position: 280px 120px;
    transform: translateZ(20px);
}

#left-slim-arm-front::after {
    background-position: 120px 120px;
    transform: translateZ(3px);
}

#left-slim-arm-back {
    background-position: 210px 120px;
    transform: rotateY(180deg) translateZ(20px);
}

#left-slim-arm-back::after {
    background-position: 80px 120px;
    transform: translateZ(3px);
}

#left-slim-arm-left {
    width: 40px;
    background-position: 250px 120px;
    transform: rotateY(90deg) translateZ(10px);
}

#left-slim-arm-left::after {
    background-position: 90px 120px;
    transform: translateZ(1.5px);
}

#left-slim-arm-top {
    width: 30px;
    height: 40px;
    background-position: 280px 160px;
    transform: translateY(-20px) rotateX(90deg);
}

#left-slim-arm-top::after {
    background-position: 120px 160px;
    transform: translateZ(7px);
}

#left-slim-arm-bottom {
    width: 30px;
    height: 40px;
    background-position: 250px 160px;
    transform: translateY(100px) rotateX(270deg);
}

#left-slim-arm-bottom::after {
    background-position: 140px 160px;
    transform: translateZ(7px);
}

.right-slim-arm {
    transform-style: preserve-3d;
    position: absolute;
    width: 30px;
    height: 120px;
    transform: translateX(-30px) translateY(-120px);
}

#right-slim-arm-front {
    background-position: 200px 440px;
    transform: translateZ(20px);
}

#right-slim-arm-front::after {
    background-position: 200px 280px;
    transform: translateZ(3px);
}

#right-slim-arm-back {
    background-position: 130px 440px;
    transform: rotateY(180deg) translateZ(20px);
}

#right-slim-arm-back::after {
    background-position: 130px 280px;
    transform: translateZ(3px);
}

#right-slim-arm-right {
    width: 40px;
    background-position: 170px 440px;
    transform: rotateY(270deg) translateZ(20px);
}

#right-slim-arm-right::after {
    background-position: 170px 280px;
    transform: translateZ(1.5px);
}

#right-slim-arm-top {
    width: 30px;
    height: 40px;
    background-position: 200px 480px;
    transform: translateY(-20px) rotateX(90deg);
}

#right-slim-arm-top::after {
    background-position: 200px 320px;
    transform: translateZ(7px);
}

#right-slim-arm-bottom {
    width: 30px;
    height: 40px;
    background-position: 170px 480px;
    transform: translateY(100px) rotateX(270deg);
}

#right-slim-arm-bottom::after {
    background-position: 170px 320px;
    transform: translateZ(7px);
}

.left-leg {
    position: absolute;
    width: 40px;
    height: 120px;
    transform: translateX(40px) translateY(0px);
}

#left-leg-front {
    background-position: 440px 120px;
    transform: translateZ(20px);
}

#left-leg-front::after {
    background-position: 600px 120px;
    transform: translateZ(3px);
}

#left-leg-back {
    background-position: 360px 120px;
    transform: rotateY(180deg) translateZ(20px);
}

#left-leg-back::after {
    background-position: 520px 120px;
    transform: translateZ(3px);
}

#left-leg-left {
    width: 40px;
    background-position: 400px 120px;
    transform: rotateY(90deg) translateZ(20px);
}

#left-leg-left::after {
    background-position: 560px 120px;
    transform: translateZ(1.5px);
}

#left-leg-top {
    width: 40px;
    height: 40px;
    background-position: 440px 160px;
    transform: translateY(-20px) rotateX(90deg);
}

#left-leg-top::after {
    display: none;
}

#left-leg-bottom {
    width: 40px;
    height: 40px;
    background-position: 400px 160px;
    transform: translateY(100px) rotateX(270deg);
}

#left-leg-bottom::after {
    background-position: 560px 160px;
    transform: translateZ(7px);
}

.right-leg {
    width: 40px;
    height: 120px;
    transform: translateX(0px) translateY(0px);
}

#right-leg-front {
    background-position: 600px 440px;
    transform: translateZ(20px);
}

#right-leg-front::after {
    background-position: 600px 280px;
    transform: translateZ(3px);
}

#right-leg-back {
    background-position: 520px 440px;
    transform: rotateY(180deg) translateZ(20px);
}

#right-leg-back::after {
    background-position: 520px 280px;
    transform: translateZ(3px);
}

#right-leg-right {
    width: 40px;
    background-position: 640px 440px;
    transform: rotateY(270deg) translateZ(20px);
}

#right-leg-right::after {
    background-position: 640px 280px;
    transform: translateZ(1.5px);
}

#right-leg-top {
    width: 40px;
    height: 40px;
    background-position: 600px 480px;
    transform: translateY(-20px) rotateX(90deg);
}

#right-leg-top::after {
    display: none;
}

#right-leg-bottom {
    width: 40px;
    height: 40px;
    background-position: 560px 480px;
    transform: translateY(100px) rotateX(270deg);
}

#left-leg-bottom::after {
    background-position: 560px 320px;
    transform: translateZ(7px);
}