.timeline-module{overflow:hidden;position:relative;width:100%}.timeline-module[data-lazy=true]{contain-intrinsic-size:0 600px;content-visibility:auto}.timeline-header{align-items:center;display:flex;flex-direction:column;margin-bottom:0;position:relative;text-align:center}.timeline-title{font-size:2.5rem;font-weight:700;line-height:1.2;margin-bottom:.5rem}.timeline-subtitle{font-size:1.125rem;margin-bottom:1rem;opacity:.8}.timeline-divider{border-radius:2px;display:block;height:3px;margin-top:1rem;width:80px}.timeline-container{margin:0 auto;max-width:1200px;padding:0 20px;padding-top:var(--header-spacing,2rem);position:relative}.timeline-line{border-radius:2px;bottom:0;left:50%;position:absolute;top:0;transform:translateX(-50%);width:3px;z-index:1}.timeline-item{align-items:center;display:flex;opacity:0;position:relative;transform:translateY(30px);z-index:2}.timeline-item.animated{opacity:1;transform:translateY(0)}.timeline-dot{align-items:center;background:var(--color-primary);border:3px solid var(--color-bg);border-radius:50%;box-shadow:0 2px 8px var(--color-border);display:flex;height:var(--dot-size,3rem);justify-content:center;left:50%;position:absolute;transform:translateX(-50%);width:var(--dot-size,3rem);z-index:3}.timeline-item.highlight .timeline-dot{animation:pulse 2s infinite;height:calc(var(--dot-size, 3rem)*1.3);width:calc(var(--dot-size, 3rem)*1.3)}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,123,255,.7)}70%{box-shadow:0 0 0 10px rgba(0,123,255,0)}to{box-shadow:0 0 0 0 rgba(0,123,255,0)}}.timeline-icon{align-items:center;display:flex;font-size:calc(var(--dot-size, 3rem)*.5);justify-content:center;line-height:1;pointer-events:none;z-index:4}.timeline-content{padding:0;width:calc(50% - 40px)}.timeline-card{background:var(--color-bg);border-radius:8px;box-shadow:0 3px 12px var(--color-border);padding:1.5rem;position:relative;transition:all .3s ease}.timeline-card:hover{box-shadow:0 5px 20px var(--color-border);transform:translateY(-2px)}.timeline-card:before{border-style:solid;border-width:10px;content:"";height:0;position:absolute;top:50%;transform:translateY(-50%);width:0}.timeline-date{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;opacity:.7;text-transform:uppercase}.timeline-event-title{font-size:1.375rem;font-weight:600;line-height:1.3;margin-bottom:.75rem}.timeline-description{line-height:1.6;opacity:.9}.timeline-description p{margin:.5rem 0}.timeline-description ol,.timeline-description ul{margin:.5rem 0;padding-left:1.5rem}.timeline-layout-alternating .timeline-item:nth-child(odd){flex-direction:row-reverse}.timeline-layout-alternating .timeline-item:nth-child(odd) .timeline-content{margin-left:auto;text-align:right}.timeline-layout-alternating .timeline-item:nth-child(2n) .timeline-content{margin-right:auto}.timeline-layout-alternating .timeline-item:nth-child(odd) .timeline-card:before{border-color:transparent var(--color-bg) transparent transparent;left:-10px}.timeline-layout-alternating .timeline-item:nth-child(2n) .timeline-card:before{border-color:transparent transparent transparent var(--color-bg);right:-10px}.timeline-layout-left .timeline-dot,.timeline-layout-left .timeline-line{left:40px}.timeline-layout-left .timeline-content{margin-left:80px;width:calc(100% - 80px)}.timeline-layout-left .timeline-card:before{border-color:transparent var(--color-bg) transparent transparent;left:-10px}.timeline-layout-right .timeline-dot,.timeline-layout-right .timeline-line{left:calc(100% - 40px)}.timeline-layout-right .timeline-content{margin-right:80px;text-align:right;width:calc(100% - 80px)}.timeline-layout-right .timeline-card:before{border-color:transparent transparent transparent var(--color-bg);right:-10px}.timeline-layout-centered .timeline-content{margin:0 auto;max-width:600px;width:100%}.timeline-layout-centered .timeline-card:before{display:none}.timeline-layout-centered .timeline-dot{margin-top:1.5rem;top:0}.timeline-item.highlight .timeline-card{border:2px solid var(--color-primary)}.timeline-animation-fade-up{transition:opacity .6s ease,transform .6s ease}.timeline-animation-fade-in{transition:opacity .6s ease}.timeline-animation-slide-in .timeline-item:nth-child(odd){transform:translateX(-50px)}.timeline-animation-slide-in .timeline-item:nth-child(2n){transform:translateX(50px)}.timeline-animation-slide-in .timeline-item.animated{transform:translateX(0)!important}.timeline-animation-zoom-in{transform:scale(.8);transition:opacity .6s ease,transform .6s ease}.timeline-animation-zoom-in.animated{transform:scale(1)}.timeline-animation-flip-in{transform:rotateY(90deg);transition:opacity .6s ease,transform .6s ease}.timeline-animation-flip-in.animated{transform:rotateY(0)}@media (max-width:768px){.timeline-title{font-size:2rem}.timeline-subtitle{font-size:1rem}.timeline-mobile-single{--mobile-content-start:calc(var(--dot-size, 3rem) + 1.5rem)}.timeline-mobile-single .timeline-line{left:calc(20px + var(--dot-size, 3rem)/2)!important;transform:translateX(-50%)!important}.timeline-mobile-single .timeline-dot{left:0!important;transform:none!important}.timeline-mobile-single .timeline-header{align-items:flex-start}.timeline-mobile-single .timeline-header .timeline-subtitle,.timeline-mobile-single .timeline-header .timeline-title{text-align:left}.timeline-mobile-single .timeline-item{flex-direction:row!important}.timeline-mobile-single .timeline-content{margin-left:var(--mobile-content-start)!important;margin-right:0!important;text-align:left!important;width:calc(100% - var(--mobile-content-start))!important}.timeline-mobile-single .timeline-card:before{border-color:transparent var(--color-bg,#fff) transparent transparent!important;left:-10px!important;right:auto!important}.timeline-event-title{font-size:1.125rem}.timeline-description{font-size:.875rem}}@media (prefers-reduced-motion:reduce){.timeline-item{opacity:1!important;transform:none!important}.timeline-card,.timeline-item{transition:none!important}.timeline-item.highlight .timeline-dot{animation:none!important}}@media print{.timeline-module{background:#fff!important}.timeline-item{opacity:1!important;transform:none!important;page-break-inside:avoid}.timeline-card{border:1px solid var(--color-border);box-shadow:none!important}}