        /* --- Layout --- */
        .demo-container {
            height: 400vh;
            position: relative;
        }

        .sticky-stage {
            position: sticky;
            top: 0;
            height: 100vh;
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            overflow: hidden;
            background-color: #ffffff;
        }

        /* Asset Card - MD3 Surface */
        .asset-card {
            position: absolute;
            width: 32rem;
            height: 32rem;
            border-radius: 28px;
            /* Extra Large Shape */
            overflow: hidden;
            box-shadow: 0px 4px 8px 3px rgba(0, 0, 0, 0.05), 0px 1px 3px rgba(0, 0, 0, 0.1);
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            background-color: #fff;
            will-change: transform, opacity;
            border: 1px solid rgba(0, 0, 0, 0.03);
        }

        .asset-card img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        #video-ui {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 580px;
            height: 580px;
            max-width: 90vw;
            max-height: 80vh;
            border-radius: 28px;
            overflow: hidden;
            opacity: 0;
            z-index: 40;
            pointer-events: none;
            box-shadow: 0px 12px 24px rgba(0, 0, 0, 0.1);
        }

        .generated-video {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        /* --- MD3 Centered Text Styling --- */
        .indicator-container {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            z-index: 100;
            width: 100%;
            height: 100vh;
            pointer-events: none;
        }

        .step-indicator {
            position: absolute;
            top: 50%;
            left: 50%;
            text-align: center;
            opacity: 0;
            font-size: 2.5rem;
            font-weight: 700;
            letter-spacing: 0.02em;
            color: #1D1B20;
            white-space: nowrap;
            width: 100%;
            text-transform: uppercase;
            text-shadow:
                0 0 30px rgba(255, 255, 255, 1),
                0 0 15px rgba(255, 255, 255, 0.8);
            will-change: opacity, transform;
        }

        /* Badges */
        .label-badge {
            background-color: #1D1B20;
            padding: 0.5rem 1.2rem;
            border-radius: 12px;
            font-size: 0.75rem;
            font-weight: 600;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            display: inline-flex;
            align-items: center;
        }

        .concept-badge {
            padding: 0.4rem 0.8rem;
            border-radius: 8px;
            font-size: 0.65rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        /* --- Updated Responsive Sizing --- */
        @media (max-width: 768px) {
            .step-indicator {
                font-size: 1.75rem;
                letter-spacing: 0.02em;
            }

            /* Increased size for tablet: 28rem instead of 22rem */
            .asset-card,
            #video-ui {
                width: 28rem;
                height: 28rem;
                max-width: 85vw;
                max-height: 85vw;
            }
        }

        @media (max-width: 576px) {

            /* Mobile: Use 92vw for minimal side margins as requested */
            .asset-card,
            #video-ui {
                width: 92vw;
                height: 92vw;
                border-radius: 20px;
                /* Slightly tighter corners for small size */
            }

            .step-indicator {
                font-size: 1.4rem;
            }

            .label-badge {
                padding: 0.4rem 1rem;
                font-size: 0.65rem;
            }
        }