        /* Base Token Mappings */
        :root {
            --bg-color: #ececec;
            --text-color: #1c1917;
            --accent-glow: rgba(0, 0, 0, 0.05);
        }

        body { 
            font-family: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'San Francisco', 'Helvetica Neue', Helvetica, Arial, sans-serif;
            background-color: var(--bg-color); 
            color: var(--text-color);
            overflow-x: hidden;
            /* Disable native overscroll on macs to prevent jerky video scrubbing edge-cases */
            overscroll-behavior: none; 
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            text-transform: lowercase; /* Global lowercase aesthetic */
        }

        h1, h2, h3, h4, h5, h6, p, a, span, button {
            text-transform: lowercase;
        }

        /* 
         Noise Texture generation logic 
         Uses an SVG filter mapped via DataURI to supply a 4% opacity organic depth field
         preventing color banding and creating a premium "hardware" canvas feel.
        */
        .noise-layer {
            position: fixed;
            inset: 0;
            width: 100vw;
            height: 100vh;
            pointer-events: none;
            z-index: 9999;
            opacity: 0.04;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
        }

        /* Static Hero layout */
        .hero-section {
            height: 100vh;
            width: 100%;
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: var(--bg-color);
        }

        /* Cinematic Spotlight Background */
        .hero-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.4) 0%, transparent 70%);
            pointer-events: none;
            z-index: 5;
            opacity: 0;
            transition: opacity 1.5s ease;
        }

        .hero-section.mouse-active::before {
            opacity: 1;
        }



        /* Premium Rotating Border Glow */
        .btn-glow {
            position: relative;
            background-color: transparent;
            color: #ffffff;
            border-radius: 9999px;
            overflow: hidden;
            isolation: isolate; 
            transition: transform 0.3s ease;
        }

        /* ========================================================
           Methodology Section (Horizontal Journey)
           ======================================================== */
        .methodology-container {
            width: 100%;
            background: #fafaf9;
            position: relative;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            padding-top: 2rem; /* Minimum gap from title */
        }

        .methodology-stack {
            position: relative;
            width: 100%;
            height: 75vh;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .method-card-h {
            position: absolute;
            width: 85vw;
            max-width: 900px;
            opacity: 0;
            visibility: hidden;
            will-change: transform, opacity, filter;
        }

        .h-progress-bar {
            position: absolute;
            bottom: 40px;
            left: 10vw;
            width: 80vw;
            height: 2px;
            background: rgba(28, 25, 23, 0.05);
            z-index: 10;
        }

        .h-progress-fill {
            height: 100%;
            width: 0%;
            background: #1c1917;
            transition: width 0.1s linear;
        }

        .method-card {
            background: rgba(255, 255, 255, 0.4);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.4);
            border-radius: 2rem;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            position: relative;
            overflow: hidden;
        }

        .method-card:hover {
            transform: translateY(-8px);
            background: rgba(255, 255, 255, 0.7);
            border-color: rgba(28, 25, 23, 0.1);
            box-shadow: 0 40px 80px -20px rgba(0,0,0,0.08);
        }

        .card-fill-bar {
            position: absolute;
            bottom: 0;
            left: 0;
            height: 4px;
            width: 0%;
            background: #1c1917;
            transition: width 0.7s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .method-card:hover .card-fill-bar {
            width: 100%;
        }

        .step-number-h {
            font-size: 8rem;
            line-height: 1;
            font-weight: 800;
            -webkit-text-stroke: 1px rgba(28, 25, 23, 0.08);
            color: transparent;
            margin-bottom: -2rem;
            margin-left: -1rem;
        }

        .btn-glow:hover {
            transform: scale(1.02);
            box-shadow: 0 10px 30px -10px rgba(0,0,0,0.5);
        }

        .btn-glow::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            width: 250%; /* Large enough to cover wide pill buttons */
            padding-bottom: 250%; 
            background: conic-gradient(from 0deg at 50% 50%, transparent 70%, rgba(255, 255, 255, 0.7) 100%);
            transform: translate(-50%, -50%);
            animation: spinBorder 3s linear infinite;
            z-index: -2;
        }

        .btn-glow::after {
            content: '';
            position: absolute;
            inset: 1.5px; /* Border thickness */
            background: var(--text-color); /* Center block to hide most of the spin */
            border-radius: inherit;
            z-index: -1;
        }

        @keyframes spinBorder {
            0% { transform: translate(-50%, -50%) rotate(0deg); }
            100% { transform: translate(-50%, -50%) rotate(360deg); }
        }

        /* ========================================================
           DS Btn Beam — Spinning conic border activates on hover
           ======================================================== */
        @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

        .btn-beam {
            position: relative;
            z-index: 10;
            overflow: hidden;
            border-radius: 9999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .btn-beam::before {
            content: '';
            position: absolute;
            inset: -3px;
            z-index: -1;
            background: conic-gradient(
                from 90deg at 50% 50%,
                transparent 0deg,
                transparent 60deg,
                rgba(255,255,255,0.9) 90deg,
                #ffffff 100deg,
                rgba(255,255,255,0.9) 110deg,
                transparent 150deg,
                transparent 360deg
            );
            animation: spin 2.5s linear infinite;
            border-radius: inherit;
            opacity: 0;
            transition: opacity 0.4s ease;
            filter: blur(1px);
        }
        .btn-beam:hover::before { opacity: 1; }
        .btn-beam:hover {
            transform: scale(1.02);
            box-shadow: 0 0 24px rgba(255,255,255,0.25), 0 12px 32px -8px rgba(0,0,0,0.45);
        }
        .btn-beam-content {
            background-color: #1c1917;
            color: white;
            position: relative;
            z-index: 10;
            width: 100%;
            height: 100%;
            border-radius: inherit;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 1rem 2.5rem;
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            border: 1px solid rgba(255,255,255,0.08);
            transition: background-color 0.3s ease;
        }

        /* Shimmer sweep across btn-beam on hover */
        .btn-beam-shimmer {
            position: absolute;
            inset: 0;
            z-index: 11;
            background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
            background-size: 200% 100%;
            background-position: 200% 0;
            transition: background-position 0s;
            pointer-events: none;
            border-radius: inherit;
        }
        .btn-beam:hover .btn-beam-shimmer {
            animation: shimmerSweep 0.8s ease forwards;
        }
        @keyframes shimmerSweep {
            from { background-position: 200% 0; }
            to   { background-position: -200% 0; }
        }

        /* Scroll Indicator — DS2.0 */
        .scroll-indicator {
            position: absolute;
            bottom: 2rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.5rem;
            z-index: 31;
            opacity: 0;
            pointer-events: none;
        }

        .scroll-indicator-text {
            font-size: 9px;
            font-family: 'JetBrains Mono', monospace;
            text-transform: uppercase;
            letter-spacing: 0.2em;
            color: rgba(28, 25, 23, 0.35);
        }

        .scroll-indicator-line {
            width: 1px;
            height: 2rem;
            background: rgba(28, 25, 23, 0.15);
            overflow: hidden;
            position: relative;
        }

        .scroll-indicator-line::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: #1c1917;
            animation: scrollLineMove 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;
        }

        @keyframes scrollLineMove {
            0% { transform: translateY(-100%); }
            100% { transform: translateY(100%); }
        }

        /* Hero bottom gradient fade (hero → about transition) */
        .hero-bottom-gradient {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 6rem;
            background: linear-gradient(to top, #fafaf9, transparent);
            pointer-events: none;
            z-index: 10;
            opacity: 0;
        }

        /* Secondary button arrow icon micro-animation */
        .btn-secondary .btn-arrow {
            display: inline-flex;
            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .btn-secondary:hover .btn-arrow {
            transform: translateX(4px);
        }

        /* Essential Layout Positioning */
        .video-overlay {
            position: absolute;
            inset: 0;
            z-index: 20;
            pointer-events: none;
        }
        
        .content-layer {
            position: relative;
            z-index: 30; 
            height: 100vh; /* Strictly matching viewport height for perfect centering */
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            width: 100%;
        }

        /* Component: Secondary Outline Button */
        .btn-secondary {
            border: 1px solid rgba(28, 25, 23, 0.2);
            color: var(--text-color);
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .btn-secondary:hover {
            transform: scale(1.03);
            border-color: rgba(28, 25, 23, 0.8);
            background-color: rgba(28, 25, 23, 0.05);
        }

        /* Navbar dynamic blur */
        .nav-scrolled {
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            background-color: rgba(234, 234, 229, 0.8);
            border-bottom: 1px solid rgba(28, 25, 23, 0.1);
        }

        /* Link Underlines FX */
        .hover-underline {
            position: relative;
            padding-bottom: 2px;
        }
        .hover-underline::after {
            content: '';
            position: absolute;
            width: 0;
            height: 1px;
            bottom: 0;
            left: 0;
            background-color: var(--text-color);
            transition: width 0.3s ease;
        }
        .hover-underline:hover::after {
            width: 100%;
        }

        /* Reveal Animations — transitions triggered by .is-visible class added via IntersectionObserver */
        .reveal-up-about, .specialties-reveal, .methodology-container h2 { 
            opacity: 0; 
            transform: translateY(36px); 
            filter: blur(12px);
            transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1), filter 1s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal-zoom-about { 
            opacity: 0; 
            transform: scale(1.04); 
            filter: blur(12px);
            transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), filter 1.2s cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* Generic reveal classes used across sections (Cases, etc.) */
        .reveal-up {
            opacity: 0;
            transform: translateY(36px);
            filter: blur(12px);
            transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1), filter 1s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal-zoom {
            opacity: 0;
            transform: scale(1.04);
            filter: blur(12px);
            transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), filter 1.2s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal-up-about.is-visible,
        .reveal-zoom-about.is-visible,
        .reveal-up.is-visible,
        .reveal-zoom.is-visible,
        .specialties-reveal.is-visible,
        .methodology-container h2.is-visible { 
            opacity: 1; 
            transform: translateY(0) scale(1); 
            filter: blur(0px);
        }

        /* Stagger delays for child elements */
        .reveal-up-about:nth-child(1) { transition-delay: 0s; }
        .reveal-up-about:nth-child(2) { transition-delay: 0.1s; }
        .reveal-up-about:nth-child(3) { transition-delay: 0.2s; }
        .reveal-up-about:nth-child(4) { transition-delay: 0.3s; }
        .specialties-reveal:nth-child(1) { transition-delay: 0s; }
        .specialties-reveal:nth-child(2) { transition-delay: 0.08s; }
        .specialties-reveal:nth-child(3) { transition-delay: 0.16s; }
        .specialties-reveal:nth-child(4) { transition-delay: 0.24s; }
        .specialties-reveal:nth-child(5) { transition-delay: 0.32s; }
        .specialties-reveal:nth-child(6) { transition-delay: 0.40s; }
        .specialties-reveal:nth-child(7) { transition-delay: 0.48s; }
        .specialties-reveal:nth-child(8) { transition-delay: 0.56s; }

        /* Fallback State */
        .video-fallback-state {
            background-color: #d6d3d1; /* stone-300 fallback */
            background-image: linear-gradient(135deg, #EAEAE5 0%, #d6d3d1 100%);
        }

        /* GSAP Initial Hiding — use opacity only, never visibility:hidden to prevent blank page on JS error */
        .gsap-reveal { opacity: 0; }

        /* Floating status card: starts hidden for GSAP reveal */
        #floating-status-card {
            opacity: 0;
            transform: translateY(20px) translateX(10px);
            filter: blur(8px);
        }

        /* ========================================================
           Specialties / Services — DS2 Light Theme
           ======================================================== */
        .specialties-section {
            background-color: #EAEAE5;
            width: 100%;
            overflow: hidden;
            position: relative;
        }

        /* Service grid cards — left side */
        .svc-card {
            position: relative;
            cursor: pointer;
            padding: 24px;
            border: 1px solid #e7e5e4;
            border-radius: 12px;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            min-height: 180px;
            background: rgba(255, 255, 255, 0.6);
            backdrop-filter: blur(8px);
        }

        .svc-card:hover,
        .svc-card.active {
            transform: translateY(-4px);
            background: #ffffff;
            border-color: #d6d3d1;
            box-shadow: 0 16px 40px -10px rgba(0,0,0,0.08);
        }

        /* Icon wrapper */
        .svc-card-icon {
            width: 44px;
            height: 44px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 22px;
            transition: all 0.4s ease;
            background: #f5f5f4;
            color: #78716c;
            border: 1px solid #e7e5e4;
        }

        .svc-card:hover .svc-card-icon,
        .svc-card.active .svc-card-icon {
            transform: scale(1.05);
            background: #1c1917;
            color: white;
            border-color: #1c1917;
            box-shadow: 0 4px 12px rgba(28,25,23,0.15);
        }

        .svc-card-number {
            font-family: 'JetBrains Mono', monospace;
            font-size: 11px;
            letter-spacing: 0.1em;
            opacity: 0.6;
            margin-left: auto;
            color: #78716c;
        }

        .svc-card-title {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 600;
            font-size: 1.15rem;
            margin-top: auto;
            color: #1c1917;
            transform: translateY(4px);
            opacity: 0.9;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .svc-card:hover .svc-card-title,
        .svc-card.active .svc-card-title {
            transform: translateY(0);
            opacity: 1;
        }

        /* Line Progress at Bottom */
        .svc-card .svc-card-bar {
            position: absolute;
            bottom: 0px;
            left: 0px;
            height: 3px;
            width: 0%;
            background: #1c1917;
            transition: width 0.7s cubic-bezier(0.22, 1, 0.36, 1);
        }
        
        .svc-card:hover .svc-card-bar,
        .svc-card.active .svc-card-bar {
            width: 100%;
        }

        /* Detail panel — cinematic layout */
        .svc-detail-panel {
            position: relative;
            border: 1px solid #e7e5e4;
            background: #ffffff;
            border-radius: 16px;
            box-shadow: 0 20px 50px -10px rgba(0,0,0,0.06);
            transition: box-shadow 0.5s ease;
            height: 100%;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        .svc-detail-panel #svc-detail-content {
            display: flex;
            flex-direction: column;
            height: 100%;
        }

        .svc-detail-desc {
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* Detail image spanning edge-to-edge on top */
        .svc-detail-image {
            position: relative;
            width: 100%;
            height: 240px;
            overflow: hidden;
            flex-shrink: 0;
            background: #1c1917;
        }

        .svc-detail-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: grayscale(100%) opacity(0.85);
            transition: all 1.2s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .svc-detail-panel:hover .svc-detail-image img {
            filter: grayscale(30%) opacity(1);
            transform: scale(1.05);
        }

        .svc-image-gradient {
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 40%, rgba(255,255,255,1) 100%);
            pointer-events: none;
        }

        /* Tags / chips — DS2 light */
        .svc-chip {
            display: inline-flex;
            align-items: center;
            padding: 5px 12px;
            border: 1px solid #d6d3d1;
            border-radius: 9999px;
            font-size: 10px;
            font-family: 'JetBrains Mono', monospace;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: #78716c;
            transition: all 0.3s ease;
            background: rgba(255,255,255,0.6);
        }

        .svc-chip:hover {
            border-color: #1c1917;
            color: #1c1917;
            background: white;
        }

        /* Autoplay progress — DS2 */
        .svc-progress-track {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 2px;
            background: #e7e5e4;
            z-index: 20;
        }

        .svc-progress-fill {
            height: 100%;
            width: 0%;
            background: #1c1917;
            transition: width 0.05s linear;
        }

        /* Stat card in detail — DS2 */
        .svc-stat-card {
            padding: 14px 18px;
            background: white;
            border: 1px solid #e7e5e4;
            border-radius: 14px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.04);
            transition: all 0.3s ease;
        }

        .svc-stat-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 24px rgba(0,0,0,0.08);
        }

        /* =========================================
           CASES DE SUCESSO — Editorial / Magazine
           ========================================= */

        /* Featured card — large left column */
        .case-featured {
            position: relative;
            border-radius: 16px;
            overflow: hidden;
            background: #292524;
            border: 1px solid #44403c;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            height: 100%;
            display: flex;
            flex-direction: column;
        }

        .case-featured:hover {
            border-color: #57534e;
            transform: translateY(-4px);
            box-shadow: 0 24px 60px -12px rgba(0,0,0,0.5);
        }

        .case-featured .case-img {
            width: 100%;
            height: 360px;
            overflow: hidden;
            position: relative;
            flex-shrink: 0;
        }

        .case-featured .case-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: grayscale(50%) brightness(0.9);
            transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .case-featured:hover .case-img img {
            filter: grayscale(0%) brightness(1);
            transform: scale(1.05);
        }

        .case-featured .case-img-gradient {
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 30%, rgba(41,37,36,0.95) 100%);
            pointer-events: none;
            z-index: 2;
        }

        .case-featured .case-body {
            padding: 28px 28px 32px;
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        /* Small horizontal card — right column */
        .case-small {
            display: flex;
            gap: 16px;
            padding: 16px;
            border-radius: 14px;
            background: #292524;
            border: 1px solid #44403c;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            align-items: center;
            cursor: pointer;
            width: 100%;
        }

        .case-small:hover {
            border-color: #57534e;
            transform: translateX(4px);
            background: rgba(53, 49, 48, 0.9);
            box-shadow: 0 8px 24px -6px rgba(0,0,0,0.3);
        }

        .case-small .case-thumb {
            width: 100px;
            height: 70px;
            border-radius: 8px;
            overflow: hidden;
            flex-shrink: 0;
            background: #1c1917;
            border: 1px solid #44403c;
        }

        .case-small .case-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: grayscale(70%) brightness(0.8);
            transition: all 0.5s ease;
        }
        
        .case-small:hover .case-thumb img {
            filter: grayscale(0%) brightness(1);
            transform: scale(1.05);
        }

        .case-small h3 {
            color: #a8a29e;
            transition: color 0.3s;
        }
        .case-small:hover h3 {
            color: #ffffff;
        }

        /* =========================================
           FAQ ACCORDION (2-COLUMN PREMIUM)
           ========================================= */
        .text-outline-dark {
            -webkit-text-stroke: 1.5px #1c1917;
            color: transparent;
        }

        .faq-item {
            border-bottom: 1px solid #e7e5e4;
            overflow: hidden;
            transition: background 0.4s ease;
        }

        .faq-item:hover {
            background: #fafaf9; /* Subtle highlight on hover */
        }

        .faq-question {
            width: 100%;
            text-align: left;
            padding: 32px 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: transparent;
            cursor: pointer;
            transition: padding 0.5s cubic-bezier(0.16, 1, 0.3, 1);
        }
        
        .faq-question h3 {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 500;
            font-size: 1.35rem;
            color: #57534e;
            transition: color 0.4s ease;
            max-width: 85%;
            line-height: 1.3;
        }

        /* Hover slide effect */
        .faq-item:hover .faq-question, .faq-item.active .faq-question {
            padding-left: 16px;
            padding-right: 16px;
        }
        .faq-item:hover .faq-question h3, .faq-item.active .faq-question h3 {
            color: #1c1917;
        }

        .faq-icon {
            width: 44px;
            height: 44px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            background: transparent;
            border: 1px solid #d6d3d1;
            color: #78716c;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            flex-shrink: 0;
        }

        .faq-item:hover .faq-icon, .faq-item.active .faq-icon {
            background: #1c1917;
            border-color: #1c1917;
            color: #ffffff;
        }

        .faq-answer-wrapper {
            will-change: height, opacity;
        }

        .faq-answer {
            padding: 0 16px 36px 16px;
            color: #57534e;
            line-height: 1.8;
            font-size: 1.05rem;
            font-weight: 300;
            max-width: 95%;
        }

        /* Medium card — bottom row */
        .case-medium {
            border-radius: 14px;
            overflow: hidden;
            background: #292524;
            border: 1px solid #44403c;
            transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
            display: flex;
            flex-direction: column;
            cursor: default;
        }

        .case-medium:hover {
            border-color: #57534e;
            transform: translateY(-6px);
            box-shadow: 0 20px 50px -10px rgba(0,0,0,0.45);
        }

        .case-medium .case-img {
            width: 100%;
            height: 200px;
            overflow: hidden;
            position: relative;
        }

        .case-medium .case-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: grayscale(60%) brightness(0.85);
            transition: all 0.6s ease;
        }

        .case-medium:hover .case-img img {
            filter: grayscale(0%) brightness(1);
            transform: scale(1.05);
        }

        .case-medium .case-body {
            padding: 22px 24px 26px;
            flex: 1;
            display: flex;
            flex-direction: column;
        }

        /* Category tag */
        .case-tag {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 10px;
            font-family: 'JetBrains Mono', monospace;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            color: #a8a29e;
            margin-bottom: 10px;
        }

        .case-tag-dot {
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: #78716c;
            flex-shrink: 0;
        }

        /* Stat badge */
        .case-stat-inline {
            display: inline-flex;
            padding: 5px 12px;
            border-radius: 8px;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,255,255,0.08);
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 700;
            color: white;
            font-size: 14px;
            transition: all 0.3s ease;
        }

        .case-featured:hover .case-stat-inline,
        .case-small:hover .case-stat-inline,
        .case-medium:hover .case-stat-inline {
            border-color: rgba(255,255,255,0.2);
            background: rgba(255,255,255,0.08);
        }

        /* Read CTA arrow */
        .case-read-more {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            font-family: 'JetBrains Mono', monospace;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: #a8a29e;
            transition: all 0.3s ease;
            margin-top: auto;
        }

        .case-read-more:hover {
            color: white;
        }

        .case-read-more .arrow {
            transition: transform 0.3s ease;
        }

        .case-featured:hover .case-read-more .arrow {
            transform: translateX(4px);
        }

        /* Case stack container — flex column with gap */
        .case-stack-wrapper {
            position: relative;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            gap: 16px;
        }

        /* Progress dots for case carousel */
        .case-dots {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding-top: 16px;
        }

        .case-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #44403c;
            border: 1px solid #57534e;
            cursor: pointer;
            transition: all 0.4s ease;
        }

        .case-dot.active {
            background: #a8a29e;
            border-color: #a8a29e;
            transform: scale(1.3);
        }

        .case-dot:hover:not(.active) {
            background: #57534e;
        }

        /* Progress bar under dots */
        .case-progress-track {
            width: 60px;
            height: 2px;
            background: #44403c;
            border-radius: 2px;
            margin: 10px auto 0;
            overflow: hidden;
        }

        .case-progress-fill {
            height: 100%;
            width: 0%;
            background: #a8a29e;
            border-radius: 2px;
            transition: width 0.05s linear;
        }



        /* Watermark text — DS2 */
        .svc-watermark {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-family: 'Space Grotesk', sans-serif;
            font-size: clamp(8rem, 18vw, 18rem);
            font-weight: 700;
            color: transparent;
            -webkit-text-stroke: 1px rgba(28, 25, 23, 0.03);
            line-height: 1;
            pointer-events: none;
            user-select: none;
            white-space: nowrap;
            letter-spacing: -0.05em;
        }

        /* HEADER THEMES (Scroll Driven) */
        #main-nav {
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }

        /* Dark Theme - Activated over #cases and #cta */
        #main-nav.is-dark {
            background: transparent !important;
            backdrop-filter: none !important;
            border-bottom-color: transparent;
        }
        
        .nav-logo {
            display: block !important;
            opacity: 1 !important;
            visibility: visible !important;
            z-index: 101;
            transition: filter 0.5s ease, opacity 0.5s ease;
        }

        #main-nav.is-dark .nav-logo {
            filter: brightness(0) invert(1) !important;
            opacity: 1 !important;
        }
        
        .nav-logo-container {
            width: 140px; /* Fixed width to prevent layout shift */
            height: 32px;
            position: relative;
        }

        .nav-logo-container img {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-contain: contain;
            transition: opacity 0.4s ease;
        }

        #main-nav .logo-white { opacity: 0; }
        #main-nav .logo-black { opacity: 1; }

        #main-nav.is-dark .logo-white { opacity: 1; }
        #main-nav.is-dark .logo-black { opacity: 0; }

        #main-nav.is-dark nav a {
            color: rgba(255, 255, 255, 0.7);
        }
        
        #main-nav.is-dark nav a:hover {
            color: #ffffff;
        }
        
        #main-nav.is-dark .header-cta-btn {
            border-color: rgba(255, 255, 255, 0.3);
            color: #ffffff;
        }
        
        #main-nav.is-dark .header-cta-btn:hover {
            border-color: #ffffff;
            background: rgba(255,255,255,0.1);
        }

        /* Hamburger lines white on dark sections (mobile) */
        #main-nav.is-dark .hamburger-btn span {
            background: #ffffff;
        }

        /* Scrolled state (Forced Transparency) */
        #main-nav.scrolled {
            background: transparent !important;
            backdrop-filter: none !important;
            border-bottom-color: transparent;
        }

        /* ========================================================
           MOBILE MENU OVERLAY
           ======================================================== */
        .mobile-menu-overlay {
            position: fixed;
            inset: 0;
            z-index: 99;
            background: #1c1917;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 1.5rem;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.5s;
        }

        .mobile-menu-overlay.is-open {
            opacity: 1;
            visibility: visible;
        }

        .mobile-menu-overlay a {
            font-family: inherit;
            font-size: 1.5rem;
            font-weight: 500;
            color: rgba(255, 255, 255, 0.5);
            text-transform: lowercase;
            letter-spacing: 0.05em;
            transition: color 0.3s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
            transform: translateY(20px);
            opacity: 0;
            text-decoration: none;
        }

        .mobile-menu-overlay.is-open a {
            transform: translateY(0);
            opacity: 1;
        }

        .mobile-menu-overlay a:hover {
            color: #ffffff;
        }

        .mobile-menu-overlay a:nth-child(1) { transition-delay: 0.05s; }
        .mobile-menu-overlay a:nth-child(2) { transition-delay: 0.10s; }
        .mobile-menu-overlay a:nth-child(3) { transition-delay: 0.15s; }
        .mobile-menu-overlay a:nth-child(4) { transition-delay: 0.20s; }
        .mobile-menu-overlay a:nth-child(5) { transition-delay: 0.25s; }

        .mobile-menu-cta {
            margin-top: 1.5rem;
            padding: 1rem 2.5rem;
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: 9999px;
            color: white;
            font-size: 0.7rem;
            font-family: 'JetBrains Mono', monospace;
            text-transform: lowercase;
            letter-spacing: 0.15em;
            transition: all 0.3s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
            transform: translateY(20px);
            opacity: 0;
            background: transparent;
            cursor: pointer;
        }

        .mobile-menu-overlay.is-open .mobile-menu-cta {
            transform: translateY(0);
            opacity: 1;
            transition-delay: 0.3s;
        }

        .mobile-menu-cta:hover {
            background: rgba(255,255,255,0.1);
            border-color: rgba(255,255,255,0.5);
        }

        /* Hamburger → X Animation */
        .hamburger-btn {
            width: 44px;
            height: 44px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 6px;
            cursor: pointer;
            position: relative;
            z-index: 101;
            background: transparent;
            border: none;
            padding: 0;
        }

        .hamburger-btn span {
            display: block;
            width: 22px;
            height: 1.5px;
            background: #1c1917;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            transform-origin: center;
        }

        .hamburger-btn.is-active span {
            background: #ffffff;
        }

        .hamburger-btn.is-active span:first-child {
            transform: translateY(3.75px) rotate(45deg);
        }

        .hamburger-btn.is-active span:last-child {
            transform: translateY(-3.75px) rotate(-45deg);
        }

        body.menu-open {
            overflow: hidden;
        }

        /* ========================================================
           MOBILE RESPONSIVE — max-width: 767px
           ======================================================== */
        @media (max-width: 767px) {
            /* ── HERO: Full viewport, centered, with visual balance ── */
            .hero-section {
                height: 100svh;
                height: 100vh; /* fallback */
                padding: 0;
            }

            /* Add a glowing orb in the background to fill the empty void and add depth */
            .hero-section::before {
                content: '';
                position: absolute;
                top: 25%;
                left: 50%;
                transform: translateX(-50%);
                width: 250px;
                height: 250px;
                background: radial-gradient(circle, rgba(0,0,0,0.03) 0%, transparent 70%);
                border-radius: 50%;
                z-index: 1;
                pointer-events: none;
            }

            .hero-section .content-layer {
                height: 100svh !important;
                height: 100vh !important;
                padding-left: 1.5rem !important;
                padding-right: 1.5rem !important;
                justify-content: center !important;
                padding-top: 2rem !important;
            }

            /* Hero headline: refined for mobile */
            .hero-section .headline-element {
                font-size: 1.5rem !important;
                line-height: 1.18 !important;
                letter-spacing: -0.02em;
                max-width: 100%;
                padding: 0 0.25rem;
                margin-bottom: 0.5rem !important;
            }

            /* Subtitle: no double padding */
            .hero-section .subtitle-element {
                font-size: 0.85rem !important;
                line-height: 1.55 !important;
                padding-left: 0.5rem !important;
                padding-right: 0.5rem !important;
                margin-bottom: 1.5rem !important;
                max-width: 100%;
            }

            /* Badge: balanced spacing */
            .hero-section .badge-element {
                margin-bottom: 1.25rem;
            }
            .hero-section .badge-element .text-xs {
                font-size: 0.625rem;
                letter-spacing: 0.15em;
            }

            /* Buttons: tight gap */
            .hero-section .buttons-element {
                gap: 0.5rem;
            }

            .hero-section .btn-beam-content {
                padding: 0.875rem 2rem;
                font-size: 0.7rem;
            }

            .hero-section .btn-secondary {
                padding: 0.875rem 2rem !important;
                font-size: 0.7rem;
            }

            /* Scroll indicator visible on mobile */
            .scroll-indicator {
                bottom: 1.25rem;
            }

            /* Hero bottom gradient visible on mobile */
            .hero-bottom-gradient {
                opacity: 1;
            }

            /* About section */
            #about {
                padding-top: 4rem;
                padding-bottom: 3rem;
            }

            /* Methodology — JS swipe carousel on mobile */
            .methodology-container {
                min-height: unset !important;
                padding-bottom: 3rem; /* Space for dots */
            }

            .methodology-stack {
                height: 60vh;
                min-height: 500px;
                display: flex;
                align-items: center;
                justify-content: center;
            }

            .method-card-h {
                position: absolute !important;
                width: 90vw !important;
                max-width: 90vw !important;
                margin-bottom: 0;
            }

            /* Dots indicator */
            .methodology-dots {
                display: flex;
                justify-content: center;
                gap: 8px;
                margin-top: 24px;
            }
            .method-dot {
                width: 8px;
                height: 8px;
                border-radius: 50%;
                background: #d6d3d1;
                transition: all 0.3s ease;
            }
            .method-dot.active {
                background: #1c1917;
                transform: scale(1.3);
            }



            .method-card {
                padding: 1.5rem;
            }

            .step-number-h {
                font-size: 4rem;
                margin-bottom: -1rem;
            }

            .h-progress-bar {
                display: none;
            }

            /* Specialties */
            .svc-card {
                min-height: 130px;
                padding: 16px;
            }

            .svc-detail-image {
                height: 180px;
            }

            /* Cases */
            .case-featured {
                min-height: 360px !important;
            }

            .case-featured .case-img {
                height: 240px;
            }

            .case-featured .case-body {
                padding: 18px;
            }

            .case-small {
                padding: 12px;
            }

            .case-small .case-thumb {
                width: 68px;
                height: 50px;
            }

            /* FAQ */
            .faq-question {
                padding: 18px 0;
            }

            .faq-question h3 {
                font-size: 1.05rem;
                max-width: 80%;
            }

            .faq-icon {
                width: 36px;
                height: 36px;
            }

            .faq-answer {
                padding: 0 8px 20px 8px;
                font-size: 0.95rem;
                line-height: 1.7;
            }

            .text-outline-dark {
                -webkit-text-stroke: 1px #1c1917;
            }

            /* CTA */
            #cta {
                border-radius: 2rem 2rem 0 0;
                padding-top: 4rem;
                padding-bottom: 4rem;
            }

            /* Footer */
            footer {
                padding-top: 3rem;
                padding-bottom: 3rem;
            }
        }

        /* ========================================================
           MOBILE V2 — Comprehensive Overrides (430x932)
           ======================================================== */
        @media (max-width: 767px) {
            /* ── ABOUT: Image aspect + tighter spacing ── */
            #about .reveal-zoom-about {
                aspect-ratio: 4/3 !important;
            }
            #about > div > .grid {
                gap: 2rem !important;
            }
            #about .border-t.grid {
                grid-template-columns: repeat(3, 1fr) !important;
                gap: 0.75rem;
            }
            #about .text-4xl {
                font-size: 1.75rem;
            }

            /* ── METHODOLOGY: Compact cards ── */
            .methodology-container {
                padding-top: 0;
            }
            .method-card .aspect-square {
                aspect-ratio: 16/9 !important;
            }
            .method-card .grid {
                gap: 1rem !important;
            }
            .methodology-container > .absolute.inset-0 {
                display: none !important;
            }
            .method-card {
                padding: 1.25rem;
                border-radius: 1.25rem;
            }
            .step-number-h {
                font-size: 3.5rem;
                margin-bottom: -0.75rem;
                margin-left: -0.25rem;
            }

            /* ── SPECIALTIES: Fix phantom gap + detail panel ── */
            .svc-watermark {
                display: none !important;
            }
            .svc-card {
                min-height: auto;
            }
            .svc-card .flex.w-full.mb-12 {
                margin-bottom: 0.5rem;
            }
            .svc-card-title {
                font-size: 1rem;
            }
            .svc-detail-panel {
                position: relative !important;
                height: auto !important;
                min-height: auto !important;
            }
            .specialties-section .grid > div:last-child {
                min-height: auto !important;
            }

            /* ── CASES: Ensure content visible + compact ── */
            #cases {
                padding-top: 3.5rem;
                padding-bottom: 3.5rem;
            }
            .case-featured {
                min-height: 340px !important;
            }
            .case-featured .case-img {
                height: 220px;
            }
            .case-featured .case-body {
                padding: 16px;
            }
            .case-small {
                padding: 10px;
            }
            .case-small .case-thumb {
                width: 60px;
                height: 45px;
            }

            /* ── FAQ: Tighter spacing ── */
            #faq {
                padding-top: 3.5rem;
                padding-bottom: 3.5rem;
            }
            .faq-question {
                padding: 16px 0;
            }
            .faq-question h3 {
                font-size: 1rem;
            }
            .faq-icon {
                width: 34px;
                height: 34px;
            }
            .faq-answer {
                padding: 0 4px 16px 4px;
                font-size: 0.9rem;
                line-height: 1.65;
            }

            /* ── CTA: Refined ── */
            #cta {
                border-radius: 1.5rem 1.5rem 0 0 !important;
                padding-top: 3.5rem;
                padding-bottom: 3rem;
            }

            /* ── FOOTER: Compact ── */
            footer {
                padding-top: 2.5rem;
                padding-bottom: 2.5rem;
            }
        }
