        :root {
            --dark-blue: #30364F;
            --soft-gray: #ACBAC4;
            --vibrant-red: #F05454;
            --white: #FFFFFF;
        }

        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--white);
            color: var(--dark-blue);
            overflow-x: hidden;
        }

        .font-stencil { font-family: 'Stardos Stencil', system-ui; }
        .bg-dark { background-color: var(--dark-blue); }
        .bg-red { background-color: var(--vibrant-red); }
        .bg-gray-soft { background-color: var(--soft-gray); }
        .text-red { color: var(--vibrant-red); }

        /* HERO DIAGONAL SPLIT */
        .hero-split {
            display: grid;
            grid-template-columns: 1.2fr 0.8fr;
            height: 100vh;
            position: relative;
            overflow: hidden;
        }

        .hero-left {
            background: var(--dark-blue);
            clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
            z-index: 2;
            display: flex;
            align-items: center;
            padding: 0 10%;
        }

        .hero-right {
            background: var(--soft-gray);
            position: absolute;
            right: 0;
            top: 0;
            width: 60%;
            height: 100%;
            z-index: 1;
        }

        /* FLOATING GEOMETRY */
        .geo-shape {
            position: absolute;
            opacity: 0.15;
            animation: float 10s ease-in-out infinite;
        }
        @keyframes float {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            50% { transform: translate(20px, -40px) rotate(10deg); }
        }

        /* MASONRY CARDS */
        .masonry-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            grid-auto-rows: 250px;
            gap: 20px;
        }
        .card-tall { grid-row: span 2; }
        .card-wide { grid-column: span 2; }

        .portfolio-card {
            position: relative;
            overflow: hidden;
            cursor: pointer;
        }
        .portfolio-card img {
            transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .portfolio-card:hover img { transform: scale(1.1); }
        .portfolio-overlay {
            position: absolute;
            inset: 0;
            background: rgba(48, 54, 79, 0.9);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            opacity: 0;
            transition: opacity 0.4s ease;
        }
        .portfolio-card:hover .portfolio-overlay { opacity: 1; }

        /* SERVICE ANGLED CARDS */
        .service-card {
            transform: skewY(-2deg);
            transition: all 0.4s ease;
        }
        .service-card:hover {
            transform: skewY(0) translateY(-10px);
            box-shadow: 0 20px 40px rgba(240, 84, 84, 0.2);
        }
        .service-card > * { transform: skewY(2deg); }
        .service-card:hover > * { transform: skewY(0); }

        /* ANIMATIONS */
        .reveal { animation: reveal 1s ease-out forwards; }
        @keyframes reveal {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .btn-red {
            background: var(--vibrant-red);
            color: white;
            transition: all 0.3s ease;
            position: relative;
            z-index: 1;
        }
        .btn-red::after {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 0; height: 100%;
            background: var(--dark-blue);
            transition: width 0.3s ease;
            z-index: -1;
        }
        .btn-red:hover::after { width: 100%; }

        /* AUTH MODAL */
        #auth-modal {
            backdrop-filter: blur(8px);
        }

        @media (max-width: 768px) {
            .hero-split { grid-template-columns: 1fr; }
            .hero-left { clip-path: none; width: 100%; height: 60vh; }
            .hero-right { width: 100%; height: 40vh; top: 60vh; }
            .card-wide { grid-column: span 1; }
        }
