.timeline-section {
    position: relative;
    background: #ffffff;
}

/* Locks the left and center columns in place while scrolling */
.sticky-col {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    align-items: center;
}

/* ==========================================
   Animated Image Frame (Left Column)
   ========================================== */
.image-container {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    padding-right: 50px;
}

.image-frame {
    width: 380px;
    height: 380px;
    overflow: hidden;
    position: relative;
    /* Smooth transition for all transform/shape changes */
    transition: all 0.9s cubic-bezier(0.25, 1, 0.5, 1); 
    box-shadow: 0 20px 50px rgba(0,0,0,0.1);
}

.image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}

/* --- Dynamic Shape Classes Triggered by JS --- */
/* 1. Square (Default) */
.shape-0 { transform: rotate(0deg) scale(1); border-radius: 0; }

/* 2. Diamond (Rotates frame 45deg, counter-rotates image to keep it upright) */
.shape-1 { transform: rotate(45deg) scale(0.85); border-radius: 20px; }
.shape-1 img { transform: rotate(-45deg) scale(1.45); }

/* 3. Slight Tilt */
.shape-2 { transform: rotate(-8deg) scale(0.95); border-radius: 15px; }
.shape-2 img { transform: rotate(8deg) scale(1.1); }

/* 4. Circle */
.shape-3 { transform: rotate(0deg) scale(0.9); border-radius: 50%; }

/* 5. Reverse Diamond */
.shape-4 { transform: rotate(-45deg) scale(0.85); border-radius: 20px; }
.shape-4 img { transform: rotate(45deg) scale(1.45); }

/* 6. Tilted Right */
.shape-5 { transform: rotate(12deg) scale(0.95); border-radius: 30px; }
.shape-5 img { transform: rotate(-12deg) scale(1.1); }

/* 7. Rounded Square */
.shape-6 { transform: rotate(0deg) scale(1); border-radius: 40px; }


/* ==========================================
   Center Line & Star
   ========================================== */
.center-line-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.vertical-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom, transparent, var(--color-3) 40%, var(--color-3) 60%, #e0e0e0 60%, #e0e0e0);
}

.star-icon {
    position: relative;
    z-index: 2;
    background-color: #ffffff;
    padding: 15px 0;
    color: var(--color-3);
    /* Custom 4-point star matching your image */
    display: flex;
}

/* ==========================================
   Right Column (Scrolling Content)
   ========================================== */
.timeline-step {
    /* Makes each step take the full screen height so they scroll cleanly past the center star */
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 40px;
    padding-right: 20px;
}

.step-title {
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--color-1);
    margin-bottom: 20px;
    font-family: var(--font-01);
}

.step-desc {
    font-size: 18px;
    line-height: 1.7;
    margin-bottom: 30px;
    color: #666;
    font-family: var(--font-01);
}

.custom-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-family: var(--font-02);
}

.custom-bullet-list li {
    position: relative;
    padding-left: 35px;
    margin-bottom: 15px;
    font-size: 18px;
    color: #555;
}

/* Black 4-point star for bullets */
.custom-bullet-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230B3D91'%3E%3Cpath d='M12 0L14.59 9.41L24 12L14.59 14.59L12 24L9.41 14.59L0 12L9.41 9.41L12 0Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

/* ==========================================
   Responsive Design (Mobile/Tablet)
   ========================================== */
@media (max-width: 991px) {
    .sticky-col {
        height: 45vh;
        background: #ffffff;
        z-index: 10;
        padding-top: 20px;
        border-bottom: 1px solid #eee;
    }
    .center-line-col {
        display: none !important; /* Hide center line on mobile */
    }
    .image-container {
        justify-content: center;
        padding-right: 0;
    }
    .image-frame {
        width: 280px;
        height: 280px;
    }
    .timeline-step {
        min-height: auto;
        padding: 60px 20px;
    }
    .step-title {
        font-size: 2rem;
    }
}