@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Lora:ital,wght@0,400..700;1,400..700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

/* Font Face for Alta Display Font */
@font-face {
    font-family: 'Alta';
    src: url('../fonts/Alta-Regular.woff2') format('woff2'),
         url('../fonts/Alta-Regular.woff') format('woff'),
         url('../fonts/Alta-Regular.otf') format('opentype'),
         url('../fonts/Alta-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Custom Base Styles */
html {
    scroll-behavior: smooth;
    background-color: #faf6f0;
    color: #2c2523;
}

body {
    font-family: 'Lora', serif;
    background-color: #faf6f0;
    color: #2c2523;
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Animation Keyframes */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

@keyframes slowBreath {
    0%, 100% {
        transform: scale(1);
        opacity: 0.95;
    }
    50% {
        transform: scale(1.02);
        opacity: 1;
    }
}

@keyframes spinClockwise {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes spinCounterClockwise {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(-360deg);
    }
}

/* Animation Classes */
.animate-fade-in {
    opacity: 0;
    animation: fadeIn 1.2s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.animate-fade-in-up {
    opacity: 0;
    animation: fadeInUp 1.4s cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
}

.animate-breath {
    animation: slowBreath 8s ease-in-out infinite;
}

.animate-spin-slow {
    animation: spinClockwise 45s linear infinite;
}

.animate-spin-slow-reverse {
    animation: spinCounterClockwise 60s linear infinite;
}

/* Scroll Animation Utilities (with JS IntersectionObserver) */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.2s cubic-bezier(0.215, 0.610, 0.355, 1.000), 
                transform 1.2s cubic-bezier(0.215, 0.610, 0.355, 1.000);
}

.reveal-on-scroll.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* Delay modifiers for stagger effects */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Custom Underline Animation for Navigation links */
.nav-link-underline {
    position: relative;
}
.nav-link-underline::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 1px;
    bottom: -4px;
    left: 0;
    background-color: #b76e79;
    transform-origin: bottom right;
    transition: transform 0.4s ease-out;
}
.nav-link-underline:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}

.nav-link-active::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(1);
    height: 1px;
    bottom: -4px;
    left: 0;
    background-color: #b76e79;
}

/* Form floating label focus styles */
.form-input-container {
    position: relative;
}
.form-input-container input:focus ~ label,
.form-input-container input:not(:placeholder-shown) ~ label,
.form-input-container textarea:focus ~ label,
.form-input-container textarea:not(:placeholder-shown) ~ label {
    transform: translateY(-20px) scale(0.85);
    color: #b76e79;
}

/* Hero background blob style */
.bg-gradient-soft {
    background: radial-gradient(circle at 50% 50%, rgba(232, 213, 183, 0.3) 0%, rgba(250, 246, 240, 0) 70%);
}

/* Custom cards styling */
.premium-card {
    background-color: rgba(250, 246, 240, 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(232, 213, 183, 0.4);
    transition: all 0.5s cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
.premium-card:hover {
    border-color: rgba(183, 110, 121, 0.4);
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(44, 37, 35, 0.03);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #faf6f0;
}
::-webkit-scrollbar-thumb {
    background: #e8d5b7;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #b76e79;
}
