@import "variables";


.cube {
    width: calc(2 * var(--width-unit));
    height: calc(2 * var(--width-unit));
    transform-style: preserve-3d;
    transition: transform $transition-duration, margin $transition-duration, width $transition-duration, height $transition-duration;
}

.cube1 {
    transform: translateZ(calc(-1.75 * var(--width-unit)))
     translateX(calc(.25 * var(--width-unit))) 
     rotateY(45deg) ;
    z-index: 1;
} 

.cube2 {
    transform: rotateY(45deg);
}

.cube3 {
    transform: translateZ(calc(-1.75 * var(--width-unit)))
     translateX(calc(-.25 * var(--width-unit))) 
     rotateY(45deg);
}


.cube__face--top {
    background: var(--color-top);
    border: var(--front-border-width) var(--border-style) var(--border-color) !important;
}

.cube1 .cube__face--left {
    background-color: var(--color-left);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube1 .cube__face--front {
    background-color: var(--color-shadow);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube2 .cube__face--left {
    background-color: var(--color-left);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube2 .cube__face--front {
    background-color: var(--color-right);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube3 .cube__face--front {
    background-color: var(--color-right);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube3 .cube__face--left {
    background-color: var(--color-shadow);
    border: var(--front-border-width) var(--border-style) var(--border-color);
}

.cube {
    &.show-front {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateY( 0deg);
    }

    &.show-right {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateY( -90deg);
    }

    &.show-back {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateY(-180deg);
    }

    &.show-left {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateY( 90deg);
    }

    &.show-top {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateX( -90deg);
    }

    &.show-bottom {
        transform: translateZ(calc(-1 * var(--width-unit))) rotateX( 90deg);
    }
}

.cube__face {
    position: absolute;
    width: calc(2 * var(--width-unit));
    height: calc(2 * var(--width-unit));
    border: var(--border-width) var(--border-style) var(--border-color);
    transition: background-color $transition-duration;
    --projection: 1;
    &.cube__face--front {
        transform: rotateY( 0deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
    
    &.cube__face--right { 
        transform: rotateY( 90deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
    
    &.cube__face--back {
        transform: rotateY(180deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
    
    &.cube__face--left {
        transform: rotateY(-90deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
    
    &.cube__face--top { 
        transform: rotateX( 90deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
    
    &.cube__face--bottom {
        transform: rotateX(-90deg) translateZ(calc(var(--projection) * var(--width-unit)));
    }
}
