/* ── ENTRANCE ANIMATION KEYFRAMES ──────────────────────────── */
@keyframes pb-fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes pb-fadeInUp {
    from { opacity: 0; transform: translateY(40px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes pb-fadeInDown {
    from { opacity: 0; transform: translateY(-40px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes pb-fadeInLeft {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes pb-fadeInRight {
    from { opacity: 0; transform: translateX(-40px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes pb-zoomIn {
    from { opacity: 0; transform: scale(0.7); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes pb-slideInUp {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}

.pb-anim-fadeIn     { animation: pb-fadeIn      0.6s ease-out both; }
.pb-anim-fadeInUp   { animation: pb-fadeInUp    0.6s ease-out both; }
.pb-anim-fadeInDown { animation: pb-fadeInDown  0.6s ease-out both; }
.pb-anim-fadeInLeft { animation: pb-fadeInLeft  0.6s ease-out both; }
.pb-anim-fadeInRight{ animation: pb-fadeInRight 0.6s ease-out both; }
.pb-anim-zoomIn     { animation: pb-zoomIn      0.6s ease-out both; }
.pb-anim-slideInUp  { animation: pb-slideInUp   0.6s ease-out both; overflow: hidden; }

/* ── BLOCK REVEAL OVERLAY PANELS ────────────────────────────── */
.pb-reveal-left,
.pb-reveal-right,
.pb-reveal-top,
.pb-reveal-bottom {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    transition: transform 0.8s ease;
}
.pb-reveal-left   { transform-origin: right;  transform: scaleX(1); }
.pb-reveal-right  { transform-origin: left;   transform: scaleX(1); }
.pb-reveal-top    { transform-origin: bottom; transform: scaleY(1); }
.pb-reveal-bottom { transform-origin: top;    transform: scaleY(1); }

.pb-reveal-left.pb-reveal-active,
.pb-reveal-right.pb-reveal-active  { transform: scaleX(0); }
.pb-reveal-top.pb-reveal-active,
.pb-reveal-bottom.pb-reveal-active { transform: scaleY(0); }
