@import url('https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@500,700,800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root {
    --site-nav-black: #050505;
    --site-nav-paper: #f3efe7;
    --site-nav-steel: #8d9292;
    --site-nav-violet: #8f5bd7;
    --site-nav-line: rgba(232, 227, 218, 0.14);
    --site-nav-display: 'Cabinet Grotesk', 'Arial Narrow', sans-serif;
    --site-nav-text: 'IBM Plex Sans', Arial, sans-serif;
}

/*
 * Canonical public-site header.
 * This file loads last so legacy page-level navigation rules cannot drift.
 * Direct-child scoping protects breadcrumbs and other nested navigation.
 */
body > nav[data-site-nav] {
    box-sizing: border-box !important;
    z-index: 1000 !important;
    width: 100% !important;
    min-height: 72px !important;
    padding: 0 clamp(1.25rem, 3vw, 3.5rem) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1.5rem !important;
    background: rgba(5, 5, 5, 0.94) !important;
    border-bottom: 1px solid var(--site-nav-line) !important;
    box-shadow: none !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
}

body > nav[data-site-nav] > .nav-logo {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    color: var(--site-nav-paper) !important;
    font-family: var(--site-nav-display) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0.16em !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}

body > nav[data-site-nav] > .nav-logo::before {
    content: 'V/' !important;
    margin-right: 0.38rem !important;
    color: var(--site-nav-violet) !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    letter-spacing: 0.04em !important;
}

body > nav[data-site-nav] > .nav-links {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(1rem, 2vw, 2rem) !important;
}

body > nav[data-site-nav] > .nav-links a {
    padding: 0 !important;
    color: var(--site-nav-steel) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--site-nav-text) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: 0.12em !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    transition: color 180ms ease !important;
}

body > nav[data-site-nav] > .nav-links a:hover,
body > nav[data-site-nav] > .nav-links a[aria-current='page'] {
    color: var(--site-nav-paper) !important;
}

body > nav[data-site-nav] > .nav-socials {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 0.9rem !important;
}

body > nav[data-site-nav] > .nav-socials a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 44px !important;
    padding: 0 !important;
    color: var(--site-nav-steel) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 17px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: color 180ms ease !important;
}

body > nav[data-site-nav] > .nav-socials a:hover {
    color: var(--site-nav-paper) !important;
}

body > nav[data-site-nav] > .mobile-menu-toggle {
    display: none !important;
    width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 5px !important;
    color: var(--site-nav-paper) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    cursor: pointer !important;
}

body > nav[data-site-nav] > .mobile-menu-toggle span {
    display: block !important;
    width: 24px !important;
    height: 1px !important;
    margin: 0 !important;
    background: currentColor !important;
    border: 0 !important;
}

body > nav[data-site-nav] > .nav-logo:focus-visible,
body > nav[data-site-nav] > .nav-links a:focus-visible,
body > nav[data-site-nav] > .nav-socials a:focus-visible,
body > nav[data-site-nav] > .mobile-menu-toggle:focus-visible {
    outline: 2px solid var(--site-nav-violet) !important;
    outline-offset: 3px !important;
}

@media (max-width: 900px) {
    body > nav[data-site-nav] {
        min-height: 60px !important;
        padding: 0 1rem !important;
        gap: 1rem !important;
        position: sticky !important;
        top: 0 !important;
    }

    body > nav[data-site-nav] > .nav-links {
        display: none !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 0.75rem 1rem 1.25rem !important;
        background: rgba(5, 5, 5, 0.98) !important;
        border-bottom: 1px solid var(--site-nav-line) !important;
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45) !important;
    }

    body > nav[data-site-nav] > .nav-links.is-open {
        display: flex !important;
    }

    body > nav[data-site-nav] > .nav-links a {
        padding: 0.95rem 0.25rem !important;
        border-bottom: 1px solid rgba(232, 227, 218, 0.08) !important;
        font-size: 12px !important;
    }

    body > nav[data-site-nav] > .nav-links a:last-child {
        border-bottom: 0 !important;
    }

    body > nav[data-site-nav] > .nav-socials {
        display: none !important;
    }

    body.nav-open > nav[data-site-nav] > .nav-socials {
        display: flex !important;
        position: absolute !important;
        top: calc(100% + 12.5rem) !important;
        left: 0 !important;
        right: 0 !important;
        justify-content: center !important;
        gap: 1.25rem !important;
        padding: 0 1rem 1.25rem !important;
        background: rgba(5, 5, 5, 0.98) !important;
        border-bottom: 1px solid var(--site-nav-line) !important;
    }

    body > nav[data-site-nav] > .mobile-menu-toggle {
        display: inline-flex !important;
        margin-left: auto !important;
        z-index: 2 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body > nav[data-site-nav] > .nav-links a,
    body > nav[data-site-nav] > .nav-socials a {
        transition: none !important;
    }
}
