.timeline-section{
padding:80px 0;
}

.container{
max-width:1200px;
margin:auto;
padding:0 20px;
}

.carousel-wrapper{
position:relative;
}

.carousel-wrapper::before,
.carousel-wrapper::after{
content:'';
position:absolute;
top:0;
bottom:0;
width:120px;
z-index:2;
pointer-events:none;
}

.carousel-wrapper::before{
left:0;
background:linear-gradient(to right,#f0f2f5 10%,transparent);
}

.carousel-wrapper::after{
right:0;
background:linear-gradient(to left,#f0f2f5 10%,transparent);
}

.timeline-item{
display:flex;
flex-direction:column;
align-items:center;
}

.slot-top,
.slot-bottom{
height:170px;
width:100%;
display:flex;
justify-content:center;
}

.slot-top{
align-items:flex-end;
padding-bottom:20px;
}

.slot-bottom{
align-items:flex-start;
padding-top:20px;
}

.line-row{
display:flex;
align-items:center;
width:100%;
}

.line-seg{
flex:1;
height:2px;
background:#c8cdd6;
}

.dot{
width:18px;
height:18px;
border-radius:50%;
border:2px solid #2eb8d4;
background:#fff;
position:relative;
}

.dot::after{
content:'';
position:absolute;
inset:-6px;
border-radius:50%;
border:2px solid #2eb8d4;
animation:pulse 2.2s infinite;
}

@keyframes pulse{
0%{transform:scale(.8);opacity:.7;}
100%{transform:scale(1.8);opacity:0;}
}

.card{
background:#fff;
border-radius:14px;
padding:16px;
box-shadow:0 3px 14px rgba(0,0,0,0.08);
width:190px;
}

.card h3{
font-size:14px;
color:#e07b1a;
margin-bottom:6px;
}

.card p{
font-size:12px;
color:#777;
}

.date-label{
font-weight:bold;
color:#2eb8d4;
font-size:14px;
text-align:center;
}
