/* =========================================
   1. RESET & VARIABLES
   ========================================= */
:root {
    /* Color Palette */
    --bg-light: #f2f2f2;   /* Editorial White */
    --bg-dark: #0d0d0d;    /* Deep Black */
    --bg-earth: #e0ded5;   /* Warm Grey */
    --bg-green: #0a2e23;   /* Botanical Green */
    
    --text-main: #111111;
    --text-inv: #f2f2f2;
    --accent: #2c67f2;     /* International Blue */
    
    /* Typography */
    --font-sans: 'Inter', sans-serif;
    --font-display: 'Oswald', sans-serif;
    --font-mono: 'Space Mono', monospace;
    
    /* Animation Physics */
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    
    /* Layout */
    --pad-global: clamp(2rem, 5vw, 6rem);
}

* { margin: 0; padding: 0; box-sizing: border-box; cursor: none; }

/* Lenis Smooth Scroll Setup */
html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body { 
    width: 100%; 
    background: var(--bg-light); 
    color: var(--text-main); 
    font-family: var(--font-sans); 
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; }
::-webkit-scrollbar { display: none; }


/* =========================================
   2. NAVIGATION & LOGO
   ========================================= */
nav { 
    position: fixed; top: 0; width: 100%; padding: 2rem 4rem; 
    display: flex; justify-content: space-between; align-items: center; 
    z-index: 999; mix-blend-mode: exclusion; color: white;
}

.nav-logo { 
    display: flex; align-items: center; justify-content: center;
}

/* Logo Image Styling */
.logo-img {
    height: 50px;       /* Adjust height */
    width: auto;        /* Maintain aspect ratio */
    object-fit: contain;
    /* Un-comment if using a black logo that needs to be inverted for 'exclusion' mode */
    /* filter: invert(1); */
}

.nav-links { display: flex; gap: 3rem; }

.nav-links a { 
    font-family: var(--font-mono); font-size: 0.8rem; letter-spacing: 1px; 
    text-transform: uppercase; position: relative; opacity: 0.8; transition: opacity 0.3s;
}

.nav-links a:hover { opacity: 1; }

.nav-links a::after { 
    content: ''; position: absolute; bottom: -5px; left: 0; width: 0%; height: 1px; 
    background: currentColor; transition: 0.4s var(--ease-out); 
}
.nav-links a:hover::after { width: 100%; }


/* =========================================
   3. HERO SECTION
   ========================================= */
.video-text-container { 
    position: relative; width: 100%; height: 100vh; 
    display: flex; align-items: center; justify-content: center; overflow: hidden; 
}

.masked-video { 
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; 
    z-index: 1; opacity: 0.85;
    /* Text Masking Effect */
    mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><text x="50%" y="42%" font-family="Oswald" font-weight="bold" font-size="22vw" text-anchor="middle" dominant-baseline="middle">AQUA</text><text x="50%" y="74%" font-family="Oswald" font-weight="bold" font-size="22vw" text-anchor="middle" dominant-baseline="middle">DROP</text></svg>');
    -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><text x="50%" y="42%" font-family="Oswald" font-weight="bold" font-size="22vw" text-anchor="middle" dominant-baseline="middle">AQUA</text><text x="50%" y="74%" font-family="Oswald" font-weight="bold" font-size="22vw" text-anchor="middle" dominant-baseline="middle">DROP</text></svg>');
    -webkit-mask-repeat: no-repeat; -webkit-mask-position: center;
}

.hero-overlay { 
    position: absolute; z-index: 2; top: 50%; left: 50%; transform: translate(-50%, -50%); 
    text-align: center; mix-blend-mode: difference; color: white; 
    font-family: var(--font-display); font-weight: 700; text-transform: uppercase; 
    font-size: clamp(1rem, 2vw, 2rem); letter-spacing: 0.2em; width: 90%; 
    pointer-events: none;
}


/* =========================================
   4. GENERAL LAYOUT & TYPOGRAPHY
   ========================================= */
section { 
    padding: var(--pad-global); min-height: 100vh; 
    display: flex; flex-direction: column; justify-content: center; 
}

h2 { 
    font-family: var(--font-display); font-size: clamp(4rem, 8vw, 10rem); 
    text-transform: uppercase; line-height: 0.85; margin-bottom: 5vh; 
    letter-spacing: -0.02em; padding-bottom: 2rem; border-bottom: 1px solid currentColor;
    display: inline-block;
}

.content-split { 
    display: flex; justify-content: space-between; align-items: center; 
    gap: 5vw; margin-top: 2rem;
}
.content-split.reverse { flex-direction: row-reverse; }

.text-block { width: 40%; }

.text-block p { 
    font-size: clamp(1.1rem, 1.3vw, 1.5rem); line-height: 1.5; 
    font-weight: 300; margin-bottom: 2rem; 
}

.img-wrapper { 
    width: 50%; height: 50vh; position: relative; overflow: hidden; 
    border-radius: 4px; transition: transform 0.5s;
}

.img-wrapper img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(20%); }

.caption { 
    font-family: var(--font-mono); font-size: 0.65rem; text-transform: uppercase; 
    margin-top: 1rem; display: block; opacity: 0.5; letter-spacing: 1px; 
}


/* =========================================
   5. TEAM GRID (PASSPORT STYLE)
   ========================================= */
.team-grid { 
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-top: 5rem;
}

.team-card { text-align: center; transition: transform 0.4s var(--ease-out); }
.team-card:hover { transform: translateY(-10px); }

.team-img { 
    width: 180px; height: 230px; /* Passport Aspect Ratio */
    object-fit: cover; filter: grayscale(100%) contrast(1.1); 
    transition: 0.6s var(--ease-out); display: block; margin: 0 auto;
    border: 8px solid white; box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

.team-card:hover .team-img { filter: grayscale(0%); border-color: var(--accent); }

.team-info { margin-top: 2rem; }
.team-name { font-family: var(--font-display); font-size: 1.5rem; text-transform: uppercase; margin-bottom: 0.5rem; }
.team-role { font-family: var(--font-mono); font-size: 0.7rem; opacity: 0.6; text-transform: uppercase; letter-spacing: 1px; }


/* =========================================
   6. CONTACT FORM
   ========================================= */
.contact-container { width: 100%; max-width: 700px; }
.form-group { margin-bottom: 3.5rem; position: relative; }

.form-label { 
    font-family: var(--font-mono); font-size: 0.75rem; text-transform: uppercase; 
    opacity: 0.5; display: block; margin-bottom: 1rem; letter-spacing: 1px; 
}

.form-input { 
    width: 100%; background: transparent; border: none; border-bottom: 1px solid rgba(255,255,255,0.1); 
    color: white; font-family: var(--font-display); font-size: 2.5rem; padding: 1rem 0; 
    outline: none; transition: 0.4s var(--ease-out); 
}

.form-input:focus { border-bottom-color: var(--accent); padding-left: 20px; }

.submit-btn { 
    background: white; color: black; border: none; padding: 1.5rem 4rem; 
    border-radius: 100px; font-family: var(--font-display); font-size: 1.2rem; 
    text-transform: uppercase; cursor: none; margin-top: 2rem; transition: 0.4s;
}

.submit-btn:hover { background: var(--accent); color: white; transform: scale(1.05); }

.success-message {
    border: 1px solid #4ade80; background: rgba(74, 222, 128, 0.1); 
    color: #4ade80; padding: 1.5rem; font-family: var(--font-mono); margin-bottom: 3rem;
    display: inline-block;
}


/* =========================================
   7. UTILITIES & OVERLAYS
   ========================================= */
.dark-theme { color: var(--text-inv) !important; }
.dark-theme h2 { border-color: rgba(255, 255, 255, 0.2); }

.noise-overlay { 
    position: fixed; inset: 0; pointer-events: none; z-index: 9000; opacity: 0.05; 
    background-image: url("https://grainy-gradients.vercel.app/noise.svg"); 
}

.preloader { 
    position: fixed; inset: 0; background: #000; z-index: 9999; 
    display: flex; justify-content: center; align-items: center; 
    color: white; font-family: var(--font-display); font-size: 1.5rem; letter-spacing: 2px;
}

.cta-btn { 
    padding: 1.2rem 3rem; border: 1px solid currentColor; border-radius: 50px; 
    font-family: var(--font-mono); text-transform: uppercase; font-size: 0.8rem; 
    display: inline-flex; align-items: center; gap: 1rem; transition: 0.4s; margin-top: 2rem;
}
.cta-btn:hover { background: var(--text-main); color: var(--bg-light); border-color: var(--text-main); }
.dark-theme .cta-btn:hover { background: white; color: black; }


/* =========================================
   8. SPECIAL MODIFIERS
   ========================================= */

/* Tall Portrait Image Fix for 'The Model' section */
.img-wrapper.model-portrait {
    height: 80vh; 
    width: 45%;
}

/* =========================================
   9. MOBILE RESPONSIVE
   ========================================= */
@media (max-width: 900px) {
    nav { padding: 1.5rem 2rem; }
    .nav-links { display: none; }
    .logo-img { height: 40px; }
    
    section { padding: 5rem 1.5rem; height: auto; }
    h2 { font-size: 4rem; }
    
    .content-split, .content-split.reverse { flex-direction: column !important; align-items: flex-start; gap: 3rem; }
    .text-block { width: 100%; }
    .img-wrapper { width: 100%; height: 40vh; order: -1; }
    
    /* Tall Image on Mobile */
    .img-wrapper.model-portrait {
        width: 100%; height: 75vh; min-height: 500px;
    }
    
    .team-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .team-img { width: 140px; height: 180px; }
}

@media (max-width: 600px) {
    .team-grid { grid-template-columns: 1fr; }
}