@tailwind base;
@tailwind components;
@tailwind utilities;

@layer utilities {
    .text-balance {
        text-wrap: balance;
    }
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    overflow-x: hidden;
}

/* Custom Selection */
::selection {
    background-color: #8D775F;
    color: #F9F8F6;
}

/* Scroll Line Animation */
@keyframes scroll-line {
    0% { transform: translateY(-100%); }
    50% { transform: translateY(100%); }
    100% { transform: translateY(100%); }
}

.animate-scroll-line {
    animation: scroll-line 2.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;
}

/* Input Auto-Resize */
textarea {
    min-height: 40px;
}

/* Reveal Image Animation */
.reveal-image {
    animation: image-reveal 3s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}

@keyframes image-reveal {
    0% {
        transform: scale(1.15);
        opacity: 0;
    }
    100% {
        transform: scale(1.05);
        opacity: 1;
    }
}

/* Fade Up Animation */
.fade-up-element {
    transform: translateY(40px);
    transition: opacity 1s ease-out, transform 1s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.fade-up-element.is-visible {
    opacity: 1 !important;
    transform: translateY(0);
}

/* Menu Mobile Transition */
#mobile-menu.active {
    transform: translateX(0);
}

/* Hide cursor on Desktop when moving */
@media (min-width: 768px) {
    body.custom-cursor-active * {
        cursor: none !important;
    }
}