/* Custom Font Definitions */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Lato:wght@300;400;700&display=swap');

:root {
    --color-bg-dark: #0c0a09; /* Stone-950 */
    --color-bg-card: #1c1917; /* Stone-900 */
    --color-primary: #ea580c; /* Orange-600 */
    --color-accent: #f97316; /* Orange-500 */
    --color-text-light: #f5f5f4; /* Stone-100 */
    --color-text-muted: #a8a29e; /* Stone-400 */
}

body {
    font-family: 'Lato', sans-serif;
    background-color: var(--color-bg-dark);
    color: var(--color-text-light);
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', serif;
}

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

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: var(--color-bg-dark);
}
::-webkit-scrollbar-thumb {
    background: #44403c;
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary);
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.animate-fade-in-up {
    animation: fadeInUp 1s ease-out forwards;
}

/* Scroll Reveal Utility */
.reveal-on-scroll {
    opacity: 1; /* Default visible for accessibility/SEO */
    transform: translateY(0);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* When JS is enabled and element is out of view, it stays visible but we add a class to animate it */
.reveal-on-scroll.is-hidden {
    opacity: 0;
    transform: translateY(30px);
}

/* Navbar Glass Effect */
.glass-nav {
    background: rgba(12, 10, 9, 0.9);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

/* Image Hover Zoom */
img {
    max-width: 100%;
    height: auto;
}

/* Focus Styles for Accessibility */
a:focus, button:focus {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
}

/* Mobile Menu Transition */
#mobile-menu {
    transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
