.album3d-stage{ background:#f7f7f7; padding:20px; border-radius:10px; min-height:420px; box-shadow:0 6px 18px rgba(0,0,0,0.08); perspective:2000px; }
.album3d-book{ position:relative; width:100%; height:100%; transform-style: preserve-3d; }
.spread{ position:relative; height:100%; }
.spread .page{ position:absolute; top:0; bottom:0; width:50%; height:100%; overflow:hidden; backface-visibility:hidden; transition: transform 0.9s cubic-bezier(.2,.8,.2,1); transform-style:preserve-3d; }
.spread .left{ left:0; transform-origin:right center; }
.spread .right{ left:50%; transform-origin:left center; }
.spread .face{ position:absolute; inset:0; }
.spread .face.front{ transform: translateZ(1px); display:flex; align-items:center; justify-content:center; background:#fff; }
.spread .face.back{ transform: rotateY(180deg); background:#f6f6f6; }
.spread .face img{ width:100%; height:100%; object-fit:contain; display:block; }
.album3d-controls{ text-align:center; margin-top:10px; }
.album3d-controls button{ margin:4px; padding:8px 12px; border-radius:6px; cursor:pointer; }
.album3d-carousel{ width:100%; height:420px; transform-style:preserve-3d; display:flex; align-items:center; justify-content:center; }
.album3d-carousel .card{ width:300px; height:200px; margin:0 12px; box-shadow:0 8px 24px rgba(0,0,0,0.2); border-radius:8px; overflow:hidden; }
.album3d-carousel img, .album3d-mural img{ width:100%; height:100%; object-fit:cover; }
.album3d-mural{ display:flex; flex-wrap:wrap; gap:8px; }
.album3d-mural .tile{ width:calc(33% - 8px); height:160px; border-radius:6px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,0.08); }
@media (max-width:800px){
    .album3d-stage{ padding:12px; }
    .album3d-carousel .card{ width:220px; height:140px; }
}