/* --- PRELOADER STYLES --- */
        #loader-wrapper {
            position: fixed;
            inset: 0;
            background-color: #050505;
            z-index: 99999; /* Keeps it on top of everything */
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            transition: opacity 0.6s ease-out, visibility 0.6s ease-out;
        }

        /* Class added via JS to hide the loader */
        #loader-wrapper.fade-out {
            opacity: 0;
            visibility: hidden;
        }

        .title-container {
            display: flex;
            gap: 15px;
            font-size: clamp(2.5rem, 5vw, 4.5rem); /* Slightly scaled for portfolio */
            font-weight: 900;
            letter-spacing: -1px;
            margin-bottom: 20px;
        }

        .title-word {
            background-size: 100% 200%;
            background-position: top; 
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        .kavya { background-image: linear-gradient(to top, #ffffff 50%, rgba(255, 255, 255, 0.15) 50%); }
        .trivedi { background-image: linear-gradient(to top, #a78bfa 50%, rgba(167, 139, 250, 0.15) 50%); }

        .fill-water { animation: riseUp 2s cubic-bezier(0.4, 0, 0.2, 1) forwards; }

        @keyframes riseUp {
            0% { background-position: top; }
            100% { background-position: bottom; }
        }

        .subtitle-container {
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            font-family: 'Courier New', Courier, monospace;
            font-size: clamp(0.8rem, 1.5vw, 1.1rem);
            color: #9ca3af;
            white-space: nowrap;
        }

        .sub-word, .dot {
            opacity: 0;
            transform: translateY(15px);
            transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .sub-word.revealed, .dot.revealed {
            opacity: 1;
            transform: translateY(0);
            text-shadow: 0 0 10px rgba(167, 139, 250, 0.3); /* Subtle text glow */
        }

        .ball {
            position: absolute;
            width: 8px;
            height: 8px;
            background-color: #a78bfa; 
            border-radius: 50%;
            top: -15px; 
            left: 0;
            opacity: 0;
            z-index: 10;
            box-shadow: 0 0 12px rgba(167, 139, 250, 0.8); /* Neon glow */
        }