@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300&display=swap');

body, html {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background-color: #f5f0e6; /* Paper color */
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Montserrat', sans-serif;
}

.hover-zone {
    width: 600px;
    height: 600px;
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1200px;
}

.center-piece {
    position: relative;
    width: 150px;
    height: 150px;
    background: #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transform-style: preserve-3d;
    transition: transform 0.5s;
}

.core-content {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.5rem;
    color: #444;
    letter-spacing: 5px;
    z-index: 10;
}

.panel {
    position: absolute;
    width: 150px;
    height: 150px;
    background: #fff;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.05), 0 0 10px rgba(0,0,0,0.1);
    transform-origin: center;
    transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    backface-visibility: hidden;
}

/* Base folded positions (closed over the core) */
.p-top    { top: -150px; transform-origin: bottom; transform: rotateX(-179deg); }
.p-bottom { bottom: -150px; transform-origin: top; transform: rotateX(179deg); }
.p-left   { left: -150px; transform-origin: right; transform: rotateY(179deg); }
.p-right  { right: -150px; transform-origin: left; transform: rotateY(-179deg); }

/* Unfolded positions on hover */
.hover-zone:hover .p-top    { transform: rotateX(0deg); }
.hover-zone:hover .p-bottom { transform: rotateX(0deg); }
.hover-zone:hover .p-left   { transform: rotateY(0deg); }
.hover-zone:hover .p-right  { transform: rotateY(0deg); }

/* Tilt the whole piece */
.hover-zone:hover .center-piece {
    transform: rotateX(45deg) rotateZ(45deg);
}
