/* Premium Animations Engine CSS */

/* Smooth Scrolling globally */
html {
    scroll-behavior: smooth;
}

/* Page Transition Overlay */
.page-transition-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(135deg, var(--bg-dark) 0%, var(--bg-darker) 100%);
    z-index: 999999;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1), opacity 2s ease-in-out;
    transform-origin: top;
    transform: translateY(0);
}

.page-transition-overlay::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: var(--gold-gradient);
}

.page-transition-overlay.hide {
    transform: translateY(-100%);
}

.page-transition-overlay.show {
    transform-origin: bottom;
    transform: translateY(0);
    transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
}

/* Intro Zoom Specifics */
.page-transition-overlay.intro-mode {
    transform: translateY(0);
}

.transition-logo img {
    transition: transform 3s cubic-bezier(0.4, 0, 0.2, 1), opacity 2s ease-in-out;
    will-change: transform, opacity;
}

.transition-logo.zoom-effect img {
    transform: scale(100);
    opacity: 0;
}

.page-transition-overlay.intro-hide {
    opacity: 0;
    pointer-events: none;
}

/* Magnetic Buttons & Logo */
.btn {
    transition: transform 0.1s ease-out, background 0.3s, box-shadow 0.3s !important;
    will-change: transform;
}

.logo-img, .logo-img-small {
    transition: transform 0.1s ease-out, border-color 0.3s !important;
    will-change: transform;
}

/* Tilt Cards */
.tilt-card {
    position: relative;
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
    transform-style: preserve-3d;
    will-change: transform;
    overflow: hidden;
}

.tilt-glare {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

/* Hero Text Reveal */
.hero-title {
    overflow: hidden;
    display: inline-block;
}

.reveal-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(60%) rotate(5deg);
    animation: revealWordAnim 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes revealWordAnim {
    0% {
        opacity: 0;
        transform: translateY(60%) rotate(5deg);
    }
    100% {
        opacity: 1;
        transform: translateY(0) rotate(0);
    }
}

/* Overriding reveal-on-scroll */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(50px) scale(0.95);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.reveal-on-scroll.active {
    opacity: 1;
    transform: translateY(0) scale(1) !important;
}

/* Fancy Hover effect for portfolio images inside tilt cards */
.tilt-card:hover .portfolio-image {
    transform: scale(1.08) !important;
}
