/* =========================================
   VARIABLES & SETUP
========================================= */
:root {
    /* Unified Typography */
    --font-primary: 'Besley', serif;
    
    /* Colors */
    --c-black: #0a0a0a;
    --c-cream: #ffefd8;
    --c-accent: #a23b2c;
    --c-gold: #ffb13d; /* Cinematic golden hue for subtitle and highlights */
    --c-darkgray: #1a1a1a;
    --c-border: rgba(255, 255, 255, 0.05);
    --c-muted: rgba(253, 251, 247, 0.6);
    
    /* Layout */
    --container-max: 1200px;
}

/* Scroll Snapping Basics (Desktop Only implementation is further down) */
html {
    scroll-behavior: smooth;
    font-size: 16px;
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    text-shadow: 1px 1px 15px #ffc10790 !important;
}

body {
    background-color: var(--c-black);
    color: var(--c-cream);
    font-family: var(--font-primary);
    font-weight: 400; 
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.6;
    overflow-x: hidden;
    position: relative;
}

body.epk-page {
    padding-top: 80px; 
}

::selection {
    background-color: var(--c-accent);
    color: var(--c-cream);
}

/* =========================================
   TYPOGRAPHY & UTILITIES
========================================= */
h1, h2, h3, .font-heading {
    font-weight: 700;
    line-height: 1;
    letter-spacing: -1.4px !important;
}

.italic, em, i { font-style: italic; }
.font-normal { font-style: normal; }
.text-center { text-align: center; }
.text-muted { color: var(--c-muted); }
.text-gold { color: var(--c-gold); }
.relative { position: relative; }
.z-10 { z-index: 10; }

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease, opacity 0.3s ease;
}

img, svg {
    max-width: 100%;
    height: auto;
    display: block;
}

.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* Base structural classes for background images */
.relative-section {
    position: relative;
    overflow: hidden;
}

.section-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
}

.section-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.9; /* Base opacity to blend with black background */
}

/*.bg-gradient-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(10,10,10,0.2) 0%, rgba(10,10,10,0.6) 50%, rgba(10,10,10,1) 100%); }
.bg-gradient-overlay-subtle { position: absolute; inset: 0; background: rgba(10, 10, 10, 0.4); }
.bg-gradient-overlay-heavy { position: absolute; inset: 0; background: rgba(10, 10, 10, 0.8); }*/

/* Display Toggles */
.desktop-only { display: none; }
.mobile-only { display: block; }
@media (min-width: 768px) {
    .desktop-only { display: block; }
    .mobile-only { display: none; }
}

/* =========================================
   EFFECTS & ANIMATIONS
========================================= */

/* Permanent 35mm Slide Frame Overlay */
.slide-frame {
    position: fixed;
    top: 8px;
    bottom: 8px;
    left: 8px;
    right: 8px; 
    border-radius: 16px; 
    box-shadow: 
        0 0 0 8px #111111, 
        inset 0 0 15px 1px rgba(17, 17, 17, 0.9); 
    pointer-events: none; 
    z-index: 9999; 
}

.noise-overlay {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    pointer-events: none; z-index: 50; opacity: 0.04;
    mix-blend-mode: overlay;
    background-image: url('data:image/svg+xml,%3Csvg viewBox=%220 0 200 200%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cfilter id=%22noiseFilter%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.65%22 numOctaves=%223%22 stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23noiseFilter)%22/%3E%3C/svg%3E');
}

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in.visible { opacity: 1; transform: translateY(0); }
.delay-200 { transition-delay: 200ms; }
.delay-400 { transition-delay: 400ms; }

.color-golden {
    color: var(--c-gold);
}

/* =========================================
   COMPONENTS
========================================= */

/* Navbar - Fixed to top */
.navbar {
    position: fixed;
    top: 0; left: 0; width: 100%; z-index: 60; 
    padding: 2.4rem 1.5rem;
    display: flex; justify-content: space-between; align-items: center;
    transition: all 0.3s ease;
    mix-blend-mode: difference;
}

.navbar.scrolled, .navbar.epk-nav {
    /*backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);*/
    padding: 1rem 1.5rem;
    mix-blend-mode: normal;
}

.nav-brand-container {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* 1:1 Logo Placeholder for Header */
.nav-logo-space {
    width: 64px;
    height: 64px;
    /*border: 1px dashed var(--c-muted);*/
    border-radius: 2px;
    margin-left: 2.4rem;
}

/* Nav Brand Typography */
.nav-brand {
    font-size: 0.96rem; /* 24px */
    font-weight: 700;  
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Nav Menu Typography */
.nav-links {
    display: none;
    gap: 3.6rem;
    margin-right: 2.4rem;
}
.nav-links a {
    font-size: 0.72rem; /* 20px */
    font-weight: 700;   
    text-transform: uppercase;
    letter-spacing: 0.1em; 
}

.hover-underline { position: relative; display: inline-block; }
.hover-underline::after {
    content: ''; position: absolute; width: 100%; transform: scaleX(0); height: 1px; bottom: -2px; left: 0;
    background-color: currentColor; transform-origin: bottom right; transition: transform 0.25s ease-out;
}
.hover-underline:hover::after { transform: scaleX(1); transform-origin: bottom left; }

.mobile-btn { background: none; border: none; color: var(--c-cream); cursor: pointer; display: block; z-index: 50; width: 28px; height: 28px; }
.mobile-btn svg { fill: none; stroke: currentColor; }

/* Buttons Typography & Styling */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem;
    padding: 1.2rem 3.6rem; 
    font-size: 1rem; /* 20px */
    font-weight: 700;   
    text-transform: uppercase;
    letter-spacing: 0.05em; border-radius: 9999px; border: 1px solid transparent; cursor: pointer;
    transition: all 0.3s ease; white-space: nowrap;
}
.btn svg { width: 20px; height: 20px; fill: currentColor; }
.btn-primary { background-color: var(--c-cream); color: var(--c-black); box-shadow: 1px 1px 15px #ffc10790 !important; font-size: 0.72rem; }
.btn-primary:hover { background-color: transparent; color: var(--c-cream); border-color: var(--c-cream); box-shadow: 1px 1px 15px #ffc10764 !important; }
.btn-outline { background-color: transparent; color: var(--c-cream); border-color: var(--c-cream); font-size: 0.72rem; box-shadow: 1px 1px 15px #ffc10764 !important; }
.btn-outline:hover { background-color: var(--c-cream); color: var(--c-black); box-shadow: 1px 1px 15px #ffc10764 !important; }

/* Hero / Center Layout Fold */
.hero { 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    padding: 6rem 1.5rem 2rem;
    height: 100vh;
}

.hero-content { 
    text-align: center; 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    width: 100%;
}

.hero-logo-space {
    width: 100%;
    max-width: 320px;
    aspect-ratio: 1/1;
    /*border: 1px dashed var(--c-muted);*/
    border-radius: 4px;
    margin-bottom: 0.96rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--c-muted);
    text-transform: uppercase;
    font-size: 0.875rem;
    letter-spacing: 0.1em;
}

.hero-subtitle { 
    color: var(--c-gold); 
    font-size: 1rem; 
    margin-bottom: 2.4rem;
    max-width: 480px;
    line-height: 1.2;
    padding: 0 36px;
}

.hero-dsp {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.streaming-text { font-size: 1.25rem; }

.dsp-grid-hero {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: center;
}

.dsp-link-hero { opacity: 0.7; transition: transform 0.3s ease, opacity 0.3s ease; }
.dsp-link-hero:hover { opacity: 1; transform: scale(1.1); }
.dsp-icon-hero { width: 3rem; height: 3rem; fill: currentColor; }

.scroll-indicator { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; opacity: 1; animation: bounce 2s infinite; }
.scroll-indicator svg { width: 36px; height: 36px; fill: none; stroke: currentColor; }
@keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } 40% { transform: translateY(-10px) translateX(-50%); } 60% { transform: translateY(-5px) translateX(-50%); } }

/* Generic Sections */
.section { padding: 6rem 1.5rem; display: flex; flex-direction: column; justify-content: center; min-height: 80vh; }
.section-title { font-size: 2.4rem; margin-bottom: 1.2rem; line-height: 1.2; }

/* -----------------------------------------
   NEW ABOUT SECTION (Redesign)
----------------------------------------- */
.about-section-new {
    padding-bottom: 4rem; /* Leave space for marquee */
    justify-content: center;
}

.about-container-new {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: center;
    width: 100%;
}

.about-mobile-img-wrapper {
    width: 100%;
    margin-bottom: 1rem;
    border-radius: 4px;
    overflow: hidden;
}

.about-mobile-img-wrapper img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.about-title-new {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    color: var(--c-cream);
    margin-bottom: 1.2rem;
}

.about-desc-new p {
    font-size: 1.2rem;
    line-height: 1.25;
    margin-bottom: 1.5rem;
    color: var(--c-cream);
}

.about-find-new {
    margin-top: 2rem;
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Marquee Footer for About Section */
.marquee-wrapper {
    position: absolute;
    bottom: 24px;
    left: 0;
    width: 100%;
    /*background-color: rgba(10, 10, 10, 0.8);
    border-top: 1px solid var(--c-border);*/
    padding: 1.25rem 0;
    overflow: hidden;
    white-space: nowrap;
    z-index: 20;
}

.marquee-track {
    display: inline-block;
    animation: marquee 20s linear infinite;
    font-size: 0.875rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.marquee-track span {
    margin-right: 1rem;
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Video Section */
.video-bg-pattern { position: absolute; inset: 0; opacity: 0.5; background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgweiIgZmlsbD0ibm9uZSIvPjxwaGF0aCBkPSJNMCAwdjQwaDQwVjBIMHptMzkgeDM5SDFWMWgzOHYzOHoiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsMC4wMykiLz48L3N2Zz4='); z-index: 1;}
.video-header { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 3rem; width: 100%; }
.video-header p { color: var(--c-cream); margin-bottom: 2.4rem; max-width: 600px; margin-inline: auto; font-size: 1.125rem; line-height: 1.25; }
.video-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; width: 100%; }
.video-card { cursor: pointer; }
.video-thumbnail { aspect-ratio: 16/9; background-color: #000; position: relative; overflow: hidden; border-radius: 4px; margin-bottom: 1rem; }
.video-thumbnail img { width: 100%; height: 100%; object-fit: cover; opacity: 0.6; transition: opacity 0.5s ease; }
.video-card:hover .video-thumbnail img { opacity: 1; }
.play-button { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.play-icon-wrapper { width: 4rem; height: 4rem; border-radius: 50%; border: 1px solid rgba(253, 251, 247, 0.5); background-color: rgba(0, 0, 0, 0.3); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; transition: transform 0.3s ease; }
.play-icon-wrapper svg { width: 24px; height: 24px; fill: currentColor; margin-left: 4px; }
.video-card:hover .play-icon-wrapper { transform: scale(1.1); }
.video-card h3 { font-size: 1.5rem; margin-bottom: 0.25rem; }
.video-card p { font-size: 0.875rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: 0.05em; }

/* Press Section */
.press-tag { color: var(--c-gold); text-transform: uppercase; letter-spacing: 0.72em; font-size: 0.96rem; font-weight: 700; display: block; margin-bottom: 0rem; }
.press-desc { color: var(--c-cream); margin-bottom: 2.4rem; max-width: 600px; margin-inline: auto; font-size: 1.125rem; line-height: 1.25; }

/* Footer */
.footer { padding: 5rem 1.5rem 2.5rem; border-top: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; justify-content: center; }
.footer-top { display: flex; flex-direction: column; align-items: center; gap: 3rem; margin-bottom: 3rem; width: 100%; }
.footer-brand { text-align: center; }
.footer-brand h2 { font-weight: 700; font-size: 2rem; letter-spacing: 0.05em; margin-bottom: 0.5rem; text-transform: uppercase; }
.footer-brand a { color: var(--c-muted); font-size: 1rem; }
.footer-brand a:hover { color: var(--c-cream); }
.social-links { display: flex; gap: 1.5rem; }
.social-links a { color: var(--c-muted); display: flex; align-items: center; justify-content: center; }
.social-links a:hover { color: var(--c-cream); }
.social-links svg { width: 1.75rem; height: 1.75rem; fill: currentColor; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 2rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; font-size: 0.875rem; color: rgba(253, 251, 247, 0.4); width: 100%; }
.footer-legal { display: flex; gap: 1rem; }
.footer-legal a:hover { color: var(--c-cream); }

/* =========================================
   MEDIA QUERIES & SCROLL SNAPPING (DESKTOP)
========================================= */
@media (min-width: 768px) {
    /* Native CSS Scroll Snapping Setup */
    html {
        scroll-snap-type: y mandatory;
    }
    
    .snap-section {
        min-height: 100vh;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        padding-top: 80px; 
        padding-bottom: 40px;
    }

    /* Main Site Adjustments */
    .nav-links { display: flex; }
    .mobile-btn { display: none; }
    .section-title { font-weight: bold; }
    
    .hero-logo-space { max-width: 400px; margin-bottom: 1.2rem; }
    .hero-subtitle { font-size: 1.2rem; }
    
    /* New About Section Adjustments */
    .about-container-new {
        grid-template-columns: 1fr 1fr; /* Empty left side to reveal background subject */
    }
    .about-content-right {
        grid-column: 2; /* Push text to the right */
        padding-left: 2rem;
    }
    .about-title-new {
        font-size: 2.4rem;
    }
    
    .video-header { flex-direction: row; justify-content: space-between; align-items: flex-end; }
    .video-grid { grid-template-columns: 1fr 1fr; }
    
    .footer-top { flex-direction: row; justify-content: space-between; align-items: flex-start; }
    .footer-brand { text-align: left; }
    .footer-bottom { flex-direction: row; justify-content: space-between; }
    
    /* EPK Site Adjustments */
    .epk-header { grid-template-columns: 1fr 1fr; gap: 4rem; padding: 6rem 0 2rem; }
    .epk-meta h1 { font-size: 2.4rem !important; }
    .meta-grid { grid-template-columns: repeat(2, 1fr); }
    .actions-grid { grid-template-columns: auto auto; justify-content: start; }
}

/* =========================================
   EPK PAGE SPECIFIC STYLES
   Append this to the bottom of your style.css
========================================= */

/* Base adjustment for EPK page padding */
body.epk-page {
    padding-top: 60px; 
}

/* Hide slide frame explicitly on EPK to match your screenshot's edge-to-edge look */
body.epk-page .slide-frame {
    display: none;
}

.epk-container { 
    max-width: 1200px; 
    padding-top: 2rem; 
} 

.epk-nav {
    background-color: transparent !important; /* Forces dark background to show */
    border-bottom: none !important;
    padding: 2.4rem 4rem;
}

.back-link { 
    font-size: 0.875rem; 
    font-weight: 700; 
    text-transform: uppercase; 
    letter-spacing: 0.1em; 
    display: flex; 
    align-items: center; 
    gap: 0.5rem; 
    color: var(--c-muted); 
    transition: color 0.3s ease; 
}
.back-link:hover { color: var(--c-cream); }

.epk-header { 
    padding: 4rem 0 2rem; 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 3rem; 
    align-items: center; 
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); 
}

/* Album cover & vinyl layout */
.record-wrapper { 
    position: relative; 
    width: 100%; 
    max-width: 450px; 
    margin: 0 auto; 
    aspect-ratio: 1/1; 
}

.epk-cover { 
    position: relative; 
    z-index: 2; 
    width: 85%; 
    height: 85%; 
    background: #111; 
    border: 1px solid #222; 
    border-radius: 2px; 
    box-shadow: 0 20px 40px rgba(0,0,0,0.8); 
    overflow: hidden; 
}

.epk-cover img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    opacity: 0.9; 
}

.vinyl-record {
    position: absolute; 
    top: 2%; 
    right: 0; 
    width: 85%; 
    height: 85%;
    background: linear-gradient(45deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
    border-radius: 50%; 
    z-index: 1; 
    border: 1px solid #222;
    box-shadow: inset 0 0 20px #000; 
    animation: spin 8s linear infinite;
}

.vinyl-record::before { 
    content: ''; 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    width: 33%; 
    height: 33%; 
    background: var(--c-gold); 
    border-radius: 50%; 
    border: 2px solid #111; 
}

.vinyl-record::after { 
    content: ''; 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    width: 5%; 
    height: 5%; 
    background: var(--c-black); 
    border-radius: 50%; 
}

@keyframes spin { 100% { transform: rotate(360deg); } }

.epk-meta .tag { 
    color: var(--c-gold); 
    text-transform: uppercase; 
    letter-spacing: 0.6em; 
    font-size: 0.75rem; 
    font-weight: 700; 
    display: block; 
    margin-bottom: 0.96rem; 
}

.epk-meta h1 { 
    font-size: 2rem; 
    line-height: 1;
    letter-spacing: -1.8px; 
    margin-bottom: 1.6rem; 
    color: var(--c-cream); 
}

.epk-meta h2 { 
    font-size: 1rem; 
    color: var(--c-cream); 
    margin-bottom: 2rem; 
    font-weight: 700;
    letter-spacing: -1px !important;
}

.meta-grid { 
    display: grid; 
    grid-template-columns: 1fr; 
    gap: 1.5rem; 
    margin-bottom: 2rem; 
    padding: 2rem; 
    background-color: transparent; 
    border-radius: 4px; 
    border: 1px solid rgba(255, 255, 255, 0.1); 
    background: rgba(255, 199, 121, 0.04);
}

.meta-item { display: flex; flex-direction: column; gap: 0.25rem; }
.meta-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--c-gold); font-weight: 700;}
.meta-value { font-size: 0.9rem; font-weight: 400; color: rgba(253, 251, 247, 0.9); }

.inline-player { 
    width: 100%;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 24px;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    background: rgba(255, 199, 121, 0.04);
}

.play-btn { 
    width: 48px; 
    height: 48px; 
    border-radius: 50%; 
    background: var(--c-cream); 
    color: var(--c-black); 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    cursor: pointer; 
    border: none; 
    flex-shrink: 0; 
    transition: transform 0.2s ease; 
    box-shadow: 1px 1px 15px #ffc10790 !important; 
}

.play-btn:hover { transform: scale(1.05); }
.play-btn svg { width: 24px; height: 24px; fill: currentColor; margin-left: 4px; }
.player-info { flex-grow: 1; display: flex; flex-direction: column; gap: 0.75rem; }

/* Golden Waveform matching screenshot */
.waveform { 
    height: 24px; 
    width: 100%; 
    background-image: url('data:image/svg+xml,%3Csvg viewBox="0 0 100 20" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M0 10 Q 5 0, 10 10 T 20 10 T 30 10 T 40 10 T 50 10 T 60 10 T 70 10 T 80 10 T 90 10 T 100 10" stroke="%23ffb13d" stroke-width="1.5" fill="none" opacity="0.8"/%3E%3C/svg%3E'); 
    background-size: 100% 100%; 
    position: relative; 
}

.player-text { font-size: 0.75rem; color: var(--c-muted); display: flex; justify-content: space-between; font-family: monospace; }

.epk-content-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; }
.section-heading { font-size: 2rem; margin-bottom: 1.5rem; }
.pitch-section, .bio-section { padding: 4rem 0 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.bio-section { max-width: 720px; margin: auto; }
.pitch-content { font-size: 1.0rem; font-weight: 400; line-height: 1.6; color: rgba(253, 251, 247, 0.9); }
.pitch-content p { margin-bottom: 1.5rem; }
.pitch-content p:last-child { margin-bottom: 0; }
.pitch-quote { font-style: italic; font-size: 1.2rem; line-height: 1.225; color: var(--c-gold); margin: 2rem 0; padding-left: 1.5rem; border-left: 2px solid var(--c-gold); }
.assets-section .section-heading { }
.assets-section { padding: 4rem 0 6rem; }
.assets-section .btn  {
        font-size: 0.72rem;
        width: 90%;
    }

.actions-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 2rem; }

/* Clean footer for EPK */
.epk-page .epk-footer { padding: 2rem 0; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.1); background: transparent;}
.epk-page .epk-footer p { width: 100%; font-size: 0.875rem; color: var(--c-muted); }

/* Split Pitch Section Grid */
.pitch-grid {
    display: grid;
    grid-template-columns: 1fr; /* Stacks vertically on mobile */
    gap: 2.5rem;
    align-items: center;
}

/* Responsive 16:9 Video Wrapper */
.pitch-video-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    /* Gives the video frame a subtle golden glow matching your buttons */
    box-shadow: 1px 1px 15px rgba(255, 193, 7, 0.2); 
}

.pitch-video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* =========================================
   EPK MEDIA QUERIES (DESKTOP)
========================================= */
@media (min-width: 768px) {
    .epk-header { grid-template-columns: 1fr 1.2fr; gap: 4rem; padding: 4rem 0 0; border-bottom: none; }
    .epk-meta h1 { font-size: 4rem; }
    .meta-grid { grid-template-columns: repeat(2, 1fr); }
    .actions-grid { grid-template-columns: auto auto; justify-content: start; }
    .epk-content-grid { grid-template-columns: 1fr 1fr; gap: 4rem; }

    /* Add this INSIDE your existing @media (min-width: 768px) block */
    .pitch-grid {
        grid-template-columns: 1fr 1fr; /* Splits into two equal halves */
        gap: 2.2rem;
        align-items: start; /* Aligns video and text to the top */
    }
}

/* =========================================
   CUSTOM AUDIO PLAYER (EPK)
========================================= */

.seek-bar {
    -webkit-appearance: none;
    width: 100%;
    height: 3px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 2px;
    outline: none;
    position: relative;
    cursor: pointer;
    margin: 10px 0;
    /* CSS variable to dynamically fill the progress bar */
    --progress: 0%;
    background: linear-gradient(to right, var(--c-cream) var(--progress), rgba(255, 255, 255, 0.2) var(--progress));
    box-shadow: 0 0 10px rgba(255, 177, 61, 0.1); 
}

/* Webkit Thumb (Chrome, Safari, Edge) */
.seek-bar::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--c-cream);
    cursor: pointer;
    box-shadow: 0 0 12px 2px var(--c-gold);
    border: none;
}

/* Firefox Thumb */
.seek-bar::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--c-cream);
    cursor: pointer;
    box-shadow: 0 0 12px 2px var(--c-gold);
    border: none;
}

/* Gallery Option 1 */
.masonry-columns {
    column-count: 1; /* 1 column on mobile */
    column-gap: 1.5rem;
}
.masonry-item {
    break-inside: avoid; /* Prevents an image from being split across columns */
    margin-bottom: 1.5rem;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.masonry-item img {
    width: 100%;
    display: block;
    /*filter: grayscale(80%);*/
    transition: filter 0.5s ease, transform 0.5s ease;
}
.masonry-item:hover img {
    /*filter: grayscale(0%);*/
    transform: scale(1.03);
}

/* Tablet */
@media (min-width: 768px) {
    .masonry-columns { column-count: 2; }
}
/* Desktop */
@media (min-width: 1024px) {
    .masonry-columns { column-count: 3; }
}

/* Gallery Option 2 */
.mosaic-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 200px;
    gap: 1rem;
}
.mosaic-item {
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.mosaic-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /*filter: grayscale(80%);*/
    transition: filter 0.5s ease, transform 0.5s ease;
}
.mosaic-item:hover img {
    /*filter: grayscale(0%);*/
    transform: scale(1.05);
}

/* Mobile spans */
.feature-large { grid-column: span 2; grid-row: span 2; }
.feature-tall { grid-row: span 2; }
.feature-wide { grid-column: span 2; }

/* Desktop Grid Adjustments */
@media (min-width: 768px) {
    .mosaic-grid {
        grid-template-columns: repeat(4, 1fr);
        grid-auto-rows: 250px;
        gap: 1.5rem;
    }
    .feature-tall { grid-column: span 1; grid-row: span 2; }
    .feature-wide { grid-column: span 2; grid-row: span 1; }
}

/* Gallery Option 3 */
.staggered-grid {
    display: grid;
    grid-template-columns: 1fr; /* Single column on mobile */
    gap: 1.5rem;
}
.stagger-item {
    margin-bottom: 1.5rem;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.stagger-item img {
    width: 100%;
    display: block;
    /*filter: grayscale(80%);*/
    transition: filter 0.5s ease, transform 0.5s ease;
}
.stagger-item:hover img {
    /*filter: grayscale(0%);*/
    transform: scale(1.03);
}

/* Desktop */
@media (min-width: 768px) {
    .staggered-grid {
        grid-template-columns: repeat(3, 1fr);
        align-items: start; /* Allows columns to be independent heights */
    }
    .offset-col {
        margin-top: 5rem; /* Pushes the middle column down */
    }
}

/* Gallery Option 4 */

/* Mobile First: Horizontal Scrolling Container */
.gallery-cluster {
    display: flex;
    gap: 1rem;
    overflow-x: auto; /* Enables horizontal scrolling on mobile */
    padding: 2rem 0;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 2rem;
    scrollbar-width: none; /* Firefox hide scrollbar */
}

/* Hide scrollbar for Chrome, Safari and Opera */
.gallery-cluster::-webkit-scrollbar {
    display: none;
}

.gallery-col {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 0 0 65vw; /* Each column takes up 65% of screen on mobile */
    scroll-snap-align: center;
}

.gallery-col img {
    width: 100%;
    border-radius: 16px; /* Soft pill-like corners */
    object-fit: cover;
    /*filter: grayscale(80%);*/
    transition: all 0.5s ease;
    box-shadow: 1px 1px 10px rgba(255, 177, 61, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.gallery-col img:hover {
    /*filter: grayscale(0%);*/
    transform: scale(1.02);
    box-shadow: 1px 1px 25px rgba(255, 177, 61, 0.3) !important;
    z-index: 2;
    position: relative;
}

/* Image Height Controls */
.img-short { height: 220px; }
.img-tall { height: 460px; }
.img-large { height: 500px; }

.gallery-heading {
    margin-top: 1rem;
}

/* Desktop: Expand to the full staggered bento layout */
@media (min-width: 768px) {
    .gallery-cluster {
        overflow-x: visible; /* Turn off mobile scroll */
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        gap: 1.5rem;
    }
    
    .gallery-col {
        flex: 1; /* Distribute evenly */
        min-width: 0;
        gap: 1.5rem;
    }

    /* The vertical staggers to create the organic look */
    .push-down { transform: translateY(40px); }
    .push-up { transform: translateY(-30px); }
    .push-down-slight { transform: translateY(20px); }
}

/* Gallery Option 5 */
/* =========================================
   2-COLUMN MASONRY GALLERY
========================================= */
.gallery-masonry-2col {
    column-count: 1; /* Mobile defaults to 1 column */
    column-gap: 0.8rem;
}

.gallery-masonry-2col .gallery-item {
    break-inside: avoid; /* Prevents an image from being split across columns */
    margin-bottom: 0.8rem; /* Matches the column gap for perfect symmetry */
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: 1px 1px 10px rgba(255, 177, 61, 0.05);
}

.gallery-masonry-2col .gallery-item img {
    width: 100%;
    display: block;
    transition: transform 0.5s ease, filter 0.5s ease;
}

.gallery-masonry-2col .gallery-item:hover img {
    transform: scale(1.02);
    box-shadow: 1px 1px 25px rgba(255, 177, 61, 0.3) !important;
    position: relative;
    z-index: 2;
}

/* Desktop override for exact 2-column layout */
@media (min-width: 768px) {
    .gallery-masonry-2col {
        column-count: 2; 
    }
}

/* =========================================
   MOBILE MARQUEE SPACING FIX
========================================= */
@media (max-width: 767px) {
    .about-section-new {
        padding-bottom: 6rem !important; /* Forces enough breathing room below the text */
    }
    
    .marquee-wrapper {
        bottom: 0 !important; /* Pins the marquee to the absolute bottom of the section */
        padding: 1rem 0 !important; /* Slightly tighter vertical padding for mobile screens */
    }

    .about-find-new {
        margin-bottom: 1rem; /* Gives "FIND HIM ON" a little buffer just in case */
    }
}

/* =========================================
   DEDICATED MOBILE OVERLAY MENU
========================================= */
.mobile-overlay-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(10, 10, 10, 0.98);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* Active class triggered by JS */
.mobile-overlay-menu.open {
    opacity: 1;
    pointer-events: all;
}

/* Locks the background page from scrolling when menu is open */
body.menu-open {
    overflow: hidden;
}

.mobile-menu-links {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    text-align: center;
}

.mobile-menu-links a {
    font-size: 1.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--c-cream);
    transition: color 0.3s ease;
}

.mobile-menu-links a:hover {
    color: var(--c-gold);
}

.close-mobile-btn {
    position: absolute;
    top: 2rem;
    right: 1.5rem;
    background: none;
    border: none;
    color: var(--c-cream);
    cursor: pointer;
    width: 36px;
    height: 36px;
    padding: 0;
}

.close-mobile-btn svg {
    fill: none;
    stroke: currentColor;
}

/* =========================================
   CLEAN MOBILE NAVBAR SCALING (Max 767px)
========================================= */
@media (max-width: 767px) {
    /* Hide desktop elements */
    .desktop-menu { display: none !important; }
    
    /* Scale down the header */
    .navbar { padding: 1.5rem 1.25rem; }
    .navbar.scrolled, .navbar.epk-nav { padding: 1rem 1.25rem; }
    
    /* Shrink the logo and text smoothly */
    .nav-brand-container { gap: 0.5rem; }
    .nav-logo-space { width: 40px; height: 40px; margin-left: 0; flex-shrink: 0; }
    .nav-logo-space img { width: 100%; height: 100%; object-fit: contain; }
    .nav-brand { font-size: 0.85rem; }
}

/* Hide mobile elements on desktop */
@media (min-width: 768px) {
    .mobile-btn { display: none; }
    .mobile-overlay-menu { display: none !important; }
}

/* =========================================
   DESKTOP PARALLAX (Index Page Only)
========================================= */
body:not(.epk-page) .section-bg {
    overflow: hidden; /* Clips the oversized background images */
}

@media (min-width: 768px) {
    body:not(.epk-page) .section-bg img {
        height: 120%; /* Makes the image 20% taller than the section */
        width: 100%;
        object-fit: cover;
        position: absolute;
        top: -10%; /* Centers the extra height (10% bleed top, 10% bleed bottom) */
        left: 0;
        will-change: transform; /* Hardware acceleration for buttery smooth scrolling */
        backface-visibility: hidden;
        transform: translateZ(0); /* Forces GPU rendering */
    }
}