/* Container Clip Path for masking */
.reveal-item {
    overflow: hidden;
}

.reveal-content {
    opacity: 0;
    transform: translateY(100%);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-item.active .reveal-content {
    opacity: 1;
    transform: translateY(0);
}

/* Line Drawing Effect */
.draw-line {
    position: relative;
}

.draw-line::after {
    content: '';
    position: absolute;
    background: #000;
    transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Vertical line animation */
.border-end.draw-line::after {
    top: 0; right: 0; width: 1px; height: 0;
}
.border-end.draw-line.active::after {
    height: 100%;
}

/* Horizontal line animation */
.border-bottom.draw-line::after {
    bottom: 0; left: 0; height: 1px; width: 0;
}
.border-bottom.draw-line.active::after {
    width: 100%;
}

/* Simplified, readable typography */
.fs-40 { font-size: 2.5rem; line-height: 1; }

.reveal-item {
    background: #fff;
    transition: background 0.4s ease;
}

/* Subtle hover effect to guide the eye */
.reveal-item:hover {
    background: #fcfcfc;
}

.reveal-content {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.6s ease-out;
}

.reveal-item.active .reveal-content {
    opacity: 1;
    transform: translateY(0);
}


.mb-25 { margin-bottom: 15rem; }
.mb-20 { margin-bottom: 10rem; }
.shadow-2xl { box-shadow: 0 50px 100px -20px rgba(0,0,0,0.4); }

/* Overlapping Animation Logic */
.reveal-item {
    opacity: 0;
    transform: translateY(100px);
    transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-item.active {
    opacity: 1;
    transform: translateY(0);
}

/* Ensure typography stays sharp */
.display-6 { font-size: 2.5rem; line-height: 0.9; }

/* Footer Legal Links Hover */
.hover-opacity-100:hover {
    opacity: 1 !important;
    transition: opacity 0.3s ease;
}