/* Modale banner libro — home (complementare a Tailwind solo sul blocco interno) */

.banner-libro-popup {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: clamp(0.75rem, 3vw, 1.5rem);
    box-sizing: border-box;
}

.banner-libro-popup[hidden] {
    display: none !important;
}

.banner-libro-popup__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 17, 15, 0.72);
    backdrop-filter: blur(6px);
    cursor: pointer;
}

.banner-libro-popup__panel {
    position: relative;
    z-index: 1;
    max-width: min(56rem, 100%);
    max-height: min(92vh, 100%);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

.banner-libro-popup__chiudi {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    z-index: 20;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(17, 17, 21, 0.92);
    color: #e7e5e4;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
        background 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease;
}

.banner-libro-popup__chiudi:hover {
    background: rgba(55, 48, 40, 0.98);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

.banner-libro-popup__chiudi:focus-visible {
    outline: 2px solid var(--colore-oro, #a16207);
    outline-offset: 2px;
}

body.banner-libro-popup--aperto {
    overflow: hidden;
}

/* Font e animazioni del banner (da tmp/banner_libro.html) */
.banner-libro-popup .font-serif {
    font-family: "Playfair Display", "Georgia", serif;
}

@keyframes banner-libro-fadeInUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes banner-libro-float3D {
    0%,
    100% {
        transform: rotateY(-25deg) rotateX(10deg) translateY(0);
    }
    50% {
        transform: rotateY(-15deg) rotateX(5deg) translateY(-20px);
    }
}

.banner-libro-popup .book-3d-wrapper {
    transform-style: preserve-3d;
    animation: banner-libro-float3D 6s ease-in-out infinite;
    transform-origin: center center;
}

@media (prefers-reduced-motion: reduce) {
    .banner-libro-popup .book-3d-wrapper {
        animation: none;
        transform: rotateY(-20deg) rotateX(8deg);
    }

    .banner-libro-popup .animate-entrance {
        animation: none !important;
        opacity: 1 !important;
    }
}

.banner-libro-popup .animate-entrance {
    animation: banner-libro-fadeInUp 1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    opacity: 0;
}

.banner-libro-popup .delay-100 {
    animation-delay: 0.1s;
}

.banner-libro-popup .delay-200 {
    animation-delay: 0.2s;
}

.banner-libro-popup .delay-300 {
    animation-delay: 0.3s;
}

.banner-libro-popup .delay-400 {
    animation-delay: 0.4s;
}
