.schedule-section{position:relative;overflow-x:hidden}
.schedule-container{max-width:1000px;margin:0 auto;position:relative}
.timeline{position:relative}
.timeline::before{content:'';position:absolute;top:0;left:20px;transform:translateX(-50%);width:4px;height:100%;background-color:var(--timeline-color,#d1d5db);transition:background-color 0.4s ease-in-out;z-index:1}
.timeline-item{position:relative;margin-bottom:60px;padding-left:55px}
.timeline-item.is-visible{opacity:1;transform:translateY(0)}
.timeline-item:last-child{margin-bottom:0}
.timeline-circle{position:absolute;top:20px;left:20px;transform:translateX(-50%);width:20px;height:20px;background-color:var(--item-color);border:3px solid #f8fafc;border-radius:50%;z-index:2;transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.4s ease}
.timeline-item.is-active .timeline-circle{transform:translateX(-50%) scale(1.7);box-shadow:0 0 0 6px rgba(0,0,0,0.05),0 0 25px var(--item-color)}
.timeline-card{background-color:#ffffff;border-radius:12px;padding:25px;position:relative;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.15),0 8px 25px rgba(0,0,0,0.08),0 2px 6px rgba(0,0,0,0.12);transition:transform 0.4s ease-out;text-align:center}
.timeline-card::before{content:'';position:absolute;top:0;left:0;width:6px;height:100%;background-color:var(--item-color)}
.card-icon{width:64px;height:64px;border-radius:50%;background-color:var(--item-color);color:#fff;display:inline-flex;justify-content:center;align-items:center;font-size:2.2rem;line-height:1;box-shadow:0 4px 15px rgba(0,0,0,0.15),0 8px 25px rgba(0,0,0,0.08),0 2px 6px rgba(0,0,0,0.12)}
.card-time{font-size:0.9rem;font-weight:600;color:#6b7280;margin-bottom:8px;letter-spacing:1px}
.card-description{font-size:1rem;line-height:1.6;margin-bottom:15px}
.card-title{font-size:1.3rem;font-weight:700;color:var(--item-color);margin-bottom:20px;text-align:center}
.card-time-section{text-align:left}
.card-time-section .card-time{font-size:1rem;font-weight:700;color:var(--item-color);margin-bottom:8px;margin-top:16px}
.card-time-section .card-time:first-child{margin-top:0}
.card-time-section .card-description{font-size:0.95rem;line-height:1.5;color:#4a5568;margin-bottom:12px}
