﻿/* ARTIFACT: 3D BOOK SCAN (Redesigned for The Choir) */

:root {
    --book-width: 360px;
    --book-height: 540px;
    --book-depth: 50px;
    --spine-color: #580000; /* Deep Red Spine */
    --page-color: #eaddcf; /* Warm paper tone */
}

.book-container {
    perspective: 2500px;
    width: var(--book-width);
    height: var(--book-height);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
    z-index: 50;
    cursor: grab;
}

@keyframes floatAnim {
    0% {
        transform: rotateY(-25deg) rotateX(5deg) translateY(0);
    }

    50% {
        transform: rotateY(-20deg) rotateX(8deg) translateY(-15px);
    }

    100% {
        transform: rotateY(-25deg) rotateX(5deg) translateY(0);
    }
}

.book {
    width: var(--book-width);
    height: var(--book-height);
    position: absolute;
    transform-style: preserve-3d;
    transform: rotateY(-25deg);
    animation: floatAnim 8s ease-in-out infinite;
    transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    pointer-events: none;
}

.book-container:hover .book {
    animation: none !important;
    transition: none !important;
}

.face {
    position: absolute;
    box-sizing: border-box;
    backface-visibility: hidden;
}

    /* Front */
    .face.front {
        width: var(--book-width);
        height: var(--book-height);
        transform: translateZ(25px);
    }

        .face.front img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            border-radius: 2px 4px 4px 2px;
            box-shadow: inset 5px 0 15px rgba(0,0,0,0.5);
        }

    /* Back */
    .face.back {
        width: var(--book-width);
        height: var(--book-height);
        transform: rotateY(180deg) translateZ(25px);
        background-color: #1a1a1a;
        box-shadow: -10px 10px 50px rgba(0,0,0,0.5);
    }

    /* Pages (Right) */
    .face.right {
        width: var(--book-depth);
        height: var(--book-height);
        left: calc((var(--book-width) - var(--book-depth)) / 2);
        transform: translateX(180px) rotateY(90deg);
        background: linear-gradient(90deg, #d3c0a8 0%, #fff 20%, #eaddcf 40%, #fff 60%, #d3c0a8 100%);
    }

    /* Spine (Left) */
    .face.left {
        width: var(--book-depth);
        height: var(--book-height);
        left: calc((var(--book-width) - var(--book-depth)) / 2);
        transform: translateX(-180px) rotateY(-90deg);
        background-color: var(--spine-color);
        color: #d4af37; /* Gold text on spine */
        font-family: 'Cinzel', serif;
        font-weight: 700;
        font-size: 24px;
        letter-spacing: 0.3em;
        display: flex;
        align-items: center;
        justify-content: center;
        writing-mode: vertical-rl;
        box-shadow: inset 10px 0 20px rgba(0,0,0,0.6);
    }

    /* Top/Bottom */
    .face.top {
        width: var(--book-width);
        height: var(--book-depth);
        top: calc((var(--book-height) - var(--book-depth)) / 2);
        transform: translateY(-270px) rotateX(90deg);
        background: linear-gradient(90deg, #d3c0a8 0%, #fff 50%, #d3c0a8 100%);
    }

    .face.bottom {
        width: var(--book-width);
        height: var(--book-depth);
        top: calc((var(--book-height) - var(--book-depth)) / 2);
        transform: translateY(270px) rotateX(-90deg);
        background: linear-gradient(90deg, #d3c0a8 0%, #fff 50%, #d3c0a8 100%);
    }
