/* CSS Variables based on Brand Guidelines */
:root {
    --red: #731824;
    --green: #27422b;
    --charcoal: #222020;
    --blue: #cbe5ff;
    --butter: #ffffff;
    --highlight: #EC5616;
    --footer-bg: var(--blue);
    --faq-bottom-grad: linear-gradient(to bottom, transparent 0%, var(--blue) 100%);
    --fog-color-1: rgba(255, 255, 255, 0.85);
    --fog-color-2: rgba(255, 246, 230, 0.65);
    
    --font-sans: 'Inter', sans-serif;
    --font-serif: 'Instrument Serif', serif;
}



[data-theme="dark"] {
    --butter: #222020;
    --charcoal: #ffffff;
    --footer-bg: var(--butter);
    --faq-bottom-grad: none;
    --fog-color-1: rgba(160, 190, 255, 0.12);
    --fog-color-2: rgba(210, 225, 255, 0.08);
}

/* Dark Mode Overrides for Hero Section */
[data-theme="dark"] .pill.pill-ripple {
    color: #ffffff !important; /* Premium Butter color (white) instead of dark charcoal for high contrast */
}

[data-theme="dark"] .hero h1 span.italic {
    color: #ff7d47; /* Brighter premium coral/orange for dark mode */
}


/* Reset & Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

*:focus {
    outline: none !important;
}

*:focus-visible {
    outline: 2px solid var(--highlight) !important;
    outline-offset: 4px !important;
}

html, body {
    overflow-x: hidden;
    width: 100%;
    position: relative;
}

body {
    background-color: var(--butter);
    color: var(--charcoal);
    font-family: var(--font-sans);
    font-weight: 400; /* Body - Inter Regular */
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

/* Services Stacked Section */
.services-stacked {
    background: var(--butter);
    padding: 100px 0 200px 0;
    position: relative;
    overflow: hidden;
}

/* ════════════════════════════════════════════ WORKS ══════════════════════════════════════════ */
.works-section {
    position: relative;
    z-index: 20;
    background-color: var(--charcoal);
    color: var(--charcoal);
}

::selection {
    background: var(--charcoal);
    color: var(--butter);
}

/* Custom Scrollbar */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
    background: #ffffff !important; /* White background */
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
    background-color: #EC5616 !important; /* Highlight */
    border-radius: 20px !important;
    border: 3px solid #ffffff !important; /* Creates thin effect */
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
    background-color: #731824 !important; /* Red */
}

/* Firefox Support */
html, body {
    scrollbar-width: thin !important;
    scrollbar-color: #EC5616 #ffffff !important;
}

/* Smooth Scrolling (Lenis) */
html.lenis {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-smooth[data-lenis-prevent] {
    overscroll-behavior: contain;
}

/* Typography */
h1, h2, h3, h4, .serif {
    font-family: var(--font-serif);
    font-weight: 400; /* Headlines - Instrument Serif */
}

.sub-heading, .tagline {
    font-family: var(--font-sans);
    font-weight: 300; /* Sub-headings - Inter Thin */
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.15; letter-spacing: -0.01em; }
h2 { font-size: clamp(2rem, 4.5vw, 3.8rem); line-height: 1.15; letter-spacing: -0.01em; }
h3 { font-size: clamp(1.5rem, 3vw, 2.8rem); line-height: 1.2; }
p { font-size: clamp(1rem, 1.2vw, 1.15rem); line-height: 1.7; font-weight: 400; opacity: 0.85; }

.italic { font-style: italic; }

/* Layout & Utilities */
.container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 5vw;
}

.section {
    padding: 10vw 0;
    position: relative;
}

.pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.6rem 1.8rem;
    border-radius: 100px;
    border: 1px solid var(--charcoal);
    font-family: var(--font-sans);
    font-size: 0.8rem;
    font-weight: 500;
    text-decoration: none;
    color: var(--charcoal);
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    background: transparent;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pill svg {
    width: 18px;
    height: 18px;
    transition: transform 0.3s ease;
}

.br-mobile {
    display: none; /* Hidden by default on desktop */
}

.pill:hover svg {
    transform: translateX(4px);
}

.pill.solid {
    background: var(--charcoal);
    color: var(--butter);
}

.pill.highlight {
    border-color: var(--highlight);
    color: var(--highlight);
}

.pill.highlight:hover {
    background: var(--highlight);
    color: var(--butter);
}

.pill:hover {
    background: var(--charcoal);
    color: var(--butter);
    transform: translateY(-2px);
}

.pill.solid:hover {
    background: transparent;
    color: var(--charcoal);
}

/* Primary Hero Button */
.pill.pill-ripple {
    position: relative;
    background: var(--highlight) !important;
    color: var(--butter) !important;
    border-color: var(--highlight) !important;
    padding: 0.6rem 1.8rem; /* Reduced for better hierarchy */
    min-width: 180px;
}

.pill.pill-ripple:hover {
    background: var(--charcoal) !important;
    border-color: var(--charcoal) !important;
    color: var(--butter) !important;
}

/* Removed ripple-wave keyframes */

/* Header */
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2rem 5vw;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    z-index: 100;
    background: transparent; /* Made transparent */
    color: var(--charcoal);
    transition: all 0.6s cubic-bezier(0.25, 1, 0.3, 1);
    overflow: hidden;
}

header .header-top {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    width: 100%;
}

.logo {
    justify-self: start;
}

.nav {
    justify-self: center;
}

.header-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

header.scrolled {
    padding: 1rem 2.5vw;
    margin-top: 1rem;
    left: 10vw;
    right: 10vw;
    width: 80vw;
    background: rgba(252, 247, 230, 0.7); /* Robust fallback */
    background: color-mix(in srgb, var(--butter) 70%, transparent);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-radius: 100px;
    border: 1px solid color-mix(in srgb, var(--charcoal) 10%, transparent);
    color: var(--charcoal);
}

@media (max-width: 768px) {
    header.scrolled {
        left: 5vw;
        right: 5vw;
        width: 90vw;
        padding: 0.8rem 4vw;
    }
}

header.menu-open {
    height: 100vh !important;
    height: 100dvh !important;
    width: 100vw !important;
    left: 0 !important;
    right: 0 !important;
    margin-top: 0 !important;
    border-radius: 0 !important;
    padding: 1rem 5vw !important;
    background: color-mix(in srgb, var(--butter) 98%, transparent) !important;
    backdrop-filter: blur(30px) !important;
    -webkit-backdrop-filter: blur(30px) !important;
    border: none !important;
}

header.hidden {
    transform: translateY(-150%);
}

.logo {
    font-family: var(--font-sans);
    font-size: 1.5rem;
    font-weight: 600;
    text-decoration: none;
    color: inherit;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.nav {
    display: flex;
    gap: 2.5rem;
    align-items: center;
}

.nav a {
    color: var(--charcoal);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

.nav a:hover {
    opacity: 1;
}

/* Shimmer effect for Coaching link */
.nav-shimmer {
    background: linear-gradient(
        90deg, 
        var(--charcoal) 0%, 
        var(--charcoal) 40%, 
        var(--highlight) 50%, 
        var(--charcoal) 60%, 
        var(--charcoal) 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: nav-shimmer 3s infinite linear;
    display: inline-block;
    font-weight: 500 !important;
}

[data-theme="dark"] .nav-shimmer {
    background: linear-gradient(
        90deg, 
        #ffffff 0%, 
        #ffffff 40%, 
        var(--highlight) 50%, 
        #ffffff 60%, 
        #ffffff 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@keyframes nav-shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

@media (max-width: 1024px) {
    .nav { display: none; }
    .header-actions .pill { display: none !important; }
    .hamburger-btn { display: flex !important; }

    header .header-top {
        grid-template-columns: 1fr 1fr; /* Switch to 2 columns for logo/hamburger */
    }

    .header-actions {
        justify-self: end;
    }
}

header .pill {
    border-color: var(--charcoal);
    color: var(--charcoal);
    padding: 0.6rem 1.8rem;
    font-size: 0.8rem;
}
header .pill:hover {
    background: var(--charcoal);
    color: var(--butter);
}

.hamburger-btn {
    display: none; /* hidden on desktop */
    background: rgba(0,0,0,0.03);
    border: none;
    color: currentColor;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border-radius: 50%;
    transition: background-color 0.3s ease;
    z-index: 200;
}

.mobile-menu-content {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 1;
    width: 100%;
    margin-top: 2rem;
}

.mobile-menu-content.active {
    display: flex;
}

.mobile-nav-links {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
    text-align: center;
    margin-bottom: 2.5rem;
}

.mobile-nav-link {
    font-family: var(--font-serif);
    font-size: 2.8rem;
    text-decoration: none;
    color: var(--charcoal);
    opacity: 0;
    transform: translateY(30px);
    transition: color 0.3s ease;
}

.mobile-nav-cta {
    opacity: 0;
    transform: translateY(30px);
    margin-bottom: 3rem;
}

.mobile-socials {
    display: flex;
    gap: 1.5rem;
    opacity: 0;
    transform: translateY(30px);
}

.mobile-socials a {
    color: var(--charcoal);
}

/* Hero Section */
.hero {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    padding: 110px 0 100px 0;
    background-color: var(--butter);
    color: var(--charcoal);
    width: 100%;
    overflow: hidden;
}

.hero-bg-container {
    position: absolute;
    top: -150px;
    left: -150px;
    width: calc(100% + 300px);
    height: calc(100% + 300px);
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    filter: url(#hero-distort); /* Apply liquid distortion */
}


.hero-bg-layer {
    position: absolute;
    top: -25%;
    left: -25%;
    width: 150%;
    height: 150%;
    background-size: cover;
    background-position: center;
    filter: blur(100px) saturate(1.8);
    opacity: 0;
    transition: opacity 2s ease-in-out;
    animation: hero-bg-flow 40s linear infinite;
    will-change: transform, opacity;
    backface-visibility: hidden;
    transform: translateZ(0); /* Hardware acceleration */
}

@keyframes hero-bg-flow {
    0% { transform: rotate(0deg) scale(1); }
    50% { transform: rotate(180deg) scale(1.2); }
    100% { transform: rotate(360deg) scale(1); }
}

.hero-bg-layer.active {
    opacity: 0.25; /* Slightly increased for better visibility of distortion */
}

/* Ensure content is above background */
.hero-main, .hero-growth {
    position: relative;
    z-index: 5;
}

.hero-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    width: 100%;
    z-index: 5;
}

.hero-left {
    flex: 1.6;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.hero-right {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: relative;
}

.hero-image-wrapper {
    position: relative;
    width: 100%;
    max-width: 500px;
    aspect-ratio: 1 / 1.1;
    border-radius: 40px;
    overflow: hidden;
    box-shadow: 0 20px 45px -10px rgba(0, 0, 0, 0.08); /* Smooth, soft shadow with negative spread */
}



.hero-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.hero-img.active {
    opacity: 1;
}

.hero-image-glow {
    position: absolute;
    top: -20%;
    right: -20%;
    width: 140%;
    height: 140%;
    background: radial-gradient(circle, var(--highlight) 0%, transparent 70%);
    opacity: 0.1;
    pointer-events: none;
    z-index: -1;
}

.hero h1 {
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: clamp(2rem, 4.2vw, 3.2rem); 
    line-height: 1.1; 
    margin-bottom: 1.2rem; 
    letter-spacing: -0.02em;
    will-change: transform, opacity;
    max-width: 900px;
}

.hero h1 span.italic {
    color: var(--highlight);
    font-style: normal; /* Use standard italic for emphasis instead of serif */
}

.hero p {
    margin-bottom: 1.8rem; /* Tightened gap */
    opacity: 0.8;
}

.hero-btns {
    display: flex;
    gap: 1.5rem;
    justify-content: flex-start;
    align-items: center;
    will-change: transform, opacity;
    margin-bottom: 2rem;
}



/* Services Vertical Reveal Section */

.section-title {
    font-size: clamp(3.5rem, 8vw, 6rem);
    text-align: center;
    color: var(--charcoal);
    line-height: 1.1;
}

.services-stacked .section-title {
    margin-bottom: 80px;
    margin-top: 20px;
}

/* ═══════════════════════════════════════════════════════════════
   SERVICES — GSAP-pinned stacking list
   The section is pinned for 4×100vh by ScrollTrigger.
   Inside the pin, titles appear one-by-one, the body content
   swaps, and the image crossfades.
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   SERVICES — Pinned Scroll with Stacking Titles
   ═══════════════════════════════════════════════════════════════ */

.services-stack {
    background-color: var(--butter);
    position: relative;
    overflow: hidden;
    z-index: 5; /* Base layer */
}

.services-inner {
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 8vh;
    padding-bottom: 5vh;
}

.services-stack-header {
    margin-bottom: 4vh;
    flex-shrink: 0;
}

.services-stack-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 60px;
    flex-grow: 1;
    min-height: 0;
    align-items: stretch;
}

/* LEFT: Image frame */
.services-visual-col {
    position: relative;
    height: 100%;
}

.services-stack-visual {
    position: sticky;
    top: 0;
    height: 70vh;
    width: 100%;
    border-radius: 24px;
    overflow: hidden;
    background-color: transparent;
}

/* Premium Rotating Social Backdrop behind the model (Desktop Only) */
.rotating-social-backdrop {
    position: absolute;
    top: 36%; /* Center dynamically around the model's head */
    left: 50%;
    transform: translate(-50%, -50%);
    width: 320px; /* Slightly reduced size for standard/responsive spacing */
    height: 320px;
    pointer-events: none;
    z-index: 1; /* Sits behind the active model images (z-index 2) */
    display: flex;
    align-items: center;
    justify-content: center;
    animation: rotate-backdrop 60s linear infinite;
    will-change: transform;
    transition: opacity 0.5s ease; /* Smooth fade when scrolling between services */
}

.stroke-circle-svg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 300px; /* matched to the viewBox coordinates (300x300) to ensure a perfect 130px physical radius */
    height: 300px;
    pointer-events: none;
    opacity: 0.45; /* subtle transparency to avoid overpowering */
}

.icon-positioner {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    will-change: transform;
}

/* Positioning each icon wrapper precisely at their 72deg angles around the 130px radius */
.icon-positioner.pos-1 { transform: rotate(0deg) translate(0, -130px); }
.icon-positioner.pos-2 { transform: rotate(72deg) translate(0, -130px); }
.icon-positioner.pos-3 { transform: rotate(144deg) translate(0, -130px); }
.icon-positioner.pos-4 { transform: rotate(216deg) translate(0, -130px); }
.icon-positioner.pos-5 { transform: rotate(288deg) translate(0, -130px); }

.social-icon-wrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 38px; /* slightly smaller, highly responsive icon containers */
    height: 38px;
    background-color: var(--butter);
    border: 1.5px solid var(--highlight); /* changed to Highlight color */
    color: var(--highlight); /* changed to Highlight color */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(235, 94, 40, 0.08); /* highlight-based shadow glow */
    will-change: transform;
}

/* Marionette counter-rotation keyframes for each position so they always remain upright (0deg tilt) */
.pos-1 .social-icon-wrapper { animation: counter-rotate-1 60s linear infinite; }
.pos-2 .social-icon-wrapper { animation: counter-rotate-2 60s linear infinite; }
.pos-3 .social-icon-wrapper { animation: counter-rotate-3 60s linear infinite; }
.pos-4 .social-icon-wrapper { animation: counter-rotate-4 60s linear infinite; }
.pos-5 .social-icon-wrapper { animation: counter-rotate-5 60s linear infinite; }

.social-icon-wrapper svg {
    width: 16px;
    height: 16px;
    display: block;
}

/* Make sure active models sit clearly in front and have their transparent background */
.service-visual-item {
    position: absolute;
    inset: 0;
    opacity: 0;
    z-index: 2; /* model in front of backdrop */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.service-visual-item.active {
    opacity: 1;
}

.service-visual-item img {
    max-width: 90%;
    max-height: 90%;
    object-fit: contain; /* ensures transparent images are fully framed without cropping */
}

.creator-dashboard {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    padding: 1rem 1.5rem; /* Spacious padding for desktop */
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    color: var(--charcoal);
    box-sizing: border-box;
    font-family: var(--font-sans);
}

/* Header style */
.dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* Align live tracker pill to the top right, matching the header tag */
    border-bottom: 1px solid color-mix(in srgb, var(--charcoal) 8%, transparent);
    padding-bottom: 0.8rem;
    width: 100%;
}

.dashboard-tag {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--highlight);
}

.dashboard-title {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    font-weight: 500;
    margin-top: 0.2rem;
    letter-spacing: -0.01em;
}

.live-indicator {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: color-mix(in srgb, var(--charcoal) 4%, transparent);
    padding: 0.35rem 0.7rem;
    border-radius: 99px;
    border: 1px solid color-mix(in srgb, var(--charcoal) 6%, transparent);
}

.live-dot {
    width: 6px;
    height: 6px;
    background-color: #10B981;
    border-radius: 50%;
    position: relative;
    display: inline-block;
    animation: live-pulse 2s infinite;
}

.live-text {
    font-size: 0.65rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: color-mix(in srgb, var(--charcoal) 75%, transparent);
}

@keyframes live-pulse {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
    }
    70% {
        transform: scale(1);
        box-shadow: 0 0 0 5px rgba(16, 185, 129, 0);
    }
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
    }
}

/* Overview metrics cards */
.dashboard-overview-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.8rem;
}

.overview-metric-card {
    background: color-mix(in srgb, var(--butter) 50%, transparent);
    border: 1px solid color-mix(in srgb, var(--charcoal) 6%, transparent);
    border-radius: 16px;
    padding: 0.8rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.01);
}

.ov-label {
    font-size: 0.65rem;
    color: color-mix(in srgb, var(--charcoal) 50%, transparent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.ov-value {
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.ov-trend {
    font-size: 0.65rem;
    font-weight: 600;
    color: #10B981;
}

/* Split showcase section */
.dashboard-showcase {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 1.2rem;
    flex-grow: 1;
    min-height: 0;
}

.showcase-visual {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background: color-mix(in srgb, var(--charcoal) 4%, transparent);
    border: 1px solid color-mix(in srgb, var(--charcoal) 8%, transparent);
}

.influencer-img-container {
    width: 100%;
    height: 100%;
    position: relative;
}

.influencer-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover !important;
    max-width: 100% !important;
    max-height: 100% !important;
    opacity: 0;
    transform: scale(1.05);
    transition: opacity 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.influencer-img.active {
    opacity: 1;
    transform: scale(1);
    z-index: 2;
}

.influencer-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.2rem 1rem 1rem 1rem;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, transparent 100%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    z-index: 5;
    pointer-events: none;
}

.inf-name {
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.inf-niche {
    font-size: 0.65rem;
    opacity: 0.85;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

/* Right Details Section */
.showcase-details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0.8rem;
}

.campaign-info {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.campaign-label {
    font-size: 0.65rem;
    color: color-mix(in srgb, var(--charcoal) 50%, transparent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.campaign-name {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-style: italic;
    color: var(--highlight);
    margin: 0;
}

.campaign-metrics {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    flex-grow: 1;
    justify-content: center;
}

.camp-metric {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.camp-metric-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    font-weight: 500;
    color: color-mix(in srgb, var(--charcoal) 80%, transparent);
}

.camp-metric-val {
    font-weight: 600;
    color: var(--charcoal);
}

.camp-progress-bar {
    width: 100%;
    height: 6px;
    background: color-mix(in srgb, var(--charcoal) 6%, transparent);
    border-radius: 99px;
    overflow: hidden;
}

.camp-progress-fill {
    height: 100%;
    background: var(--highlight);
    border-radius: 99px;
    width: 0%;
    transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Tabs selectors */
.dashboard-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
    background: color-mix(in srgb, var(--charcoal) 4%, transparent);
    padding: 0.25rem;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--charcoal) 6%, transparent);
}

.dash-tab {
    background: transparent;
    border: none;
    padding: 0.5rem;
    border-radius: 8px;
    font-size: 0.7rem;
    font-weight: 600;
    color: color-mix(in srgb, var(--charcoal) 60%, transparent);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.dash-tab:hover {
    color: var(--charcoal);
    background: color-mix(in srgb, var(--butter) 40%, transparent);
}

.dash-tab.active {
    background: var(--butter);
    color: var(--charcoal);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.tab-dot {
    width: 5px;
    height: 5px;
    background-color: color-mix(in srgb, var(--charcoal) 25%, transparent);
    border-radius: 50%;
    transition: background-color 0.3s ease;
}

.dash-tab.active .tab-dot {
    background-color: var(--highlight);
}

/* Responsive adjustment for Mobile Dashboard inside the slider */
.service-mobile-img .creator-dashboard {
    width: 100%;
    height: auto;
    padding: 0.8rem 1rem; /* Compact padding for mobile/tablet screens */
    border-radius: 0;
    gap: 0.6rem;
}

.service-mobile-img .dashboard-header {
    padding-bottom: 0.5rem;
}

.service-mobile-img .dashboard-overview-metrics {
    display: none !important; /* Hide overview cards on mobile to minimize height */
}

.service-mobile-img .dashboard-title {
    font-size: 0.9rem;
}

.service-mobile-img .campaign-label {
    font-size: 0.65rem;
}

.service-mobile-img .campaign-name {
    font-size: 1.15rem;
}

.service-mobile-img .dashboard-showcase {
    grid-template-columns: 1fr !important; /* Stack vertically! */
    gap: 0.6rem;
}

.service-mobile-img .showcase-visual {
    height: 145px !important; /* Minimized portrait photo height */
    width: 100%;
}

.service-mobile-img .influencer-overlay {
    padding: 0.8rem;
}

.service-mobile-img .inf-name {
    font-size: 0.85rem;
}

.service-mobile-img .inf-niche {
    font-size: 0.6rem;
}

.service-mobile-img .campaign-metrics {
    gap: 0.4rem;
}

.service-mobile-img .camp-metric-header {
    font-size: 0.7rem;
}

.service-mobile-img .camp-progress-bar {
    height: 5px;
}

.service-mobile-img .dashboard-tabs {
    padding: 0.15rem;
    border-radius: 8px;
    margin-top: 0.2rem;
}

.service-mobile-img .dash-tab {
    padding: 0.3rem;
    font-size: 0.65rem;
}

@keyframes rotate-backdrop {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Custom individual keyframes matching the respective static position angles (A) to guarantee 0deg tilt upright marionette posture at all times */
@keyframes counter-rotate-1 {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(-360deg); }
}
@keyframes counter-rotate-2 {
    from { transform: translate(-50%, -50%) rotate(-72deg); }
    to { transform: translate(-50%, -50%) rotate(-432deg); }
}
@keyframes counter-rotate-3 {
    from { transform: translate(-50%, -50%) rotate(-144deg); }
    to { transform: translate(-50%, -50%) rotate(-504deg); }
}
@keyframes counter-rotate-4 {
    from { transform: translate(-50%, -50%) rotate(-216deg); }
    to { transform: translate(-50%, -50%) rotate(-576deg); }
}
@keyframes counter-rotate-5 {
    from { transform: translate(-50%, -50%) rotate(-288deg); }
    to { transform: translate(-50%, -50%) rotate(-648deg); }
}

/* Premium Video Integration for Service 2 */
.premium-video-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Float VCC video beautifully in the sticky desktop visual container */
.service-visual-item .premium-video-wrapper {
    width: 65%;
    height: 90%;
    margin: 5% auto;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
    background-color: var(--charcoal);
    border: 1px solid color-mix(in srgb, var(--charcoal) 8%, transparent);
}

.premium-video-wrapper video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Floating iOS-style minimal progress bar */
.video-timeline-container {
    position: absolute;
    bottom: 20px;
    left: 20px;
    right: 20px;
    height: 5px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 99px;
    overflow: hidden;
    z-index: 10;
    pointer-events: none;
}

.video-timeline-progress {
    height: 100%;
    width: 0%;
    background: var(--highlight);
    border-radius: 99px;
    will-change: width;
}

/* RIGHT: Scrollable content area */
.services-right-col {
    position: relative;
    height: 100%;
    overflow: hidden; /* GSAP controls scrollTop programmatically, prevent manual scroll hijacking */
}

.services-scroll-content {
    position: relative;
    padding-bottom: 80px; /* Mathematically locked to end exactly when Body 3 finishes its sticky fill */
}

.service-block-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 40px 0;
    background-color: var(--butter) !important;
    border-bottom: 1px solid color-mix(in srgb, var(--charcoal) 8%, transparent);
    position: sticky;
    top: 0;
    z-index: 100;
    will-change: padding, font-size;
}

.service-block-header::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: -20px; /* Extends below to cover any gaps */
    background-color: var(--butter);
    z-index: -1;
    pointer-events: none;
}

.service-category {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 600;
    color: var(--charcoal);
    margin-bottom: 1rem;
    opacity: 0.8;
}

.service-block-body {
    padding-top: 40px;
    padding-bottom: 800px; /* Space for the 800px sticky duration */
    background-color: var(--butter) !important;
    position: relative;
    z-index: 50;
}

.service-block-body p {
    color: var(--charcoal);
    line-height: 1.6;
}

.service-mobile-img {
    display: none; /* Hidden by default on desktop */
}

.fill-word {
    display: inline-block; /* Ensure spans behave nicely with word wrapping */
}

/* Each body carries a 'tail' to cover any previous content */
.service-block-body::after {
    content: '';
    position: absolute;
    top: 100%;
    left: -100vw;
    right: -100vw;
    height: 100vh;
    background: var(--butter);
    z-index: -1;
    pointer-events: none;
}

/* Mask for the very top to cover content scrolling past the first title */
.service-block-header[data-index="0"]::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: -100vw;
    right: -100vw;
    height: 100vh;
    background: var(--butter);
    z-index: -1;
    pointer-events: none;
}

.service-block-header.active .svc-title {
    color: var(--highlight);
}

.svc-title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 3.5vw, 3.5rem);
    line-height: 1.05;
    color: var(--charcoal);
    letter-spacing: -0.02em;
    margin: 0;
    display: flex;
    flex-wrap: wrap; /* Allows spans to break line */
    column-gap: 0.4em;
    row-gap: 0.1em;
}

.svc-title span {
    display: block;
    white-space: nowrap;
}

/* RESPONSIVE FOR MOBILE & TABLET (<= 1024px) */
@media (max-width: 1024px) {
    .services-stack {
        height: auto !important;
        min-height: auto !important;
        padding: 80px 0 !important;
    }

    .services-inner {
        height: auto !important;
        min-height: auto !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .services-stack-header {
        margin-bottom: 40px !important;
    }

    .services-stack-body {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .rotating-social-backdrop {
        display: none !important;
    }

    .services-visual-col {
        display: none !important;
    }

    .services-right-col {
        height: auto !important;
        overflow: visible !important;
    }

    .services-scroll-content {
        padding-bottom: 0 !important;
    }

    .service-block-header {
        position: relative !important;
        top: auto !important;
        padding: 24px 0 12px 0 !important;
        background-color: transparent !important;
        border-bottom: 2px solid color-mix(in srgb, var(--charcoal) 8%, transparent) !important;
        z-index: auto !important;
        transform: none !important;
    }

    .service-block-header::after {
        display: none !important;
    }

    .service-block-header::before {
        display: none !important;
    }

    .svc-title {
        font-size: clamp(1.8rem, 4.5vw, 2.8rem) !important;
        color: var(--charcoal) !important;
    }

    .svc-num {
        font-size: 0.8rem !important;
        opacity: 0.7 !important;
        color: var(--charcoal) !important;
    }

    .service-block-body {
        padding-top: 20px !important;
        padding-bottom: 40px !important;
        opacity: 1 !important;
        transform: none !important;
        z-index: auto !important;
    }

    .service-block-body::after {
        display: none !important;
    }

    .service-mobile-img {
        display: block !important;
        width: 100% !important;
        max-width: 600px !important;
        aspect-ratio: 16 / 10 !important;
        border-radius: 16px !important;
        overflow: hidden !important;
        margin-bottom: 1.5rem !important;
        background: transparent !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05) !important;
    }

    .service-mobile-img.dashboard-mobile-container {
        aspect-ratio: auto !important;
        height: auto !important;
        min-height: 420px !important; /* Adjusted slightly to accommodate vertical padding */
        max-width: 100% !important;
        overflow: visible !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .service-mobile-img img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .service-mobile-img .premium-video-wrapper {
        width: 100% !important;
        height: 100% !important;
        border-radius: 16px !important;
        overflow: hidden !important;
    }

    .service-category {
        margin-bottom: 0.8rem !important;
    }

    .fill-word {
        color: var(--charcoal) !important;
    }
}





.hero .pill {
    border-color: var(--highlight);
    color: var(--highlight);
}

.hero .pill:hover {
    background: var(--highlight);
    border-color: var(--highlight);
    color: var(--butter);
}

.hero .pill.solid {
    background: var(--highlight);
    border-color: var(--highlight);
    color: var(--butter);
}

.hero .pill.solid:hover {
    background: var(--charcoal);
    color: var(--butter);
    border-color: var(--charcoal);
}

/* Hero Growth Bar Redesign */
.hero-growth {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 0;
    z-index: 10;
}

.growth-container {
    width: 100%;
    position: relative;
    padding-top: 100px; /* Space for the moving indicator */
}

.growth-indicator {
    position: absolute;
    top: 50px;
    left: 0%; /* Animated via GSAP from 0% to 100% */
    transform: translate(-100%, -50%);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    padding-right: 5vw; /* Restored for desktop alignment */
    pointer-events: none;
    will-change: left;
    z-index: 5;
}

/* Hero Collaboration Text (Bottom Left) */
.hero-collab {
    position: absolute;
    top: 50px;
    transform: translateY(-50%);
    left: 5vw;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    pointer-events: none;
    z-index: 5;
    opacity: 0;
}

.collab-value {
    font-size: clamp(1.1rem, 2.2vw, 1.8rem); /* Slightly smaller for a more decent look */
    font-weight: 600;
    font-family: var(--font-sans);
    color: var(--charcoal);
    line-height: 1;
    white-space: nowrap;
}

.collab-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    opacity: 0.6;
    margin-top: 10px;
    white-space: nowrap;
}

/* Hero Brands Marquee */
.hero-brands-marquee {
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 600px; /* Reduced to 600px */
    height: 60px;
    overflow: hidden;
    z-index: 2;
    opacity: 0;
    mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
}

.marquee-track {
    display: flex;
    align-items: center;
    gap: 3rem;
    padding-right: 3rem; /* ensures the gap is counted at the end for perfect loop */
    width: max-content;
    animation: marquee-scroll 30s linear infinite;
    animation-play-state: paused;
    will-change: transform;
}

.marquee-track.is-playing {
    animation-play-state: running;
}

.marquee-track.is-playing:hover {
    animation-play-state: paused;
}

.brand-logo-link {
    display: block;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.brand-logo-link:hover {
    transform: scale(1.1);
}

.brand-logo {
    height: 48px; /* Significantly increased for better visibility */
    width: 140px;
    object-fit: contain;
    transition: all 0.3s ease;
}

.dark-mode-logo {
    display: none;
    background-color: var(--charcoal);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

html[data-theme="dark"] .light-mode-logo {
    display: none;
}

html[data-theme="dark"] .dark-mode-logo {
    display: block;
}



@keyframes marquee-scroll {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); }
}

@media (max-width: 1024px) {
    .growth-container {
        padding-top: 140px; /* Extra space for the marquee below the text */
    }
    .hero-collab, .growth-indicator {
        top: 35px; /* Shift text slightly up */
    }
    .hero-brands-marquee {
        max-width: 60%;
        top: 90px; /* Placed below the text */
        bottom: auto;
        left: 5vw; /* Left aligned with Global Brands */
        transform: translateY(-50%); /* Removed the X translate */
        mask-image: linear-gradient(to right, transparent, black 10%, black 75%, transparent);
        -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 75%, transparent);
    }
}

@media (max-width: 768px) {
    .hero-brands-marquee {
        max-width: 65%;
    }
}

.growth-value {
    font-size: clamp(1.1rem, 2.2vw, 1.8rem); /* Match collab-value for symmetry */
    font-weight: 600;
    font-family: var(--font-sans);
    color: var(--charcoal);
    line-height: 1;
    white-space: nowrap;
}

.growth-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    opacity: 0.6;
    margin-top: 10px;
    white-space: nowrap;
}

.growth-bar-wrapper {
    width: 100%;
    height: 4px; /* Thin bar */
    background: color-mix(in srgb, var(--charcoal) 5%, transparent);
    overflow: hidden;
    position: relative;
    margin: 0;
}

.growth-bar-fill {
    width: 0%; /* Animated via GSAP */
    height: 100%;
    background: var(--highlight);
    position: relative;
    overflow: hidden;
}

.shimmer {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.5) 50%,
        rgba(255, 255, 255, 0) 100%
    );
    animation: shimmer 2s infinite linear;
}

@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(200%); }
}

@media (max-width: 768px) {
    .hero-growth {
        bottom: 3vh;
        padding: 0 5vw; /* Align with social sidebar right: 5vw */
    }
    
    .growth-container {
        padding-top: 100px;
    }

    .growth-value {
        font-size: 1.4rem; /* Reduced size for better mobile fit */
    }
    
    .growth-markers span:nth-child(2) {
        display: none; /* Hide middle text on mobile */
    }
}

/* About Section */
.about {
    background: var(--butter);
    margin-top: 10vh;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 10vh 0;
}

.about-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 3vh;
    max-width: 1100px;
    width: 100%;
    padding: 0 5vw;
}

.about-intro p,
.about-outro p {
    font-size: clamp(1rem, 1.5vw, 1.4rem);
    line-height: 1.5;
    font-family: var(--font-sans);
    color: var(--charcoal);
    max-width: 750px;
    margin: 0 auto;
}

.founded-by {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--charcoal);
    opacity: 0.6;
    margin: 1rem 0 0 0;
    font-weight: 500;
}

.about-cards {
    display: flex;
    gap: 3vw;
    width: 100%;
    justify-content: center;
    align-items: flex-start;
}

.about-card {
    flex: 0 1 250px;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.about-card-img-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 4/5;
    overflow: hidden;
    border-radius: 16px;
    background: rgba(0,0,0,0.05);
}



.about-card-img {
    object-fit: cover;
}

.about-card-info {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.about-card-name {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--highlight);
    margin: 0;
}

.about-card-desc {
    font-family: var(--font-sans);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--charcoal);
    opacity: 0.7;
    line-height: 1.4;
    margin: 0;
}

@media (max-width: 768px) {
    .about {
        height: auto;
        min-height: 100vh;
        padding: 80px 0;
    }

    .about-stack {
        height: auto;
        gap: 3rem;
    }
    
    .about-intro p,
    .about-outro p {
        font-size: 1.2rem;
        max-width: 100%;
    }

    .about-cards {
        flex-direction: column;
        align-items: center;
        gap: 3rem;
    }

    .about-card {
        max-width: 300px;
    }
}

/* Works Section */
.works-section {
    padding: 0;
    position: relative;
    background: var(--butter);
    z-index: 50; /* Higher than services stack */
}

.works-header.container {
    padding: 10vh 5vw 10vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

@media (max-width: 768px) {
    .works-header.container {
        padding: 40px 5vw 20px;
    }
}

.works-description {
    max-width: 500px;
    margin-top: 1.5rem;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.1rem;
    opacity: 0.7;
    line-height: 1.6;
}

/* Works Hint Scroller */
.works-hint-scroller {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 1.5rem 0;
    margin: 4rem 0 2rem 0;
    border-top: 1px solid color-mix(in srgb, var(--charcoal) 12%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--charcoal) 12%, transparent);
    background: color-mix(in srgb, var(--charcoal) 3%, var(--butter));
    user-select: none;
}

.works-hint-track {
    display: flex;
    align-items: center;
    width: max-content;
    will-change: transform;
}

.works-hint-group {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding-right: 2rem;
    white-space: nowrap;
}

.works-hint-group span {
    font-family: var(--font-sans);
    font-size: clamp(1.1rem, 2.5vw, 1.6rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--charcoal);
    text-transform: uppercase;
}

.works-hint-group span.italic {
    font-family: var(--font-serif);
    font-style: italic;
    font-size: clamp(1.5rem, 3.5vw, 2.2rem);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: lowercase;
    color: var(--highlight);
}

.works-hint-group span.hint-star {
    color: var(--highlight);
    font-size: 1.2rem;
    opacity: 0.8;
}

@media (max-width: 768px) {
    .works-hint-scroller {
        padding: 1rem 0;
        margin: 2.5rem 0 1rem 0;
    }
    .works-hint-group {
        gap: 1.5rem;
        padding-right: 1.5rem;
    }
    .works-hint-group span {
        font-size: 1rem;
    }
    .works-hint-group span.italic {
        font-size: 1.4rem;
    }
}

.gallery-wrap {
	position: relative;
	width: 100%;
	height: 100vh;
    height: 100svh;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 5vw auto 15vh;
	overflow: hidden;
}

.gallery-wrap--large {
	height: 110vh;
}

.gallery {
	position: relative;
	width: 100%;
	height: 100%;	
	flex: none;
}

.gallery--breakout {
	width: min-content;
}

.gallery__item {
	background-position: 50% 50%;
	background-size: cover;	
	flex: none;
	border-radius: 6px;
	position: relative;
	filter: brightness(1);
    will-change: width, height, transform, filter, opacity;
    backface-visibility: hidden;
    transform: translateZ(0); /* GPU offload */
}

.gallery__item-cut { 
	overflow: hidden;
	display: grid;
	place-items: center;
}

.gallery__item-inner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%; 
	height: 100%;
	background-position: 50% 50%;
	background-size: cover;	
	background-repeat: no-repeat;
	object-fit: cover; 
	object-position: center;
    pointer-events: none; /* Prevent interaction during flip */
    backface-visibility: hidden;
    transform: translateZ(0); /* GPU offload */
    will-change: transform;
}

.caption {
	z-index: 101;
}

.gallery--grid {
	height: auto;
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	justify-content: center;
	gap: 1.5vw;
}

.gallery-col {
	display: flex;
	flex-direction: column;
	gap: 1.5vw;
	width: 18vw;
}

.gallery--grid .gallery__item {
	width: 100%;
	height: 33.33vh;
	aspect-ratio: auto;
}

.gallery--switch.gallery--grid {
	gap: 0;
}

.gallery--switch.gallery--grid .gallery-col {
	gap: 0;
	width: auto;
}

.gallery--switch.gallery--grid .gallery__item {
	height: 110vh;
	width: 110vw;
	opacity: 0.7; /* Increased for a clearer image, with a thin butter overlay from background */
	aspect-ratio: auto;
}

/* Redesigned Caption */
.caption-redesigned {
    position: absolute;
    width: 110vw;
    height: 110vh;
    top: 50%;
    left: 50%;
    margin-top: 50vh; /* Start pushed down */
    margin-left: -55vw; /* Centered horizontally */
    display: flex;
    flex-direction: row;
    align-items: flex-end; /* Align to bottom */
    justify-content: space-between;
    padding: 10vh 14vw 18vh 10vw; /* Increased right padding for perfectly balanced visual margins */
    background: linear-gradient(to bottom, transparent 0%, transparent 20%, var(--butter) 60%, var(--butter) 100%);
    opacity: 0;
    pointer-events: none; /* Let clicks pass through when hidden */
    will-change: transform, opacity, margin-top;
    backface-visibility: hidden;
    transform: translateZ(0); /* GPU acceleration */
}

.gallery--switch.gallery--grid .caption-redesigned {
    margin-top: -55vh; /* Perfectly centers the 110vh height container */
    opacity: 1;
    pointer-events: auto;
}

.caption-left {
    flex: 1;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
}

.work-header-new {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.work-title-new {
    font-family: var(--font-serif);
    font-size: clamp(3rem, 6vw, 6rem);
    color: var(--highlight);
    line-height: 1.1;
    margin: 0;
}

.icon-sm {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.work-header-new .icon-btn.highlight {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--highlight);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.work-header-new .icon-btn.highlight:hover {
    transform: scale(1.1) rotate(5deg);
}

.work-desc-new {
    font-family: var(--font-sans);
    font-size: clamp(1.1rem, 1.5vw, 1.5rem);
    color: var(--charcoal);
    line-height: 1.6;
    margin: 0;
    max-width: 80%;
}

.caption-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 1.2rem;
}

.work-results-new {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 3vw;
    width: auto;
    max-width: none;
}

.caption-right-footer {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin-top: 0.5rem;
}

@media (max-width: 768px) {
    .caption-right-footer {
        gap: 1rem;
        margin-top: 0.2rem;
        width: 100%;
        justify-content: space-between;
    }
    .analytics-trigger, .social-link-new {
        font-size: 0.75rem;
        letter-spacing: 0.1em;
    }
}

.analytics-trigger {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--charcoal);
    text-decoration: none;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    transition: all 0.3s ease;
    opacity: 0.8;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.analytics-trigger:hover {
    opacity: 1;
    color: var(--highlight);
    transform: translateX(-5px);
}

.analytics-trigger svg {
    width: 18px;
    height: 18px;
    stroke: var(--highlight);
}

.social-link-new {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    white-space: nowrap;
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--charcoal);
    text-decoration: none;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    transition: all 0.3s ease;
    opacity: 0.8;
    position: relative;
    z-index: 10;
    pointer-events: auto !important;
    cursor: pointer !important;
}

.social-link-new:hover {
    opacity: 1;
    color: var(--highlight);
    transform: translateX(-5px);
}

.icon-social {
    width: 20px;
    height: 20px;
    color: var(--highlight);
    transition: transform 0.3s ease;
    pointer-events: none; /* Let clicks pass to the parent <a> tag */
}

.social-link-new:hover .icon-social {
    transform: scale(1.2);
}

.metric-item-new {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.metric-label-new {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-sans);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--charcoal);
    opacity: 0.7;
    font-weight: 500;
}

.metric-value-new {
    font-family: var(--font-sans);
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 600;
    color: var(--charcoal);
    letter-spacing: -0.02em;
}

@media (max-width: 1024px) {
    .caption-redesigned {
        flex-direction: column;
        justify-content: flex-end;
        align-items: flex-start;
        width: 100vw; 
        height: 100vh; /* Changed from default to 100vh */
        margin-left: -50vw;
        padding: 5vh 7vw 12vh 7vw; /* Slightly lower padding */
        background: linear-gradient(to bottom, transparent 0%, transparent 20%, var(--butter) 55%, var(--butter) 100%);
        gap: 1.2rem; /* Reduced gap */
    }
    
    .gallery--grid {
        flex-direction: row;
        gap: 2vw;
    }

    .gallery-col {
        gap: 2vw;
        width: 32vw;
    }
    
    .gallery--grid .gallery__item {
        height: 25vh; /* Shorter items on smaller screens to see more of the grid */
    }
    
    .caption-left {
        max-width: 100%;
        order: 1; /* Force text to top */
        flex: none; /* Prevent vertical expansion */
    }
    
    .work-desc-new {
        max-width: 100%;
        font-size: 1rem;
    }
    
    .caption-right {
        justify-content: flex-start;
        align-items: flex-start;
        width: 100%;
        order: 2; /* Force metrics to bottom */
        gap: 1.5rem;
        flex: none; /* Prevent vertical expansion */
    }
    
    .work-results-new {
        flex-direction: row;
        flex-wrap: nowrap; /* Keep on one row to save vertical space */
        justify-content: space-between;
        gap: 1rem;
        max-width: 100%;
        width: 100%;
    }
    
    .metric-item-new {
        flex: 1 1 0%; /* Ensure perfectly even columns */
        align-items: flex-start; /* Align contents to the left of each column */
    }
    
    .metric-label-new {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
        font-size: 0.65rem; /* Ensure long words like IMPRESSIONS fit the column */
    }
    
    .metric-value-new {
        font-size: clamp(1.2rem, 3.5vw, 1.8rem);
    }
}
@media (max-width: 1024px) {
    .gallery-wrap { margin: 10vh auto; }
}

/* FAQ Section */
@media (min-width: 1024px) {
    .faq-container {
        max-width: 1000px;
    }
}

.faq {
    background: var(--butter);
    position: relative;
}

.faq::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 250px;
    background: var(--faq-bottom-grad);
    pointer-events: none;
    z-index: 1;
}

.coaching-faq::after {
    display: none !important;
}

.faq-container {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.faq-title {
    font-family: var(--font-serif);
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    text-align: center;
    margin-bottom: 5rem;
    line-height: 1.1;
}

.accordion-item {
    border-bottom: 1px solid var(--charcoal);
    padding: 2rem 0;
}

.accordion-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-sans);
    font-size: clamp(1.1rem, 2vw, 1.6rem);
    font-weight: 500;
    background: none;
    border: none;
    color: var(--charcoal);
    width: 100%;
    text-align: left;
    cursor: pointer;
    gap: 1.5rem;
    padding: 0;
}

.accordion-icon svg {
    width: 24px;
    height: 24px;
    transition: transform 0.4s ease;
    stroke: currentColor;
    fill: none;
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}

.accordion-content p {
    padding-top: 1.5rem;
    color: var(--charcoal);
    opacity: 0.8;
}

.accordion-item.active .accordion-icon svg {
    transform: rotate(45deg);
}

@media (max-width: 1024px) {
    .faq-container {
        padding: 0 7vw;
    }
    
    .faq-title {
        margin-bottom: 3.5rem;
    }
    
    .accordion-item {
        padding: 1.8rem 0;
    }
}

@media (max-width: 768px) {
    .faq-title {
        font-size: 2.2rem;
        margin-bottom: 3rem;
    }
    
    .accordion-item {
        padding: 1.5rem 0;
    }
    
    .accordion-header {
        font-size: 1.15rem;
        line-height: 1.4;
    }
    
    .accordion-content p {
        padding-top: 1.2rem;
        font-size: 0.95rem;
        line-height: 1.6;
    }
}

/* Footer Section */
.footer {
    height: 100vh;
    height: 100svh;
    background: var(--footer-bg);
    color: var(--charcoal);
    display: flex;
    flex-direction: column;
    justify-content: flex-start; /* Changed from space-between */
    padding: 15vh 0 0; 
    border-radius: 0;
    position: relative;
    overflow: hidden;
}

/* ─── Volumetric Fog Sky ─────────────────────────────────────────── */
.footer-fog-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 65%; /* Restrict container strictly to upper portion */
    overflow: hidden;
    pointer-events: none;
    user-select: none;
    z-index: 6; /* Placed over footer-bottom-logo (z-index: 5) but behind footer-container text/buttons (z-index: 10) */
    mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 60%, rgba(0,0,0,0) 100%);
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 60%, rgba(0,0,0,0) 100%);
}

.fog-track {
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
    width: 200%;
    height: 100%;
    will-change: transform;
}

.fog-track-1 {
    animation: fog-drift-left 70s linear infinite;
    opacity: 0.9;
}

.fog-track-2 {
    animation: fog-drift-right 50s linear infinite;
    opacity: 0.85;
}

@keyframes fog-drift-left {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); }
}

@keyframes fog-drift-right {
    0% { transform: translate3d(-50%, 0, 0); }
    100% { transform: translate3d(0, 0, 0); }
}

.fog-clouds {
    width: 50%;
    height: 100%;
    position: relative;
    flex-shrink: 0;
}

.fog-puff {
    position: absolute;
    border-radius: 50%;
    filter: blur(50px);
    will-change: transform;
    pointer-events: none;
}

/* Track 1 (High sky, wispy drifting clouds) */
.fog-clouds .puff-1 {
    top: -5%; left: 5%; width: 45vw; height: 35vh;
    background: radial-gradient(ellipse at center, var(--fog-color-1) 0%, transparent 70%);
}
.fog-clouds .puff-2 {
    top: 15%; left: 45%; width: 55vw; height: 40vh;
    background: radial-gradient(ellipse at center, var(--fog-color-2) 0%, transparent 70%);
}
.fog-clouds .puff-3 {
    top: 5%; left: 80%; width: 40vw; height: 30vh;
    background: radial-gradient(ellipse at center, var(--fog-color-1) 0%, transparent 70%);
}

/* Track 2 (Mid sky & upper Eiffel tower spire) */
.fog-clouds .puff-4 {
    top: 30%; left: -10%; width: 60vw; height: 45vh;
    background: radial-gradient(ellipse at center, var(--fog-color-2) 0%, transparent 70%);
}
.fog-clouds .puff-5 {
    top: 42%; left: 35%; width: 65vw; height: 50vh;
    background: radial-gradient(ellipse at center, var(--fog-color-1) 0%, transparent 70%);
}
.fog-clouds .puff-6 {
    top: 52%; left: 75%; width: 50vw; height: 40vh;
    background: radial-gradient(ellipse at center, var(--fog-color-2) 0%, transparent 70%);
}

[data-theme="dark"] .footer-logo-img {
    mix-blend-mode: normal;
}

.footer-container {
    display: flex;
    flex-direction: column;
    gap: 4vh; /* Reduced gap */
    flex-grow: 0;
    position: relative;
    z-index: 10;
}

.footer-content {
    display: grid;
    grid-template-columns: 1fr 2.2fr 1fr;
    gap: 2.5rem;
    align-items: flex-start;
}

.footer-cta {
    max-width: 500px;
    margin: 0 auto;
}

.footer-cta h2 {
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: 0.95;
    margin-bottom: 2rem;
    letter-spacing: -0.02em;
}

.footer-cta-btns {
    display: flex;
}

@media (min-width: 1025px) {
    .footer-cta {
        text-align: center;
    }
    .footer-cta-btns {
        justify-content: center;
    }
}

.footer-cta-btns .pill {
    padding: 0.8rem 2.2rem;
    font-size: 0.85rem;
}

.footer-cta .italic {
    color: var(--highlight);
}

.footer-social-icons {
    display: flex;
    gap: 1.5rem;
    margin-top: 2rem;
}

.footer-social-icons a {
    color: var(--charcoal);
    opacity: 0.7;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.footer-social-icons a:hover {
    opacity: 1;
    color: var(--highlight);
    transform: translateY(-2px);
}

.footer-social-icons svg {
    width: 22px;
    height: 22px;
}

.footer-label {
    display: block;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    opacity: 0.6;
    margin-bottom: 1.5rem;
    color: var(--charcoal);
}

.footer-nav {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-nav a, .footer-info a {
    color: var(--charcoal);
    text-decoration: none;
    font-size: 1.1rem;
    transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    opacity: 0.7;
    position: relative;
    display: inline-block;
}

.footer-nav a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--highlight);
    transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.footer-nav a:hover, .footer-info a:hover {
    opacity: 1;
    color: var(--highlight);
}

.footer-nav a:hover::after {
    width: 100%;
}

.footer-info a:hover {
    opacity: 1;
    color: var(--highlight);
}

.footer-info p, .footer-legal-text {
    font-size: 1rem;
    line-height: 1.5;
    opacity: 0.6;
}

.footer-info p {
    margin-top: 1rem;
}



.footer-bottom-logo {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
    overflow: hidden;
    line-height: 0;
    font-size: 0;
    background: transparent;
    z-index: 5;
}

/* Gradient Overlay on Logo Image */
.footer-bottom-logo::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, var(--footer-bg) 0%, transparent 50%);
    z-index: 2;
    pointer-events: none;
}

.footer-logo-img {
    width: 100%;
    max-width: none;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
    pointer-events: none;
    user-select: none;
    position: relative;
    z-index: 1;
    display: block;
    margin: 0;
    padding: 0;
    transform: scale(1.1); /* Increased overscale */
    transform-origin: bottom center;
    margin-bottom: -2px; /* Pull down slightly more */
    mix-blend-mode: multiply;
    transition: filter 0.3s ease;
}



/* Background Glow for Logo Removed */
.footer-bottom-logo::after {
    display: none;
}

@media (max-width: 1024px) {
    .section { padding: 20vw 0; }
    .work-card { min-height: 40vh; }

    .footer {
        height: auto;
        min-height: 160svh; /* Increased height to ensure Legal/Contact stay completely off the end screen */
        padding: 12vh 0 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
    }
    
    .footer-container {
        gap: 4rem;
        position: relative;
        z-index: 1;
        flex-grow: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        padding-bottom: 0;
    }
    
    .footer-content {
        display: flex;
        flex-direction: column;
        gap: 3.5rem;
        width: 100%;
        text-align: center;
        align-items: center;
        flex-grow: 1;
    }
    
    /* Reverse stacking: Legal first, Contact second, CTA third (at bottom) */
    .footer-legal-col { order: 1; margin-bottom: 1rem; width: 100%; }
    .footer-contact-col { order: 2; width: 100%; }
    .footer-cta { 
        order: 3; 
        margin-top: auto; /* Pushes CTA down to lock into the end screen */
        margin-bottom: 60vh; /* Moves CTA higher into the top blue sky portion of the end screen */
        z-index: 10;
        max-width: 600px;
        width: 100%;
    }

    .footer-cta-btns {
        justify-content: center; /* Ensures the CTA button is perfectly centered */
        width: 100%;
    }
    
    .footer-label {
        margin-bottom: 1rem;
    }
    
    .footer-social-icons {
        justify-content: center;
        margin-top: 1.5rem;
    }
    
    .footer-cta h2 {
        font-size: clamp(2.8rem, 8vw, 4.5rem);
        margin-bottom: 2rem;
    }
    
    .footer-bottom-logo {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 55vh; /* Prominent Paris skyline at the bottom */
        margin: 0;
        padding: 0;
        z-index: 0;
        pointer-events: none;
        overflow: hidden;
    }

    .footer-logo-img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 50% bottom;
        transform: scale(1.0);
    }

    .footer-bottom-logo::before {
        background: linear-gradient(to bottom, var(--footer-bg) 0%, transparent 40%);
    }
}

/* Responsive Utilities */
@media (max-width: 1024px) {
    .hero {
        padding: 95px 0 145px 0; /* Slightly reduced to make room for larger image */
        text-align: center;
        min-height: 100dvh;
    }

    .hero-main {
        flex-direction: column;
        gap: 1.5rem; /* Reduced gap to bring items closer */
        padding: 0 7vw;
    }

    .hero-left {
        align-items: center;
        text-align: center;
        order: 1;
    }

    .hero-right {
        order: 2;
        width: 100%;
        justify-content: center;
    }

    .hero-image-wrapper {
        width: 92%;
        max-width: 100%;
        border-radius: 20px;
        transform: rotate(0);
        aspect-ratio: 18 / 9; /* Slightly taller and wider */
    }

    .hero-btns {
        justify-content: center;
        width: 100%;
    }

    .hero h1 {
        font-size: clamp(1.90rem, 7.6vw, 2.6rem);
        line-height: 1.15;
        margin-bottom: 0.9rem;
    }
    
    .hero p {
        font-size: clamp(0.85rem, 3.2vw, 0.95rem);
        margin-bottom: 1.5rem;
    }

    .hero-btns .pill.pill-ripple {
        font-size: 0.75rem !important;
        padding: 0.45rem 1.2rem !important;
        min-width: 140px !important;
    }

    .hero-growth {
        bottom: 1.5vh; /* Reduced bottom offset */
        padding: 0 5vw;
    }
    
    .hero-bg-container {
        filter: none; /* Disable expensive SVG filter on small screens */
    }

    .hero-bg-layer {
        filter: blur(50px) saturate(1.5); /* Lighter blur for performance */
        animation-duration: 60s; /* Slower for less repaint stress */
    }
    
    .brand-logo {
        height: 28px;
        width: 90px;
    }

    .marquee-track {
        gap: 2.5rem;
    }
    
    .hero-collab {
        top: 5px; 
        transform: translateY(-50%);
        left: 5vw;
    }
    
    .growth-indicator {
        top: 72px;
        padding-right: 0; /* Remove redundant padding on mobile/tablet */
    }

    .growth-label {
        font-size: 0.5rem;
        letter-spacing: 0.15em;
        margin-top: 6px;
    }


    .br-mobile {
        display: block; /* Force line break on mobile/tablet */
    }
}

/* Animation Classes */
.reveal-text {
    /* clip-path removed to prevent cropping */
    position: relative;
}
.line-wrapper {
    overflow: hidden;
}

/* Coaching Page Specific Styles */
.coaching-hero {
    min-height: 100vh;
    min-height: 100dvh;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    width: 100%;
    padding: 120px 5vw;
}

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

.bg-butter { background-color: var(--butter); }
.bg-charcoal { background-color: var(--charcoal); }
.bg-blue-light { background-color: color-mix(in srgb, var(--blue) 20%, transparent); }

.inclusions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.inclusion-card {
    padding: 2.5rem;
    border: 1px solid color-mix(in srgb, var(--charcoal) 10%, transparent);
    border-radius: 2rem;
    transition: all 0.5s cubic-bezier(0.25, 1, 0.3, 1);
}

.inclusion-card:hover {
    background: var(--charcoal);
    color: var(--butter);
    transform: translateY(-10px);
}

.details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
}

.detail-item {
    padding: 2rem;
    background: var(--butter);
    border: 1px solid color-mix(in srgb, var(--charcoal) 5%, transparent);
    border-radius: 2rem;
}

.detail-item span {
    display: block;
    font-size: 2.5rem;
    font-family: var(--font-serif);
    margin-bottom: 1rem;
    color: var(--highlight);
}

@media (max-width: 768px) {
    .inclusions-grid {
        grid-template-columns: 1fr;
    }
    
    .coaching-hero h1 {
        font-size: 3.5rem;
    }
}

/* ─── Growth Stories Section ───────────────────────────────────────────── */
.growth-section {
    background-color: var(--butter);
    padding: 100px 0;
    overflow: hidden;
}

.growth-header {
    text-align: center;
    margin-bottom: 60px;
}

.growth-subtitle {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    opacity: 0.7;
    max-width: 600px;
    margin: 1.5rem auto 0;
}

.growth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 40px;
}

.growth-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid color-mix(in srgb, var(--charcoal) 10%, transparent);
    border-radius: 24px;
    padding: 24px;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    position: relative;
    overflow: hidden;
    background: color-mix(in srgb, var(--butter) 95%, var(--charcoal));
}

[data-theme="dark"] .growth-card {
    background: rgba(255, 255, 255, 0.02);
}

.growth-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.05);
}

.growth-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.growth-profile {
    display: flex;
    align-items: center;
    gap: 12px;
}

.growth-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--charcoal) 10%, transparent);
}

.growth-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.growth-user-info {
    display: flex;
    flex-direction: column;
}

.growth-name {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--charcoal);
}

.growth-handle {
    font-size: 0.8rem;
    opacity: 0.6;
}

.growth-platform {
    opacity: 0.5;
}

.growth-chart-area {
    background: color-mix(in srgb, var(--butter) 90%, var(--charcoal));
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 24px;
    position: relative;
}

.chart-metrics {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 15px;
}

.chart-metric {
    display: flex;
    flex-direction: column;
}

.metric-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.5;
    margin-bottom: 4px;
}

.metric-value {
    font-size: 1.8rem;
    font-weight: 600;
    font-family: var(--font-sans);
    color: var(--charcoal);
}

.chart-percentage {
    background: #e7f9ed;
    color: #2e7d32;
    padding: 4px 10px;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
}

[data-theme="dark"] .chart-percentage {
    background: rgba(46, 125, 50, 0.2);
    color: #81c784;
}

/* Analytics Modal Styles */
#analytics-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(40px);
    -webkit-backdrop-filter: blur(40px);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

[data-theme="dark"] #analytics-modal {
    background: rgba(0, 0, 0, 0.6);
}

#analytics-modal.active {
    opacity: 1;
    visibility: visible;
}

.modal-close-btn {
    position: absolute;
    top: 35px;
    right: 35px;
    width: 50px;
    height: 50px;
    background: var(--butter);
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 100;
    transition: all 0.3s ease;
    color: var(--charcoal);
}

.modal-close-btn:hover {
    transform: rotate(90deg) scale(1.1);
    background: var(--highlight);
    color: white;
}

#analytics-modal .dashboard-container {
    max-width: 1100px;
    width: 92%;
    height: auto;
    max-height: 95vh;
    transform: translateY(40px);
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

#analytics-modal.active .dashboard-container {
    transform: translateY(0);
}

/* Analytics Modal Background Effects */
.modal-glow {
    position: absolute;
    width: 60%;
    height: 120%;
    background: radial-gradient(circle at center, rgba(var(--highlight-rgb), 0.05), transparent 70%);
    filter: blur(100px);
    z-index: -1;
    pointer-events: none;
}

/* Project Specific Themes */
/* Project Specific Themes - Subtle atmospheric glow only */
.growth-project[data-project="les-amis"] {
    background: radial-gradient(circle at 10% 10%, rgba(var(--highlight-rgb), 0.02), transparent);
}

.growth-project[data-project="brasserie"] {
    background: radial-gradient(circle at 90% 10%, rgba(var(--highlight-rgb), 0.02), transparent);
}

.growth-project[data-project="le-walk"] {
    background: radial-gradient(circle at 50% 90%, rgba(var(--highlight-rgb), 0.02), transparent);
}

.project-info-side {
    max-width: 500px;
}

.project-info-side h2 {
    font-size: clamp(3.5rem, 8vw, 6rem);
    line-height: 0.9;
    margin-bottom: 2rem;
    font-family: var(--font-serif);
    color: var(--highlight);
}

.project-info-side p {
    font-size: 1.2rem;
    opacity: 0.7;
    max-width: 400px;
    line-height: 1.5;
}

.dashboard-container {
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    border-radius: 40px;
    padding: 40px 50px;
    box-shadow: 0 40px 100px rgba(0,0,0,0.05);
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    flex-direction: column;
    width: 100%;
    position: relative;
}

.dashboard-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(rgba(0,0,0,0.03) 1px, transparent 1px);
    background-size: 20px 20px;
    pointer-events: none;
    opacity: 0.5;
}

[data-theme="dark"] .dashboard-container {
    background: rgba(25, 25, 25, 0.6);
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: 0 40px 100px rgba(0,0,0,0.3);
}

.dashboard-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
    padding-bottom: 20px;
    padding-right: 60px;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    flex-shrink: 0;
}

[data-theme="dark"] .dashboard-header {
    border-bottom-color: rgba(255, 255, 255, 0.05);
}

#modal-project-title {
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    margin-bottom: 0.5rem;
    font-family: var(--font-serif);
    color: var(--highlight);
    line-height: 1.1;
}

.dashboard-date {
    font-size: 0.9rem;
    opacity: 0.5;
    letter-spacing: 0.05em;
}

.dashboard-content-main {
    display: grid;
    grid-template-columns: 0.4fr 0.6fr;
    gap: 40px;
    flex: 1;
    min-height: 0;
}

.metrics-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: flex-start;
}

.metric-card {
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 20px;
    padding: 20px;
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.chart-column {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

[data-theme="dark"] .metric-card {
    background: rgba(255, 255, 255, 0.02);
    border-color: rgba(255, 255, 255, 0.05);
}

.metric-card.active {
    border-color: var(--highlight);
    background: rgba(236, 86, 22, 0.02);
}

.metric-card:hover {
    border-color: var(--highlight);
    transform: translateY(-4px);
    box-shadow: none;
}

.metric-label {
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.6;
    margin-bottom: 8px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.metric-value {
    font-size: 1.4rem;
    font-weight: 700;
    margin-bottom: 6px;
    display: block;
}

.metric-growth {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--highlight);
}

.growth-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: var(--highlight);
    color: #ffffff;
    border-radius: 50%;
    font-size: 11px;
    transition: transform 0.3s ease;
}

.metric-card:hover .growth-icon {
    transform: translateY(-2px);
}

.growth-percent {
    opacity: 0.5;
    font-weight: 400;
}

.dashboard-chart-area {
    width: calc(100% - 50px);
    height: 100%;
    position: relative;
    padding-top: 10px;
}

.chart-bg-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    pointer-events: none;
    padding: 20px 0;
}

.chart-bg-line {
    width: 100%;
    height: 1px;
    background: rgba(0,0,0,0.05);
    position: relative;
}

[data-theme="dark"] .chart-bg-line {
    background: rgba(255,255,255,0.05);
}

.chart-bg-line::after {
    content: attr(data-label);
    position: absolute;
    right: -40px;
    top: -8px;
    font-size: 0.75rem;
    opacity: 0.4;
}

.detailed-svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.chart-footer-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    font-size: 0.8rem;
    opacity: 0.4;
}

@media (max-width: 1024px) {
    .growth-project {
        grid-template-columns: 1fr;
        padding-top: 150px;
        height: auto;
    }
    
    .project-info-side {
        max-width: 100%;
        text-align: center;
        margin-bottom: 3rem;
    }
    
    .project-info-side p {
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    /* Works Section Mobile */
    .gallery-wrap {
        margin: 5vh auto 10vh;
    }

    .gallery--grid {
        gap: 1.5vw;
    }

    .gallery--grid .gallery__item {
        height: auto;
        aspect-ratio: 9 / 16;
        width: 100%;
    }

    .gallery-col {
        gap: 1.5vw;
        width: 32vw;
    }

    .gallery-wrap {
        height: 120vh; /* Taller on mobile to show the long vertical grid */
    }

    .caption-redesigned {
        padding: 10vh 7vw 20vh 7vw; /* Restored professional bottom gap on mobile */
        height: 120vh; /* Match gallery-wrap height to eliminate gaps */
        width: 100vw;
        margin-left: -50vw;
        background: linear-gradient(to bottom, transparent 0%, transparent 20%, var(--butter) 55%, var(--butter) 100%);
    }
    
    .gallery--switch.gallery--grid .caption-redesigned {
        margin-top: -60vh; /* Centers the 120vh container */
    }
    
    .work-title-new {
        font-size: 2.5rem;
    }
    
    .work-results-new {
        gap: 2vw;
    }

    /* Growth Section Mobile */
    .growth-project {
        padding: 100px 5vw;
    }
    
    /* Growth Section Mobile */
    .dashboard-container {
        padding: 30px 20px 40px 20px; /* Added bottom padding */
        border-radius: 30px;
        max-height: 98vh;
    }

    .dashboard-content-main {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr; /* Changed to auto for metrics */
        gap: 20px;
    }

    .metrics-column {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .dashboard-header {
        margin-bottom: 15px;
        padding-bottom: 10px;
        padding-right: 45px;
        justify-content: flex-start; /* Ensure left alignment */
    }

    .dashboard-title-group {
        text-align: left;
        width: 100%;
    }

    .dashboard-title-group h2 {
        font-size: 1.4rem !important;
        margin-left: 0 !important;
        text-align: left;
    }
    
    .metric-card {
        padding: 15px;
        border-radius: 15px;
    }

    .metric-value {
        font-size: 1.1rem;
    }

    .metric-label {
        font-size: 0.65rem;
        margin-bottom: 4px;
    }

    .metric-growth {
        font-size: 0.75rem;
    }

    .dashboard-chart-area {
        width: 100%;
        height: 100%;
    }

    .chart-bg-line::after {
        right: 0;
        top: -15px;
        background: var(--butter);
        padding: 2px 5px;
        border-radius: 4px;
        z-index: 2;
    }

    .modal-close-btn {
        top: 25px;
        right: 20px;
        width: 38px;
        height: 38px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   LOADING SCREEN STYLES
   ═══════════════════════════════════════════════════════════════ */
html.no-scroll, body.no-scroll {
    overflow: hidden !important;
    height: 100% !important;
}

.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999999; /* Absolute top layers */
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    will-change: background-color;
    background-color: #731824; /* Start with Brand Red */
}

.loading-content {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    padding: 2rem;
}

.loading-logo {
    font-family: var(--font-sans);
    font-size: clamp(3.5rem, 8vw, 6.5rem);
    font-weight: 600;
    letter-spacing: -0.03em;
    margin: 0;
    line-height: 1;
    color: #FFFDF9; /* Start with Butter */
    will-change: transform, color;
}

.loading-tagline {
    font-family: var(--font-sans);
    font-size: clamp(0.75rem, 1.8vw, 1rem);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin: 0;
    opacity: 0.85;
    line-height: 1.2;
    color: #FFFDF9; /* Start with Butter */
    will-change: color;
}
