.timeline{--gray-line-duration: 1.8s;--item-show-duration: 1.1s;--dot-duration: 0.7s;--line-grow-duration: 1.6s;--step: 2.8s;background:#0038ff;padding:60px 0 0 0;margin-bottom:160px;overflow:hidden}.timeline .timeline_wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:40px}.timeline .timeline_list{padding-left:40px;position:relative}.timeline .timeline_list:before{content:"";height:100%;width:1px;background:rgba(255, 255, 255, 0.3);position:absolute;left:10px;top:30px;transform:scaleY(0);transform-origin:top;opacity:0}.timeline .timeline_list li{padding-bottom:32px;position:relative}.timeline .timeline_list li .title,.timeline .timeline_list li .text{opacity:0;transform:translateY(24px)}.timeline .timeline_list li:after{content:"";height:100%;width:1px;background:#fff;position:absolute;left:-30px;top:13px;transform:scaleY(0);transform-origin:top}.timeline .timeline_list li .title{font-weight:700;font-size:32px;line-height:40px;color:#fff;margin-bottom:12px;position:relative}.timeline .timeline_list li .title:before{content:"";width:16px;height:16px;border-radius:50%;background:#fff;left:-38px;top:11px;position:absolute;transform:scale(0);opacity:0}.timeline .timeline_list li .text{font-weight:400;font-size:16px;line-height:22px;color:#fff}.timeline .timeline_list li:last-child:after{display:none}.timeline .decor{flex-shrink:0;transform:translateY(-110%);transition:transform 2s cubic-bezier(0.22, 1, 0.36, 1)}.timeline .decor_inner{transform-origin:center center;transform:rotate(0deg) scale(1);will-change:transform}.timeline .decor_inner svg{display:block}.timeline.animate .timeline_list:before{animation:timelineGrayLineReveal var(--gray-line-duration) ease forwards}.timeline.animate .timeline_list li .title{animation:timelineFadeUp var(--item-show-duration) cubic-bezier(0.22, 1, 0.36, 1) forwards;animation-delay:calc(0.7s + var(--i) * var(--step))}.timeline.animate .timeline_list li .title:before{animation:timelineDot var(--dot-duration) cubic-bezier(0.22, 1, 0.36, 1) forwards;animation-delay:calc(0.5s + var(--i) * var(--step))}.timeline.animate .timeline_list li .text{animation:timelineFadeUp var(--item-show-duration) cubic-bezier(0.22, 1, 0.36, 1) forwards;animation-delay:calc(1s + var(--i) * var(--step))}.timeline.animate .timeline_list li:not(:last-child):after{animation:timelineLineGrow var(--line-grow-duration) cubic-bezier(0.22, 1, 0.36, 1) forwards;animation-delay:calc(1.7s + var(--i) * var(--step))}.timeline.animate .decor{opacity:1;transform:translateY(0)}@keyframes timelineGrayLineReveal{from{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes timelineFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes timelineDot{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes timelineLineGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}