/*
* @Author: kingpoolee
* @Date:   2026-08-02 06:51:55
* @Last Modified by:   kingpoolee
* @Last Modified time: 2026-08-29 23:27:35
*/

.cube-item-container {
    margin: 50px auto;
    max-width: 1200px;
    min-width: 360px;
}

.cube-item-container::after {
    content: '';
    display: block;
    clear: both;
}

.cube-item {
    display: inline-block;
    background-color: white;
    vertical-align: middle;
    margin: 2px;
    border-radius: 5px;
    outline: 3px solid gray;
    width: 340px;
    transition: 0.3s;
    padding: 10px;
    /*float: left;*/
}

.cube-item:hover {
    box-sizing: border-box;
    box-shadow: 2px 2px 20px black;
}

.left-box {
    display: inline-block;
    text-align: center;
    margin-right: 10px;
    vertical-align: middle;
}

.sn-box,.name-box {
    vertical-align: middle;
    width: 100%;
    word-wrap: break-word;
    font-size: 12px;
    padding-bottom: 5px;
}

.sn-box {
    margin-right: 5px;
}
.cube-box {
    display: block;
    position: relative;
    margin: auto;
    box-Sizing: border-box;
    transition: 0.5s;
    vertical-align: top;
}


.cube-box::after {
    content: '';
    display: block;
    clear: both;
}

.cube {
    display: inline-block;
    position: relative;
    margin: 0 auto;
    transition: 0.5s;
    vertical-align: top;

    transform-style: preserve-3d;
    /*transform: perspective(1500px); */
    z-index: 0;
}

.cube::after {
    content: '';
    display: block;
    clear: both;
}


.block {
    margin: 0;
    box-sizing: border-box;
    background: rgba(170, 170, 170, 1.0);
    text-align: center;
    color: white;
    float: left;
    border: 0 solid lightgray;
    outline-width: 0;
}

.formula-box {
    display: inline-block;
    vertical-align: middle;
    width: 230px;
    font-size: 11px;
    word-wrap: break-word;
}

.formula-item {
    padding: 3px 0;
    width: 100%;
    border-top: 1px solid gray;
    box-sizing: border-box;
    cursor: pointer;
    text-align: left;
}

.formula-box > :first-child {
    border-top: 0;
}


.selected {
    outline: red 2px solid;
}

.nohit {
    display: none !important;
}

/* mask */

#mask {
    position: fixed;
    width: 100%;
    height: 100%;
    transition: 0.5s;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.9);
    display: none;
    text-align: center;
    vertical-align: middle;
    line-height: 100%;
    z-index: 10000;
}

.mask-box {
    margin: 20px 0;
    color: white;
}

.mask-sn {
    font-size: 30px;
    color: white;
    margin-bottom: 10px;
}

.mask-cube {
    margin: 20px 0;
}

.mask-cube > .cube {
    left: 0;
    top: 0;
    margin: 10px auto;
}

.mask-formula {
    margin-top: 40px;
    margin-bottom: 20px;
    font-size: 16px;
}

.mask-formula > *{
    margin: 10px 0;
}

.mask-state {
    margin: 10px 0;
}

.mask-formula-item {
    margin: 5px 0;
}

/* 移动端适配 */

@media (max-width: 668px) {
}

/* ====== 2D ========= */

.two_d.cube-box {}
.two_d .cube {
    transform: none;
    position: static;
    display: block;

}

.two_d .cube::after {
    display: block;
    content: "";
    clear: both;
}

.oll .block[data-state="0"] {
    background-color: rgba(0, 117, 207, 1.0);
}
.oll .block[data-state="1"] {}
.oll .block[data-state="2"] {}
.oll .block[data-state="3"] {}
.oll .block[data-state="4"] {}

.pll .corner:not(:empty) {
    background-color: rgba(0, 117, 207, 1.0);;
}
.pll .edge:not(:empty) {
    background-color: rgba(227, 44, 74, 1.0);
}

.two_d .block {
    float: left;
    box-sizing: border-box;
    border: 0 solid rgba(0, 117, 207, 1.0);
    outline: 1px solid black;
    color: white;
}
/* ====== 3D ========= */

.three_d.cube-box {}
.three_d .cube {
    transform: rotateX(-20deg) rotateY(-25deg);
}
.three_d .block {}
.face {
    display: flex;
    position: absolute;
    background: rgba(170, 170, 170, 1.0);
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    z-index: 0;
    transition: 0.8s;
}
.three_d:hover .face {
    opacity: 0.7;
}
.face.front {}
.face.back {}
.face.left {}
.face.right {}
.face.up {}
.face.down {}

/* ===== auto-rotate ======= */
.cube-box.auto-rotate .cube {
    animation: spinY 8s linear infinite;
}

.cube-box.auto-rotate:hover .cube {
    animation: spinX 8s linear infinite;;
}

@keyframes spinY {
  from { transform: rotateX(-20deg) rotateY(-25deg) rotatez(0deg); }
  to { transform:  rotateX(-20deg) rotateY(-385deg) rotatez(0deg); }
}

@keyframes spinX {
  from { transform: rotateX(-20deg) rotateY(-25deg) rotatez(0deg); }
  to { transform:  rotateX(-380deg) rotateY(-25deg) rotatez(0deg); }
}

/* ====== cube mask ======= */

.cube-mask {
    position: absolute;
    top: 0;
    left: 0;
    background-color: transparent;
    box-sizing: border-box;
    color: white;
    display: block;
    z-index: 9999;
}

.cube-mask .mask-block:hover {
    color: white !important;
    background-color: rgba(0, 0, 0, 0.6) !important;
    box-shadow: 1px 1px 20px gray;
    font-weight: 700;
}

.mask-block {
    box-sizing : border-box;
    display: inline-block;
    transition: 0.5s;
    /*vertical-align: top;*/
    background-color: transparent;
    color: transparent;
    text-align: center;
}

/* ========= CubeView3D expend ========= */

.cube-box.expend {
    vertical-align: top;
    position: static;
}

.cube.expend {
    position: static;
    transform-style: preserve-3d;
    transform: perspective(1500px); 
    z-index: 0;
    margin: 0 auto;
}

.cube-box.expend:hover .face {
    opacity: 1.0;
}

.face.expend {
    display: flex;
    position: absolute;
    background: rgba(170, 170, 170, 1.0);
    transition: 0.5s;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    font-weight: bold;
    flex-wrap: wrap;
    z-index: 0;
}
.front.expend {}
.back.expend {}
.left.expend {}
.right.expend {}
.up.expend {}
.down.expend {}
.cube.expend {}
.block.expend {}

/* ========= CubeView3D mirror ========== */

.mirror-cube-container {position: relative;}
.cube-box.master {
    position: absolute;
}

.cube-container > .mirror-cube-container:hover .cube-box.master {
    opacity: 0.1;
}

.mirror-cube-container:hover .face.mirror {
    opacity: 1.0;
}

.cube-box.mirror {
    position: absolute;
}

.face.mirror {
    transition: 1.8s;
    opacity: 0;
}

.face.down.mirror {}
.face.left.mirror {}
.face.back.mirror {}
.face.front.mirror {}
.face.up.mirror {}
.face.right.mirror {}

/* ======== CubeView3D slave ========== */

.slave-cube-container {position: relative;}
.slave-cube-container .cube-box {position: absolute;}
.cube-box.master {}
.cube-box.up {}
.cube-box.down {}
.cube-box.left {}
.cube-box.right {}
.cube.up {transform: rotateX(-20deg) rotateY(-25deg);}
.cube.down {transform: rotateX(-20deg) rotateY(-25deg);}
.cube.left {transform: rotateX(-20deg) rotateY(65deg);}
.cube.right {transform: rotateX(-20deg) rotateY(-115deg);}
.cube-box.master {}

/* ====================================== */

.number-off .block {
    font-size: 0;
}

.search-input {
    width: 100px;
}

.two_d .block {}