/* Base Styles */
:root {
    --burgundy: #800020;
    --blush: #F4C2C2;
    --white: #FFFFFF;
    --gray-100: #f7f7f7;
    --gray-600: #4a4a4a;
    --gray-800: #1a1a1a;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Space Grotesk', sans-serif;
    color: var(--gray-800);
    background-color: var(--white);
    overflow-x: hidden;
}

.font-serif {
    font-family: 'Playfair Display', serif;
}

.font-sans {
    font-family: 'Space Grotesk', sans-serif;
}

/* Custom Colors */
.bg-burgundy {
    background-color: var(--burgundy);
}

.text-burgundy {
    color: var(--burgundy);
}

.bg-blush {
    background-color: var(--blush);
}

.text-blush {
    color: var(--blush);
}

/* Noise Texture Overlay */
.bg-noise {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Navigation */
#navbar {
    background: transparent;
}

#navbar.scrolled {
    background: rgba(128, 0, 32, 0.95);
    backdrop-filter: blur(10px);
}

/* Mobile Menu */
#mobile-menu {
    background: var(--burgundy);
}

.mobile-link {
    color: var(--blush);
    text-decoration: none;
    transition: color 0.3s ease;
}

.mobile-link:hover {
    color: var(--white);
}

/* Scroll Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Hover Effects */
.group:hover .group-hover\:scale-110 {
    transform: scale(1.1);
}

/* Button Styles */
button {
    background: none;
    border: none;
    cursor: pointer;
}

/* Focus Styles */
a:focus, button:focus {
    outline: 2px solid var(--blush);
    outline-offset: 2px;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .font-serif.text-7xl {
        font-size: 3rem;
    }
    
    .font-serif.text-6xl {
        font-size: 2.5rem;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .reveal {
        opacity: 0;
        transform: translateY(30px);
    }
}
