/* styles for the second example on system.html */

.reveal {
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    width: 100%;
    height: 900px;;
}

.reveal-grid {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
    max-width: 1200px;
}

/* boxes for the text */
.reveal-wrapper {
    flex: 0 1 auto;
    position: relative;
    overflow: hidden;
    width: max-content;
    padding: 1rem 2rem;
    border: 1px solid var(--color-stroke-example);
    cursor: pointer;
    border-radius: 25px;
}

/* text inside boxes */
.reveal-text {
    text-align: center;
    font-size: 3.75rem;
    color: var(--color-text-primary);
    position: relative;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* panels for the animation */
.reveal-panel {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    z-index: 2;
    transform-origin: left;
}

.reveal-panel-top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    transform-origin: bottom;
    transform: translateY(-101%) scaleY(1);
}

.reveal-panel-right {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    transform-origin: left;
    transform: translateY(101%) scaleY(1);
}

.reveal-panel-bottom {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    transform-origin: bottom;
    transform: translateY(100%) scaleY(1);
}

/* background for the panels */
.red {
    background: var(--color-example-1);
}

.cyan {
    background: var(--color-example-2);
}

.blue {
    background: var(--color-example-3);
}

.orange {
    background: var(--color-example-4);
}

.green {
    background: var(--color-example-5);
}

.pink {
    background: var(--color-example-6);
}


/* active state of wrapper-panel */
.reveal-wrapper.active .reveal-panel {
    animation: slideReveal 1.6s forwards;
}

.reveal-wrapper.active .reveal-panel-top {
    animation: slideRevealTop 1.6s forwards;
}

.reveal-wrapper.active .reveal-panel-right {
    animation: slideRevealRight 1.6s forwards;
}

.reveal-wrapper.active .reveal-panel-bottom {
    animation: slideRevealBottom 1.6s forwards;
}

/* active state of wrapper-text */
.reveal-wrapper.active .reveal-text {
    animation: showText 0.4s ease-out forwards;
    animation-delay: 0.8s;
}

/* closed state of wrapper-panel */
.reveal-wrapper.closing .reveal-panel {
    animation: slideCover 1.6s forwards;
}

.reveal-wrapper.closing .reveal-panel-top {
    animation: slideCoverTop 1.6s forwards;
}

.reveal-wrapper.closing .reveal-panel-right {
    animation: slideCoverRight 1.6s forwards;
}

.reveal-wrapper.closing .reveal-panel-bottom {
    animation: slideCoverBottom 1.6s forwards;
}

/* closed state of wrapper-text */
.reveal-wrapper.closing .reveal-text {
    animation: hideText 0.1s ease-out backwards;
    animation-delay: 0.8s; 
}

/* animations for the panel */
/* slide from left side */
@keyframes slideReveal {
    0% {
        transform: translateX(0%) scaleX(1);
    }
    50% {
        transform: translateX(100%) scaleX(1);
    }
    100% {
        transform: translateX(100%) scaleX(0);
    }
}

/* slide back to left */
@keyframes slideCover {
    0% {
        transform: translateX(0%) scaleX(1);
    }
    50% {
        transform: translateX(100%) scaleX(1);
    }
    100% {
        transform: translateX(100%) scaleX(0);
    }
}

/* slide from top */
@keyframes slideRevealTop {
    0% { 
        transform: translateY(-100%) scaleY(1); 
      }
    50% { 
        transform: translateY(0%) scaleY(1); 
      }
    100% { 
        transform: translateY(0%) scaleY(0); 
      }
}

/* slide to bottom */
@keyframes slideCoverTop {
    0% { 
        transform: translateY(-100%) scaleY(1); 
      }
    50% { 
        transform: translateY(0%) scaleY(1); 
      }
    100% { 
        transform: translateY(0%) scaleY(0); 
      }
}

/* slide from right */
@keyframes slideRevealRight {
    0% {
         transform: translateX(100%) scaleX(1); 
        }
    50% {
         transform: translateX(0%) scaleX(1); 
        }
    100% {
         transform: translateX(0%) scaleX(0); 
        }
}

/* slide to left */
@keyframes slideCoverRight {
    0% {
         transform: translateX(100%) scaleX(1); 
        }
    50% {
         transform: translateX(0%) scaleX(1); 
        }
    100% {
         transform: translateX(0%) scaleX(0); 
        }
}

/* slide from bottom */
@keyframes slideRevealBottom {
    0% {
        transform: translateY(100%) scaleY(1);
    }
    50% {
        transform: translateY(0%) scaleY(1);
    }
    100% {
        transform: translateY(0%) scaleY(0);
    }
}

/* slide back to bottom */
@keyframes slideCoverBottom {
    0% {
        transform: translateY(0%) scaleY(0);
    }
    50% {
        transform: translateY(0%) scaleY(1);
    }
    100% {
        transform: translateY(100%) scaleY(1);
    }
}

/* animations for the text */
/* text appears */
@keyframes showText {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* text disappears */
@keyframes hideText {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}