    #premium-design-wrapper {
        /* 브랜드 컬러 및 디자인 시스템 */

        --path-color: #e2e8f0; 
        --flow-color: rgba(75, 94, 140, 0.4); /* 흐르는 애니메이션 색상 */
}
    .snake-container {
        position: relative;
        padding: 20px 0;
    }

    /* Central Path Line (Neutral Gray) */
    .main-path-line {
        position: absolute;
        background: var(--path-color);
        z-index: 1;
        overflow: hidden; /* 애니메이션 요소가 넘치지 않도록 */
    }

    /* 흐르는 애니메이션 요소 공통 */
    .main-path-line::after {
        content: '';
        position: absolute;
        background: linear-gradient(90deg, transparent, var(--brand-sub-red), transparent);
        transition: all 0.5s;
    }

    /* Horizontal lines - 가로 흐름 */
    .h-line-1 { top: 110px; left: 12.5%; right: 12.5%; height: 8px; border-radius: 4px; }
    .h-line-1::after {
        width: 100px; height: 100%; top: 0; left: -100px;
        animation: flow-right 3s infinite linear;
    }

    .h-line-2 { bottom: 110px; left: 12.5%; right: 12.5%; height: 8px; border-radius: 4px; }
    .h-line-2::after {
        width: 100px; height: 100%; top: 0; right: -100px;
        background: linear-gradient(-90deg, transparent, var(--brand-sub-red), transparent);
        animation: flow-left 3s infinite linear;
        animation-delay: 1.5s;
    }
    
    /* Vertical connecting line (Right side) - 세로 흐름 */
    .v-line-right { top: 110px; bottom: 110px; right: 12.5%; width: 8px; border-radius: 4px; }
    .v-line-right::after {
        width: 100%; height: 100px; top: -100px; left: 0;
        background: linear-gradient(180deg, transparent, var(--brand-sub-red), transparent);
        animation: flow-down 3s infinite linear;
        animation-delay: 0.8s;
    }

    /* Animations */
    @keyframes flow-right {
        0% { left: -100px; }
        100% { left: 100%; }
    }
    @keyframes flow-left {
        0% { right: -100px; }
        100% { right: 100%; }
    }
    @keyframes flow-down {
        0% { top: -100px; }
        100% { top: 100%; }
    }

    /* Step Card */
    .step-node {
        position: relative;
        z-index: 10;
        transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    .card-box {
        background: var(--bg-1);
        border: 1px solid var(--glass-border);
        border-radius: 20px;
        padding: 24px 20px;
        width: 100%;
        max-width: 260px;
        height: 180px; 
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        box-shadow: 0 4px 12px rgba(75, 94, 140, 0.05);
        transition: inherit;
    }

    .step-node:hover .card-box {
        transform: translateY(-5px);
        border-color: var(--brand-dark);
        box-shadow: 0 12px 24px rgba(75, 94, 140, 0.12);
    }

    .step-circle {
        width: 48px;
        height: 48px;
        background: var(--brand-dark);
        color: var(--white);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Inter', sans-serif;
        font-weight: 800;
        font-size: 16px;
        margin-bottom: 16px;
        border: 3px solid var(--white);
        box-shadow: 0 4px 8px rgba(0,0,0,0.08);
        transition: all 0.3s ease;
    }

    .step-node:hover .step-circle {
        transform: scale(1.1);
        background: var(--brand-sub-red); 
    }

    @media (max-width: 1024px) {
        .main-path-line { display: none; }
        .snake-container { padding: 10px; }
        .card-box { 
            max-width: 100%; 
            /* 모바일에서도 세로 크기 180px로 일정하게 유지 */
            height: 180px; 
        }
        .grid { gap: 1rem; }
    }