/* ============================================================
   NXT Spaces – Core Styles
   Generated for performance (reduces CDN dependency)
============================================================ */

/* === CSS Variables === */
:root {
    --nxt-black: #1C1917;
    --nxt-white: #FFFFFF;
    --nxt-paper: #F5F5F4;
    --nxt-copper: #C67C53;
    --nxt-sand: #E7E5E4;
}

/* === Base Reset & Typography === */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    background-color: var(--nxt-paper);
    color: var(--nxt-black);
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6, .font-serif {
    font-family: 'DM Serif Display', Georgia, serif;
}

/* === Color Utilities === */
.text-nxt-black { color: var(--nxt-black); }
.text-nxt-copper { color: var(--nxt-copper); }
.text-nxt-paper { color: var(--nxt-paper); }
.bg-nxt-black { background-color: var(--nxt-black); }
.bg-nxt-copper { background-color: var(--nxt-copper); }
.bg-nxt-paper { background-color: var(--nxt-paper); }
.bg-nxt-sand { background-color: var(--nxt-sand); }
.border-nxt-sand { border-color: var(--nxt-sand); }
.border-nxt-copper { border-color: var(--nxt-copper); }

/* === Selection === */
::selection {
    background-color: var(--nxt-copper);
    color: white;
}

/* === Reveal Animation === */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
}

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

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }

/* === Pill Button === */
.rounded-pill {
    border-radius: 9999px;
}

/* === Extra Border Radius === */
.rounded-4xl { border-radius: 2.5rem; }
.rounded-5xl { border-radius: 3.5rem; }

/* === Zoom Normalization === */
body {
    zoom: 0.95;
}

@supports not (zoom: 0.95) {
    html {
        font-size: 95%;
    }
}

/* === Link Hover Effects === */
a {
    transition: color 0.3s ease, transform 0.3s ease;
}

/* === Custom Scrollbar (WebKit) === */
.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: var(--nxt-sand);
    border-radius: 99px;
}

/* === Form Focus States === */
input:focus, 
textarea:focus, 
select:focus {
    outline: none;
    border-color: var(--nxt-copper);
}

/* === Mobile Menu Optimization === */
#mobile-menu {
    -webkit-overflow-scrolling: touch;
}

/* === Card Hover Effect === */
.hover-lift {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.15);
}

/* === Image Performance === */
img {
    max-width: 100%;
    height: auto;
}

img[loading="lazy"] {
    opacity: 0;
    transition: opacity 0.3s ease;
}

img[loading="lazy"].loaded,
img:not([loading="lazy"]) {
    opacity: 1;
}

/* === Print Styles === */
@media print {
    .no-print,
    nav,
    footer,
    #cookie-consent {
        display: none !important;
    }
    
    body {
        background: white;
        color: black;
    }
}