/* Page Entrance Animations */

/* Custom easing - exponential ease-out (fast start, smooth deceleration) */
/* cubic-bezier(0.16, 1, 0.3, 1) - expo out */

/* Initial hidden states */
.header {
    opacity: 0;
}

.hero__content {
    opacity: 0;
    transform: translateY(100px);
}

.hero__content .btn {
    opacity: 0;
    transform: translateY(30px);
}

.hero__right {
    opacity: 0;
    transform: translateY(100px);
}

.hero__right .btn {
    opacity: 0;
    transform: translateY(30px);
}

.stat-item {
    opacity: 0;
    transform: translateY(100px);
}

.chains-section {
    opacity: 0;
    transform: translateY(80px);
}

/* Background images - use filter for fade without affecting base opacity */
.page-background__image {
    filter: brightness(0);
}

.page-background__image.animate-in {
    animation: brightnessIn 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes brightnessIn {
    from {
        filter: brightness(0);
    }
    to {
        filter: brightness(1);
    }
}

/* Animated states */
.header.animate-in {
    animation: fadeIn 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.hero__content.animate-in {
    animation: slideUp 0.65s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.hero__content.animate-in .btn {
    animation: slideUpBtn 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.35s forwards;
}

.hero__right.animate-in {
    animation: slideUp 0.65s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.hero__right.animate-in .btn {
    animation: slideUpBtn 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.35s forwards;
}

.stat-item.animate-in {
    animation: slideUp 0.45s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.chains-section.animate-in {
    animation: slideUpFade 0.55s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

/* Keyframes */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideFromLeft {
    from {
        opacity: 0;
        transform: translateX(-180px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideFromRight {
    from {
        opacity: 0;
        transform: translateX(180px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(80px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideUpBtn {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Explore Section - Scroll Triggered */
.explore__title {
    opacity: 0;
    transform: translateY(70px);
}

.explore__item {
    opacity: 0;
    transform: translateY(100px);
}

.explore__title.animate-in {
    animation: slideUpFast 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.explore__item.animate-in {
    animation: slideUp 0.6s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes slideUpFast {
    from {
        opacity: 0;
        transform: translateY(70px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideFromLeftExplore {
    from {
        opacity: 0;
        transform: translateX(-220px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideFromRightExplore {
    from {
        opacity: 0;
        transform: translateX(220px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Whitelabel Section - Scroll Triggered */
.whitelabel__title {
    opacity: 0;
    transform: translateY(70px);
}

.whitelabel__subtitle {
    opacity: 0;
    transform: translateY(50px);
}

.whitelabel__title.animate-in {
    animation: slideUpFast 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.whitelabel__subtitle.animate-in {
    animation: slideUpSubtitle 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes slideUpSubtitle {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.whitelabel__card {
    opacity: 0;
}

.whitelabel__cards.animate-in .whitelabel__card {
    animation: fadeIn 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.whitelabel__cards.animate-in .whitelabel__card:nth-child(1) {
    animation-delay: 0s;
}

.whitelabel__cards.animate-in .whitelabel__card:nth-child(2) {
    animation-delay: 0.15s;
}

.whitelabel__cards.animate-in .whitelabel__card:nth-child(3) {
    animation-delay: 0.3s;
}

/* Metalayer Section - Scroll Triggered */
.metalayer__title {
    opacity: 0;
    transform: translateY(70px);
}

.metalayer__title.animate-in {
    animation: slideUpFast 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.metalayer__tab {
    opacity: 0;
    transform: translateY(60px);
}

.metalayer__tabs.animate-in .metalayer__tab {
    animation: slideUpTab 0.4s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.metalayer__tabs.animate-in .metalayer__tab:nth-child(1) {
    animation-delay: 0s;
}

.metalayer__tabs.animate-in .metalayer__tab:nth-child(2) {
    animation-delay: 0.08s;
}

.metalayer__tabs.animate-in .metalayer__tab:nth-child(3) {
    animation-delay: 0.16s;
}

.metalayer__tabs.animate-in .metalayer__tab:nth-child(4) {
    animation-delay: 0.24s;
}

.metalayer__tabs.animate-in .metalayer__tab:nth-child(5) {
    animation-delay: 0.32s;
}

@keyframes slideUpTab {
    from {
        opacity: 0;
        transform: translateY(60px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Investors Section - Scroll Triggered */
.investors {
    opacity: 0;
    transform: translateY(80px);
}

.investors.animate-in {
    animation: slideUpFade 0.55s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

/* Testimonials Section - Scroll Triggered */
.testimonials {
    opacity: 0;
    transform: translateY(80px);
}

.testimonials.animate-in {
    animation: slideUpFade 0.55s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

/* Blog Section - Scroll Triggered */
.blog__title {
    opacity: 0;
    transform: translateY(70px);
}

.blog__title.animate-in {
    animation: slideUpFast 0.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.blog-card {
    opacity: 0;
    transform: translateY(100px);
}

.blog-card.animate-in {
    animation: slideUp 0.45s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.blog-card.animated {
    opacity: 1;
    transform: translateY(0);
}

.blog-card.animated:hover {
    transform: translateY(-4px);
}
